scheme.forth.jl.git
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?

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

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

8 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.

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

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

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

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

8 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.

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

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

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

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

8 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.

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

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

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

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

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

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

8 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.

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

8 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.

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

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

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

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

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

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

8 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.

8 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.

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

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

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

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

8 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.

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

8 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.

8 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.

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

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

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

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

8 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.

8 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.)

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

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

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

8 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.

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

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

8 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.

8 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.

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

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

8 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.

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

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

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

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

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

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

8 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.

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

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

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

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

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

8 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!

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

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

8 years agoeatspaces now eats comments
Tim Vaughan [Thu, 21 Jul 2016 08:29:17 +0000 (20:29 +1200)]
eatspaces now eats comments

8 years agostring->number works.
Tim Vaughan [Thu, 21 Jul 2016 08:29:10 +0000 (20:29 +1200)]
string->number works.

8 years agonumber->string works.
Tim Vaughan [Thu, 21 Jul 2016 08:28:58 +0000 (20:28 +1200)]
number->string works.

8 years agoDebugging number->string
Tim Vaughan [Wed, 20 Jul 2016 18:56:12 +0000 (06:56 +1200)]
Debugging number->string

8 years agoUpdated README and added license.
Tim Vaughan [Tue, 19 Jul 2016 22:09:00 +0000 (10:09 +1200)]
Updated README and added license.

8 years agoAdded some type conversion prims.
Tim Vaughan [Tue, 19 Jul 2016 20:25:45 +0000 (08:25 +1200)]
Added some type conversion prims.

8 years agoAdded predicate primitives.
Tim Vaughan [Tue, 19 Jul 2016 20:14:06 +0000 (08:14 +1200)]
Added predicate primitives.

8 years agoAdded * and - fixnum primitives
Tim Vaughan [Tue, 19 Jul 2016 11:20:38 +0000 (23:20 +1200)]
Added * and - fixnum primitives

8 years agoFixed fixnum detection in parser.
Tim Vaughan [Tue, 19 Jul 2016 10:39:40 +0000 (22:39 +1200)]
Fixed fixnum detection in parser.

8 years agoFirst primitive procedure working!
Tim Vaughan [Tue, 19 Jul 2016 10:27:20 +0000 (22:27 +1200)]
First primitive procedure working!

8 years agoCompleted draft of primitive application.
Tim Vaughan [Tue, 19 Jul 2016 10:07:32 +0000 (22:07 +1200)]
Completed draft of primitive application.

8 years agoAdding first primitive procedure.
Tim Vaughan [Tue, 19 Jul 2016 10:00:37 +0000 (22:00 +1200)]
Adding first primitive procedure.

8 years agoTiny refactor.
Tim Vaughan [Tue, 19 Jul 2016 08:33:23 +0000 (20:33 +1200)]
Tiny refactor.

8 years agoAdded conditionals.
Tim Vaughan [Tue, 19 Jul 2016 08:35:11 +0000 (20:35 +1200)]
Added conditionals.

8 years agodef/set/lookup are working!
Tim Vaughan [Tue, 19 Jul 2016 08:34:54 +0000 (20:34 +1200)]
def/set/lookup are working!

8 years agoDebugging.
Tim Vaughan [Mon, 18 Jul 2016 02:34:37 +0000 (14:34 +1200)]
Debugging.

8 years agoTypos
Tim Vaughan [Mon, 18 Jul 2016 02:18:17 +0000 (14:18 +1200)]
Typos

8 years agoFinished full draft of set/def/lookup support.
Tim Vaughan [Mon, 18 Jul 2016 02:12:11 +0000 (14:12 +1200)]
Finished full draft of set/def/lookup support.

8 years agoFinished core environment definitions.
Tim Vaughan [Mon, 18 Jul 2016 01:36:46 +0000 (13:36 +1200)]
Finished core environment definitions.