Commit Graph

42 Commits

Author SHA1 Message Date
Benjamin Vedder 38a42ba203 Squashed 'lispBM/lispBM/' changes from 2837aa33..7ba933de
7ba933de lbm_lookup_extension_id now returns the actual extension symbol ID instead of the index into extension table
1c5c8da6 fix typo
0fb03637 defining different kinds of built-in symbols in some specific ranges. Cleaning out some old code.
b14dbe32 refactor of stack_push operations
4d1f5fd9 cont_closure_application_args refactor
aeb7d4d9 small tweak
8aafd407 expanding on the thuroughness of the ALWAYS_GC test mode
6eb4f614 clean out comments in cont_qq_expand_list
0d1e92b2 Bugfix in quasiquote expansion
c9bb4005 Added an ALWAYS_GC testmode and improved on the feedback from the tester
ccc3560a small refactor of cont_match and addition of 2 tests of match with guards
34609e1b tweaks and typo-fixes in lbmref.md
eb4e7def merror at lbm_lift_array if header cannot be allocated

git-subtree-dir: lispBM/lispBM
git-subtree-split: 7ba933de6261d5b33092f320adfc07050973b007
2024-01-22 14:54:32 +01:00
Benjamin Vedder a7d18b0376 Squashed 'lispBM/lispBM/' changes from 6fc68bd8..2837aa33
2837aa33 attempting to fix issue related to restoring incremental read status after exiting a nested reader
c85d3e90 added a test for dynamically loaded extensions

git-subtree-dir: lispBM/lispBM
git-subtree-split: 2837aa336b743c41e6d4b4b91530ff0d13a6901a
2024-01-11 14:02:10 +01:00
Benjamin Vedder 6d53c08df0 Squashed 'lispBM/lispBM/' changes from 9c2023ac..2542797b
2542797b extension storage changed
055ec467 f_sym takes a symbol_id not an encoded symbol. f_sym_string takes a c string representing a symbol
1475b1a7 added functions for retrieving storage locations for symbols and symbol list entry
d234d21d Added functions for accessing the data in array, ro and rw kinds
5e009396 re-enabling the callcc gc bugfix with a modification to rule out following non-pointers into memory

git-subtree-dir: lispBM/lispBM
git-subtree-split: 2542797b8124eac6dc2a9d0671c7d9c9711b6968
2024-01-10 21:15:00 +01:00
Benjamin Vedder 070e5cde9b Squashed 'lispBM/lispBM/' changes from 55553f58..d2f9c684
d2f9c684 removed the variable memory as the new hash-env seems to perform well enough
128813bf coercing all 64bit tests to pass
fc62e27a adding an nfibs example in experiment_repl
ecdb2720 extensions table outside of lbm memory, rearrange of lbm_init arguments
a95f3c94 moved variable storage to lbm memory
6d3af68d tiny tweak
c789fcc4 Work in progress moving stacks into lbm_memory

git-subtree-dir: lispBM/lispBM
git-subtree-split: d2f9c68466cc0cb19446bc3a9a06e5855b1690b0
2024-01-08 21:54:33 +01:00
Benjamin Vedder 999e87e80d Squashed 'lispBM/lispBM/' changes from 202b5763..55553f58
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
2024-01-08 20:40:17 +01:00
Benjamin Vedder badbe615c6 Squashed 'lispBM/lispBM/' changes from 9e5d4044..93b566b8
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
2023-10-22 12:47:00 +02:00
Benjamin Vedder 7e82cff0b9 Squashed 'lispBM/lispBM/' changes from 948bb6bc..9e5d4044
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
2023-10-06 15:54:52 +02:00
Benjamin Vedder ce6914364a Squashed 'lispBM/lispBM/' changes from fa3a730e..3047e3a3
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
2023-08-28 08:12:30 +02:00
Benjamin Vedder 4f511b67fa Squashed 'lispBM/lispBM/' changes from 64ec946a..48d50c69
48d50c69 Merge branch 'dev_gc_test'
77de6dbb tweak fundamental
3177a31f  fixes in reader and dynamic read.W
504c0c28 towards always gc debugging

