Roadmap & stability
Rendered live from ROADMAP.md, cached for an hour at a time. See the changelog for what has already shipped.
This is a rough picture of where Falx is heading. There are no promises regarding new features, as Falx is maintained in spare time, and priorities may shift. Items move between sections as they are picked up; see Issues and CHANGELOG.md for what will and has been implemented respectively.
Have an opinion on the ordering, or want to pick something up? Open an issue or see CONTRIBUTING.md.
Now
Features currently in development or planned for the immediate future:
- Expanded standard library - math functions, random methods, filesystem utilities and networking modules
- Improved module system - continue improving module discovery, relative imports and module organization
- CLI improvements - improve commands, help output, version information and developer experience
Planned
Larger features that fit Falx's current direction:
- Packaging - make Falx installable through
pipor available as a standalone executable rather than requiringpython -m src.Main - Ternary operators - add a concise conditional expression syntax
- Pattern matching - potentially introduce a
match/switch-style statement - OOP - classes, class inheritance, and upgraded structs with additional features
- File and process utilities - provide a cleaner standard interface for interacting with the filesystem and processes
- Improved string functionality - expand the built-in string API with additional manipulation and inspection methods
Under consideration
Bigger, less certain ideas:
- Static/optional type annotations
- Attributes/decorators - annotations such as
[decorator]for functions and classes - Bytecode compiler and VM - a compiled bytecode execution path as a faster alternative to the current tree-walking interpreter
- Editor tooling - syntax highlighting and an LSP
- Language specification and documentation site - a formal specification and dedicated documentation once the language syntax and semantics are stable
Later
These are not expected to be implemented soon, but are worth keeping on the roadmap:
- Multithreading / concurrency primitives
- Package manager and third-party dependency ecosystem
- Backwards compatibility guarantees - pre-1.0 breaking changes are expected
Recently shipped
v0.3.0
- Default function arguments
- REPL mode
- Tuples
- Tuple destructuring
- Improved module system
- Module caching and canonical module resolution
- Relative and nested module resolution
- Improved
falx testcommand - Test filtering
- Snapshot testing
- Expected diagnostic-code testing
- Test timeouts and multiprocessing
- Recursive test discovery
- Improved runtime diagnostics
- Improved lexical scoping
- Improved
breakandcontinuesemantics - Improved parser and lexer diagnostics
- Expanded runtime, parser, lexer and integration test coverage
- Numerous runtime and interpreter bug fixes
Previous releases
- Line/column-aware runtime error messages
- Friendly parser errors
- Unique, separate errors instead of generic Python errors
- Module system
See CHANGELOG.md for the complete history.