<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

    <id>http://www.calormen.com/Logo/</id>
    <title>Logo Interpreter in Javascript - Change Log</title>
    <updated>2011-12-30T07:25:55.648Z</updated>

    <author>
        <name>Joshua Bell</name>
        <email>inexorabletash@gmail.com</email>
        <uri>http://www.calormen.com/</uri>
    </author>

    <link rel="self" href="http://www.calormen.com/Logo/feed.xml"/>

    <entry>
        <id>http://www.calormen.com/Logo/34</id>
        <updated>2011-12-30T07:25:55.648Z</updated>
        <title>2011-12-29</title>
        <content type="html">
            &lt;p&gt;
            Added support for IE8 via &lt;a href="http://flashcanvas.net"&gt;FlashCanvas&lt;/a&gt;
            &lt;/p&gt;
            &lt;p&gt;
            Migrated &lt;a href="tests.htm"&gt;unit tests&lt;/a&gt; over to use &lt;a href="http://docs.jquery.com/QUnit"&gt;QUnit&lt;/a&gt;.
            &lt;/p&gt;
        </content>
    </entry>
    <entry>
        <id>http://www.calormen.com/Logo/34</id>
        <updated>2011-10-22T20:46:36.000Z</updated>
        <title>2011-10-22</title>
        <content type="html">
            &lt;p&gt;
            Added another feature from Ofer Wald: &lt;code&gt;ARC &lt;var&gt;angle&lt;/var&gt; &lt;var&gt;radius&lt;/var&gt;&lt;/code&gt;
            (&lt;a href="http://calormen.com/logo/?cs%20repeat%2018%20[%20arc%20repcount%20*%2020%20repcount%20*%205%20]"&gt;example&lt;/a&gt;)
            &lt;/p&gt;
        </content>
    </entry>
    <entry>
        <id>http://www.calormen.com/Logo/33</id>
        <updated>2011-10-14T23:00:00-08:00</updated>
        <title>2011-10-14</title>
        <content type="html">
            &lt;p&gt;
            Added &lt;code&gt;COPYDEF&lt;/code&gt; and made it and &lt;code&gt;ERASE&lt;/code&gt;
            respect &lt;code&gt;REDEFP&lt;/code&gt; when it comes to primitives (built-in procedures).
            &lt;/p&gt;

            &lt;p&gt;
            Applied two patches from Ofer Wald: make text drawn with &lt;code&gt;LABEL&lt;/code&gt;
            (&lt;a href="http://calormen.com/logo/?window%20pu%20repeat%2072%20[%20setlabelheight%20repcount%20fd%20repcount%20*%202.5%20label%20%22Logo%20bk%20repcount%20*%202.5%20rt%2010%20]"&gt;example&lt;/a&gt;)
            rotate with the mouse, and prevent primitives from being overridden with &lt;code&gt;TO&lt;/code&gt;
            &lt;/p&gt;
            &lt;p&gt;
            You can now put short programs in the URL hash (#blah) as well as the query string (?blah).
            &lt;/p&gt;
        </content>
    </entry>
    <entry>
        <id>http://www.calormen.com/Logo/32</id>
        <updated>2010-08-07T18:01:00-08:00</updated>
        <title>2010-08-07</title>
        <content type="html">
            &lt;p&gt;
            Modified the way the turtle is drawn - it now uses an overlay canvas instead of drawing
            to a backbuffer. This simplifies the code. (I didn't realize HTML5 canvases were transparent
            when I first implemented this!)
            &lt;/p&gt;

            &lt;p&gt;
            Removed fallback canvas text API support, so &lt;code&gt;LABEL&lt;/code&gt; will not work
            on iOS 3 and earlier or Firefox 3.0.
            &lt;/p&gt;
        </content>
    </entry>
    <entry>
        <id>http://www.calormen.com/Logo/31</id>
        <updated>2010-03-27T14:57:00-08:00</updated>
        <title>2010-03-27</title>
        <content type="html">
            &lt;p&gt;
            Added:
            &lt;code&gt;WINDOW&lt;/code&gt;, &lt;code&gt;WRAP&lt;/code&gt;, &lt;code&gt;FENCE&lt;/code&gt;
            and &lt;code&gt;TURTLEMODE&lt;/code&gt;
            &lt;/p&gt;
        </content>
    </entry>

    <entry>
        <id>http://www.calormen.com/Logo/30</id>
        <updated>2009-11-26T18:07:00-08:00</updated>
        <title>2009-11-26</title>
        <content type="html">
            &lt;p&gt;
            Infix arithmetic and order-comparison operators now force arguments to be numbers.
            &lt;/p&gt;

            &lt;p&gt;
            Fractional decimals with no leading zero (e.g. .1) now parse correctly again.
            &lt;/p&gt;

            &lt;p&gt;
            Added:
            &lt;code&gt;PENPAINT&lt;/code&gt;, &lt;code&gt;PENERASE&lt;/code&gt;, &lt;code&gt;PENREVERSE&lt;/code&gt;
            &lt;/p&gt;

            &lt;p&gt;
            &lt;code&gt;READWORD&lt;/code&gt; can take an optional prompt string input. e.g. &lt;code&gt;(READWORD "width:)&lt;/code&gt;
            &lt;/p&gt;
        </content>
    </entry>


    <entry>
        <id>http://www.calormen.com/Logo/29</id>
        <updated>2009-11-24T21:02:00-08:00</updated>
        <title>2009-11-24</title>
        <content type="html">
            &lt;p&gt;
            Expression evaluation separated from parsing. 
            &lt;code&gt;AND&lt;/code&gt; and &lt;code&gt;OR&lt;/code&gt; now short-circuit evaluation.
            &lt;/p&gt;

            &lt;p&gt;
            Slight tweaks to &lt;code&gt;TYPE&lt;/code&gt; output.
            &lt;/p&gt;

            &lt;p&gt;
            Added aliases:
            &lt;code&gt;BF&lt;/code&gt;, &lt;code&gt;BFS&lt;/code&gt;, &lt;code&gt;BL&lt;/code&gt;, &lt;code&gt;IFT&lt;/code&gt;, &lt;code&gt;IFF&lt;/code&gt;, &lt;code&gt;OP&lt;/code&gt;
            &lt;/p&gt;

            &lt;p&gt;
            Added:
            &lt;code&gt;READWORD&lt;/code&gt;, &lt;code&gt;ABS&lt;/code&gt;
            &lt;/p&gt;

        </content>
    </entry>

    <entry>
        <id>http://www.calormen.com/Logo/28</id>
        <updated>2009-11-19T21:17:00-08:00</updated>
        <title>2009-11-19</title>
        <content type="html">
            &lt;p&gt;
            You can now specify a program to run in the URL hash or query string. You can %-encode characters or,
            as a shortcut, use _ instead of space, e.g.
            &lt;a href="http://www.calormen.com/Logo/?repeat_4_[fd_100_rt_90]"&gt;http://www.calormen.com/Logo/?repeat_4_[fd_100_rt_90]&lt;/a&gt;
            &lt;/p&gt;

            &lt;p&gt;
            Thanks to discussion on
            &lt;a href="http://groups.yahoo.com/group/LogoForum/"&gt;LogoForum&lt;/a&gt; has shown me the error
            of my ways regarding lists. The contents of list literals is no longer evaluated.
            &lt;/p&gt;
        </content>
    </entry>


    <entry>
        <id>http://www.calormen.com/Logo/27</id>
        <updated>2009-11-11T21:30:00-08:00</updated>
        <title>2009-11-11</title>
        <content type="html">
            &lt;p&gt;
            UCBLogo alignment - almost done!
            &lt;/p&gt;
            &lt;p&gt;

            Added:
            &lt;code&gt;run&lt;/code&gt;, &lt;code&gt;runresult&lt;/code&gt;, &lt;code&gt;test&lt;/code&gt;, &lt;code&gt;iftrue&lt;/code&gt;, &lt;code&gt;iffalse&lt;/code&gt;, &lt;code&gt;.maybeoutput&lt;/code&gt;, &lt;code&gt;ignore&lt;/code&gt;, &lt;code&gt;for&lt;/code&gt;, &lt;code&gt;do.while&lt;/code&gt;, &lt;code&gt;while&lt;/code&gt;, &lt;code&gt;do.until&lt;/code&gt;, &lt;code&gt;until&lt;/code&gt;

            &lt;/p&gt;
        </content>
    </entry>


    <entry>
        <id>http://www.calormen.com/Logo/26</id>
        <updated>2009-11-10T20:37:00-08:00</updated>
        <title>2009-11-10</title>
        <content type="html">
            &lt;p&gt;
            UCBLogo alignment continues....
            &lt;/p&gt;
            &lt;p&gt;
            Added: &lt;code&gt;contents&lt;/code&gt;, &lt;code&gt;procedures&lt;/code&gt;, &lt;code&gt;primitives&lt;/code&gt;, &lt;code&gt;globals&lt;/code&gt;, &lt;code&gt;names&lt;/code&gt;, &lt;code&gt;erase&lt;/code&gt;, &lt;code&gt;erall&lt;/code&gt;,
            &lt;code&gt;apply&lt;/code&gt;, &lt;code&gt;invoke&lt;/code&gt;, &lt;code&gt;foreach&lt;/code&gt;, &lt;code&gt;find&lt;/code&gt;            
            &lt;/p&gt;

            &lt;p&gt;
            Also, fixed a bug with &lt;code&gt;word&lt;/code&gt; on WebKit, and ensured that long text output wraps.
            &lt;/p&gt;
        </content>
    </entry>

    <entry>
        <id>http://www.calormen.com/Logo/25</id>
        <updated>2009-11-09T22:16:00-08:00</updated>
        <title>2009-11-09</title>
        <content type="html">
            &lt;p&gt;
            UCBLogo alignment continies....
            &lt;/p&gt;
            &lt;p&gt;
            Added: &lt;code&gt;name&lt;/code&gt;, &lt;code&gt;local&lt;/code&gt;, &lt;code&gt;localmake&lt;/code&gt;, &lt;code&gt;thing&lt;/code&gt;, &lt;code&gt;global&lt;/code&gt;, &lt;code&gt;procedurep&lt;/code&gt;, &lt;code&gt;primitivep&lt;/code&gt;, &lt;code&gt;definedp&lt;/code&gt;, &lt;code&gt;namep&lt;/code&gt;, &lt;code&gt;forever&lt;/code&gt;, &lt;code&gt;bye&lt;/code&gt;
            &lt;/p&gt;
            &lt;p&gt;
            Corrected &lt;code&gt;stop&lt;/code&gt; - was like &lt;code&gt;bye&lt;/code&gt;, now like an empty &lt;code&gt;output&lt;/code&gt;
            &lt;/p&gt;
        </content>
    </entry>

    <entry>
        <id>http://www.calormen.com/Logo/24</id>
        <updated>2009-11-08T21:06:00-08:00</updated>
        <title>2009-11-08</title>
        <content type="html">
            &lt;p&gt;
            UCBLogo alignment continies....
            &lt;/p&gt;
            &lt;p&gt;
            Added: &lt;code&gt;remainder&lt;/code&gt;, &lt;code&gt;modulo&lt;/code&gt;, &lt;code&gt;exp&lt;/code&gt;, &lt;code&gt;log10&lt;/code&gt;, &lt;code&gt;ln&lt;/code&gt;, &lt;code&gt;radarctan&lt;/code&gt;, &lt;code&gt;radsin&lt;/code&gt;, &lt;code&gt;radcos&lt;/code&gt;, &lt;code&gt;radtan&lt;/code&gt;, &lt;code&gt;rseq&lt;/code&gt;, &lt;code&gt;bitand&lt;/code&gt;, &lt;code&gt;bitor&lt;/code&gt;, &lt;code&gt;bitxor&lt;/code&gt;, &lt;code&gt;bitnot&lt;/code&gt;, &lt;code&gt;ashift&lt;/code&gt;, &lt;code&gt;lshift&lt;/code&gt;, &lt;code&gt;label&lt;/code&gt;, &lt;code&gt;setlabelheight&lt;/code&gt;, &lt;code&gt;shownp&lt;/code&gt;, &lt;code&gt;labelsize&lt;/code&gt;, &lt;code&gt;pendownp&lt;/code&gt;, &lt;code&gt;pencolor&lt;/code&gt;, &lt;code&gt;pensize&lt;/code&gt;
            &lt;/p&gt;
            &lt;p&gt;
            Removed: &lt;code&gt;modulus&lt;/code&gt; (use &lt;code&gt;remainder&lt;/code&gt; or &lt;code&gt;modulo&lt;/code&gt;), &lt;code&gt;write&lt;/code&gt; (use &lt;code&gt;label&lt;/code&gt;), &lt;code&gt;setfont&lt;/code&gt; (use &lt;code&gt;setlabelheight&lt;/code&gt;)
            &lt;/p&gt;
            &lt;p&gt;
            Corrected argument order for &lt;code&gt;(arctan x y)&lt;/code&gt;
            &lt;/p&gt;
            &lt;p&gt;
            In &lt;code&gt;(setpencolor r g b)&lt;/code&gt;, r/g/b must be in 0..99; Logo colors 0...15 are supported.
            &lt;/p&gt;
        </content>
    </entry>


    <entry>
        <id>http://www.calormen.com/Logo/23</id>
        <updated>2009-11-07T21:41:00-08:00</updated>
        <title>2009-11-07</title>
        <content type="html">
            &lt;p&gt; 
                I've started to work on aligning the syntax with UCB Logo. 
                Language reference now follows UCB Logo documentation structure for ease of comparison. 
                Code and unit tests similarly reorganized. 
            &lt;/p&gt;
            &lt;p&gt; Added: &lt;code&gt;sentence&lt;/code&gt;, &lt;code&gt;combine&lt;/code&gt;, 
                        &lt;code&gt;gensym&lt;/code&gt;, &lt;code&gt;firsts&lt;/code&gt;, 
                        &lt;code&gt;butfirsts&lt;/code&gt;, &lt;code&gt;item&lt;/code&gt;, 
                        &lt;code&gt;remove&lt;/code&gt;, &lt;code&gt;remdup&lt;/code&gt;, 
                        &lt;code&gt;wordp&lt;/code&gt;, &lt;code&gt;listp&lt;/code&gt;, 
                        &lt;code&gt;numberp&lt;/code&gt;, &lt;code&gt;count&lt;/code&gt;, 
                        &lt;code&gt;ascii&lt;/code&gt;, &lt;code&gt;char&lt;/code&gt;, 
                        &lt;code&gt;lowercase&lt;/code&gt;, &lt;code&gt;uppercase&lt;/code&gt;
            &lt;/p&gt;
            &lt;p&gt; Added aliases &lt;code&gt;setpensize&lt;/code&gt;, &lt;code&gt;setpencolor&lt;/code&gt; &lt;/p&gt;
            &lt;p&gt; Fixed equality comparisons &lt;/p&gt;
            &lt;p&gt; Added:
                &lt;code&gt;push&lt;/code&gt;,
                &lt;code&gt;pop&lt;/code&gt;,
                &lt;code&gt;queue&lt;/code&gt;,
                &lt;code&gt;dequeue&lt;/code&gt;,
                &lt;code&gt;emptyp&lt;/code&gt;,
                &lt;code&gt;beforep&lt;/code&gt;,
                &lt;code&gt;memberp&lt;/code&gt;,
                &lt;code&gt;substringp&lt;/code&gt;
            &lt;/p&gt;
            &lt;p&gt; Rigged up a text screen overlay. &lt;/p&gt;
            &lt;p&gt; Added:
                &lt;code&gt;print&lt;/code&gt;,
                &lt;code&gt;type&lt;/code&gt;,
                &lt;code&gt;show&lt;/code&gt;,
                &lt;code&gt;cleartext&lt;/code&gt;,
                &lt;code&gt;emptyp&lt;/code&gt;,
                &lt;code&gt;beforep&lt;/code&gt;,
                &lt;code&gt;memberp&lt;/code&gt;,
                &lt;code&gt;substringp&lt;/code&gt;
            &lt;/p&gt;
            &lt;p&gt; Use &lt;code&gt;write&lt;/code&gt; for turtle graphics text now &lt;/p&gt;
        </content>
    </entry>
    
    <entry>
        <id>http://www.calormen.com/Logo/22</id>
        <updated>2009-10-31T12:00:00-08:00</updated>
        <title>2009-10-31</title>
        <content type="html">
            &lt;p&gt;A series of appropriately spooky changes - they're there, but you can't see them!&lt;/p&gt;
            &lt;ul&gt;
            &lt;li&gt;Change log is now accessible as an &lt;a href="feed.xml"&gt;Atom feed&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;Switch to native Javascript types for primitive types (number, string, list)&lt;/li&gt;
            &lt;li&gt;Cleaned up use of 'undefined', stopping&lt;/li&gt;
            &lt;li&gt;Turtle graphics puled into own script module&lt;/li&gt;
            &lt;li&gt;Pulled alerting on error out of interpreter&lt;/li&gt;
            &lt;li&gt;Unit tests for unary minus, true, false&lt;/li&gt;
            &lt;li&gt;Unary minus handling revamped - now confined to parser/serializer&lt;/li&gt;
            &lt;/ul&gt;
        </content>
    </entry>

    <entry>
        <id>http://www.calormen.com/Logo/21</id>
        <updated>2009-10-28T12:00:00-08:00</updated>
        <title>2009-10-28</title>
        <content type="html">
            &lt;p&gt;
                &lt;code&gt;def&lt;/code&gt; now takes a string argument for procname
            &lt;/p&gt;
            &lt;p&gt;
                &lt;code&gt;def&lt;/code&gt; now serializes operators correctly
            &lt;/p&gt;
            &lt;p&gt;
                Fixed &lt;code&gt;clean&lt;/code&gt; (was alerting)
            &lt;/p&gt;
            &lt;p&gt;
                Fixed &lt;code&gt;heading&lt;/code&gt; (was returning incorrect values)
            &lt;/p&gt;
            &lt;p&gt;More unit tests&lt;/p&gt;
        </content>
    </entry>

    <entry>
        <id>http://www.calormen.com/Logo/20</id>
        <updated>2009-10-27T12:00:00-08:00</updated>
        <title>2009-10-27</title>
        <content type="html">
            &lt;p&gt;Found and fixed a handful of bugs while implementing unit tests:&lt;/p&gt;
            &lt;ul&gt;
                &lt;li&gt;
                    Operators &lt;code&gt;&amp;lt;=&lt;/code&gt;, &lt;code&gt;&amp;gt;=&lt;/code&gt;, &lt;code&gt;&amp;lt;&amp;gt;&lt;/code&gt; were incorrectly parsed
                &lt;/li&gt;
                &lt;li&gt;
                    &lt;code&gt;if&lt;/code&gt;, &lt;code&gt;ifelse&lt;/code&gt; and &lt;code&gt;repeat&lt;/code&gt; return now result of last evaluation (language extension?)
                &lt;/li&gt;
                &lt;li&gt;
                    &lt;code&gt;and&lt;/code&gt;, &lt;code&gt;or&lt;/code&gt;, &lt;code&gt;xor&lt;/code&gt; now return 0 or 1
                &lt;/li&gt;
                &lt;li&gt;
                    &lt;code&gt;lessequalp&lt;/code&gt; and &lt;code&gt;lessequal?&lt;/code&gt; corrected
                &lt;/li&gt;
            &lt;/ul&gt;
        </content>
    </entry>

    <entry>
        <id>http://www.calormen.com/Logo/19</id>
        <updated>2009-10-26T12:00:00-08:00</updated>
        <title>2009-10-26</title>
        <content type="html">
            &lt;p&gt;Fixed hiding of the language reference pane&lt;/p&gt;
            &lt;p&gt;
                Corrected documentation - it's &lt;code&gt;setfont&lt;/code&gt; not &lt;code&gt;font&lt;/code&gt;
            &lt;/p&gt;
            &lt;p&gt;
                Added text rendering for non-Mozilla browsers c/o &lt;a href="http://jim.studt.net/canvastext/"&gt;Jim Studt's Hershey Font implementation for HTML5 canvas&lt;/a&gt;
            &lt;/p&gt;
        </content>
    </entry>

    <entry>
        <id>http://www.calormen.com/Logo/18</id>
        <updated>2009-10-24T12:00:00-08:00</updated>
        <title>2009-10-24</title>
        <content type="html">
            &lt;p&gt;
                Now licensed under the &lt;a href="http://www.apache.org/licenses/LICENSE-2.0"&gt;Apache 2.0 license&lt;/a&gt;
            &lt;/p&gt;
        </content>
    </entry>

    <entry>
        <id>http://www.calormen.com/Logo/17</id>
        <updated>2009-04-13T12:00:00-08:00</updated>
        <title>2009-04-13</title>
        <content type="html">
            &lt;p&gt;
                Fixed &lt;code&gt;towards&lt;/code&gt; and &lt;code&gt;setpos&lt;/code&gt;, which have been broken since the 2008-08-30 update
                (&lt;em&gt;Sigh&lt;/em&gt; - I really need to implement unit tests.)
            &lt;/p&gt;
        </content>
    </entry>

    <entry>
        <id>http://www.calormen.com/Logo/16</id>
        <updated>2009-03-21T12:00:00-08:00</updated>
        <title>2009-03-21</title>
        <content type="html">
            &lt;p&gt;
                Unary minus disambiguation (similar to UCBLogo):
                &lt;ul&gt;
                    &lt;li&gt;
                        Minus sign is parsed as unary minus if it begins
                        a top-level expression, or if it follows an infix
                        operator, or it has a leading space and has no
                        trailing space.
                    &lt;/li&gt;
                    &lt;li&gt;
                        Otherwise, minus sign is parsed as an infix
                        difference operator.
                    &lt;/li&gt;
                &lt;/ul&gt;
                Compare:
                &lt;ul&gt;
                    &lt;li&gt;
                        &lt;code&gt;cs ht print -5&lt;/code&gt; (unary; will print &lt;samp&gt;-5&lt;/samp&gt;)
                    &lt;/li&gt;
                    &lt;li&gt;
                        &lt;code&gt;cs ht print - 5 + 10&lt;/code&gt; (unary; will print &lt;samp&gt;5&lt;/samp&gt;)
                    &lt;/li&gt;
                    &lt;li&gt;
                        &lt;code&gt;cs ht print 10 + - 5&lt;/code&gt; (unary; will print &lt;samp&gt;5&lt;/samp&gt;)
                    &lt;/li&gt;
                    &lt;li&gt;
                        &lt;code&gt;cs ht print 10 -5&lt;/code&gt; (unary; will print &lt;samp&gt;10&lt;/samp&gt;)
                    &lt;/li&gt;
                    &lt;li&gt;
                        &lt;code&gt;cs ht print 10 - 5&lt;/code&gt; (infix; will print &lt;samp&gt;5&lt;/samp&gt;)
                    &lt;/li&gt;
                    &lt;li&gt;
                        &lt;code&gt;cs ht print 10-5&lt;/code&gt; (infix; will print &lt;samp&gt;10&lt;/samp&gt;)
                    &lt;/li&gt;
                    &lt;li&gt;
                        &lt;code&gt;cs ht print 10- 5&lt;/code&gt; (infix; will print &lt;samp&gt;5&lt;/samp&gt;)
                    &lt;/li&gt;
                    &lt;li&gt;
                        &lt;code&gt;cs ht print sum 10 -5&lt;/code&gt; (unary; will print &lt;samp&gt;5&lt;/samp&gt;)
                    &lt;/li&gt;
                    &lt;li&gt;
                        &lt;code&gt;cs ht print sum 10 - 5&lt;/code&gt; (infix; will produce error!)
                    &lt;/li&gt;
                &lt;/ul&gt;
            &lt;/p&gt;
        </content>
    </entry>

    <entry>
        <id>http://www.calormen.com/Logo/15</id>
        <updated>2009-01-20T12:00:00-08:00</updated>
        <title>2009-01-20</title>
        <content type="html">
            &lt;p&gt;
                Added &lt;code&gt;list&lt;/code&gt;, &lt;code&gt;fput&lt;/code&gt;, &lt;code&gt;lput&lt;/code&gt;
            &lt;/p&gt;
            &lt;p&gt;
                Added &lt;code&gt;show&lt;/code&gt; (temporary) which returns a string representation of its argument
            &lt;/p&gt;
        </content>
    </entry>

    <entry>
        <id>http://www.calormen.com/Logo/14</id>
        <updated>2008-09-28T12:00:00-08:00</updated>
        <title>2008-09-28</title>
        <content type="html">
            &lt;p&gt;Added (temporary) display of command history, at the bottom of the window&lt;/p&gt;
            &lt;p&gt;
                Added &lt;code&gt;def&lt;/code&gt; (hacky implementation) that shows the definition of a function
            &lt;/p&gt;
        </content>
    </entry>

    <entry>
        <id>http://www.calormen.com/Logo/13</id>
        <updated>2008-09-02T12:00:00-08:00</updated>
        <title>2008-09-02</title>
        <content type="html">
            &lt;p&gt;
                Added &lt;code&gt;reverse&lt;/code&gt;, &lt;code&gt;iseq&lt;/code&gt;
            &lt;/p&gt;
            &lt;p&gt;
                &lt;code&gt;print&lt;/code&gt; can now print lists
            &lt;/p&gt;
            &lt;p&gt;
                Fixed evaluation of lists (e.g. &lt;code&gt;map "square [ 50 + 50 ]&lt;/code&gt; now works)
                [UPDATE 2009-11-19: This is no longer the case]
            &lt;/p&gt;
        </content>
    </entry>

    <entry>
        <id>http://www.calormen.com/Logo/12</id>
        <updated>2008-09-01T12:00:00-08:00</updated>
        <title>2008-09-01</title>
        <content type="html">
            &lt;p&gt;Rearranged page to maximize display area&lt;/p&gt;
        </content>
    </entry>

    <entry>
        <id>http://www.calormen.com/Logo/11</id>
        <updated>2008-08-31T12:00:00-08:00</updated>
        <title>2008-08-31</title>
        <content type="html">
            &lt;p&gt;
                Added &lt;code&gt;map&lt;/code&gt;, &lt;code&gt;filter&lt;/code&gt;, &lt;code&gt;reduce&lt;/code&gt;
            &lt;/p&gt;
            &lt;p&gt;
                Added &lt;code&gt;pencolor&lt;/code&gt; as alias for &lt;code&gt;setcolor&lt;/code&gt;, can take r, g, b as arguments
            &lt;/p&gt;
            &lt;p&gt;
                Blocks in &lt;code&gt;repeat&lt;/code&gt;, &lt;code&gt;if&lt;/code&gt;, etc. no longer introduce a scope
            &lt;/p&gt;
            &lt;p&gt;Comments (anything after ; on a line) are ignored)&lt;/p&gt;
            &lt;p&gt;
                Renamed predicates to &lt;code&gt;equal?&lt;/code&gt;, &lt;code&gt;notequal?&lt;/code&gt;, &lt;code&gt;less?&lt;/code&gt;, &lt;code&gt;lessequal?&lt;/code&gt;, &lt;code&gt;greater?&lt;/code&gt;, &lt;code&gt;greaterequal?&lt;/code&gt;
            &lt;/p&gt;
            &lt;p&gt;
                Changed the "draw text" procedure to &lt;code&gt;print&lt;/code&gt;
            &lt;/p&gt;
            &lt;p&gt;
                Added &lt;code&gt;output&lt;/code&gt; which returns a value from a procedure
            &lt;/p&gt;
        </content>
    </entry>

    <entry>
        <id>http://www.calormen.com/Logo/10</id>
        <updated>2008-08-30T12:00:00-08:00</updated>
        <title>2008-08-30</title>
        <content type="html">
            &lt;p&gt;
                Lisp-style calling syntax &lt;code&gt;( procedure input ... )&lt;/code&gt; now operates per standard Logo, rather than as an implicit reduction.
            &lt;/p&gt;
            &lt;p&gt;Make use of JavaScript 1.6 and 1.8 functions internally, via compatibility shims&lt;/p&gt;
        </content>
    </entry>

    <entry>
        <id>http://www.calormen.com/Logo/9</id>
        <updated>2008-08-26T12:00:00-08:00</updated>
        <title>2008-08-26</title>
        <content type="html">
            &lt;p&gt;
                Fixed &lt;code&gt;tan&lt;/code&gt;
            &lt;/p&gt;
            &lt;p&gt;Trig functions now take/return degrees&lt;/p&gt;
            &lt;p&gt;
                KNOWN ISSUE: &lt;code&gt;setxy -100 -100&lt;/code&gt; parses as &lt;code&gt;setxy (-100 -100)&lt;/code&gt; and so fails with too few arguments.
            &lt;/p&gt;
            &lt;p&gt;
                &lt;code&gt;make :var&lt;/code&gt; and &lt;code&gt;make var&lt;/code&gt; are now synonyms for &lt;code&gt;make "var&lt;/code&gt;
            &lt;/p&gt;
            &lt;p&gt;
                Added &lt;code&gt;true&lt;/code&gt; and &lt;code&gt;false&lt;/code&gt;
            &lt;/p&gt;
        </content>
    </entry>

    <entry>
        <id>http://www.calormen.com/Logo/8</id>
        <updated>2008-08-25T12:00:00-08:00</updated>
        <title>2008-08-25</title>
        <content type="html">
            &lt;p&gt;Fixed procedures that return values&lt;/p&gt;
            &lt;p&gt;Made setpos and friends leave a trail if the pen is down&lt;/p&gt;
            &lt;p&gt;
                &lt;a href="http://www.jslint.com"&gt;jslint&lt;/a&gt; cleanup
            &lt;/p&gt;
            &lt;p&gt;
                Support &lt;code&gt;( proc input ... )&lt;/code&gt; format
            &lt;/p&gt;
            &lt;p&gt;
                Fixed &lt;code&gt;and&lt;/code&gt; and &lt;code&gt;or&lt;/code&gt; to not lazily-evaluate arguments - &lt;code&gt;and 0 1&lt;/code&gt; would not consume the 1
            &lt;/p&gt;
            &lt;p&gt;
                Added support for &lt;code&gt;( procedure input ... )&lt;/code&gt; expressions. Acts as &lt;code&gt;reduce&lt;/code&gt;, so &lt;code&gt;( sum 1 2 3 4 )&lt;/code&gt; calls &lt;code&gt;sum 1 2&lt;/code&gt; then &lt;code&gt;sum 3 3&lt;/code&gt; then &lt;code&gt;sum 6 4&lt;/code&gt;, finally returning 10.
            &lt;/p&gt;
        </content>
    </entry>

    <entry>
        <id>http://www.calormen.com/Logo/7</id>
        <updated>2008-08-24T12:00:00-08:00</updated>
        <title>2008-08-24</title>
        <content type="html">
            &lt;p&gt;Added string/number coercion&lt;/p&gt;
            &lt;p&gt;
                Added &lt;code&gt;word&lt;/code&gt; and &lt;code&gt;output&lt;/code&gt;
            &lt;/p&gt;
            &lt;p&gt;
                Allow unquoted variable names in &lt;code&gt;make&lt;/code&gt;
            &lt;/p&gt;
            &lt;p&gt;
                Added &lt;code&gt;and&lt;/code&gt;, &lt;code&gt;or&lt;/code&gt;, &lt;code&gt;xor&lt;/code&gt; and &lt;code&gt;setfont&lt;/code&gt;
            &lt;/p&gt;
            &lt;p&gt;
                Changed &lt;code&gt;towards&lt;/code&gt; to return a heading, rather than set a heading
            &lt;/p&gt;
            &lt;p&gt;Added infix expressions&lt;/p&gt;
            &lt;p&gt;
                Added &lt;code&gt;first&lt;/code&gt;, &lt;code&gt;last&lt;/code&gt;, &lt;code&gt;butfirst&lt;/code&gt;, &lt;code&gt;butlast&lt;/code&gt;
            &lt;/p&gt;
            &lt;p&gt;
                Added &lt;code&gt;power&lt;/code&gt;, &lt;code&gt;sqrt&lt;/code&gt;, &lt;code&gt;arctan&lt;/code&gt;, &lt;code&gt;sin&lt;/code&gt;, &lt;code&gt;cos&lt;/code&gt;, &lt;code&gt;tan&lt;/code&gt;, &lt;code&gt;int&lt;/code&gt;, &lt;code&gt;round&lt;/code&gt;
            &lt;/p&gt;
            &lt;p&gt;
                Renamed &lt;code&gt;add&lt;/code&gt; to &lt;code&gt;sum&lt;/code&gt;, &lt;code&gt;sub&lt;/code&gt; to &lt;code&gt;difference&lt;/code&gt;, &lt;code&gt;mul&lt;/code&gt; to &lt;code&gt;product&lt;/code&gt;, &lt;code&gt;div&lt;/code&gt; to &lt;code&gt;quotient&lt;/code&gt;, &lt;code&gt;mod&lt;/code&gt; to &lt;code&gt;modulus&lt;/code&gt;, &lt;code&gt;neg&lt;/code&gt; to &lt;code&gt;minus&lt;/code&gt;
            &lt;/p&gt;
        </content>
    </entry>

    <entry>
        <id>http://www.calormen.com/Logo/6</id>
        <updated>2008-08-21T12:00:00-08:00</updated>
        <title>2008-08-21</title>
        <content type="html">
            &lt;p&gt;Internal refactoring to simplify parsing&lt;/p&gt;
            &lt;p&gt;
                Added &lt;code&gt;pos&lt;/code&gt; and &lt;code&gt;heading&lt;/code&gt;
            &lt;/p&gt;
        </content>
    </entry>

    <entry>
        <id>http://www.calormen.com/Logo/5</id>
        <updated>2008-08-20T12:00:00-08:00</updated>
        <title>2008-08-20</title>
        <content type="html">
            &lt;p&gt;
                Added &lt;code&gt;stop&lt;/code&gt; and &lt;code&gt;towards&lt;/code&gt;
            &lt;/p&gt;
            &lt;p&gt;
                Fixed parsing of &lt;code&gt;setpos&lt;/code&gt; inputs
            &lt;/p&gt;
            &lt;p&gt;Inverted Y axis for absolute coordinate references (positive Y is now upwards)&lt;/p&gt;
        </content>
    </entry>

    <entry>
        <id>http://www.calormen.com/Logo/4</id>
        <updated>2008-08-19T12:00:00-08:00</updated>
        <title>2008-08-19</title>
        <content type="html">
            &lt;p&gt;
                Can't use &lt;code&gt;lt&lt;/code&gt; for both "left turn" and "less than". The latter is now &lt;code&gt;lth&lt;/code&gt;
            &lt;/p&gt;
            &lt;p&gt;
                Added &lt;code&gt;make&lt;/code&gt;, &lt;code&gt;setxy&lt;/code&gt;, &lt;code&gt;setx&lt;/code&gt;, &lt;code&gt;sety&lt;/code&gt;, &lt;code&gt;setheading&lt;/code&gt;. Updated &lt;code&gt;setpos&lt;/code&gt;
            &lt;/p&gt;
            &lt;p&gt;Fixed negative number parsing&lt;/p&gt;
            &lt;p&gt;Added toggle to multiline display&lt;/p&gt;
            &lt;p&gt;
                Corrected &lt;code&gt;repcount&lt;/code&gt; behavior for nested repeats
            &lt;/p&gt;
        </content>
    </entry>

    <entry>
        <id>http://www.calormen.com/Logo/3</id>
        <updated>2008-08-18T12:00:00-08:00</updated>
        <title>2008-08-18</title>
        <content type="html">
            &lt;p&gt;Added mathematical and logical operations&lt;/p&gt;
        </content>
    </entry>

    <entry>
        <id>http://www.calormen.com/Logo/2</id>
        <updated>2008-08-17T12:00:00-08:00</updated>
        <title>2008-08-17</title>
        <content type="html">
            &lt;p&gt;
                Added &lt;code&gt;if&lt;/code&gt;, &lt;code&gt;ifelse&lt;/code&gt;, &lt;code&gt;repcount&lt;/code&gt;,
                &lt;code&gt;clean&lt;/code&gt;, &lt;code&gt;home&lt;/code&gt;, &lt;code&gt;showturtle&lt;/code&gt;,
                &lt;code&gt;hideturtle&lt;/code&gt;
            &lt;/p&gt;
            &lt;p&gt;Added procedure inputs&lt;/p&gt;
            &lt;p&gt;Added display of the turtle&lt;/p&gt;
            &lt;p&gt;
                Had &lt;code&gt;left&lt;/code&gt; and &lt;code&gt;right&lt;/code&gt; switched. Oops.
            &lt;/p&gt;
        </content>
    </entry>

    <entry>
        <id>http://www.calormen.com/Logo/1</id>
        <updated>2008-08-16T12:00:00-08:00</updated>
        <title>2008-08-16</title>
        <content type="html">
            &lt;p&gt;Written and published&lt;/p&gt;
        </content>
    </entry>


</feed>