git-subtree-dir: lispBM/lispBM
git-subtree-split: 48d50c695a577783379530c60f8942d76b142314
2023-06-18 14:58:29 +02:00
Benjamin Vedder f6eeba8336 Squashed 'lispBM/lispBM/' changes from 15fd3dea..02887bfd
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
2023-06-12 11:49:07 +02:00
Benjamin Vedder d664184ef8 Squashed 'lispBM/lispBM/' changes from 6a448aa3..c097f5c6
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
2023-05-22 08:17:23 +02:00
Benjamin Vedder eb0114b4dc Squashed 'lispBM/lispBM/' changes from aa1d5026..95368f36
95368f36 fix bugs in read program

git-subtree-dir: lispBM/lispBM
git-subtree-split: 95368f36e96d4a370ba6b00a01e2924187490823
2023-04-13 20:34:47 +02:00
Benjamin Vedder 9ef3986a97 Squashed 'lispBM/lispBM/' changes from d643c620..32ad511c
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
2023-04-06 13:58:44 +02:00
Benjamin Vedder acbd360c00 Squashed 'lispBM/lispBM/' changes from 6ec57e70..463551a4
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
2023-04-05 14:35:12 +02:00
Benjamin Vedder a4cbec1843 Squashed 'lispBM/lispBM/' changes from f7c74492..5659e40a
5659e40a low-level flash errors propagate into the evaluator
cd881c01 tweak lbmref
db42aac7 tweak lbmref
d1033e98 tweak lbmref
77783470 tweak refman bufcreate
d9575830 incremental read-evaluate. Removed all types of arrays except for byte-arrays
d5d5fdf1 type checking in array-extensions
ca072954 buflen is ok on constant arrays
90614b33 bugfix in lbm_channel string_write
de62dbd7 only one is_closure func

git-subtree-dir: lispBM/lispBM
git-subtree-split: 5659e40aac7a1e43b158a978e4e633ef118afeeb
2023-04-04 12:36:41 +02:00
Benjamin Vedder 5a9ec0efd6 Squashed 'lispBM/lispBM/' changes from 4c2ea9e9..ac1d06ab
ac1d06ab removed unused flash writing function pointer
bb241166 merging in move-to-flash functionality into main. Expect there to be some issues
d136d3f8 added an initial attempt at move-to-flash functionality
a3ebb098 more const tests and tweaks. Quasiquotation is NOT expanded to flash at the moment
9a6ff0ec initial flash experimentation
1ec412b4 Append works for 0 and 1 arguments
9d2d79b7 refaktoring of lbm_print_value
eae002ef changed printing of char/byte and arrayes thereof
139eb03b refactoring
9b437892 code readability refactoring
c9701a87 Refactoring for readability and perhaps to a small degree code-size. All tests pass
d56014a3 test for usage of var within atomic block

git-subtree-dir: lispBM/lispBM
git-subtree-split: ac1d06ab20170e38edcd4b204c295240b9b9a739
2023-04-02 16:35:42 +02:00
Benjamin Vedder 7e27031bb6 Squashed 'lispBM/lispBM/' changes from 07baa883..b7956e63
b7956e63 added deconstructive let bindings and local bindings within progn scope via var
7885f957 removed old extension no-longer needed from repl
c169cb8e output version number in lbm-repl
82baec1c Merge branch 'master' of github.com:svenssonjoel/lispbm
88787164 update chibios based benchmarking code
9d48ee29 Bugfix where lbm_memory_free is run twice in a row on custom-type upon gc
8bf35b4a tiny tweak readme
39c72751 update README
3b7bff88 mutex initialized check for buffered char channel
a2b1196c fix leaking mutex on tips from Benjamin
8cfa50dc Threads that are unblocked from C with an error status are terminated

