Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Build Node.js–WASM/WASI tiny compiler with Node.js

mganeko
November 30, 2019

Build Node.js–WASM/WASI tiny compiler with Node.js

Lightning talk for JSConf.JP 2019. Building JavaScript-WASI tiny compiler, and WASI support.

mganeko

November 30, 2019
Tweet

More Decks by mganeko

Other Decks in Programming

Transcript

  1. [email protected] 1 "A M 30 3 [email protected] L C @B
    @I 1 "A
    .3 .2 ( / (" "
    )C9 @ 09 3 CN @P
    / C / @ 3)1. 3)1 PNPNM L A
    1 0 2
    ( 9 I J

    View Slide


  2. • , , ,

    View Slide

  3. • . . !

    View Slide

  4. • !

    • / .. . à /

    • / .. . à / E :

    View Slide

  5. • A

    • ?
    • A , ? !

    • A E HB F

    View Slide

  6. • : E

    • B ? C E ! A !
    • !
    • FH

    View Slide

  7. /
    • . . B A B
    • 1 7: 23 8 7 7 3 3 3 7 23 8
    • :B A : ,
    • 023 0 0: 7 23 3 .
    • .B - :B
    • - 1 M - 1 g I
    • 23 8 M 23 8 R V V d
    • 23 8 M 23 8 R / e Ld
    • fb 23a N T Mh
    • :723 0 3 3 0 3 238 238
    • TS I N N - MR L

    View Slide

  8. ( 1 1) 0 (1 2 .
    -2 A
    23A 2
    A 2E
    2
    (E C 23
    3 2
    ).
    ).
    A
    A 2
    C
    :A
    2 C2 A
    C3A 2 2 3 A

    View Slide

  9. ) 9 9 . ( 0 ) 2 1
    -2AB A : &
    2 BCA2 C
    B C2 CA
    ( A2C A
    &
    B
    B A: 2
    B A
    B
    2 2 B
    B C )2 2 A: C
    2C 2B
    . B
    2C
    &BB
    C A 2C
    2B
    &BB
    : 2A A 2C
    A B A
    B
    A 2 C
    ) BC : A

    View Slide



  10. • à
    • / /
    • 2 $ 2 - / /

    • - / :/- : / 2 $ 2 - / /
    • -.
    • . : .
    • -. .
    • - /
    • - / .

    • :- ./
    A

    View Slide

  11. ( , , )
    • , ,
    • ) ./1 )2 ./ 2
    • ( )1 )2 / 2)2
    • S
    • O IL I L

    View Slide

  12. ) () ()
    : 1
    • O SMU
    • RE J O W
    • ((.) (A .) .) )
    • O LSMU
    • RE JO L Y JV
    • / ,) B .) .) A .) .
    ((.) ßà / ,)

    View Slide

  13. +14
    C; = ;C C%
    C; = ;C
    ; C
    = C;
    F C= ;
    * %
    F 3 C=
    * * * , %
    C * = C% %
    C; = C = =
    // -2
    , - JI

    View Slide

  14. ,2
    +
    C; = ;C C
    C; = ;C C%
    ; AC
    * %
    / F 4 C=
    C% * A = = =
    %
    AC; = C = =
    1 3
    %
    - JI

    View Slide

  15. +14
    C; = ;C C ; C
    = C;
    C; = ;C
    F C= ;
    C;
    * %
    F 3 C=
    C% * = = =
    C * = C% %
    , , % *
    // -2
    , - JI

    View Slide

  16. 1
    1
    A
    A
    A
    ;
    = AA
    A
    C ;
    C ;
    A
    %
    + C
    , 2 , * %
    1 3 , * %
    2- /
    F

    View Slide

  17. ; ;
    3 3
    +3 3 =
    .$
    .
    $ 3
    2 3
    .
    3 A
    /
    1 F

    View Slide

  18. .1
    F
    F ) (
    /
    ; ;
    =A

    A ; ; F
    2
    ;
    A ;
    A ;
    ;
    +3 $

    View Slide

  19. = = A
    A;
    ) F (
    / A;
    F
    ;
    ;
    $
    2
    A F
    .1
    +3 $I

    View Slide

  20. 1
    1
    ) +
    $
    .
    . $ 1
    =
    ;=
    =
    ;=
    /( A

    View Slide

  21. / (2) ) / )
    :


    • /
    • PI A W H C P
    • /
    • ,
    • , ( )
    • / , / )
    • ) H (
    • A HPM S

    View Slide

  22. ) ) )
    8 = ;=
    .- . .
    3 .-) : /: , ;
    , 2. 2 (
    ,
    3 .-) : /: , // . ;
    = =;
    = ;; 8 ) 8= ;; A ;= =; 8 . ;
    ; = = ;; +
    =; (=; 8 ; ' ;' ;; +
    C
    , 2. 2 (
    C

    View Slide

  23. .
    ;8 . 8. .(> . . ), ( (
    > . 88 > . ) 88 > ;8 .
    . 8. ;
    . .= 8 . 8 ;
    ( / ) /) , )
    : / / ) ) , . / M S
    . 8. ;
    .= 8 . 8 8. ; . .= 8 .= 8 . 8
    8. 8. ; . .= 8 .= 8 . ) )/ . ( ( A
    8 . .= 8.
    .
    . .

    View Slide

  24. 4 9
    -/ - / $/ ;
    $ / = = = 41= ; " =2 2 )(""
    6 ;3 = = = = 41= " =2 2 )(""
    -- $$$$ 2 3 ; 2 2 6 = " K $$$
    ; 12 2 " -- ; 12 2 + /
    B= B= 41 ; ; 12 2""
    -/ ;
    B= B= 41 2 ; 6 ;3 2 ;""
    6 ;3 2 ; 9 )("
    9 329 B )("
    9 329 )("
    )( 3 ; -- 9 B . -
    19 329 B
    19 329 B -- 9 . B -
    )( 3 ;
    )( 244
    19 329
    19 329 -- = ; "-
    $ /
    )( 3 ; -- ; - 4 "
    ;
    "
    "

    View Slide

  25. !
    • . : B /:
    • -. : .: -// /
    • . /: - : , : ,A-
    • : MW IF
    • S N
    • . /: - : , : ,A-

    View Slide

  26. • ( . ) - ,
    • ) - ( .
    • . ( .
    • . . / . .
    • à , , -
    • jc I Ae Mbn N
    • S S ( . i A ) mf
    • ( . C i
    • ( . ad gh ) lC
    • WN A ) , , -

    View Slide

  27. • .
    • JJ I 9 I DFOACC9 F IJ9 9 AOA M9IA 9 M :9II D:CN INIJ D A J 9
    • 32 - CA 3- R AC JMF CF 9 FD
    • M9IDJAD - : AC MAJ IJ
    • JJ I M9IDJAD L
    • 09 :N ,9IJCN .
    • JJ I MMM 9IJCN FD :CF 9 F A C J 9IJCN 9JAL M :9II D:CN FD AC JAD
    • .. . .
    • 1F .- A J J F CN
    • JJ I AJ : FD :NJ F 9CCA9 M9ID DA F JAD
    • - R 0dSce 2 T W ln wg o vhgn
    • vfgzPtps P p P
    • 9IDJAD R IJ bWyvf n
    • / J R ,9IJCN X SaP 1ipmk u 0d T W
    • : II D:CN 0A F JAD rugn T W ogw

    View Slide

  28. /
    • ) /-
    • : . / - - - . . - / -:
    • ( ) )

    • ( : :
    • S d f_ P a
    • - hl CP
    • bncm: A Wi cm : egIPN

    View Slide

  29. ( ,( ( ( ) * * ,( *
    :2 0
    • / 0 /0 : : H
    • / W

    • /0:: WI
    • > : //:0 > 2:
    • >! - : //:0 - 0 ::
    • >! - 0 0 2 3 - 0 ::
    • > 0 0 > 2:
    • : 0 - 0 : 0 0
    • 0: - 020: 30 > 0
    -
    : //:0
    - 0 ::
    - 0
    0 2 3 - 0 ::
    -
    - 0
    *: 0 0 - 0 ::
    H

    View Slide

  30. -
    • ( ) 2 - - )
    • )
    • 1
    • 1 3 1 1 3 3
    • 1 3 à 1 (( 1 à
    • 1 (( 3 818
    • A 2 A 1
    • - ) ( - 3
    • d_a o y t M S p k u
    • , ) d_a o y r c a
    • S _e
    • oS C S t
    • l (( Sc a
    • r fgh w pW
    • A 2 A 1 m tM
    • Sv nI, ) sw M ST i

    View Slide

  31. -
    • C ! A 1A 2 C 3C A A C 2 C C A
    • C 3 AC C A C 2 C CA C8 (, 3
    • ,C C !
    • )8 3 )1 3 1C C8 CA
    • -1 C à 3 AC C (,) 3 à !
    • C A (,) CA A
    • 31 1 A C !
    • A C (, 3 A C ! 2 81 C C 8 A A !
    • C ! keg _T y t
    • (, W keg M iag s
    • C ! dfel

    • uS (,) bIh iag s
    • mnp y
    • 1 A C ! v
    • w (, bIh _ cqha
    3 A C
    A1C (- 3
    r UT
    bq aoIW

    View Slide

  32. ( ) ( (
    (
    ) $( A +
    2 + A
    A +
    = 2 +
    2 + 2
    A + A
    A A
    ) $( 2 2(3
    2 =)(
    A =)(
    ; A
    2
    =)($ A
    A
    C ;=A = C
    ; 2
    =)($ A
    =)($;
    =
    ; 2
    =)($ A
    =)($ =
    2
    ; A
    =)($ A
    =)($
    A
    > C = C
    A A = A
    A A = C
    ; A
    A
    1 $>
    . C= $
    0 $>
    3-1/
    C=

    View Slide

  33. / .
    . : &.
    2 A A
    A A
    A
    &.
    .
    . 2 A ) C . A
    A
    -
    &.( A
    2& 2:
    A A
    &.(
    2& 2:
    2 A
    A
    &.(
    A
    A
    2 :A A

    View Slide

  34. • :

    • : - . $ :
    • :
    • / : $
    • . . : : - / : : - . $ :
    • ./ :
    • . - / :

    • : : / :
    • : : /

    View Slide

  35. • / / / / ! ( /
    • / / / / / // ( ß à )
    • (
    • / / / /
    • / ( (
    • a i ( drE xeLM
    • pS L A ) p c M
    • ( gS M Atbgs M
    • ( w oVhVfn lI SA W a uy M
    • V A ( ( Sm V

    View Slide


  36. • / _
    • "
    • C G @
    • " PRT
    • T M ][ @ [email protected] [email protected]

    View Slide

  37. !
    / 67 / 67 N
    9AA ::A3 5 3 :728 :A7 43 43 6 77 4 4
    / 67 / 67 M SM
    9AA ::A3 5 3 :728 :A7 77 5 4 45
    / 67 / 67 1-0.
    9AA ::A3 5 3 :728 :A7 5 3 5 5

    View Slide