Releases: sailfish-lang/sailfishc
Istiophoriformes
As a final release before C.L.A.S. (Colby Liberal Art Symposium), this brings some improvements to the transpiler, correcting inaccurate transpilations of semantically correct sailfish programs. This also adds some rather bare bones semantic analysis testing, bringing somewhat more correct compilation.
- Testing of Semantic Analyzer
- Correct transpilation of nested function calls
- Correct transpilation of
udt_method.udt_attribute
,udt_attribute.udt_attribute
,udt_attribute.udt_method
- Some code organization improvements such as encapsulating transpiler code and extracting out of source code text traversal
- Still some significant errors in transpilation -- will be a major focus for 0.4.0
Marlin ++
This comes with just some small changes so that at the very least my demo code will work for my CLAS presentation. However, this version is not necessarily any more or less correct than 0.2.0.
Marlin
In what started as an optimistic rewrite, a quest for better/safer C++ and a more efficient and sensible design, ultimately turned out at best, somewhat better than 0.1.0
. As best stated in emojis, this deserves: 🤷. Below is a summary of the various improvements and disimprovements that come with this release. Note, this is not backwards compatible, so if anyone has actually tried to write some sailfish, 0.1.0 code will no longer work.
Improvements
- removal of raw pointers
- utilization of inherited/synthesized attributes as part of grammar's syntax directed translation
- removal of AST
- CLI facelift
- tree expression instead of if-else statements
- homogeneous lists
- properly functioning nested expressions
++
and--
unary operators- separation of udt's and scripts
- slightly more extensive standard library allowing for some basic list functionality
Disimprovements
- due to strong coupling of parsing/semantic analysis/transpilation, test suite was removed
- favors higher order functions and recursion over OOD
- did I mention coupling and generally poor Object Oriented Design (sorry Dale!)
- udt's cannot utilize other udt's
Dorsalfin ++
Dorsalfin ++
This version introduces a quick fix to the standard library, moving the code so that it is directly inserted in the transpiled out.c
file allowing tools such as the sailfish-lang-install-script can create a binary executable without worrying about the location of the stdlib.
Dorsalfin
0.1.0 - Dorsalfin
Dorsalfin is the initial release of the Sailfish programming language representing the first functional subset of the language to compile. Specifically, 0.1.0 is the first version of the sailfishc frontend with a C transpiler backend that produces a language with just enough functionality to do some interesting things. This version introduces:
- primitives (int, flt, str, bool)
- void
- functions
- udt's
- if-statement
- grouping expressions
Note: since this is so early, expect a lot to break and most importantly not function as expected