git-subtree-dir: lispBM/lispBM
git-subtree-split: b7956e631b74587d5b4dd61e8b0fb51d53a149be
2023-03-20 19:49:33 +01:00
Benjamin Vedder 61f48a8fc6 Squashed 'lispBM/lispBM/' changes from 20e97c4b..07baa883
07baa883 small tweak to flatten/unflatten
3baa1619 flat values now contain a copy of arrays rather than a pointer to an array
c582416d improvement in lbm_lift_array
f4229a43 changes to find_receiver_and_send
d04a77dd switched to lbm_malloc in lbm_create_ctx
4e2e8ad4 fix buf in lbm_create_ctx thatcould potentially have allocated too little memory for a context
01f3c746 bux fix get_event_value, freed already freed lbm_memory array
2ed2560a bug in unflatten_value
7971a6eb change granularity of locks
51058b80 added an undo_block_ctx_from_extension function and resolved an issue with test_memory_3 on 64 bit platforms

git-subtree-dir: lispBM/lispBM
git-subtree-split: 07baa883ab18d2f12d69f36cf22aaf9f86954624
2023-02-18 10:54:32 +01:00
Benjamin Vedder 267eb0a204 Squashed 'lispBM/lispBM/' changes from db4994ce..0c731969
0c731969 applied small fix to malloc_reserve
50e22063 bug fixes in malloc and malloc_reserve, rearragements in event processing
3ab6cba9 There is now an artificial memory use limit that prohibits lbm_malloc from allocating all lbm_memory. To allocate without regards for the artificial limit use lbm_malloc_reserve
19745d9e flat_values are freed if event delivery not possible (no event handler). Unblock event will unblock blocked process even if there is no memory to unpack the flat_value into.

git-subtree-dir: lispBM/lispBM
git-subtree-split: 0c7319699d1150c366c1322f3ff986f45b2e4c0d
2023-02-15 15:58:44 +01:00
Benjamin Vedder bf1387e648 Squashed 'lispBM/lispBM/' changes from 1267d006..8dc4c6d9
8dc4c6d9 added updated version of test_lisp_code.c that can produce events with lists of float
49dd1d31 added event tests to punish flat_values a bit.
9a2e004a fix flat_value bug, removed dead code and correctly labeled write_word static
c9ee2c2d actually adding the flat_value files
215f3ba1 flat value implementation. A lot of testing needed
24d5184e experimental alternative way to transport values from C to LBM safely and with no need to pause. Work in progress
6d98ff61 restructuring for readability of GC and added queue locks. blocked context unblocking is done by the evaluator in a safe state. Safe state unblocking makes a bit harder to relay information about wether or not it was successful back to the thread issuing the unblock. So it may be a bad idea. It also makes the event queue obligatory
55ca904d added another arith stress test
87d21426 added another arith stress test
f64d4c04 small tweaks to the runtime-extensions
ab055958 added an arithmetic stresstest2
a802ed13 fundamentals have been unified with apply_funs. All tests pass but probably a period of bugginess ahead
f00d6b46 added lbm-version extension to runtime extensions and changed return value on allocate_list_init in case there is not enough memory
2445974a preparations for unification of apply_fun and fundamentals
114b9a60 removed rot-vector function from Math extensions and added exp
6e1e7ee0 changed return value of define and added loop extensions from Benjamin BLDC
79622417 added loop extensions. todo: add tests

git-subtree-dir: lispBM/lispBM
git-subtree-split: 8dc4c6d9c16f7fce9753737423b8700f477f75f0
2023-02-11 10:20:37 +01:00
Benjamin Vedder 65a3ed7ca4 Squashed 'lispBM/lispBM/' changes from 1eceb43f..1267d006
1267d006 added one more memory test
a9782eda added two tests that try to be quite hard on the lbm_memory.
5c0841f8 small additions to matvec
bcb1ad7f added vector multiplication by scalar
ce5025cc small additions to matvec.
1758b335 renamed blas_extensions to matvec extensions as they wont provide the same set of operations as a blas library usually does
2e48e6b4 fix silly typo in lbm_memory.c
62154010 only initialized mutices 1 time
d1dbfd7c added a test of events
cb97d623 only add events to the event queue if there is an event handler
7a642222 removed usage of send_message in process_events
e3a68115 events are moving into the evaluator
64239a9b tweaks to random extensions
d61950d9 removed a print from sierpinski
f8a1d586 added sierpinski and flake examples to sdlrepl
72d8e4f4 added random number extensions to sdlrepl
ba9c449a changed constants involved in the pseudorandom generator.
8806e369 remove left over debug printing
10cc7fab added random number generator extensions
184c756b added memory leakage tests for string extensions
4373713d work in progress linear_algebra extensions
135591bd added str-merge test
7bff0e97 added a test. more to follow
e1aad339 added a small set of runtime system related extensions
5495b5da updates to custom type interface.
4e3b408a rename strnlen to strlen_max
03644f64 pulling in string extensions from vedderb\bldc into string_extensions.c
294f013b grabbed a few extra array-extensions into array_extensions.c from Vedderb/BLDC
87f95e67 adding all the Math extensions from Vedder/BLDC to math_extensions.c

git-subtree-dir: lispBM/lispBM
git-subtree-split: 1267d006e90085920a3de720480dc2d19d71c8ff
2023-01-24 09:19:05 +01:00
Benjamin Vedder 6315a66e83 Squashed 'lispBM/lispBM/' changes from 075fd296..639eb007
639eb007 typo
b73a54df fix problem in map
9cdd9f88 fix bug in map when applied to the empty list
594e2290 tweak some error reasons and error conditions
875c4b5c Updated behaviours of eval, eval-program and read-program at zero arguments, eval-error with reason
3a7b54fb fix bug: strange behaviour of eval-program when given NO arguments
341bcb28 eval-program can now be applied to an empty list of programs
5ed43637 tweak to testing framework and addition of a test
cfff78b7 added some spawn-trap tests and slight tweaks to testing framework to accomodate concurrent LBM programs a tiny bit better
c49e6295 added two more tests of match with guards

git-subtree-dir: lispBM/lispBM
git-subtree-split: 639eb007af3c8692abc5df97e5b449b080219858
2022-11-14 14:45:27 +01:00
Benjamin Vedder 058bea75a5 Squashed 'lispBM/lispBM/' changes from bd485f20..c81eb021
c81eb021 tweak error message
12a8b067 added a built in reverse

git-subtree-dir: lispBM/lispBM
git-subtree-split: c81eb02194e1c556eef52811c11b2679bfb40908
2022-10-28 17:41:09 +02:00
Benjamin Vedder 1e2b53cbbc Squashed 'lispBM/lispBM/' changes from dde9b593..c2bd0cd0
c2bd0cd0 added some more range tests and updated the refman
d96fd1a3 reversing range if end point is smaller than starting point
15bd7eb4 update ref man and added a test of range
e83d6ca8 Added fundamental operation that creates a list numbers in a range. range
f0641f43 added a built in operation that computes the length of a proper list
952fb423 added indexing into lists from the rear. Use a negaive index to index from the rear of a list using ix
f6618b69 bugfix related to environment handling in match

git-subtree-dir: lispBM/lispBM
git-subtree-split: c2bd0cd0745acdc078e541a717ccc82642036018
2022-10-24 09:58:05 +02:00
Benjamin Vedder dccfe15135 Squashed 'lispBM/lispBM/' changes from 7756d581..b3d8a6b2
b3d8a6b2 removed functions that nolonger have a purpose
306722dc remove the possibility to step through program and reorganize the most critical loop structure
aa6eb5ca  remove encode, decode from refman
899d8579 update README and plot script
132e9364 updated readme with more detailed intro

git-subtree-dir: lispBM/lispBM
git-subtree-split: b3d8a6b21af4683af8837ad1a5106cf0d2d7eac9
2022-10-06 13:58:38 +02:00
Benjamin Vedder 1ee344e925 Squashed 'lispBM/lispBM/' changes from b2d5a55f..58e0abe5
58e0abe5 reduced the number of calls to strlen in the string_reader.

