summaryrefslogtreecommitdiff
path: root/src/scheme/ao_scheme_poly.c
Commit message (Collapse)AuthorAge
* altos/scheme: Move ao-scheme to a separate repositoryKeith Packard2018-01-10
| | | | | | This way it can be incorporated into multiple operating systems more easily. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/scheme: Add ports. Split scheme code up.Keith Packard2018-01-06
| | | | | | And lots of other changes, including freeing unreferenced atoms. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/scheme: Replace memory pool macros with inlinesKeith Packard2017-12-19
| | | | | | | | | | 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>
* altos/scheme: Rework display/write codeKeith Packard2017-12-19
| | | | | | | | | | 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>
* altos/scheme: abort when we try to print an invalid valueKeith Packard2017-12-18
| | | | | | | This can catch a host of interpreter bugs; best to abandon the program when it happens. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/scheme: swap BIGINT and STRING typesKeith Packard2017-12-14
| | | | | | | | 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>
* 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 vectorsKeith Packard2017-12-10
| | | | | | Constant time and smaller can be a feature. 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>