bldc/include/eval_cps.h

279 lines
9.2 KiB
C
Raw Normal View History

/*
Copyright 2018, 2020, 2021, 2022 Joel Svensson svenssonjoel@yahoo.se
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/** \file eval_cps.h */
#ifndef EVAL_CPS_H_
#define EVAL_CPS_H_
#include "lbm_types.h"
#include "stack.h"
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 07:08:58 -07:00
#ifdef __cplusplus
extern "C" {
#endif
#define EVAL_CPS_STATE_INIT 0
#define EVAL_CPS_STATE_PAUSED 1
#define EVAL_CPS_STATE_RUNNING 2
#define EVAL_CPS_STATE_STEP 3
#define EVAL_CPS_STATE_KILL 4
/** The eval_context_t struct represents a lispbm process.
*
*/
typedef struct eval_context_s{
lbm_value program;
lbm_value curr_exp;
lbm_value curr_env;
lbm_value mailbox; /*massage passing mailbox */
lbm_value r;
char *error_reason;
bool done;
bool app_cont;
lbm_stack_t K;
/* Process control */
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 07:47:05 -07:00
lbm_uint timestamp;
lbm_uint sleep_us;
lbm_cid id;
/* List structure */
struct eval_context_s *prev;
struct eval_context_s *next;
} eval_context_t;
/** A function pointer type to use together with the queue iterators.
*
* \param
* \param
* \param
*/
typedef void (*ctx_fun)(eval_context_t *, void*, void*);
/* Common interface */
/** Get the global environment
*
* \return global environment.
*/
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 07:08:58 -07:00
lbm_value eval_cps_get_env(void);
/* Concurrent interface */
/** Initialize the evaluator.
*
* \return 1 on success and 0 on failure.
*/
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 07:08:58 -07:00
int lbm_eval_init(void);
/** Set a new value to use as step quota.
* This changes the scheduling interval.
* \param quota The new quota.
*/
void lbm_set_eval_step_quota(uint32_t quota);
/** Remove a context that has finished executing and free up its associated memory.
*
* \param cid Context id of context to free.
* \param v Pointer to an lbm_value to store the result computed by the program into.
* Note that for comples values, GC will free these up the next time it runs.
* \return 1 if a context was successfully removed otherwise 0.
*/
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 07:08:58 -07:00
int lbm_remove_done_ctx(lbm_cid cid, lbm_value *v);
/** Wait until a given cid is not present in any of the queues.
* If you have spawned this cid, you can conclude that it has
* run to completion or failure.
*
* \param cid Context id to wait for.
* \param timeout_ms timeout in ms or 0 for no timeout.
* \return Result computed by the program running in the context.
*/
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 07:08:58 -07:00
bool lbm_wait_ctx(lbm_cid cid, lbm_uint timeout_ms);
/** Creates a context and initializes it with the provided program. The context
* is added to the ready queue and will start executing when the evaluator is free.
*
* \param lisp Program to launch
* \return a context id on success and 0 on failure to launch a context.
*/
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 07:08:58 -07:00
lbm_cid lbm_eval_program(lbm_value lisp);
/** An extended version of lbm_eval_program that allows specification of stack size to use.
*
* \param lisp Program to launch.
* \param stack_size Size of the continuation stack for this context.
* \return a context id on success and 0 on failure to launch a context.
*/
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 07:08:58 -07:00
lbm_cid lbm_eval_program_ext(lbm_value lisp, unsigned int stack_size);
/** This function executes the evaluation loop and does not return.
* lbm_run_eval should be started in a new thread provided by the underlying HAL or OS.
*/
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 07:08:58 -07:00
void lbm_run_eval(void);
/** Indicate that the evaluator should pause at the next iteration.
* You cannot assume that the evaluator has paused unless you call lbm_get_eval_state and get the
* return value EVAL_CPS_STATE_PAUSED.
*/
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 07:08:58 -07:00
void lbm_pause_eval(void);
/** Pause the evaluator and perform GC if needed.
*
* \param num_free Perform GC if there are less than this many elements free on the heap.
*/
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 07:08:58 -07:00
void lbm_pause_eval_with_gc(uint32_t num_free);
/** Perform a single step of evaluation.
* The evaluator should be in EVAL_CPS_STATE_PAUSED before running this function.
* After taking one step of evaluation, the evaluator will return to being in the
* EVAL_CPS_STATE_PUASED state.
*/
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 07:08:58 -07:00
void lbm_step_eval(void);
/** Perform multiple steps of evaluation.
* \param n Number of eval steps to perform.
*/
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 07:08:58 -07:00
void lbm_step_n_eval(uint32_t n);
/** Resume from being in EVAL_CPS_STATE_PAUSED.
*
*/
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 07:08:58 -07:00
void lbm_continue_eval(void);
/** This will kill the evaluator on the next iteration.
*
*/
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 07:08:58 -07:00
void lbm_kill_eval(void);
/** Get the current state of the evaluator.
*
* \return Current state of the evaluator.
*/
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 07:08:58 -07:00
uint32_t lbm_get_eval_state(void);
/** Provide a description of an error as a string.
* Use when implementing for example extensions to
* report an error message to the programmer in case
* the extension is used incorrectly.
*
* The error string can be allocated in lbm_memory
* and will in that case be freed when the context
* that errored is removed.
* \param error_str
* \return 1 on success and 0 on failure.
*/
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 07:08:58 -07:00
int lbm_set_error_reason(char *error_str);
/** Create a context and enqueue it as runnable.
*
* \param program The program to evaluate in the context.
* \param env An initial environment.
* \param stack_size Stack size for the context.
* \return
*/
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 07:08:58 -07:00
lbm_cid lbm_create_ctx(lbm_value program, lbm_value env, lbm_uint stack_size);
/** Block a context from an extension
*/
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 07:08:58 -07:00
void lbm_block_ctx_from_extension(void);
/** Unblock a context that has been blocked by a C extension
* Trying to unblock a context that is waiting on a message
* in a mailbox is not encouraged
* \param cid Lisp process to wake up.
* \param result Value passed to the lisp process as the result from the blocking function.
*/
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 07:08:58 -07:00
bool lbm_unblock_ctx(lbm_cid cid, lbm_value result);
/** Iterate over all ready contexts and apply function on each context.
*
* \param f Function to apply to each context.
* \param arg1 Pointer argument that can be used to convey information back to user
* \param arg2 Same as above.
*/
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 07:08:58 -07:00
void lbm_running_iterator(ctx_fun f, void*, void*);
/** Iterate over all blocked contexts and apply function on each context.
*
* \param f Function to apply to each context.
* \param arg1 Pointer argument that can be used to convey information back to user
* \param arg2 Same as above
*/
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 07:08:58 -07:00
void lbm_blocked_iterator(ctx_fun f, void*, void*);
/** Iterate over all done contexts and apply function on each context.
*
* \param f Function to apply to each context.
* \param arg1 Pointer argument that can be used to convey information back to user
* \param arg2 Same as above
*/
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 07:08:58 -07:00
void lbm_done_iterator(ctx_fun f, void*, void*);
/** toggle verbosity level of error messages
*/
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 07:08:58 -07:00
void lbm_toggle_verbose(void);
/** Set verbosity level of lispbm error messages.
*
* \param verbose Boolean to turn verbose errors on or off.
*/
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 07:08:58 -07:00
void lbm_set_verbose(bool verbose);
/** Set a usleep callback for use by the evaluator thread.
*
* \param fptr Pointer to a sleep function.
*/
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 07:08:58 -07:00
void lbm_set_usleep_callback(void (*fptr)(uint32_t));
/** Set a timestamp callback for use by the evaluator thread.
*
* \param fptr Pointer to a timestamp generating function.
*/
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 07:08:58 -07:00
void lbm_set_timestamp_us_callback(uint32_t (*fptr)(void));
/** Set a "done" callback function. This function will be called by
* the evaluator when a context finishes execution.
*
* \param fptr Pointer to a "done" function.
*/
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 07:08:58 -07:00
void lbm_set_ctx_done_callback(void (*fptr)(eval_context_t *));
/** Set a "printf" callback function. This function will be called by
* the evaluator to report error strings back to the user.
*
* \param fptr Pointer to a "printf" function.
*/
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 07:08:58 -07:00
void lbm_set_printf_callback(int (*prnt)(const char*, ...));
/** Set a callback for dynamically loading code associated with
* an undefined symbol
*/
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 07:08:58 -07:00
void lbm_set_dynamic_load_callback(bool (*fptr)(const char *, const char **));
/** Set a callback that is run when reading source is finishes
* within a context
*/
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 07:08:58 -07:00
void lbm_set_reader_done_callback(void (*fptr)(lbm_cid));
/** Get the CID of the currently executing context.
* Should be called from an extension where there is
* a guarantee that a context is running
*/
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 07:08:58 -07:00
lbm_cid lbm_get_current_cid(void);
/** Create a token stream for parsing for code
*
* \param str character stream to convert into a token stream.
* \return token stream.
*/
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 07:08:58 -07:00
lbm_value lbm_create_token_stream(lbm_tokenizer_char_stream_t *str);
/** Explicitly free a stream (if something breaks while creating it)
* The stream must not have been made available to the program
* \param stream The stream to free
*/
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 07:08:58 -07:00
int lbm_explicit_free_token_stream(lbm_value stream);
/** deliver a message
*
* \param cid Process to deliver to.
* \param msg Message to deliver
* \return lbm_enc_sym(SYM_NIL) on failure and lbm_enc_sym(SYM_TRUE) on success.
*/
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 07:08:58 -07:00
lbm_value lbm_find_receiver_and_send(lbm_cid cid, lbm_value msg);
/** Perform garbage collection,
* If this is called from another thread than the eval thread, evaluation must be
* paused! Or there will be lots of trouble!
*
* \return 1 on success
*/
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 07:08:58 -07:00
int lbm_perform_gc(void);
#ifdef __cplusplus
}
#endif
#endif