]>
git.gag.com Git - fw/altos/log
Keith Packard [Mon, 8 Jan 2018 01:43:42 +0000 (17:43 -0800)]
altos/stmf0: use double buffering for USB rx data
This also allows us to stop shadowing USB rx buffers in system ram
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sun, 7 Jan 2018 20:43:13 +0000 (12:43 -0800)]
altos/stmf0: Use double buffering for USB tx data
This shouldn't have much of an effect, but shows how double buffering
works.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sun, 7 Jan 2018 19:51:07 +0000 (11:51 -0800)]
altos/stmf0: Stop shadowing USB tx buffers in system RAM
Use the 16-bit USB memory directly, avoiding the buffer space and the copy
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sun, 7 Jan 2018 19:49:09 +0000 (11:49 -0800)]
altos/stmf0: Remove packet counters from non-debug build
These counters are only useful for helping debug the USB driver.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sun, 7 Jan 2018 19:47:57 +0000 (11:47 -0800)]
altos/kernel: Use ao_put_string for syntax error message
Avoid using puts, which can be a large library function.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sun, 7 Jan 2018 02:11:19 +0000 (18:11 -0800)]
altos/lambdakey-v1.0: Switch back to command buffered input
Instead of just reading from stdin with no echo or editing.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sun, 7 Jan 2018 01:29:10 +0000 (17:29 -0800)]
altos/scheme: Add ports. Split scheme code up.
And lots of other changes, including freeing unreferenced atoms.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sun, 7 Jan 2018 01:21:45 +0000 (17:21 -0800)]
altos/scheme: add 'install' target to install both test and tiny test
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Thu, 4 Jan 2018 10:28:13 +0000 (02:28 -0800)]
altos/scheme: Add vector and string funcs. Test everybody.
Add a bunch of string and vector functions from r7rs. I think most
everything is here now.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Thu, 4 Jan 2018 10:27:11 +0000 (02:27 -0800)]
altos/scheme: Accept more escaped character constants
Allow all those specified in r7rs
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Thu, 4 Jan 2018 10:26:21 +0000 (02:26 -0800)]
altos/scheme: Allow make-vector value param to be optional
It can default to #f
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Thu, 4 Jan 2018 10:25:45 +0000 (02:25 -0800)]
altos/scheme: Add builtin list-tail
This is used enough to warrant a builtin, rather than lisp implementation
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Thu, 4 Jan 2018 10:24:15 +0000 (02:24 -0800)]
altos/scheme: Fix macro-detection debugging
Just update to use ao_scheme_printf
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Thu, 4 Jan 2018 10:23:40 +0000 (02:23 -0800)]
altos/scheme: add make-string builtin
Allocate a blank string.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Thu, 4 Jan 2018 10:22:02 +0000 (02:22 -0800)]
altos/scheme: Make constant built pool as large as possible
This allows building with as much constant data as will fit.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 3 Jan 2018 22:58:57 +0000 (14:58 -0800)]
altos/scheme: Make for-each tail recursive
Provides a native version of for-each that is tail recursive, rather
than having it just use map and discard the return value.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 3 Jan 2018 22:57:39 +0000 (14:57 -0800)]
altos/scheme: Add start/end args to vector->list
This is an r7rs extension which allows you to extract a subset of the
vector.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 3 Jan 2018 22:56:15 +0000 (14:56 -0800)]
altos/scheme: fix parsing of vector followed by list
The 'parsing a vector' state value wasn't getting cleared at the end
of the vector, so that (#(1 2) (3 4) returned (#(1 2) #(3 4)
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 3 Jan 2018 22:55:24 +0000 (14:55 -0800)]
altos/scheme: support %x format for scheme printf
read debugging uses this format.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 3 Jan 2018 22:53:48 +0000 (14:53 -0800)]
altos/scheme: Add support for hex, octal and binary constants
Signed-off-by: Keith Packard <keithp@keithp.com>
Bdale Garbee [Wed, 3 Jan 2018 20:43:29 +0000 (14:43 -0600)]
need to push telegps-v2.0 loader .bin file to corporate repo, too
Keith Packard [Sun, 24 Dec 2017 22:29:09 +0000 (14:29 -0800)]
altos/scheme: Pull out per-frame vals while printing list of frames
Was using the same vals for all frames, which just doesn't work well.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sun, 24 Dec 2017 22:28:29 +0000 (14:28 -0800)]
altos/scheme: Add separate floor-quotient builtin
Does what 'quotient' did before, now quotient rounds towards zero
while floor-quotient rounds down.
Signed-off-by: Keith Packard <keithp@keithp.com>
Bdale Garbee [Fri, 22 Dec 2017 03:40:28 +0000 (20:40 -0700)]
update Releasing with wisdom from 1.8.4 release process
Keith Packard [Fri, 22 Dec 2017 01:37:10 +0000 (17:37 -0800)]
Bump for version 1.8.4
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Fri, 22 Dec 2017 01:36:24 +0000 (17:36 -0800)]
Doc updates for version 1.8.4
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 20 Dec 2017 00:57:33 +0000 (16:57 -0800)]
altos/micropeak: Remove all compiler results
Not just the current version.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 20 Dec 2017 00:56:33 +0000 (16:56 -0800)]
altos/attiny: Add ADC implementation
It's primitive, but might serve to read ADC values. Untested.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 20 Dec 2017 00:21:23 +0000 (16:21 -0800)]
ao-bringup: turnon_easymini was left with dfu_util disabled
This was presumably changed for some test and left in the wrong
state.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 20 Dec 2017 00:19:40 +0000 (16:19 -0800)]
altos/easymini-v2.0: Adapt to final hardware pin assignment changes
Beeper moved from PB0 to PB1 (Tim3 CH4)
Drogue fire moved from PB6 to PB3
Bootloader moved from PB1 to PB6
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 19 Dec 2017 21:09:24 +0000 (13:09 -0800)]
altos/lambdakey-v1.0: Add back and/or macros
With scheme shrinking a bit, there's now space for these useful macros.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 19 Dec 2017 20:39:20 +0000 (12:39 -0800)]
altos/scheme: Replace per-type indexed stash with poly stash heap
Instead of having a random set of stash arrays with explicit indices
used by callers, just have a general heap. Less error prone, and less code.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 19 Dec 2017 20:16:24 +0000 (12:16 -0800)]
altos/scheme: Replace memory pool macros with inlines
AO_SCHEME_IS_CONST -> ao_scheme_is_const_addr
AO_SCHEME_IS_POOL -> ao_scheme_is_pool_addr
Provides better typechecking and avoids confusion with
ao_scheme_is_const inline (which takes an ao_poly instead of a void *)
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 19 Dec 2017 19:51:33 +0000 (11:51 -0800)]
altos/scheme: AO_SCHEME_IS_CONS -> ao_scheme_is_cons
This inline was already defined; just use it. Also, switch some places
to use ao_scheme_is_pair instead as appropriate.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 19 Dec 2017 19:43:23 +0000 (11:43 -0800)]
altos/scheme: ao_scheme__cons -> ao_scheme_cons
Fix the double underscore in this name. Ick.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 19 Dec 2017 19:40:08 +0000 (11:40 -0800)]
altos/scheme: Don't optimize ao_scheme_make_const
Performance isn't interesting, and it's nice to have a bare system
ready for debugging.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 19 Dec 2017 19:39:39 +0000 (11:39 -0800)]
altos/scheme: Clean up test CFLAGS
make it easy to switch between debug and optimized builds.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 19 Dec 2017 19:37:33 +0000 (11:37 -0800)]
altos/scheme: (define (foo . bar)) has a pair, not list as card
When defining a lambda with varargs, the args are not a list as the
final element is not a pair or nil. Use pair? instead of list? to
detect this form correctly.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 19 Dec 2017 19:35:09 +0000 (11:35 -0800)]
altos/scheme: apply also needs to not free value list on lambdas
When apply is invoked on any function, the cons in the argument list
cannot be immediately freed as they have been passed to the
function. That applies to both built-ins as well as lambdas; this
patch removes the special ao_scheme_skip_cons_free global and just
marks the stack in both cases.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 19 Dec 2017 19:33:36 +0000 (11:33 -0800)]
altos/scheme: Rework display/write code
Unify output functions and add bool to switch between write and
display mode. Make that only affect strings (as per r⁷rs).
Use print recursion detection in frame and stack code, eliminating
PRINT flags in type field.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 18 Dec 2017 10:14:57 +0000 (02:14 -0800)]
altos/scheme: Compile scheme test with -O3
This level of optimization caused trouble, so use it all of the time.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 18 Dec 2017 10:12:04 +0000 (02:12 -0800)]
altos/scheme: Work around gcc 7.2.0 optimization bug in memory manager
After marking a set of memory chunks, it's possible that all of them
will be packed tight against 'top', in which case none of them will be
moving. In that case, gcc 7.2.0 appears to generate incorrect code
causing the loop to be abandoned, meaning that we don't actually
collect anything at all.
Add a quick short-circuit test just after the mark phase that skips
the code which wouldn't do anything in this case.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 18 Dec 2017 10:11:07 +0000 (02:11 -0800)]
altos/scheme: rearrange debugging defines
Allow applications to redefine these as desired, add more flexibility
in what the various memory debugging flags can do.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 18 Dec 2017 10:08:23 +0000 (02:08 -0800)]
altos/scheme: abort when we try to print an invalid value
This can catch a host of interpreter bugs; best to abandon the program
when it happens.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 18 Dec 2017 06:22:50 +0000 (22:22 -0800)]
altos/scheme: Use memory manager mark code to note recursive print
This flags any object being printed and checks before recursing to
avoid infinite loops.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 18 Dec 2017 06:19:38 +0000 (22:19 -0800)]
altos/scheme: Use AO_SCHEME_IS_CONS in cons memory funcs
More efficient than ao_scheme_poly_type as it doesn't care about
non-prim types.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Fri, 15 Dec 2017 07:10:43 +0000 (23:10 -0800)]
ao-bringup/test-chaoskey: Make finding most recent device more reliable
Use dmesg -t to strip off the timestamp, which avoids having a
variable number of fields for awk to look at.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Fri, 15 Dec 2017 07:09:02 +0000 (23:09 -0800)]
altos/lambdakey-v1.0: shrink scheme code to fit the ROM
scheme has grown a bit; adapt
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Fri, 15 Dec 2017 07:04:39 +0000 (23:04 -0800)]
altos/scheme: swap BIGINT and STRING types
This lets BIGINT be a primitive type, allowing it to use all 32 bits
for storage. This does make strings another byte longer, and also
slightly harder to deal with. It's a trade off.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 13 Dec 2017 02:07:06 +0000 (18:07 -0800)]
altos/scheme: integer? is builtin on all versions
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 13 Dec 2017 02:02:17 +0000 (18:02 -0800)]
altos/lambdakey-v1.0: Make stack larger
scheme doesn't like to run with less than a 1kB stack.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 13 Dec 2017 02:01:21 +0000 (18:01 -0800)]
altos/scheme: inline some mem calls to reduce stack usage.
Also includes some code to display stack usage during collect calls.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 13 Dec 2017 02:00:12 +0000 (18:00 -0800)]
altos/scheme: Use direct calls from frame to frame_vals mem functions
Avoids the extra stack depth of the poly versions.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 13 Dec 2017 01:59:26 +0000 (17:59 -0800)]
altos/scheme: More compiler warning cleanups
Make local funcs static. Don't mix decls and code.x
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 13 Dec 2017 01:54:03 +0000 (17:54 -0800)]
altos/scheme: apply const to places taking const strings.
Mostly printf and friends.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 12 Dec 2017 23:31:27 +0000 (15:31 -0800)]
altos/stm: Align 'data' to 8 bytes, just like textram
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>
Keith Packard [Tue, 12 Dec 2017 23:30:45 +0000 (15:30 -0800)]
altos/kernel: Allow ao_cmd to be built without tasking
Useful for single-threaded applications, like lambdakey
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 12 Dec 2017 23:27:26 +0000 (15:27 -0800)]
altos/lambdakey-v1.0: Get this building again
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>
Keith Packard [Tue, 12 Dec 2017 23:25:51 +0000 (15:25 -0800)]
altos/scheme: Support scheme subsetting via feature settings
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>
Keith Packard [Tue, 12 Dec 2017 23:15:41 +0000 (15:15 -0800)]
altos/scheme: Add ao_scheme_vector.c
Useful to include the code for implementing vectors
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 12 Dec 2017 06:36:00 +0000 (22:36 -0800)]
doc: Don't 'publish' release notes, don't build pdf release notes
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>
Bdale Garbee [Tue, 12 Dec 2017 05:15:46 +0000 (22:15 -0700)]
update Releasing with changes discovered in 1.8.3 release process
Bdale Garbee [Tue, 12 Dec 2017 04:33:21 +0000 (21:33 -0700)]
TeleMega default is now v3.0
Keith Packard [Tue, 12 Dec 2017 00:30:46 +0000 (16:30 -0800)]
doc: Update release notes and docinfo for 1.8.3
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 11 Dec 2017 22:42:45 +0000 (14:42 -0800)]
altoslib: Keep old GPS values when updating data
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>
Keith Packard [Mon, 11 Dec 2017 22:08:32 +0000 (14:08 -0800)]
altos: Actually store current MPU9250 data in data ring
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>
Keith Packard [Mon, 11 Dec 2017 21:47:54 +0000 (13:47 -0800)]
altos: Remove more software for hardware prototypes
These never saw the light of day.
Signed-off-by: Keith Packard <keithp@keithp.com>
Bdale Garbee [Mon, 11 Dec 2017 21:44:15 +0000 (14:44 -0700)]
take telescience out of the routine builds
Keith Packard [Mon, 11 Dec 2017 20:23:29 +0000 (12:23 -0800)]
Bump to version 1.8.3
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 11 Dec 2017 20:23:00 +0000 (12:23 -0800)]
doc: Note TeleMega v3.0 support in 1.8.3 relnotes
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 5 Dec 2017 20:22:34 +0000 (12:22 -0800)]
altos/drivers: Hook up mag sensor for MPU9250
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>
Keith Packard [Mon, 11 Dec 2017 02:35:53 +0000 (18:35 -0800)]
altos/scheme: Allow ao_scheme_read_eval_print to be restarted
Reset exceptions at the top so that we can call it more than once.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 11 Dec 2017 02:34:49 +0000 (18:34 -0800)]
altos: Allow building with newlib + avr stdio on ARM
Redefines some stdio bits so that we can build with either pdclib or
newlib + avr stdio.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 11 Dec 2017 02:32:18 +0000 (18:32 -0800)]
altos: Add scheme for stm discovery board demo
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 11 Dec 2017 02:21:01 +0000 (18:21 -0800)]
altos/lambdakey-v1.0: Switch to newlib, get things compiling again
scheme is now way too large to fit on this device; some subsetting is
clearly indicated.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 11 Dec 2017 00:55:57 +0000 (16:55 -0800)]
altos/scheme: Add Makefile for scheme test app
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 11 Dec 2017 00:54:50 +0000 (16:54 -0800)]
altos/scheme: Make test scheme app heap maximum size
It's only 32kB.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 11 Dec 2017 00:53:25 +0000 (16:53 -0800)]
altos/scheme: Make eqv? work for numbers and strings
Large numbers, floats and strings need a value check, not just a
comparison between ao_polys
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 11 Dec 2017 00:52:26 +0000 (16:52 -0800)]
altos/scheme: Stash cons across value allocation in compare
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>
Keith Packard [Mon, 11 Dec 2017 00:51:25 +0000 (16:51 -0800)]
altos/scheme: add list-copy
A lot easier as a built-in; the obvious scheme version is recursive.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 11 Dec 2017 00:50:06 +0000 (16:50 -0800)]
altos/scheme: Use 64-bit ints to track memory allocation stats
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>
Keith Packard [Sun, 10 Dec 2017 21:13:27 +0000 (13:13 -0800)]
altos/scheme: Add a bunch of string and vector builtins
Just make the language closer to r7rs
Signed-off-by: Keith Packard <keithp@keithp.com>
Bdale Garbee [Mon, 11 Dec 2017 17:17:40 +0000 (10:17 -0700)]
TeleMega v3.0 turnon scripts
Bdale Garbee [Mon, 11 Dec 2017 17:16:24 +0000 (10:16 -0700)]
Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
Keith Packard [Sun, 10 Dec 2017 08:02:34 +0000 (00:02 -0800)]
altos/scheme: Avoid crashing with non-list in length
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>
Keith Packard [Sun, 10 Dec 2017 08:02:00 +0000 (00:02 -0800)]
altos/scheme: Add vectors
Constant time and smaller can be a feature.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sun, 10 Dec 2017 08:00:23 +0000 (00:00 -0800)]
altos/scheme: Fix name of constant scheme file
.lisp -> .scheme
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sun, 10 Dec 2017 00:57:35 +0000 (16:57 -0800)]
altoslib: Fix 8 to 12 bit conversion for Mega pyro voltage data
The conversion was losing the replicated top four bits by shifting by
the wrong amount.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sun, 10 Dec 2017 00:56:20 +0000 (16:56 -0800)]
altos/scheme: Let readline know if there's a list in progress
This lets the interactive prompt change based on what state the lexer
is in
Signed-off-by: Keith Packard <keithp@keithp.com>
Bdale Garbee [Tue, 5 Dec 2017 20:23:09 +0000 (13:23 -0700)]
Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
Keith Packard [Tue, 5 Dec 2017 20:22:34 +0000 (12:22 -0800)]
altos/drivers: Start adding defines to get mag data out of MPU9250
Signed-off-by: Keith Packard <keithp@keithp.com>
Bdale Garbee [Tue, 5 Dec 2017 20:18:45 +0000 (13:18 -0700)]
moving to TeleMega v3.0 by default
Bdale Garbee [Tue, 5 Dec 2017 20:17:18 +0000 (13:17 -0700)]
handle repeated invocations without failing as often
Keith Packard [Tue, 5 Dec 2017 18:48:04 +0000 (10:48 -0800)]
altos/cortexelf-v1: Adapt to lisp->scheme name change
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 5 Dec 2017 18:42:02 +0000 (10:42 -0800)]
altos/scheme: Add explicit dependency on ao_scheme_builtin.h for 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>
Keith Packard [Tue, 5 Dec 2017 18:38:14 +0000 (10:38 -0800)]
altos/scheme: Move scheme test program to scheme sub-directory
Keeps it away from the usual test setup
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 5 Dec 2017 18:29:13 +0000 (10:29 -0800)]
altos/scheme: Rename to 'scheme', clean up build
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>
Keith Packard [Mon, 4 Dec 2017 03:54:18 +0000 (19:54 -0800)]
altos/lisp: Switch to scheme formal syntax for varargs
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>
Keith Packard [Mon, 4 Dec 2017 03:52:11 +0000 (19:52 -0800)]
altos/lisp: Fix stash usage across frame allocation
Must un-stash before allocation failure check.
Use frame_stash instead of poly_stash for frames.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 4 Dec 2017 03:49:20 +0000 (19:49 -0800)]
altos/lisp: Check only cdr base type when moving cons cells
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>