Releases: fusionlanguage/fut
Releases · fusionlanguage/fut
fut 3.2.3
How to install:
- Windows: download and run
fut-3.2.3-win64.msi
- macOS:
brew install fusionlanguage/fut/fut
- Ubuntu 22.04+: download and install
fut_3.2.3-1_amd64.deb
- Fedora 38+: download and install
fut-3.2.3-1.x86_64.rpm
Changes since 3.2.2:
- Syntax highlighting in Vim
- Go to / Peek / Find all Implementations / References in Visual Studio Code
- Fixed
foreach (C objectReference in listOfObjectStorage)
in C - Improved syntax checking
fut 3.2.2
How to install:
- Windows: download and run
fut-3.2.2-win64.msi
- macOS:
brew install fusionlanguage/fut/fut
- Ubuntu 22.04+: download and install
fut_3.2.2-1_amd64.deb
- Fedora 38+: download and install
fut-3.2.2-1.x86_64.rpm
Changes in the Visual Studio Code extension since 3.2.1:
- Fixed errors reported in non-Fusion files
- Outline
- Snippets
- Highlighting
is
andresource
- More precise error locations
fut 3.2.1
How to install:
- Windows: download and run
fut-3.2.1-win64.msi
- macOS:
brew install fusionlanguage/fut/fut
- Ubuntu 22.04+: download and install
fut_3.2.1-1_amd64.deb
- Fedora 38+: download and install
fut-3.2.1-1.x86_64.rpm
Changes since 3.2.0:
- More precise error locations
- Fixed "Duplicate symbol" errors when editing a multi-file project in Visual Studio Code
- Fixed some collections of collections in C
fut 3.2.0
How to install:
- Windows: download and run
fut-3.2.0-win64.msi
- macOS:
brew install fusionlanguage/fut/fut
- Ubuntu 22.04+: download and install
fut_3.2.0-1_amd64.deb
- Fedora 38+: download and install
fut-3.2.0-1.x86_64.rpm
Changes since 3.1.2:
fut 3.1.2
How to install:
- Windows: download and run
fut-3.1.2-win64.msi
- macOS:
brew install fusionlanguage/fut/fut
- Ubuntu 22.04+: download and install
fut_3.1.2-1_amd64.deb
- Fedora 38+: download and install
fut-3.1.2-1.x86_64.rpm
Changes since 3.1.1:
string.ToLower()
,string.ToUpper()
by @caesay (#143)StringWriter
enabled for C- C fixes (#26, #135, collections, public members of internal class, return of dynamic object initializer)
- C++ fixes (#138, number
TryParse
,Environment.GetEnvironmentVariable
) if (!number.TryParse(str))
implemented for Java
fut 3.1.1
How to install:
- Windows: download and run
fut-3.1.1-win64.msi
- macOS:
brew install fusionlanguage/fut/fut
- Ubuntu 22.04+: download and install
fut_3.1.1-1_amd64.deb
- Fedora 38+: download and install
fut-3.1.1-1.x86_64.rpm
Changes since 3.1.0:
- Use
case MyClass:
instead ofcase MyClass _:
. - Exceptions with no message:
throw Exception()
. - Implemented
case null when ...
. - Fixed
case VALUE when ...
with an earlybreak
in Java. - Implemented
arrayStorage/listOfRefs.Contains
in C and C++. Main
in a D namespace.- Improved error messages.
fut 3.1.0
How to install:
- Windows: download and run
fut-3.1.0-win64.msi
- macOS:
brew install fusionlanguage/fut/fut
- Ubuntu 22.04+: download and install
fut_3.1.0-1_amd64.deb
- Fedora 38+: download and install
fut-3.1.0-1.x86_64.rpm
Changes since 3.0.2:
- Breaking change: exception classes, must be specified in
throw
andthrows
. See the documentation. - Python type annotations. (PEP 484)
- Improved error reporting, including:
const
access modifiers, mutating methods, uninitialized variables, out-of-bounds indexing found during the translation. - Fixed collections of references in C and C++.
- Abstract methods emitted in Python.
true
,false
andnull
translated to the target language in doc comments.- Improved translation of exceptions to C, including doc comments.
- Removed redundant array slices in D.
Main
method. (#73)Convert.ToBase64String(byteArray, byteArrayOffset, byteCount)
.
fut 3.0.2
How to install:
- Windows: download and run
fut-3.0.2-win64.msi
- macOS:
brew install fusionlanguage/fut/fut
- Ubuntu 22.04+: download and install
fut_3.0.2-1_amd64.deb
- Fedora 38+: download and install
fut-3.0.2-1.x86_64.rpm
Changes since 3.0.1:
- Collections can be allocated dynamically.
- Constants emitted as
immutable
in D. case VALUE when GUARD
in Java.StringWriter
enabled in Java.- Emitting short methods in D (with
=>
). - Error for new string storage assigned to a string reference.
- Fixed leaks of temporary strings in C. (#26)
native { #include ... }
is now accepted. (#130)- Fixed
List<string()>.Last()
,Queue<string()>.Peek()
,Stack<string()>.Peek()
in C. - Fixed
is
on rhs of?
in C++. Any
/All
emitted asExists
/TrueForAll
in C# for improved performance.fut
ported to Java.
fut 3.0.1
How to install:
- Windows: download and run
fut-3.0.1-win64.msi
- macOS:
brew install fusionlanguage/fut/fut
- Ubuntu 22.04+: download and install
fut_3.0.1-1_amd64.deb
- Fedora 38+: download and install
fut-3.0.1-1.x86_64.rpm
Changes since 3.0.0:
- Enums with no explicit values are now transpiled to Java enums. (#81)
std::ssize(collection)
emitted in C++. Eliminatesfut
compilation warnings. (#96)- Implemented the string concatenation operator
+
in C. (#36) - Fixed a memory error in
fut
, affected constant integer expressions on macOS. - Fixed
make test-c test-cpp
on macOS. - Fixed
make FUT_HOST=cs
on macOS.
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.