chiark / gitweb /
summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Mark Wooding [Mon, 1 Apr 2013 15:25:51 +0000 (16:25 +0100)]
sbcl-build: Improve error handling and generally tidy up.
In particular, the polyglot rune is now a bit less awful, and we have
pleasant error messages rather than vast stack traces of doom.
Mark Wooding [Mon, 1 Apr 2013 15:30:55 +0000 (16:30 +0100)]
icon-fringe.icn: Give record types a capital letter.
Reduces ambiguity (there was already a collision).
Mark Wooding [Mon, 1 Apr 2013 15:30:21 +0000 (16:30 +0100)]
icon-fringe.icn: Rearrange some of the code a little.
It's just a little prettier this way.
Mark Wooding [Mon, 1 Apr 2013 15:27:21 +0000 (16:27 +0100)]
Makefile, sbcl-build: Refresh the Common Lisp build system.
Apparently SBCL won't just run its FASL files any more. But there's a
gadget for bundling FASLs together now, so use that. Unfortunately it's
a bit complicated, so turn the whole build system into a script (in
Lisp, natch).
Mark Wooding [Mon, 1 Apr 2013 15:22:45 +0000 (16:22 +0100)]
haskell-fringe.hs: The libraries have moved around a lot.
Find them all again.
Mark Wooding [Mon, 1 Apr 2013 15:22:03 +0000 (16:22 +0100)]
go-fringe.go: Language change: `closed' function on channels has gone.
Replaced by a two-valued `<-' read operator, which does exactly what we
want.
Mark Wooding [Mon, 1 Apr 2013 15:20:49 +0000 (16:20 +0100)]
Makefile: The `Go' build system has been turned upside-down.
Mark Wooding [Mon, 1 Apr 2013 15:25:29 +0000 (16:25 +0100)]
algol68-fringe.a68: Empty row displays are apparently not allowed.
So supply a useless thing.
Mark Wooding [Mon, 1 Apr 2013 15:24:50 +0000 (16:24 +0100)]
algol68-fringe.a68: Change the Emacs mode hint.
I must have looked for the Algol 68 mode under a different rock.
Mark Wooding [Mon, 1 Apr 2013 15:23:13 +0000 (16:23 +0100)]
Makefile: The F# compiler has changed its name.
Mark Wooding [Mon, 1 Apr 2013 15:25:51 +0000 (16:25 +0100)]
Various files: Whitespace fixes.
Mark Wooding [Mon, 1 Apr 2013 15:25:51 +0000 (16:25 +0100)]
f#-fringe.fs: The F# compiler really doesn't like tabs.
So let's make sure we never introduce any.
Mark Wooding [Thu, 30 Dec 2010 12:33:12 +0000 (12:33 +0000)]
New language: Dylan.
I'm using Gwydion Dylan (from CMU); I don't know how much weirder
OpenDylan is, but the Dylan hackers are trying to converge the two.
Dylan is annoying for small projects because we need /three/ source
files. Oh, well.
Mark Wooding [Thu, 30 Dec 2010 12:29:51 +0000 (12:29 +0000)]
cl-fringe.lisp: Gratuitously allow :START and :END keyword arguments.
Just to illustrate the way Lisp sequence functions tend to work.
Mark Wooding [Sun, 5 Dec 2010 13:52:43 +0000 (13:52 +0000)]
algol68-fringe: New language.
Well, not that new. But it's a language which wasn't represented here
before. I'm using the Algol 68 Genie implementation, which works as a
dynamic-ish runtime. Astonishingly, it can call execve(2) but not
exit(3), so there's an appalling hack. Sorry.
Mark Wooding [Mon, 5 Jul 2010 23:38:02 +0000 (00:38 +0100)]
forth: Implement some simple structure-defining words and use them.
Alleviates the tedium slightly. Also demonstrates `does>', which is
appropriately scary.
Mark Wooding [Mon, 5 Jul 2010 22:23:43 +0000 (23:23 +0100)]
erlang: Rename language from `erl'.
No idea why I named it like that in the first place.
Mark Wooding [Mon, 5 Jul 2010 21:56:11 +0000 (22:56 +0100)]
forth: New language.
Very unpleasant coroutine hacking.
I had a neat word for parsing the basename out of argv[0], but Gforth
doesn't actually let you get at the image name, so it just said `gforth'
which isn't very helpful, really.
Mark Wooding [Sun, 20 Jun 2010 12:02:59 +0000 (13:02 +0100)]
New language: Erlang.
Mark Wooding [Sun, 20 Jun 2010 12:02:30 +0000 (13:02 +0100)]
Makefile: Tweak various compiler options for quieter builds.
Mark Wooding [Sat, 19 Jun 2010 20:05:01 +0000 (21:05 +0100)]
Makefile: Silent-rules stuff.
Not completely successful, because some of the build machinery underneath
is still somewhat noisy. Oh, well.
Mark Wooding [Sat, 19 Jun 2010 20:04:27 +0000 (21:04 +0100)]
cl-fringe.lisp: Abstract out the startup stuff.
Less is `cl-launch' specific. There's some support for ECL and SBCL
native startup stuff. Indeed, this seems to work better than `cl-launch'
does, so we'll stick with it.
Mark Wooding [Sat, 19 Jun 2010 20:01:12 +0000 (21:01 +0100)]
.gitignore: Don't worry about FASL files.
Mark Wooding [Sat, 19 Jun 2010 20:00:27 +0000 (21:00 +0100)]
scheme-fringe.scm: Don't need to import `syntax-case' any more.
Seems that it doesn't work if you try.
Mark Wooding [Mon, 30 Nov 2009 09:20:49 +0000 (09:20 +0000)]
haskell: Trivial reformatting.
Oh, and notice that we don't need flexible instances any more.
Mark Wooding [Mon, 30 Nov 2009 09:20:06 +0000 (09:20 +0000)]
go: New language.
Do iteration with goroutines and channels. It's much prettier than
doing it with closures.
Mark Wooding [Sun, 29 Nov 2009 23:26:41 +0000 (23:26 +0000)]
smalltalk: Abstract out the common iteration protocol into a superclass.
Mark Wooding [Sun, 29 Nov 2009 23:26:16 +0000 (23:26 +0000)]
haskell: Remove some redundant parenthesis.
Actually this changes the semantics of the program slightly: Node becomes
a (curried) 3-ary constructor rather than a unary constructor accepting
a tuple. This is all to the good.
Mark Wooding [Wed, 18 Nov 2009 16:38:06 +0000 (16:38 +0000)]
haskell: Tidy up the parser using proper monadic combinators.
Hope this isn't too complicated.
Mark Wooding [Wed, 18 Nov 2009 16:35:54 +0000 (16:35 +0000)]
cl, scheme: Introduce `reduce' functions.
These illustrate higher-order functions fairly nicely. Note that
the CL version is explicitly iterative with side-effects because of
the lack of reliable tail-recursion.
Mark Wooding [Wed, 18 Nov 2009 16:34:35 +0000 (16:34 +0000)]
cruft.el: Some Emacs tweaking.
Currently indentation rules for Scheme.
Mark Wooding [Wed, 18 Nov 2009 13:41:23 +0000 (13:41 +0000)]
f#: Tidy same_iterators_p a little.
Use Option.isNone rather than a multiline pattern match, and use a
pattern guard to reduce failure cases.
Mark Wooding [Wed, 18 Nov 2009 13:35:48 +0000 (13:35 +0000)]
Makefile: Remove redundant `.o' suffix from Scheme build stanza.
Mark Wooding [Wed, 18 Nov 2009 13:32:22 +0000 (13:32 +0000)]
Makefile: Gather statistics and report them.
For now, just the lengths of the source files. Maybe we can think of
more interesting things to measure later.
Mark Wooding [Wed, 18 Nov 2009 13:31:45 +0000 (13:31 +0000)]
f#: Fix Emacs mode header.
Mark Wooding [Wed, 18 Nov 2009 13:28:06 +0000 (13:28 +0000)]
cl: Tidy up parser slightly.
Most of the other implementations don't have separate cases for end-of-
input and not-open-paren; so don't penalize Lisp because I decided to
make the parser more extendable.
Mark Wooding [Wed, 18 Nov 2009 13:27:02 +0000 (13:27 +0000)]
cl: Unpleasant hack to fetch program name.
It seems that `cl-launch' doesn't set CL_LAUNCH_FILE when doing `-X',
which is rather inconvenient. Stuff using `mdw.sys-base' wins because
(massive cheat) ASDF systems are loaded before the program name is
stripped off the front of the argument list; we don't get that luxury
here. So `*load-pathname*' will have to do; take `pathname-name' to
strip away the unpleasant realities of FASL-caching.
Of course, if we're dumping images then CL_LAUNCH_FILE is set properly.
<sigh>
Mark Wooding [Wed, 18 Nov 2009 11:42:17 +0000 (11:42 +0000)]
scheme: Use `resume' to switch coroutines.
The name `switch' was taken by Chicken as an undocumented `case'-like
control structure. Grumble.
Mark Wooding [Tue, 17 Nov 2009 23:33:52 +0000 (23:33 +0000)]
cl: Dump a core image to improve startup times.
This is cheating: the core image is massive because SBCL doesn't tree-
shake.
Mark Wooding [Tue, 17 Nov 2009 23:28:27 +0000 (23:28 +0000)]
Makefile: Print timing information in test output.
For some reason, C makes a very poor showing in the timings. I'd love
to know why. (Guess at `malloc' being a bottleneck.)
Mark Wooding [Tue, 17 Nov 2009 21:51:44 +0000 (21:51 +0000)]
Initial version.