PPL - Pseudo-Programming Language
- Convenience
- Simplicity
- Readability
- Safety
- Mixfix operators
- Big integers
- Generics (traits)
- Rationals by default
-
Algebraic effects
-
Types arithmetics
-
Pattern matching
-
Metaprogramming
-
Documentation
-
Split builtin module into several files
-
Fix crash in diagnostics due-to wrong source file
-
Check result of the program itself in
test_compiler_result -
Add
Arraytype -
Fix memory leak due to pointers to builtin types
-
Destructors for parameters
-
No tmps for literals inside of constructors
-
Fix recursive trait (AsString with prints)
-
Fix references in traits test
-
Fix self mapping
- Printable trait should take references
- mutable parameters
- migrate to pass-by-ref (branch
arc) - Prefer candidates with mutable references, when possible
- Fix problems with to_ir and loading references (especially globals). This causes issues in iterator
- Benchmark for linear algebra
- Sum of series benchmark
- Use traits to check for
cloneanddestructoyfunctions - Forbid recursion without
@recursiveannotation - Generate clone for types with clonable members
- Generate destructors for types with destructible members
- Add type aliases
- Add dependency analysis for modules and declarations
- Add all
ctypes - Intern strings that are generated in IR
-
VariableReferenceandMemberReferenceshould have reference types - Support
use module.{a, b, submodule.c} - Still return declarations even if they have errors, so there is no
undefined_*errors later - Generic types shouldn't be replaced, but rather constrained (e.g
T: Integer) - Replace calls to trait functions with calls to specialized functions
- Run monomorphization from the top of the module
- Reject lowercase names for types
- Rebinding references
- Remove need for escaping
typeintype of <:T> - Add better errors for inferred generics
- Unify
SelfandGenericType -
Anytrait - Logic for printing decimals inside ppl
- Unsafe code marker
- Format strings
- Varadic arguments functions
- Allow newlines inside parentheses
- Allow tabs before comments for members
- Add
assertandpanic - Fix bus error (caused by llvm 16 issue)
- Remove cached names from functions
- Remove unnecessary information from errors (like
Error: <Type>) - Check compiler errors in repl too
- Make statements to return
Nonetype for convenience - Make
ifto be an expression? - Add
HashMaptype - Explicit traits implementation
- Functions as values
- Add values as types (e.g
1 | 2 | "lol") - Add type unions
A | B,A & B
- Use
IndexMapinstead ofHashMapto guarantee order of declarations