Fable understood it as something along the lines of:
"introducing" "security risk" "using software" to "unlock door" YOU ARE FLAGGED
475 karma · joined June 23, 2011
alain.gilbert.15@gmail.com
Fable understood it as something along the lines of:
"introducing" "security risk" "using software" to "unlock door" YOU ARE FLAGGED
It has enums (sum type), tuple, built-in Set[T], and good Iterator methods. It has very nice type inferred lambda function (heavily inspired by the swift syntax)... lots of good stuff!
Is that for real? I bet I can find some chocolate chip cookie recipe that the Go team would disagree with me. I ain't ever using Go again.
I'm glad I'm not the only one wondering why this is not instant to type check.
I'd be thrilled to have it build in 300ms.
(Using a macbook pro 2019)
I definitely do. Not necessarily because of the 10ms vs 1s. But because of the later stage when it becomes 600ms vs 60s.
Then comes the hard part "where is it defined"... he could even press "command" and then click on it.
The goal is to have it behave like typescript for Go, where any Go program would compile out of the box, but then you can use the new syntax.
Featuring: built-in Set/Enum/Tuple/lambda/"error propagation operators"
It also have a working LSP server and generates a sourcemap, so when you get a runtime stacktrace, it gives you the original line in your .agl file as well as the one in the generated .go file.
I recently finish porting all my "advent of code 2024" in AGL -> https://github.com/alaingilbert/agl/tree/master/examples/adv...
It's basically a fork of the Go lexer/parser that adds Result/Option/Tuple/Set... propagation operators (and more)
and it compiles down to Go code.
Thanks for the feedback, it's good to know when something does not make sense ^^
eg: the @LINE "Compile time pseudo variable"
https://github.com/alaingilbert/agl/blob/8b656a385207e57fd0f...
https://docs.vlang.io/conditional-compilation.html#compile-t...
For example, I'd like to have the pointers being automatically wrapped in a Option[T], but then if you have something like a linked list, with a struct containing pointers to other nodes, it gets complicated.
Which also provide the opportunity to maybe have a fairly successful project for the author of the rewrite project.
Usually you want to clear all tiles that touches, let say a "1" that is already touching a flag, and you can do just that by clicking that "1".
And it is usually a pretty basic iterator standard to have it so that someone maybe not as familiar with concepts like reduce can just sum the sequence.
Or if someone not familiar with reduce read your code, and is like "what is that `.reduce(0, +)` thing everywhere!?" while instead it should be a no brainer `.sum()` <-- "yup make sense"