- optimize
- tail opt
- remove types from expr
- rc all values
- rc all types?
- change member access
- add methods
- struct
- generic native func
- generic user func
- generic structs
- recursion
- generic native type
- arrays
- bools
- rationals
- strings
- spliced arrays
- sets
- queues
- inner functions
- function types
- return inner function?
- fix closures, make the scope chain RC'd (or ARC'd) and find a smarter way to merge the closures
- optional
- cast (some(1) || error(''))
- operator overloading
- default params
- default params in native functions
- generic specialization (with UD, i think there's a bug)
- less copies
- more tail call optimizations? ([] + ... => ...)
- avoid specializations for unknown types
- limits
- depth limit
- recursion limit
- size limit
- unions
- recursive unions
- make struct binds use vectors
- lambda functions
- blank structs/unions
- dynamic native functions (
Array<T> == Array<T>
) - tuples
- tuple as recursive member
- mappings
- double quoted strings
- bundle the root compilation scope and the interner to one struct
- I think we turn static functions to real function all the time instead of once
- root evaluation scope
- delete every function, pub, and derive we can get away with
- replace all vec params with slices
- make it so we don't have to clone declarations
- integrate rtcell into the root scopes
- small ints shouldn't need heap allocation
- make defaults evaluate at runtime
- can
assert
detect when equality happens and report it? - make turbofish useful
- more std
- sets
- sorting
- dict delete
- dict pop
- hash methods
- cmp methods
- aggregators
- range
- filter
- any, all
- takewhile, skipwhile
- take, skip
- multizip
- unzip
- enumerate
- assert
- array multiplication
- str concat
- str multiplication
- str split
- str chars
- regex?
- binary search/insort
- partial
- nth
- first/last
- default equals/hash/cmp/to_string for many types
- auto mapping for types with eq/hash
- auto sort
- infinite sequence
- slice sequence type
- ne for most native types
- member_wise
- is_error/if_error with error matching
- get_error
- dynamic "display"
- add str to something that implements to_str?
-
is_close
- bool xor
- float pow
- sqrt
- nth root
- nth last
- aggregators
- reduce should be in generators
- everything in excel
- atan2
- geometric distribution
- some things in python
- sequence::manifest
- json?
- chain sequence?
- set xor
- xors
- sleep
- chunks
- random
- is_infinite
- mean/std for distributions
- sort reverse (dyn)
- matrices
- eye
- full
- diag
- determinant
- inverse
- transpose
- multiply
- map
- complex numbers
- time of day?
- list shuffle
- numerically safe addition
- byte types?
- better flatten
- complex trig?
- lru_cache?
- compression/encryption/hashing
- generatoe/seq count(i, eq)
- threading??
- json of option
- base64
- bit_or and bit_and for bools?
- sinh
- fix the mean/geo-mean implementations to be better and clearer
- counter_mode generic
- xray version const
- to_hash key adapter
- optional::map_or should have 2 generic params
- most dyn functions should have non-dyn versions
- a lot of the sequence/stack functions can be removed
- generator::all/any (bools)
- delete sequence::group
- sequence::is_infinite
- improve rank_avg and rank_eq to be more efficient and generic
- stack::to_array and to_array_reversed should be flipped
- sub{date, dur}
- make sample_variance/sample_standard_deviation generic
- duration cmp/eq/format?
- fraction constructor uses float div and there's no reason for it
- int trunc_div
- split debug to a function that gets the internal rep, and one that prints it
- tests for:
- is_error
- if error (inc. tail recursion)
- display
- bool display
- display from UD type
- bool hash
- bool cmp
- float mod
- float div
- float ceil
- float trunc
- float cmp
- float to str
- int bitwise ops
- int pow
- int ne
- int hash
- int cmp
- sequence rpush
- sequence insert
- sequence set
- sequence swap
- str hash
- str cmp
- function call in default (inner function call in default?)
- internal structs
- test all kinds of failures
- including runtime violations
- get operator
- mapping get
- hexa/bin numbers
- scientific notation
- float neg
- is_close
- float sqrt
- float pow
- mapping entries
- all the integer edge-cases
- zip1
- unzip1
- repeat (with n and infinite)
- lambda with defaults
- str find
- str split/nsplit/rsplit edge cases
- members for recursive types
- errors:
- VariableAsType
- OverloadAsType
- sin
- turbofish with zero params
- dyn with with zero params
- sum/product/mean/geomean? with complex types
- str reverse
- negative datetimes
- duration operations
- negative duration
- date sub/add
- date/datetime str
- format_replace
- flatten with empty
- map_values
- mapping::clear
- str::contains
- int::digits
- windows that are wider than the original generator
- to_stack
- add{date, duration}
- negative durations
- reduce macros in builtin/core
- better errors
- compilation error tracing
- dynamic binding error tracing
- runtime error tracing
- get operator
- auto type for specialization (
foo::<., Stack<int>>(1, stack())
) - cells instead of dicts for namespaces
- All the TODOs
- all the warnings
- test scripts
- imports/include files
- turn this to a library
- documentation
-
!
operator (as shorthand for .value)? - code documentation
- newline/escape chars in literals
- straighten out the "errors in container/compound" question
- find and remove duplicates
- string interpolation?
- auto return type (
fn foo () -> $
) - in native functions, when you're going to return something big (like when adding two sequences), check that you have room for it first
- type aliases?
- total function call limit
- maximum search limit (
count().nth(0, (x: int)->{x<0})
) - execution time limit
- "side effect" limitations (allow/forbid sleep, display, assert)
- declarations in lambdas
- cache xtypes?
- create a native type registry, so we don't discern them by name
- cache factory functions
- forward references?
- native dynamic functions?
- line number in RTCELL?
- warnings (like when assigning variable to magic method?)
- make [str].sum use join
- custom seeding for hash
- make sure nan inf and negzero are impossible
- time provider?
- managedXError should be a cow
- upgrade pest
- WASM