Skip to content

Releases: c3lang/c3c

Release 0.5.4

17 Feb 13:59

Choose a tag to compare

Changes / improvements

  • Hash variables may now take a designated initializer.
  • Added @safemacro to override the @ requirement for non-function-like macros.
  • More information available with debug log in non debug builds.
  • Removed install_win_reqs.bat which didn't work well.
  • Support ** to mean ./**
  • MacOS init/finalizer now respects priority.
  • Bitstructs supports != and ==.
  • Support Windows .def files using --windef.
  • Bitstructs now fold compile time constant bit ops.
  • Fix issue where in some cases a constant global with a string wasn't folded (e.g. in asm stmts)
  • Lateral implicit imports removed.
  • Default to '.' if no libdir is specified.
  • Improved error messages for --lib.
  • Added --linker to set the linker #1067.

Fixes

  • Fixes to macro context evaluation with macro varargs.
  • Dynamic methods registered before init functions on MacOS.
  • Fixed clobber on x86 cpuid instruction.
  • Removed invalid syntax from grammar.y.
  • output project setting now respected.
  • Aliased declarations caused errors when used in initializers.
  • Aliased consts used as constant initializers caused errors.
  • Exported module names replace :: by _.
  • Const ternary would evaluate incorrectly for ?:
  • $$MODULE would report the incorrect module name in macros.
  • Fixed debug info for globals and for/switch scopes.
  • out now correctly detects subscript[] use.
  • Ambiguous recursive imports are now correctly detected.
  • Overzealous local escape check corrected #1127.
  • Fixes to the matrix functions #1130.

Stdlib changes

  • Deprecated Allocator helper functions.
  • Added mem::allocator functions corresponding to removed allocator functions.
  • Changed mem::new / mem::temp_new to accept an optional initializer, and will clear by default.
  • Mem _clear and _zero variants deprecated. "new_*" functions will clear by default.
  • Mem "alloc_" functions replace old "new_" behaviour.
  • Fixed temp memory issue with formatter.
  • Added temp_push and temp_pop for pushing / popping the temp allocator manually (or from C).
  • Added byte_size to List
  • Added GenericList.

0.5.0 Release

21 Nov 09:39

Choose a tag to compare

0.5.0 Release Pre-release
Pre-release

First 0.5 release. Using the 0.5 release has the following stability guarantees: no changed standard library functions, no change in language syntax and semantics. However, compiler and standard library bugs will be fixed as long as they do not change behaviour.

Update with no-emit-stdlib

09 Jun 08:26

Choose a tag to compare

Pre-release
0.4godbolt-v2

--obj, --emit-stdlib, --strip-unused

Updated to suppress stdlib emit

09 Jun 08:28

Choose a tag to compare

Pre-release
0.4godbolt.v2

Rename to no-emit-stdlib

0.4 with strip-unused improvements.

02 Jun 22:41

Choose a tag to compare

Pre-release
0.4stripunused

Ensure panic functions are never stripped.

Godbolt pre 0.5 for ubuntu

31 May 12:31

Choose a tag to compare

Pre-release
0.4ubuntu20

Add special ubuntu-20 release

Godbolt pre 0.5

26 May 12:25

Choose a tag to compare

Godbolt pre 0.5 Pre-release
Pre-release
0.4

Update mac versions to test 15 and 16. Update release version to 16.

Alpha 0.2.3.2

01 Sep 11:22

Choose a tag to compare

Alpha 0.2.3.2 Pre-release
Pre-release
v0.2.3.2-alpha

Support LLVM 13+