scheme.forth.jl.git
6 years agoDebugging GC issue.
Tim Vaughan [Thu, 28 Sep 2017 22:52:57 +0000 (00:52 +0200)]
Debugging GC issue.

6 years agoUpdated README.
Tim Vaughan [Thu, 10 Aug 2017 20:49:09 +0000 (22:49 +0200)]
Updated README.

6 years agoFactored apply out of application-executor
Tim Vaughan [Tue, 4 Jul 2017 12:52:32 +0000 (22:52 +1000)]
Factored apply out of application-executor

6 years agoAnalyzed macros working.
Tim Vaughan [Sun, 2 Jul 2017 13:00:08 +0000 (01:00 +1200)]
Analyzed macros working.

6 years agoReplaced old eval with "expand analyze evaluate-eproc"
Tim Vaughan [Tue, 27 Jun 2017 20:47:49 +0000 (08:47 +1200)]
Replaced old eval with "expand analyze evaluate-eproc"

Compound procedures still not working.

6 years agoMerged macro quasiquote into analyze.
Tim Vaughan [Tue, 27 Jun 2017 20:19:37 +0000 (08:19 +1200)]
Merged macro quasiquote into analyze.

6 years agoLibrary functioning using new quasiquote.
Tim Vaughan [Sun, 25 Jun 2017 21:08:59 +0000 (09:08 +1200)]
Library functioning using new quasiquote.

New macro quasiquote is much slower than previous primitive
implementation, but more elegant.  Syntactic analysis should
mitigate some of this problem.  Currently shares limitation
of primitive implementation in that quasiquotations can't be
reliably nested.

6 years agoQuasiquote/unquote/unquote-splicing macro working
Tim Vaughan [Sat, 24 Jun 2017 10:16:32 +0000 (22:16 +1200)]
Quasiquote/unquote/unquote-splicing macro working

6 years agoquasiquote/unquote implemented
Tim Vaughan [Sat, 24 Jun 2017 03:41:09 +0000 (15:41 +1200)]
quasiquote/unquote implemented

(no unquote-splicing yet)

6 years agoRemoved quasiquote code.
Tim Vaughan [Fri, 23 Jun 2017 01:29:08 +0000 (13:29 +1200)]
Removed quasiquote code.

6 years agoPrimitive procedure evaluation working.
Tim Vaughan [Wed, 21 Jun 2017 03:14:53 +0000 (15:14 +1200)]
Primitive procedure evaluation working.

6 years agoDraft implementation of application analysis.
Tim Vaughan [Wed, 21 Jun 2017 02:42:08 +0000 (14:42 +1200)]
Draft implementation of application analysis.

6 years agoBuggy implementation of analyze-lambda.
Tim Vaughan [Wed, 21 Jun 2017 00:38:51 +0000 (12:38 +1200)]
Buggy implementation of analyze-lambda.

6 years agoIF analysis working.
Tim Vaughan [Tue, 20 Jun 2017 23:48:07 +0000 (11:48 +1200)]
IF analysis working.

6 years agoWorking on analyzer.
Tim Vaughan [Tue, 20 Jun 2017 22:59:02 +0000 (10:59 +1200)]
Working on analyzer.

6 years agoReplaced header in library file.
Tim Vaughan [Mon, 19 Jun 2017 10:42:03 +0000 (22:42 +1200)]
Replaced header in library file.

6 years agoImproved error system.
Tim Vaughan [Mon, 19 Jun 2017 10:35:28 +0000 (22:35 +1200)]
Improved error system.

6 years agoUpdated readme.
Tim Vaughan [Mon, 19 Jun 2017 10:27:16 +0000 (22:27 +1200)]
Updated readme.

6 years agoMacro expansion working properly.
Tim Vaughan [Mon, 19 Jun 2017 09:32:43 +0000 (21:32 +1200)]
Macro expansion working properly.

begin is now a library form too.

6 years agoFull draft of macro expander in place.
Tim Vaughan [Tue, 13 Jun 2017 12:14:20 +0000 (00:14 +1200)]
Full draft of macro expander in place.

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.