jackhill/mal.git
7 years agoBasic: reduce variables. Fix func printing.
Joel Martin [Fri, 4 Nov 2016 05:07:09 +0000 (00:07 -0500)]
Basic: reduce variables. Fix func printing.

- Save over 450 bytes. Bump up Z values by 128.
- Fix function printing when function is embedded in something else by
  using strings storage as a stack while printing rather than using
  RR$
- Simplify some error messages and sanity checks in RELEASE.

7 years agoBasic: add string memory mgt. Fix eval, symbol fns
Joel Martin [Fri, 4 Nov 2016 04:27:42 +0000 (23:27 -0500)]
Basic: add string memory mgt. Fix eval, symbol fns

7 years agoBasic: more memory savings
Joel Martin [Thu, 3 Nov 2016 04:36:44 +0000 (23:36 -0500)]
Basic: more memory savings

- Do the pop of CALL return value at the end of the subroutine
  (callee) rather than at the call point (caller)
- shorten some character variables (CH$->C$, CH->C)
- remove spaces after OPEN, GET
- print REPL header directly in BASIC code

Together saves 404 bytes of memory.

7 years agoBasic: more aggressive space removal
Joel Martin [Thu, 3 Nov 2016 03:19:51 +0000 (22:19 -0500)]
Basic: more aggressive space removal

Saves over 1200 bytes so that Z% value space can be bumped up by 256
entries.

7 years agoAda, C: fix step3 error handling.
Joel Martin [Tue, 1 Nov 2016 15:44:49 +0000 (10:44 -0500)]
Ada, C: fix step3 error handling.

New step3 tests were added during basic implementation that broke Ada
and C.

7 years agoBasic: capitalize BASIC
Joel Martin [Mon, 31 Oct 2016 22:50:13 +0000 (17:50 -0500)]
Basic: capitalize BASIC

I guess.

7 years agoBasic: update to 61 impls after merge.
Joel Martin [Mon, 31 Oct 2016 22:45:00 +0000 (17:45 -0500)]
Basic: update to 61 impls after merge.

7 years agoMerge branch 'master' of github.com:kanaka/mal
Joel Martin [Mon, 31 Oct 2016 22:41:58 +0000 (17:41 -0500)]
Merge branch 'master' of github.com:kanaka/mal

7 years agoMerge branch 'basic'
Joel Martin [Mon, 31 Oct 2016 22:40:29 +0000 (17:40 -0500)]
Merge branch 'basic'

7 years agoBasic: update the README.
Joel Martin [Mon, 31 Oct 2016 22:38:28 +0000 (17:38 -0500)]
Basic: update the README.

7 years agoMerge pull request #247 from chr15m/php-interop-extended
Joel Martin [Mon, 31 Oct 2016 15:20:04 +0000 (10:20 -0500)]
Merge pull request #247 from chr15m/php-interop-extended

Php interop extended

7 years agoBasic: add QBasic support.
Joel Martin [Mon, 31 Oct 2016 00:15:24 +0000 (19:15 -0500)]
Basic: add QBasic support.

make MODE=qbasic stepA_mal.bas
qb64 stepA_mal.bas

7 years agoAdded interop notes to README.
Chris McCormick [Sat, 29 Oct 2016 04:32:26 +0000 (12:32 +0800)]
Added interop notes to README.

7 years agoMerge branch 'master' into php-interop-extended
Chris McCormick [Sat, 29 Oct 2016 04:29:33 +0000 (12:29 +0800)]
Merge branch 'master' into php-interop-extended

7 years agoTests for new PHP interop functions.
Chris McCormick [Sat, 29 Oct 2016 04:24:00 +0000 (12:24 +0800)]
Tests for new PHP interop functions.

7 years agoTighter PHP interop using '$' and '!' fns.
Chris McCormick [Sun, 16 Oct 2016 11:14:53 +0000 (19:14 +0800)]
Tighter PHP interop using '$' and '!' fns.
($ _SERVER) returns a mal hash-map holding the contents of the $_SERVER superglobal from PHP.
(! file_get_contents "https://github.com") returns a string containing the github homepage.
file_get_contents is a native PHP function.

