2019.11.29

"다중값 지원" 웹어셈블리, 대대적 변화 예고

Paul Krill | InfoWorld
웹 애플리케이션의 속도를 높이는 바이너리 포맷인 웹어셈블리(WebAssembly)가 다중값을 지원할 예정이다. 다양한 값을 반환하는 함수를 구현하고 코드 크기를 줄이는 것은 물론 새로운 명령어도 사용할 수 있게 될 전망이다.

이번 새로운 기능 제안은 기존 함수의 제약사항을 해소하기 위한 것이다. 현재는 0 혹은 1 값 만 반환할 수 있다. blocks, ifs, loops 같은 명령 구문도 여러 스택 값을 사용할 수 없고 0 혹은 단일 스택 값만 생성할 수 있다.

모질라(Mozilla)와 바이트코드 얼라이언스(Bytecode Alliance)에 따르면, 이런 제한이 사라지면 함수가 임의의 숫자 값을 반환할 수 있다. 명령 구문도 스택 값의 임의의 숫자를 만들 수 있게 된다. 또한 다중값은 레코드, 시퀀스, 스트링 같은 고수준 값을 표현하는 Wasm 인터페이스 형식의 필수 요건이기도 하다.

이번에 다중값을 지원하기로 한 또 다른 이유는 함수가 다양한 값을 동시에 반환해야 값에 따른 터플이나 스트럭트 언박싱이나 다양한 반환 값의 효과적인 컴파일이 가능해지기 때문이다. 깃허브 자료에 따르면, 루프 라벨이 인수를 가질 수 있고 입력 명령에 대한 매크로 정의도 가능해진다.

다중값을 지원한다고 해도 언어의 구조와 텍스트 형식은 대부분 영향을 받지 않는다. 반면 바이러니 포맷은 함수 형태를 블록으로 정할 수 있도록 수정이 필요하다. 또한, 현재의 애드훅 인코딩은 레퍼런스가 함수 타입을 지원하도록 확장해야 한다. 개발자인 닉 핏즈제럴드는 "이번 다중값 지원 추가는 러스트와 웹어셈블리 툴체인은 물론 Wasmtime 웹어셈블리 런타임을 강화하기 위한 것이다"라고 말했다. ciokr@idg.co.kr

 



2019.11.29

"다중값 지원" 웹어셈블리, 대대적 변화 예고

Paul Krill | InfoWorld
웹 애플리케이션의 속도를 높이는 바이너리 포맷인 웹어셈블리(WebAssembly)가 다중값을 지원할 예정이다. 다양한 값을 반환하는 함수를 구현하고 코드 크기를 줄이는 것은 물론 새로운 명령어도 사용할 수 있게 될 전망이다.

이번 새로운 기능 제안은 기존 함수의 제약사항을 해소하기 위한 것이다. 현재는 0 혹은 1 값 만 반환할 수 있다. blocks, ifs, loops 같은 명령 구문도 여러 스택 값을 사용할 수 없고 0 혹은 단일 스택 값만 생성할 수 있다.

모질라(Mozilla)와 바이트코드 얼라이언스(Bytecode Alliance)에 따르면, 이런 제한이 사라지면 함수가 임의의 숫자 값을 반환할 수 있다. 명령 구문도 스택 값의 임의의 숫자를 만들 수 있게 된다. 또한 다중값은 레코드, 시퀀스, 스트링 같은 고수준 값을 표현하는 Wasm 인터페이스 형식의 필수 요건이기도 하다.

이번에 다중값을 지원하기로 한 또 다른 이유는 함수가 다양한 값을 동시에 반환해야 값에 따른 터플이나 스트럭트 언박싱이나 다양한 반환 값의 효과적인 컴파일이 가능해지기 때문이다. 깃허브 자료에 따르면, 루프 라벨이 인수를 가질 수 있고 입력 명령에 대한 매크로 정의도 가능해진다.

다중값을 지원한다고 해도 언어의 구조와 텍스트 형식은 대부분 영향을 받지 않는다. 반면 바이러니 포맷은 함수 형태를 블록으로 정할 수 있도록 수정이 필요하다. 또한, 현재의 애드훅 인코딩은 레퍼런스가 함수 타입을 지원하도록 확장해야 한다. 개발자인 닉 핏즈제럴드는 "이번 다중값 지원 추가는 러스트와 웹어셈블리 툴체인은 물론 Wasmtime 웹어셈블리 런타임을 강화하기 위한 것이다"라고 말했다. ciokr@idg.co.kr

 

X