git-subtree-dir: lispBM/lispBM
git-subtree-split: 58e0abe5a1067d9e51403c23381407996d5c1d82
2022-09-18 07:58:57 +02:00
Benjamin Vedder 9bd826e646 Squashed 'lispBM/lispBM/' changes from 60d7c83f..c0fb4af8
c0fb4af8 Streaming reading or source into the heap
540f1e9a added n-times test for low-freq concurrency bug testing
5dcf25bf update chibios examples to use new reader
7775f92d starting to look good, needs more polish...
86ecd85b On the path
b0ce4e67 tweaks to next_token
c7ed1e3d Update and discovery of nondeterministicly appearing bug
a0a1b000 Ok start
090f54e9 experiment with channel abstraction
d4c1ba41 added some tests of array syntax

git-subtree-dir: lispBM/lispBM
git-subtree-split: c0fb4af806ad8d42365a1b8695d2603f640df662
2022-09-16 09:25:46 +02:00
Benjamin Vedder b9e666b3f3 Squashed 'lispBM/lispBM/' changes from 4cf1df6f..ab11994e
ab11994e added a number of array syntax tests
16bcb9a7 Added a check that should result in error if an array is too long to fit in memory
1a21875b small fix related to initial array size for literal byte arrays

git-subtree-dir: lispBM/lispBM
git-subtree-split: ab11994e551512c7e809a11b40f2922652bd94f0
2022-09-05 21:43:25 +02:00
Benjamin Vedder b82ab77c6c Squashed 'lispBM/lispBM/' changes from 6f442405..28c56c43
28c56c43 Update README.md
d975e8b6 update readme
9e0bbcba update readme
ad38f2d0 updated readme with a note about switch of scheduler
756f2d71 Round-robin scheduling quota can be set from the C code
45edcd9d update: fix typo
dade6935 Added atomic operator
4ff6665a Mostly ok round robin scheduling at this point I think.
a6af047a experimentation and planning
e69d36e7 fair round robin scheduler running but slow
3a0e6905 Merge branch 'master' into sched0
2784f8e5 bugfix symrepr.c
c464a78e work in progress
207a0b92 Merge branch 'master' into sched0
a916a1af experimentation and preparations
b9565fbb broke out a bunch of useful definitions into an lbm_defines.h file
1fb91025 update to platform_uart for chibios
16640653 additions to chibios platform uart and some additions to string extensions
6bfbb376 added array-clear
8e2bc4a3 Improvements to revamped reader
84ff5198 Considerable rewamping of the reader - passes all tests but there are some issues to resolve
bfdf352f minor tweak
f33fde26 Modifications to uart stream in platform chibios
571a1382 low-level character stream from a uart. This has some problems!
2f49efe9 Experimentation streams
4437c69e tweaks to platform uart
dd181414 fix typo in platform_uart.c for chibios
5b9ae388 chibios repl uart tested and seems ok
49409772 untested uart extensions in chibios repl
af5d03d8 untested uart implementation for chibios repl
5bde526b added one more test case for conditionals
dceb4d26 added some new tests
0f477d09 pedantry
dc5b08d9 Some pedantic tweaks to close some jump-misses-init warnings
c5aff865 A pass to make static analysis happy
0bdd23c3 update
12a93acc update ch3 with some small tweaks
ac881933 added more text to chapter3 about concurrency and message passing
d8589b75 update
59229152 update
85ef5a79 update lbmref description of namespace
4fd7e48f added information about namespace to lbmref
b93cd379 added some tests of namespaces and updated the compressor to allow the : character
48a99c13 Merge branch 'master' of github.com:svenssonjoel/lispbm
8f019213 updated behaviour of lbm_define related to #variables and the addition of simplistic namespaces
1d824a4e Update ch3_concurrency.md
dcb2ef38 wip
a0d5971d work in progress
4c9818c6 typo
06fbaac7 work in progress ch3
26a466e0 chapter 3 in progress
f376ae8e ch3 concurrency in progress
d1399247 added some images to manual ch2
ac813050 fix bug that surfaces if no dynamic load callback is present

