Menu

Tree [9dd931] mirror /
 History

HTTPS access


File Date Author Commit
 _this_repo_is_just_a_mirror 2021-03-02 rodion rodion [18b451] snapshot of files on 2021-03-03 fb73405
 examples 2021-03-09 rodion rodion [9dd931] Recent updates up to v21.03
 extras 2021-03-09 rodion rodion [9dd931] Recent updates up to v21.03
 tests 2021-03-02 rodion rodion [18b451] snapshot of files on 2021-03-03 fb73405
 .gitignore 2021-03-02 rodion rodion [18b451] snapshot of files on 2021-03-03 fb73405
 AUTHORS 2021-03-02 rodion rodion [18b451] snapshot of files on 2021-03-03 fb73405
 BUILDING 2021-03-02 rodion rodion [18b451] snapshot of files on 2021-03-03 fb73405
 CHANGES 2021-03-02 rodion rodion [18b451] snapshot of files on 2021-03-03 fb73405
 LICENSE 2021-03-02 rodion rodion [18b451] snapshot of files on 2021-03-03 fb73405
 Manual.txt 2021-03-09 rodion rodion [9dd931] Recent updates up to v21.03
 README.md 2021-03-02 rodion rodion [18b451] snapshot of files on 2021-03-03 fb73405
 SConstruct 2021-03-02 rodion rodion [18b451] snapshot of files on 2021-03-03 fb73405
 dynload.c 2021-03-02 rodion rodion [18b451] snapshot of files on 2021-03-03 fb73405
 dynload.h 2021-03-02 rodion rodion [18b451] snapshot of files on 2021-03-03 fb73405
 hack.txt 2021-03-02 rodion rodion [18b451] snapshot of files on 2021-03-03 fb73405
 init.scm 2021-03-02 rodion rodion [18b451] snapshot of files on 2021-03-03 fb73405
 makefile 2021-03-02 rodion rodion [18b451] snapshot of files on 2021-03-03 fb73405
 run-tests.sh 2021-03-02 rodion rodion [18b451] snapshot of files on 2021-03-03 fb73405
 scheme.c 2021-03-09 rodion rodion [9dd931] Recent updates up to v21.03
 scheme.h 2021-03-02 rodion rodion [18b451] snapshot of files on 2021-03-03 fb73405
 scm_opdf.h 2021-03-09 rodion rodion [9dd931] Recent updates up to v21.03
 scm_priv.h 2021-03-09 rodion rodion [9dd931] Recent updates up to v21.03

Read Me

TinyScheme R7

Latest version is 20.10
| Emulator
| Project WebSite
| Downloads with binaries

Disclaimer: this repo respects original authors and there is no intention
to take over their fame. It's branched to implement some features from the modern
R7RS standard, to fix some old bugs
and tailor it for use in educational purposes.

About

This is small Scheme language implementation written in C language. Obvious usages are:

  • as a tiny engine for running plugins and other extensions in your C/C++ program (suppose you want to change some part
    of logic of your program without recompiling it every time).
  • as a sandbox to learn the language (as it supports most features except those which will make implementation not "tiny")
  • as utility script-running tool, even to create CGI-scripts for web-server

The original is principally developed as tinyscheme.sourceforge.net.

This offspring was cloned from rev125 there. Currently my wish is to bring it bit closer to R7RS-small standard
(original is close to R5RS of 1998).

Recent Changes and Improvements:

  • basic bytevector functions implemented
  • UTF-8 is now supported in strings and characters with minor limitation of case-conversion not extended above ASCII range
  • symbols are case-sensitive by default (to match R6RS, R7RS and speed-up a bit)
  • fixes for various bugs (many of them found in "open" state in original repo)
  • tests in simple shell scripts are added
  • removed some old unused code (eg. objlist implementation)
  • code cleanup / formatting (with indent -br -brs -brf -nut -ci4 -nlp -npsl -npro -npcs -ce *.c)