Skip to content

Releases: TRC-Loop/CColon

v1.3.0

04 Apr 11:27

Choose a tag to compare

Full Changelog: v1.2.2...v1.3.0

Optimized VM

  • fib(35) is now 3x faster (7s -> 2.2s)
    in comparison to ver 1.2.2

New Syntax

  • as in import statements to set the packages namespace name. g. import console as con

Bugfixes

  • Fixed several bugs of the http server in the http module (it started 3 times when calling it once…)

Detailed info to optimzations

  • Cached frame fields (code, ip, basePtr, consts) as locals in the execute loop
  • Inlined readByte/readUint16 as closures instead of method calls
  • Small integer cache (-128 to 127) avoids allocations for common values
  • Singleton true/false/nil values reused instead of allocating
  • Inline fast paths for int+int add, subtract, and compare directly in the switch cases

Planned for next release: (1.4.0)

  • function decorators (similar to @… in python)
  • more optimization as ccolon is 2x slower than python (python 1.1s, ccl 2.2s for fib(35))

v1.2.2

03 Apr 21:30

Choose a tag to compare

Full Changelog: v1.2.1...v1.2.2

v1.2.1

03 Apr 21:25

Choose a tag to compare

Full Changelog: v1.2.0...v1.2.1

v1.2.0

03 Apr 21:17

Choose a tag to compare

Full Changelog: v1.1.0...v1.2.0

Bug fixes:

  • Fixed HTTP handler panic (index out of range) by adding bounds checking in readByte() and proper frame isolation in CallFunc()
  • Fixed REPL instant quit by replacing peterh/liner with chzyer/readline

New language features:

  • F-strings: f"hello {1 + 2}" with automatic string conversion
  • String auto-coercion: "count: " + 42 works now
  • Constants: const int x = 5 with compile-time and runtime enforcement
  • Keyword arguments: greet(name="World", greeting="Hello")
  • from ... import: from math import sqrt, pi or from math import *
  • Math properties: math.pi, math.e, math.inf without parentheses

Package manager:

  • --local flag for project-scoped installs
  • pkg upgrade <package> command
  • Source repo URL shown in pkg list
  • Improved progress bar
  • Packages registered as importable modules

Compile command:

  • -o / --output flag for custom output path
  • --bundle flag (reserved)

v1.1.0

02 Apr 13:17

Choose a tag to compare

Full Changelog: v1.0.0...v1.1.0

v1.0.0

02 Apr 13:08

Choose a tag to compare

Full Changelog: v0.2.3...v1.0.0

v0.2.3 - Better strings, None and bugfixes.

01 Apr 16:25

Choose a tag to compare

v0.2.2 - Bugifx (Overflow Bug)

01 Apr 15:23

Choose a tag to compare

Full Changelog: v0.2.1...v0.2.2

This Fixes a Bug where numbers could go into the negatives or just be 0. (For example, when calculating large factorials).

v0.2.1 REPL Version fix & new LICENSE

01 Apr 11:58

Choose a tag to compare

v0.2.0 - Classes, Dicts, Errors, and `math`, `json`, `random` and `fs`

01 Apr 11:15

Choose a tag to compare