git-subtree-dir: lispBM/lispBM
git-subtree-split: 28c56c436d3cb621a775bb648d60660563c5352e
2022-09-04 16:08:58 +02:00
Benjamin Vedder 08da2db380 Squashed 'lispBM/lispBM/' changes from 5c7c28f5..4d6badc8
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
2022-05-09 16:24:00 +02:00
Benjamin Vedder b0e227d28f Squashed 'lispBM/lispBM/' changes from ccca9778..db80cb7d
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
2022-04-12 10:44:49 +02:00
Benjamin Vedder 9a62433015 Squashed 'lispBM/lispBM/' changes from 6199703d..43ebce71
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
2022-03-25 15:47:05 +01:00
Benjamin Vedder 3d7749c5f2 Squashed 'lispBM/lispBM/' changes from 1420777c..9b375671
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
2022-03-06 19:32:20 +01:00
Benjamin Vedder e9e8db8597 Squashed 'lispBM/lispBM/' changes from ffbedbdf..ced143b0
ced143b0 set!
3e054ca0 troubleshooting segfaults, heap was freed (on C side before evaluation thread finished running GC

git-subtree-dir: lispBM/lispBM
git-subtree-split: ced143b0f6bb2cdc2e7a1c7575055a5fb8e0fab6
2022-03-01 19:10:34 +01:00
Benjamin Vedder 3a3ab9dae1 Squashed 'lispBM/lispBM/' changes from 19c6ca34..ffbedbdf
ffbedbdf remove left over debug print

git-subtree-dir: lispBM/lispBM
git-subtree-split: ffbedbdfab30b4df1d1385ecf069d28f66200132
2022-03-01 11:59:55 +01:00
Benjamin Vedder 0e09e51a45 Squashed 'lispBM/lispBM/' changes from f700e1a7..19c6ca34
19c6ca34 context ids are now set to the index into lbm_memory where the context structure is stored
1d92e257 tweak changelog
7bd40932 Process stack and context are now immediately removed from lbm_memory upon completion
3cf4ed9a Tests nolonger relies on wait_ctx to get the result of the test-program
9b21bc98 removing the context stack as soon as a process finishes

git-subtree-dir: lispBM/lispBM
git-subtree-split: 19c6ca34cfddc951f7eddcf55e4ece1cd8218462
2022-03-01 00:53:55 +01:00
Benjamin Vedder 21f14aea66 Squashed 'lispBM/lispBM/' changes from 6a219e20..7930b985
7930b985 tweak change log
e8869883 small amounts of optimization to eval_cps
ac3bd152 silly call-cc test
8dba90e3 Merge branch 'master' into dev
f4cf6a54 added one more test of array_extensions, packing and upacking floats
b27895cb added test for hex numbers
337c0eda fix bug in compression that applies to hexadecimal numnbers.
a55c5857 added another array_extensions test and fixed one bug
d255d69b added another array_extensions test
983024d4 array creation from lisp and one test added
65d8a498 bug fix array_extensions
47ddb8ae updates to array_extensions
cb5c3421 small tweaks to array-extensions, starting to maybe make sense
01233e92 some small additions to array_extensions
fb9db7ab mini-tweak array_extensions
a05aa268 fix bugs in lispbm.mk and add a test of variables2
ddca1665 small tweaks array-extensions
2466abc6 work in progress
0dc7ec7c work in progress with a library of array extensions
df142ceb added .clang_complete
5229ca5e planning, no code yet
cd6f5e3f Merge branch 'master' into dev
0f4c9bf2 added a rule for running tests from the makefile and tweaks test-script to only fail if there are unexpected failures
7a61f4e1 Merge branch 'master' into dev
9f8c9caf update lbm_version
feab23d3 Merge branch 'master' into dev
112c01df added array creation from C on the lbm_memory. GC will remove these
ca70c70a Merge branch 'master' into dev
f8e38cc2 Merge branch 'master' into dev
fc203669 Merge branch 'master' into dev
57af7182 Merge branch 'master' into dev
037e2352 commenting and version
977cd92a Merge branch 'master' into dev
34322bcf small tweak readme
1f22da9e fix recursion issue with macros
fec81a7b version tweak
8548884b macros and callcc
7eadf3cc added a macro test2
8152930d improvement to macro subsystem
cce45228 first sketch of macro expansion

git-subtree-dir: lispBM/lispBM
git-subtree-split: 7930b9854a05a8d09b40d078da94bb3743ef977b
2022-02-21 12:02:15 +01:00
Benjamin Vedder 7c57a0111f Squashed 'lispBM/lispBM/' changes from 1c2be895..c6d5de99
c6d5de99 GC is variable aware, pretty untested but does not break existing tests
1a872278 variables that GC is NOT aware of
b4a83ec4 fix tests and symrepr_init
6b5bee7d clear out extension table upon init

git-subtree-dir: lispBM/lispBM
git-subtree-split: c6d5de99af47caabc6ecd3fcbb49bd5584c08a1f
2022-02-15 19:09:10 +01:00
Benjamin Vedder cb919480b6 Squashed 'lispBM/lispBM/' changes from 0c09634e..1c2be895
1c2be895 extensions lookup is in an array and extensions occupy a specific range of symbol values

git-subtree-dir: lispBM/lispBM
git-subtree-split: 1c2be8958f937edf8a5fed394f88f55ca9eab382
2022-02-15 09:29:40 +01:00
Benjamin Vedder 84a79f8109 Squashed 'lispBM/lispBM/' changes from 1108de58..0535cf11
0535cf11 version 0.1.0
f7c1b0d1 fix bug in last commit and remove dead code
305d3dce change behaviour of spawn to take a closure + arguments. No multi-spawn in one call anymore
93697f7a cleaning and restructuring in the evaluator
1e0d70f8 tuning evaluation of functions some
419e34fd small tweaks doxy
84bec750 Removed the nil-entry from the environment. It should make no difference
09868fea update doxy
f02a9087 fixes to doxy
d2087165 more doxy and fix fundamental array operation
488a4c35 update doxy
799328fc update language ref man
050c34b9 more doxy work and some small tweaks to reader when it comes to quotes
3948e566 added bitwise operations
e777189b zephyr example compiles, testing needed
426b71e4 doxy planning
8264fd37 shift left and right
5a61bf41 tweak readme
c82f587e accepting that eval-program is a very predatory operation
728b6511 doc tweaks
41aedc57 update to doxy
7a53228e added function for sharing of arrays from C to lbm. little bit of doc.  TODO: test arrays
c4931b4a small update to doc
3e7f31fb small additions to doc
8325bf09 user now has to provide a recursion stack fro the print_value function
f1fdd5f7 The GC recursion stack has to be provided by the user now

git-subtree-dir: lispBM/lispBM
git-subtree-split: 0535cf11214a6ba8c81f86929deaad34c30b3790
2022-02-13 14:25:39 +01:00
Benjamin Vedder 0af11fc982 Squashed 'lispBM/lispBM/' changes from 748477b9..9559204f
9559204f added lbm_define to allow definitions to be added from C
d5390ade added a pause function that performs GC if less than N elements are free
9f7f015b mostly just rearrangements
2e96957d bugfix related to read after changes to array representation. New test added that shows a problem with read-program, this is a bit of a puzzle to solve. Something to ponder on for a while
aa6bfff9 can read multiple values from array to a list.
8b8daa6d Nothing of magnitude
313806c9 more preparations for lbm arrays pointing to C memory
9b361ba8 preparing for arrays that are shared between C and lbm. Dont know yet what to do about the possibility of concurrent modifications to these arrays
39257a5a doxy fix renamed files
955a5a2c update to doxy, still lots to do. Rename one file.
ae0d140f adding some built in functions for encoding and decoding to and from lists of value representing bytes

git-subtree-dir: lispBM/lispBM
git-subtree-split: 9559204fcfd0b403fdec524910c10d8bd57d0437
2022-02-01 20:40:07 +01:00
Benjamin Vedder fafa5c9779 Squashed 'lispBM/lispBM/' content from commit 748477b9
git-subtree-dir: lispBM/lispBM
git-subtree-split: 748477b953fbd06094fc17c1c6332bf5f9cea7d0
2022-01-29 17:26:45 +01:00