#author Matthias Benkard
#date 2008-06-14 - (format-time-string "%Y-%m-%d")
#title Toilet Lisp Development Diary
#desc Random news and stuff about just another random pet project
; Time-stamp: <2008-08-02 13:54:33 mulk>
;
; C-c i t insert-time-stamp
; C-c C-t muse-project-publish-this-file
; C-c C-e muse-edit-link-at-point
; C-c C-i muse-insert-thing
----
Context: [[http://matthias.benkard.de/toilet][The Toilet Lisp Project]].
----
* 2008-08-02, 13:46:14 CEST
** Exception Handling Crashes on Debian Systems
On Debian systems using the ffcall-compiled GNUstep Base libraries from
the **libgnustep-base1.16** package, an exception raised from within a
method called by way of an **NSInvocation** object causes the Objective-C
runtime to crash with a **SIGABRT** by calling **abort()** from
**objc_exception_throw()**.
Installing **libgnustep-base1.16-libffi** (which diverts the shared
libraries installed by **libgnustep-base1.16**) or compiling your own custom
version of GNUstep Base fixes the problem.
I have reported this bug as [[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=493250][#493250]].
So if Toilet Lisp crashes when you type =(send 'a "isEqualToString:" 'b)=
at the REPL, please consider switching GNUstep Base installations. =sudo
apt-get install libgnustep-base1.16-libffi= should do the trick.
* 2008-07-27, 16:51:13 CEST
** DESTRUCTURING-BIND and DEFUN and DEFMACRO, Oh My!
We've now got **defun** and **defmacro** in all their lambda-list destructuring
glory. Finally!
So yeah, they're missing a bit of error handling here and there when
parsing lambda lists. Too permissive to be conforming. But hey, at
least your missing arguments will merely be =nil= instead of crashing the
interpreter (the hard way, I mean, not by catchable exceptions). Isn't
that an improvement?
* 2008-06-14, 16:41:55 CEST
** Another Random Piece of Vaporware is Born
Here I go again, starting yet another little pet software project whose
chance of surviving for more than a few months is limited, but hey, it'd
not be me if I didn't start bragging about it before having written even
a single line of code, right? So here we go!
I intend Mulklisp (which is obviously a preliminary, WebShaka-style
proto-name) to become a Lisp compiler for the Étoilé runtime (and maybe
Mac OS X as well, but that's of a lower priority) with the following
features:
* A proper subset of ANSI Common Lisp, with an eye towards full ANSI
compliance in the far future.
* CFFI support.
* Lexical **and** dynamic scoping.
* Integration with the Étoilé object system.
* DEFMACRO.
* Hygienic macros by way of Explicit Renaming and Syntactic Closures.
* Read macros. (?)
* TAGBODY and GO. (?)
* CATCH and THROW. (?)
* Places (that is, SETF).
* A package system.
* Arrays and hash tables compatible with their Common Lisp counterparts,
but based on the Étoilé/GNUstep ones.
* Direct compilation to Étoilé runtime code (as with Étoilé Smalltalk).
* A REPL.
* Conditions and restarts.
* Multiple namespaces.
* Bignums and rationals.
* JIT and explicit compilation (COMPILE) via LLVM. (?)
* Optional static typing with Cells-based/Hindley-Milner/whatever type
inference. (?)
Well, that's what I'm dreaming of. At least now you have something new
to joke about in place of Duke Nukem Forever (which is coming out
Practically Tomorrow! Preorder today!).
Maybe I ought to change my nickname from Kompottkin to Master Vaporware.
----
*Matthias Benkard, (format-time-string "%Y-%m-%d, %k:%M %Z")*
http://matthias.benkard.de/
; Local Variables:
; mode: muse
; End: