scheme.forth.jl.git
6 years agoAdded expression sequences to macro expander.
Tim Vaughan [Mon, 12 Jun 2017 11:40:12 +0000 (23:40 +1200)]
Added expression sequences to macro expander.

6 years agoAdded define and set! cases to the macro expander.
Tim Vaughan [Mon, 12 Jun 2017 11:33:27 +0000 (23:33 +1200)]
Added define and set! cases to the macro expander.

6 years agoFirst tentative macro expansion working.
Tim Vaughan [Mon, 12 Jun 2017 09:57:51 +0000 (21:57 +1200)]
First tentative macro expansion working.

Tested by adding macro definition of procedural form of define.
Actually works for defining higher order functions too! For free!

6 years agoAdded stubs for macro expansion words.
Tim Vaughan [Mon, 12 Jun 2017 07:25:20 +0000 (19:25 +1200)]
Added stubs for macro expansion words.

6 years agoAdded macro expansion skeleton.
Tim Vaughan [Mon, 12 Jun 2017 07:23:07 +0000 (19:23 +1200)]
Added macro expansion skeleton.

6 years agoDisabled existing macro expansion.
Tim Vaughan [Sun, 11 Jun 2017 10:49:47 +0000 (22:49 +1200)]
Disabled existing macro expansion.

6 years agoImplemented let*
Tim Vaughan [Wed, 31 May 2017 09:39:52 +0000 (21:39 +1200)]
Implemented let*

6 years agoUpdated README.
Tim Vaughan [Mon, 1 May 2017 09:15:43 +0000 (21:15 +1200)]
Updated README.

6 years agoRemoved debug code from MCE.
Tim Vaughan [Mon, 1 May 2017 06:22:50 +0000 (18:22 +1200)]
Removed debug code from MCE.

6 years agoFixed bug in MCE. Now working!
Tim Vaughan [Mon, 1 May 2017 06:19:47 +0000 (18:19 +1200)]
Fixed bug in MCE.  Now working!

6 years agoImproving error reporting.
Tim Vaughan [Mon, 1 May 2017 06:19:24 +0000 (18:19 +1200)]
Improving error reporting.

7 years agoSolved hygiene problem, MCE runs (VERY slowly)
Tim Vaughan [Sat, 29 Apr 2017 02:18:22 +0000 (14:18 +1200)]
Solved hygiene problem, MCE runs (VERY slowly)

7 years agoImproved let macro hygiene.
Tim Vaughan [Fri, 28 Apr 2017 11:08:54 +0000 (23:08 +1200)]
Improved let macro hygiene.

7 years agoIdentified prob with MCE: macro hygiene.
Tim Vaughan [Fri, 28 Apr 2017 10:34:32 +0000 (22:34 +1200)]
Identified prob with MCE: macro hygiene.

7 years agoDebugging MCE.
Tim Vaughan [Sun, 23 Apr 2017 12:26:14 +0000 (00:26 +1200)]
Debugging MCE.

7 years agoForgot to tell GC that ports are now pair-like.
Tim Vaughan [Sun, 23 Apr 2017 11:00:06 +0000 (23:00 +1200)]
Forgot to tell GC that ports are now pair-like.

Impotant, because otherwise their contents aren't marked
by the mark/sweep algorithm and wind up getting clobbered.

7 years agoStarted porting metacircular evaluator from SICP.
Tim Vaughan [Sun, 2 Apr 2017 00:51:18 +0000 (12:51 +1200)]
Started porting metacircular evaluator from SICP.

7 years agoImplemented some port input primitives.
Tim Vaughan [Sun, 12 Mar 2017 04:20:26 +0000 (17:20 +1300)]
Implemented some port input primitives.

7 years agoAdded some port and string primitives.
Tim Vaughan [Wed, 1 Mar 2017 01:58:59 +0000 (14:58 +1300)]
Added some port and string primitives.

7 years agoImproved string parser, added license.
Tim Vaughan [Sun, 26 Feb 2017 01:14:11 +0000 (14:14 +1300)]
Improved string parser, added license.

Previous string parser used recursion to make it easy to cons
up the character list.  Unfortunately this led to stack overflows
for longer strings (such as the license agreement!).  It is now
replaced with a loop and calls to set-cdr!.

7 years agoPrimitive ratnum operations implemented.
Tim Vaughan [Tue, 20 Dec 2016 07:05:56 +0000 (20:05 +1300)]
Primitive ratnum operations implemented.

7 years agoImplemented fix:gcd.
Tim Vaughan [Mon, 19 Dec 2016 18:50:27 +0000 (07:50 +1300)]
Implemented fix:gcd.

7 years agoCan now make it through first chapter of SICP.
Tim Vaughan [Fri, 16 Dec 2016 11:20:42 +0000 (00:20 +1300)]
Can now make it through first chapter of SICP.

7 years agoAdded hacky fixnum division op.
Tim Vaughan [Fri, 16 Dec 2016 11:07:56 +0000 (00:07 +1300)]
Added hacky fixnum division op.

Now we can get through at least the first few pages of SICP.

7 years agoFleshing out numerical library.
Tim Vaughan [Fri, 16 Dec 2016 10:53:28 +0000 (23:53 +1300)]
Fleshing out numerical library.

7 years agoCompleted flonum primitives.
Tim Vaughan [Fri, 16 Dec 2016 09:12:44 +0000 (22:12 +1300)]
Completed flonum primitives.

7 years agoAdded most flonum primitives.
Tim Vaughan [Sun, 11 Dec 2016 10:45:05 +0000 (23:45 +1300)]
Added most flonum primitives.

7 years agoflonum parsing works
Tim Vaughan [Sun, 11 Dec 2016 09:21:19 +0000 (22:21 +1300)]
flonum parsing works

some rounding errors remain, probably to do with printing.

7 years agoAdded floating point printing words.
Tim Vaughan [Sun, 11 Dec 2016 01:52:08 +0000 (14:52 +1300)]
Added floating point printing words.

7 years agoAdded NOT and fixed PROCEDURE?
Tim Vaughan [Sat, 3 Dec 2016 00:52:58 +0000 (13:52 +1300)]
Added NOT and fixed PROCEDURE?

7 years agoAdded draft readflonum.
Tim Vaughan [Mon, 14 Nov 2016 01:32:46 +0000 (14:32 +1300)]
Added draft readflonum.

7 years agoAdded some more float words.
Tim Vaughan [Sun, 13 Nov 2016 10:45:11 +0000 (23:45 +1300)]
Added some more float words.

7 years agoRedefined numeric procs in terms of fixnum prims.
Tim Vaughan [Sun, 13 Nov 2016 01:40:03 +0000 (14:40 +1300)]
Redefined numeric procs in terms of fixnum prims.

7 years agoMoved source to src directory.
Tim Vaughan [Mon, 7 Nov 2016 09:53:54 +0000 (22:53 +1300)]
Moved source to src directory.

7 years agoUpdated README.
Tim Vaughan [Mon, 7 Nov 2016 09:50:20 +0000 (22:50 +1300)]
Updated README.

7 years agoAdded (length)
Tim Vaughan [Sun, 6 Nov 2016 08:53:01 +0000 (21:53 +1300)]
Added (length)

7 years agoFixed AND and OR implementations
Tim Vaughan [Sun, 6 Nov 2016 08:41:33 +0000 (21:41 +1300)]
Fixed AND and OR implementations

7 years agoImplemented and and or as macros.
Tim Vaughan [Sun, 6 Nov 2016 05:06:06 +0000 (18:06 +1300)]
Implemented and and or as macros.

7 years agoImplemented cond as macro.
Tim Vaughan [Sun, 6 Nov 2016 03:53:35 +0000 (16:53 +1300)]
Implemented cond as macro.

7 years agoWhile form now uses let.
Tim Vaughan [Sun, 6 Nov 2016 00:27:32 +0000 (13:27 +1300)]
While form now uses let.

7 years agoImplemented let as macro.
Tim Vaughan [Sun, 6 Nov 2016 00:12:59 +0000 (13:12 +1300)]
Implemented let as macro.

7 years agoQuasiquote fix.
Tim Vaughan [Sat, 5 Nov 2016 22:01:34 +0000 (11:01 +1300)]
Quasiquote fix.

7 years agoFixed if form when no alternative.
Tim Vaughan [Sat, 5 Nov 2016 21:09:57 +0000 (10:09 +1300)]
Fixed if form when no alternative.

7 years agoImplemented unquote-splicing
Tim Vaughan [Sat, 5 Nov 2016 08:30:29 +0000 (21:30 +1300)]
Implemented unquote-splicing

7 years agoquasiquote and unquote working.
Tim Vaughan [Sat, 5 Nov 2016 05:50:07 +0000 (18:50 +1300)]
quasiquote and unquote working.

7 years agoUpdated readme.
Tim Vaughan [Sat, 5 Nov 2016 01:08:38 +0000 (14:08 +1300)]
Updated readme.

7 years agoWorking on quasiquote.
Tim Vaughan [Sat, 5 Nov 2016 01:05:17 +0000 (14:05 +1300)]
Working on quasiquote.

7 years agoAdded (error)
Tim Vaughan [Fri, 4 Nov 2016 23:51:46 +0000 (12:51 +1300)]
Added (error)

7 years agoFixed bug in (display)
Tim Vaughan [Fri, 4 Nov 2016 23:51:44 +0000 (12:51 +1300)]
Fixed bug in (display)

