Design of SigScheme =================== Purposes -------- - Embedded into an application - Suitable for embedded platforms (i.e. non-desktop {OS,hardware}) Requirements ------------ - 3-clause BSD license - Basic R5RS conformance - Small footprint - Low memory consumption - Highly modular and customizable - Code readability to enable learning Scheme by implementation - Easily extensible by C Code organization ----------------- - Memory allocators - Exception and error handling - Storage Abstraction Layer - Continuation - Environment - Procedures and syntaxes - Reader - Writer - Multibyte character processing - Ports Trade-offs ---------- - Strict form validation - Multibyte string processing - Function aggregation to share prolog/epilog code fragment API and ABI ----------- - ABI incompatibility between configurations - SAL and ABI - Dynamic link - Static link - Writing an extension by C