<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>ironlisp &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/ironlisp/</link>
	<description>Feed of posts on WordPress.com tagged "ironlisp"</description>
	<pubDate>Sat, 25 May 2013 22:51:54 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Finally! IronLisp gets hygienic macro support]]></title>
<link>http://xacc.wordpress.com/2007/09/25/finally-ironlisp-gets-hygienic-macro-support/</link>
<pubDate>Mon, 24 Sep 2007 22:07:20 +0000</pubDate>
<dc:creator>leppie</dc:creator>
<guid>http://xacc.wordpress.com/2007/09/25/finally-ironlisp-gets-hygienic-macro-support/</guid>
<description><![CDATA[Thanks to Macro by example, it pointed out some very &#8216;deep&#8217; corner cases, as I dont even]]></description>
<content:encoded><![CDATA[<p>Thanks to <a href="http://www.ccs.neu.edu/home/dorai/mbe/mbe-lsp.html">Macro by example</a>, it pointed out some very &#8216;deep&#8217; corner cases, as I dont even really understand the code so well! Also pointed out some bugs <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Also implemented is the &#8216;=&#62;&#8217; keyword for &#8216;cond&#8217; and &#8216;case&#8217; is implemented now too. These 2 were needed to basically use &#8216;Macro by example&#8217;, unaltered. </p>
<p>On a further note, there seems to be a R4RS test &#8216;suite&#8217;, that I can hopefully use soon to implement most of the tests <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>[edit] So it seems it was not working correctly at all <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  I have now gone thru it and fixed this issues <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  [edit]</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[IronLisp progress report]]></title>
<link>http://xacc.wordpress.com/2007/09/21/ironlisp-progress-report/</link>
<pubDate>Fri, 21 Sep 2007 14:42:23 +0000</pubDate>
<dc:creator>leppie</dc:creator>
<guid>http://xacc.wordpress.com/2007/09/21/ironlisp-progress-report/</guid>
<description><![CDATA[I have uploaded a PDF containing the current progress towards R5RS. I will try to keep the version o]]></description>
<content:encoded><![CDATA[<p>I have uploaded a PDF containing the current progress towards R5RS. I will try to keep the version on this site current.</p>
<p><a href='http://xacc.files.wordpress.com/2007/09/progress.pdf' title='IronLisp progress'>IronLisp progress</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[How to Report Bugs Effectively]]></title>
<link>http://xacc.wordpress.com/2007/09/15/how-to-report-bugs-effectively/</link>
<pubDate>Sat, 15 Sep 2007 07:46:30 +0000</pubDate>
<dc:creator>leppie</dc:creator>
<guid>http://xacc.wordpress.com/2007/09/15/how-to-report-bugs-effectively/</guid>
<description><![CDATA[http://www.chiark.greenend.org.uk/~sgtatham/bugs.html]]></description>
<content:encoded><![CDATA[<p><a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">http://www.chiark.greenend.org.uk/~sgtatham/bugs.html</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[syntax-rules]]></title>
<link>http://xacc.wordpress.com/2007/09/10/syntax-rules/</link>
<pubDate>Mon, 10 Sep 2007 09:10:53 +0000</pubDate>
<dc:creator>leppie</dc:creator>
<guid>http://xacc.wordpress.com/2007/09/10/syntax-rules/</guid>
<description><![CDATA[define-syntax let-syntax letrec-syntax syntax-case Lots of info and examples Chez Sheme macros Schem]]></description>
<content:encoded><![CDATA[<p>define-syntax<br />
let-syntax<br />
letrec-syntax<br />
syntax-case</p>
<p><a href="http://okmij.org/ftp/Scheme/macros.html">Lots of info and examples</a><br />
<a href="http://www.scheme.com/csug/syntax.html">Chez Sheme macros</a><br />
<a href="http://community.schemewiki.org/?scheme-faq-macros">Scheme FAQ: Macros</a><br />
<a href="http://www.swiss.ai.mit.edu/~jaffer/r4rs_toc.html">Old, but the appendix is quite descriptive</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Fold diagrams]]></title>
<link>http://xacc.wordpress.com/2007/09/07/fold-diagrams/</link>
<pubDate>Fri, 07 Sep 2007 12:34:54 +0000</pubDate>
<dc:creator>leppie</dc:creator>
<guid>http://xacc.wordpress.com/2007/09/07/fold-diagrams/</guid>
<description><![CDATA[How fold and friends work]]></description>
<content:encoded><![CDATA[<p><a href="http://cale.yi.org/index.php/Fold_Diagrams">How fold and friends work</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Source checkin issues eradicated]]></title>
<link>http://xacc.wordpress.com/2007/09/06/source-checkin-issues-eradicated/</link>
<pubDate>Thu, 06 Sep 2007 08:11:25 +0000</pubDate>
<dc:creator>leppie</dc:creator>
<guid>http://xacc.wordpress.com/2007/09/06/source-checkin-issues-eradicated/</guid>
<description><![CDATA[Sorry for all the hiccups, I have tested the repository now from a remote location. All files are up]]></description>
<content:encoded><![CDATA[<p>Sorry for all the hiccups, I have tested the repository now from a remote location. All files are up2date now, and works.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Interesting article &amp; source checkin tonite]]></title>
<link>http://xacc.wordpress.com/2007/09/03/interesting-article-source-checkin-tonite/</link>
<pubDate>Mon, 03 Sep 2007 19:20:43 +0000</pubDate>
<dc:creator>leppie</dc:creator>
<guid>http://xacc.wordpress.com/2007/09/03/interesting-article-source-checkin-tonite/</guid>
<description><![CDATA[Write Yourself a Scheme in 48 Hours: 11. Towards a Standard Library is a very interesting read. I fo]]></description>
<content:encoded><![CDATA[<p><a href="http://halogen.note.amherst.edu/~jdtang/scheme_in_48/tutorial/stdlib.html">Write Yourself a Scheme in 48 Hours: 11. Towards a Standard Library</a> is a very interesting read. I found this by off chance in a Google search. I don&#8217;t really care for the Haskell part, but what did intrigue me, was the simplicity they described <strong>fold </strong>and <strong>unfold </strong>and how they apply it. </p>
<p>Off course the challenge was to actually test this code on IronLisp. At first I was rewriting alot to IronLisp dialect, this got tedious and error prone. I decided to use macro&#8217;s for what they intended for. Anyways 2 macro&#8217;s was sufficient for the bulk. And here they are:</p>
<pre>
(defmacro lambda (&#38;rest body) 
  `(fn ,@body))
  
(defmacro define (nargs &#38;rest body)
   `(defun ,(car ,nargs) ,(cdr ,nargs) ,@body)) 


</pre>
<p>As said, the aim was to test it, and beyond my expectations, it passed flying colors first time (except for a few syntax issues, like &#8216;new&#8217; and clashing with existing functions). </p>
<p>I will be doing a checkin tonite. Some other things might still be broken, but you will get a nice dialog showing my acknowledgment of the issue <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Yay, now I am getting somewhere!]]></title>
<link>http://xacc.wordpress.com/2007/09/03/yay-now-i-am-getting-somewhere/</link>
<pubDate>Mon, 03 Sep 2007 09:22:05 +0000</pubDate>
<dc:creator>leppie</dc:creator>
<guid>http://xacc.wordpress.com/2007/09/03/yay-now-i-am-getting-somewhere/</guid>
<description><![CDATA[At 2:30AM this morning, I finally solved an eluding bug that I only discovered last night. With hunt]]></description>
<content:encoded><![CDATA[<p>At 2:30AM this morning, I finally solved an eluding bug that I only discovered last night. With hunting this bug, it has showed me alot places where my code could be refactored, and refactored it was! The new 3 stage handling of the parsing has also helped eliminated alot of old &#8216;fixup&#8217; code. Oh I love deleting chunks of stale code :p</p>
<p>Anyways, things seems to be going the right way now, and I will make a checkin as soon as I have tested it a bit more. There are in fact alot more places that could be refactored <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[DLR changes demystified &amp; macro's update]]></title>
<link>http://xacc.wordpress.com/2007/09/01/dlr-changes-demystified-macros-update/</link>
<pubDate>Sat, 01 Sep 2007 19:04:33 +0000</pubDate>
<dc:creator>leppie</dc:creator>
<guid>http://xacc.wordpress.com/2007/09/01/dlr-changes-demystified-macros-update/</guid>
<description><![CDATA[The output of IronLisp is now looking similar to IronPython&#8217;s. That said, IronLisp runs the be]]></description>
<content:encoded><![CDATA[<p>The output of IronLisp is now looking similar to IronPython&#8217;s. That said, IronLisp runs the benchmark at roughly the same time as IronPython now. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>On the bright side, I seem to have gotten macro&#8217;s waxed. On the other hand, the code is in a total state of chaos! Anyways, macro&#8217;s are now all handled at compile time (probably very inefficiently), but they seem to do what I intend for them to do. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Here is a sample of what it can handle:</p>
<pre>
(= defmacro (macro (name args &#38;rest body) 
  `(= ,name (macro ,args ,@body))))  

(defmacro defun (name args &#38;rest body) 
  `(= ,name (fn ,args ,@body)))
  
(defun hello (x)
  (prl x)
  (prl "hello")
  (prl x))  

(hello "leppie")

(defmacro define (name value)
  `(= ,name ,value))
  
(defmacro listp (l) 
  `(or (eq null ,l) (is cons ,l)))

(defun islist (x)
   (listp x))
   
(prl (islist 1))

(define ml '(1 2 3 4))
(prl (listp ml))
</pre>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Another DLR update]]></title>
<link>http://xacc.wordpress.com/2007/09/01/another-dlr-update/</link>
<pubDate>Sat, 01 Sep 2007 09:00:36 +0000</pubDate>
<dc:creator>leppie</dc:creator>
<guid>http://xacc.wordpress.com/2007/09/01/another-dlr-update/</guid>
<description><![CDATA[This time, the merge is going bad, I seemed to have been using &#8216;deprecated&#8217; parts]]></description>
<content:encoded><![CDATA[<p>This time, the merge is going bad, I seemed to have been using &#8216;deprecated&#8217; parts :&#124; </p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[IronLisp progress (macros)]]></title>
<link>http://xacc.wordpress.com/2007/08/30/ironlisp-progress-macros/</link>
<pubDate>Thu, 30 Aug 2007 14:40:34 +0000</pubDate>
<dc:creator>leppie</dc:creator>
<guid>http://xacc.wordpress.com/2007/08/30/ironlisp-progress-macros/</guid>
<description><![CDATA[So, as said last week, I had hoped to get macros working over the weekend. I tried, but alas I disco]]></description>
<content:encoded><![CDATA[<p>So, as said last week, I had hoped to get macros working over the weekend. I tried, but alas I discovered my parser was flawed, and I had to rewrite that into a 3 stage process (there is method in this madness). Anyways, the parser was completed, and I carried on with the pesky macro&#8217;s. BANG, my reason for dealing with macros were also flawed! <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  I have taken a few days to think of an alternative, and have come up with something that I will likely implement this weekend (have a bit much work during day time to focus on this during the evenings).</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Benchmarks updated]]></title>
<link>http://xacc.wordpress.com/2007/08/24/benchmarks-updated/</link>
<pubDate>Fri, 24 Aug 2007 20:47:18 +0000</pubDate>
<dc:creator>leppie</dc:creator>
<guid>http://xacc.wordpress.com/2007/08/24/benchmarks-updated/</guid>
<description><![CDATA[Earlier I posted some rather non technical benchmarking result. Also, the python times was compared]]></description>
<content:encoded><![CDATA[<p>Earlier I posted some rather non technical benchmarking result. Also, the python times was compared in the interactive console. Here are the results running from the command line:</p>
<p><strong>IronLisp:</strong> Build in release mode<br />
Z:\dev\IronLisp\IronLisp\bin\Release&#62;IronLisp.exe<br />
time: 326.281ms<br />
time: 303.722ms<br />
time: 313.096ms<br />
time: 304.353ms<br />
time: 305.102ms</p>
<p><strong>IronPython:</strong> Latest checkout, build in release mode<br />
C:\dev\IronPython_Main\Bin\Release&#62;ipy tak.py<br />
Result:  7 Time:  0.763377747731<br />
Result:  7 Time:  0.657344718393<br />
Result:  7 Time:  0.655193607009<br />
Result:  7 Time:  0.664234979585</p>
<p><strong>Python 2.51</strong><br />
C:\Python25&#62;python.exe -O tak.py<br />
Result:  7 Time:  1.38913744624<br />
Result:  7 Time:  1.38743890634<br />
Result:  7 Time:  1.37719849869<br />
Result:  7 Time:  1.37393355859</p>
<p>As you can see this paints a different picture. The picture is indeed very good as the DLR compiles most of the code. I tried running IronPython in &#8216;eval&#8217; mode, but it seem to think about something forever <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  (this didnt happen though previously when tested on the interactive console).</p>
<p>Here is the python code:</p>
<pre style='background-color:white;font-family:Consolas,Bitstream Vera Sans Mono,Lucida Console,Courier New;'><FONT color="Blue">import</FONT> time

<FONT color="Blue">def</FONT> tak <FONT color="DarkBlue">(</FONT>x<FONT color="DarkBlue">,</FONT> y<FONT color="DarkBlue">,</FONT> z<FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">:</FONT>
    <FONT color="Blue">if</FONT> <FONT color="Blue">not</FONT><FONT color="DarkBlue">(</FONT>y <FONT color="DarkBlue">&#60;</FONT> x<FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">:</FONT>
        <FONT color="Blue">return</FONT> z
    <FONT color="Blue">else</FONT><FONT color="DarkBlue">:</FONT>
        <FONT color="Blue">return</FONT> tak<FONT color="DarkBlue">(</FONT>tak<FONT color="DarkBlue">(</FONT>x<FONT color="DarkBlue">-</FONT><FONT color="Red">1</FONT><FONT color="DarkBlue">,</FONT> y<FONT color="DarkBlue">,</FONT> z<FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">,</FONT> tak<FONT color="DarkBlue">(</FONT>y<FONT color="DarkBlue">-</FONT><FONT color="Red">1</FONT><FONT color="DarkBlue">,</FONT> z<FONT color="DarkBlue">,</FONT> x<FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">,</FONT> tak<FONT color="DarkBlue">(</FONT>z<FONT color="DarkBlue">-</FONT><FONT color="Red">1</FONT><FONT color="DarkBlue">,</FONT> x<FONT color="DarkBlue">,</FONT> y<FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">)</FONT>

<FONT color="Blue">for</FONT> i <FONT color="Blue">in</FONT> range<FONT color="DarkBlue">(</FONT><FONT color="Red">4</FONT><FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">:</FONT>
  t <FONT color="DarkBlue">=</FONT> time<FONT color="DarkBlue">.</FONT>clock<FONT color="DarkBlue">(</FONT><FONT color="DarkBlue">)</FONT>
  r <FONT color="DarkBlue">=</FONT> tak<FONT color="DarkBlue">(</FONT><FONT color="Red">24</FONT><FONT color="DarkBlue">,</FONT> <FONT color="Red">14</FONT><FONT color="DarkBlue">,</FONT> <FONT color="Red">6</FONT><FONT color="DarkBlue">)</FONT>
  t2 <FONT color="DarkBlue">=</FONT> time<FONT color="DarkBlue">.</FONT>clock<FONT color="DarkBlue">(</FONT><FONT color="DarkBlue">)</FONT>
  <FONT color="Blue">print</FONT> <FONT color="Maroon">"Result: "</FONT><FONT color="DarkBlue">,</FONT> r<FONT color="DarkBlue">,</FONT> <FONT color="Maroon">"Time: "</FONT><FONT color="DarkBlue">,</FONT> <FONT color="DarkBlue">(</FONT>t2 <FONT color="DarkBlue">-</FONT> t<FONT color="DarkBlue">)</FONT>
</pre>
<p><span style="visibility:hidden;">dumb theme</span><br />
And finally the IronLisp code (see that macro!!!):</p>
<pre style='background-color:white;font-family:Consolas,Bitstream Vera Sans Mono,Lucida Console,Courier New;'><FONT color="DarkBlue">(</FONT><FONT color="Teal">using</FONT> System.Diagnostics<FONT color="DarkBlue">)</FONT>

<FONT color="DarkBlue">(</FONT><FONT color="Teal">=</FONT> tak <FONT color="DarkBlue">(</FONT><FONT color="Blue">fn</FONT> <FONT color="DarkBlue">(</FONT>x y z<FONT color="DarkBlue">)</FONT>
  <FONT color="DarkBlue">(</FONT><FONT color="Blue">if</FONT> <FONT color="DarkBlue">(</FONT><FONT color="Teal">not</FONT> <FONT color="DarkBlue">(</FONT><FONT color="Teal">&#60;</FONT> y x<FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">)</FONT>
    z
    <FONT color="DarkBlue">(</FONT>tak <FONT color="DarkBlue">(</FONT>tak <FONT color="DarkBlue">(</FONT><FONT color="Teal">-</FONT> x <FONT color="Red">1</FONT><FONT color="DarkBlue">)</FONT> y z<FONT color="DarkBlue">)</FONT>
         <FONT color="DarkBlue">(</FONT>tak <FONT color="DarkBlue">(</FONT><FONT color="Teal">-</FONT> y <FONT color="Red">1</FONT><FONT color="DarkBlue">)</FONT> z x<FONT color="DarkBlue">)</FONT>
         <FONT color="DarkBlue">(</FONT>tak <FONT color="DarkBlue">(</FONT><FONT color="Teal">-</FONT> z <FONT color="Red">1</FONT><FONT color="DarkBlue">)</FONT> x y<FONT color="DarkBlue">)</FONT> <FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">)</FONT>

<FONT color="DarkBlue">(</FONT><FONT color="Teal">=</FONT> time <FONT color="DarkBlue">(</FONT><FONT color="Blue">macro</FONT> <FONT color="DarkBlue">(</FONT>x<FONT color="DarkBlue">)</FONT>
  <FONT color="DarkBlue">`</FONT><FONT color="DarkBlue">(</FONT><FONT color="Blue">do</FONT>
      <FONT color="DarkBlue">(</FONT><FONT color="Teal">=</FONT> sw <FONT color="DarkBlue">(</FONT>startnew stopwatch<FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">)</FONT>
      <FONT color="DarkBlue">,</FONT>x
      <FONT color="DarkBlue">(</FONT><FONT color="Teal">=</FONT> ts <FONT color="DarkBlue">(</FONT>elapsed sw<FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">)</FONT>
      <FONT color="DarkBlue">(</FONT>cwl <FONT color="Maroon">"time: {0:f3}ms"</FONT> <FONT color="DarkBlue">(</FONT>totalmilliseconds ts<FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">)</FONT>

<FONT color="DarkBlue">(</FONT><FONT color="Blue">to</FONT> i <FONT color="Red">4</FONT>
  <FONT color="DarkBlue">(</FONT>time <FONT color="DarkBlue">(</FONT>tak <FONT color="Red">24</FONT> <FONT color="Red">14</FONT> <FONT color="Red">6</FONT><FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">)</FONT></pre>
]]></content:encoded>
</item>
<item>
<title><![CDATA[What is IronLisp?]]></title>
<link>http://xacc.wordpress.com/2007/08/22/what-is-ironlisp/</link>
<pubDate>Wed, 22 Aug 2007 13:22:35 +0000</pubDate>
<dc:creator>leppie</dc:creator>
<guid>http://xacc.wordpress.com/2007/08/22/what-is-ironlisp/</guid>
<description><![CDATA[There seems to be some confusion about IronLisp, so I will try make it clear. Feel free to ask, if u]]></description>
<content:encoded><![CDATA[<p>There seems to be some confusion about IronLisp, so I will try make it clear. Feel free to ask, if unsure.</p>
<p>1. IronLisp is not a replacement for LSharp, it shares common ideas.<br />
2. The author of LSharp is NOT the author of IronLisp (although I wouldnt mind getting Rob on the team:)).<br />
3. It is called IronLisp (as is IronRuby and IronPython, I assume) as it is targeted for the Silverlight core (iron/silver/metals, get it?).<br />
4. As with IronRuby, the current state of the code is &#8216;very alpha&#8217;, and it doesnt even include a readme.txt and should be regarded as WIP (work-in-progress).<br />
5. I am still learning the in&#8217;s and out&#8217;s of the DLR (which doesnt have much documentation yet), and this was my 1st attempt at using it for the purpose of constructing a (scripting) language. I have already seen places where I could have (and will probably in the future) done things better.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[IronLisp compliance]]></title>
<link>http://xacc.wordpress.com/2007/08/22/ironlisp-compliance/</link>
<pubDate>Wed, 22 Aug 2007 13:13:12 +0000</pubDate>
<dc:creator>leppie</dc:creator>
<guid>http://xacc.wordpress.com/2007/08/22/ironlisp-compliance/</guid>
<description><![CDATA[I read some interesting feedback on reddit.com. Although I havent seriously looked into it, IronLisp]]></description>
<content:encoded><![CDATA[<p>I read some interesting feedback on reddit.com. Although I havent seriously looked into it, IronLisp would ideally compliant to some form of LISP. That leaves me 2 choices: Common LISP and Scheme. As for the former, there are just under 1000 functions in the &#8216;spec&#8217;. Learning them and implementing them would be ongoing venture beyond my expected lifetime. As for the latter (Scheme), it presents a much cleaner approach, with almost a tiny &#8216;core&#8217; and using that as building block. </p>
<p>Another aspect mentioned was library support. Again, learning the entire LISP library(s) to get an idea of the implementation will be too great task for me. Having worked (almost exclusively) on the .NET Framework &#8216;library&#8217; for the last 6 years, it is pretty much the only library I am really comfortable with. My idea with IronLisp is to let the .NET framework provide all the common libraries, and hence any .NET user can just learn a new syntax to use it practically. That will also keep IronLisp small and manageable.</p>
<p>Getting back to Scheme. Ideally IronLisp at some future time, will support/comply to some degree of Scheme, or will have a compatibility mode, or have macros to make it syntax (and functionally) compatible. With this in hand, hopefully IronLisp would be capable of running Scheme libraries.</p>
<p>Unfortunately, Scheme has no defined test suite, but the specification is rather unambiguous, and smaller in total than the Common LISP&#8217;s index! </p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[IronLisp is now open]]></title>
<link>http://xacc.wordpress.com/2007/08/21/ironlisp-is-now-open/</link>
<pubDate>Tue, 21 Aug 2007 17:43:23 +0000</pubDate>
<dc:creator>leppie</dc:creator>
<guid>http://xacc.wordpress.com/2007/08/21/ironlisp-is-now-open/</guid>
<description><![CDATA[Please go visit http://www.codeplex.com/IronLisp and download the source! Enjoy, and I am looking fo]]></description>
<content:encoded><![CDATA[<p>Please go visit <a href="http://www.codeplex.com/IronLisp">http://www.codeplex.com/IronLisp</a> and download the source! </p>
<p>Enjoy, and I am looking forward to all the feedback <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[IronLisp going live today]]></title>
<link>http://xacc.wordpress.com/2007/08/21/ironlisp-going-live-today/</link>
<pubDate>Tue, 21 Aug 2007 14:39:26 +0000</pubDate>
<dc:creator>leppie</dc:creator>
<guid>http://xacc.wordpress.com/2007/08/21/ironlisp-going-live-today/</guid>
<description><![CDATA[After a month of development, IronLisp will be made public later today. I am pretty happy with the p]]></description>
<content:encoded><![CDATA[<p>After a month of development, IronLisp will be made public later today. I am pretty happy with the progress I have made, but there has been a few hickups too.</p>
<p>IronLisp will be hosted at <a href="http://www.codeplex.com/IronLisp">http://www.codeplex.com/IronLisp</a>. For now it will contain very little infomation, but the latest code will be downloadable from the &#8216;source code&#8217; tab. Anyone wanting to help out/contribute with development can contact me, or just supply a patch (if that is easier). If you are really serious, I will consider making you part of the project team <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>The state of the current source:<br />
1. Macros has not been implemented, and hence does not work (I hope to get this finished by the weekend).<br />
2. &#8216;let&#8217; behaves like the Scheme version, but does not support &#8216;named let&#8217;.<br />
3. No &#8216;with&#8217;, use &#8216;let&#8217; instead.<br />
4. No &#8216;nconc&#8217;, use &#8216;append&#8217;.<br />
5. Although previously stated that IronLisp will not have a &#8216;cons&#8217; class, it does infact have one now. All the &#8216;cons&#8217; operations do work on IEnumerable though.<br />
6. The source of the DLR is almost exactly the same as the latest IronPython release, but does include an enhancement, and 2 bug fixes (althought the latter is just used in debugging).<br />
7. Passing a single argument to &#8216;subtract&#8217; eg (- a) will negate the value.</p>
<p>Most of the other implemented operations works like they do in LSharp.</p>
<p>I hope this implementation will be a good introductory platform for using the DLR to shape your own scripting languages.</p>
<p>Thanks and enjoy <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Benchmarks]]></title>
<link>http://xacc.wordpress.com/2007/08/21/benchmarks/</link>
<pubDate>Tue, 21 Aug 2007 13:02:31 +0000</pubDate>
<dc:creator>leppie</dc:creator>
<guid>http://xacc.wordpress.com/2007/08/21/benchmarks/</guid>
<description><![CDATA[Although Lisp has never been known for it&#8217;s number crunching abilities, I normally focus on ma]]></description>
<content:encoded><![CDATA[<p>Although Lisp has never been known for it&#8217;s number crunching abilities, I normally focus on making something as fast as humanly possible. </p>
<p>I found a benchmark in an old Lisp PDF (mainly for computers running in the 60&#8242;s &#8211; 70&#8242;s I guess), it is called &#8216;tak&#8217;.</p>
<pre style='background-color:white;font-family:Consolas,Bitstream Vera Sans Mono,Lucida Console,Courier New;'><FONT color="DarkBlue">(</FONT><FONT color="Teal">using</FONT> System.Diagnostics<FONT color="DarkBlue">)</FONT>

<FONT color="DarkBlue">(</FONT><FONT color="Teal">=</FONT> tak <FONT color="DarkBlue">(</FONT><FONT color="Blue">fn</FONT> <FONT color="DarkBlue">(</FONT>x y z<FONT color="DarkBlue">)</FONT>
  <FONT color="DarkBlue">(</FONT><FONT color="Blue">if</FONT> <FONT color="DarkBlue">(</FONT><FONT color="Teal">not</FONT> <FONT color="DarkBlue">(</FONT><FONT color="Teal">&#60;</FONT> y x<FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">)</FONT>
    z
    <FONT color="DarkBlue">(</FONT>tak <FONT color="DarkBlue">(</FONT>tak <FONT color="DarkBlue">(</FONT><FONT color="Teal">-</FONT> x <FONT color="Red">1</FONT><FONT color="DarkBlue">)</FONT> y z<FONT color="DarkBlue">)</FONT>
         <FONT color="DarkBlue">(</FONT>tak <FONT color="DarkBlue">(</FONT><FONT color="Teal">-</FONT> y <FONT color="Red">1</FONT><FONT color="DarkBlue">)</FONT> z x<FONT color="DarkBlue">)</FONT>
         <FONT color="DarkBlue">(</FONT>tak <FONT color="DarkBlue">(</FONT><FONT color="Teal">-</FONT> z <FONT color="Red">1</FONT><FONT color="DarkBlue">)</FONT> x y<FONT color="DarkBlue">)</FONT> <FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">)</FONT>


<FONT color="DarkBlue">(</FONT><FONT color="Teal">=</FONT> run-tak <FONT color="DarkBlue">(</FONT><FONT color="Blue">fn</FONT> <FONT color="DarkBlue">(</FONT><FONT color="DarkBlue">)</FONT>
  <FONT color="DarkBlue">(</FONT><FONT color="Teal">=</FONT> sw <FONT color="DarkBlue">(</FONT>startnew stopwatch<FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">)</FONT>
  <FONT color="DarkBlue">(</FONT><FONT color="Teal">=</FONT> t <FONT color="DarkBlue">(</FONT>tak <FONT color="Red">24</FONT> <FONT color="Red">14</FONT> <FONT color="Red">6</FONT><FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">)</FONT>
  <FONT color="DarkBlue">(</FONT><FONT color="Teal">=</FONT> ts <FONT color="DarkBlue">(</FONT>elapsed sw<FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">)</FONT>
  <FONT color="DarkBlue">(</FONT>cwl <FONT color="Maroon">"time: {0:f3}ms result: {1}"</FONT> <FONT color="DarkBlue">(</FONT>totalmilliseconds ts<FONT color="DarkBlue">)</FONT> t<FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">)</FONT>

<FONT color="DarkBlue">(</FONT><FONT color="Blue">to</FONT> i <FONT color="Red">4</FONT>
  <FONT color="DarkBlue">(</FONT>run-tak<FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">)</FONT>

</pre>
<p>The above code executes in about 660ms in compiled/debug mode, and about 440ms in compiled/release mode. The fastest C# code I can dish up runs in about 85ms. While this may seem slow, I decided to compare it to Python and its managed cousin, IronPython. Python runs in about 2500 ms in the evaluator, while IronPython takes a whopping 11 seconds. On the other hand, IronLisp in eval mode, runs it in 2200ms. Still faster than Python! </p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Closures hooray!]]></title>
<link>http://xacc.wordpress.com/2007/08/16/closures-hooray/</link>
<pubDate>Thu, 16 Aug 2007 19:14:57 +0000</pubDate>
<dc:creator>leppie</dc:creator>
<guid>http://xacc.wordpress.com/2007/08/16/closures-hooray/</guid>
<description><![CDATA[After overlooking (rather by not understanding) a part of the DLR, I have managed to implement closu]]></description>
<content:encoded><![CDATA[<p>After overlooking (rather by not understanding) a part of the DLR, I have managed to implement closures properly. It simply involves wrapping a delegate in a &#8216;FastCallable&#8217; object. This way, it becomes an easily managable 1st class object. The DLR takes care of all the plumbing setting up variables outside the local scope. Pretty neat <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[More blockers]]></title>
<link>http://xacc.wordpress.com/2007/08/15/more-blockers/</link>
<pubDate>Wed, 15 Aug 2007 15:01:33 +0000</pubDate>
<dc:creator>leppie</dc:creator>
<guid>http://xacc.wordpress.com/2007/08/15/more-blockers/</guid>
<description><![CDATA[Latest problems are related to recursive definition of function (eg factorial, fib, gcd, etc). Time]]></description>
<content:encoded><![CDATA[<p>Latest problems are related to recursive definition of function (eg factorial, fib, gcd, etc). Time to put on the thinking cap&#8230;</p>
<p>On the scoping front, closures seems to be detected correctly, but the DLR provides no way to detect the delegate type at compile time. The delegate type is only available at the emission of IL stage, and then it&#8217;s a bit late! Also, there seems to be big differences in the DLR between running in interpreted vs. compiled mode. </p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Scoping problems solved (mostly)]]></title>
<link>http://xacc.wordpress.com/2007/08/15/scoping-problems-solved-mostly/</link>
<pubDate>Wed, 15 Aug 2007 09:35:00 +0000</pubDate>
<dc:creator>leppie</dc:creator>
<guid>http://xacc.wordpress.com/2007/08/15/scoping-problems-solved-mostly/</guid>
<description><![CDATA[From reading the Scheme Language &#8216;spec&#8217;, they made an interesting comment on the handlin]]></description>
<content:encoded><![CDATA[<p>From reading the Scheme Language &#8216;spec&#8217;, they made an interesting comment on the handling of <strong>let</strong>. Basically a <strong>let</strong> can be rewritten as a lambda invocation expression, and hence that takes care of the scope, as a method stub gets created. </p>
<pre>(<strong>let</strong> ((x (* 3 4))) (+ x x)) =&#62; ((<strong>fn</strong> (x) (+ x x)) (* 3 4))
</pre>
<p>
This yields exactly the same result and is semantically the same.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Success!]]></title>
<link>http://xacc.wordpress.com/2007/08/14/success/</link>
<pubDate>Tue, 14 Aug 2007 17:38:04 +0000</pubDate>
<dc:creator>leppie</dc:creator>
<guid>http://xacc.wordpress.com/2007/08/14/success/</guid>
<description><![CDATA[Today I managed to solve all the eval and quote issues, and getting eval to compile its code My desi]]></description>
<content:encoded><![CDATA[<p>Today I managed to solve all the <strong>eval</strong> and <strong>quote</strong> issues, and getting <strong>eval</strong> to compile its code <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>My design wasn&#8217;t so flawed after all, it was my interpretation of how <strong>quote</strong> works :p</p>
<p>Now that I have <strong>eval</strong> working properly (well as much as I can see (<em>i really need to start writing tests</em>(<em>no pun intended with the braces</em>))), I will be battling macros next. Also, scoping of some constructs eg. <strong>let</strong>, <strong>with</strong>, etc.</p>
<p>After that will I will like release the source. Closures and some other functionality will be missing still.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[More IronLisp progress]]></title>
<link>http://xacc.wordpress.com/2007/08/13/ironlisp-progress-2/</link>
<pubDate>Mon, 13 Aug 2007 11:35:09 +0000</pubDate>
<dc:creator>leppie</dc:creator>
<guid>http://xacc.wordpress.com/2007/08/13/ironlisp-progress-2/</guid>
<description><![CDATA[So what is holding me up from releasing the source right now? eval is a total nightmare eval of quot]]></description>
<content:encoded><![CDATA[<p>So what is holding me up from releasing the source right now?</p>
<ul>
<li><strong>eval</strong> is a total nightmare</li>
<li><strong>eval</strong> of <strong>quote</strong>&#8216;d expressions is a worse nightmare</li>
<li><strong>macro</strong> relies on <strong>eval</strong></li>
<li>consistency of <strong>quote</strong>&#8216;d expressions</li>
<li>compiling <strong>eval</strong>&#8216;d expressions</li>
<li>some functionality not available in the DLR yet</li>
</ul>
<p>Unfortunately, I didnt go deep enough into the Lisp &#8216;spec&#8217; at the start, and my design is a bit flawed in a sense.</p>
<p>So thats about it&#8230;</p>
<p>On a different note: IronLisp will be opensource, and will be hosted on Codeplex under the MS Permissive License. Contributions/patches will be accepted.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[IronLisp progress]]></title>
<link>http://xacc.wordpress.com/2007/08/02/ironlisp-progress/</link>
<pubDate>Thu, 02 Aug 2007 19:29:56 +0000</pubDate>
<dc:creator>leppie</dc:creator>
<guid>http://xacc.wordpress.com/2007/08/02/ironlisp-progress/</guid>
<description><![CDATA[I have made quite remarkable progress in the last week or so. So far I have implemented most of LSha]]></description>
<content:encoded><![CDATA[<p>I have made quite remarkable progress in the last week or so. So far I have implemented most of LSharp&#8217;s defined functions and language constructs, and have added a few.</p>
<p>Missing:</p>
<ul>
<li>Some functions</li>
<li>Macro support</li>
<li>Closure support</li>
<li>Tests</li>
</ul>
<p>New:</p>
<ul>
<li>Simple class support</li>
<li>Compilation &#38; Source level step debugging</li>
</ul>
<p>Different:</p>
<ul>
<li>No Cons class, IEnumerable replaces it</li>
</ul>
<p>Here is a sample of some working code:</p>
<pre>(defclass foo
  (= arg (prl "in ctr")) ;define field with init expression
  (= bar (fn (a) (prl a )) ) ;define method taking 1 arg
)

(= myfoo (new foo)) ;init new foo

(bar myfoo "hello world") ;call myfoo.bar()
(prl ?) ;print previous result
(prl (arg myfoo)) ;print myfoo.arg</pre>
]]></content:encoded>
</item>
<item>
<title><![CDATA[LSharp on the DLR becomes IronLisp]]></title>
<link>http://xacc.wordpress.com/2007/07/28/lsharp-on-the-dlr-becomes-ironlisp/</link>
<pubDate>Sat, 28 Jul 2007 19:48:15 +0000</pubDate>
<dc:creator>leppie</dc:creator>
<guid>http://xacc.wordpress.com/2007/07/28/lsharp-on-the-dlr-becomes-ironlisp/</guid>
<description><![CDATA[To be inline with the other DLR projects, and the fact I merely base the code on LSharp&#8217;s conc]]></description>
<content:encoded><![CDATA[<p>To be inline with the other DLR projects, and the fact I merely base the code on LSharp&#8217;s concepts. It might not even be 100% compatible. The code will be released on the same MS Permissive Something Something License, IronPython and friends are licenced.</p>
<p>I have also decided to host this project at Codeplex, and will supply the url soon. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[LSharp making it's way on the DLR]]></title>
<link>http://xacc.wordpress.com/2007/07/23/lsharp-making-its-way-on-the-dlr/</link>
<pubDate>Mon, 23 Jul 2007 12:23:11 +0000</pubDate>
<dc:creator>leppie</dc:creator>
<guid>http://xacc.wordpress.com/2007/07/23/lsharp-making-its-way-on-the-dlr/</guid>
<description><![CDATA[I have been throwing myself into the deep end of Microsoft.Scripting (aka DLR), and managed to get a]]></description>
<content:encoded><![CDATA[<p>I have been throwing myself into the deep end of Microsoft.Scripting (aka DLR), and managed to get a working (albeit very limited) going <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So far it can do:</p>
<pre style='background-color:white;font-family:Consolas,Bitstream Vera Sans Mono,Lucida Console,Courier New;'><FONT color="DarkBlue">(</FONT><FONT color="Teal">=</FONT> hello
  <FONT color="DarkBlue">(</FONT><FONT color="Blue">fn</FONT> <FONT color="DarkBlue">(</FONT>say who<FONT color="DarkBlue">)</FONT>
    <FONT color="DarkBlue">(</FONT>
      <FONT color="DarkBlue">(</FONT><FONT color="Teal">pr</FONT> say<FONT color="DarkBlue">)</FONT>
      <FONT color="DarkBlue">(</FONT><FONT color="Teal">pr</FONT> <FONT color="Maroon">" "</FONT><FONT color="DarkBlue">)</FONT>
      <FONT color="DarkBlue">(</FONT><FONT color="Teal">prl</FONT> who<FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">)</FONT><FONT color="DarkBlue">)</FONT>

<FONT color="DarkBlue">(</FONT>hello <FONT color="Maroon">"hello"</FONT> <FONT color="Maroon">"peter"</FONT><FONT color="DarkBlue">)</FONT>
<FONT color="DarkBlue">(</FONT>hello <FONT color="Maroon">"water"</FONT> <FONT color="Maroon">"melon"</FONT><FONT color="DarkBlue">)</FONT>

<FONT color="DarkBlue">(</FONT><FONT color="Teal">prl</FONT> say<FONT color="DarkBlue">)</FONT>
<FONT color="DarkBlue">(</FONT><FONT color="Teal">prl</FONT> who<FONT color="DarkBlue">)</FONT>
<FONT color="DarkBlue">(</FONT><FONT color="Teal">prl</FONT> <FONT color="DeepPink">?</FONT><FONT color="DarkBlue">)</FONT></pre>
<p>More to come soon!</p>
]]></content:encoded>
</item>

</channel>
</rss>
