The highlights of what's been released, what's being worked on, and what's
coming in future! To see all the details please see the current changelogs, the historical changelogs, and the issue tracker.
In progress
Features that are currently being worked on, or complete but not yet released.
- JavaScript sourcemaps
- OTP named process support
- Generating `case` expressions using a decision tree on JavaScript
- Language server extract const code action
- Removing Instantly Invoked Function Expressions from generated JavaScript code
Planned
Features that will be implemented, but work has not yet started.
- Dead code detection improvements
- Hex private package support
- Language server constant expression completion
- Language server renaming
- Mutual tail call optimisation on JavaScript
- Test keyword `assert`
- API key generation when Hex rate limits reached
- Lifting constant expressions into global scope on JavaScript
Research
Features that likely will be added in future, but we have some outstanding
design questions to resolve.
- OTP release building
- Erlang stack trace line numbers
- Inter-module inlining
- Test discovery functionality
- Build tool watch mode
Done
v1.9 - 08 March, 2025
- Custom CA certificate support
- Debug keyword `echo`
- Hex search integration
- Improved dependency versions conflict error messages
- Unaligned bit array support on JavaScript
- Langauge server jump to type definition
- Langauge server convert call to pipeline code action
- Langauge server convert pipeline to call code action
- Langauge server generate JSON encoder code action
- Langauge server inline variable code action
- Langauge server interpolate string code action
v1.8 - 07 February, 2025
- Language server label completion
- Fault tolerant parsing of `case` expressions
- Fault tolerant analysis of pipelines
- Support OTP27 doc attributes
- Langauge server generate function code action
- Langauge server pattern match on value code action
- Language server rename variable code action
v1.7 - 05 January, 2025
- Custom message syntax for `let assert`
- Custom type construction codegen monomorphisation
- Custom type constructor deprecation
- Custom type update type re-specialisation
- External file subdirectory support
- Language server `let` to `case` code action
- Language server convert to/from `use` code action
- Language server extract variable code action
- Language server code action to generate dynamic decoder
- Local Hex API key encryption
v1.6 - 19 November, 2024
- BEAM bytecode compilation daemon
- Bit array construction optimisation on JavaScript
- Context aware type error printing
- Custom type variant inference
- JavaScript `gleam new` template
- Language server add missing function annotations code action
- Language server context aware type hover display
- Language server quality and unqualify code actions
- Monorepo support for HTML documentation
- Optional Hex dependency support
- Specific packages `gleam update`
- Unsafe JavaScript number warnings
v1.5 - 19 September, 2024
- Bit array UTF-8 segment inference
- Compilation flag `--no-print-progress`
- Context aware anonymous function inference
- Context aware inexhaustive case expression errors
- Gleam version requirement detection
- Improved panic printing on Erlang
- Language server add missing case patterns code action
- Language server local variable autocompletion
- Language server missing import fix code action
v1.4 - 02 August, 2024
- Bit array options `little`, `big`, `signed`, and `unsigned` JavaScript support.
- Compilation warning persistence
- Constant expression concat operator support
- Further fault tolerant compilation
- Label shorthand syntax
- Language server add labels code action
- Language server assert to case code action
- Language server case correction code action
- Language server document symbols
- Language server field access completion
- Language server lable shorthand conversion code action
- Language server signature help
v1.3 - 05 July, 2024
- `gleam add` and `gleam remove`
- Arithmetic guards
- Erlang/OTP 27 support
- Fault tolerant expression compilation
- Language server automatic import insertion
- Language server unused field hovering
- Purity hints for JavaScript bundlers
v1.2 - 27 May, 2024
- `gleam hex revert`
- Erlang module collision prevention
- Fault tolerant compilation
- Language server import autocompletion and hover
- Redundant `let assert` detection
- Unreachable code detection
v1.1 - 16 April, 2024
- Bun JavaScript runtime support
- Internal types and values
- Language server compilation batching
- Language server go-to definition
- Language server import autocompletion
- Nested tuple indexing
- Target related dead code elimination