Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: 55c3cad092
Fetching contributors…

Cannot retrieve contributors at this time

1000 lines (924 sloc) 48.335 kb
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
lang="en" xml:lang="en">
<head>
<title><b>TODO</b></title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<meta name="generator" content="Org-mode"/>
<meta name="generated" content="2011-02-08 19:09:13 GMT"/>
<meta name="author" content="nil"/>
<meta name="description" content=""/>
<meta name="keywords" content=""/>
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
html { font-family: Times, serif; font-size: 12pt; }
.title { text-align: center; }
.todo { color: red; }
.done { color: green; }
.tag { background-color: #add8e6; font-weight:normal }
.target { }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
p.verse { margin-left: 3% }
pre {
border: 1pt solid #AEBDCC;
background-color: #F3F5F7;
padding: 5pt;
font-family: courier, monospace;
font-size: 90%;
overflow:auto;
}
table { border-collapse: collapse; }
td, th { vertical-align: top; }
dt { font-weight: bold; }
div.figure { padding: 0.5em; }
div.figure p { text-align: center; }
.linenr { font-size:smaller }
.code-highlighted {background-color:#ffff00;}
.org-info-js_info-navigation { border-style:none; }
#org-info-js_console-label { font-size:10px; font-weight:bold;
white-space:nowrap; }
.org-info-js_search-highlight {background-color:#ffff00; color:#000000;
font-weight:bold; }
/*]]>*/-->
</style>
<script type="text/javascript">
<!--/*--><![CDATA[/*><!--*/
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.cacheClassElem = elem.className;
elem.cacheClassTarget = target.className;
target.className = "code-highlighted";
elem.className = "code-highlighted";
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(elem.cacheClassElem)
elem.className = elem.cacheClassElem;
if(elem.cacheClassTarget)
target.className = elem.cacheClassTarget;
}
/*]]>*///-->
</script>
</head>
<body>
<div id="content">
<h1 class="title"><b>TODO</b></h1>
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#sec-1">1 EuLisp Definition </a></li>
<li><a href="#sec-2">2 Youtoo and EuXLisp </a></li>
<li><a href="#sec-3">3 Youtoo </a></li>
<li><a href="#sec-4">4 EuXLisp </a></li>
<li><a href="#sec-5">5 Eu2C </a></li>
<li><a href="#sec-6">6 Other </a></li>
</ul>
</div>
</div>
<div id="outline-container-1" class="outline-2">
<h2 id="sec-1"><span class="section-number-2">1</span> EuLisp Definition </h2>
<div class="outline-text-2" id="text-1">
<ul>
<li id="sec-1.1"><span class="todo TODO"> TODO</span> Update EuLisp definition and Youtoo and EuXLisp implementations <br/>
to correspond to the EuLisp-1.0 proposals.
See <a href="Doc/EuLisp-0.991/Proposals/Proposals.txt">proposal document</a>.
</li>
<li id="sec-1.2"><span class="todo TODO"> TODO</span> Undefined references [34/41] <br/>
<ul>
<li>
<b>[X]</b> class:abstract-class
</li>
<li>
<b>[X]</b> class:character-sequence
</li>
<li>
<b>[X]</b> class:collection
</li>
<li>
<b>[X]</b> class:condition-class
</li>
<li>
<b>[X]</b> class:&lt;function&gt;
</li>
<li>
[-] class:function-class
</li>
<li>
[-] class:hash-table
</li>
<li>
<b>[X]</b> class:list
</li>
<li>
<b>[X]</b> class:metaclass
</li>
<li>
[-] class:method
</li>
<li>
<b>[X]</b> class:name
</li>
<li>
<b>[X]</b> class:sequence
</li>
<li>
[-] class:simple-class
</li>
<li>
[-] class:simple-function
</li>
<li>
[-] class:simple-method
</li>
<li>
[-] class:simple-thread
</li>
<li>
<b>[X]</b> class:super-class
</li>
<li>
<b>[X]</b> condition:condition
</li>
<li>
<b>[X]</b> condition:no-converter
</li>
<li>
<b>[X]</b> condition:methods-exists
</li>
<li>
<b>[X]</b> condition:read-error
</li>
<li>
<b>[X]</b> defform:defmacro
</li>
<li>
<b>[X]</b> defform:defun
</li>
<li>
<b>[X]</b> function:eq
</li>
<li>
<b>[X]</b> function:eql
</li>
<li>
<b>[X]</b> function:end-of-stream
</li>
<li>
<b>[X]</b> function:fill-buffer
</li>
<li>
<b>[X]</b> function:=
</li>
<li>
<b>[X]</b> generic:binary&lt;
</li>
<li>
<b>[X]</b> generic:binary=
</li>
<li>
<b>[X]</b> generic:eql
</li>
<li>
<b>[X]</b> generic:eq|
</li>
<li>
<b>[X]</b> generic:equal
</li>
<li>
<b>[X]</b> generic:generic-prin
</li>
<li>
<b>[X]</b> generic:method
</li>
<li>
<b>[X]</b> generic:mod
</li>
<li>
<b>[X]</b> generic:read
</li>
<li>
<b>[X]</b> keyword:accessor
</li>
<li>
<b>[X]</b> keyword:export
</li>
<li>
<b>[X]</b> setter:method-function
</li>
<li>
<b>[X]</b> syntax:unquote-splice
</li>
</ul>
</li>
<li id="sec-1.3"><span class="todo TODO"> TODO</span> Add entry for the <code>&lt;method&gt;</code> class in Level-1 <br/>
</li>
<li id="sec-1.4"><span class="todo TODO"> TODO</span> Add details of the <code>&lt;hash-table&gt;</code> class and functions <br/>
</li>
<li id="sec-1.5"><span class="todo TODO"> TODO</span> Update stream module <br/>
to corresponding to the Youtoo implementation.
</li>
<li id="sec-1.6"><span class="done DONE"> DONE</span> Add descriptions of constants to "Layout and Typography" <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-04-01 Thu 12:16</span></span><br/>
in structure.tex. Include details of constant instances of classes and
constant bindings to classes (class aliases).
</li>
<li id="sec-1.7"><span class="done DONE"> DONE</span> &lt;thread&gt; vs &lt;abstract-thread&gt; <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-06-16 Wed 09:18</span></span><br/>
Sort out the difference between the EuLisp definition and the Youtoo
implementation with respect to the name of the abstract base-class for
threads. In the definition it is <code>&lt;thread&gt;</code> whereas in Youtoo it is
<code>&lt;abstract-thread&gt;</code> and <code>&lt;thread&gt;</code> is used for the currently used thread
type.
</li>
<li id="sec-1.8"><span class="done DONE"> DONE</span> Reformat the <code>defgeneric</code> rewrite rules to conform to the others <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-04-23 Fri 08:39</span></span><br/>
</li>
<li id="sec-1.9"><span class="done DONE"> DONE</span> Consider reformatting all of the rewrite rules <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-04-23 Fri 08:40</span></span><br/>
to be more consistent with the syntax description.
</li>
<li id="sec-1.10"><span class="todo TODO"> TODO</span> Add the return type to the syntax descriptions <br/>
</li>
<li id="sec-1.11"><span class="todo TODO"> TODO</span> Add "signatures" to all function descriptions <br/>
</li>
<li id="sec-1.12"><span class="done DONE"> DONE</span> Change macro definitions to special operators <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-06-15 Tue 23:04</span></span><br/>
It doesn't seem sensible to effectively specify that certain syntax MUST be
implemented as macros; surely this decision should be taken by the
implementers and for efficiency reasons it might be preferable that more of
the special operators are implemented as primitives of the language.
</li>
<li id="sec-1.13"><span class="todo TODO"> TODO</span> Finish the "Lexical Syntax" section <br/>
Provide a bit more background information.
</li>
<li id="sec-1.14"><span class="todo TODO"> TODO</span> Introduce the "Special Forms" list in <i>modules.tex</i> <br/>
Or move this list to a more appropriate place, <i>e.g.</i> at the beginning of
the section concerning "special forms".
</li>
<li id="sec-1.15"><span class="todo TODO"> TODO</span> Introduce the "Level-1" library and describe "module-1" <br/>
</li>
<li id="sec-1.16"><span class="todo TODO"> TODO</span> Re-reference definitions in the "Level-1" library <br/>
so that they do not clash with those in the "Level-0" library.
</li>
<li id="sec-1.17"><span class="done DONE"> DONE</span> Remove the "syntax-category" entries from the index <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-10-29 Fri 22:44</span></span><br/>
</li>
<li id="sec-1.18"><span class="done DONE"> DONE</span> Add <code>slice</code> generic function and methods <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-07-01 Thu 22:48</span></span><br/>
</li>
<li id="sec-1.19"><span class="done DONE"> DONE</span> Add destructive <code>&lt;sequence&gt;</code> generic functions <code>sort!</code> and <code>reverse!</code> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-04-27 Tue 22:48</span></span><br/>
Check for other <code>&lt;sequence&gt;</code> methods which should destructive variants.
</li>
<li id="sec-1.20"><span class="done DONE"> DONE</span> Clarify the wording concerning the relationship between <code>nil</code> and <code>()</code> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-05-09 Sun 21:09</span></span><br/>
State that (eq 'nil '()) ==&gt; t.
*** DONE Replace =equal= with =binary==
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-05-14 Fri 14:30</span></span><br/>
Remove the <code>equal</code> generic function and methods and introduce a complete set
of <code>binary=</code> methods.
</li>
<li id="sec-1.22"><span class="done DONE"> DONE</span> Change naming convention for predicates? and destructive! functions <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-06-09 Wed 10:46</span></span><br/>
There is a suggestion in the definition documents suggesting that the
Scheme/T naming convention for predicates (end in ?) and destructive
functions (end in !) should be considered for EuLisp. I agree with this
suggestion to improve consistency and readability and made the corresponding
changes including "null" -&gt; "null?" and "atom" -&gt; "atom?".
</li>
<li id="sec-1.23"><span class="todo TODO"> TODO</span> Add a Scheme-style <code>case</code> statement <br/>
</li>
<li id="sec-1.24"><span class="done DONE"> DONE</span> Add a Scheme-style <code>else</code> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-07-06 Tue 12:25</span></span><br/>
for the default clause of <code>cond</code> and <code>case</code> forms. <code>else</code> is simply an
alias for <code>t</code>.
</li>
<li id="sec-1.25"><span class="done DONE"> DONE</span> Add <code>when</code> and <code>unless</code> conditional expressions <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-07-02 Fri 10:16</span></span><br/>
</li>
<li id="sec-1.26"><span class="todo TODO"> TODO</span> Add <code>while</code> loop construct <br/>
</li>
<li id="sec-1.27"><span class="done DONE"> DONE</span> Rename <code>labels</code> -&gt; <code>letfuns</code> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-11-08 Mon 22:42</span></span><br/>
</li>
<li id="sec-1.28"><span class="todo TODO"> TODO</span> Consider including <code>append</code> <br/>
either in generic form or just for lists and perhaps strings.
</li>
<li id="sec-1.29"><span class="done DONE"> DONE</span> Add support for Level-0 style super-class specification <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-10-29 Fri 22:53</span></span><br/>
If only one super-class is specified allow single-inheritance syntax of
specifying the class directly rather than as a list.
</li>
</ul>
</div>
</div>
<div id="outline-container-2" class="outline-2">
<h2 id="sec-2"><span class="section-number-2">2</span> Youtoo and EuXLisp </h2>
<div class="outline-text-2" id="text-2">
<ul>
<li id="sec-2.1"><span class="done DONE"> DONE</span> Replace <code>equal</code> with <code>binary=</code> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-05-12 Wed 22:57</span></span><br/>
Remove the <code>equal</code> generic function and methods and introduce a complete set
of <code>binary=</code> methods. The only difference between the definition of <code>equal</code>
and <code>binary=</code> is the latter applies type coercion whereas <code>equal</code> was
defined not two. If this property is an important feature <code>equal</code> could be
reinstated as a function wrapper around <code>binary=</code> which does a
type-consistency check.
</li>
<li id="sec-2.2"><span class="done DONE"> DONE</span> Complete the renaming of predicates? and destructive! functions <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-06-15 Tue 14:31</span></span><br/>
All predicates ending in "-p" have been transformed and the functions
"null?" and "atom?" added but the predicates ending in "p" have yet to be
updated.
</li>
<li id="sec-2.3"><span class="done DONE"> DONE</span> Change <code>prin</code>, <code>print</code> and <code>write</code> to be n-ary <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-06-15 Tue 15:30</span></span><br/>
Add <code>sprin</code>, <code>sprint</code> and <code>swrite</code> to take the stream as the first argument.
</li>
<li id="sec-2.4"><span class="done DONE"> DONE</span> Add <code>sprint</code> and change <code>print</code> to use stdout <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-06-29 Tue 16:58</span></span><br/>
</li>
<li id="sec-2.5"><span class="done DONE"> DONE</span> Rename require predicate keyword <code>requiredp:</code> -&gt; <code>required?:</code> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-06-29 Tue 15:38</span></span><br/>
</li>
<li id="sec-2.6"><span class="done DONE"> DONE</span> Rename <code>abstractp:</code> -&gt; <code>abstract?:</code> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-06-29 Tue 21:47</span></span><br/>
</li>
<li id="sec-2.7"><span class="todo TODO"> TODO</span> Add <code>slice</code> method for <code>&lt;vector&gt;</code> <br/>
</li>
<li id="sec-2.8"><span class="done DONE"> DONE</span> Reconsider <code>&lt;int&gt;</code>, should it be <code>&lt;fpi&gt;</code>? <br/>
Yes.
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-10-23 Sat 23:10</span></span><br/>
</li>
<li id="sec-2.9"><span class="done DONE"> DONE</span> What should <code>&lt;double-float&gt;</code> be called? <code>&lt;double-float&gt;</code> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-10-26 Tue 22:30</span></span><br/>
<code>&lt;double&gt;</code> as in Youtoo? If so then the name <code>&lt;float&gt;</code> as the abstract base
class is odd.
</li>
</ul>
</div>
</div>
<div id="outline-container-3" class="outline-2">
<h2 id="sec-3"><span class="section-number-2">3</span> Youtoo </h2>
<div class="outline-text-2" id="text-3">
<ul>
<li id="sec-3.1"><span class="done DONE"> DONE</span> Split of word-length dependent functionality into separate modules <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-02-23 Tue 19:31</span></span><br/>
Split files
<ul>
<li>
<i>Comptime2/64bit/cg-exec.em</i>
</li>
<li>
<i>Comptime2/32bit/cg-exec.em</i>
</li>
</ul>
<p>Into
</p><ul>
<li>
<i>Comptime2/cg-exec.em</i>
</li>
<li>
<i>Comptime2/64bit/cg-exec-nbit.em</i>
</li>
<li>
<i>Comptime2/32bit/cg-exec-nbit.em</i>
</li>
</ul>
</li>
<li id="sec-3.2"><span class="done DONE"> DONE</span> Regenerate all the .c files from the .em files to remove <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-02-08 Mon 10:14</span></span><br/>
<ul>
<li>
<code>ARGDECL</code>
</li>
<li>
<code>PROTOTYPE</code>
</li>
</ul>
</li>
<li id="sec-3.3"><span class="done DONE"> DONE</span> Regenerate all the .c files from the .em files to remove <code>eul_const</code> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-02-08 Mon 14:37</span></span><br/>
</li>
<li id="sec-3.4"><span class="done DONE"> DONE</span> Remove <i>compat.h</i> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-02-08 Mon 22:54</span></span><br/>
when backward compatibility is no longer needed.
</li>
<li id="sec-3.5"><span class="done DONE"> DONE</span> Change all the <i>Makefiles</i> of all the <i>Modules</i> and <i>Examples</i> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-02-23 Tue 19:31</span></span><br/>
so that the libraries and executables are located in <i>platform/$(ARCH)</i>
or //Lib.$(ARCH)/ and //Bin.$(ARCH)/ directories.
</li>
<li id="sec-3.6"><span class="done DONE"> DONE</span> Investigate warning messages from <i>Examples/Misc/ffi2.c</i> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-02-08 Mon 22:54</span></span><br/>
Creating stand-alone application of module ffi2 &hellip;
Compiling <i>ffi2.c</i> using gcc &hellip;
//home/dm2/henry/EuLisp/youtoo/Examples/Misc/ffi2.c/: In function ‘ff_stub_ext_foo_in
</li>
<li id="sec-3.7"><span class="todo TODO"> TODO</span> Resolve warning messages from ffi applications <br/>
by introducing an option to allow a header file declaring the ff's to be
included in the stubs files.
<ul>
<li id="sec-3.7.1">Add header-files including the ffi definitions to all the <i>Modules</i> libraries. <br/>
</li>
</ul>
</li>
<li id="sec-3.8"><span class="done DONE"> DONE</span> Investigate when <i>Lib.${ARCH}/*.i</i> should be copied to Lib <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-05-06 Thu 13:47</span></span><br/>
</li>
<li id="sec-3.9"><span class="done DONE"> DONE</span> Sort out the <i>Modules/Bignum/Makefile</i> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-02-23 Tue 19:31</span></span><br/>
Currently the linking of the gmp library is hard-coded.
</li>
<li id="sec-3.10"><span class="done DONE"> DONE</span> Upgrade the TclTk library to 8.5 <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-02-14 Sun 23:27</span></span><br/>
</li>
<li id="sec-3.11"><span class="done DONE"> DONE</span> Investigate problems with the <i>Modules/OS</i> (object serialisation) lib <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-02-23 Tue 19:30</span></span><br/>
</li>
<li id="sec-3.12"><span class="todo TODO"> TODO</span> Change the MPI interface to work with OpenMPI <br/>
</li>
<li id="sec-3.13"><span class="done DONE"> DONE</span> <i>Comptime2/youtoo.em</i> sometimes ends-up in the wrong state <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-06-21 Mon 22:55</span></span><br/>
should be
<pre class="src src-lisp">(defmodule youtoo
<span style="color: #ff00ff; font-weight: bold;">;; </span><span style="color: #ff00ff;">Final, proper executable!
</span>(import (level-1 math eval i-aux0 syntax-1))
(main *argv*)
) <span style="color: #ff00ff; font-weight: bold;">; </span><span style="color: #ff00ff;">end of module
</span></pre>
<p>
but sometimes remains in the intermediate build state
</p>
<pre class="src src-lisp">(defmodule youtoo
<span style="color: #ff00ff; font-weight: bold;">;; </span><span style="color: #ff00ff;">Preliminary executable!
</span>(import (level1 math eval))
(main *argv*)
) <span style="color: #ff00ff; font-weight: bold;">; </span><span style="color: #ff00ff;">end of module
</span></pre>
<p>
during the boot-strap build. The consequence is that the final executable
is unable to compile module files correctly issuing errors like
</p>
<pre class="src src-lisp">*** ERROR [nuseq][top-level]: exported lexical binding subseq not available
*** ERROR [nuseq][top-level]: no lexical binding defgeneric available
*** ERROR [nuseq][top-level]: no lexical binding subseq available
*** ERROR [nuseq][top-level]: no lexical binding seq available
</pre>
<p>
This is resolved by using an external previous build of youtoo to bootstrap.
</p></li>
<li id="sec-3.17"><span class="done DONE"> DONE</span> Split the "boot" section of <i>Comptime2/Makefile</i> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-02-16 Tue 15:06</span></span><br/>
into the two parts to make the preliminary and final executables.
Also move the "driver" part into the top-level Makefile.
</li>
<li id="sec-3.18"><span class="done DONE"> DONE</span> Clean all .em files <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-02-26 Fri 15:01</span></span><br/>
to remove blank line at beginning, tabs and trailing white-space.
</li>
<li id="sec-3.19"><span class="todo TODO"> TODO</span> Add support in the REPL to load dynamically-linked module libraries <br/>
</li>
<li id="sec-3.20"><span class="done DONE"> DONE</span> Add support for #;(sexp) comments in <i>Runtime/Ff/eul-ntok.c</i> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-04-23 Fri 22:44</span></span><br/>
</li>
<li id="sec-3.21"><span class="done DONE"> DONE</span> Add line-number counting to <i>Runtime/Ff/eul-ntok.c</i> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-11-18 Thu 22:29</span></span><br/>
This also requires the introduction of a line-number counting stream to hold
the line-number and provide access to the error reporting system.
</li>
<li id="sec-3.22"><span class="done DONE"> DONE</span> <code>read-error</code> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-04-01 Thu 21:31</span></span><br/>
Replace the use of <code>error</code> with <code>read-error</code> in <i>read.em</i>
</li>
<li id="sec-3.23"><span class="done DONE"> DONE</span> Change the handling of multiple-escape sequences in <i>eul-ntok.c</i> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-04-22 Thu 22:52</span></span><br/>
to correspond to the syntax for identifiers as described in the definition.
Currently the handling of multiple-escape sequences is a duplicate of the
handling for strings with all the special characters when the single escape
character should only be required to escape itself and the multiple-escape
character.
</li>
<li id="sec-3.24"><span class="done DONE"> DONE</span> Add <code>slice</code> generic function and methods <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-05-06 Thu 13:46</span></span><br/>
<code>slice</code> for string can a wrapper around substring already available
in Youtoo.
</li>
<li id="sec-3.25"><span class="done DONE"> DONE</span> Add <code>reverse!</code> method for <code>&lt;string&gt;</code> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-04-27 Tue 12:25</span></span><br/>
Requires equivalent ff in eul-ext.c
</li>
<li id="sec-3.26"><span class="done DONE"> DONE</span> Sort out the syntax of character sequences <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-04-26 Mon 19:46</span></span><br/>
<ul>
<li>
There is a problem with the need for double escaping: #\\x000, #\\\ etc.
</li>
<li>
Hexadecimal sequences are hard-coded to 3 digits, if not where is the end?
</li>
<li>
How should the character '^' be written given that it is used to define
control sequences e.g. #^c ? Perhaps #^ ?
</li>
<li id="sec-3.26.1">Proposed solution <br/>
To remove support for control sequences which are unusual,
system-dependent and can be created using hexadecimal characters. Also
fix the number of hexadecimal digits for a character to 4 which is
sufficient to support unicode but also avoids parsing problems.
</li>
</ul>
</li>
<li id="sec-3.27"><span class="done DONE"> DONE</span> Change the parser to map ='nil= to ='()= <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-05-09 Sun 21:06</span></span><br/>
so that (eq 'nil '()) =&gt; t
</li>
<li id="sec-3.28"><span class="done DONE"> DONE</span> (eql 3.0 3.0) should return t but it returns () <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-05-10 Mon 21:50</span></span><br/>
</li>
<li id="sec-3.29"><span class="todo TODO"> TODO</span> Finish <code>format</code> <br/>
Currently <code>format</code> only handles a subset of the functionality in the
definition, in particular <code>e</code> and <code>g</code> formatting of floating-point numbers
is missing. <code>format</code> is complete in EuXLisp and it may be possible to reuse
some of this functionality.
</li>
<li id="sec-3.30"><span class="done DONE"> DONE</span> Enable level-0 modules to be loaded interactively <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-06-21 Mon 14:32</span></span><br/>
into a level1 environment by creating a dummy level-0 which is a copy of the
default env
</li>
<li id="sec-3.31"><span class="done DONE"> DONE</span> Include default environment variables directly into <code>youtoo</code> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-06-21 Mon 17:12</span></span><br/>
to avoid the need for the start-up script to set them.
</li>
<li id="sec-3.32"><span class="done DONE"> DONE</span> Add the <code>-m</code> load module option <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-11-04 Thu 16:22</span></span><br/>
compatible with the equivalent option added to EuXLisp.|
</li>
<li id="sec-3.33"><span class="done DONE"> DONE</span> Add a Scheme-style <code>else</code> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-06-22 Tue 22:34</span></span><br/>
for the default clause of <code>cond</code> forms. <code>else</code> is simply an alias for <code>t</code>.
</li>
<li id="sec-3.34"><span class="todo TODO"> TODO</span> Develop <code>map</code> and <code>do</code> to handle more than 2 sequences <br/>
for <code>&lt;list&gt;</code>, <code>&lt;vector&gt;</code> <i>etc.</i>
</li>
<li id="sec-3.35"><span class="todo TODO"> TODO</span> Fix output of very large and very small <code>&lt;double-float&gt;</code> numbers <br/>
<code>print</code> can output numbers of the order of 1e30 but does not use exponential
format. There appears to be a limit on the number of decimal places that
can be output which might relate to the size of on output formatting buffer.
</li>
<li id="sec-3.36"><span class="todo TODO"> TODO</span> Consider adding an expander for <code>element</code> to <code>get-appl-expander</code> <br/>
for <code>&lt;vector&gt;</code>, <code>&lt;string&gt; and maybe =&lt;list&gt;</code> in file <code>ex-expr.em</code>. This
might avoid the generic function call overhead for returning an element of a
primitive container.
</li>
<li id="sec-3.37"><span class="done DONE"> DONE</span> Add support for Level-0 style super-class specification <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-09-20 Mon 22:41</span></span><br/>
If only one super-class is specified allow single-inheritance syntax of
specifying the class directly rather than as a list.
</li>
<li id="sec-3.38"><span class="todo TODO"> TODO</span> Correct <code>write</code> ing of character digrams and escape sequences in strings <br/>
</li>
<li id="sec-3.39"><span class="done DONE"> DONE</span> Correct <code>defconstant</code> to handle character constants correctly <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-10-23 Sat 19:06</span></span><br/>
See <code>(deflocal nl #\\n)</code> which should be <code>(defconstant nl #\\n)</code> in
<code>stream.em</code>.
</li>
<li id="sec-3.40"><span class="todo TODO"> TODO</span> Improve <code>--script</code> option to handle module definition <br/>
See Examples/Test/factScript.em.
</li>
<li id="sec-3.41"><span class="done DONE"> DONE</span> <code>--script</code> option should switch-off <code>readline</code> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-10-08 Fri 19:57</span></span><br/>
</li>
<li id="sec-3.42"><span class="done DONE"> DONE</span> Check <code>Modules/Pipe</code> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-10-08 Fri 08:32</span></span><br/>
Currently the path
<code>/home/dm2/henry/EuLisp/EuLisp/Modules/Pipe/../../Bin.x86_64/youto o.sh</code> is
used which works but the equivalent
<code>/home/dm2/henry/EuLisp/EuLisp/Bin.x86_64/youto o.sh</code> does not, nor does the
relative path <code>../../Bin.x86_64/youtoo.sh</code> which should.
</li>
<li id="sec-3.43"><span class="todo TODO"> TODO</span> Consider replacing the built-in GC with <code>xalloc</code> in Eu2C <br/>
</li>
<li id="sec-3.44"><span class="done DONE"> DONE</span> Change <code>level1</code> -&gt; <code>level-1</code> [3/3] <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-11-04 Thu 16:23</span></span><br/>
<ul>
<li>
<b>[X]</b> Add <code>level-1</code> as copy of <code>level1</code>
</li>
<li>
<b>[X]</b> Change all uses of <code>level1</code> <code>level-1</code>
</li>
<li>
<b>[X]</b> Remove <code>level1</code>
</li>
</ul>
</li>
<li id="sec-3.45"><span class="todo TODO"> TODO</span> Rename <code>labels</code> -&gt; <code>letfuns</code> <br/>
</li>
<li id="sec-3.46"><span class="todo TODO"> TODO</span> Add support for hierarchical application of module filters <br/>
<i>e.g.</i>
<pre class="src src-lisp">(defmodule test
(import (level-1
(rename ((something something-else))
(only (something)
things))))
) <span style="color: #ff00ff; font-weight: bold;">; </span><span style="color: #ff00ff;">end of module
</span></pre>
</li>
<li id="sec-3.47"><span class="done DONE"> DONE</span> Complete support for eval <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-12-19 Sun 09:59</span></span><br/>
Following the analysis in the report "Modules, Macros and Lisp", Queinnec
and Padget, it is proposed to add <code>eval</code> to EuLisp with the following
operator:
<ul>
<li>
Add additional optional module argument to <code>eval</code> to set the environment
in which the eval evaluates which defaults to the current module.
</li>
</ul>
<p>However, unlike the proposal in the report an additional restriction is
added that it is exported environment in which <code>eval</code> operates rather than
the complete lexical environment within the module. This restriction is
necessary because only the exported environment is guaranteed to exist at
"eval" time; the rest of the internal lexical environment may not be
complete due to, for example, compiler optimisations.
</p>
<p>
The basic functionality is now complete and a simple example provided in
Examples/Eval but currently there is no way to know what the current module
is so the additional "optional" argument is currently required <i>e.g.</i>:
</p>
<pre class="src src-lisp">(eval (read lispin () ()) 'eval-test)
</pre>
<p>
It may be possible to remove this limitation by either keeping a local
variable in each module holding the module name or by converting <code>eval</code> into
a macro so that the module name can be expanded into the optional argument
slot during compilation. <b>This is now implemented</b>.
</p>
</li>
</ul>
</div>
</div>
<div id="outline-container-4" class="outline-2">
<h2 id="sec-4"><span class="section-number-2">4</span> EuXLisp </h2>
<div class="outline-text-2" id="text-4">
<ul>
<li id="sec-4.1"><span class="done DONE"> DONE</span> Finish reformatting the C source files <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-10-23 Sat 19:03</span></span><br/>
</li>
<li id="sec-4.2"><span class="done DONE"> DONE</span> Add <code>slice</code> method for <code>&lt;list&gt;</code> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-07-01 Thu 23:04</span></span><br/>
</li>
<li id="sec-4.3"><span class="done DONE"> DONE</span> Add <code>flush</code> and <code>sflush</code> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-06-27 Sun 22:59</span></span><br/>
</li>
<li id="sec-4.4"><span class="todo TODO"> TODO</span> Update the class hierarchy <br/>
<ul>
<li>
remove <code>&lt;simple-string&gt;</code>, <code>&lt;simple-vector&gt;</code> <i>etc.</i>
</li>
<li>
add <code>&lt;sequence&gt;</code>, <code>&lt;character-sequence&gt;</code> <i>etc.</i>
</li>
</ul>
</li>
<li id="sec-4.5"><span class="done DONE"> DONE</span> Remove the export of <code>&lt;make-...&gt;</code> functions <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-07-05 Mon 15:20</span></span><br/>
Replace with generic <code>make &lt;...&gt;</code> calls in modules.
</li>
<li id="sec-4.6"><span class="done DONE"> DONE</span> Rename primitive Scheme functions in the C-code <br/>
<pre class="src src-eulisp">(<span style="color: #0000ff; font-weight: bold;">rename</span>
((<span style="color: #0000ff; font-weight: bold;">begin</span> progn)
(<span style="color: #0000ff; font-weight: bold;">pair?</span> cons?)
(<span style="color: #0000ff; font-weight: bold;">real?</span> float?)
(<span style="color: #0000ff; font-weight: bold;">real?</span> double-float?)
(<span style="color: #0000ff; font-weight: bold;">procedure?</span> function?)
(<span style="color: #0000ff; font-weight: bold;">eq?</span> eq)
(<span style="color: #0000ff; font-weight: bold;">eqv?</span> eql)))
</pre>
</li>
<li id="sec-4.7"><span class="done DONE"> DONE</span> Add <code>binary-mod</code> function <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-07-05 Mon 21:35</span></span><br/>
This is equivalent to <code>binary%</code> for integers but returns an &lt;fpi&gt; for
&lt;double-float&gt;s, see definition.
</li>
<li id="sec-4.8"><span class="done DONE"> DONE</span> Add <code>time</code> function <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-07-06 Tue 13:01</span></span><br/>
See Youtoo implementation
</li>
<li id="sec-4.9"><span class="done DONE"> DONE</span> Switch-off readline when running a module with the <code>-m</code> option <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-07-05 Mon 15:19</span></span><br/>
</li>
<li id="sec-4.10"><span class="done DONE"> DONE</span> Rename <code>-length</code> functions -&gt; <code>-size</code> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-07-05 Mon 11:42</span></span><br/>
</li>
<li id="sec-4.11"><span class="done DONE"> DONE</span> Rename <code>simple-vector</code> -&gt; <code>vector</code> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-07-05 Mon 22:03</span></span><br/>
</li>
<li id="sec-4.12"><span class="todo TODO"> TODO</span> Complete <code>double-float</code> functionality in <code>arith.em</code> <br/>
See <code>Youtoo/Runtime/double.em</code>
</li>
<li id="sec-4.13"><span class="todo TODO"> TODO</span> Consider replacing the built-in GC with <code>xalloc</code> from Eu2C <br/>
</li>
<li id="sec-4.14"><span class="done DONE"> DONE</span> Rename <code>labels</code> -&gt; <code>letfuns</code> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-11-08 Mon 22:43</span></span><br/>
</li>
</ul>
</div>
</div>
<div id="outline-container-5" class="outline-2">
<h2 id="sec-5"><span class="section-number-2">5</span> Eu2C </h2>
<div class="outline-text-2" id="text-5">
<ul>
<li id="sec-5.1"><span class="done DONE"> DONE</span> Hack CMUCL to write exponent "e" <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-08-30 Mon 11:15</span></span><br/>
C required double precision numbers to be written with "e" rather
than the CL standard "d".
</li>
<li id="sec-5.2"><span class="done DONE"> DONE</span> Hack CMUCL to support symbols with post-fix ":" <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-08-30 Mon 11:17</span></span><br/>
Keywords in EuLisp are symbols with a post-fix ":" which is not allowed in
standard CL except as an extension. Need to hack the CMUCL reader to
support symbols with a post-fix ":".
</li>
<li id="sec-5.3"><span class="done DONE"> DONE</span> Reformat all CL and EuLisp code <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-08-30 Mon 14:15</span></span><br/>
to conform to a traditional CL style extended to handle the EuLisp specific
forms, in particular <code>defmodule</code>. The <code>eulisp-mode</code> for Emacs supplied now
conforms to this style and may be used to automatically re-indent code.
</li>
<li id="sec-5.4"><span class="todo TODO"> TODO</span> Reformat trailing parentheses in all CL and EuLisp code <br/>
</li>
<li id="sec-5.5"><span class="todo TODO"> TODO</span> Change the <code>initlist</code> keywords to use the post-fix ":" <br/>
</li>
<li id="sec-5.6"><span class="done DONE"> DONE</span> Rename <code>&lt;fixed-precision-integer&gt;</code> -&gt; <code>&lt;fpi&gt;</code> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-08-30 Mon 14:35</span></span><br/>
</li>
<li id="sec-5.7"><span class="todo TODO"> TODO</span> Consider adding a special list for the keywords <br/>
Currently they are simply symbols which happen to end in a ":".
</li>
<li id="sec-5.8"><span class="done DONE"> DONE</span> Add support for the default <code>superclass</code> in <code>defclass</code> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-09-02 Thu 15:45</span></span><br/>
Currently the superclass MUST be specified but the definition states that if
the superclass is <code>()</code> then the default superclass <code>&lt;object&gt;</code> will be used.
</li>
<li id="sec-5.9"><span class="todo TODO"> TODO</span> Consider writing a <code>defclass</code> which supports multiple-inheritance <br/>
Currently only single-inheritance is supported by <code>defclass</code> as specified in
EuLisp Level-0 but it should be possible to add support for a list of
super-classes as specified in EuLisp Level-1.
</li>
<li id="sec-5.10"><span class="todo TODO"> TODO</span> Correct case handling for symbols <br/>
<ul>
<li>
Currently symbols or interned with capitalised names.
</li>
<li>
This can only be corrected by enabling case-preservation in CL:
</li>
<li>
(setf (readtable-case <b>readtable</b>) :preserve)
</li>
<li>
The consequence is that all standard CL symbols must be written in
uppercase.
</li>
</ul>
</li>
<li id="sec-5.11"><span class="todo TODO"> TODO</span> Test current thread implementation in 32bit <br/>
If it proves effective consider writing the 64bit equivalents of the pieces
of assembly code necessary for 64bit operation.
</li>
<li id="sec-5.12"><span class="todo TODO"> TODO</span> Consider replacing current <code>setjmp/longjmp</code> threads with <code>pthreads</code> <br/>
</li>
<li id="sec-5.13"><span class="done DONE"> DONE</span> Change location of the [cho], {inst,def} and executable files <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-09-02 Thu 13:38</span></span><br/>
Currently the top-level <code>Makefile</code> does not set the location of the files
which are build-dependant.
</li>
<li id="sec-5.14"><span class="todo TODO"> TODO</span> Replace <code>equal</code> with <code>binary=</code> <br/>
Remove the <code>equal</code> generic function and methods and introduce a complete set
of <code>binary=</code> methods. The only difference between the definition of <code>equal</code>
and <code>binary=</code> is the latter applies type coercion whereas <code>equal</code> was
defined not two. If this property is an important feature <code>equal</code> could be
reinstated as a function wrapper around <code>binary=</code> which does a
type-consistency check.
</li>
<li id="sec-5.15"><span class="done DONE"> DONE</span> Rename predicate functions <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-09-02 Thu 15:45</span></span><br/>
Rename predicates ending in "-p" and "p" to use the post-fix "?". Add the
post-fix "?" to <code>atom</code> and <code>null</code>.
</li>
<li id="sec-5.16"><span class="done DONE"> DONE</span> Change <code>prin</code>, <code>print</code> and <code>write</code> to be n-ary <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-10-07 Thu 22:11</span></span><br/>
Add <code>sprin</code>, <code>sprint</code> and <code>swrite</code> to take the stream as the first argument.
</li>
<li id="sec-5.17"><span class="done DONE"> DONE</span> Add <code>sprint</code> and change <code>print</code> to use stdout <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-10-07 Thu 22:11</span></span><br/>
</li>
<li id="sec-5.18"><span class="done DONE"> DONE</span> Add <code>sformat</code> and change <code>format</code> to use stdout <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-10-07 Thu 22:11</span></span><br/>
</li>
<li id="sec-5.19"><span class="todo TODO"> TODO</span> Add <code>required?:</code> predicate keyword to class <br/>
</li>
<li id="sec-5.20"><span class="todo TODO"> TODO</span> Add <code>abstract?:</code> predicate keyword to class <br/>
</li>
<li id="sec-5.21"><span class="done DONE"> DONE</span> Investigate the GC in 64bit <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-10-07 Thu 22:11</span></span><br/>
Examples/umdrehen.em fails in 64bit probably due to a memory allocation
error.
</li>
<li id="sec-5.22"><span class="todo TODO"> TODO</span> Investigate the <code>generate-*hack*</code> <br/>
In file <code>Apply/generate-def-file.ecl</code> the <code>generate-*hack*</code> is necessary
because
<ol>
<li>
the macro definitions are not yet moved to the def-file;
</li>
<li>
variables imported from c are not moved to the def-file because
include-statements for the c-preprocessor can't be generated, due to the
explicit declaration of c-import in the module interface without
connection to the variable declarations.
</li>
</ol>
</li>
<li id="sec-5.23"><span class="todo TODO"> TODO</span> Split <code>defglobal</code> and <code>dynamic-???</code> from <code>Apply/el2lzs-rules.ecl</code> <br/>
into a <code>level-1</code> file.
</li>
<li id="sec-5.24"><span class="done DONE"> DONE</span> Create a <code>level-1</code> module <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-10-23 Sat 19:09</span></span><br/>
including the <code>level-0</code>, <code>dynamic</code> and <code>exit-1</code> modules.
</li>
<li id="sec-5.25"><span class="todo TODO"> TODO</span> Create the <code>exit-1</code> module <br/>
containing the <code>throw</code> and <code>catch</code> functionality. Perhaps the syntax
operators from Youtoo can be re-used for this.
</li>
<li id="sec-5.26"><span class="todo TODO"> TODO</span> Add support for <code>generic-lambda</code> <br/>
See Youtoo.
</li>
<li id="sec-5.27"><span class="todo TODO"> TODO</span> Investigate exposing MOP functionality from <code>lzs-mop.ecl</code> <br/>
It may be possible to expose the EuLisp Level-1 MOP functionality already
present and use it in EuLisp modules, e.g. <code>test-introspection.em</code>
<pre class="src src-eulisp">(<span style="color: #0000ff; font-weight: bold;">%define-function</span> <span style="color: #0000ff; font-weight: bold;">(class-precedence-list</span> <span style="color: #0000ff;">&lt;cons&gt;</span>)
((<span style="color: #0000ff; font-weight: bold;">cl</span> <span style="color: #0000ff;">&lt;class&gt;</span>))
(<span style="color: #0000ff; font-weight: bold;">%select</span> cl <span style="color: #0000ff;">&lt;class&gt;</span> class-precedence-list))
<span style="color: #0000ff; font-weight: bold;">(print</span> <span style="color: #0000ff; font-weight: bold;">(class-precedence-list</span> <span style="color: #0000ff;">&lt;null&gt;</span>))
</pre>
</li>
<li id="sec-5.28"><span class="done DONE"> DONE</span> Renaming according to 1.0 proposals <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-09-07 Tue 21:45</span></span><br/>
<ul>
<li>
Rename &lt;execution-condition&gt; as &lt;general-condition&gt;
</li>
<li>
Rename &lt;syntax-error&gt; as &lt;read-error&gt;
</li>
<li>
Rename &lt;slot-description&gt; as &lt;slot&gt; (and all other such references)
</li>
<li>
To remove &lt;structure&gt; and &lt;structure-class&gt;
</li>
</ul>
</li>
<li id="sec-5.29"><span class="done DONE"> DONE</span> Rename <code>labels</code> -&gt; <code>letfuns</code> <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-11-08 Mon 22:43</span></span><br/>
</li>
</ul>
</div>
</div>
<div id="outline-container-6" class="outline-2">
<h2 id="sec-6"><span class="section-number-2">6</span> Other </h2>
<div class="outline-text-2" id="text-6">
<ul>
<li id="sec-6.1"><span class="done DONE"> DONE</span> Complete emacs mode eulisp-mode.el for EuLisp <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-08-30 Mon 14:20</span></span><br/>
</li>
<li id="sec-6.2"><span class="done DONE"> DONE</span> Include emacs eulisp-mode.el in the git repository <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2010-06-19 Sat 22:46</span></span><br/>
</li>
<li id="sec-6.3"><span class="todo TODO"> TODO</span> Complete emacs inferior-mode inf-eulisp.el <br/>
for Youtoo and EuXLisp, it would not be useful for Eu2C which is
non-interactive, i.e. no REPL.
</li>
</ul>
</div>
</div>
<div id="postamble">
<p class="date"> Date: 2011-02-08 19:09:13 GMT</p>
<p class="creator">HTML generated by org-mode 6.33x in emacs 23</p>
</div>
</div>
</body>
</html>
Jump to Line
Something went wrong with that request. Please try again.