아무거나
[연재] 러스트 질문 받습니다
ㅇㄹ(rerereq)
2020-03-02 16:38
추천 0
댓글 31
다른 게시글
-
요즘 모니터 넓어졌으니 80자에서 줄 안바꿔도 되지만 [1][%] 익명(ekqkdmlqlc) | 20.03.02추천 0
-
risc-v는 뭐가 좋냐 [3][%] 익명(117.111) | 20.03.02추천 0
-
내가 리눅스에서 파워라인 안쓰는 이유[%] 야야야(yaiyaiya) | 20.03.02추천 0
-
맥도 필요한데 모니터도 필요해서 알아보는중인데 [3][%] 익명(106.246) | 20.03.02추천 0
-
(>>=)를 더 변태적으로 정의할 수는 없을까요? [1][%] 기괴공학도(mecheng98) | 20.03.02추천 0
-
vim airline 파워라인 심볼 설정하는데 잘 안되네 [4][%] 익명(110.70) | 20.03.02추천 0
-
unit type이니 bottom type이니 하는게 [10][%] ㅇㄹ(rerereq) | 20.03.02추천 0
-
FP팡인들아 FP를 왜 좋아하는 구야 [5][⚠애니짤] Leta(leta17) | 20.03.02추천 0
-
ARM이 x86 노트북을 대체할까? [14][%] 익명(106.246) | 20.03.01추천 0
-
코드줄수 cloc 명령 [1][%] 익명(218.147) | 20.03.01추천 0
러스트에서는 기존 타입을 상속하듯이 확장하는거 됨? 트레이트들도 다 상속받을 수 있게. 줄리아는 안돼어 가끔 불편함 - return 0;
불가능함 다만 편법이 있음 Deref나 DerefMut 구현시키면 컴파일러가 레퍼런스를 내부타입 레퍼런스로 암시적으로 변환해줌
상속에서 부모타입으로 변환되는거랑 유사
그렇구만 - return 0;
그럼 이미 완성된 라이브러리의 타입을 확장하려면 손을 대긴 해야된다는거네 - return 0;
이게 되게 해주는 언어가 없나 하스켈도 안 해주나 - return 0;
그래도 실제로 트레잇 구현하는건 아니니까 트레잇 구현이 필요할때는 보통 매크로를 쓰고 내부타입을 자주 꺼내거나 내부타입이 본체면 Deref 구현시키지
애초에 손을 댈려고 만드는게 래핑타입이자나 가상함수마냥 취사선택으로 오버라이딩 하는걸 원하는거임?
라이브러리에서 T 라는 타입을 제공하고 라이브러리의 함수들이 전부 T 에 대해 specialize 돼있을 때 T를 상속 받은 U를 만들어서 확장하되 T 에 대한 함수들을 그대로 쓰고 싶은거지 - return 0;
일단 러스트에선 U에서 T를 만들어 쓰는게 보편적임 애초에 상속같은 개념이 없는 언어들에서 상속을 찾으니까 불편해하시는게 아닐지
라이브러리의 타입을 확장해서 쓰고 싶은데 상속이든 뭐든 할 수 있는 방법이 없으니까 답답한거지 - return 0;
C도 아닌데 다 뭔가 보일러 플레이트 줄일 방법이 있겠지 러스트는 매크로 많이 쓰는데 줄리아는 잘 모르겠구요
똑같음. 매크로 한줄 쓰면 되긴 함. 기존 코드를 그냥 그대로 쓰고 싶은거 뿐이지 - return 0;
꽃게 좋아하시나요
러스트 배우면 백수 탈출할 수 있나요
wasm 에서는 context 관리를 어떻게 해야함? 다른 FFI 에서는 release 를 호출한다거나 자바같은 경우 finalize 오버라이드를 통한 gc 가 폐기시에 호출해준다하지만 자바스크립트같은 경우는 이런 방법이 없는데 rust wasm 팀에서 제안하는 방식이 따로 있음?
context 관리라는게 뭔말임 소멸자 같은거?
예를 들면 rust 모듈에서 struct 생성하고 Box::leak 후 FFI 를 위해 포인터를 넘겨주었을때 C같은 경우는 이걸 쓰고 끝나면 다시 러스트에게 release ,free 등을 호출한다가 보통이잖아. 근데 자바 스크립트 같은 경우는 사실 free,release 라는 개념이 없는데다 자바처럼 오브젝트가 가비지 컬렉터 수집될때 이벤트가 있는것도 아닌데.. 뭔가 다른 방법을 제시하고 있는게 없나해서
아 그런거? 일단 대부분 타입은 어차피 바인딩 라이브러리에서 새로 만들어져야해서 상관없고 클로저같은게 문제인데 자스에서 호출한 클로저가 이미 소멸된 상태면 그냥 패닉남
러스트쪽에서 클로저를 forget으로 날려버리면 계속 참조할수있고 뭐 그런식
자스에서는 뭐 해줄수 있는것도 없고 해주지도 않음
메모리 관리쪽이 의문이였음. 딱히 찾아봐도 명확히나온곳을 아직 못봐서... 스크립트도 C처럼 똑같이 wasm 모듈한테 free해달라고 요청해야겠네
free를 부를일이 없어 왜냐면 웹어셈 객체를 자스가 읽지도 못하고 들고있지도 않음
웹어셈 함수 리턴값은 항상 자스객체고 자스 gc가 관리함
객체를 주고 받는건 아니고 단순 포인터. 보통의 C인터페이스 처럼
ㅇㅇ 아무튼 자스에서 보면 웹어셈은 Int32Array안에서 똥꼬쇼 하는놈일뿐
디버깅 뭘로함
vscode나 clion
몇살이세요?
14살 여중생