<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://www.codeplex.com/rss.xsl"?><rss version="2.0"><channel><title>siod Forum Rss Feed</title><link>http://www.codeplex.com/siod/Thread/List.aspx</link><description>siod Forum Rss Description</description><item><title>New Post: is it possible to treat managed C++ and just another port?</title><link>http://www.codeplex.com/siod/Thread/View.aspx?ThreadId=7616</link><description>&lt;div style="line-height: normal;"&gt;could you &amp;quot;redirect&amp;quot; to using the CLR's GC system?&lt;br&gt;
&lt;/div&gt;</description><author>raould</author><pubDate>Sun, 24 Aug 2008 23:24:44 GMT</pubDate><guid isPermaLink="false">New Post: is it possible to treat managed C++ and just another port? 20080824112444P</guid></item><item><title>NEW POST: is it possible to treat managed C++ and just another port?</title><link>http://www.codeplex.com/siod/Thread/View.aspx?ThreadId=7616</link><description>&lt;div class="wikidoc"&gt;
I have done an initial port to CLR. Things that trigger &amp;quot;native code generation&amp;quot; were removed.&lt;br /&gt; &lt;br /&gt;1. va&lt;i&gt;list, var&lt;/i&gt;start,va&lt;i&gt;end, va&lt;/i&gt;arg. So instead of having listn, I have made list2,list3. Perhaps there is another implementation of &amp;quot;...&amp;quot; which does not generate a warning in CLR. Using it in portable code by using macros might be tricky. This is unfortunate, because &amp;quot;...&amp;quot; can be used to considerably reduce the verbosity of code.&lt;br /&gt; &lt;br /&gt;2. all the garbage collector related stuff removed. looks&lt;i&gt;pointerp, and stack&lt;/i&gt;start&lt;i&gt;ptr. gc&lt;/i&gt;mark&lt;i&gt;and&lt;/i&gt;sweep(), the use of jmp_buf structure. Just removed.&lt;br /&gt; &lt;br /&gt;3. stack&lt;i&gt;limit&lt;/i&gt;ptr removed, and STACK_CHECK(X) macro is a no-op.&lt;br /&gt; &lt;br /&gt;4. the jmp&lt;i&gt;buf removed from the catch&lt;/i&gt;frame structure. And all code that referenced it. Also other calls to setjmp and longjmp removed.&lt;br /&gt; &lt;br /&gt;I also did a bit of rewrite around functions that are warned as&lt;br /&gt;being unsafe or security risks. Of course this could also be done&lt;br /&gt;in the C version as well. sprintf, strcat, getenv, etc. But the thing&lt;br /&gt;that confused me about this was why, in a fully managed environment&lt;br /&gt;these functions would be unsafe? Doesn't even a raw char * in managed&lt;br /&gt;code have a length associated with it that comes from the point&lt;br /&gt;where you called malloc to get the memory in the first place? Perhaps&lt;br /&gt;not. (In the LISPMACHINE implementations of C of course this was done,&lt;br /&gt;and C pointers were a kind of locative, or closure, into other&lt;br /&gt;structures). &lt;br /&gt; &lt;br /&gt;Anyway, the result is code that works, read-eval-print, but no garbage&lt;br /&gt;collector. I will post it to the site, as soon as the TFS here on&lt;br /&gt;codeplex is running again.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;
&lt;/div&gt;</description><author>publius</author><pubDate>Sat, 14 Apr 2007 11:51:19 GMT</pubDate><guid isPermaLink="false">NEW POST: is it possible to treat managed C++ and just another port? 20070414115119A</guid></item><item><title>NEW POST: icons used during the install</title><link>http://www.codeplex.com/siod/Thread/View.aspx?ThreadId=8952</link><description>&lt;div class="wikidoc"&gt;
Thanks to Brad Parker, &lt;a href="http://www.unlambda.com/" class="externalLink"&gt;http://www.unlambda.com/&lt;/a&gt; for the graphics used in the installer splash screens and the wcsiod.exe program icon.&lt;br /&gt;
&lt;/div&gt;</description><author>publius</author><pubDate>Sat, 07 Apr 2007 16:41:15 GMT</pubDate><guid isPermaLink="false">NEW POST: icons used during the install 20070407044115P</guid></item><item><title>NEW POST: is it possible to treat managed C++ and just another port?</title><link>http://www.codeplex.com/siod/Thread/View.aspx?ThreadId=7616</link><description>&lt;div class="wikidoc"&gt;
Here is the fundamental question. Is it possible to have an application written in C and to treat it as just another port when run in a managed C++ environment?&lt;br /&gt;Can we keep the source code relatively clean, and compile from the same sources for platforms&lt;br /&gt;as divergent as Cygwin, Linux, unmanaged C, managed C++, and in different operating systems,&lt;br /&gt;and CLR such as Windows .NET and Linux Mono?&lt;br /&gt; &lt;br /&gt;Experience with Purify and some very old C interpreters, including the C compiler for the CADR circa 1982, suggest that it is possible to do this, as long as the overhead of dealing&lt;br /&gt;with the &amp;quot;MAKE/BUILD&amp;quot; environment does not get out of control.&lt;br /&gt; &lt;br /&gt;We've been dealing with differences between C compilers for 30 years, and know that it is not&lt;br /&gt;intractable. &lt;br /&gt;
&lt;/div&gt;</description><author>publius</author><pubDate>Mon, 26 Feb 2007 19:13:01 GMT</pubDate><guid isPermaLink="false">NEW POST: is it possible to treat managed C++ and just another port? 20070226071301P</guid></item><item><title>the purpose and goals of this project: </title><link>http://www.codeplex.com/siod/Thread/View.aspx?ThreadId=7571</link><description>&lt;div class="wikidoc"&gt;
The source code for the SIOD scheme interpreter has been available for&lt;br /&gt;nearly 20 years, most recently (since the 1990's) from&lt;br /&gt;&lt;a href="http://alum.mit.edu/www/gjc/siod.html" class="externalLink"&gt;http://alum.mit.edu/www/gjc/siod.html&lt;/a&gt;. What is the purpose for&lt;br /&gt;hosting it on CodePlex now? &lt;br /&gt; &lt;br /&gt;The earliest versions of SIOD were particularly small, such that &lt;br /&gt;definining and executing a small function such as &amp;quot;factorial&amp;quot; or &amp;quot;fib&amp;quot; could&lt;br /&gt;provide as much as 80% code-coverage. This made them attractive to people&lt;br /&gt;who want to test a new C compiler for the first time on some small but&lt;br /&gt;not entirely trivial program. To that end I want to investigate the issues&lt;br /&gt;of porting ugly C programs into managed code, and to evaluate the &lt;br /&gt;garbage collection and performance issues before embarking on a larger&lt;br /&gt;lisp implementation project.&lt;br /&gt; &lt;br /&gt;There are a couple ways to take SIOD into the managed code space. &lt;br /&gt;The obvious way is to avoid the explicit management of heaps, and&lt;br /&gt;just allocate storage in small chunks using the CLR, and let the CLR&lt;br /&gt;take care of all the storage management. SIOD is small enough to&lt;br /&gt;fully document the entire porting process, any the issues that come up,&lt;br /&gt;before dealing with other favorite programs of the 1980's, such as Emacs.&lt;br /&gt; &lt;br /&gt;Another purpose is to evaluate how easy it is to use the visual studio&lt;br /&gt;express integration with the codeplex source code management.&lt;br /&gt; &lt;br /&gt;
&lt;/div&gt;</description><author>publius</author><pubDate>Sat, 24 Feb 2007 17:06:57 GMT</pubDate><guid isPermaLink="false">the purpose and goals of this project:  20070224050657P</guid></item></channel></rss>