7 years agoAllow printing of more PHP types.
Chris McCormick [Sun, 16 Oct 2016 11:12:11 +0000 (19:12 +0800)]
Allow printing of more PHP types.
In case return type from interop is a complex native PHP type.

7 years agoNew functions for converting between PHP and mal types.
Chris McCormick [Sun, 16 Oct 2016 11:11:30 +0000 (19:11 +0800)]
New functions for converting between PHP and mal types.

7 years agoBasic: enable Travis testing.
Joel Martin [Sat, 29 Oct 2016 03:05:30 +0000 (22:05 -0500)]
Basic: enable Travis testing.

7 years agoBasic: pass required tests. Printer fix.
Joel Martin [Sat, 29 Oct 2016 03:02:59 +0000 (22:02 -0500)]
Basic: pass required tests. Printer fix.

Also, move dissoc and hashmap equality tests to optional/soft since
they aren't actually needed for self-hosting.

7 years agoBasic: add Dockerfile
Joel Martin [Sat, 29 Oct 2016 02:57:35 +0000 (21:57 -0500)]
Basic: add Dockerfile

- installs patch cbmbasic

7 years agoBasic: d64 disk image build rules.
Joel Martin [Sat, 29 Oct 2016 02:49:29 +0000 (21:49 -0500)]
Basic: d64 disk image build rules.

- Include .args.mal file and core.mal into the image.

7 years agoMerge pull request #246 from def-/master
Joel Martin [Fri, 28 Oct 2016 15:21:09 +0000 (10:21 -0500)]
Merge pull request #246 from def-/master

Update Nim to 0.15.2, clean up compiler warnings

7 years agoUpdate Nim to 0.15.2, clean up compiler warnings
Dennis Felsing [Fri, 28 Oct 2016 10:02:21 +0000 (12:02 +0200)]
Update Nim to 0.15.2, clean up compiler warnings

7 years agoMerge pull request #245 from dubek/vimscript-use-vim8
Joel Martin [Fri, 28 Oct 2016 05:40:27 +0000 (00:40 -0500)]
Merge pull request #245 from dubek/vimscript-use-vim8

Vimscript: Use Vim 8.0

7 years agoBasic: fix step6 arg test. Gensym. Misc cleanup.
Joel Martin [Fri, 28 Oct 2016 04:47:05 +0000 (23:47 -0500)]
Basic: fix step6 arg test. Gensym. Misc cleanup.

- Strip linefeeds in run_argv_test.sh so that step6 arg test passes
  for basic.
- Add gensym and convert or macro.
- Add gitignore entries for transpiled basic sources.
- Add conj/seq stubs so that step4 self-host loads (if non-step4
  functions are commented out in core.mal)
- Bump up Z% value space by 256 spaces (1K)
- Remove old qb2cbm.sh

7 years agoMerge pull request #244 from chr15m/php-web-run
Joel Martin [Thu, 27 Oct 2016 15:14:02 +0000 (10:14 -0500)]
Merge pull request #244 from chr15m/php-web-run

Allow web exec of a .mal file via symlinked php script.

7 years agoBasic: fix errors, reader, if form. Self-host 0-3
Joel Martin [Thu, 27 Oct 2016 03:29:09 +0000 (22:29 -0500)]
Basic: fix errors, reader, if form. Self-host 0-3

- Stop let binding eval on error. Also don't continue into EVAL if
  error.
- if without a false position was freeing up too much when it
  finished.
- fix reader so that it doesn't keep incrementing ref cnt of static
  empty sequences.

7 years agoBasic: use static empty sequences in reader.
Joel Martin [Thu, 27 Oct 2016 01:43:17 +0000 (20:43 -0500)]
Basic: use static empty sequences in reader.

- Add vector and hash-map empty static sequences in types

7 years agovimscript: Use map and lambda in EvalAst
Dov Murik [Wed, 26 Oct 2016 08:19:38 +0000 (08:19 +0000)]
vimscript: Use map and lambda in EvalAst

7 years agovimscript: Remove useless calls to ObjQ
Dov Murik [Wed, 26 Oct 2016 07:33:22 +0000 (07:33 +0000)]
vimscript: Remove useless calls to ObjQ

7 years agovimscript: Remove calls to ObjType
Dov Murik [Wed, 26 Oct 2016 06:56:00 +0000 (06:56 +0000)]
vimscript: Remove calls to ObjType

