cdfd116c added some tests for partial applications
46d02e9c Added the possibilty to partially apply a closure
788dfa27 debug inspection of local environments in the REPL
b28ceec1 shutting down some warnings originating in repl.c
d35ef54d small tweak example code
5fa6f453 added some sanity checking of the type of the key used in let bindings
81314729 Updates chibios xmas-dac example so that it builds again
0d1f05ca updates chibios example repl so that it builds again
4ae17fc8 small tweak to texture loading demo.
a309e37a added silly texture image for the sdl_texture.lisp example
1dc0e4e6 added texture loading extension and a blit function for drawing sprites on the window
6c249a37 proper scaling on the sleep and timestamp callbacks
e65b0b83 ESP32c3 repl up and running
24f93026 work in progress esp32 repl
958a273d work in progress esp32 repl
d4fb301b work in progress repl example for ESP platforms (esp32c3 specifically)
7e924bf6 freertos includes correctly, compiles. stiill untested
29b9e3a4 added freeRTOS platform files. Untested currently
f3931c13 update README and small tweaks
357bb438 closing one warning
205ca17e small tweak to SDL tree-demo
27c1f601 added a way to explicitly run a custom type destructor and clean up its deference trampoline
d955f26e added missing files
a94dfb5c Update README.md
0e29e692 added SDL example that draws a tree
a5417886 Bugfix in lbm_sdl.c for destructors of window and renderer
b3a0e586 Getting started with interfacing LBM and SDL2
7aa2c1d0 started towards custom types with associated destructors for when they are freed by GC
a8b33a8d safer behaviour of car and cdr in relation to pointer-types that are not really cons-cells
9fbf02ce fixed some inconsistencies
3051e8e7 update change log
8d002536 handling one warning in 64 bit compile
7794a9b2 added array tests
a83f385c Merge branch 'master' of github.com:svenssonjoel/lispbm
21c79aaf fix problem with array parsing in the case of float arrays
dc926e59 added script to generate ctags
38046a49 updates to changelog with changes up and including may 22 2022
45b5d6c0 fix potential corner case issue with call-cc on 64 bit platforms
ebb100a5 some streamlining of the bind_to_key rest continuation in eval_cps.c
1c9a7df2 Added explicit stack version of defunctionalized evaluator example
2812b7b0 added some more testcases in evaluator.lisp and evaldefunc.lisp
0393bd21 New features in evaluator.lisp and evaldefunc.lisp
c6dd4e10 found an evalutor bug related to progn thanks to writing evaluator.lisp and evaldefunc.lisp
5d1bfc75 added continuation passing style evaluator of a mini-lisp as well as a defunctionalized CPS style evaluator for the same mini-lisp
a5a6c2a2 removed commented out old code
c135b4a3 fix problem related to assoc
8ddd44cc removed some code duplication in eval_cps
c625af8e lbmref update
a1a7a4b6 lbmref update
12d9f4e9 lbmref update
git-subtree-dir: lispBM/lispBM
git-subtree-split: cdfd116c655e20bac787a2080b8c601c6bc846ca
3836952f tweak doc
37f8c948 clear extension and cleanup in doc
e7e1fd84 filled out the changelog
7d5cd0bc added two more tests of bufget
3d876227 change type return value for get_u8 and get_u16 in array_extensions
git-subtree-dir: lispBM/lispBM
git-subtree-split: 3836952f28d94c44affc6b45fadec8e3815be365
94df9e23 a bit hacky but should be in the right direction
234f9782 unused arguments
git-subtree-dir: lispBM/lispBM
git-subtree-split: 94df9e23ceeeec9d6e28b0c84f4d96a7440244cf
a136db86 Bug fix towards adding capability to dynamically load an extension
git-subtree-dir: lispBM/lispBM
git-subtree-split: a136db86d29f0808811af2d8b50ba36ca1d2a399
748a3a97 added a way to make up symbols on the fly in the extensions array. Symbol names starting with ext are allocated to the extensions table
5c934bd7 added a profiling script that uses callgrind
d5c14c2a cleaning out old unused code from heap.c
git-subtree-dir: lispBM/lispBM
git-subtree-split: 748a3a974f80c47c59a1252abc4db4cfb1fb875e
4d6badc8 Merge branch 'master' of github.com:svenssonjoel/lispbm
44b05640 adding an extension with the same name as an earlier added extension should now replace the previous extension with the new one
2e878154 added lbm_memory macros for 10, 12 and 14 K of lbm_memory
37c3bff6 store size of symbol table and provide function for getting table size and total size of strings stored in table
5658f36c fix comment
git-subtree-dir: lispBM/lispBM
git-subtree-split: 4d6badc89760869504d4dbf0e9e1c51934b10ce2
26c1b54c read errors now have line and column numbers associated with them.
git-subtree-dir: lispBM/lispBM
git-subtree-split: 26c1b54c6c4affd86dfc92cf8550c757ad42891b
be981ff1 added setix to refman and a way to block a context from a c extension together with a way to later unblock such a blocked context from C
8d4ec0e3 small tweak to the main evaluation case (function application).
289c69a6 a small tweak for closure argument evaluation efficiency
664347f4 added the lbm_stack_reserve function for allocation of multiple words on the stack in one go
git-subtree-dir: lispBM/lispBM
git-subtree-split: be981ff1f8e40b40dfa1dcbc43075e9e8ec9fa9c
90b18761 potential small improvement in argument evaluation performance
0b41ce56 added some tests of alists
git-subtree-dir: lispBM/lispBM
git-subtree-split: 90b187612f957b2bac8e8de3a3576835b20cee4b
8dbe7463 adding some short descriptions of alists to the refman
8403421f Fix a bug related to heap-lbm_memory consistency and array syntax.
55fb723f added some type-of tests and small fix in tokpar
git-subtree-dir: lispBM/lispBM
git-subtree-split: 8dbe7463e3d3b27393286b921ae245f01407a81f
5e49fad5 removed duplicated code for parsing float/double values in tokpar
c2ad1207 dropping lots of code duplication from tokpar
103d74c9 chapter 2 first draft
b7268076 fix order of arguments on acons
682aede3 update chapter 2
4d2f9546 added a bit of text to ch2
git-subtree-dir: lispBM/lispBM
git-subtree-split: 5e49fad5f379718dca03944f3dad5e8ca2776f66
24b8df22 adding text to manual ch2 and tweaking iota to enumarete up to (- n 1)
7558ee8d update manual ch2
ac09a621 work on chapter 2
a0ccae7f differentiating betwen applying to too many or too few arguments in a closure application
b002e1a6 update ch2 tiny
10efcb11 update ch2 to match current REPL formatting
f485a5f1 make REPL less verbose and update chapter 1
c7194629 work on ch2 and some additions to repl
6146a6c0 the reader will now signal via a callback when reading of source is completed
git-subtree-dir: lispBM/lispBM
git-subtree-split: 24b8df22427e05561c1dae8a60297b98a0027a74
1f19918d update ch2
55e1f370 closed some warnings. Made changes to match algorithm to allow lookup of variables in patterns
fdd6226a tweak ch1
54ea2a5e spell-checking pass chapter2
c4015d81 first draft of some association-list built-ins
git-subtree-dir: lispBM/lispBM
git-subtree-split: 1f19918d06d1b80286ef0be24635dac2ed54cd92
cf470a85 setix and rename of set! to setvar
12b2f2a3 update to chapter 2
a140ddd2 Fix potential null pointer dereference
2dc877c3 work in progress on chapter 2
415d46c7 fix environment handling bugs in pattern-matching
a6a1423b update ch2
f0a78631 update chapter 2
aca7cb5e small additions to chapter 2 in the manual
4fb9b26f starting to think about manual chapter 2
9a4c892e added rule to install the REPL as the executable file lbm into .local/bin in the home dir
3383919b update lbmref
c5ade0ab update lbm_version to better reflect reality
bde07853 reduced the set of expected failed tests
fed58b00 added some more array-syntax tests
965013e3 update refman
git-subtree-dir: lispBM/lispBM
git-subtree-split: cf470a85702aaab6e7cd73712516f22215b8bd61
b548be4e close 2 warnings about convertions
0335ae9b Merge branch 'master' of github.com:svenssonjoel/lispBM
c4d46dbb added type convertion functions and small tweak to refman
git-subtree-dir: lispBM/lispBM
git-subtree-split: b548be4e48f5aac4c91962d653b85ad99e4ea168
10340fbf small fix related to negative numbers when parsing array-literal-syntax
git-subtree-dir: lispBM/lispBM
git-subtree-split: 10340fbfccb97edc6479be173e288e52b4ababe8
0941f213 Hex notation in array-literal-syntax, first draft
da0b1f44 added array-size fundamental and one more test involving size and array-literal-syntax
0835c5a4 added a first test of the array-literal syntax and made source-code-compression compatible with array-literal-syntax
git-subtree-dir: lispBM/lispBM
git-subtree-split: 0941f2132d311505708b225b053dcaef477d53e1
fdbe8699 One comment
53c4495e One instance of off-by-one found
git-subtree-dir: lispBM/lispBM
git-subtree-split: fdbe869982229d2516faaf9cbdf55dca3d11b838
3c02bc6f first draft of array literal syntax. It does not break any existing tests but a a lot more testing needed!
793d95b1 small tweak pop
2ef9f34e added tiny comment
837cd180 rewrite of cont_if to use indexing into stack rather than a pop3
git-subtree-dir: lispBM/lispBM
git-subtree-split: 3c02bc6f31ef042f2c53b5501cce1fd4d8f45ffa
db80cb7d updates to how symbols are evaluated, mostly for readability but also efficiency
bb573b53 slight optimizations to mark_phase and mark_freelist
58242f41 tweaking the manual
51666fb5 update manual fix prelude situation
2c6349da work on manual
39a15fd8 update
a5310055 added a bit more text about symbols in the manual
60d59eec added a bit more text about symbols in the manual
f685819e added a bit more text about symbols in the manual
31d56d35 added a bit more text about symbols in the manual
54796c35 added a bit more text about symbols in the manual
e333c00f Small readability and efficiency tweaks to eval_cps
0d234b5e lbm_cadr added and sligth modifications to eval_cps.c using lbm_cadr
85cd864a update changelog
6d2c8685 work on manual
5203a64f work on manual
63ebbae2 work on manual
4a146954 work on manual
19a0d06f work on manual
91c1d992 work on manual
ab393f46 work on manual
26309199 work on manual
c474931b work on manual
1a822e8d work on manual
648f6433 work on manual
6737828a work on manual
2d8e7084 work on manual
3a834fce work on manual
7ae1b342 work on manual
bc5b1fd0 work on manual
d3b6ec4d work on manual
654d70f8 writing on the manual
0d66dda6 tweak readme
d846ea3b update README
2c18d1a6 small tweak
bd9f80e5 allowing more characters in symbols
61827fc2 remove the prelude library in its current form. It is still available in the REPL
f1dcea8f small tweak benchmarking code
3a761cee update manual
e9898b19 make the prelude functions load dynamically when needed by the repl and test-system
714be360 update manual
e1804e3e update lbmref, renamings
508d167c Update README.md
6f3207fa Update ch1_introduction.md
6562daef Update ch1_introduction.md
76b48adf work in progress proramming doc
91c44751 fix repl-cps makefile to correctly build deps
54e66b25 remove lbmref.dox
f0c90ffd update reference manual
5b577572 fix potential bug in cont_application_start
git-subtree-dir: lispBM/lispBM
git-subtree-split: db80cb7dd05eef9e71980a55ff7987118c32c6e9
ccca9778 update lbmred.md
e182bffd changed doc i28 to i
3b277e28 error message printing verbosity level can be toggled between high and low
0f00e692 update one of the call-cc tests
6a377f74 added some tests of call-cc
4f3e8adc update application of a call-cc continuation. zero arguments is ok, will apply to nil. More than 1 argument is an error and terminates the context
50fdd498 small tweaks to repl-cps
git-subtree-dir: lispBM/lispBM
git-subtree-split: ccca9778ee0ddad6ea44bdc309ba128c92723309
6deae379 Merge branch 'master' of github.com:svenssonjoel/lispBM
087437b4 update callcc to use lbm_memory for continuation creation rather than list
git-subtree-dir: lispBM/lispBM
git-subtree-split: 6deae3798fb770fdc971ce8d2f2cc32a3bc1b3dd
cf60058d added error reason when applying to too many arguments
git-subtree-dir: lispBM/lispBM
git-subtree-split: cf60058d7f3f7ca49db800452a8d9acc6b048ab2
5b3815ee added aliases first, rest, fn and def for car, cdr, lambda and define
7d1bf1d5 added aliases first, rest, fn and def for car, cdr, lambda and define
3ac28d2f let the compiler keep track of the size of the special_symbols
51c84e90 update evaluator example program
git-subtree-dir: lispBM/lispBM
git-subtree-split: 5b3815eec0ae4b8b4fbbe96a77e71e151359ee13
184f58ca added one more test involving strange lambdas
f17252a1 fixed bug related to closures applied to zero arguments. More tests needed
git-subtree-dir: lispBM/lispBM
git-subtree-split: 184f58cab68b5350852d2749ef97ee5b4eb245d8
6bf6dd72 Better attempt at fixing the forgotten temporary value in eval_let.
git-subtree-dir: lispBM/lispBM
git-subtree-split: 6bf6dd725abb236ac4a2a84d8965f2b3dc4fff8a
b6e3a0e5 fix mistake in eval_let where an intermediate value could be forgotten by the Mark phase and end up removed by GC
f327c61b renaming all pop_u32 and push_u32 functions to just push and pop
git-subtree-dir: lispBM/lispBM
git-subtree-split: b6e3a0e5286c6380e4a9170819404752afcdf5e1
95c77be2 removed a left over printf from debug session
6ac46afb found bug in pointer identification for GC and added a call to gc at the very start of cont_read
git-subtree-dir: lispBM/lispBM
git-subtree-split: 95c77be23c28d85a245c98990eb2f47cb72ad9d9
bbfcd36d Added a gc check in case SYM_READ and fixed the tokenizer when it comes to pattern matching pattern for ?i
git-subtree-dir: lispBM/lispBM
git-subtree-split: bbfcd36d448849287d2f0e2c66f3d12dc63adae8
33093e6e dynamic loading of symbol mappings now perform gc if lbm memory if close to full
b7b35f0c Some amount of cleaning
git-subtree-dir: lispBM/lispBM
git-subtree-split: 33093e6e3fe4d8c99eb773a04f111ebe92161b5f
f3605d21 fix bug in if. If required 't instead of accepting anything other than 'nil as true. Added null check to cont_closure_application_args
cba089b3 giving closure applications their own code-path separate from built-in fundamentals and extensions.
3856726f extendd functionality of dec_as functions
git-subtree-dir: lispBM/lispBM
git-subtree-split: f3605d21badf939007237e547dba785e1be2283b
43ebce71 Fix formatting int print.c and constants that default to float/double
fa220f0b update gc statistics collection a small bit
25b20686 fix get_heap_state
783d774e Arrays of 64bit values passes the associated tests. More tests are needed though
ff40d02f working on 64bit arrays. more testing needed
204bea39 CMP as a macro instead of 8 different functions
44bb152d added a set of math extensions grabbed from Benjamin's bldc repo
9c34b4cd added string extensions from benjamins bldc repo
b4370155 merge in changes on master into dev64bit
c129344b fixed masking bug in fundamentals
ed3ab5be closed down ome warnings when building 64bit
d46564c9 expanded functionality of type-of to cover 64bit types and preparations for arrays of 64bit values
f7cb5538 added more 64bit functionality to fundamentals and a tiny amount of tests
4dafbe6c added decoders for 64bit values
63026a8a added 64bit value literals
8c1f0f0f made GC aware of lbm_memory allocated values
17148ada 64 bit values allocated on lbm_memory on 32 bit version
4445e5a8 sketch of encoders for 64 bit values
f636e64d suffix for the lisp size of int and uint are now i and u instead of i28 and u28
840723ca preparations and planning for 64bit types in both 32 and 64 bit versions.
13675dda 64bit up and running. but there are many TODOs
033bfd9a small fixes following bug hunt
f5c984de fix bug in representation of important masks and constants
d40b2437 Merge branch 'master' into dev64bit
06f9603f Merge branch 'master' into dev64bit
69950ba1 32 bit tests are ok
46b6fa28 Merge branch 'master' into dev64bit
b9e2c993 work in progress
8dff9b4d work in progress
a241aded work in progress
4738e0da update year in lbm_types
ca469923 made it possible to run the same tests as on the 32 bit version on the 64 bit code
85acec30 small tweaks tp create_ctx, use correct type
bf0286a7 Merge branch 'master' into dev64bit
824e1634 Merge branch 'master' into dev64bit
04a97f17 lots of testing needed
ea862cce a bunch of changes in preparation for 64bit compatibility.
git-subtree-dir: lispBM/lispBM
git-subtree-split: 43ebce71a281f4a158b8d2dec3fc537c26766ec3
6199703d removed left over debug residue from destructive reverse
5f3257f4 added a destructive list reverse function
421d5a61 returning an error from an extension now terminates the context in which the error happened. There is still one retry in the case of merrot
c6d9a3cb update changelog
6332a158 added a way to register an error reason string from extensions. pretty untested at the moment
e9a7fa5d update README
f9a66bfc fix left over num-eq in doc
52c4e05f doc update
b54230f8 md doc test
80125f23 experiment
1278aa24 update
e576c4f2 md doc
git-subtree-dir: lispBM/lispBM
git-subtree-split: 6199703df06c4a5709c84cb17102a8e088caa847
78047efe update
615f0d3c = now behaves as num-eq did and num-eq has been removed. for structural equality use eq
25cd006a define will give evaluation error if given more than 2 arguments
git-subtree-dir: lispBM/lispBM
git-subtree-split: 78047efe2b9ce60c841f85179539a62e1b1c48e5
eead0b27 removed a case of shadowing
4f744f8b Added more escape characters, not sure it is safe.. It does something though
git-subtree-dir: lispBM/lispBM
git-subtree-split: eead0b27dd8f8ee2d7f2029b9b9af03b18bcc502
e81f234f create_ctx changes to when it invokes gc to free up enough space for a context
55d7617d a first go at some escape characters. newline and backslash so far
git-subtree-dir: lispBM/lispBM
git-subtree-split: e81f234fdcac5728ef04ae9144e3aa7ed55306fa
9b375671 create_ctx fix: could get stuck in an state where there is no memory for any more contexts. not even a context to start the GC from! create_ctx now checks if there is enough memory for a context or it will automatically run GC
ebab83eb added a gc and retry in setvar
git-subtree-dir: lispBM/lispBM
git-subtree-split: 9b37567197de0f38bda5a3391c9255e49e2102f3