7 years agoAdded forth-level exception handling to repl.
Tim Vaughan [Fri, 4 Nov 2016 23:51:34 +0000 (12:51 +1300)]
Added forth-level exception handling to repl.

7 years agoAdded exception handling words.
Tim Vaughan [Thu, 3 Nov 2016 19:51:09 +0000 (08:51 +1300)]
Added exception handling words.

7 years agoImplemented read-level portion of quasiquote forms.
Tim Vaughan [Tue, 1 Nov 2016 08:56:22 +0000 (21:56 +1300)]
Implemented read-level portion of quasiquote forms.

7 years agoUpdated README.
Tim Vaughan [Tue, 1 Nov 2016 08:46:46 +0000 (21:46 +1300)]
Updated README.

7 years agoVery basic macros working.
Tim Vaughan [Tue, 1 Nov 2016 08:44:18 +0000 (21:44 +1300)]
Very basic macros working.

7 years agoImplemented (reverse list).
Tim Vaughan [Tue, 1 Nov 2016 08:38:20 +0000 (21:38 +1300)]
Implemented (reverse list).

7 years agoSimplified iterative define expansion.
Tim Vaughan [Tue, 1 Nov 2016 08:35:16 +0000 (21:35 +1300)]
Simplified iterative define expansion.

7 years agoAllowed recursive define expansion.
Tim Vaughan [Tue, 1 Nov 2016 07:55:03 +0000 (20:55 +1300)]
Allowed recursive define expansion.

7 years agoSimplified apply.
Tim Vaughan [Tue, 1 Nov 2016 07:54:36 +0000 (20:54 +1300)]
Simplified apply.

7 years agoApply now linked to procedure instead of symbol.
Tim Vaughan [Tue, 1 Nov 2016 07:54:24 +0000 (20:54 +1300)]
Apply now linked to procedure instead of symbol.

7 years agoAdded apply primitive and used it to implement append.
Tim Vaughan [Mon, 31 Oct 2016 11:59:32 +0000 (00:59 +1300)]
Added apply primitive and used it to implement append.

7 years agoAdded display primitives.
Tim Vaughan [Mon, 31 Oct 2016 10:50:23 +0000 (23:50 +1300)]
Added display primitives.

7 years agoAdded testing code back in.
Tim Vaughan [Mon, 31 Oct 2016 02:05:58 +0000 (15:05 +1300)]
Added testing code back in.

7 years agoNutting out macro issues.
Tim Vaughan [Sun, 30 Oct 2016 03:37:16 +0000 (16:37 +1300)]
Nutting out macro issues.

7 years agoFinished draft macro implementation
Tim Vaughan [Sun, 30 Oct 2016 01:12:00 +0000 (14:12 +1300)]
Finished draft macro implementation

7 years agoAdded lookup-macro and make-macro.
Tim Vaughan [Thu, 27 Oct 2016 21:25:21 +0000 (10:25 +1300)]
Added lookup-macro and make-macro.

7 years agoImplementing macros.
Tim Vaughan [Thu, 27 Oct 2016 12:59:20 +0000 (01:59 +1300)]
Implementing macros.

7 years agoAdded support for variadic compound procedures.
Tim Vaughan [Sat, 29 Oct 2016 02:09:05 +0000 (15:09 +1300)]
Added support for variadic compound procedures.

7 years agoImplemented begin. Added none object for empty returns.
Tim Vaughan [Thu, 27 Oct 2016 04:07:15 +0000 (17:07 +1300)]
Implemented begin. Added none object for empty returns.

7 years agoFixed stack hygiene bug.
Tim Vaughan [Thu, 27 Oct 2016 03:46:09 +0000 (16:46 +1300)]
Fixed stack hygiene bug.

7 years agoRefactor to allow begin.
Tim Vaughan [Thu, 27 Oct 2016 03:37:19 +0000 (16:37 +1300)]
Refactor to allow begin.

7 years agoUpdated README.
Tim Vaughan [Tue, 25 Oct 2016 04:06:08 +0000 (17:06 +1300)]
Updated README.

7 years agoAdded load primitive.
Tim Vaughan [Tue, 25 Oct 2016 04:03:54 +0000 (17:03 +1300)]
Added load primitive.

7 years agoLoad now returns result of last expression.
Tim Vaughan [Tue, 25 Oct 2016 03:57:32 +0000 (16:57 +1300)]
Load now returns result of last expression.

7 years agoImplemented load word. (Now just need scheme prim.)
Tim Vaughan [Tue, 25 Oct 2016 03:46:06 +0000 (16:46 +1300)]
Implemented load word.  (Now just need scheme prim.)

