Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Branch: master
Fetching contributors…

Cannot retrieve contributors at this time

1028 lines (953 sloc) 50.02 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-27 18:27:42 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="done DONE"> DONE</span> Update the class hierarchy <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2011-02-27 Sun 18:24</span></span><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 <br/>
See <code>Youtoo/Runtime/double.em</code>
</li>
<li id="sec-4.13"><span class="done DONE"> DONE</span> Consider replacing the built-in GC with <code>xalloc</code> from Eu2C <br/>
<span class="timestamp-wrapper"><span class="timestamp-kwd">CLOSED: </span> <span class="timestamp">2011-02-27 Sun 17:57</span></span><br/>
It is not clear this would provide much advantage as the current
inefficiencies in EuXLisp are associated with the number of times the GC is
called rather than the cost of the call.
</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>
<li id="sec-4.15">Reorganise the FFI code in <code>euxlBCodeCompiler.c</code> <br/>
and make the strings associated with FFI stub compilation configurable; see
<code>void compileModuleFFI(const moduleFilesDef* modfiles)</code>.
</li>
<li id="sec-4.16"><span class="todo TODO"> TODO</span> Add support for building EuXLisp and FFI code with <code>tinycc</code> <br/>
Issues:
<ol>
<li>
Currently <code>tinycc</code> does not support C99-style for-loop variable
declarations which are used extensively in EuXLisp. It would be possible
to add this support to <code>tinycc</code> but it is not clear how long it would
take or if the developers would be interested.
</li>
<li>
Another problem is the lack of support for <code>__attribute__ ((constructor))</code> which is a gcc-ism for defining automatic initialisation
functions in dynamic libraries used in the ffi stub loading. Again this
functionality could be added to the ELF support in <code>tinycc</code> but it might
be tricky and it is not clear if the developers of <code>tinycc</code> would be
interested. An alternative would be to simulate the automatic calling of
initialisation functions by looking them up with <code>dlsym</code> and calling them
explicitly.
</li>
</ol>
</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-27 18:27:42 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.