fringe
14 years agohaskell: Remove some redundant parenthesis.
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.

14 years agohaskell: Tidy up the parser using proper monadic combinators.
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.

14 years agocl, scheme: Introduce `reduce' functions.
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.

14 years agocruft.el: Some Emacs tweaking.
Mark Wooding [Wed, 18 Nov 2009 16:34:35 +0000 (16:34 +0000)]
cruft.el: Some Emacs tweaking.

Currently indentation rules for Scheme.

14 years agof#: Tidy same_iterators_p a little.
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.

14 years agoMakefile: Remove redundant `.o' suffix from Scheme build stanza.
Mark Wooding [Wed, 18 Nov 2009 13:35:48 +0000 (13:35 +0000)]
Makefile: Remove redundant `.o' suffix from Scheme build stanza.

14 years agoMakefile: Gather statistics and report them.
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.

14 years agof#: Fix Emacs mode header.
Mark Wooding [Wed, 18 Nov 2009 13:31:45 +0000 (13:31 +0000)]
f#: Fix Emacs mode header.

14 years agocl: Tidy up parser slightly.
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.

14 years agocl: Unpleasant hack to fetch program name.
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>

14 years agoscheme: Use `resume' to switch coroutines.
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.

14 years agocl: Dump a core image to improve startup times.
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.

14 years agoMakefile: Print timing information in test output.
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.)

14 years agoInitial version.
Mark Wooding [Tue, 17 Nov 2009 21:51:44 +0000 (21:51 +0000)]
Initial version.