Releases: TheRealMichaelWang/cish
v1.1.1
v1.1.1
This project has been renamed to Cish. Development wise, several minor bug fixes have been made. In addition, a some debugging capabilities have been added to both Cish, and it's compiler Capote.
- Tracebacks; This is the most major technical addition. Instead of poring of bytecode dumps, one can simply follow a very Python-like traceback.
- The standard library has been reorganized and rewritten in a manner that's more ergonomic with the newest of Cish's features (ie sum types, various bits of syntactic sugar).
- Examples have been updated as well, in a manner similar to which the standard library was updated.
Full Changelog: 1.1...1.1.1
Code Examples
For some code examples, look in the examples folder. For even more examples, I'd recommend checking out the standard library.
- You must download the standard library for the examples to work!
- Place the examples folder in Capote or Cish's working directory.
Try it out!
- If you are using windows, you can download any of the binaries below.
capote
is the compiler, andcish
is the interpreter.- Linux users have to build from source, and it's recommended you do so regardless - you can squeeze more performance out of
cish
if you do so.- To build from source, clone this repo and run the makefile, or clone Capote's repo and run the makefile.
- Linux users have to build from source, and it's recommended you do so regardless - you can squeeze more performance out of
- Download
stdlib.zip
, unzip it and place thestdlib
folder in either Capote or Cish's working directory.
v1.1
Many important bug fixes were made in this release. In addition, many amenities have been added to SuperForth:
New Features:
- Added Runtime Type Information
- Supports Type-Safe downcasting (parent to child type).
- Supports Runtime "Type Checking" (ie
fallible<T> is error<any>
) - Enables sum-types, and "enums".
- Call stack trace backs are displayed upon a runtime error.
- Implicit return
nothing
's. - Syntactic Sugar for procedures and code blocks
- The fast return (
=>
) keyword, (ieproc(int a, int b) => a - b
). - Code blocks with one statement don't need encapsulating brackets (ie
while(true) continue;
). - For loops (in sum, glorified while loops after abstraction).
- The fast return (
- Rewrote and reorganized the standard library
- Added some common data structures (list, linked list, and hashmap).
- Added the
fallible<T>
sum type for error handling and basic tuple types (pair<A, B>
,triple<A, B, C>
) - Added some basic sorting algorithms(bubble and quicksort)
- A Compiler (emits C from cish IL)
- Can emit Vex/PROS compatible C-code as well
Bug Fixes:
- Fixed many type checking bugs.
Full Changelog: 1.0...1.1
What the following files are:
File | Description | Target Architecture | Build Date |
---|---|---|---|
superforth.exe |
A cygwin gcc build of the interpreter for windows | x64 |
6/19 |
superforth-msvc-x64 |
A MSVC build of the interpreter | x64 |
6/19 |
superforth-msvc-x86 |
A MSVC build of the interpreter | x86 |
6/19 |
capote.exe |
A cygwin gcc build of the compiler for windows | x64 |
6/19 |
stdlib.zip |
A zip of the stdlib. Works with both compiler and interpeter. | N/A | N/A |
stdheader.c |
A file required for the compiler. | N/A | N/A |
v1.0
SuperForth has now reached an initial operating capacity of sorts. It now supports most, if not all the features originally planned are all implemented. It is reasonable to expect the syntax will not change signifgantly after this release. The introduced features include, but are not limited to:
- Parametric polymorphism for both records, and functions.
- Support for type requirements/interfaces
- Clean and easy to use Structured programming
- Support default values that are evaluated lazily upon every instantiation.
- Support inheritance, and passing type parameters and other types downstream as type arguments to a parent record/struct.
- Improved reliability
- Enhanced escape analysis improves memory-safety, applies optimizations.
- The overall amount of garbage-collection related bugs have been reduced signifgantly, to zero.
- Fixed many bugs. See issue #11 to #21: these include relatively mundane bugs such as parsing errors with the AST parser to far more subtle and complex ones involving generics, garbage-collection, memory-safety, type-safety, or all at the same time.
- Enhanced escape analysis improves memory-safety, applies optimizations.
- Improved Performance
- From barley faster than python to faster than Scheme, using this benchmark.
Initial Release
0.1 Add files via upload