Hacker News new | ask | show | jobs
by jorkadeen 936 days 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/ and to try Flix!

(I am one of the developers of Flix).

3 comments

> 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-123641... (Proposed Principle: A package can be declared as "safe") and 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 (The Road to Algebraic Effects).

In short yes. We plan to leverage the effect system for this. Stay tuned.
That'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 ... 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!

Is the compiler written in Flix?
The 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.
Looking at the GitHub repo, it’s written in Scala.
Ok, then I'll wait until they start dogfooding ;)

Looks incredibly cool though.

It doesn't make much sense to self-host compiler unless there is a significant community (resources) or you don't want to write another compiler in it.
looks very cool! has there been any talk of native codegen/backends and integration with newfangled cool kid ecosystems (rust, go, etc)?
We may consider WASM as support for GC, tail calls, and multi-threading arrive.