Tree @master (Download .tar.gz)
Strelnokoff
Version 1.1 | Try it online @ catseye.tc | Wiki entry @ esolangs.org
This is the reference distribution for Strelnokoff, an esoteric programming language which is both imperative and non-deterministic. That is to say, the order in which instructions are executed is not defined. It could even be random. Despite this situation, it is possible to write reasonable programs in Strelnokoff.
Historical Version
The original (v1.0) release of this distribution consisted of a Strelnokoff interpreter incompletely implemented in Perl 5 (with features like array access and input being parsed, but not implemented during execution) and with essentially no documentation.
The Perl implementation is still included in this distribution, in the
impl/strelnokoff.pl
subdirectory, but it is no longer considered the
reference implementation.
Current Version
The current version of the Strelnokoff language, v1.1, is a conservative update and largely backwards-compatible with v1.0, but in clarifying some behaviour, it might result in breakage of existing Strelnokoff programs, depending on what assumptions they might be making, given they have been relying on an incomplete Perl implementation for their behaviour.
There is now an implementation of Strelnokoff in Lua 5.3. This implementation, along with the language documentation that has now been written for v1.1:
...should be considered the canonical reference for the Strelnokoff language.
This distribution also contains some example Strelnokoff programs
in the eg
directory.
License
This distribution is distributed under a constellation of permissive licenses. Following the REUSE convention (version 3.0), the licenses themselves are kept in the LICENSES directory, and each file is linked to the license that applies to it, either by comments in the file itself, or in .reuse/dep5.
Commit History
@master
git clone https://git.catseye.tc/Strelnokoff/
- Arrange licensing info in repo according to REUSE 3.2 convention. Chris Pressey a month ago
- Final proofread edits on documentation and particularly the spec. Chris Pressey 8 months ago
- Clean up source code: remove irrelevant comments. Chris Pressey 8 months ago
- Clarify the human-readable aspects of the REUSE information. Chris Pressey 8 months ago
- Update a note in the spec re bigints. Chris Pressey 8 months ago
- Locate and fix bug relating to initialization of bigint constants. Chris Pressey 8 months ago
- Import fix for bigint division. Troubleshoot another observed bug. Chris Pressey 8 months ago
- Merge branch 'develop-1.1' into support-big-integers Chris Pressey 8 months ago
- Remove old docs that mistakenly survived the merge from 2024.0119. Chris Pressey 8 months ago
- Add --use-bigint flag to enable experimental bigint support. Chris Pressey 8 months ago