6 ms·
The website is infrequently updated, so let me provide some information about what we are currently working on: - We are trying to make the entire compiler res
by jorkadeen 3y ago
The website is infrequently updated, so let me provide some information about what we are currently working on:
- We are trying to make the entire compiler resilient (error-tolerant), incremental, and parallel. We have managed to make every single compiler phase (of which there are 28) parallel. This has already led to significant speed-ups. We are now trying to increase the degree of parallelism within each phase. We are also working on error resilience to provide LSP support no matter what errors a program contains (syntax, naming, type). For example, it should be possible to rename a variable even if the program currently has multiple errors.
- We are adding support for algebraic effects and handlers. This will allow users to define and handle their own effects.
- We are also exploring a novel way to combine type classes ("traits") and effects.
- We have recently added support for package management and integration with Maven.
In summary, we are already in a great spot, and useful programs can be written in Flix today. I encourage you to check out the documentation: https://doc.flix.dev/ https://doc.flix.dev/ and to try Flix!
(I am one of the developers of Flix).
- amelius 3y agoIs the compiler written in Flix?
- shimst3r 3y agoLooking at the GitHub repo, it’s written in Scala.
- jorkadeen 3y agoThe Flix compiler is written in Scala. The Flix Standard Library and runtime, which includes a Datalog JIT, is written in Flix. GitHub does not yet recognize .flix, so the numbers reported are an inaccurate representation of the actual code in the repo.
- deleted 3y ago[deleted]
- a-dub 3y agolooks very cool! has there been any talk of native codegen/backends and integration with newfangled cool kid ecosystems (rust, go, etc)?
- jorkadeen 3y agoWe may consider WASM as support for GC, tail calls, and multi-threading arrive.
- mlinksva 3y ago> recently added support for package management Are there any [plans for] supply chain attack mitigations? Naively searching, I find https://github.com/flix/flix/issues/4380#issuecomment-1236412131 https://github.com/flix/flix/issues/4380#issuecomment-123641... (Proposed Principle: A package can be declared as "safe") and https://github.com/flix/flix/issues/2837 https://github.com/flix/flix/issues/2837 (Add capability-safety to polymorphic effects?) the latter closed with working on something related to this https://github.com/flix/flix/issues/3000 https://github.com/flix/flix/issues/3000 (The Road to Algebraic Effects).
- jorkadeen 3y agoIn short yes. We plan to leverage the effect system for this. Stay tuned.
- mlinksva 3y agoThat's great, staying tuned! Plea to all language/languge ecosystem designers in 2023+ to design ahead for supply chain attack mitigations. Austral is one new language that appears to be doing so https://borretti.me/article/how-capabilities-work-austral https://borretti.me/article/how-capabilities-work-austral ... Kudos to those retrofitting to existing ecosystems. I guess Flix is somewhere in the middle, not new (2015?) but still being designed/not huge legacy constraints. Anyway, thanks!