<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div dir="ltr"></div><div dir="ltr"><br></div><div dir="ltr">Would it be possible to disable Self’s JIT and just compile the C++ to WASM and use the Self interpreter?</div><div dir="ltr"><br></div><div dir="ltr">Btw, here’s a project that’s tinkering with JITs on WASM:</div><div dir="ltr"><br></div><div dir="ltr"><div style="display: block;" class=""><div style="-webkit-user-select: all; -webkit-user-drag: element; display: inline-block;" class="apple-rich-link" draggable="true" role="link" data-url="https://github.com/wingo/wasm-jit"><a style="border-radius:10px;font-family:-apple-system, Helvetica, Arial, sans-serif;display:block;-webkit-user-select:none;width:300px;user-select:none;-webkit-user-modify:read-only;user-modify:read-only;overflow:hidden;text-decoration:none;" class="lp-rich-link" rel="nofollow" href="https://github.com/wingo/wasm-jit" dir="ltr" role="button" draggable="false" width="300"><table style="table-layout:fixed;border-collapse:collapse;width:300px;background-color:#E9E9EB;font-family:-apple-system, Helvetica, Arial, sans-serif;" class="lp-rich-link-emailBaseTable" cellpadding="0" cellspacing="0" border="0" width="300"><tbody><tr><td vertical-align="center" align="center"><img style="width:300px;filter:brightness(0.97);height:150px;" width="300" height="150" draggable="false" class="lp-rich-link-mediaImage" alt="wasm-jit.png" src="cid:7ECB98DF-1A4D-4994-BCCB-F30E267ED4B0"></td></tr><tr><td vertical-align="center"><table bgcolor="#E9E9EB" cellpadding="0" cellspacing="0" width="300" style="font-family:-apple-system, Helvetica, Arial, sans-serif;table-layout:fixed;background-color:rgba(233, 233, 235, 1);" class="lp-rich-link-captionBar"><tbody><tr><td style="padding:8px 0px 8px 0px;" class="lp-rich-link-captionBar-textStackItem"><div style="max-width:100%;margin:0px 16px 0px 16px;overflow:hidden;" class="lp-rich-link-captionBar-textStack"><div style="word-wrap:break-word;font-weight:700;font-size:12px;overflow:hidden;text-overflow:ellipsis;text-align:left;" class="lp-rich-link-captionBar-textStack-topCaption-leading"><a rel="nofollow" href="https://github.com/wingo/wasm-jit" style="text-decoration: none" draggable="false"><font color="#000000" style="color: rgba(0, 0, 0, 1);">wingo/wasm-jit: Test materials for getting JIT support for wizer</font></a></div><div style="word-wrap:break-word;font-weight:600;font-size:11px;overflow:hidden;text-overflow:ellipsis;text-align:left;" class="lp-rich-link-captionBar-textStack-bottomCaption-leading"><a rel="nofollow" href="https://github.com/wingo/wasm-jit" style="text-decoration: none" draggable="false"><font color="#A2A2A9" style="color: rgba(60, 60, 67, 0.6);">github.com</font></a></div></div></td></tr></tbody></table></td></tr></tbody></table></a></div></div><br></div><div dir="ltr">Besides all of the other advantages of Self over JS, it would be interesting to compare the performance of Self-on-WASM to JS native. IIRC, JS has mostly moved to an interpreter as mobile platforms like iOS don’t allow native JITs. </div><div dir="ltr"><br><blockquote type="cite">On Nov 28, 2022, at 1:42 PM, Russell Allen <mail@russell-allen.com> wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><br><div>
                    
     
     
       
         <meta charset="utf-8">
       
       
         <div id="compose-body-wrapper" dir="auto"><div dir="auto">Yes, 
that's basically right. I'm using a X11->vnc->canvas_vnc_client 
pathway because it exists and works, but longer term I'd love to cut out X 
and just have a Self vnc server (or some higher level protocol)</div><div dir="auto"><br></div><div dir="auto">Running Self directly in the browser 
under WASM would be very attractive because it would tackle the issue of 
GUI latency which is probably a more important issue for development than 
raw VM speed at the moment. </div><div dir="auto"><br></div><div dir="auto">Presumably it would also make the system more scalable by 
reducing OurSelf.io server requirements, but that's not really an issue yet 
:)</div><div dir="auto"><br></div><div dir="auto">I suspect we're talking 
about writing a new Self VM - is a port of the existing VM to WASM even 
theoretically possible? Can you write a JIT in WASM? Maybe SqueakJS could 
be altered to run Self. </div><div dir="auto"><br></div><div dir="auto">But either way it requires a fair amount of work.</div><div dir="auto"><br></div><div dir="auto">Russell</div><div dir="auto"><br></div></div><div class="replyHeader" dir="auto">Steve 
Dekorte wrote:</div><br><br><div><blockquote cite="mid:4b48d097b55f571594e1c11a5a162c44@smtp.hushmail.com" type="cite" style="margin:0 0 0 .8ex;border-left:1px #ccc 
solid;padding-left:1ex"><div><br></div><div>Hi 
Russell,</div><div><br></div><div>OurSelf.io looks like an interesting 
project. As I understand it, you launch a Self instance on a server within 
a FreeBSD container and then do screen sharing to that instance within a 
canvas element (and some JS code) in the browser. Is that 
correct?</div><div><br></div><div>Has anyone considered the possibility of 
porting Self to WASM so it could be run directly in the 
browser?</div><div><br></div><div>Steve</div><div><br></div></blockquote></div>
       
     
   
                   
</div></div></blockquote></body></html>