summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* altos/scheme: integer? is builtin on all versionsKeith Packard2017-12-12
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lambdakey-v1.0: Make stack largerKeith Packard2017-12-12
| | | | | | scheme doesn't like to run with less than a 1kB stack. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/scheme: inline some mem calls to reduce stack usage.Keith Packard2017-12-12
| | | | | | Also includes some code to display stack usage during collect calls. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/scheme: Use direct calls from frame to frame_vals mem functionsKeith Packard2017-12-12
| | | | | | Avoids the extra stack depth of the poly versions. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/scheme: More compiler warning cleanupsKeith Packard2017-12-12
| | | | | | Make local funcs static. Don't mix decls and code.x Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/scheme: apply const to places taking const strings.Keith Packard2017-12-12
| | | | | | Mostly printf and friends. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm: Align 'data' to 8 bytes, just like textramKeith Packard2017-12-12
| | | | | | | | | | | | | | The textram section must be aligned to 8 bytes to keep the linker happy. However, if that section contains no data, the declaration will set the __data_start__ value to that alignment, but the data section itself would start on a 4-byte alignment, potentially 4 bytes lower than the value indicated by __data_start__. This completely scrambles initialized memory as the startup code will copy the data segment to __data_start__, 4 bytes off of the actual data segment start. Fix this by forcing the data segment to also be aligned to 8 bytes. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/kernel: Allow ao_cmd to be built without taskingKeith Packard2017-12-12
| | | | | | Useful for single-threaded applications, like lambdakey Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lambdakey-v1.0: Get this building againKeith Packard2017-12-12
| | | | | | | | | | The lambdakey can't hold a full implementation of the scheme interpreter, so use only a subset, removing floats, bigints and vectors. Also reduce the pre-loaded lisp code as well. It's pretty spare at this point; but it does fill the ROM. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/scheme: Support scheme subsetting via feature settingsKeith Packard2017-12-12
| | | | | | | This provides for the creation of smaller versions of the interpreter, leaving out options like floating point numbers and vectors. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/scheme: Add ao_scheme_vector.cKeith Packard2017-12-12
| | | | | | Useful to include the code for implementing vectors Signed-off-by: Keith Packard <keithp@keithp.com>
* doc: Don't 'publish' release notes, don't build pdf release notesKeith Packard2017-12-11
| | | | | | | | All we use the release notes for is to include into the main AltOS page. Also remove the docinfo for these files so that information isn't duplicated for each set of release notes. Signed-off-by: Keith Packard <keithp@keithp.com>
* update Releasing with changes discovered in 1.8.3 release processBdale Garbee2017-12-11
|
* TeleMega default is now v3.0Bdale Garbee2017-12-11
|
* doc: Update release notes and docinfo for 1.8.3Keith Packard2017-12-11
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altoslib: Keep old GPS values when updating dataKeith Packard2017-12-11
| | | | | | | This way, updating satellite information doesn't drop all of the regular GPS data on the floor. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Actually store current MPU9250 data in data ringKeith Packard2017-12-11
| | | | | | | The ring is updated when the ADC finishes; all of the other sensor data needs to be copied in at that point. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Remove more software for hardware prototypesKeith Packard2017-12-11
| | | | | | These never saw the light of day. Signed-off-by: Keith Packard <keithp@keithp.com>
* take telescience out of the routine buildsBdale Garbee2017-12-11
|
* Bump to version 1.8.3Keith Packard2017-12-11
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* doc: Note TeleMega v3.0 support in 1.8.3 relnotesKeith Packard2017-12-11
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/drivers: Hook up mag sensor for MPU9250Keith Packard2017-12-11
| | | | | | | Set mag sensor to provide data at 100Hz. Set i2c master to pull mag data at sample rate (200Hz). Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/scheme: Allow ao_scheme_read_eval_print to be restartedKeith Packard2017-12-11
| | | | | | Reset exceptions at the top so that we can call it more than once. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Allow building with newlib + avr stdio on ARMKeith Packard2017-12-11
| | | | | | | Redefines some stdio bits so that we can build with either pdclib or newlib + avr stdio. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add scheme for stm discovery board demoKeith Packard2017-12-11
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/lambdakey-v1.0: Switch to newlib, get things compiling againKeith Packard2017-12-11
| | | | | | | scheme is now way too large to fit on this device; some subsetting is clearly indicated. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/scheme: Add Makefile for scheme test appKeith Packard2017-12-11
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/scheme: Make test scheme app heap maximum sizeKeith Packard2017-12-11
| | | | | | It's only 32kB. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/scheme: Make eqv? work for numbers and stringsKeith Packard2017-12-11
| | | | | | | Large numbers, floats and strings need a value check, not just a comparison between ao_polys Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/scheme: Stash cons across value allocation in compareKeith Packard2017-12-11
| | | | | | | Large ints, strings and floats can cause allocation, requiring that the 'cons' pointer be stashed and retrieved in case it moved. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/scheme: add list-copyKeith Packard2017-12-11
| | | | | | A lot easier as a built-in; the obvious scheme version is recursive. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/scheme: Use 64-bit ints to track memory allocation statsKeith Packard2017-12-11
| | | | | | | These are only collected for debug purposes, but can get quite large if the interpreter runs for a while. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/scheme: Add a bunch of string and vector builtinsKeith Packard2017-12-11
| | | | | | Just make the language closer to r7rs Signed-off-by: Keith Packard <keithp@keithp.com>
* TeleMega v3.0 turnon scriptsBdale Garbee2017-12-11
|
* Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altosBdale Garbee2017-12-11
|\
| * altos/scheme: Avoid crashing with non-list in lengthKeith Packard2017-12-10
| | | | | | | | | | | | | | Use ao_scheme_cons_cdr to fetch the next list element as that returns NULL for non-cons elements. Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos/scheme: Add vectorsKeith Packard2017-12-10
| | | | | | | | | | | | Constant time and smaller can be a feature. Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos/scheme: Fix name of constant scheme fileKeith Packard2017-12-10
| | | | | | | | | | | | .lisp -> .scheme Signed-off-by: Keith Packard <keithp@keithp.com>
| * altoslib: Fix 8 to 12 bit conversion for Mega pyro voltage dataKeith Packard2017-12-09
| | | | | | | | | | | | | | The conversion was losing the replicated top four bits by shifting by the wrong amount. Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos/scheme: Let readline know if there's a list in progressKeith Packard2017-12-09
| | | | | | | | | | | | | | This lets the interactive prompt change based on what state the lexer is in Signed-off-by: Keith Packard <keithp@keithp.com>
* | Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altosBdale Garbee2017-12-05
|\|
| * altos/drivers: Start adding defines to get mag data out of MPU9250Keith Packard2017-12-05
| | | | | | | | Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos/cortexelf-v1: Adapt to lisp->scheme name changeKeith Packard2017-12-05
| | | | | | | | Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos/scheme: Add explicit dependency on ao_scheme_builtin.h for ↵Keith Packard2017-12-05
| | | | | | | | | | | | | | | | | | ao_scheme_make_const This ensures that a parallel build will wait for ao_scheme_builtin.h to be complete before attempting to compile ao_scheme_make_const Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos/scheme: Move scheme test program to scheme sub-directoryKeith Packard2017-12-05
| | | | | | | | | | | | Keeps it away from the usual test setup Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos/scheme: Rename to 'scheme', clean up buildKeith Packard2017-12-05
| | | | | | | | | | | | | | | | | | Constant block is now built in a subdir to avoid messing up source directory. Renamed to ao_scheme to reflect language target. Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos/lisp: Switch to scheme formal syntax for varargsKeith Packard2017-12-03
| | | | | | | | | | | | | | | | | | | | Scheme uses bare symbols to indicate a varargs parameter; any bare (i.e., not wrapped in a cons cell) parameter will get the 'rest' of the parameter list. This works for lambdas, nlambdas and macros. As a result, the 'lexpr' form has been removed as it is equivalent to a lambda with a varargs formal. Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos/lisp: Fix stash usage across frame allocationKeith Packard2017-12-03
| | | | | | | | | | | | | | Must un-stash before allocation failure check. Use frame_stash instead of poly_stash for frames. Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos/lisp: Check only cdr base type when moving cons cellsKeith Packard2017-12-03
| | | | | | | | | | | | | | | | The cdr may have moved, so we can't look at the target object type. Fortunately, the base type encoded in the reference itself is sufficient to check for a non-cons cdr. Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos/lisp: Split out read debug, add memory validationKeith Packard2017-12-03
| | | | | | | | | | | | | | | | Split read debug into a separate #define to reduce debug noise Add some memory validation -- validate stash API, and validate cons_free calls. Signed-off-by: Keith Packard <keithp@keithp.com>