Releases: fusionlanguage/fut
Releases · fusionlanguage/fut
fut 3.0.0
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
anddouble
. - 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
See Getting Started.
Changes since 2.1.2:
- Explicit nullability of references. This is a breaking change: references that allow
null
are now spelledT?
,T!?
andT#?
. 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
andis
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
See Getting Started.
Changes since 2.1.1:
long
transpiles to JavaScript'sBigInt
.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
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 markedexport
. switch
transpiles to Python 3.10+match
instead of a series ofelif
s.- 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 toabort()
(C/C++) andthrow 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
See Getting Started.
Changes since 2.0.0:
- Improved error messages.
- Object literals.
when
clause to type-matchingswitch
.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 forlong
. - 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
After many years of development, cito
is now released as a .NET tool.
See Getting Started.