Skip to content

Releases: fusionlanguage/fut

fut 3.0.0

09 Aug 11:32
Compare
Choose a tag to compare

How to install:

  • Windows: download and run fut-3.0.0-win64.msi
  • macOS: brew install fusionlanguage/fut/fut
  • Ubuntu 22.04+: download and install fut_3.0.0-1_amd64.deb
  • Fedora 38+: download and install fut-3.0.0-1.x86_64.rpm

Changes since 2.2.0:

  • The language is now called Fusion and its transpiler fut. Use the .fu extension for Fusion source code.
  • The transpiler is now self-hosted, transpiling itself to C++, C# and JavaScript. Native binaries are released for Windows, macOS and Linux. (#48)
  • case value when condition.
  • References of different kinds and classes can now be compared: basePtr == derivedNullablePtr, baseReadWritePtr == derivedReadOnlyPtr.
  • The + and += operators no longer concatenate strings with numbers or objects. Use string interpolation instead.
  • Fixed priority of division/modulo as rhs of multiplication. (#92)
  • Fixed floating-point constants with integer values.
  • Fixed comparisons with literal null/true/false on lhs.
  • Fixed nested ternary operators.
  • arrayStorage.Contains.
  • int.TryParse, long.TryParse.
  • Enum.FromInt.
  • EnumFlags.HasFlag.
  • TextWriter.WriteCodePoint.
  • StringWriter.Clear.
  • Improved float literals.
  • Interpolated string formats in C++.
  • Java collections of float and double.
  • Fixed long.MinValue in C, C++ and D.
  • Private constants prefixed with # in JavaScript.
  • Improved assert in JavaScript.
  • Switched private to # in TypeScript.
  • Top-level native in Python and Swift.
  • Various C and C++ fixes.
  • Emitting let for object storage to prevent Swift compiler warning.
  • Improved error reporting.

cito 2.2.0

13 Mar 13:46
Compare
Choose a tag to compare

See Getting Started.

Changes since 2.1.2:

  • Explicit nullability of references. This is a breaking change: references that allow null are now spelled T?, T!? and T#?. This information is preserved in Swift and TypeScript outputs. (#31)
  • D backend, contributed by @epi. (#34)
  • Enum comparisons with <, <=, >, >=.
  • SortedSet, List.IndexOf, arrays of collections.
  • StringWriter.
  • Fixed some long operations in JavaScript and Swift.
  • Improved foreach and is in C++.
  • Improved translation of is Derived d to JavaScript.
  • Console.Write/Console.Error.Write implemented with Node.js API.
  • Improved error messages.
  • Ported the sema pass to Ć. Started porting backends. (#48)

cito 2.1.2

15 Feb 06:42
Compare
Choose a tag to compare

See Getting Started.

Changes since 2.1.1:

  • long transpiles to JavaScript's BigInt.
  • List.AddRange, List.Last.
  • Math.Abs, Math.Min, Math.Max, Math.Clamp, Math.Round.
  • case null.
  • The ? : operator now accepts object types where one is not a base class of the other.
  • Fixed printing long in C and OpenCL.
  • Fixed crashes after reporting errors.
  • The Visual Studio Code extension now underscores the invalid tokens instead of whole lines.

cito 2.1.1

30 Jan 07:55
Compare
Choose a tag to compare

See Getting Started.

Changes since 2.1.0:

  • The Ć parser now transpiles to C++20, Java and JavaScript. (#48)
  • The Visual Studio Code extension reports syntax errors, using the parser in Ć. (#64)
  • The JavaScript output is now an ECMAScript module, with export classes and enums.
  • In TypeScript, only public types are now marked export.
  • switch transpiles to Python 3.10+ match instead of a series of elifs.
  • Type-matching switch transpiles to JavaScript and Python.
  • Lowering dynamic object literals (new Foo { Bar = 5, Quux = 42 }) to series of assignments.
  • int.MaxValue, long.MinValue etc.
  • assert false now transpiles to abort() (C/C++) and throw new Error() (JavaScript/TypeScript) .
  • Implemented all boolean logic operators for JavaScript, TypeScript and Swift.
  • expr is Derived newVar transpiles to C++ and JavaScript.
  • double.TryParse transpiles to C++, Java and JavaScript.
  • Several improvements to string operations in C and C++.

cito 2.1.0

30 Dec 10:23
Compare
Choose a tag to compare

See Getting Started.

Changes since 2.0.0:

  • Improved error messages.
  • Object literals.
  • when clause to type-matching switch.
  • ToString in classes.
  • Calling methods from indirect superclasses with base.
  • List.All method.
  • Fixed formatting of doc comments.
  • Various C++ fixes.
  • C: free temporary strings.
  • C: fixed printf format for long.
  • Ported the AST, the parser and a part of the semantic pass to Ć.
  • One parse and semantic pass when targetting many languages.

cito 2.0.0

30 Dec 10:03
Compare
Choose a tag to compare

After many years of development, cito is now released as a .NET tool.
See Getting Started.