Skip to content

Releases: joncatanio/cannoli

Cannoli [Stable - Unoptimized]

22 Mar 22:12

Choose a tag to compare

This is a stable release of the Cannoli compiler. It is currently unoptimized and a bit slower than the CPython implementation.

Current Support (not comprehensive):

  • Data structures
    • Lists
    • Tuples
  • Primitive types
  • For loops
  • While loops
  • Classes
  • Functions
  • Built-in functions
    • print
    • str
    • len
    • min
    • int
    • float
    • enumerate
    • open
  • File I/O (writing through print)

Dictionaries and sets are currently unsupported. Although, their implementation is very similar to lists which wouldn't be that difficult to implement. I don't think it will be done for the thesis since we've been more concerned with the performance of classes.

The corresponding Cannolib release that should be used with this release can be found here.

Cannoli Python3 Simple Subset Compiler

12 Feb 22:03

Choose a tag to compare

Pre-release

Cannoli now supports a very basic subset of Python3. Support for Objects, Lists, and Dictionaries are coming soon. Functions and various arithmetic/logic/etc. works.

Cannoli Lexer/Parser

08 Jan 05:02

Choose a tag to compare

Cannoli Lexer/Parser Pre-release
Pre-release

The very first version of the parser is completed in this release. It lacks error messages that are very useful but enough to point out issues. The parser is equip with 40+ tests that have pretty good code coverage. An AST is returned from the parser that is almost identical to CPython's 3.6.4 AST. Both the Lexer and Parser are added in the root lib.rs to make them available if someone wants to implement their own Lexer/Parser to work with the other.

The next release will contain a refactor sweep of the parser and the alpha version of the compiler.