<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>You are the perfect open source user - you find a bug, work out the issue and provide a patch all within a single day! :)</div><div><br></div><div>If you can send me an email at <a href="mailto:mail@russell-allen.com">mail@russell-allen.com</a> saying that </div><div><br></div><div>(a) you irrevocably licence your changes under the Self licence at</div><div><br></div><div><a href="http://github.com/russellallen/self/raw/48fdb6b84d9680d9d50598d082efed834dd8919f/legal/LICENSE">http://github.com/russellallen/self/raw/48fdb6b84d9680d9d50598d082efed834dd8919f/legal/LICENSE</a></div><div><br></div><div>(ie SELF_WORKING_DIR/legal/LICENSE) and</div><div><br></div><div>(b) you are happy for me to add the changes to the github repo.</div><div><br></div><div>then I'll pull your changes across to the main repository and add you to the AUTHORS file.</div><div><br></div><div>------------------------</div><div><br></div><div>If you don't want to edit .self files directly, you need to use the transporter.  A good place to start is </div><div><br></div><div><a href="http://selflanguage.org/_static/manuals/Self-4.1-Pgm-Env.pdf">http://selflanguage.org/_static/manuals/Self-4.1-Pgm-Env.pdf</a></div><div><br></div><div>I should do a screencast at some stage though, as it's better to see it in action then read about it.</div><div><br></div><div>- Russell</div><br><div><div>On 21/07/2009, at 11:51 PM, Chris Double wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="background-color: rgb(255, 255, 255); position: static; z-index: auto; "><div id="ygrp-mlmsg" style="font-size: 13px; font-family: arial, helvetica, clean, sans-serif; width: 655px; position: relative; "><div id="ygrp-msg" style="line-height: 1.22em; width: 470px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 25px; padding-bottom: 0px; padding-left: 0px; float: left; z-index: 1; "><div id="ygrp-text" style="line-height: 1.22em; font-family: Georgia; "><p style="line-height: 1.22em; margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; ">I found the issue. The problem is in vm/src/unix/<wbr style="line-height: 1.22em; ">prims/unixPrims.<wbr style="line-height: 1.22em; ">cpp.<br style="line-height: 1.22em; ">The address in set_sockaddr_<wbr style="line-height: 1.22em; ">in isn't copied under Linux. The fix is:<br style="line-height: 1.22em; "><br style="line-height: 1.22em; "># if TARGET_OS_VERSION == SOLARIS_VERSION \<br style="line-height: 1.22em; ">- || TARGET_OS_VERSION == MACOSX_VERSION<br style="line-height: 1.22em; ">+ || TARGET_OS_VERSION == MACOSX_VERSION \<br style="line-height: 1.22em; ">+ || TARGET_OS_VERSION == LINUX_VERSION<br style="line-height: 1.22em; ">memcpy((char*<wbr style="line-height: 1.22em; ">) &aLong, address, sizeof(long)<wbr style="line-height: 1.22em; ">);<br style="line-height: 1.22em; ">memset(a.sin_<wbr style="line-height: 1.22em; ">zero, 0, sizeof(a.sin_<wbr style="line-height: 1.22em; ">zero));<br style="line-height: 1.22em; "><br style="line-height: 1.22em; ">I've put a git repository up with the following fixes:<br style="line-height: 1.22em; "><br style="line-height: 1.22em; ">1) The fix for the above issue<br style="line-height: 1.22em; ">2) Added socketConstants for Linux<br style="line-height: 1.22em; ">3) Fix to get the build working under Linux - uses flex, and modifies<br style="line-height: 1.22em; ">an include header line for <new>.<br style="line-height: 1.22em; "><br style="line-height: 1.22em; ">Note that for (2) I manually edited objects/core/<wbr style="line-height: 1.22em; ">unix.self. I'm not<br style="line-height: 1.22em; ">sure if this is the right way to do it. I originally did the change<br style="line-height: 1.22em; ">under the UI but didn't know how to file it out such that it will be<br style="line-height: 1.22em; ">recreated when bootstrapping a new image.<br style="line-height: 1.22em; "><br style="line-height: 1.22em; ">The changes are in my fork of the github self repository in the master<br style="line-height: 1.22em; ">branch:<span class="Apple-converted-space"> </span><a href="git://github.com/doublec/self.git" style="line-height: 1.22em; color: rgb(30, 102, 174); font-family: Verdana; ">git://github.<wbr style="line-height: 1.22em; ">com/doublec/<wbr style="line-height: 1.22em; ">self.git</a><br style="line-height: 1.22em; "><br style="line-height: 1.22em; ">To test it you can file in the web browser code:<br style="line-height: 1.22em; "><br style="line-height: 1.22em; ">bootstrap read: 'webBrowser' From: 'applications/<wbr style="line-height: 1.22em; ">webBrowser'<br style="line-height: 1.22em; "><br style="line-height: 1.22em; ">Then in a shell:<br style="line-height: 1.22em; "><br style="line-height: 1.22em; ">'<a href="http://www.w3.org/" style="line-height: 1.22em; color: rgb(30, 102, 174); font-family: Verdana; ">http://www.w3.<wbr style="line-height: 1.22em; ">org/</a>' asURL getPageForUser<br style="line-height: 1.22em; "><br style="line-height: 1.22em; ">Unfortunately it shows an error page since this browser doesn't<br style="line-height: 1.22em; ">support HTTP 1.1. Just about every webserver around uses virtual hosts<br style="line-height: 1.22em; ">and it doesn't send a Host: header. But the error page is the HTML<br style="line-height: 1.22em; ">served from the W3C website so it shows the browser and socket code<br style="line-height: 1.22em; ">working.<br style="line-height: 1.22em; "><br style="line-height: 1.22em; ">Chris.<br style="line-height: 1.22em; ">--<span class="Apple-converted-space"> </span><br style="line-height: 1.22em; "><a href="http://www.bluishcoder.co.nz" style="line-height: 1.22em; color: rgb(30, 102, 174); font-family: Verdana; ">http://www.bluishco<wbr style="line-height: 1.22em; ">der.co.nz</a><br style="line-height: 1.22em; "></p></div><div width="1" style="line-height: 1.22em; color: white; clear: both; "></div></div></blockquote></div><br></body></html>