In Progress

Features for the next release
  • Function inlining

    Improve performance and stack usage by inlining a few functions from the core libraries

  • Dependency conflict resolution

    Improve dealing with conflicting dependency versions by giving the user hints

  • Better Windows Support

    Improve the Windows OS non-developer mode support for running production programs

  • LSP document-highlight

    Support document-highlight in the language server

  • LSP split alternative patterns

    Add a "split alternative patterns" code action in the language server

Planned Features and Explorations

Things we're exploring or working on for the next few Gleam versions
  • Hex API key generation

    Generate an API key for Hex when we reach the rate limit

  • Code linking in docs

    Code linking syntax for documentation comments

  • Private Hex

    Hex private package support for companies and big teams

  • Better JavaScript Records

    JavaScript record performance improvements

  • Lift constants to the global scope in JS

    Lifting constant expressions into global scope on JavaScript

  • Mutual TCO on JavaScript

    Improve how we generate recursion on JavaScript to support mutual tail calls

  • Better OTP apps

    New OTP application initialisation interface

  • Researching

    Erlang stack trace line numbers

  • Researching

    FFI type correctness safeguards in development

  • Researching

    Improved ergonomics for cross-target packages

  • Researching

    OTP release building

  • Researching

    Test discovery functionality

Version History

Check out everything that's come to Gleam in the past!
  • v1.15

    March 2026
    • Adoption of Hex's new OAuth and MFA based authentication
    • Helpful custom messages for common Hex errors
    • Improved CLI help commands
    • gleam.toml configuration inconsistencies corrected
    • <> support in guard clauses
    • Internal types structure hidden from language server completion and code actions
    • New BitArray$isBitArray and BitArray$BitArray$data functions for JS FFI
    • JS FFI runtime type checking functions now return `value is TypeName`
    • Missing README documentation checks for package publishing
    • Language server code folding
    • Language server rename, go-to definition, hover, and find references support for guard clauses
    • Language server rename and find references support for string prefix patterns
    • Language server extract anonymous function improvements
    • Language server renaming modules from point of use as well as import
    • Language server more precise completions to prevent suffix duplication
    • Language server shows original parameter names in signature help
    • Language server keyword expression completion
    • Language server "fill labels" code action uses variable in current scope
    • Language server "interpolat string" code action more flexible
    • Language server "generate dynamic decoder" improved placeholder value generation
    • Language server "generate dynamic decoder" support for nil values
    • Language server extraction support for values at the start of a pipeline
    • Language server custom type definition hover support
    • Language server "add missing type parameter" code action
  • v1.14

    December 2025
    • @external annotation for external types
    • Bit array pattern matching compilation improvements
    • Faster variant equality checking on JavaScript
    • gleam deps outdated command
    • Type directed autocompletion
    • Record update syntax for constants
    • Missing patterns uses definition order
    • Detatched documentation warnings
    • Redundant module warnings
    • Improved type name selection in language server and documentation
    • Language server rename failure notification
    • Language server improved diagnostic grouping
    • Language server "merge case branches" code action
    • Language server "annotate all top level definitions" code action
  • v1.13

    October 2025
    • Bit array pattern matching compilation improvements
    • Dependency version change information printing
    • Improved type name selection in language server and documentation
    • Unified JavaScript API for Gleam data types
    • Unused recursive function argument detection
    • Language server "add omitted labels" code action
    • Language server "extract function" code action
    • Language server "collapse nested case" code action
    • Language server "remove unreachable clauses" code action
    • Language server "pattern match on value" code action improvements
    • Language server inter-module "generate function" code action
  • gleam_otp v1.0

    October 2025
    • Dynamic process supervision
  • v1.12

    August 2025
    • Custom messages for `echo`
    • JSDoc comments in generated JavaScript
    • Dead code elimination for definitions
    • Redundant comparison detection
    • Generated code size improvements for record updates
    • Calculation support in bit array pattern size segments
    • Alerting for when new major dependency versions are available
    • Improved error messages for dependency version conflicts
    • Programmer choice support for list formatting
    • Endianness for UTF bit array segments
    • Same-module Erlang small function inlining
    • Version git tag prefix for monorepos
    • Redundant comparison detection
    • Language server "remove block" code action
  • gleam_erlang v1.0, gleam_otp v1.0

    June 2025
    • Named process support
    • Improved actor API
    • Improved supervision API
    • Improved process API
    • Improved selective receive API
    • Improved atom API
  • v1.11

    June 2025
    • Generating `case` expressions using a decision tree on JavaScript
    • Test keyword `assert`
    • Language server constant expression completion
    • "gleam dev" command
    • Side-effectless unused expression detection
    • Hyperlinks to referenced types in generated HTML documentation
    • UTF8 and UTF16 JavaScript bit array support
    • Windows ARM precompiled binaries
    • Bit array truncation warnings
    • Record labels in exhaustiveness errors
    • Language server "fill labels" code action for pattern
    • Language server "generate variant" code action
    • Language server "remove unused imports" code action complete
  • v1.10

    April 2025
    • Bit array exhaustiveness analysis
    • Dead code detection, including reference loops
    • Fault tolerant analysis of binary operators
    • JavaScript performance improvement via immediately invoked function expression removal
    • Software Bill of Materials (SBoM) and Supply-chain Levels for Software Artifacts (SLSA) Provenance information in container images
    • `gleam export package-information` command
    • Language server find references
    • Language server rename constant
    • Language server rename custom type variant
    • Language server rename function
    • Language server rename type
    • Language server "extract constant" code action
    • Language server "fill unused fields" code action
    • Language server "remove echo" code action
    • Language server "wrap in block" code action
    • Optional float annotations for float literals in bit arrays
  • v1.9

    March 2025
    • Custom CA certificate support
    • Debug keyword `echo`
    • Hex search integration
    • Improved dependency version conflict error messages
    • Unaligned bit array support on JavaScript
    • Language server jump to type definition
    • Language server convert call to pipeline code action
    • Language server convert pipeline to call code action
    • Language server generate JSON encoder code action
    • Language server inline variable code action
    • Language server interpolate string code action
  • v1.8

    February 2025
    • Language server label completion
    • Fault tolerant parsing of `case` expressions
    • Fault tolerant analysis of pipelines
    • Support OTP27 doc attributes
    • Language server generate function code action
    • Language server pattern match on value code action
    • Language server rename variable code action
  • v1.7

    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

    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 qualify and unqualify code actions
    • Monorepo support for HTML documentation
    • Optional Hex dependency support
    • Specific packages `gleam update`
    • Unsafe JavaScript number warnings
  • v1.5

    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

    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 label shorthand conversion code action
    • Language server signature help
  • v1.3

    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

    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

    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