7 years agovimscript: Remove calls to ObjValue
Dov Murik [Wed, 26 Oct 2016 06:46:20 +0000 (06:46 +0000)]
vimscript: Remove calls to ObjValue

7 years agoBasic: implement CALL in basicpp.py and use it.
Joel Martin [Wed, 26 Oct 2016 06:26:05 +0000 (01:26 -0500)]
Basic: implement CALL in basicpp.py and use it.

- Add clean rule to Makefile and restructure deps.

7 years agoDocumentation for the web-run functionality.
Chris McCormick [Wed, 26 Oct 2016 00:56:57 +0000 (08:56 +0800)]
Documentation for the web-run functionality.

7 years agovimscript: Simplify *ARGV* setting using map and lambda
Dov Murik [Tue, 25 Oct 2016 22:43:28 +0000 (22:43 +0000)]
vimscript: Simplify *ARGV* setting using map and lambda

7 years agovimscript: Update Dockerfile to install Vim 8.0
Dov Murik [Tue, 25 Oct 2016 22:06:08 +0000 (22:06 +0000)]
vimscript: Update Dockerfile to install Vim 8.0

7 years agovimscript: Use Vim 8.0 lambdas to reduce boilerplate code
Dov Murik [Tue, 25 Oct 2016 19:55:14 +0000 (19:55 +0000)]
vimscript: Use Vim 8.0 lambdas to reduce boilerplate code

7 years agovimscript: Increase the unixtime base to make sure time-ms fits in a *positive* integer
Dov Murik [Tue, 25 Oct 2016 19:54:03 +0000 (19:54 +0000)]
vimscript: Increase the unixtime base to make sure time-ms fits in a *positive* integer

7 years agovimscript: Fix misinformation in comment
Dov Murik [Tue, 25 Oct 2016 22:24:36 +0000 (22:24 +0000)]
vimscript: Fix misinformation in comment

7 years agoMerge pull request #239 from wasamasa/picolisp
Joel Martin [Tue, 25 Oct 2016 22:20:07 +0000 (17:20 -0500)]
Merge pull request #239 from wasamasa/picolisp

Picolisp

7 years agoAdd interop and tests
Vasilij Schneidermann [Tue, 25 Oct 2016 22:11:33 +0000 (00:11 +0200)]
Add interop and tests

7 years agoExtend README
Vasilij Schneidermann [Tue, 25 Oct 2016 21:43:32 +0000 (23:43 +0200)]
Extend README

7 years agoAdd docker support
Vasilij Schneidermann [Tue, 25 Oct 2016 20:39:32 +0000 (22:39 +0200)]
Add docker support

7 years agoMerge pull request #243 from wasamasa/assoc-update-tests
Joel Martin [Tue, 25 Oct 2016 16:15:03 +0000 (11:15 -0500)]
Merge pull request #243 from wasamasa/assoc-update-tests

Ensure assoc updates maps properly

7 years agoMerge pull request #242 from wasamasa/elisp-emacs25
Joel Martin [Tue, 25 Oct 2016 16:07:07 +0000 (11:07 -0500)]
Merge pull request #242 from wasamasa/elisp-emacs25

Emacs 25.1 fixes

7 years agoBasic: Reduce GOSUB use. Partial self-host to step3
Joel Martin [Tue, 25 Oct 2016 04:29:27 +0000 (23:29 -0500)]
Basic: Reduce GOSUB use. Partial self-host to step3

step4 runs out of space attempting to load the program. Step2 and
step3 run out of memory (stack exhaustion) for more complicated forms.

- Use GOTO with return label on our stack instead of GOSUB for:
    - APPLY function in types.in.bas
    - "apply", "map" and "swap!" core functions
- Implement DO TCO. Change EVAL_AST to detect if we are called from DO
  and exit one element early.
- Remove GOSUB recursion from EQUAL_Q
- Inline PAIR_Q. Reduce REPLACE stack use.
- Remove one level of GOSUB/stack by calling REP with GOTO
- Simplify mal/step2_eval.mal to remove use of (or ) macro in
  eval_ast.
- Fix ON GOTO/GOSUB line detection in basicpp

