55553f58 hash table of environments for faster lookups
4c559b1f small tweak to env lookup
ef9dead0 A fix to a bug in GC handling of callcc continuations. Temporary, may change fix approach later
63868a8f closed a waring in array extensions
3135b7ec update of benchmarking with a sort benchmark that runs sort 10 times on 500 elt
44ec82cd remove a file that is nolonger in use
123717aa upped version
git-subtree-dir: lispBM/lispBM
git-subtree-split: 55553f580b75dfd66ab00491ed4ff234daf31b0b
b718cb68 bugfix in MAP protecting function application against GC
git-subtree-dir: lispBM/lispBM
git-subtree-split: b718cb6839995460515a3db8ca64743e55a5d61a
1dc61723 bug fix in sort, reordering of operations to keep sublist safe from GC
git-subtree-dir: lispBM/lispBM
git-subtree-split: 1dc61723743b6300130ea4e666a9bb1921d5e8ec
ad49766e sort and merge can now be applied to an operator or an extension to use as the comparator
git-subtree-dir: lispBM/lispBM
git-subtree-split: ad49766ee024b5c30419824dbdf91c7b340e424d
928f96dc bugfix related to environment creation for comparators in merge and sort
git-subtree-dir: lispBM/lispBM
git-subtree-split: 928f96dc047aa9927081a3892f78226c8fef321c
acf53419 added another sorting test
05b72f26 first attempt at a built-in merge-sort operation.
1f5504f4 added a built in merge primitive operation. needs more testing.
git-subtree-dir: lispBM/lispBM
git-subtree-split: acf5341938e4929202da1128678ce2592300be1a
1405c6a8 bugfix in setq related to saving the environment
1b4f84df added gc tests
git-subtree-dir: lispBM/lispBM
git-subtree-split: 1405c6a8d857c6af55606902b5a52ce64d712c2f
d3da43bf changes to shrink
2274ac39 fix bug in recent special character tokenization
70b27aba added literal forms for special characters. for example \#\n for newline
b4c26ff1 small teweaks to fundamentals
c141b053 removed partial application and upped to version 0.21.0
git-subtree-dir: lispBM/lispBM
git-subtree-split: d3da43bf05cb34ccf622afaa8461781ad8395e5f
d005f690 sleep is now built-in
0d1a9574 sharing more code between let and loop
59a713c3 updated benchmarks with 2 new additions
b891468a added a loop form that borrows a lot from LET. it may be possible to turn let into a special case of loop later
eb02f779 some organising and comment type fix
6a64d8ae fix bug that snuck in while consolidating MAP
414eb2f6 consolidating MAP_FIRST and MAP_REST into a single MAP continuation.
67b4e2a2 update readme
git-subtree-dir: lispBM/lispBM
git-subtree-split: d005f690c4d753ddb625898c21a56b0f3f7dcc38
093a6a88 Marking environments with a while loop over the proper list structure
git-subtree-dir: lispBM/lispBM
git-subtree-split: 093a6a887ffa33a198cfb10935aeb8c891b1289e
1bf58d0a added a mutex that locks the GC mark phase when using pointer reversal. When accessing the heap randomly this lock should be obtained first as the heap is not traversible while pointer reversal is in play
e02c783d Merge branch 'master' of github.com:svenssonjoel/lispbm
bf060a9f warning when using ptr_rev gc (needs more testing
4b827db3 added tests
git-subtree-dir: lispBM/lispBM
git-subtree-split: 1bf58d0a654f10e1992edfccda1eea6e6d201a3a
5bc9cc72 update readme
20763667 added a number of GC tests. all of which pass under both garbage collection principles.
8f0f9f04 first attempt at pointer-reversal mark phase. This mark implementation is disabled per default and can be tried out by building with -DUSE_GC_PTR_REV
6f4b7899 refactor closure application and addition of several error-suspects in fundamental operations
34942ef9 undo some changes related to error_reason and some cleaning
f046c967 added lbm_set_error_suspect to allow setting a more relevant expression likely to be guilty of an error to an error message
git-subtree-dir: lispBM/lispBM
git-subtree-split: 5bc9cc726803bc65c8853ccd1c99a44bc5de5063
ae675bb2 improvement to a number of error messages
c8b0f6a9 Improved a number of error messages
b9334921 changed behavior of set family of functions when setting an unbound variable. Now set of unbound results in an error
b373817a removing some now dead code
git-subtree-dir: lispBM/lispBM
git-subtree-split: ae675bb2f61aa99f09a42e3a687979beb1b4712e
c99bf0f6 Fix bug related to handling of flat value buffers created either from lisp (flatten) or from the event handling system
git-subtree-dir: lispBM/lispBM
git-subtree-split: c99bf0f6fd9b10a7cb005b8a4be08a0a550f06a2
93b566b8 removed a call to lbm_free from unflatten
68635765 removal of dead code, removal of pointless conditional in lbm_memory_shrink and switch to structural equality in comma-qualified symbol matching
9470f8ba small update to flatten_value that removes an superfluous call to finish_flatten
f8470b0f update cr note in lbm_memory
8b70f8ed added 0 check for malloc and malloc_reserve
87311c92 modification to how GC handles constant values. incremented version
344ce225 added a lbm_get_gc_stack_size function for easier access to this field
git-subtree-dir: lispBM/lispBM
git-subtree-split: 93b566b8a7c63f566c3408140bba01976163783b
9e5d4044 gc stack is allocated from lbm_memory, it is possible to resize the gc stack by allocating a new one and replace the old. see runtime_extensions for example
77561a9e added a function that returns maximum gc stack level and added an error message when GC stack exhausts
4dfcabf1 added a callback for when a critical unrecoverable error occurs so.
63919e22 Slight opmitmization of stack usage in GC mark phase
38c677e9 Merge branch 'master' of github.com:svenssonjoel/lispbm
fd88cd7e Small overlook of match machinery with minor changes to environment handling and gc roots
173e256b added test of match
0478d16c added 3 tests of match
git-subtree-dir: lispBM/lispBM
git-subtree-split: 9e5d4044c2d36efdd01b080d0db150186922a6d7
948bb6bc fix example evaluator with resent changes
c1a4112b added test of var definition already existing overwrite
2bedc6fb added a test of setq and progn-var
cfe513eb added a test involving setq and closure environments
9eaef7e5 removing a plethora of needless assignments
f38f20bb fix bug related to incremental read having an incorrect flag
512acc16 merge
03727930 fix problem in assoc and cossa
46825aab fix concerning floats on 64bit version
git-subtree-dir: lispBM/lispBM
git-subtree-split: 948bb6bc44c60d63eed89de0aad100d9b281d17d
3047e3a3 fix bug in unblock_unboxed when unblocking with an error value
0a87a87e extra name parameter to lbm_c_interop program evaluators
04ac2fd1 removed the wait-for flags for lack of use
git-subtree-dir: lispBM/lispBM
git-subtree-split: 3047e3a30e186c58d4f5461c98a4cbcd896c9455
fa3a730e added an extra condition to writing symbols to flash, the reader must now be incremental for this to happen
3b7c98b0 addition to lbmref
git-subtree-dir: lispBM/lispBM
git-subtree-split: fa3a730e3e9d90da3ea9732addd5a687af03eea7
a33d675a Profiler interface changed. Profiler now also reports system overhead in a category by itself. System overhead will be large if all you have are threads that do not use up their quota.
git-subtree-dir: lispBM/lispBM
git-subtree-split: a33d675ad1befd1f8046a8a3010f3afaa89db907
db03ff7b Made flatvalues identical to arrays beyond the first dereference
deca3f3f undoing an undo related mistake
21b2bc52 flatvalues can now be converted to byte-arrays using fv-to-a and back to flatvalues using a-to-fv
git-subtree-dir: lispBM/lispBM
git-subtree-split: db03ff7b29dd9ca1ba1206979ea2d0a215cac359
1c98f534 moving array variable in flatten_value toavoid being clobbered by longjmp
git-subtree-dir: lispBM/lispBM
git-subtree-split: 1c98f534bb2e1fb059175d0ceef407aa25a4e4b2
7ed5cc62 simplifying eval_symbol a small bit
a378c2e2 cleaning and streamlining with a small performance benefit as bonus
f4661119 removed unused statistics fields from heap_state (functionality kind of duplicates profiler). Small reorganization of eval_symbol
96a118e5 tightened up the run_eval loop a small amount
574309a6 Laptop charger just exploded so uploading what I have locally. Additions to profiler and tweaks to GC
0278230b Added arithmetic stress tests
b0ad9619 added additional arith stress tests
5cb11cdf update lbmref and lbm_version.h
04d8483b Unified sleep and blocked queue, added profiler. Needs documentation and additional testing (WiP)
4a709753 timeout functionality added and restructuring of queue handling in main loop. Much testing needed
e2605f7b flatten value calculates the size of the memory buffer needed to create a flat value. flatten now takes only one argument, the value to flatten.
b79455aa added match test for const block
df35d9a6 attempt fix of issue showing up in pattern matching from constant code.
0021d4c5 removed left over printf and fix in flatten that could leak memory
a7abb204 flat values are now part of the language. lisp values can be flattened and unflattened. Added kill function for termination of threads
ea58c616 Added a flat value constructor for symbol as string
git-subtree-dir: lispBM/lispBM
git-subtree-split: 7ed5cc621360d19577c5b14836c5ecd9fd608a1d
c1b12e9d Fix bug: Attempt GC if creation of a symbol fails. Also added error reasons to string extensions and changed some eval_errors to type_error
141e7fb1 update lbmref
ae677d30 added a section about flash directives and functions in flash memory
git-subtree-dir: lispBM/lispBM
git-subtree-split: c1b12e9d2e30d6d6f611ed0edf905b067a43c9ac
c53ee21f fix lbmref
cecd5f29 update buclear in lbmref
4c7dad51 Storing symtable list structure in flash when @const-symbol-strings is active
ad974fbf setting flash string counter to 0 at init of symrepr
dbc14c56 added an @const-symbol-string evaluator flag for storage of symbols in flash memory
git-subtree-dir: lispBM/lispBM
git-subtree-split: c53ee21fbaae7f419e096914d2bc5d8528037d88
bad046b0 indentation fix
e7115787 bump version
fc2646ac slight improvements in read errors.
a3389b91 added env-get and env-set to runtime extensions
9ddb702d cleanup
b7472ae2 more details on flash error temporarily
0db26c7f slight cleanup, should be equivalent
git-subtree-dir: lispBM/lispBM
git-subtree-split: bad046b0ce19871caecdf061890744e6daaed095
5f69e529 cleanup dead code and left over printf after quasiquotation refactoring
80eac1a7 fix bug in quasiquotation expansion
a83fce26 remove duplicated line of code
git-subtree-dir: lispBM/lispBM
git-subtree-split: 5f69e5290b1d423fa35264849434927bce33c4c0
64ec946a tweak, potential fix array-to-flash
4c9d2b2e fix in writing array to flash. and revert of map
3f2693d8 experimental change in write array to flash
f341cf37 Fix a bug in MAP
git-subtree-dir: lispBM/lispBM
git-subtree-split: 64ec946ab7196efabd5375a0206e87dc65d1dd40
02887bfd Change implementation of car family in evaluator for immediate termination on error
7517c2e1 bug fix in wait-for and addition of a few tests
275a8e46 removed pointless usage of WITH_GC
143d024c bumped version
a4836c7d closing a number of warnings when building 64bits. some still remain
e61c28e9 closing some warnings on 64bit build - lots to go
68a09916 a small amount of cleaning.
bd91e152 wait-for + trigger mechanism has been added, but is untested
70c82228 adding tests of undefine
003887d8 fix severe bug in undefine
bdc30576 Added two undefine tests
4e694bc8 experimental wake-up lbm task framework, work in progress
38068776 cleaning and refactoring
7e814674 cleaning and consolidating
b05615fa cleaning and consolidation of functionality
2b986f7c small refactor for
ce05734d removed dead code in evaluation of the progn continuation
9eeae272 made global env a static variable in env.c
1eacbf3f refactoring. may save a few cpu cycles in list allocation and GC
git-subtree-dir: lispBM/lispBM
git-subtree-split: 02887bfd12a8d98f2e6f73b3dbd38b9ec222358a
15fd3dea change order of arguments in take and drop
14d19c68 added tests of spawn
476845e4 fix bug in spawn argument handling
git-subtree-dir: lispBM/lispBM
git-subtree-split: 15fd3dea56f361967ba69e69a8e37026f33dcd0b
c097f5c6 cleaning pass and refactoring
5384d522 refactoring application experiment
087ede4e refactor: readability, clearity and in some places - to a small degree - correctness
89575d8b small change to one event test
ba6e7fa7 logged change
16ac6bd1 logged change
089468b3 removing make-env. in-env in the interest of keeping core language small
f18015f7 Merge branch 'master' of github.com:svenssonjoel/lispbm
5b19dfda simplification and readability refactoring.
8c492889 Update gotchas.md
754221b9 Update gotchas.md
a0931bac bump version
e49071dc Changed behavior closure application to zero args. Application of a continuation (call-cc) with 0 args still uses the old approach where 0 args is equivalent to application to nil
35f495f3 mini tweak readme
fdd01ff1 update README
b21a3fa7 Update gotchas.md
92d9f561 update gotchas
0d708de7 bugfix in incremental reader and addition of a gotchas.md file for edge-case behaviors
d9a38456 updated lbmref with take and drop
86b1cc1b take, drop, change to make-env returned result
ea29f5ec added take and drop as built-in primitives and change to result env for make-env
55a5b1f5 added some tests and a small amount of doc
e2d2f745 tweaks
bccdee1f make-env and in-env
3a03232a added make-env and in-env for library-encapsulation
e5b5ba66 mini tweak
dce87812 removed extra ;
190b4d9e mini tweak
6864fa32 fix repl after removal of reading_done callback
ea3aba39 removed reading_done_callback and made the nonsense default variants for all remaining callback
427cb37c bugfix read-program, tightening up, cleaning
119d9fd3 refactoring and tightening up
10573404 cleaning and readability
63b750b5 small tweaks
d44c8bdc bug fix related to row numbers in error messages while doing incremental read. Now more precise.
d0125bd1 refactoring for readability. setjmp/longjmp for escape from deeply nested errors.
git-subtree-dir: lispBM/lispBM
git-subtree-split: c097f5c66bd539442a48d41a66da1c657af502a1
c9034e4a fix bug related to incremental read-eval-program
018cc540 added one more const_array sharing test
git-subtree-dir: lispBM/lispBM
git-subtree-split: c9034e4aed0bb437c90c8e8d5dab14e7d6c14ab3
aa1d5026 bug fix related to row numbering when doing incremental read
08138fd6 refactoring for readability and to a small degree code size-perhaps
b4a5306c adding another flash test2
ee03dc5e rough estimation of row-of-error if using the incremental reader
493c7a45 added a way to share a constant array from C to lbm in a way that lbm understands that it is constant
f973fb34 small tweak to evaluation_step
b2c136b4 removing a unused field from lbm_context_t
403a74b9 small tweaks to eval_cps
423aa39c small tweak lbmref
5a47f414 small tweak readme and small tweak lbmref
28bfb297 small tweak lbmref
git-subtree-dir: lispBM/lispBM
git-subtree-split: aa1d5026fbd01525c9511e6284447b60806d9a33
3fc70a5c Changing a number of fatal_errors to stack_errors and bugfix related to 64bit lbm
git-subtree-dir: lispBM/lispBM
git-subtree-split: 3fc70a5c88c7b6f0afe9f8e288bf4d918dbc50c4
32ad511c fix bug in reverse that is triggered by reversing a constant list
4864ee9e fix bug showing up evaluating a cond from flash
2c228d19 bug fix related to arithmetic involving constant values
54ac82ce fix bug that shows up at the end of a parse stream when reading incrementally
35df6a53 tests of read-eval-program
fffdb7cb readability and perhaps to a small degree code size
17bde5c3 Check that in flash 0xFFFFFFFF is only over written with something other than that once in the tests
git-subtree-dir: lispBM/lispBM
git-subtree-split: 32ad511c3f7bddd25350557be2e4d081d61caece
463551a4 added @const-start @const-end syntax to automatically apply move-to-flash to variables defined in such blocks
ebe7b66d slight refactoring of move-to-flash continuations
6a2a8c2d bugfix string-extensions and some cleaning
351bdea0 added read-eval-program for incremental read, keeping old meaning of read-program. Some cleaning and refactoring
git-subtree-dir: lispBM/lispBM
git-subtree-split: 463551a4d5cd42e7d19f5156913a020726a05088