# R7RS-SRFI

This is a project for collection of R7RS SRFI implementations.

[Repository](https://github.com/srfi-explorations/r7rs-srfi)
[Issues](https://github.com/srfi-explorations/r7rs-srfi/issues)
[Jenkins](https://jenkins.scheme.org/job/r7rs_srfi/job/r7rs-srfi/)


## Running tests

You will need to install snow-chibi, compile-r7rs and implementations you want
to test with.

    snow-chibi install --impls=chibi retropikzel.compile-r7rs

To run test:

    make SCHEME= SRFI= all install test

## Running tests in docker

You will need to install test-r7rs and docker. Make docker work without sudo.

    snow-chibi install --impls=chibi retropikzel.test-r7rs

To run test:

    make SCHEME= SRFI= test-docker


# Adding new SRFI

Add files:

    - srfi/N.sld
        - Library definition
    - srfi/N.scm
        - Library body/content
    - srfi/N
        - Directory for misc files
    - srfi/N/VERSION
        - Version, start with 0.1.0
    - srfi/N/DEPENDS
        - List of dependendis fron snow-fort, like so on one line: srfi.N srfi.N
            - Do not depend on SRFI 64, it will always be installed in docker
            and otherwise you should install it by hand


Every SRFI needs corresponding test file in
[test repository](https://github.com/srfi-explorations/srfi-test).
The test file needs to be named N.scm. Use SRFI-64 for testing!

Add the SRFI into the Jenkinsfiles running list.

## Adding support for new implementation

Add support for implementation into compile-r7rs here
[https://codeberg.org/retropikzel/scheme-programs](https://codeberg.org/retropikzel/scheme-programs).

Add support for implementation
into snow-chibi here [https://github.com/ashinn/chibi-scheme](https://github.com/ashinn/chibi-scheme).