7 years agoUpdated README.
Tim Vaughan [Tue, 25 Oct 2016 00:27:08 +0000 (13:27 +1300)]
Updated README.

7 years agoMark-sweep garbage collection working.
Tim Vaughan [Tue, 25 Oct 2016 00:07:53 +0000 (13:07 +1300)]
Mark-sweep garbage collection working.

7 years agoPrimitives are now GC-safe.
Tim Vaughan [Mon, 24 Oct 2016 23:16:52 +0000 (12:16 +1300)]
Primitives are now GC-safe.

7 years agoGC working when invoked between evaluations.
Tim Vaughan [Mon, 24 Oct 2016 03:40:52 +0000 (16:40 +1300)]
GC working when invoked between evaluations.

Now need to deal with root objects on the parameter stack.

7 years agoDebugging GC.
Tim Vaughan [Sun, 23 Oct 2016 03:16:36 +0000 (16:16 +1300)]
Debugging GC.

7 years agoAdded OOM check.
Tim Vaughan [Sun, 23 Oct 2016 03:06:38 +0000 (16:06 +1300)]
Added OOM check.

7 years agoMarked compound procedure type as pairlike.
Tim Vaughan [Sun, 23 Oct 2016 02:52:34 +0000 (15:52 +1300)]
Marked compound procedure type as pairlike.

7 years agoImplemented scaffolding for mark+sweep GC.
Tim Vaughan [Sun, 23 Oct 2016 02:48:43 +0000 (15:48 +1300)]
Implemented scaffolding for mark+sweep GC.

7 years agoWorking on GC.
Tim Vaughan [Sat, 22 Oct 2016 03:43:54 +0000 (16:43 +1300)]
Working on GC.

7 years agoFixed broken realnum? procedure.
Tim Vaughan [Wed, 12 Oct 2016 10:20:57 +0000 (23:20 +1300)]
Fixed broken realnum? procedure.

7 years agoCan now read and print reals.
Tim Vaughan [Sat, 13 Aug 2016 11:42:25 +0000 (23:42 +1200)]
Can now read and print reals.

7 years agoWorking on FP arithmetic.
Tim Vaughan [Sat, 30 Jul 2016 11:55:57 +0000 (23:55 +1200)]
Working on FP arithmetic.

7 years agoWorking on exception handling.
Tim Vaughan [Mon, 25 Jul 2016 11:06:24 +0000 (23:06 +1200)]
Working on exception handling.

7 years agoFixed TCO bug.
Tim Vaughan [Mon, 25 Jul 2016 11:04:23 +0000 (23:04 +1200)]
Fixed TCO bug.

7 years agoFixed bug in apply.
Tim Vaughan [Fri, 22 Jul 2016 09:15:19 +0000 (21:15 +1200)]
Fixed bug in apply.

7 years agoAdded tail-call optimization.
Tim Vaughan [Fri, 22 Jul 2016 08:24:41 +0000 (20:24 +1200)]
Added tail-call optimization.

7 years agoImplemented compound procedure application.
Tim Vaughan [Fri, 22 Jul 2016 08:24:39 +0000 (20:24 +1200)]
Implemented compound procedure application.

7 years agoAdded define syntax for procedure generation.
Tim Vaughan [Fri, 22 Jul 2016 08:24:35 +0000 (20:24 +1200)]
Added define syntax for procedure generation.

7 years agoImplemented lambda (and λ)!
Tim Vaughan [Fri, 22 Jul 2016 08:24:28 +0000 (20:24 +1200)]
Implemented lambda (and λ)!

7 years agoFactored out application into apply.
Tim Vaughan [Fri, 22 Jul 2016 08:24:23 +0000 (20:24 +1200)]
Factored out application into apply.

7 years agoWorking on compound procedures.
Tim Vaughan [Fri, 22 Jul 2016 08:24:00 +0000 (20:24 +1200)]
Working on compound procedures.

7 years agoPrimitive fixnum relations working.
Tim Vaughan [Thu, 21 Jul 2016 10:05:12 +0000 (22:05 +1200)]
Primitive fixnum relations working.

7 years agoImplemented fixnum =.
Tim Vaughan [Thu, 21 Jul 2016 09:46:25 +0000 (21:46 +1200)]
Implemented fixnum =.

7 years agoFixed cons, set-car! and set-cdr!
Tim Vaughan [Thu, 21 Jul 2016 08:52:17 +0000 (20:52 +1200)]
Fixed cons, set-car! and set-cdr!

7 years agoAdding pair/list primitives.
Tim Vaughan [Thu, 21 Jul 2016 08:29:26 +0000 (20:29 +1200)]
Adding pair/list primitives.

7 years agoAdded more primitives.
Tim Vaughan [Thu, 21 Jul 2016 08:29:22 +0000 (20:29 +1200)]
Added more primitives.