7 years agoAllow web exec of a .mal file via symlinked php script.
Chris McCormick [Sun, 16 Oct 2016 11:14:06 +0000 (19:14 +0800)]
Allow web exec of a .mal file via symlinked php script.
ln -s  mal.php myscript.php
Then create myscript.mal will get run when the user visits /myscript on a PHP capable webserver.

7 years agoEmacs 25.1 fixes
Vasilij Schneidermann [Mon, 24 Oct 2016 19:39:22 +0000 (21:39 +0200)]
Emacs 25.1 fixes

7 years agoEnsure assoc updates maps properly
Vasilij Schneidermann [Mon, 24 Oct 2016 19:49:07 +0000 (21:49 +0200)]
Ensure assoc updates maps properly

7 years agoBasic: add read-file. Misc basicpp space savings.
Joel Martin [Mon, 24 Oct 2016 03:18:08 +0000 (22:18 -0500)]
Basic: add read-file. Misc basicpp space savings.

- Add read-file which is similar to read-string but from a file name
  rather than a string. This allows steps 0-2 to load although each
  one eventuall crashes with out of memory after evaluating "123"
  a few times.
- basicpp:
    - Renumber the line numbers so they are ordinally increasing. This
      saves 150 or so bytes because GOTO/GOSUB calls have smaller line
      numbers.
    - Shrink 'IF 123' -> 'IF123' for almost 300 byte savings.[:w
    - Simplify PR_MEMORY_SUMMARY output. Save 75 bytes
- Add missing runtest.py change that allows basic tests to pass.

7 years agoFix assoc
Vasilij Schneidermann [Sun, 23 Oct 2016 18:39:29 +0000 (20:39 +0200)]
Fix assoc

7 years agoImplement step A
Vasilij Schneidermann [Sun, 23 Oct 2016 18:07:49 +0000 (20:07 +0200)]
Implement step A

7 years agoBasic: hashmap functions. Basic metadata (on funcs)
Joel Martin [Sat, 22 Oct 2016 21:11:46 +0000 (16:11 -0500)]
Basic: hashmap functions. Basic metadata (on funcs)

- Metadata support required expanding the type size (to 5 bits). This
  also implies that ref cnt now only has 11 bits (2048).
- Added ^ reader macro (with-meta) which required some refactoring of
  READ_MACRO to share code.
- Rename some more variables:
    ZJ  -> S
    S%  -> X%
    ZR% -> Y%
    ZM% -> Y
    RE% -> D
  This removes remaining % variables apart from the pre-allocated
  arrays Z%, S% and X%.

7 years agoFix argv handling
Vasilij Schneidermann [Sat, 22 Oct 2016 19:28:53 +0000 (21:28 +0200)]
Fix argv handling

7 years agoImplement step 9
Vasilij Schneidermann [Sat, 22 Oct 2016 10:52:01 +0000 (12:52 +0200)]
Implement step 9

7 years agoFix error handling
Vasilij Schneidermann [Sat, 22 Oct 2016 10:37:24 +0000 (12:37 +0200)]
Fix error handling

7 years agoSwift3: updates/fixes for Swift 3.0.1
Joel Martin [Tue, 18 Oct 2016 03:37:42 +0000 (22:37 -0500)]
Swift3: updates/fixes for Swift 3.0.1

7 years agoImplement step 8
Vasilij Schneidermann [Sun, 16 Oct 2016 20:58:01 +0000 (22:58 +0200)]
Implement step 8

7 years agoImplement step 7
Vasilij Schneidermann [Sat, 15 Oct 2016 22:11:07 +0000 (00:11 +0200)]
Implement step 7

7 years agoBasic: smarter ALLOC. Keywords. Vector fixes.
Joel Martin [Sat, 15 Oct 2016 04:48:03 +0000 (23:48 -0500)]
Basic: smarter ALLOC. Keywords. Vector fixes.

- Modify ALLOC to take a type (rather than size) and take default
  values to set for the 1-3 values/pointers. Let alloc do the
  ownership taking of the referred values when appropriate.
- Add FORCE_SEQ_TYPE function to coerce sequence to given type. Fixes
  apply and rest on vector. Simplifies concat.
- Use a double ON GOTO structure for calling the native functions in
  DO_FUNCTION.
- Add some stub core functions.
- Move CHECK_FREE_LIST to debug.in.bas
- All changes together save over 1K

7 years agoBasic: variable renaming. Save 2 kbytes.
Joel Martin [Sat, 15 Oct 2016 03:42:56 +0000 (22:42 -0500)]
Basic: variable renaming. Save 2 kbytes.

Also, add variables.txt file with start of documenting meanings of
variables.

List of renamings/savings:

ZZ%   -> S%   : 131 bytes
ZL%   -> X    : 550 bytes
A%    -> A    : 192 bytes
E%    -> E    :  32 bytes
R%    -> R    : 381 bytes
AR%   -> AR   :  30 bytes
AY%   -> AY   :  71 bytes
AZ%   -> AZ   :  33 bytes
B%    -> B    :  47 bytes
AA%   -> AA   :  64 bytes
AB%   -> AB   :  25 bytes
F%    -> F    :  21 bytes
FF%   -> FF   :  14 bytes
ER%   -> ER   :  41 bytes
PR%   -> PR   :   7 bytes
T%    -> T    :  46 bytes
R0-9% -> R0-9 :  31 bytes
T0-9% -> T0-9 :  42 bytes
S1-4% -> S1-4 :  25 bytes
U0-9% -> U0-9 :  44 bytes
ZK%   -> ZK   :  10 bytes
ZI%   -> ZI   :  10 bytes
RC%   -> RC   :  16 bytes
K%/V% -> K/V  :  21 bytes
SD%   -> SD   :  16 bytes
ZS$   -> S$   :  40 bytes
HM%   -> H    :  10 bytes
SZ%   -> SZ   :  39 bytes
LV%   -> LV   :   9 bytes
EO%   -> O    :  18 bytes
C%    -> C    :   4 bytes
P%    -> P    :   4 bytes

7 years agoImplement step 6
Vasilij Schneidermann [Fri, 14 Oct 2016 08:39:49 +0000 (10:39 +0200)]
Implement step 6

7 years agoFix rep
Vasilij Schneidermann [Fri, 14 Oct 2016 08:16:44 +0000 (10:16 +0200)]
Fix rep

7 years agoFix naming
Vasilij Schneidermann [Fri, 14 Oct 2016 07:40:19 +0000 (09:40 +0200)]
Fix naming

7 years agoImplement step 5
Vasilij Schneidermann [Tue, 11 Oct 2016 16:24:50 +0000 (18:24 +0200)]
Implement step 5

7 years agoBasic: stepA basics.
Joel Martin [Mon, 10 Oct 2016 01:31:22 +0000 (20:31 -0500)]
Basic: stepA basics.

7 years agoBasic: step9 basics
Joel Martin [Sun, 9 Oct 2016 04:41:33 +0000 (23:41 -0500)]
Basic: step9 basics

- Change ER% to be -2 for no error, -1 for raw string error, and >=0
  as pointer to an error object.

7 years agoguide: incorporate feedback from Nicolas Boulenguez
Joel Martin [Sat, 8 Oct 2016 17:23:10 +0000 (12:23 -0500)]
guide: incorporate feedback from Nicolas Boulenguez

7 years agoBasic: step8 basics. Fix def!, let*, concat, scalars.
Joel Martin [Fri, 7 Oct 2016 03:22:57 +0000 (22:22 -0500)]
Basic: step8 basics. Fix def!, let*, concat, scalars.

- Move apply logic in swap! to APPLY function in types and use that
  for macroexpand
- Abort def! if error before updating the environment
- let* wasn't properly saving A2% for the final eval. Also, the
  environment release check should be against the top-level EVAL env,
  not the root repl env.
- (concat (list) ...) was broken so fix it to ignore empty lists that
  aren't in the trailing position.
- nil, false and true in the reader were always being returned as
  references (with an ref cnt) but we have the assumption that
  references (14) are not ref cnt'd and are always part of a compound
  type so fix the reader to just return the interned addresses.

7 years agoHaskell: update docker image to 7.10.3
Joel Martin [Thu, 6 Oct 2016 22:55:58 +0000 (17:55 -0500)]
Haskell: update docker image to 7.10.3

This goes along with https://github.com/kanaka/mal/pull/238

7 years agoMerge pull request #238 from prt2121/pt/haskell-7.10.1
Joel Martin [Thu, 6 Oct 2016 22:53:27 +0000 (17:53 -0500)]
Merge pull request #238 from prt2121/pt/haskell-7.10.1

support GHC 7.10.1+ : update error handling

7 years agoImplement step 4
Vasilij Schneidermann [Tue, 4 Oct 2016 20:10:55 +0000 (22:10 +0200)]
Implement step 4

7 years agoImplement step 3
Vasilij Schneidermann [Sun, 2 Oct 2016 22:31:43 +0000 (00:31 +0200)]
Implement step 3

7 years agoSupport GHC 7.10.1+. Update error handling
Prat [Sun, 2 Oct 2016 17:49:28 +0000 (13:49 -0400)]
Support GHC 7.10.1+. Update error handling

7 years agoImplement step 2
Vasilij Schneidermann [Sun, 2 Oct 2016 17:41:49 +0000 (19:41 +0200)]
Implement step 2

7 years agoUpdate Makefile to include readline
Vasilij Schneidermann [Sun, 2 Oct 2016 13:58:23 +0000 (15:58 +0200)]
Update Makefile to include readline

7 years agoImplement step 1
Vasilij Schneidermann [Sun, 2 Oct 2016 13:55:19 +0000 (15:55 +0200)]
Implement step 1

7 years agoDistinguish EOF from empty input
Vasilij Schneidermann [Fri, 30 Sep 2016 08:39:42 +0000 (10:39 +0200)]
Distinguish EOF from empty input

7 years agoImplement step 0
Vasilij Schneidermann [Fri, 30 Sep 2016 08:05:43 +0000 (10:05 +0200)]
Implement step 0

7 years agoBasic: basicpp adds, other misc. Shaves 3031 bytes.
Joel Martin [Sat, 24 Sep 2016 03:36:17 +0000 (22:36 -0500)]
Basic: basicpp adds, other misc. Shaves 3031 bytes.

- basicpp.py:
    - Fix "ON GOTO/GOSUB" label replacment
    - Add combine line capability
    - Change "THEN GOTO" to "THEN"
- Remove some spaces and unnecessary parens
- Restructure several places with multiple "GOTO/GOSUBs" statements
  into fewer "ON GOTO/GOSUB" statements

7 years agoBasic: switch to python preprocessor.
Joel Martin [Fri, 23 Sep 2016 03:14:08 +0000 (22:14 -0500)]
Basic: switch to python preprocessor.

- Adds ON GOTO, ON GOSUB support.
- Simplifies REM keep/drop to just yes/no

7 years agoBasic: step7 basics, reader macros. step1,3 tests.
Joel Martin [Thu, 22 Sep 2016 04:27:12 +0000 (23:27 -0500)]
Basic: step7 basics, reader macros. step1,3 tests.

Also:
- Add some step1 and step3 tests that were discovered during Basic
  development.
- Move PR_MEMORY* to debug.in.bas
- Simplify Makefile deps
- Fix freeing in steps4-7 when error at deeper level
  i.e. (prn (abc))
- add SLICE function to support concat implementation.

7 years agoBasic: reduce memory usage by 614 bytes.
Joel Martin [Wed, 21 Sep 2016 02:11:46 +0000 (21:11 -0500)]
Basic: reduce memory usage by 614 bytes.

- combine some lines
- remove some unnecessary spaces and parens
- add string allocations to single routine in types

Also:
- remove blank lines in qb2cbm.sh output (does not save memory)

7 years agoMerge pull request #237 from iqbalansari/master
Joel Martin [Tue, 20 Sep 2016 14:32:59 +0000 (09:32 -0500)]
Merge pull request #237 from iqbalansari/master

Compile guile files before running them

7 years agoCompile guile files before running them
Iqbal Ansari [Tue, 20 Sep 2016 12:24:30 +0000 (17:54 +0530)]
Compile guile files before running them

7 years agoBasic: step6 basics and atoms. Fix strings.
Joel Martin [Tue, 20 Sep 2016 02:23:21 +0000 (21:23 -0500)]
Basic: step6 basics and atoms. Fix strings.

Also:
- command lines arguments are implemented by creating a file
  ".args.mal" that contains a list of arguments and that is loaded by
  the run script (load-file) into -*ARGS*-. The rest is put in *ARGV*
  and the first element is pulled out and used as the script name.
- fix string reading/printing using new REPLACE function
- add RE function to skip printing and to get back evaluated value
  (result must be freed by caller). Needed for step6 to get first
  argument pointer for scripting.
- Sync earlier steps
- add cons, first, rest to support parsing the command line.
- eval is implemented as standard function in core.in.mal
- fix println bug (using PR_STR rather than PR_STR_SEQ)
- change sequence printing to save the initial sequence type on the
  stack and use that for the ending sequence delimeter. This way
  sequences of one type can still use the tail of sequences of
  a different type but still be considered the initial type.

7 years agoBasic: add step5, fix recursive/error memory issues.
Joel Martin [Sun, 18 Sep 2016 04:03:30 +0000 (23:03 -0500)]
Basic: add step5, fix recursive/error memory issues.

- Add TCO recur to let*
- Release of all memory from recursive function and let* calls.
- Fix a number of cases of trying to release already freed memory.
- Print function in memory as 2 byte unit rather than two separate
  memory locations.

7 years agoBasic: fix readline to work on C64 (Vice).
Joel Martin [Fri, 16 Sep 2016 06:38:44 +0000 (01:38 -0500)]
Basic: fix readline to work on C64 (Vice).

Also, add cbmbasic console patch that makes it work more like the C64
where GET does not echo.

7 years agoBasic: Add memory management. More step4.
Joel Martin [Fri, 16 Sep 2016 06:00:58 +0000 (01:00 -0500)]
Basic: Add memory management. More step4.

Also:
- More/better detail in PR_MEMORY/PR_MEMORY_SUMMARY
- Fix *.prg image build (for running under Vice). Have to lower-case
  everything since what C64/Vice shows as capitals are actually
  lowercase.

7 years agoBasic: move environment into normal memory.
Joel Martin [Fri, 16 Sep 2016 04:58:55 +0000 (23:58 -0500)]
Basic: move environment into normal memory.

7 years agoMerge pull request #232 from zmower/ada_patches_sep16
Joel Martin [Thu, 15 Sep 2016 19:13:42 +0000 (14:13 -0500)]
Merge pull request #232 from zmower/ada_patches_sep16

Ada patches sep16

7 years agoMerge pull request #233 from iqbalansari/master
Joel Martin [Thu, 15 Sep 2016 18:28:34 +0000 (13:28 -0500)]
Merge pull request #233 from iqbalansari/master

Update CLISP implementation

7 years agoStore enviroments as struct instead of classes
Iqbal Ansari [Thu, 15 Sep 2016 14:46:32 +0000 (20:16 +0530)]
Store enviroments as struct instead of classes

Seems to give some good speedups

7 years agoDo not use custom hashtable for storing MAL environment
Iqbal Ansari [Thu, 15 Sep 2016 04:25:16 +0000 (09:55 +0530)]
Do not use custom hashtable for storing MAL environment

7 years agoFix a typo in core division function
Iqbal Ansari [Thu, 15 Sep 2016 04:13:03 +0000 (09:43 +0530)]
Fix a typo in core division function

7 years agoBasic: most of step4.
Joel Martin [Mon, 12 Sep 2016 02:36:15 +0000 (21:36 -0500)]
Basic: most of step4.

7 years agoBasic: add step3, vector/hash-map evaluation.
Joel Martin [Sun, 11 Sep 2016 05:11:55 +0000 (00:11 -0500)]
Basic: add step3, vector/hash-map evaluation.

Also:
- qb2cbm.sh: Add KEEP_REM level variable to tweak which REM/comments
  are emitted/skipped.
- fix printer issue with recursive sequences after evaluation (with
  refeerences in them)
- add stats target

7 years agoBasic: step2 basics. Vectors and hash-maps.
Joel Martin [Sun, 11 Sep 2016 03:13:27 +0000 (22:13 -0500)]
Basic: step2 basics. Vectors and hash-maps.

Adjust step2 tests to keep values within 2 byte int range.

7 years agoNicholas Boulenguez : Use Get_Line function instead of insisting on a maximum string...
Chris M Moore [Sat, 10 Sep 2016 20:06:47 +0000 (21:06 +0100)]
Nicholas Boulenguez : Use Get_Line function instead of insisting on a maximum string size