chiark / gitweb /
fringe
11 years agogo-fringe.go: Remove all of the `;' statement terminators. master
Mark Wooding [Sat, 6 Apr 2013 17:22:11 +0000 (18:22 +0100)]
go-fringe.go: Remove all of the `;' statement terminators.

11 years agof#-fringe.fs: Return to a simple mode line, but with the correct mode.
Mark Wooding [Wed, 3 Apr 2013 08:53:48 +0000 (09:53 +0100)]
f#-fringe.fs: Return to a simple mode line, but with the correct mode.

My Emacs configuration now knows not to use tabs in F# files.  But you
don't want to say `-*-MUMBLE-mode-*-'...

11 years agoMakefile: Apparently Algol 68 Genie now has a compiler. Let's use it.
Mark Wooding [Mon, 1 Apr 2013 15:25:51 +0000 (16:25 +0100)]
Makefile: Apparently Algol 68 Genie now has a compiler.  Let's use it.

I don't know how to get it to write its output to a particular place so
let it do its thing and then move it where we want it.

11 years agoalgol68-fringe.a68: Fix stupid typo in a comment.
Mark Wooding [Mon, 1 Apr 2013 15:25:51 +0000 (16:25 +0100)]
algol68-fringe.a68: Fix stupid typo in a comment.

11 years ago.gitignore: Ignore CLisp droppings.
Mark Wooding [Mon, 1 Apr 2013 15:25:51 +0000 (16:25 +0100)]
.gitignore: Ignore CLisp droppings.

11 years agocl-fringe.lisp: Fix the `cl-launch' machinery.
Mark Wooding [Mon, 1 Apr 2013 15:25:51 +0000 (16:25 +0100)]
cl-fringe.lisp: Fix the `cl-launch' machinery.

Now it's a proper citizen.

11 years agosbcl-build: Improve error handling and generally tidy up.
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.

11 years agoicon-fringe.icn: Give record types a capital letter.
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).

11 years agoicon-fringe.icn: Rearrange some of the code a little.
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.

11 years agoMakefile, sbcl-build: Refresh the Common Lisp build system.
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).

11 years agohaskell-fringe.hs: The libraries have moved around a lot.
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.

11 years agogo-fringe.go: Language change: `closed' function on channels has gone.
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.

11 years agoMakefile: The `Go' build system has been turned upside-down.
Mark Wooding [Mon, 1 Apr 2013 15:20:49 +0000 (16:20 +0100)]
Makefile: The `Go' build system has been turned upside-down.

11 years agoalgol68-fringe.a68: Empty row displays are apparently not allowed.
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.

11 years agoalgol68-fringe.a68: Change the Emacs mode hint.
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.

11 years agoMakefile: The F# compiler has changed its name.
Mark Wooding [Mon, 1 Apr 2013 15:23:13 +0000 (16:23 +0100)]
Makefile: The F# compiler has changed its name.

11 years agoVarious files: Whitespace fixes.
Mark Wooding [Mon, 1 Apr 2013 15:25:51 +0000 (16:25 +0100)]
Various files: Whitespace fixes.

11 years agof#-fringe.fs: The F# compiler really doesn't like tabs.
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.

13 years agoNew language: Dylan.
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.

13 years agocl-fringe.lisp: Gratuitously allow :START and :END keyword arguments.
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.

13 years agoalgol68-fringe: New language.
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.

13 years agoforth: Implement some simple structure-defining words and use them.
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.

13 years agoerlang: Rename language from `erl'.
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.

13 years agoforth: New language.
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.

13 years agoNew language: Erlang.
Mark Wooding [Sun, 20 Jun 2010 12:02:59 +0000 (13:02 +0100)]
New language: Erlang.

13 years agoMakefile: Tweak various compiler options for quieter builds.
Mark Wooding [Sun, 20 Jun 2010 12:02:30 +0000 (13:02 +0100)]
Makefile: Tweak various compiler options for quieter builds.

13 years agoMakefile: Silent-rules stuff.
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.

13 years agocl-fringe.lisp: Abstract out the startup stuff.
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.

13 years ago.gitignore: Don't worry about FASL files.
Mark Wooding [Sat, 19 Jun 2010 20:01:12 +0000 (21:01 +0100)]
.gitignore: Don't worry about FASL files.

13 years agoscheme-fringe.scm: Don't need to import `syntax-case' any more.
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.

14 years agohaskell: Trivial reformatting.
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.

14 years agogo: New language.
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.

14 years agosmalltalk: Abstract out the common iteration protocol into a superclass.
Mark Wooding [Sun, 29 Nov 2009 23:26:41 +0000 (23:26 +0000)]
smalltalk: Abstract out the common iteration protocol into a superclass.

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.