<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:www.nabble.com,2006:forum-14124</id>
	<title>Nabble - MLton - Dev</title>
	<updated>2009-01-07T10:31:20Z</updated>
	<link rel="self" type="application/atom+xml" href="http://www.nabble.com/MLton---Dev-f14124.xml" />
	<link rel="alternate" type="text/html" href="http://www.nabble.com/MLton---Dev-f14124.html" />
	<subtitle type="html"></subtitle>
	
<entry>
	<id>tag:www.nabble.com,2006:post-21337456</id>
	<title>Re: [MLton-user] How to write performant network code</title>
	<published>2009-01-07T10:31:20Z</published>
	<updated>2009-01-07T10:31:20Z</updated>
	<author>
		<name>Henry Cejtin</name>
	</author>
	<content type="html">I &amp;nbsp;certainly am not arguing against calling memcpy(), but note that for small
&lt;br&gt;chunks of memory, the overhead of the the extra call to C (including &amp;nbsp;passing
&lt;br&gt;parameters &amp;nbsp;on the stack) could slow things down. &amp;nbsp;Still, probably the way to
&lt;br&gt;go.
&lt;br&gt;&lt;br&gt;For large copies, it can often be worth while checking the alignment and then
&lt;br&gt;moving a word at a time.
&lt;br&gt;&lt;br&gt;I don't have any idea on the hashing problem.
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;MLton mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=21337456&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;MLton@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mlton.org/mailman/listinfo/mlton&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/mailman/listinfo/mlton&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Re%3A--MLton-user--How-to-write-performant-network-code-tp21337456p21337456.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-21086779</id>
	<title>Training &amp; jobs</title>
	<published>2008-12-18T22:59:13Z</published>
	<updated>2008-12-18T22:59:13Z</updated>
	<author>
		<name>KiranUS</name>
	</author>
	<content type="html">“Join us to make future”
&lt;br&gt;FOR OPT/F-1 STUDENTS
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FREE TRAINING 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FOOD ACCOMODATION 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; H1B PROCESSING 
&lt;br&gt;FOR L1/ L2/ H1/ H4/ EAD/ GC 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; EXCELLENT OPPRTUNITIES 
&lt;br&gt;&amp;nbsp;	TRAINING 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PLACEMENT 
&lt;br&gt;Highly Competitive offers for New H1b Transfers
&lt;br&gt;&lt;br&gt;About Us:
&lt;br&gt;V2 technology inc is serving NJ since 2005, for us our employees are 
&lt;br&gt;of utmost importance. Our highly skilled and dedicated instructors 
&lt;br&gt;train you explicitly in market-related technologies for today and 
&lt;br&gt;tomorrow. We will work with you in developing marketing strategies 
&lt;br&gt;and finding the assignments of your choice.
&lt;br&gt;We not only help you get a job but we build your long lasting 
&lt;br&gt;careers!!! 
&lt;br&gt;What are we Looking for:
&lt;br&gt;&amp;nbsp; &amp;nbsp;Excellent communication skills. 
&lt;br&gt;&amp;nbsp; &amp;nbsp;Valid F1/ OPT/ CPT/ H1/ H4/ L1 or valid work status &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;(EAD, GC). 
&lt;br&gt;&amp;nbsp; &amp;nbsp;Bachelors’ degree in CS/ IT or previous IT experience. 
&lt;br&gt;&amp;nbsp; &amp;nbsp;Preferably (not mandatory) Master's Degree in Computers/ 
&lt;br&gt;&amp;nbsp; &amp;nbsp;Electronics or previous IT experience. 
&lt;br&gt;&amp;nbsp; &amp;nbsp;Willing to relocate anywhere in USA.
&lt;br&gt;&lt;br&gt;What’s The Deal: 
&lt;br&gt;&amp;nbsp; &amp;nbsp;H1-B sponsorship to F1/ OPT/ H4/ L1/ L2/ E3/ EAD 
&lt;br&gt;&amp;nbsp; &amp;nbsp;Transfer of H1 &amp; L1 visas. 
&lt;br&gt;&amp;nbsp; &amp;nbsp;Green Card sponsorship through PERM 
&lt;br&gt;&amp;nbsp; &amp;nbsp;Job focused professional training in 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Java/ J2EE 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; .NET 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Documentum 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Share point 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Oracle 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Data Modeling 
&lt;br&gt;&amp;nbsp; &amp;nbsp;Relocation assistance- airfare, hotel accommodation, car rental 
&lt;br&gt;&amp;nbsp; &amp;nbsp;etc 
&lt;br&gt;&amp;nbsp; &amp;nbsp;Guarantee lowest bench period. 
&lt;br&gt;&amp;nbsp; &amp;nbsp;Employee referral program. 
&lt;br&gt;&amp;nbsp; &amp;nbsp;Effective Resume writing help, Marketing and Placement. 
&lt;br&gt;&amp;nbsp; &amp;nbsp;Technical mock interviews. Preparation of In Person Interviews 
&lt;br&gt;&lt;br&gt;100% Guaranteed placement 
&lt;br&gt;Get in Touch:
&lt;br&gt;Contact immediately to know more about the opportunities with us 
&lt;br&gt;at:609-843-0312 
&lt;br&gt;or 
&lt;br&gt;write mail at jobs@v2techinc.com
&lt;br&gt;Contact person : John
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Training---jobs-tp21086779p21086779.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-21039989</id>
	<title>Re: MLton bug: unhandled exception in Basis Library.</title>
	<published>2008-12-16T11:26:47Z</published>
	<updated>2008-12-16T11:26:47Z</updated>
	<author>
		<name>Matthew Fluet-3</name>
	</author>
	<content type="html">On Tue, 16 Dec 2008, Henry Cejtin wrote:
&lt;br&gt;&amp;gt; Wouldn't it be easy if the emergeny handler just went straight to C code 
&lt;br&gt;&amp;gt; (via the FFI) to print out the history?
&lt;br&gt;&lt;br&gt;Good point. &amp;nbsp;Then it would probably suffice to move the implementation of 
&lt;br&gt;MLton.CallStack.current to &amp;lt;src&amp;gt;/basis-library/prim-mlton.sml, also do the 
&lt;br&gt;non-trivial setExtendExtra in &amp;lt;src&amp;gt;/basis-library/prim-mlton.sml, and, for 
&lt;br&gt;the emergency handler, hand off the entire call-stack array to C to 
&lt;br&gt;look-up and print the source strings.
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;MLton mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=21039989&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;MLton@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mlton.org/mailman/listinfo/mlton&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/mailman/listinfo/mlton&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/MLton-bug%3A-unhandled-exception-in-Basis-Library.-tp20960135p21039989.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-21038534</id>
	<title>Re: MLton bug: unhandled exception in Basis Library.</title>
	<published>2008-12-16T10:10:54Z</published>
	<updated>2008-12-16T10:10:54Z</updated>
	<author>
		<name>Henry Cejtin</name>
	</author>
	<content type="html">Wouldn't it be easy if the emergeny handler just went straight to C code (via the FFI) to print out the history?
&lt;br&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;MLton mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=21038534&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;MLton@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mlton.org/mailman/listinfo/mlton&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/mailman/listinfo/mlton&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/MLton-bug%3A-unhandled-exception-in-Basis-Library.-tp20960135p21038534.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-21036754</id>
	<title>RE: MLton bug: unhandled exception in Basis Library.</title>
	<published>2008-12-16T08:37:38Z</published>
	<updated>2008-12-16T08:37:38Z</updated>
	<author>
		<name>Matthew Fluet-3</name>
	</author>
	<content type="html">On Mon, 15 Dec 2008, Nicolas Bertolotti wrote:
&lt;br&gt;&amp;gt; Not really what I am looking for... (I already know how to use the exception history)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The problem here is that the exception occurs at program startup during the initialisation of the basis library.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; At this stage, there is no real way to catch the exception and print the history.
&lt;br&gt;&lt;br&gt;The &amp;quot;fancy&amp;quot; top-level exception handler, that prints the history, is 
&lt;br&gt;implemented in
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;src&amp;gt;/basis-library/primitive/mlton/exn.sml
&lt;br&gt;and &amp;quot;installed&amp;quot; by 'Primitive.TopLevel.setHandler' in
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;src&amp;gt;/basis-library/primitive/mlton/mlton.sml
&lt;br&gt;&lt;br&gt;An unhandled exception that is raised during the evaluation of the Basis 
&lt;br&gt;Library before the installation of the &amp;quot;fancy&amp;quot; top-level exception handler 
&lt;br&gt;is handled by the &amp;quot;emergency&amp;quot; top-level exception handler that is 
&lt;br&gt;&amp;quot;installed&amp;quot; in
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;src&amp;gt;/basis-library/primitive/prim2.sml
&lt;br&gt;&lt;br&gt;If you want the emergency exception handler to print an exception history, 
&lt;br&gt;then you need to move (some portion of) the fancy exception handler 
&lt;br&gt;implementation back to the implementation of the emergency handler. &amp;nbsp;In 
&lt;br&gt;particular, you need to call 'Primitive.MLton.Exn.setExtendExtra' with a 
&lt;br&gt;non-trivial function that captures the call-stack and you need to walk the 
&lt;br&gt;call-stack, extract the entries, and print them. &amp;nbsp;It won't be trivial, 
&lt;br&gt;since, at the point of definition of the emergency exception handler, you 
&lt;br&gt;have almost no Basis Library functions available; everything will need to 
&lt;br&gt;be done with very primitive operations.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;MLton mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=21036754&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;MLton@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mlton.org/mailman/listinfo/mlton&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/mailman/listinfo/mlton&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/MLton-bug%3A-unhandled-exception-in-Basis-Library.-tp20960135p21036754.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-21012946</id>
	<title>RE: MLton bug: unhandled exception in Basis Library.</title>
	<published>2008-12-15T04:20:37Z</published>
	<updated>2008-12-15T04:20:37Z</updated>
	<author>
		<name>Nicolas Bertolotti-2</name>
	</author>
	<content type="html">Not really what I am looking for... (I already know how to use the exception history)
