Download Latest Version acton-linux-x86_64-0.26.0.tar.xz (89.2 MB)
Email in envelope

Get an email when there's a new version of The Acton programming language

Home / v0.25.0
Name Modified Size InfoDownloads / Week
Parent folder
acton_0.25.0_amd64.deb 2025-04-24 68.1 MB
acton_0.25.0_arm64.deb 2025-04-24 64.5 MB
acton-linux-aarch64-0.25.0.tar.xz 2025-04-24 84.5 MB
acton-linux-x86_64-0.25.0.tar.xz 2025-04-24 89.3 MB
acton-macos-x86_64-0.25.0.tar.xz 2025-04-24 86.5 MB
README.md 2025-04-24 5.9 kB
v0.25.0 source code.tar.gz 2025-04-24 2.3 MB
v0.25.0 source code.zip 2025-04-24 2.7 MB
Totals: 8 Items   397.9 MB 1

Added

  • Acton Vim plugin for syntax highlighting & indent, see https://github.com/actonlang/vim-acton
  • Add crypto.hash.md5 module for MD5 hashing
  • supports incremental updates and one-shot
  • Add bytes.from_hex() & bytes.hex() for hex encoding/decoding of bytes
  • Add .str_ms() to time.Duration
  • Add max_def and min_def functions that require a default argument
  • Unlike max() & min(), these functions require a default value that is returned when the input iterable is empty
    • max_def([1, 2, 3], -1) returns 3
    • max_def([], -1) returns -1
  • Add re.split() function to split strings based on regular expressions
  • re.split(" +", "a b c") returns ["a", "b", "c"]
  • Add support for golden testing in the testing module
  • Test functions can return a str to be compared against stored golden values
  • acton test will show actual vs expected golden value
  • Golden values are stored in test/golden/MODULE/TEST_NAME
  • Update expected values with --golden-update
  • Unmangle actor class names in logging
  • Add --no-threads option to compile single-threaded applications
  • Set minimum thread stack size to 8MB to avoid stack overflows
  • Add better documentation for integer types in the guide
  • Add __name__ variable containing current module name
  • Add complex.from_real_imag() function to create complex numbers
  • Add support for complex numbers as dictionary keys
  • Add proper implementation of the Logical protocol for integers
  • Add URI parsing module for handling HTTP URLs and other URIs
  • Add --list-imports option to actonc to show imported modules
  • Add a ConsoleSink to the logging module
  • Capture log messages in tests for easier troubleshooting
  • Add diff module for comparing strings
  • Support for unified diff format with customizable context headers and colors
  • Add GitHub Action to create new releases automatically
  • Add support for ALPN (Application-Layer Protocol Negotiation) in TLS

Changed

  • Dict & Mapping methods get and pop now return None when key is not found, instead of throwing KeyError
  • Use new get_def & pop_def for explicit default values
  • Automatic backtrace printing on crashes disabled on non-Linux platforms
  • LLDB on MacOS often hangs, so automatic backtrace printing is disabled
  • Make module paths in type error messages clickable for easier navigation
  • Improve RunProcess handling to properly await EOF for stdout/stderr
  • Disable garbage collection during package upgrade operations to improve performance
  • Silence build lock messages for dependency builds to reduce output noise
  • Use development mode (--dev) to build dependencies in test command
  • Don't store protocol witnesses in class attributes, push further into methods instead
  • Upgrade tlsuv library to v0.33.4 for improved TLS support
  • Enhance package dependency handling with support for transitive dependencies
  • Use a global dependencies directory in ~/.cache for better dependency management
  • Improve testing output with deduplication of stdout/stderr messages
  • Colorize error messages for better readability
  • Reintroduce --tempdir option to actonc for manual control of temporary files
  • Allow integers to overflow for fixed-size integer types (i16, i32, i64, etc.)
  • Use diff for golden testing when outputs don't match
  • Rename common.mk to version.mk to better reflect its purpose
  • Make del operator idempotent for lists and dictionaries

Fixed

  • Fix type conversion between u16 and int
  • Fix XML default namespace parsing
  • Fix error handling in process actor
  • Process signals are now ignored if process has exited
  • Better error handling around stdin/stdout/stderr operations
  • Fix volatile variables in try-except blocks to avoid compiler optimization issues impacting control flow
  • Fix string format in time.DateTime's RFC1123 format (month was off by one)
  • Improve error messages with better source location information
  • Added location details for "Missing constraint" errors
  • Added location details for "missing tuple component" errors
  • Better error reporting when class method's first parameter doesn't match Self type
  • Fix dictionary iteration in relation context
  • Fix constructor functions for bounded integer types
  • Fix CPS transformation for nested lambdas with preprocessing requirements
  • Fix handling of main project local dependency overrides
  • Fix zip() function implementation
  • Fix left shift operator (<<) for integers
  • Fix XML encoding to properly handle UTF-8
  • Fix TCP connection close to properly mark socket as invalid
  • Fix hash function to avoid signed overflow undefined behavior
  • Fix depth subtyping for builtin collections (list, dict, set)
  • Fix discovery of root actor based on name
  • Fix acton test --name to correctly filter tests by name
  • Fix string allocation in B_str to properly account for byte length
  • Fix package upgrade correctness
  • Fix handling of XML comments during parsing
  • Fix main project dependencies in build.zig.zon
  • Fix polarity improvement handling in type solver
  • Fix exception handling in iterate-relation context
  • Fix free() behavior (now a no-op in GC environment)
  • Fix race condition in actor waiting queue operations
  • Optimize f-string parsing for better performance

Testing / CI

  • Add macos-aarch64 tip release build
  • Stop testing on Ubuntu 18.04
  • Install gdb in test-app environment for better crash analysis
  • Separate caches for Acton build and Stack/GHC in CI to avoid cache thrashing
  • Add caching for Linux ARM64 builds to improve CI speed
  • Ensure uniqueness of test artifact names to prevent collisions
  • Add support for Linux on ARM64 (aarch64) in CI
  • Add test of respnet (a real-world Acton application) to CI
  • Add testing on Ubuntu 24.04 for ARM64
  • Use artifact upload/download v4 for better performance
  • Add tests for all compiler passes
  • Await cache cleaning to avoid race conditions
Source: README.md, updated 2025-04-24