| Age | Commit message (Collapse) | Author |
|
+ Makes vec example actually memory safe, which is cool
+ Specify owner > sub relationships with ">" in closure parameter
lists, uses the same group idea as closure calls
+ Relies on users implementing functions in a consistent manner,
since you can kind of do whatever with pointers. Presumably
there would be a stdlib of vec/map/set etc. which applications
could then use and by proxy be memory safe. Although some more
checks wouldn't hurt, I suppose?
+ Not sure I like having reference invalidation be 'just a move',
seems to work alright but the semantics of it are a bit muddy.
|
|
+ Currently requires a lot of unnecessary `forget` statements,
but at least some can likely be eliminated by doing some
basic origin analysis, kind of like with groups
|
|
+ Hopefully shows that useful programs can be implemented with
the rules present
+ Still missing at least external functions with non-void returns
|
|
+ C allows for a bit more control, and we can manually handle closure
contexts. For example `examples/fib.fwd` now works for effectively any
`n`, pretty cool.
+ Fairly slow Fibonacci, I must admit. Initial profiling indicates it's
mainly due to branch mispredictions, but I'll have to look into this a
bit deeper.
+ The code is a bit hacked together, for now I'm more interested in
getting things working, I'll worry about making things pretty later.
+ For testing, there's also initial support for modules, just so I can
print stuff to the terminal
+ This commit is way too big, lol
|
|
|
|
|
|
+ Returning blocks don't want to show moves for subsequent statements,
but do want to show them for possible closure callers above.
|
|
|
|
|
|
|
|
|
|
+ Enough that examples still compile, but missing references etc.
|
|
+ Missing implementations for most things, but it already highlights
an oversight in my initial plan, namely that currently, a function
might call multiple of its closures, meaning that a closure wouldn't
be allowed to move a value. I'm debating whether to check that only
one closure from a parameter list is called at a time or if I should
do what Hylo does and add in some kind of 'subscript' that's like a
function but has slightly different rules?
|