&lt;br&gt;&lt;br&gt;The problem here is that the exception occurs at program startup during the initialisation of the basis library.
&lt;br&gt;&lt;br&gt;At this stage, there is no real way to catch the exception and print the history.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; -----Original Message-----
&lt;br&gt;&amp;gt; From: Vesa Karvonen [mailto:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=21012946&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;vesa.a.j.k@...&lt;/a&gt;]
&lt;br&gt;&amp;gt; Sent: Friday, December 12, 2008 2:44 PM
&lt;br&gt;&amp;gt; To: Nicolas Bertolotti
&lt;br&gt;&amp;gt; Cc: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=21012946&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;mlton@...&lt;/a&gt;
&lt;br&gt;&amp;gt; Subject: Re: [MLton] MLton bug: unhandled exception in Basis Library.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Thu, Dec 11, 2008 at 7:18 PM, Nicolas Bertolotti
&lt;br&gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=21012946&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nicolas.Bertolotti@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; [...]
&lt;br&gt;&amp;gt; &amp;gt; I am now trying to identify the call that raises this error but I can
&lt;br&gt;&amp;gt; not
&lt;br&gt;&amp;gt; &amp;gt; figure how to retrieve and print the exception history.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The following post might be helpful:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://mlton.org/pipermail/mlton/2006-December/029466.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/pipermail/mlton/2006-December/029466.html&lt;/a&gt;&amp;nbsp;. &amp;nbsp;As this
&lt;br&gt;&amp;gt; is at least the second time this issue has shown up, it might be
&lt;br&gt;&amp;gt; useful to add this to the FAQ (&lt;a href=&quot;http://mlton.org/FAQ&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/FAQ&lt;/a&gt;).
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; -Vesa Karvonen
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;MLton mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=21012946&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;MLton@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mlton.org/mailman/listinfo/mlton&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/mailman/listinfo/mlton&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/MLton-bug%3A-unhandled-exception-in-Basis-Library.-tp20960135p21012946.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20975888</id>
	<title>Re: MLton bug: unhandled exception in Basis Library.</title>
	<published>2008-12-12T05:44:21Z</published>
	<updated>2008-12-12T05:44:21Z</updated>
	<author>
		<name>Vesa Karvonen-2</name>
	</author>
	<content type="html">On Thu, Dec 11, 2008 at 7:18 PM, Nicolas Bertolotti
&lt;br&gt;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20975888&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nicolas.Bertolotti@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;[...]
&lt;br&gt;&amp;gt; I am now trying to identify the call that raises this error but I can not
&lt;br&gt;&amp;gt; figure how to retrieve and print the exception history.
&lt;br&gt;&lt;br&gt;The following post might be helpful:
&lt;br&gt;&lt;a href=&quot;http://mlton.org/pipermail/mlton/2006-December/029466.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/pipermail/mlton/2006-December/029466.html&lt;/a&gt;&amp;nbsp;. &amp;nbsp;As this
&lt;br&gt;is at least the second time this issue has shown up, it might be
&lt;br&gt;useful to add this to the FAQ (&lt;a href=&quot;http://mlton.org/FAQ&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/FAQ&lt;/a&gt;).
&lt;br&gt;&lt;br&gt;-Vesa Karvonen
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;MLton mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20975888&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;MLton@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mlton.org/mailman/listinfo/mlton&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/mailman/listinfo/mlton&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/MLton-bug%3A-unhandled-exception-in-Basis-Library.-tp20960135p20975888.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20960135</id>
	<title>MLton bug: unhandled exception in Basis Library.</title>
	<published>2008-12-11T09:18:50Z</published>
	<updated>2008-12-11T09:18:50Z</updated>
	<author>
		<name>Nicolas Bertolotti-2</name>
	</author>
	<content type="html">&lt;html xmlns:v=&quot;urn:schemas-microsoft-com:vml&quot; xmlns:o=&quot;urn:schemas-microsoft-com:office:office&quot; xmlns:w=&quot;urn:schemas-microsoft-com:office:word&quot; xmlns:x=&quot;urn:schemas-microsoft-com:office:excel&quot; xmlns:p=&quot;urn:schemas-microsoft-com:office:powerpoint&quot; xmlns:a=&quot;urn:schemas-microsoft-com:office:access&quot; xmlns:dt=&quot;uuid:C2F41010-65B3-11d1-A29F-00AA00C14882&quot; xmlns:s=&quot;uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882&quot; xmlns:rs=&quot;urn:schemas-microsoft-com:rowset&quot; xmlns:Z=&quot;urn:schemas-microsoft-com:&quot; xmlns:b=&quot;urn:schemas-microsoft-com:office:publisher&quot; xmlns:ss=&quot;urn:schemas-microsoft-com:office:spreadsheet&quot; xmlns:c=&quot;urn:schemas-microsoft-com:office:component:spreadsheet&quot; xmlns:odc=&quot;urn:schemas-microsoft-com:office:odc&quot; xmlns:oa=&quot;urn:schemas-microsoft-com:office:activation&quot; xmlns:html=&quot;http://www.w3.org/TR/REC-html40&quot; xmlns:q=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot; xmlns:D=&quot;DAV:&quot; xmlns:x2=&quot;http://schemas.microsoft.com/office/excel/2003/xml&quot; xmlns:ois=&quot;http://schemas.microsoft.com/sharepoint/soap/ois/&quot; xmlns:dir=&quot;http://schemas.microsoft.com/sharepoint/soap/directory/&quot; xmlns:ds=&quot;http://www.w3.org/2000/09/xmldsig#&quot; xmlns:dsp=&quot;http://schemas.microsoft.com/sharepoint/dsp&quot; xmlns:udc=&quot;http://schemas.microsoft.com/data/udc&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot; xmlns:sub=&quot;http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/&quot; xmlns:ec=&quot;http://www.w3.org/2001/04/xmlenc#&quot; xmlns:sp=&quot;http://schemas.microsoft.com/sharepoint/&quot; xmlns:sps=&quot;http://schemas.microsoft.com/sharepoint/soap/&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:udcxf=&quot;http://schemas.microsoft.com/data/udc/xmlfile&quot; xmlns:wf=&quot;http://schemas.microsoft.com/sharepoint/soap/workflow/&quot; xmlns:mver=&quot;http://schemas.openxmlformats.org/markup-compatibility/2006&quot; xmlns:m=&quot;http://schemas.microsoft.com/office/2004/12/omml&quot; xmlns:mrels=&quot;http://schemas.openxmlformats.org/package/2006/relationships&quot; xmlns:ex12t=&quot;http://schemas.microsoft.com/exchange/services/2006/types&quot; xmlns:ex12m=&quot;http://schemas.microsoft.com/exchange/services/2006/messages&quot; xmlns:st=&quot;&amp;#1;&quot; xmlns=&quot;http://www.w3.org/TR/REC-html40&quot;&gt;

&lt;head&gt;
&lt;meta http-equiv=Content-Type content=&quot;text/html; charset=us-ascii&quot;&gt;
&lt;meta name=Generator content=&quot;Microsoft Word 12 (filtered medium)&quot;&gt;
&lt;!--[if !mso]&gt;
&lt;style&gt;
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
&lt;/style&gt;
&lt;![endif]--&gt;

&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:shapedefaults v:ext=&quot;edit&quot; spidmax=&quot;2050&quot; /&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:shapelayout v:ext=&quot;edit&quot;&gt;
  &lt;o:idmap v:ext=&quot;edit&quot; data=&quot;1&quot; /&gt;
 &lt;/o:shapelayout&gt;&lt;/xml&gt;&lt;![endif]--&gt;
&lt;/head&gt;

&lt;body lang=FR link=blue vlink=purple&gt;

&lt;div class=Section1&gt;

&lt;p class=MsoNormal&gt;Hello,&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;After changing the way my SML binary is launched on Windows (previously
using spawnve(), now using CreateProcess()), &amp;nbsp;I am facing this crash at
the beginning of its execution.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;The crash is version dependent (e.g. works fine on Windows
Vista&amp;nbsp;; no longer works on Windows XP).&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;I added a &amp;laquo;&amp;nbsp;print&amp;nbsp;&amp;raquo; in the function
raiseSys() which shows that the error corresponds to a &amp;laquo;&amp;nbsp;Bad file
descriptor&amp;nbsp;&amp;raquo;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;I am now trying to identify the call that raises this error
but I can not figure how to retrieve and print the exception history.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Any hint&amp;nbsp;?&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;Thanks in advance&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 align=left style='border-collapse:collapse'&gt;
 &lt;tr&gt;
  &lt;td width=227 valign=top style='width:170.6pt;border-top:solid windowtext 1.0pt;
  border-left:solid windowtext 1.0pt;border-bottom:none;border-right:none;
  background:#0A2A70;padding:0cm 0cm 0cm 0cm'&gt;
  &lt;table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 style='border-collapse:collapse'&gt;
   &lt;tr&gt;
    &lt;td width=226 valign=top style='width:169.6pt;padding:0cm 5.4pt 0cm 5.4pt'&gt;
    &lt;div&gt;
    &lt;p class=MsoNormal style='mso-element:frame;mso-element-frame-hspace:2.25pt;
    mso-element-wrap:around;mso-element-anchor-vertical:paragraph;mso-element-anchor-horizontal:
    column;mso-height-rule:exactly'&gt;&lt;a href=&quot;http://www.mathworks.fr/&quot; target=&quot;_blank&quot; title=&quot;http://www.mathworks.fr/&quot; rel=&quot;nofollow&quot;&gt;&lt;span style='font-size:
    10.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&quot;;color:white;text-decoration:
    none'&gt;&lt;img border=0 width=176 height=52 id=&quot;Image_x0020_1&quot; src=&quot;http://www.nabble.com/attachment/20960135/0/image002.jpg&quot; alt=&quot;cid:image001.gif@01C7BFD3.87CF8F80&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style='font-size:
    12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&quot;;color:white'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
    &lt;p class=MsoNormal style='mso-element:frame;mso-element-frame-hspace:2.25pt;
    mso-element-wrap:around;mso-element-anchor-vertical:paragraph;mso-element-anchor-horizontal:
    column;mso-height-rule:exactly'&gt;&lt;span style='font-size:12.0pt;font-family:
    &quot;Verdana&quot;,&quot;sans-serif&quot;'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
    &lt;/div&gt;
    &lt;/td&gt;
   &lt;/tr&gt;
  &lt;/table&gt;
  &lt;/td&gt;
  &lt;td width=191 style='width:143.4pt;border-top:solid windowtext 1.0pt;
  border-left:none;border-bottom:none;border-right:solid windowtext 1.0pt;
  background:#0A2A70;padding:0cm 0cm 0cm 0cm'&gt;
  &lt;table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 style='border-collapse:collapse'&gt;
   &lt;tr&gt;
    &lt;td width=190 style='width:142.4pt;padding:0cm 5.4pt 0cm 5.4pt'&gt;
    &lt;p class=MsoNormal align=right style='text-align:right;mso-element:frame;
    mso-element-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertical:
    paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly'&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:&quot;Century Gothic&quot;,&quot;sans-serif&quot;;
    color:white'&gt;&lt;a href=&quot;http://www.mathworks.fr/&quot; title=&quot;http://www.mathworks.fr/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;&lt;span style='color:white'&gt;Accelerating the
    pace of&amp;nbsp; engineering and science&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
    &lt;/td&gt;
   &lt;/tr&gt;
  &lt;/table&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td width=227 valign=top style='width:170.6pt;border:none;border-left:solid windowtext 1.0pt;
  padding:0cm 0cm 0cm 0cm'&gt;
  &lt;table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width=227 style='width:170.6pt;border-collapse:collapse'&gt;
   &lt;tr&gt;
    &lt;td width=227 valign=top style='width:170.6pt;padding:1.4pt 5.4pt 1.4pt 5.4pt'&gt;
    &lt;p class=MsoNormal style='mso-element:frame;mso-element-frame-hspace:2.25pt;
    mso-element-wrap:around;mso-element-anchor-vertical:paragraph;mso-element-anchor-horizontal:
    column;mso-height-rule:exactly'&gt;&lt;b&gt;&lt;span lang=EN-GB style='font-size:10.0pt;
    font-family:&quot;Century Gothic&quot;,&quot;sans-serif&quot;;color:#002470'&gt;Nicolas Bertolotti&lt;/span&gt;&lt;/b&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:&quot;Century Gothic&quot;,&quot;sans-serif&quot;;
    color:#002470'&gt; &lt;br&gt;
    Senior Development Engineer&lt;/span&gt;&lt;span lang=EN-GB style='font-size:12.0pt;
    font-family:&quot;Times New Roman&quot;,&quot;serif&quot;'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
    &lt;/td&gt;
   &lt;/tr&gt;
  &lt;/table&gt;
  &lt;/td&gt;
  &lt;td width=191 valign=top style='width:143.4pt;border:none;border-right:solid windowtext 1.0pt;
  padding:0cm 0cm 0cm 0cm'&gt;
  &lt;table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width=192 style='width:143.75pt;border-collapse:collapse'&gt;
   &lt;tr&gt;
    &lt;td width=192 valign=top style='width:143.75pt;padding:1.4pt 5.4pt 1.4pt 5.4pt'&gt;
    &lt;p class=MsoNormal align=right style='text-align:right;mso-element:frame;
    mso-element-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertical:
    paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly'&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Century Gothic&quot;,&quot;sans-serif&quot;;
    color:#002470'&gt;2 Rue de Paris&lt;br&gt;
    92196 Meudon Cedex&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
    &lt;p class=MsoNormal align=right style='text-align:right;mso-element:frame;
    mso-element-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertical:
    paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly'&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Century Gothic&quot;,&quot;sans-serif&quot;;
    color:#002470'&gt;France&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
    &lt;/td&gt;
   &lt;/tr&gt;
  &lt;/table&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td width=227 valign=bottom style='width:170.6pt;border-top:none;border-left:
  solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-right:
  none;padding:0cm 0cm 0cm 0cm'&gt;
  &lt;table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 style='border-collapse:collapse'&gt;
   &lt;tr&gt;
    &lt;td width=220 valign=top style='width:165.35pt;padding:1.4pt 5.4pt 1.4pt 5.4pt'&gt;
    &lt;p class=MsoNormal style='mso-element:frame;mso-element-frame-hspace:2.25pt;
    mso-element-wrap:around;mso-element-anchor-vertical:paragraph;mso-element-anchor-horizontal:
    column;mso-height-rule:exactly'&gt;&lt;span style='font-size:10.0pt;font-family:
    &quot;Century Gothic&quot;,&quot;sans-serif&quot;;color:#002470'&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20960135&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nicolas.Bertolotti@...&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
    &lt;/td&gt;
   &lt;/tr&gt;
  &lt;/table&gt;
  &lt;/td&gt;
  &lt;td width=191 valign=top style='width:143.4pt;border-top:none;border-left:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  padding:0cm 0cm 0cm 0cm'&gt;
  &lt;table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 style='border-collapse:collapse'&gt;
   &lt;tr&gt;
    &lt;td width=62 valign=top style='width:46.4pt;padding:1.4pt 5.4pt 1.4pt 5.4pt'&gt;
    &lt;p class=MsoNormal align=right style='text-align:right;mso-element:frame;
    mso-element-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertical:
    paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly'&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Century Gothic&quot;,&quot;sans-serif&quot;;
    color:#002470'&gt;tel:&lt;br&gt;
    fax:&lt;br&gt;
    mobile:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td width=130 valign=top style='width:97.35pt;padding:1.4pt 5.4pt 1.4pt 5.4pt'&gt;
    &lt;p class=MsoNormal align=right style='text-align:right;mso-element:frame;
    mso-element-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertical:
    paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly'&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Century Gothic&quot;,&quot;sans-serif&quot;;
    color:navy'&gt;+33.1.41.14.88.55&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
    &lt;p class=MsoNormal align=right style='text-align:right;mso-element:frame;
    mso-element-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertical:
    paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly'&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Century Gothic&quot;,&quot;sans-serif&quot;;
    color:navy'&gt;+33.1.55.64.06.64&lt;/span&gt;&lt;span style='font-size:10.0pt;
    font-family:&quot;Century Gothic&quot;,&quot;sans-serif&quot;;color:#002470'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
    &lt;p class=MsoNormal align=right style='text-align:right;mso-element:frame;
    mso-element-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertical:
    paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly'&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Century Gothic&quot;,&quot;sans-serif&quot;;
    color:navy'&gt;+33.6.86.41.87.15&lt;/span&gt;&lt;span style='font-size:10.0pt;
    font-family:&quot;Century Gothic&quot;,&quot;sans-serif&quot;;color:#002470'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
    &lt;/td&gt;
   &lt;/tr&gt;
  &lt;/table&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;/table&gt;

&lt;p class=MsoNormal&gt;&lt;span style='font-size:12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&quot;'&gt;&amp;nbsp;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;/body&gt;

&lt;/html&gt;
&lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;MLton mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20960135&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;MLton@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mlton.org/mailman/listinfo/mlton&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/mailman/listinfo/mlton&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/MLton-bug%3A-unhandled-exception-in-Basis-Library.-tp20960135p20960135.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20692036</id>
	<title>Re: Including dlfcn-win32 in MLton</title>
	<published>2008-11-25T15:45:19Z</published>
	<updated>2008-11-25T15:45:19Z</updated>
	<author>
		<name>Dan DuVarney</name>
	</author>
	<content type="html">Ville Laurikari wrote:
&lt;br&gt;&amp;gt; Dan, have you had any luck in getting commit access to get your patch
&lt;br&gt;&amp;gt; included in the official SVN repo
&lt;br&gt;I'm afraid I haven't been able to get in touch with Ramiro Polla. If you
&lt;br&gt;find his e-mail address,
&lt;br&gt;please let me know, too.
&lt;br&gt;&lt;br&gt;-Dan
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Dan DuVarney
&lt;br&gt;Senior Software Engineer &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Reactive Systems Inc.
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20692036&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;duvarney@...&lt;/a&gt; &amp;nbsp; &amp;nbsp;+1 (919) 324-3507 ext. 103
&lt;br&gt;OpenPGP (GnuPG) public key file:
&lt;br&gt;&lt;a href=&quot;http://www.reactive-systems.com/~duvarney/pgp_public_key.txt&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.reactive-systems.com/~duvarney/pgp_public_key.txt&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;MLton mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20692036&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;MLton@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mlton.org/mailman/listinfo/mlton&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/mailman/listinfo/mlton&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Including-dlfcn-win32-in-MLton-tp20662399p20692036.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20662399</id>
	<title>Including dlfcn-win32 in MLton</title>
	<published>2008-11-24T06:55:57Z</published>
	<updated>2008-11-24T06:55:57Z</updated>
	<author>
		<name>Ville Laurikari</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;There was discussion a while ago regarding removing the built-in
&lt;br&gt;implementation on dlopen() and friends from the MLton runtime (on
&lt;br&gt;MinGW), and using dlfcn-win32 instead.
&lt;br&gt;&lt;br&gt;An unpatched version of dlfcn-win32 does not work at all with MLton,
&lt;br&gt;which Dan DuVarney no doubt has noticed and made a patch:
&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://code.google.com/p/dlfcn-win32/issues/detail?id=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://code.google.com/p/dlfcn-win32/issues/detail?id=2&lt;/a&gt;&lt;br&gt;&lt;br&gt;With this patch, it at least appears to work. &amp;nbsp;Before, programs would
&lt;br&gt;just throw a DynLinkError with an empty messag. &amp;nbsp;I didn't check if it
&lt;br&gt;leaks handles or not, but I believe Vesa in that it does leak.
&lt;br&gt;&lt;br&gt;Dan, have you had any luck in getting commit access to get your patch
&lt;br&gt;included in the official SVN repo?
&lt;br&gt;&lt;br&gt;My point is that if we plan to use dlfcn-win32 in MLton, it would be
&lt;br&gt;good that the upstream version works as-is. &amp;nbsp;Having to patch it sort
&lt;br&gt;of defeats the purpose of not having to maintain our own code for
&lt;br&gt;dlopen().
&lt;br&gt;&lt;br&gt;BTW, I could not find an email address for Ramiro Polla, the author of
&lt;br&gt;dlfcn-win32. &amp;nbsp;Does anyone have it?
&lt;br&gt;&lt;br&gt;--
&lt;br&gt;&lt;a href=&quot;http://www.iki.fi/vl/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.iki.fi/vl/&lt;/a&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;MLton mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20662399&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;MLton@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mlton.org/mailman/listinfo/mlton&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/mailman/listinfo/mlton&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Including-dlfcn-win32-in-MLton-tp20662399p20662399.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20622456</id>
	<title>Re: Re: [MLton-user] SVN r6941 MLton/MinGW32 and FFI</title>
	<published>2008-11-21T06:42:47Z</published>
	<updated>2008-11-21T06:42:47Z</updated>
	<author>
		<name>Ville Laurikari</name>
	</author>
	<content type="html">On Mon, Nov 17, 2008 at 04:00:08PM +0100, Wesley W. Terpstra wrote:
&lt;br&gt;&amp;gt; Ok, so we can remove the MLton ones? I think they are broken atm anyway
&lt;br&gt;&amp;gt; since they get prefix with MLton_ by the mingw.h.
&lt;br&gt;&lt;br&gt;I can confirm that the current dlopen and friends from mingw.c don't
&lt;br&gt;work, exactly because they are prefixed with MLton_.
&lt;br&gt;&lt;br&gt;&amp;gt; I was thinking we could just include their (fixed) library in the
&lt;br&gt;&amp;gt; MLton mingw installer.
&lt;br&gt;&lt;br&gt;This seems like a good idea.
&lt;br&gt;&lt;br&gt;--
&lt;br&gt;&lt;a href=&quot;http://www.iki.fi/vl/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.iki.fi/vl/&lt;/a&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;MLton mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20622456&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;MLton@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mlton.org/mailman/listinfo/mlton&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/mailman/listinfo/mlton&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Re%3A--MLton-user--SVN-r6941-MLton-MinGW32-and-FFI-tp20447361p20622456.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20573241</id>
	<title>RE: A few changes proposals for MLton</title>
	<published>2008-11-18T19:46:48Z</published>
	<updated>2008-11-18T19:46:48Z</updated>
	<author>
		<name>Matthew Fluet-3</name>
	</author>
	<content type="html">On Mon, 17 Nov 2008, Nicolas Bertolotti wrote:
&lt;br&gt;&amp;gt; I am also not really sure that the proposed operation:
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp;maxSize = alignDown(SIZE_MAX, s-&amp;gt;sysvals.pageSize);
&lt;br&gt;&amp;gt;&amp;gt; + &amp;nbsp;maxSize -= sizeofCardMapAndCrossMap(s, maxSize);
&lt;br&gt;&amp;gt; really returns the exact maximum size for a heap. It is not really an 
&lt;br&gt;&amp;gt; issue but you may think of a better way.
&lt;br&gt;&lt;br&gt;True, your operation yields a maxSize that is slightly smaller than 
&lt;br&gt;necessary, because it uses a larger than necessary card/cross map size.
&lt;br&gt;One could write an invertSizeofCardMapAndCrossMap function such that:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;heapSize = invertSizeofCardMapAndCrossMap (s, heapWithMapsSize);
&lt;br&gt;&lt;br&gt;implies
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;heapSize + sizeofCardMapAndCrossMap (s, heapSize)
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;= heapWithMapsSize
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt; (heapSize + s-&amp;gt;sysvals.pageSize)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; + sizeofCardMapAndCrossMap (s, heapSize + s-&amp;gt;sysvals.pageSize)
&lt;br&gt;&lt;br&gt;which yields the largest (up to the pageSize) heapSize such that adding 
&lt;br&gt;its card/cross map size requires space less than or equal to the input 
&lt;br&gt;heapWithMapsSize.
&lt;br&gt;&lt;br&gt;According to my calculations, your operation yields:
&lt;br&gt;&amp;nbsp; &amp;nbsp;maxSize = 4,294,963,200 - 33,554,432
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 4,261,408,768
&lt;br&gt;with
&lt;br&gt;&amp;nbsp; &amp;nbsp;sizeofCardMapAndCrossMap(maxSize) = 33,292,288
&lt;br&gt;and
&lt;br&gt;&amp;nbsp; &amp;nbsp;maxSize + sizeofCardMapAndCrossMap(maxSize) = 4,294,701,056
&lt;br&gt;&lt;br&gt;However, one could take:
&lt;br&gt;&amp;nbsp; &amp;nbsp;maxSize = 4,261,662,720
&lt;br&gt;with
&lt;br&gt;&amp;nbsp; &amp;nbsp;sizeofCardMapAndCrossMap(maxSize) = 33,300,480
&lt;br&gt;and
&lt;br&gt;&amp;nbsp; &amp;nbsp;maxSize + sizeofCardMapAndCrossMap(maxSize) = 4,294,963,200
&lt;br&gt;&lt;br&gt;In practice, though, either of these values for maxSize is well above what 
&lt;br&gt;is available in a contiguous mmap allocation (either with mremap or after 
&lt;br&gt;dumping the heap to disk).
&lt;br&gt;&lt;br&gt;&amp;gt; It could also be slightly more efficient to compute this value only once 
&lt;br&gt;&amp;gt; at the beginning of the execution.
&lt;br&gt;&lt;br&gt;Agreed, although sizeofHeapDesired isn't on a critical path, so I doubt 
&lt;br&gt;that it would have any measurable effect.
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;MLton mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20573241&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;MLton@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mlton.org/mailman/listinfo/mlton&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/mailman/listinfo/mlton&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/A-few-changes-proposals-for-MLton-tp20490002p20573241.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20554763</id>
	<title>RE: A few changes proposals for MLton</title>
	<published>2008-11-17T23:37:51Z</published>
	<updated>2008-11-17T23:37:51Z</updated>
	<author>
		<name>Nicolas Bertolotti-2</name>
	</author>
	<content type="html">&lt;html xmlns:v=&quot;urn:schemas-microsoft-com:vml&quot; xmlns:o=&quot;urn:schemas-microsoft-com:office:office&quot; xmlns:w=&quot;urn:schemas-microsoft-com:office:word&quot; xmlns:st1=&quot;urn:schemas-microsoft-com:office:smarttags&quot; xmlns=&quot;http://www.w3.org/TR/REC-html40&quot;&gt;

&lt;head&gt;
&lt;META HTTP-EQUIV=&quot;Content-Type&quot; CONTENT=&quot;text/html; charset=us-ascii&quot;&gt;
&lt;meta name=Generator content=&quot;Microsoft Word 11 (filtered medium)&quot;&gt;
&lt;!--[if !mso]&gt;
&lt;style&gt;
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
&lt;/style&gt;
&lt;![endif]--&gt;&lt;o:SmartTagType namespaceuri=&quot;urn:schemas-microsoft-com:office:smarttags&quot; name=&quot;PersonName&quot; /&gt;
&lt;!--[if !mso]&gt;
&lt;style&gt;
st1\:*{behavior:url(#default#ieooui) }
&lt;/style&gt;
&lt;![endif]--&gt;


&lt;/head&gt;

&lt;body lang=FR link=blue vlink=blue&gt;

&lt;div class=Section1&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 color=navy face=Arial&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:Arial;color:navy'&gt;The only reason why I do
this is that it is not possible to do a &amp;laquo;&amp;nbsp;chdir&amp;nbsp;&amp;raquo; to &amp;#8220;&lt;a href=&quot;file:///\\pumpkin&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;\\pumpkin&lt;/a&gt;&amp;#8221;. This is how Windows works (too
bad) and I&amp;#8217;m afraid there is no other way to support UNC paths.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 color=navy face=Arial&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:Arial;color:navy'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 color=navy face=Arial&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:Arial;color:navy'&gt;I will join the
discussion&amp;#8230;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 color=navy face=Arial&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:Arial;color:navy'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;div style='border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt'&gt;

&lt;div&gt;

&lt;div class=MsoNormal align=center style='text-align:center'&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:12.0pt'&gt;

&lt;hr size=2 width=&quot;100%&quot; align=center tabindex=-1&gt;

&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;

&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;font size=2 face=Tahoma&gt;&lt;span style='font-size:10.0pt;
font-family:Tahoma;font-weight:bold'&gt;From:&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;font size=2 face=Tahoma&gt;&lt;span style='font-size:10.0pt;font-family:Tahoma'&gt; Wesley W.
Terpstra [mailto:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20554763&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;wesley@...&lt;/a&gt;] &lt;br&gt;
&lt;b&gt;&lt;span style='font-weight:bold'&gt;Sent:&lt;/span&gt;&lt;/b&gt; Tuesday, November 18, 2008
12:45 AM&lt;br&gt;
&lt;b&gt;&lt;span style='font-weight:bold'&gt;To:&lt;/span&gt;&lt;/b&gt; &lt;st1:PersonName ProductID=&quot;Nicolas Bertolotti&quot; w:st=&quot;on&quot;&gt;Nicolas Bertolotti&lt;/st1:PersonName&gt;&lt;br&gt;
&lt;b&gt;&lt;span style='font-weight:bold'&gt;Cc:&lt;/span&gt;&lt;/b&gt; Matthew Fluet; &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20554763&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;mlton@...&lt;/a&gt;&lt;br&gt;
&lt;b&gt;&lt;span style='font-weight:bold'&gt;Subject:&lt;/span&gt;&lt;/b&gt; Re: [MLton] A few changes
proposals for MLton&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p class=MsoNormal&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:
12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:
12.0pt'&gt;On Mon, Nov 17, 2008 at 11:49 PM, &lt;st1:PersonName ProductID=&quot;Nicolas Bertolotti&quot; w:st=&quot;on&quot;&gt;Nicolas Bertolotti&lt;/st1:PersonName&gt;
&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20554763&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nicolas.Bertolotti@...&lt;/a&gt;&amp;gt;
wrote:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;div&gt;

&lt;blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;
margin-left:4.8pt;margin-right:0cm'&gt;

&lt;div link=blue vlink=blue&gt;

&lt;div&gt;

&lt;div style='border:none;border-left:solid windowtext 1.5pt;padding:0cm 0cm 0cm 4.0pt;
border-color:-moz-use-text-color -moz-use-text-color -moz-use-text-color blue'&gt;

&lt;div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 color=navy face=Arial&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:Arial;color:navy'&gt;I am sorry but I don't
really understand what you mean with &amp;laquo;&amp;nbsp;You should bring up having UNC
volumes as that is currently forbidden by the definition&amp;nbsp;&amp;raquo; (maybe it is
just a problem with my English understanding).&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;

&lt;/blockquote&gt;

&lt;div&gt;

&lt;p class=MsoNormal style='margin-bottom:12.0pt'&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:12.0pt'&gt;&lt;br&gt;
Your patch changes OS.Path.fromString &amp;quot;\\pumpkin\media\foo&amp;quot; to return
{ vol=&amp;quot;\\pumpkin\media&amp;quot;, isAbs=true, arcs=[&amp;quot;foo&amp;quot;] }. The
problem with that is that the standard &amp;lt;&lt;a href=&quot;http://mlton.org/basis/os-path.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/basis/os-path.html&lt;/a&gt;&amp;gt;
states &amp;quot;Under Microsoft Windows, the valid volume names have the form &lt;/span&gt;&lt;/font&gt;&lt;code&gt;&lt;font size=2 face=&quot;Courier New&quot;&gt;&lt;span style='font-size:10.0pt'&gt;&amp;quot;a:&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/code&gt;,
&lt;code&gt;&lt;font size=2 face=&quot;Courier New&quot;&gt;&lt;span style='font-size:10.0pt'&gt;&amp;quot;A:&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/code&gt;,
&lt;code&gt;&lt;font size=2 face=&quot;Courier New&quot;&gt;&lt;span style='font-size:10.0pt'&gt;&amp;quot;b:&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/code&gt;,
&lt;code&gt;&lt;font size=2 face=&quot;Courier New&quot;&gt;&lt;span style='font-size:10.0pt'&gt;&amp;quot;B:&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/code&gt;,
etc&amp;quot;. That list pretty clearly doesn't intend to allow \\pumpkin\media as
a volume. There was a discussion going on between Andreas and John Reppy (the
basis specification editor) about the OS.Path structure. I was proposing that
you join the discussion and see if the basis specification could be changed to
allow vol=&amp;quot;\\pumpkin\media&amp;quot; the way your patch does.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;/div&gt;

&lt;p class=MsoNormal&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:
12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;/div&gt;

&lt;/body&gt;

&lt;/html&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;MLton mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20554763&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;MLton@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mlton.org/mailman/listinfo/mlton&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/mailman/listinfo/mlton&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/A-few-changes-proposals-for-MLton-tp20490002p20554763.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20554717</id>
	<title>RE: A few changes proposals for MLton</title>
	<published>2008-11-17T23:33:25Z</published>
	<updated>2008-11-17T23:33:25Z</updated>
	<author>
		<name>Nicolas Bertolotti-2</name>
	</author>
	<content type="html">&lt;html xmlns:v=&quot;urn:schemas-microsoft-com:vml&quot; xmlns:o=&quot;urn:schemas-microsoft-com:office:office&quot; xmlns:w=&quot;urn:schemas-microsoft-com:office:word&quot; xmlns:st1=&quot;urn:schemas-microsoft-com:office:smarttags&quot; xmlns=&quot;http://www.w3.org/TR/REC-html40&quot;&gt;

&lt;head&gt;
&lt;META HTTP-EQUIV=&quot;Content-Type&quot; CONTENT=&quot;text/html; charset=us-ascii&quot;&gt;
&lt;meta name=Generator content=&quot;Microsoft Word 11 (filtered medium)&quot;&gt;
&lt;!--[if !mso]&gt;
&lt;style&gt;
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
&lt;/style&gt;
&lt;![endif]--&gt;&lt;o:SmartTagType namespaceuri=&quot;urn:schemas-microsoft-com:office:smarttags&quot; name=&quot;PersonName&quot; /&gt;
&lt;!--[if !mso]&gt;
&lt;style&gt;
st1\:*{behavior:url(#default#ieooui) }
&lt;/style&gt;
&lt;![endif]--&gt;


&lt;/head&gt;

&lt;body lang=FR link=blue vlink=blue&gt;

&lt;div class=Section1&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 color=navy face=Arial&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:Arial;color:navy'&gt;Well, I also use the
patch to build the cross-runtimes for solaris, MinGW, Win64, Linux 32 and Linux
64 (for Linux, I also use Linux -&amp;gt; Linux cross compilers in order to produce
some code that is independent from the O.S. the build machine is running).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 color=navy face=Arial&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:Arial;color:navy'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;div style='border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt'&gt;

&lt;div&gt;

&lt;div class=MsoNormal align=center style='text-align:center'&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:12.0pt'&gt;

&lt;hr size=2 width=&quot;100%&quot; align=center tabindex=-1&gt;

&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;

&lt;p class=MsoNormal&gt;&lt;b&gt;&lt;font size=2 face=Tahoma&gt;&lt;span style='font-size:10.0pt;
font-family:Tahoma;font-weight:bold'&gt;From:&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;font size=2 face=Tahoma&gt;&lt;span style='font-size:10.0pt;font-family:Tahoma'&gt; Wesley W.
Terpstra [mailto:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20554717&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;wesley@...&lt;/a&gt;] &lt;br&gt;
&lt;b&gt;&lt;span style='font-weight:bold'&gt;Sent:&lt;/span&gt;&lt;/b&gt; Tuesday, November 18, 2008
12:33 AM&lt;br&gt;
&lt;b&gt;&lt;span style='font-weight:bold'&gt;To:&lt;/span&gt;&lt;/b&gt; &lt;st1:PersonName ProductID=&quot;Nicolas Bertolotti&quot; w:st=&quot;on&quot;&gt;Nicolas Bertolotti&lt;/st1:PersonName&gt;&lt;br&gt;
&lt;b&gt;&lt;span style='font-weight:bold'&gt;Cc:&lt;/span&gt;&lt;/b&gt; Matthew Fluet; &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20554717&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;mlton@...&lt;/a&gt;&lt;br&gt;
&lt;b&gt;&lt;span style='font-weight:bold'&gt;Subject:&lt;/span&gt;&lt;/b&gt; Re: [MLton] A few changes
proposals for MLton&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p class=MsoNormal&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:
12.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:
12.0pt'&gt;On Tue, Nov 18, 2008 at 12:04 AM, &lt;st1:PersonName ProductID=&quot;Nicolas Bertolotti&quot; w:st=&quot;on&quot;&gt;Nicolas Bertolotti&lt;/st1:PersonName&gt;
&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20554717&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nicolas.Bertolotti@...&lt;/a&gt;&amp;gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;div&gt;

&lt;blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;
margin-left:4.8pt;margin-right:0cm'&gt;

&lt;p class=MsoNormal&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:
12.0pt'&gt;Well, I actually use the changes to rebuild a 32 bit version of the
compiler (to use less RAM) after building it natively on a 64 bit platform.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/blockquote&gt;

&lt;div&gt;

&lt;p class=MsoNormal style='margin-bottom:12.0pt'&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:12.0pt'&gt;&lt;br&gt;
Just run &amp;quot;i386 make&amp;quot;... The latest svn should build you a 32 bit
MLton on your 64 bit machine. No patches or cross-compiling needed.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;/div&gt;

&lt;p class=MsoNormal style='margin-bottom:12.0pt'&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:12.0pt'&gt;If you have debian, make
sure you have gcc-multilib and installed. You might need a few other lib32
packages as well.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;/div&gt;

&lt;/body&gt;

&lt;/html&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;MLton mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20554717&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;MLton@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mlton.org/mailman/listinfo/mlton&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/mailman/listinfo/mlton&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/A-few-changes-proposals-for-MLton-tp20490002p20554717.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20550747</id>
	<title>Re: A few changes proposals for MLton</title>
	<published>2008-11-17T15:44:37Z</published>
	<updated>2008-11-17T15:44:37Z</updated>
	<author>
		<name>Wesley W. Terpstra</name>
	</author>
	<content type="html">On Mon, Nov 17, 2008 at 11:49 PM, Nicolas Bertolotti &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20550747&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nicolas.Bertolotti@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;









&lt;div link=&quot;blue&quot; vlink=&quot;blue&quot; lang=&quot;FR&quot;&gt;

&lt;div&gt;

&lt;div style=&quot;border-style: none none none solid; border-color: -moz-use-text-color -moz-use-text-color -moz-use-text-color blue; border-width: medium medium medium 1.5pt; padding: 0cm 0cm 0cm 4pt;&quot;&gt;

&lt;div&gt;

&lt;div&gt;&lt;font color=&quot;navy&quot; size=&quot;2&quot; face=&quot;Arial&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Arial; color: navy;&quot; lang=&quot;EN-GB&quot;&gt;I am sorry but I don't
really understand what you mean with «&amp;nbsp;You should bring up having UNC
volumes as that is currently forbidden by the definition&amp;nbsp;» (maybe it is
just a problem with my English understanding).&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br&gt;Your patch changes OS.Path.fromString &amp;quot;\\pumpkin\media\foo&amp;quot; to return { vol=&amp;quot;\\pumpkin\media&amp;quot;, isAbs=true, arcs=[&amp;quot;foo&amp;quot;] }. The problem with that is that the standard &amp;lt;&lt;a href=&quot;http://mlton.org/basis/os-path.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/basis/os-path.html&lt;/a&gt;&amp;gt; states &amp;quot;Under Microsoft Windows, the valid volume names have the form &lt;code&gt;&amp;quot;a:&amp;quot;&lt;/code&gt;, &lt;code&gt;&amp;quot;A:&amp;quot;&lt;/code&gt;, &lt;code&gt;&amp;quot;b:&amp;quot;&lt;/code&gt;, &lt;code&gt;&amp;quot;B:&amp;quot;&lt;/code&gt;, etc&amp;quot;. That list pretty clearly doesn&amp;#39;t intend to allow \\pumpkin\media as a volume. There was a discussion going on between Andreas and John Reppy (the basis specification editor) about the OS.Path structure. I was proposing that you join the discussion and see if the basis specification could be changed to allow vol=&amp;quot;\\pumpkin\media&amp;quot; the way your patch does.&lt;br&gt;
&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;MLton mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20550747&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;MLton@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mlton.org/mailman/listinfo/mlton&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/mailman/listinfo/mlton&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/A-few-changes-proposals-for-MLton-tp20490002p20550747.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20550632</id>
	<title>Re: A few changes proposals for MLton</title>
	<published>2008-11-17T15:32:49Z</published>
	<updated>2008-11-17T15:32:49Z</updated>
	<author>
		<name>Wesley W. Terpstra</name>
	</author>
	<content type="html">On Tue, Nov 18, 2008 at 12:04 AM, Nicolas Bertolotti &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20550632&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Nicolas.Bertolotti@...&lt;/a&gt;&amp;gt;&lt;/span&gt; &lt;div class=&quot;gmail_quote&quot;&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
Well, I actually use the changes to rebuild a 32 bit version of the compiler (to use less RAM) after building it natively on a 64 bit platform.&lt;/blockquote&gt;&lt;div&gt;&lt;br&gt;Just run &amp;quot;i386 make&amp;quot;... The latest svn should build you a 32 bit MLton on your 64 bit machine. No patches or cross-compiling needed.&lt;br&gt;
&lt;br&gt;&lt;/div&gt;&lt;/div&gt;If you have debian, make sure you have gcc-multilib and installed. You might need a few other lib32 packages as well.&lt;br&gt;&lt;br&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;MLton mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20550632&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;MLton@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mlton.org/mailman/listinfo/mlton&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/mailman/listinfo/mlton&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/A-few-changes-proposals-for-MLton-tp20490002p20550632.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20550229</id>
	<title>RE: A few changes proposals for MLton</title>
	<published>2008-11-17T15:04:37Z</published>
	<updated>2008-11-17T15:04:37Z</updated>
	<author>
		<name>Nicolas Bertolotti-2</name>
	</author>
	<content type="html">&amp;gt; It isn't clear to me why upgrade-basis needs to know the target. &amp;nbsp;In any
&lt;br&gt;&lt;br&gt;upgrade-basis generates the MLton structure with a value for Platform.host and OS.host that is based on the target so I guess this has an impact on those values when they are used in the compiler binary itself.
&lt;br&gt;&lt;br&gt;Anyway, before I implemented those changes, I remember my cross compiler already worked fine so I am not really sure this is really important.
&lt;br&gt;&lt;br&gt;&amp;gt; case, your changes don't seem to completely support cross compiling the
&lt;br&gt;&amp;gt; compiler. &amp;nbsp;For example, in &amp;lt;src&amp;gt;/Makefile, in the 'world-no-check' target,
&lt;br&gt;&amp;gt; you don't execute the compiler on the target system, which would be
&lt;br&gt;&amp;gt; necessary after a
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;make TARGET=xx TARGET_ARCH=xx TARGET_OS=xx TARGET_MACHINE=xx compiler
&lt;br&gt;&amp;gt; to have both build/lib/mlton-compile and build/lib/world.mlton for the
&lt;br&gt;&amp;gt; target.
&lt;br&gt;&lt;br&gt;Well, I actually use the changes to rebuild a 32 bit version of the compiler (to use less RAM) after building it natively on a 64 bit platform. I do this by running:
&lt;br&gt;$ touch mlton/main.sml
&lt;br&gt;$ make compiler TARGET=... ...
&lt;br&gt;and finally:
&lt;br&gt;$ make world-no-check TARGET=... ... (to rebuild the main compiler binary only)
&lt;br&gt;or:
&lt;br&gt;$ make world libraries tools TARGET=... ... (to rebuild the tools as well)
&lt;br&gt;After running:
&lt;br&gt;$ make all-no-docs
&lt;br&gt;But I do this using an external script so I guess I should add a bit of additional packaging (Makefile modifications) in order to propose an efficient complete cross compilation entry.
&lt;br&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;MLton mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20550229&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;MLton@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mlton.org/mailman/listinfo/mlton&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/mailman/listinfo/mlton&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/A-few-changes-proposals-for-MLton-tp20490002p20550229.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20549982</id>
	<title>RE: A few changes proposals for MLton</title>
	<published>2008-11-17T14:49:25Z</published>
	<updated>2008-11-17T14:49:25Z</updated>
	<author>
		<name>Nicolas Bertolotti-2</name>
	</author>
	<content type="html">&lt;html xmlns:o=&quot;urn:schemas-microsoft-com:office:office&quot; xmlns:w=&quot;urn:schemas-microsoft-com:office:word&quot; xmlns=&quot;http://www.w3.org/TR/REC-html40&quot;&gt;

&lt;head&gt;
&lt;META HTTP-EQUIV=&quot;Content-Type&quot; CONTENT=&quot;text/html; charset=us-ascii&quot;&gt;
&lt;meta name=Generator content=&quot;Microsoft Word 11 (filtered medium)&quot;&gt;


&lt;/head&gt;

&lt;body lang=FR link=blue vlink=blue&gt;

&lt;div class=Section1&gt;

&lt;div style='border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt'&gt;

&lt;div&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span lang=EN-GB style='font-size:12.0pt'&gt;Let's wait to hear what happens in the sml-basis
thread. &lt;/span&gt;You should bring up having UNC volumes as that is currently
forbidden by the definition.&lt;br&gt;
&lt;br&gt;
&lt;font color=navy&gt;&lt;span style='color:navy'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 color=navy face=Arial&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:Arial;color:navy'&gt;I am sorry but I don&amp;#8217;t
really understand what you mean with &amp;laquo;&amp;nbsp;You should bring up having UNC
volumes as that is currently forbidden by the definition&amp;nbsp;&amp;raquo; (maybe it is
just a problem with my English understanding).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 color=navy face=Arial&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:Arial;color:navy'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span lang=EN-GB style='font-size:12.0pt'&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;
margin-left:4.8pt;margin-right:0cm'&gt;

&lt;blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;
margin-left:4.8pt;margin-right:0cm'&gt;

&lt;div&gt;

&lt;p class=MsoNormal&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:
12.0pt'&gt;* &amp;nbsp; 05-windows-exit.patch&lt;br&gt;
&amp;nbsp; * &amp;nbsp; This patch adds support for Posix.Process.exit() on MinGW. I&lt;br&gt;
&amp;nbsp; &amp;nbsp; guess it has been deactivated on purpose but I don't know why and
I&lt;br&gt;
&amp;nbsp; &amp;nbsp; have not experienced any issue with it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;/blockquote&gt;

&lt;/blockquote&gt;

&lt;p class=MsoNormal style='margin-bottom:12.0pt'&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:12.0pt'&gt;&lt;br&gt;
To be honest, I have no idea why it's disabled either. I was even more
mystified when I found that it was added in r3662 which was supposedly a commit
on my behalf. I tracked down the email that included the patch I sent. &amp;lt;&lt;a href=&quot;http://terpstra.ca/lurker/message/20041202.044539.0cb22ee4.en.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://terpstra.ca/lurker/message/20041202.044539.0cb22ee4.en.html&lt;/a&gt;&amp;gt;
... but the changes to stub-mingw.sml are nowhere to be seen.&lt;br&gt;
&lt;br&gt;
Now would be a good time for Stephen to speak up about where this came from!
:-)&lt;br&gt;
&lt;br&gt;
I don't really see any reason NOT to re-enable it, but as neither of us know
why it was disabled in the first place... :-/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal style='margin-bottom:12.0pt'&gt;&lt;font size=2 color=navy face=Arial&gt;&lt;span style='font-size:10.0pt;font-family:Arial;color:navy'&gt;Funny&amp;nbsp;!!!
Wait and see&amp;#8230;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;

&lt;/body&gt;

&lt;/html&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;MLton mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20549982&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;MLton@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mlton.org/mailman/listinfo/mlton&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/mailman/listinfo/mlton&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/A-few-changes-proposals-for-MLton-tp20490002p20549982.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20549937</id>
	<title>RE: A few changes proposals for MLton</title>
	<published>2008-11-17T14:46:51Z</published>
	<updated>2008-11-17T14:46:51Z</updated>
	<author>
		<name>Nicolas Bertolotti-2</name>
	</author>
	<content type="html">Fine for me (I just didn't know we had this function available).
&lt;br&gt;&lt;br&gt;I am also not really sure that the proposed operation:
&lt;br&gt;&amp;gt; + &amp;nbsp;maxSize = alignDown(SIZE_MAX, s-&amp;gt;sysvals.pageSize);
&lt;br&gt;&amp;gt; + &amp;nbsp;maxSize -= sizeofCardMapAndCrossMap(s, maxSize);
&lt;br&gt;really returns the exact maximum size for a heap. It is not really an issue but you may think of a better way.
&lt;br&gt;&lt;br&gt;It could also be slightly more efficient to compute this value only once at the beginning of the execution.
&lt;br&gt;&lt;br&gt;Nicolas
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; -----Original Message-----
&lt;br&gt;&amp;gt; From: Matthew Fluet [mailto:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20549937&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;fluet@...&lt;/a&gt;]
&lt;br&gt;&amp;gt; Sent: Monday, November 17, 2008 8:21 PM
&lt;br&gt;&amp;gt; To: Nicolas Bertolotti
&lt;br&gt;&amp;gt; Cc: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20549937&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;mlton@...&lt;/a&gt;
&lt;br&gt;&amp;gt; Subject: Re: [MLton] A few changes proposals for MLton
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Thu, 13 Nov 2008, Nicolas Bertolotti wrote:
&lt;br&gt;&amp;gt; &amp;gt; * &amp;nbsp; 21-prevent-null-heap-size.patch
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp;* &amp;nbsp; This patch addresses the issue I submitted a few days ago
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;(Segmentation fault on a 6 GB machine with ram-slop 0.85)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --- mlton-r6698.patched/runtime/gc/heap.c &amp;nbsp; &amp;nbsp; &amp;nbsp; 2008-11-03
&lt;br&gt;&amp;gt; 23:45:47.000000000 +0100
&lt;br&gt;&amp;gt; +++ mlton-r6698/runtime/gc/heap.c &amp;nbsp; &amp;nbsp; &amp;nbsp; 2008-11-05 23:53:54.000000000
&lt;br&gt;&amp;gt; +0100
&lt;br&gt;&amp;gt; @@ -39,6 +39,7 @@
&lt;br&gt;&amp;gt; &amp;nbsp; size_t sizeofHeapDesired (GC_state s, size_t liveSize, size_t
&lt;br&gt;&amp;gt; currentSize) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; size_t liveWithMapsSize;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; size_t res;
&lt;br&gt;&amp;gt; + &amp;nbsp;size_t maxSize;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; float withMapsRatio;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; liveSize = align (liveSize, s-&amp;gt;sysvals.pageSize);
&lt;br&gt;&amp;gt; @@ -82,6 +83,9 @@
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; res = s-&amp;gt;sysvals.ram;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; } else { /* Required live ratio. */
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; res = liveSize * s-&amp;gt;controls.ratios.markCompact;
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp;/* Avoid overflow */
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp;if (res &amp;lt; liveSize)
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp;res = SIZE_MAX;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* If the current heap is bigger than res, then shrinking always
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* sounds like a good idea. &amp;nbsp;However, depending on what pages the
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* VM keeps around, growing could be very expensive, if it
&lt;br&gt;&amp;gt; @@ -104,6 +108,16 @@
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; die (&amp;quot;Out of memory with max heap size %s.&amp;quot;,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;uintmaxToCommaString(s-&amp;gt;controls.maxHeap));
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; +
&lt;br&gt;&amp;gt; + &amp;nbsp;/* Avoid overflow. */
&lt;br&gt;&amp;gt; + &amp;nbsp;maxSize = align(SIZE_MAX - s-&amp;gt;sysvals.pageSize, s-&amp;gt;sysvals.pageSize);
&lt;br&gt;&amp;gt; + &amp;nbsp;maxSize -= sizeofCardMapAndCrossMap(s, maxSize);
&lt;br&gt;&amp;gt; + &amp;nbsp;if (res &amp;gt; maxSize)
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp;res = maxSize;
&lt;br&gt;&amp;gt; + &amp;nbsp;if (res &amp;lt; liveSize)
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp;die (&amp;quot;Out of memory with system max heap size %s.&amp;quot;,
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;uintmaxToCommaString(res));
&lt;br&gt;&amp;gt; +
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; if (DEBUG_RESIZING)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; fprintf (stderr, &amp;quot;%s = sizeofHeapDesired (%s, %s)\n&amp;quot;,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;uintmaxToCommaString(res),
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Looks simple and effective. &amp;nbsp;Equivalent, but perhaps easier to understand
&lt;br&gt;&amp;gt; would be to replace
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; + &amp;nbsp;maxSize = align(SIZE_MAX - s-&amp;gt;sysvals.pageSize, s-&amp;gt;sysvals.pageSize);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; with
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; + &amp;nbsp;maxSize = alignDown(SIZE_MAX, s-&amp;gt;sysvals.pageSize);
&lt;/div&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;MLton mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20549937&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;MLton@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mlton.org/mailman/listinfo/mlton&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/mailman/listinfo/mlton&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/A-few-changes-proposals-for-MLton-tp20490002p20549937.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20546198</id>
	<title>Re: A few changes proposals for MLton</title>
	<published>2008-11-17T11:21:21Z</published>
	<updated>2008-11-17T11:21:21Z</updated>
	<author>
		<name>Matthew Fluet-3</name>
	</author>
	<content type="html">On Thu, 13 Nov 2008, Nicolas Bertolotti wrote:
&lt;br&gt;&amp;gt; * &amp;nbsp; 21-prevent-null-heap-size.patch
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;* &amp;nbsp; This patch addresses the issue I submitted a few days ago
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;(Segmentation fault on a 6 GB machine with ram-slop 0.85)
&lt;br&gt;&lt;br&gt;--- mlton-r6698.patched/runtime/gc/heap.c	2008-11-03 23:45:47.000000000 +0100
&lt;br&gt;+++ mlton-r6698/runtime/gc/heap.c	2008-11-05 23:53:54.000000000 +0100
&lt;br&gt;@@ -39,6 +39,7 @@
&lt;br&gt;&amp;nbsp; size_t sizeofHeapDesired (GC_state s, size_t liveSize, size_t currentSize) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; size_t liveWithMapsSize;
&lt;br&gt;&amp;nbsp; &amp;nbsp; size_t res;
&lt;br&gt;+ &amp;nbsp;size_t maxSize;
&lt;br&gt;&amp;nbsp; &amp;nbsp; float withMapsRatio;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; liveSize = align (liveSize, s-&amp;gt;sysvals.pageSize);
&lt;br&gt;@@ -82,6 +83,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; res = s-&amp;gt;sysvals.ram;
&lt;br&gt;&amp;nbsp; &amp;nbsp; } else { /* Required live ratio. */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; res = liveSize * s-&amp;gt;controls.ratios.markCompact;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/* Avoid overflow */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (res &amp;lt; liveSize)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;res = SIZE_MAX;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; /* If the current heap is bigger than res, then shrinking always
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* sounds like a good idea. &amp;nbsp;However, depending on what pages the
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* VM keeps around, growing could be very expensive, if it
&lt;br&gt;@@ -104,6 +108,16 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; die (&amp;quot;Out of memory with max heap size %s.&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;uintmaxToCommaString(s-&amp;gt;controls.maxHeap));
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;/* Avoid overflow. */
&lt;br&gt;+ &amp;nbsp;maxSize = align(SIZE_MAX - s-&amp;gt;sysvals.pageSize, s-&amp;gt;sysvals.pageSize);
&lt;br&gt;+ &amp;nbsp;maxSize -= sizeofCardMapAndCrossMap(s, maxSize);
&lt;br&gt;+ &amp;nbsp;if (res &amp;gt; maxSize)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;res = maxSize;
&lt;br&gt;+ &amp;nbsp;if (res &amp;lt; liveSize)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;die (&amp;quot;Out of memory with system max heap size %s.&amp;quot;, 
&lt;br&gt;+	 uintmaxToCommaString(res));
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; if (DEBUG_RESIZING)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; fprintf (stderr, &amp;quot;%s = sizeofHeapDesired (%s, %s)\n&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;uintmaxToCommaString(res),
&lt;br&gt;&lt;br&gt;&lt;br&gt;Looks simple and effective. &amp;nbsp;Equivalent, but perhaps easier to understand 
&lt;br&gt;would be to replace
&lt;br&gt;&lt;br&gt;+ &amp;nbsp;maxSize = align(SIZE_MAX - s-&amp;gt;sysvals.pageSize, s-&amp;gt;sysvals.pageSize);
&lt;br&gt;&lt;br&gt;with
&lt;br&gt;&lt;br&gt;+ &amp;nbsp;maxSize = alignDown(SIZE_MAX, s-&amp;gt;sysvals.pageSize);
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;MLton mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20546198&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;MLton@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mlton.org/mailman/listinfo/mlton&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/mailman/listinfo/mlton&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/A-few-changes-proposals-for-MLton-tp20490002p20546198.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20541018</id>
	<title>Re: Re: [MLton-user] SVN r6941 MLton/MinGW32 and FFI</title>
	<published>2008-11-17T07:00:08Z</published>
	<updated>2008-11-17T07:00:08Z</updated>
	<author>
		<name>Wesley W. Terpstra</name>
	</author>
	<content type="html">On Mon, Nov 17, 2008 at 3:51 PM, Vesa Karvonen &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20541018&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;vesa.a.j.k@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
&lt;div class=&quot;Ih2E3d&quot;&gt;&amp;gt;&amp;gt; Looks like the origin was to get mlnlffi working on MinGW:&lt;br&gt;
&amp;gt;&amp;gt; &amp;nbsp;&lt;a href=&quot;http://mlton.org/pipermail/mlton/2006-November/029349.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/pipermail/mlton/2006-November/029349.html&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;Yes, that is why I initially wrote them. &amp;nbsp;It is a minimal&lt;br&gt;
implementation and doesn&amp;#39;t necessarily work as an absolute complete&lt;br&gt;
replacement for dl* functions.&lt;/blockquote&gt;&lt;div&gt;&lt;br&gt;Ok, so we can remove the MLton ones? I think they are broken atm anyway since they get prefix with MLton_ by the mingw.h. &lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
&amp;gt; Using dlfcn-win32 does seem the best approach. I&amp;#39;d like to hear&lt;br&gt;&lt;div class=&quot;Ih2E3d&quot;&gt;
&amp;gt; something from Vesa before removing them.&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;Frankly, after a very brief look at the code of dlfcn-win32&lt;br&gt;
(&lt;a href=&quot;http://code.google.com/p/dlfcn-win32/source/browse/trunk/dlfcn.c&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://code.google.com/p/dlfcn-win32/source/browse/trunk/dlfcn.c&lt;/a&gt;),&lt;br&gt;
I&amp;#39;m not very impressed with it. &amp;nbsp;I may be mistaken and it might be&lt;br&gt;
mostly harmless, but it seems to leak library handles when RTLD_GLOBAL&lt;br&gt;
is specified. &amp;nbsp;Specifically, the code seems to first execute&lt;br&gt;
LoadLibraryEx, which increments the reference count of the library,&lt;br&gt;
then if RTLD_GLOBAL is specified, the library handle is added to the&lt;br&gt;
doubly linked list (#1) --- except when the library was already&lt;br&gt;
loaded, in which case no matching call to FreeLibrary seems to be&lt;br&gt;
made, which means that the handle was leaked.&lt;br&gt;
&lt;br&gt;
But, it is probably better to use it anyway (at least after all the&lt;br&gt;
obvious bugs have been fixed), because then we don&amp;#39;t have to maintain&lt;br&gt;
a similar library.&lt;/blockquote&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;Since you are obviously the resident expert, maybe help them it? I was thinking we could just include their (fixed) library in the MLton mingw installer. That way things will just work for users by adding -ldl, but otherwise we don&amp;#39;t throw these symbols into your program. This seems the ideal solution to me since as DLL the wiki _import libdl examples will work unchanged with their default external scope.&lt;br&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;MLton mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20541018&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;MLton@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mlton.org/mailman/listinfo/mlton&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/mailman/listinfo/mlton&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Re%3A--MLton-user--SVN-r6941-MLton-MinGW32-and-FFI-tp20447361p20541018.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20540854</id>
	<title>Re: Re: [MLton-user] SVN r6941 MLton/MinGW32 and FFI</title>
	<published>2008-11-17T06:51:53Z</published>
	<updated>2008-11-17T06:51:53Z</updated>
	<author>
		<name>Vesa Karvonen-2</name>
	</author>
	<content type="html">On Mon, Nov 17, 2008 at 1:42 PM, Wesley W. Terpstra &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20540854&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;wesley@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Never heard back from you about this ...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------- Forwarded message ----------
&lt;br&gt;&amp;gt; From: Wesley W. Terpstra &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20540854&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;wesley@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; Date: Wed, Nov 12, 2008 at 12:56 AM
&lt;br&gt;&amp;gt; Subject: Re: [MLton] Re: [MLton-user] SVN r6941 MLton/MinGW32 and FFI
&lt;br&gt;&amp;gt; To: Matthew Fluet &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20540854&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;fluet@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; Cc: &amp;quot;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20540854&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;mlton@...&lt;/a&gt;&amp;quot; &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20540854&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;mlton@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Wed, Nov 12, 2008 at 12:26 AM, Matthew Fluet &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20540854&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;fluet@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; So why were the dl* functions added to mingw.c in the first place?
&lt;br&gt;&amp;gt;&amp;gt; Looks like the origin was to get mlnlffi working on MinGW:
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;&lt;a href=&quot;http://mlton.org/pipermail/mlton/2006-November/029349.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/pipermail/mlton/2006-November/029349.html&lt;/a&gt;&lt;/div&gt;&lt;br&gt;Yes, that is why I initially wrote them. &amp;nbsp;It is a minimal
&lt;br&gt;implementation and doesn't necessarily work as an absolute complete
&lt;br&gt;replacement for dl* functions.
&lt;br&gt;&lt;br&gt;&amp;gt; Using dlfcn-win32 does seem the best approach. I'd like to hear
&lt;br&gt;&amp;gt; something from Vesa before removing them.
&lt;br&gt;&lt;br&gt;Frankly, after a very brief look at the code of dlfcn-win32
&lt;br&gt;(&lt;a href=&quot;http://code.google.com/p/dlfcn-win32/source/browse/trunk/dlfcn.c&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://code.google.com/p/dlfcn-win32/source/browse/trunk/dlfcn.c&lt;/a&gt;),
&lt;br&gt;I'm not very impressed with it. &amp;nbsp;I may be mistaken and it might be
&lt;br&gt;mostly harmless, but it seems to leak library handles when RTLD_GLOBAL
&lt;br&gt;is specified. &amp;nbsp;Specifically, the code seems to first execute
&lt;br&gt;LoadLibraryEx, which increments the reference count of the library,
&lt;br&gt;then if RTLD_GLOBAL is specified, the library handle is added to the
&lt;br&gt;doubly linked list (#1) --- except when the library was already
&lt;br&gt;loaded, in which case no matching call to FreeLibrary seems to be
&lt;br&gt;made, which means that the handle was leaked.
&lt;br&gt;&lt;br&gt;But, it is probably better to use it anyway (at least after all the
&lt;br&gt;obvious bugs have been fixed), because then we don't have to maintain
&lt;br&gt;a similar library.
&lt;br&gt;&lt;br&gt;-Vesa Karvonen
&lt;br&gt;&lt;br&gt;#1) I might add here that a singly linked list would work just as well.
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;MLton mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20540854&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;MLton@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mlton.org/mailman/listinfo/mlton&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/mailman/listinfo/mlton&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Re%3A--MLton-user--SVN-r6941-MLton-MinGW32-and-FFI-tp20447361p20540854.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20511279</id>
	<title>Re: A few changes proposals for MLton</title>
	<published>2008-11-14T17:25:57Z</published>
	<updated>2008-11-14T17:25:57Z</updated>
	<author>
		<name>Wesley W. Terpstra</name>
	</author>
	<content type="html">On Sat, Nov 15, 2008 at 12:58 AM, Matthew Fluet &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20511279&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;fluet@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
&lt;div class=&quot;Ih2E3d&quot;&gt;On Thu, 13 Nov 2008, Nicolas Bertolotti wrote:&lt;br&gt;
&lt;/div&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
* &amp;nbsp; 03-windows-versions.patch&lt;div class=&quot;Ih2E3d&quot;&gt;&lt;br&gt;
 &amp;nbsp; * &amp;nbsp; This patch extends the setSysname() function that is used in&lt;br&gt;
 &amp;nbsp; &amp;nbsp; order to generate the &amp;quot;uname&amp;quot; string on MinGW. It makes it possible&lt;br&gt;
 &amp;nbsp; &amp;nbsp; to detect whether we are running Windows XP x64, Vista, Vista 64,&lt;br&gt;
 &amp;nbsp; &amp;nbsp; 2003 or 2008.&lt;/div&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br&gt;Clearly an improvement. Should be committed.&lt;br&gt;&amp;nbsp;&lt;/div&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;&lt;div class=&quot;Ih2E3d&quot;&gt;* &amp;nbsp; 04-windows-paths.patch&lt;br&gt;
 &amp;nbsp; * &amp;nbsp; This patch is highly related to the request Dan DuVarney has&lt;br&gt;
 &amp;nbsp; &amp;nbsp; submitted today about OS.Path. It provides support for UNC paths&lt;br&gt;
 &amp;nbsp; &amp;nbsp; (\\foo\bar\...) and handles paths like &amp;quot;\foo&amp;quot; as absolute paths&lt;br&gt;
 &amp;nbsp; &amp;nbsp; without a volume specification.&lt;/div&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br&gt;Let&amp;#39;s wait to hear what happens in the sml-basis thread. You should bring up having UNC volumes as that is currently forbidden by the definition.&lt;br&gt;
&amp;nbsp;&lt;br&gt;&lt;/div&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
&lt;div class=&quot;Ih2E3d&quot;&gt;* &amp;nbsp; 05-windows-exit.patch&lt;br&gt;
 &amp;nbsp; * &amp;nbsp; This patch adds support for Posix.Process.exit() on MinGW. I&lt;br&gt;
 &amp;nbsp; &amp;nbsp; guess it has been deactivated on purpose but I don&amp;#39;t know why and I&lt;br&gt;
 &amp;nbsp; &amp;nbsp; have not experienced any issue with it.&lt;/div&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;br&gt;To be honest, I have no idea why it&amp;#39;s disabled either. I was even more mystified when I found that it was added in r3662 which was supposedly a commit on my behalf. I tracked down the email that included the patch I sent. &amp;lt;&lt;a href=&quot;http://terpstra.ca/lurker/message/20041202.044539.0cb22ee4.en.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://terpstra.ca/lurker/message/20041202.044539.0cb22ee4.en.html&lt;/a&gt;&amp;gt; ... but the changes to stub-mingw.sml are nowhere to be seen.&lt;br&gt;
&lt;br&gt;Now would be a good time for Stephen to speak up about where this came from! :-)&lt;br&gt;&lt;br&gt;I don&amp;#39;t really see any reason NOT to re-enable it, but as neither of us know why it was disabled in the first place... :-/&lt;br&gt;
&lt;br&gt;&lt;/div&gt;
&lt;br /&gt;_______________________________________________
&lt;br&gt;MLton mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20511279&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;MLton@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mlton.org/mailman/listinfo/mlton&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/mailman/listinfo/mlton&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/A-few-changes-proposals-for-MLton-tp20490002p20511279.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20510575</id>
	<title>Re: A few changes proposals for MLton</title>
	<published>2008-11-14T16:02:34Z</published>
	<updated>2008-11-14T16:02:34Z</updated>
	<author>
		<name>Matthew Fluet-3</name>
	</author>
	<content type="html">On Thu, 13 Nov 2008, Nicolas Bertolotti wrote:
&lt;br&gt;&amp;gt; * &amp;nbsp; 01-cross-compile-mlton.patch
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;* &amp;nbsp; This patch modifies the MLton Makefiles in order to make it
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;easier to build a MLton cross compiler by cross compiling the
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;runtime and only use the target machine to run the needed binaries
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;(gen-sizes, print-constants etc...). It introduces a Makefile
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;parameter TARGET_MACHINE that can be used in order to provide the
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;hostname of the machine that should be used to run those binaries.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;The machine is then accessed through &amp;quot;ssh&amp;quot;.
&lt;br&gt;&lt;br&gt;I don't have any experience with using cross compilers, so if it works for 
&lt;br&gt;you and doesn't impact things when non cross compiling, then it is 
&lt;br&gt;probably fine.
&lt;br&gt;&lt;br&gt;Two notes:
&lt;br&gt;&lt;br&gt;diff -Naur mlton-r6658.orig/runtime/Makefile mlton-r6658/runtime/Makefile
&lt;br&gt;--- mlton-r6658.orig/runtime/Makefile	2008-06-16 16:03:08.000000000 +0200
&lt;br&gt;+++ mlton-r6658/runtime/Makefile	2008-06-16 16:42:12.000000000 +0200
&lt;br&gt;@@ -285,7 +296,7 @@
&lt;br&gt;&amp;nbsp; gen/basis-ffi.h gen/basis-ffi.sml: gen/gen-basis-ffi.sml gen/basis-ffi.def
&lt;br&gt;&amp;nbsp; 	mlton -output gen/gen-basis-ffi gen/gen-basis-ffi.sml
&lt;br&gt;&amp;nbsp; 	rm -f gen/basis-ffi.h gen/basis-ffi.sml
&lt;br&gt;-	cd gen &amp;&amp; ./gen-basis-ffi
&lt;br&gt;+	cd gen &amp;&amp; $(TARGET_EXEC_BEGIN) ./gen-basis-ffi $(TARGET_EXEC_FILE)
&lt;br&gt;&amp;nbsp; 	rm -f gen/gen-basis-ffi
&lt;br&gt;&lt;br&gt;&amp;nbsp; basis-ffi.h: gen/basis-ffi.h
&lt;br&gt;&lt;br&gt;This is (a) broken and (b) unecessary. &amp;nbsp;This will have compiled 
&lt;br&gt;gen-basis-ffi.sml using the host mlton with no -target option, so the 
&lt;br&gt;resulting gen-basis-ffi executable will be for the host, but it is being 
&lt;br&gt;executed on the target machine. &amp;nbsp;Also, gen-basis-ffi reads directly from 
&lt;br&gt;basis-ffi.def and writes directly to basis-ffi.h and basis-ffi.sml, which 
&lt;br&gt;aren't being copied to/from the target machine. &amp;nbsp;You probably never 
&lt;br&gt;encountered this because the derived basis-ffi.{h,sml} files are in the 
&lt;br&gt;repository. &amp;nbsp;In any case, the gen-basis-ffi program simply textually 
&lt;br&gt;processes basis-ffi.def, with no target dependencies. &amp;nbsp;Hence, there is no 
&lt;br&gt;need to execute it on the target machine.
&lt;br&gt;&lt;br&gt;&lt;br&gt;diff -Naur mlton-r6658.orig/bin/upgrade-basis mlton-r6658/bin/upgrade-basis
&lt;br&gt;--- mlton-r6658.orig/bin/upgrade-basis	2008-06-16 16:08:02.000000000 +0200
&lt;br&gt;+++ mlton-r6658/bin/upgrade-basis	2008-06-16 16:40:47.000000000 +0200
&lt;br&gt;@@ -11,14 +11,15 @@
&lt;br&gt;&amp;nbsp; name=`basename &amp;quot;$0&amp;quot;`
&lt;br&gt;&lt;br&gt;&amp;nbsp; usage () {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;die &amp;quot;usage: $name &amp;lt;PATH&amp;gt; &amp;lt;ARCH&amp;gt; &amp;lt;OS&amp;gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;die &amp;quot;usage: $name &amp;lt;PATH&amp;gt; &amp;lt;ARCH&amp;gt; &amp;lt;OS&amp;gt; &amp;lt;TARGET&amp;gt;&amp;quot;
&lt;br&gt;&amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; case &amp;quot;$#&amp;quot; in
&lt;br&gt;-3)
&lt;br&gt;+4)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PATH=&amp;quot;$1&amp;quot;
&lt;br&gt;&amp;nbsp; 	ARCH=&amp;quot;$2&amp;quot;
&lt;br&gt;&amp;nbsp; 	OS=&amp;quot;$3&amp;quot;
&lt;br&gt;+	TARGET=&amp;quot;$4&amp;quot;
&lt;br&gt;&amp;nbsp; ;;
&lt;br&gt;&amp;nbsp; *)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; usage
&lt;br&gt;@@ -28,7 +29,7 @@
&lt;br&gt;&amp;nbsp; tmp=&amp;quot;$$.sml&amp;quot;
&lt;br&gt;&lt;br&gt;&amp;nbsp; echo &amp;quot;val () = print \&amp;quot;I work\&amp;quot;&amp;quot; &amp;gt;&amp;quot;$tmp&amp;quot;
&lt;br&gt;-if ! mlton &amp;quot;$tmp&amp;quot; 1&amp;gt;&amp;2; then
&lt;br&gt;+if ! mlton -target $TARGET &amp;quot;$tmp&amp;quot; 1&amp;gt;&amp;2; then
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; die &amp;quot;Error: cannot upgrade basis because the compiler doesn't work&amp;quot;
&lt;br&gt;&amp;nbsp; fi
&lt;br&gt;&lt;br&gt;@@ -36,7 +37,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; feature=&amp;quot;$1&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sml=&amp;quot;$2&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; echo &amp;quot;$feature&amp;quot; &amp;gt;&amp;quot;$tmp&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ! mlton -stop tc &amp;quot;$tmp&amp;quot; &amp;gt;/dev/null 2&amp;gt;&amp;1; then
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ! mlton -target $TARGET -stop tc &amp;quot;$tmp&amp;quot; &amp;gt;/dev/null 2&amp;gt;&amp;1; then
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; echo &amp;quot;$sml&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fi
&lt;br&gt;&amp;nbsp; }
&lt;br&gt;diff -Naur mlton-r6658.orig/mlton/Makefile mlton-r6658/mlton/Makefile
&lt;br&gt;--- mlton-r6658.orig/mlton/Makefile	2008-06-16 16:04:17.000000000 +0200
&lt;br&gt;+++ mlton-r6658/mlton/Makefile	2008-06-16 16:40:47.000000000 +0200
&lt;br&gt;@@ -9,8 +9,8 @@
&lt;br&gt;&amp;nbsp; SRC := $(shell cd .. &amp;&amp; pwd)
&lt;br&gt;&amp;nbsp; BUILD := $(SRC)/build
&lt;br&gt;&amp;nbsp; BIN := $(BUILD)/bin
&lt;br&gt;-HOST_ARCH := $(shell &amp;quot;$(SRC)/bin/host-arch&amp;quot;)
&lt;br&gt;-HOST_OS := $(shell &amp;quot;$(SRC)/bin/host-os&amp;quot;)
&lt;br&gt;+TARGET_ARCH := $(shell &amp;quot;$(SRC)/bin/host-arch&amp;quot;)
&lt;br&gt;+TARGET_OS := $(shell &amp;quot;$(SRC)/bin/host-os&amp;quot;)
&lt;br&gt;&amp;nbsp; LIB := $(BUILD)/lib
&lt;br&gt;&amp;nbsp; MLTON := mlton
&lt;br&gt;&amp;nbsp; TARGET := self
&lt;br&gt;@@ -27,12 +27,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; FLAGS += -default-ann 'warnUnused true'
&lt;br&gt;&amp;nbsp; &amp;nbsp; # FLAGS += -type-check true -show-types true
&lt;br&gt;&amp;nbsp; else
&lt;br&gt;-ifeq (cygwin, $(HOST_OS))
&lt;br&gt;+ifeq (cygwin, $(TARGET_OS))
&lt;br&gt;&amp;nbsp; &amp;nbsp; # The stubs don't work on Cygwin, since they define spawn in terms of
&lt;br&gt;&amp;nbsp; &amp;nbsp; # fork, and fork doesn't work on Cygwin. &amp;nbsp;So, make without the stubs.
&lt;br&gt;&amp;nbsp; &amp;nbsp; FILE := mlton.cm
&lt;br&gt;&amp;nbsp; else
&lt;br&gt;-ifeq (mingw, $(HOST_OS))
&lt;br&gt;+ifeq (mingw, $(TARGET_OS))
&lt;br&gt;&amp;nbsp; &amp;nbsp; # Ditto for MinGW.
&lt;br&gt;&amp;nbsp; &amp;nbsp; FILE := mlton.cm
&lt;br&gt;&amp;nbsp; else
&lt;br&gt;@@ -87,7 +87,7 @@
&lt;br&gt;&amp;nbsp; #! Pass $(PATH) to upgrade-basis because it is run via #!/usr/bin/env
&lt;br&gt;&amp;nbsp; # bash, which resets the path.
&lt;br&gt;&amp;nbsp; $(UP):
&lt;br&gt;-	&amp;quot;$(SRC)/bin/upgrade-basis&amp;quot; '$(PATH)' &amp;quot;$(HOST_ARCH)&amp;quot; &amp;quot;$(HOST_OS)&amp;quot; &amp;gt;$(UP)
&lt;br&gt;+	&amp;quot;$(SRC)/bin/upgrade-basis&amp;quot; '$(PATH)' &amp;quot;$(TARGET_ARCH)&amp;quot; &amp;quot;$(TARGET_OS)&amp;quot; &amp;quot;$(TARGET)&amp;quot; &amp;gt;$(UP)
&lt;br&gt;&lt;br&gt;&amp;nbsp; mlton.sml: $(SOURCES)
&lt;br&gt;&amp;nbsp; 	rm -f mlton.sml &amp;&amp; mlton -stop sml mlton.cm &amp;&amp; chmod -w mlton.sml
&lt;br&gt;&lt;br&gt;&lt;br&gt;It isn't clear to me why upgrade-basis needs to know the target. &amp;nbsp;In any 
&lt;br&gt;case, your changes don't seem to completely support cross compiling the 
&lt;br&gt;compiler. &amp;nbsp;For example, in &amp;lt;src&amp;gt;/Makefile, in the 'world-no-check' target, 
&lt;br&gt;you don't execute the compiler on the target system, which would be 
&lt;br&gt;necessary after a
&lt;br&gt;&amp;nbsp; &amp;nbsp;make TARGET=xx TARGET_ARCH=xx TARGET_OS=xx TARGET_MACHINE=xx compiler
&lt;br&gt;to have both build/lib/mlton-compile and build/lib/world.mlton for the 
&lt;br&gt;target.
&lt;br&gt;&lt;br&gt;It seems to me that your changes support the following workflow:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;# start from a clean slate
&lt;br&gt;&amp;nbsp; &amp;nbsp;make clean
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;# bootstrap; resulting compiler only supports -target self
&lt;br&gt;&amp;nbsp; &amp;nbsp;make
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;# cross compile the runtime
&lt;br&gt;&amp;nbsp; &amp;nbsp;## first, get self objects/archives out of the way
&lt;br&gt;&amp;nbsp; &amp;nbsp;make -C runtime clean
&lt;br&gt;&amp;nbsp; &amp;nbsp;make TARGET=xx TARGET_ARCH=xx TARGET_OS=xx TARGET_MACHINE=xx runtime
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;# there are new target specific files in basis-library/config/c
&lt;br&gt;&amp;nbsp; &amp;nbsp;## this is just a target agnostic copy operation
&lt;br&gt;&amp;nbsp; &amp;nbsp;make basis-no-check
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;# get the new target constants
&lt;br&gt;&amp;nbsp; &amp;nbsp;make TARGET=xx TARGET_ARCH=xx TARGET_OS=xx TARGET_MACHINE=xx constants
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;# register the new target
&lt;br&gt;&amp;nbsp; &amp;nbsp;make TARGET=xx TARGET_ARCH=xx TARGET_OS=xx TARGET_MACHINE=xx targetmap
&lt;br&gt;&lt;br&gt;Now, &amp;quot;build/bin/mlton -target new&amp;quot; works, but is a self executable. &amp;nbsp;It 
&lt;br&gt;wouldn't be wise to do
&lt;br&gt;&amp;nbsp; &amp;nbsp;make TARGET=xx TARGET_ARCH=xx TARGET_OS=xx TARGET_MACHINE=xx compiler
&lt;br&gt;because that would overwrite build/lib/mlton-compile with a target 
&lt;br&gt;executable.
&lt;br&gt;&lt;br&gt;So, despite the existence of the TARGET variable in the mlton/Makefile, 
&lt;br&gt;I'm not sure how easy/useful it is to produce a cross-compiled 
&lt;br&gt;mlton-compile from within the Makefile system. &amp;nbsp;But, I could be wrong.
&lt;br&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;MLton mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20510575&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;MLton@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mlton.org/mailman/listinfo/mlton&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/mailman/listinfo/mlton&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/A-few-changes-proposals-for-MLton-tp20490002p20510575.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20510510</id>
	<title>Re: A few changes proposals for MLton</title>
	<published>2008-11-14T15:58:00Z</published>
	<updated>2008-11-14T15:58:00Z</updated>
	<author>
		<name>Matthew Fluet-3</name>
	</author>
	<content type="html">On Thu, 13 Nov 2008, Nicolas Bertolotti wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; * &amp;nbsp; 03-windows-versions.patch
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;* &amp;nbsp; This patch extends the setSysname() function that is used in
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;order to generate the &amp;quot;uname&amp;quot; string on MinGW. It makes it possible
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;to detect whether we are running Windows XP x64, Vista, Vista 64,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;2003 or 2008.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; * &amp;nbsp; 04-windows-paths.patch
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;* &amp;nbsp; This patch is highly related to the request Dan DuVarney has
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;submitted today about OS.Path. It provides support for UNC paths
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;(\\foo\bar\...) and handles paths like &amp;quot;\foo&amp;quot; as absolute paths
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;without a volume specification.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; * &amp;nbsp; 05-windows-exit.patch
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;* &amp;nbsp; This patch adds support for Posix.Process.exit() on MinGW. I
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;guess it has been deactivated on purpose but I don't know why and I
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;have not experienced any issue with it.
&lt;/div&gt;&lt;br&gt;I have little to nothing to say with regards to Windows; it seems as 
&lt;br&gt;though there is a chance to make some global decisions regarding OS.Path 
&lt;br&gt;and Windows on the other thread. &amp;nbsp;Please weigh in on the discussion, as it 
&lt;br&gt;is clear that you have some practical experiences that motivate changes.
&lt;br&gt;&lt;br&gt;I might be wary of extending the standard to include UNC paths, but it 
&lt;br&gt;does seem as though one can reasonably take UNC paths to denote paths with 
&lt;br&gt;volumes of the form &amp;quot;\\\\Server\\SharedFolder&amp;quot; (SML-string syntax). &amp;nbsp;It 
&lt;br&gt;does, however, appear as though your patch allows either of the Windows 
&lt;br&gt;separators in UNC volume strings. &amp;nbsp;I don't know if Windows interprets 
&lt;br&gt;&amp;quot;//Server/SharedFolder/foo&amp;quot; as a UNC path.
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;MLton mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20510510&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;MLton@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mlton.org/mailman/listinfo/mlton&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/mailman/listinfo/mlton&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/A-few-changes-proposals-for-MLton-tp20490002p20510510.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20510498</id>
	<title>Re: A few changes proposals for MLton</title>
	<published>2008-11-14T15:57:11Z</published>
	<updated>2008-11-14T15:57:11Z</updated>
	<author>
		<name>Matthew Fluet-3</name>
	</author>
	<content type="html">On Thu, 13 Nov 2008, Nicolas Bertolotti wrote:
&lt;br&gt;&amp;gt; * &amp;nbsp; 18-fix-big-heap-disk-dump.patch
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;* &amp;nbsp; This patch fixes a crash I could observe when a very large heap
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;is paged to disk. It seems that in some cases, fwrite() fails to
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;dump the whole heap at once and we have to split.
&lt;br&gt;&lt;br&gt;I encountered this as well on x86-linux; an
&lt;br&gt;fwrite (data, size, count, file) with size * count &amp;gt;= 2G immediately 
&lt;br&gt;returns 0 without writing any data and without setting ferror or errno. 
&lt;br&gt;(I.e., there is no indication as to why the operation failed.)
&lt;br&gt;This doesn't happen on x86-darwin or on amd64-linux (though, I didn't try 
&lt;br&gt;size * count &amp;gt;= 2^63 (which ought to fail anyways, as the memory system 
&lt;br&gt;and file system can't take it)). &amp;nbsp;Nor is there a corresponding problem 
&lt;br&gt;with fread. &amp;nbsp;This is rather annoying, as fwrite is supposed to be the 
&lt;br&gt;abstraction that removes the need for looping writes.
&lt;br&gt;&lt;br&gt;With regards to the patch:
&lt;br&gt;&lt;br&gt;--- mlton-r6698.patched/runtime/util/safe.h	2008-09-09 10:54:08.000000000 +0200
&lt;br&gt;+++ mlton-r6698/runtime/util/safe.h	2008-08-13 15:07:57.000000000 +0200
&lt;br&gt;@@ -68,8 +68,21 @@
&lt;br&gt;&amp;nbsp; static inline void fwrite_safe (const void *buf, size_t size, size_t count,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FILE *f) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; size_t res;
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp;res = fwrite (buf, size, count, f);
&lt;br&gt;+ &amp;nbsp;enum {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;WRITE_CHUNK_SIZE = 0x2000000, /* 32M */
&lt;br&gt;+ &amp;nbsp;};
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;res = 0;
&lt;br&gt;+ &amp;nbsp;while (res &amp;lt; count) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;size_t n;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;n = count - res;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (n &amp;gt; WRITE_CHUNK_SIZE)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;n = WRITE_CHUNK_SIZE;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;n = fwrite ((void *) ((char *) buf + res), size, n, f);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (n == 0)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;res += n;
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; if (res != count)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; diee (&amp;quot;fwrite (_, %&amp;quot;PRIuMAX&amp;quot;, %&amp;quot;PRIuMAX&amp;quot;, _) failed &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;(only wrote %&amp;quot;PRIuMAX&amp;quot;).\n&amp;quot;,
&lt;br&gt;&lt;br&gt;&lt;br&gt;This kind of misses the point of the *_safe functions --- they are 
&lt;br&gt;supposed to signal errors, not mask them. &amp;nbsp;The specification of fwrite 
&lt;br&gt;indicates that any short object count return value is an error. &amp;nbsp;Also, the 
&lt;br&gt;code above only handles a large count, not a large size. &amp;nbsp;So, it won't 
&lt;br&gt;help if one makes the seemingly meaning preserving change (in 
&lt;br&gt;diskBack.unix.c) from:
&lt;br&gt;&amp;nbsp; &amp;nbsp;fwrite_safe (buf, 1, size, f);
&lt;br&gt;to
&lt;br&gt;&amp;nbsp; &amp;nbsp;fwrite_safe (buf, size, 1, f);
&lt;br&gt;&lt;br&gt;I would isolate the extreme call to fwrite_safe as in this alternative 
&lt;br&gt;patch. &amp;nbsp;Although fread doesn't fail on large reads, it seems prudent to 
&lt;br&gt;limit extreme I/O; also, it makes the program more responsive to ctrl-C 
&lt;br&gt;(as control frequently returns to user-mode).&lt;br /&gt;diff --git a/runtime/platform/diskBack.unix.c b/runtime/platform/diskBack.unix.c
&lt;br&gt;index f9df82d..95bcea0 100644
&lt;br&gt;--- a/runtime/platform/diskBack.unix.c
&lt;br&gt;+++ b/runtime/platform/diskBack.unix.c
&lt;br&gt;@@ -34,9 +34,21 @@ typedef struct {
&lt;br&gt;&amp;nbsp;void GC_diskBack_read (void *data, pointer buf, size_t size) {
&lt;br&gt;&amp;nbsp; &amp;nbsp;FILE *f;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp;const size_t READ_CHUNK_SIZE = 0x2000000; /* 32M */
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp;f = ((WriteToDiskData)data)-&amp;gt;f;
&lt;br&gt;&amp;nbsp; &amp;nbsp;fseek_safe (f, 0, SEEK_SET);
&lt;br&gt;- &amp;nbsp;fread_safe (buf, 1, size, f);
&lt;br&gt;+ &amp;nbsp;/* fread (_, 1, size, _) succeeds
&lt;br&gt;+ &amp;nbsp; * with size &amp;gt;= 2^31
&lt;br&gt;+ &amp;nbsp; * for a 32-bit executable on 64-bit linux.
&lt;br&gt;+ &amp;nbsp; * Nonetheless, match GC_diskBack_write.
&lt;br&gt;+ &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp;while (size &amp;gt; 0) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;size_t s = min (READ_CHUNK_SIZE, size);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;fread_safe (buf, 1, s, f);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;buf += s;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;size -= s;
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;void GC_diskBack_close (void *data) {
&lt;br&gt;@@ -51,8 +63,20 @@ void *GC_diskBack_write (pointer buf, size_t size) {
&lt;br&gt;&amp;nbsp; &amp;nbsp;FILE *f;
&lt;br&gt;&amp;nbsp; &amp;nbsp;WriteToDiskData d;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp;const size_t WRITE_CHUNK_SIZE = 0x2000000; /* 32M */
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp;f = tempFileDes ();
&lt;br&gt;- &amp;nbsp;fwrite_safe (buf, 1, size, f);
&lt;br&gt;+ &amp;nbsp;/* fwrite (_, 1, size, _) fails
&lt;br&gt;+ &amp;nbsp; * (with no helpful error conditions!)
&lt;br&gt;+ &amp;nbsp; * with size &amp;gt;= 2^31
&lt;br&gt;+ &amp;nbsp; * on x86-linux.
&lt;br&gt;+ &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp;while (size &amp;gt; 0) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;size_t s = min (WRITE_CHUNK_SIZE, size);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;fwrite_safe (buf, 1, s, f);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;buf += s;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;size -= s;
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp;d = (WriteToDiskData)(malloc_safe (sizeof(*d)));
&lt;br&gt;&amp;nbsp; &amp;nbsp;d-&amp;gt;f = f;
&lt;br&gt;&amp;nbsp; &amp;nbsp;return d;
&lt;br&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;MLton mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20510498&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;MLton@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mlton.org/mailman/listinfo/mlton&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mlton.org/mailman/listinfo/mlton&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/A-few-changes-proposals-for-MLton-tp20490002p20510498.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20490002</id>
	<title>A few changes proposals for MLton</title>
	<published>2008-11-13T13:32:00Z</published>
	<updated>2008-11-13T13:32:00Z</updated>
	<author>
		<name>Nicolas Bertolotti-2</name>
	</author>
	<content type="html">&lt;html xmlns:v=&quot;urn:schemas-microsoft-com:vml&quot; xmlns:o=&quot;urn:schemas-microsoft-com:office:office&quot; xmlns:w=&quot;urn:schemas-microsoft-com:office:word&quot; xmlns:st1=&quot;urn:schemas-microsoft-com:office:smarttags&quot; xmlns=&quot;http://www.w3.org/TR/REC-html40&quot;&gt;

&lt;head&gt;
&lt;META HTTP-EQUIV=&quot;Content-Type&quot; CONTENT=&quot;text/html; charset=us-ascii&quot;&gt;
&lt;meta name=Generator content=&quot;Microsoft Word 11 (filtered medium)&quot;&gt;
&lt;!--[if !mso]&gt;
&lt;style&gt;
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
&lt;/style&gt;
&lt;![endif]--&gt;&lt;o:SmartTagType namespaceuri=&quot;urn:schemas-microsoft-com:office:smarttags&quot; name=&quot;place&quot; /&gt;
&lt;o:SmartTagType namespaceuri=&quot;urn:schemas-microsoft-com:office:smarttags&quot; name=&quot;PersonName&quot; /&gt;
&lt;!--[if !mso]&gt;
&lt;style&gt;
st1\:*{behavior:url(#default#ieooui) }
&lt;/style&gt;
&lt;![endif]--&gt;


&lt;/head&gt;

&lt;body lang=FR link=blue vlink=&quot;#606420&quot;&gt;

&lt;div class=Section1&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;
font-family:Arial'&gt;Hello,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;
font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span lang=EN-GB style='font-size:
10.0pt;font-family:Arial'&gt;You will find enclosed a number of patches that I
have applied to the MLton compiler we use in order to build our product. They
have been well tested and are now used in production. Could you please take a
look and see whether they could be integrated in the official sources
repository? Any remarks are welcome&amp;#8230;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span lang=EN-GB style='font-size:
10.0pt;font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;ul style='margin-top:0cm' type=disc&gt;
 &lt;li class=MsoNormal style='mso-list:l0 level1 lfo1'&gt;&lt;font size=2 face=Arial&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:Arial'&gt;01-cross-compile-mlton.patch&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;
 &lt;ul style='margin-top:0cm' type=circle&gt;
  &lt;li class=MsoNormal style='mso-list:l0 level2 lfo1'&gt;&lt;font size=2 face=Arial&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:Arial'&gt;This patch modifies
      the MLton Makefiles in order to make it easier to build a MLton cross
      compiler by cross compiling the runtime and only use the target machine
      to run the needed binaries (gen-sizes, print-constants etc&amp;#8230;). It introduces
      a Makefile parameter TARGET_MACHINE that can be used in order to provide
      the hostname of the machine that should be used to run those binaries. The
      machine is then accessed through &amp;#8220;ssh&amp;#8221;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;
 &lt;/ul&gt;
&lt;/ul&gt;

&lt;p class=MsoNormal style='margin-left:54.0pt'&gt;&lt;font size=2 face=Arial&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;ul style='margin-top:0cm' type=disc&gt;
 &lt;li class=MsoNormal style='mso-list:l0 level1 lfo1'&gt;&lt;font size=2 face=Arial&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:Arial'&gt;03-windows-versions.patch&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;
 &lt;ul style='margin-top:0cm' type=circle&gt;
  &lt;li class=MsoNormal style='mso-list:l0 level2 lfo1'&gt;&lt;font size=2 face=Arial&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:Arial'&gt;This patch extends
      the setSysname() function that is used in order to generate the &amp;#8220;uname&amp;#8221;
      string on MinGW. It makes it possible to detect whether we are running
      Windows XP x64, Vista, &lt;st1:place w:st=&quot;on&quot;&gt;Vista&lt;/st1:place&gt; 64, 2003 or
      2008.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;
 &lt;/ul&gt;
&lt;/ul&gt;

&lt;p class=MsoNormal style='margin-left:54.0pt'&gt;&lt;font size=2 face=Arial&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;ul style='margin-top:0cm' type=disc&gt;
 &lt;li class=MsoNormal style='mso-list:l0 level1 lfo1'&gt;&lt;font size=2 face=Arial&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:Arial'&gt;04-windows-paths.patch&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;
 &lt;ul style='margin-top:0cm' type=circle&gt;
  &lt;li class=MsoNormal style='mso-list:l0 level2 lfo1'&gt;&lt;font size=2 face=Arial&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:Arial'&gt;This patch is
      highly related to the request Dan DuVarney has submitted today about OS.Path.
      It provides support for UNC paths (\\foo\bar\...) and handles paths like &amp;#8220;\foo&amp;#8221;
      as absolute paths without a volume specification.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;
 &lt;/ul&gt;
&lt;/ul&gt;

&lt;p class=MsoNormal style='margin-left:54.0pt'&gt;&lt;font size=2 face=Arial&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;ul style='margin-top:0cm' type=disc&gt;
 &lt;li class=MsoNormal style='mso-list:l0 level1 lfo1'&gt;&lt;font size=2 face=Arial&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:Arial'&gt;05-windows-exit.patch&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;
 &lt;ul style='margin-top:0cm' type=circle&gt;
  &lt;li class=MsoNormal style='mso-list:l0 level2 lfo1'&gt;&lt;font size=2 face=Arial&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:Arial'&gt;This patch adds
      support for Posix.Process.exit() on MinGW. I guess it has been
      deactivated on purpose but I don&amp;#8217;t know why and I have not
      experienced any issue with it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;
 &lt;/ul&gt;
&lt;/ul&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span lang=EN-GB style='font-size:
10.0pt;font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;ul style='margin-top:0cm' type=disc&gt;
 &lt;li class=MsoNormal style='mso-list:l0 level1 lfo1'&gt;&lt;font size=2 face=Arial&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:Arial'&gt;18-fix-big-heap-disk-dump.patch&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;
 &lt;ul style='margin-top:0cm' type=circle&gt;
  &lt;li class=MsoNormal style='mso-list:l0 level2 lfo1'&gt;&lt;font size=2 face=Arial&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:Arial'&gt;This patch fixes a
      crash I could observe when a very large heap is paged to disk. It seems
      that in some cases, fwrite() fails to dump the whole heap at once and we
      have to split.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;
 &lt;/ul&gt;
&lt;/ul&gt;

&lt;p class=MsoNormal style='margin-left:54.0pt'&gt;&lt;font size=2 face=Arial&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;ul style='margin-top:0cm' type=disc&gt;
 &lt;li class=MsoNormal style='mso-list:l0 level1 lfo1'&gt;&lt;font size=2 face=Arial&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:Arial'&gt;21-prevent-null-heap-size.patch&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;
 &lt;ul style='margin-top:0cm' type=circle&gt;
  &lt;li class=MsoNormal style='mso-list:l0 level2 lfo1'&gt;&lt;font size=2 face=Arial&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:Arial'&gt;This patch
      addresses the issue I submitted a few days ago (Segmentation fault on a 6
      GB machine with ram-slop 0.85)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;
 &lt;/ul&gt;
&lt;/ul&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span lang=EN-GB style='font-size:
10.0pt;font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span lang=EN-GB style='font-size:
10.0pt;font-family:Arial'&gt;Best regards&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span lang=EN-GB style='font-size:
10.0pt;font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;font size=2 face=Arial&gt;&lt;span lang=EN-GB style='font-size:
10.0pt;font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 align=left style='border-collapse:collapse'&gt;
 &lt;tr&gt;
  &lt;td width=227 valign=top bgcolor=&quot;#0A2A70&quot; style='width:170.6pt;border-top:
  solid windowtext 1.0pt;border-left:solid windowtext 1.0pt;border-bottom:none;
  border-right:none;background:#0A2A70;padding:0cm 0cm 0cm 0cm'&gt;
  &lt;table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 style='border-collapse:collapse'&gt;
   &lt;tr&gt;
    &lt;td width=226 valign=top style='width:169.6pt;padding:0cm 5.4pt 0cm 5.4pt'&gt;
    &lt;p class=MsoNormal style='mso-element:frame'&gt;&lt;font size=2 color=white face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:10.0pt;color:white'&gt;&lt;a href=&quot;http://www.mathworks.fr/&quot; target=&quot;_blank&quot; title=&quot;http://www.mathworks.fr/&quot; rel=&quot;nofollow&quot;&gt;&lt;/a&gt;&lt;/span&gt;&lt;/font&gt;&lt;span class=MsoHyperlink&gt;&lt;span title=&quot;http://www.mathworks.fr/&quot;&gt;&lt;font color=white&gt;&lt;span lang=EN-GB style='color:white;text-decoration:none'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
    &lt;div&gt;
    &lt;p class=MsoNormal style='mso-element:frame'&gt;&lt;font size=2 color=white face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:10.0pt;color:white'&gt;&lt;/span&gt;&lt;a href=&quot;http://www.mathworks.fr/&quot; target=&quot;_blank&quot; title=&quot;http://www.mathworks.fr/&quot; rel=&quot;nofollow&quot;&gt;&lt;span title=&quot;http://www.mathworks.fr/&quot;&gt;&lt;font color=white&gt;&lt;span style='color:white;text-decoration:none'&gt;&lt;img border=0 width=176 height=52 id=&quot;_x0000_i1025&quot; src=&quot;http://www.nabble.com/attachment/20490002/0/image002.gif&quot; title=&quot;http://www.mathworks.fr/&quot;&gt;&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size=2&gt;&lt;span style='font-size:10.0pt'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
    &lt;font size=3 face=Verdana&gt;&lt;span style='font-size:12.0pt;font-family:Verdana'&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;
    &lt;p class=MsoNormal style='mso-element:frame'&gt;&lt;font size=3 face=Verdana&gt;&lt;span style='font-size:12.0pt;font-family:Verdana'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
    &lt;/div&gt;
    &lt;/td&gt;
   &lt;/tr&gt;
  &lt;/table&gt;
  &lt;p class=MsoNormal style='mso-element:frame'&gt;&lt;font size=1 face=&quot;Times New Roman&quot;&gt;&lt;span style='font-size:2.0pt'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td width=191 bgcolor=&quot;#0A2A70&quot; style='width:143.4pt;border-top:solid windowtext 1.0pt;
  border-left:none;border-bottom:none;border-right:solid windowtext 1.0pt;
  background:#0A2A70;padding:0cm 0cm 0cm 0cm'&gt;
  &lt;table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 style='border-collapse:collapse'&gt;
   &lt;tr&gt;
    &lt;td width=190 style='width:142.4pt;padding:0cm 5.4pt 0cm 5.4pt'&gt;
    &lt;p class=MsoNormal align=right style='text-align:right;mso-element:frame'&gt;&lt;font size=2 color=white face=&quot;Century Gothic&quot;&gt;&lt;span lang=EN-GB style='font-size:
    10.0pt;font-family:&quot;Century Gothic&quot;;color:white'&gt;&lt;a href=&quot;http://www.mathworks.fr/&quot; title=&quot;http://www.mathworks.fr/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;&lt;font color=white&gt;&lt;span style='color:white'&gt;&lt;span title=&quot;http://www.mathworks.fr/&quot;&gt;&lt;span title=&quot;http://www.mathworks.fr/&quot;&gt;Accelerating the pace of&amp;nbsp; engineering
    and science&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
    &lt;/td&gt;
   &lt;/tr&gt;
  &lt;/table&gt;
  &lt;p class=MsoNormal align=right style='text-align:right;mso-element:frame'&gt;&lt;font size=2 color=white face=&quot;Century Gothic&quot;&gt;&lt;span lang=EN-GB style='font-size:
  10.0pt;font-family:&quot;Century Gothic&quot;;color:white'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td width=227 valign=top style='width:170.6pt;border:none;border-left:solid windowtext 1.0pt;
  padding:0cm 0cm 0cm 0cm'&gt;
  &lt;table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width=227 style='width:170.6pt;border-collapse:collapse'&gt;
   &lt;tr&gt;
    &lt;td width=227 valign=top style='width:170.6pt;padding:1.4pt 5.4pt 1.4pt 5.4pt'&gt;
    &lt;p class=MsoNormal style='mso-element:frame'&gt;&lt;st1:PersonName ProductID=&quot;Nicolas Bertolotti&quot; tabIndex=&quot;0&quot; style=&quot;BACKGROUND-POSITION: left bottom; BACKGROUND-IMAGE: url(res://ietag.dll/#34/#1001); BACKGROUND-REPEAT: repeat-x&quot; w:st=&quot;on&quot;&gt;&lt;b&gt;&lt;font size=2 color=&quot;#002470&quot; face=&quot;Century Gothic&quot;&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:&quot;Century Gothic&quot;;
     color:#002470;font-weight:bold'&gt;Nicolas Bertolotti&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/st1:PersonName&gt;&lt;font size=2 color=&quot;#002470&quot; face=&quot;Century Gothic&quot;&gt;&lt;span lang=EN-GB style='font-size:10.0pt;font-family:&quot;Century Gothic&quot;;color:#002470'&gt; &lt;br&gt;
    Senior Development Engineer&lt;/span&gt;&lt;/font&gt;&lt;span lang=EN-GB&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
    &lt;/td&gt;
   &lt;/tr&gt;
  &lt;/table&gt;
  &lt;p class=MsoNormal style='mso-element:frame'&gt;&lt;font size=3 face=&quot;Times New Roman&quot;&gt;&lt;span lang=EN-GB style='font-size:12.0pt'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td width=191 valign=top style='width:143.4pt;border:none;border-right:solid windowtext 1.0pt;
  padding:0cm 0cm 0cm 0cm'&gt;
  &lt;table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width=192 style='width:143.75pt;border-collapse:collapse'&gt;
   &lt;tr&gt;
    &lt;td width=192 valign=top style='width:143.75pt;padding:1.4pt 5.4pt 1.4pt 5.4pt'&gt;
    &lt;p class=MsoNormal align=right style='text-align:right;mso-element:frame'&gt;&lt;font size=2 color=&quot;#002470&quot; face=&quot;Century Gothic&quot;&gt;&lt;span style='font-size:10.0pt;
    font-family:&quot;Century Gothic&quot;;color:#002470'&gt;2 Rue de Paris&lt;br&gt;
    92196 Meudon Cedex&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
    &lt;p class=MsoNormal align=right style='text-align:right;mso-element:frame'&gt;&lt;font size=2 color=&quot;#002470&quot; face=&quot;Century Gothic&quot;&gt;&lt;span style='font-size:10.0pt;
    font-family:&quot;Century Gothic&quot;;color:#002470'&gt;France&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
    &lt;/td&gt;
   