New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Some questions and Koka's future #169
Comments
I've only followed Koka's development for a while, so take this with a grain of salt. Still here are some answers as I see it:
|
Thanks a lot for the answers and the reference to System O (I've seen some more recent publications from Martin Odersky, but not this one which explains the extension of Hindley-Milner quite well). Do you know whether some of the features you answered with Regarding (13), just to clarify, does it mean it's all single threaded (i.e. the language runtime scheduler doesn't exist at all or if it does then it's single threaded)? |
On those where I wrote that I don't know: (3) seems hard to integrate with the type system so I don't think that this will happen (4)/(5) seem interesting but don't seem to be priorities (14) A compiler in Koka would certainly nice, but I don't think it will happen soon. Re (13): Good question! Koka actually supports multiple threads in the runtime system. The async programming paradigm works very well with effects but other modes of concurrency would be possible as well. |
Ok, I think all my questions are answered. Thanks again! |
What are the goals for type inference? On some places I think I've seen seemingly superfluous type declarations...
Do effects pile up syntactically in function declarations?
I'm asking because I'm interested among other things in error propagation (imagine optionals).
Potentially related: Ad-hoc polymorphism #16 (comment)
Is casting (implicit and explicit) between types supported?
Does Koka support adding own syntactic sugar? Potentially related: Support string interpolation #122 .
This might help also on other places - e.g. parenthesis around some expressions could become superfluous (
if( ... ){ ... }
->if ... { ... }
).How is compile time computation supported? Potentially related: Support string interpolation #122 .
Does Koka provide any dynamic type evaluation (e.g. "any" type or similar)?
How could one do system programming (unsafe stuff, pointers, ...) with Koka?
Is there both static (compile-time) and dynamic (runtime) FFI available?
Is Koka compiler smart enough to always construct nested or better (instruction-level) parallel loops from "chained" function calls having "map" or similar semantics? Something like https://github.com/zero-functional/zero-functional .
Does Koka support ad hoc change/patching/extension of existing structs (e.g. to derive your own string or to add "methods" to some built-in type)?
Does Koka support ad hoc change/patching/extension of existing functions (e.g. to shadow an existing function with a redefinition while using the original version inside of this redefinition)?
Any benchmarks of numerically intensive computations (i.e. autovectorization, automated SIMD, etc. of matrices etc.)?
Does Koka offer any concurrency & parallelism "primitives" (Go-like channels, task-based parallelism, real os-level threading with thread local storage, structured concurrency (e.g. the nursery pattern), locks, etc.)? How efficient is it?
Does Koka have any other than in Haskell written compiler (e.g. written in Koka itself to make it self-hosting)?
The text was updated successfully, but these errors were encountered: