Post by Eduardo Julian on Aug 10, 2018 10:50:05 GMT
Hi, everyone!
I'm sorry to say that the new compiler is still not ready for primetime.
So far, I've gotten it to compile the first 900 lines of the prelude (lux.lux).
I'm in the middle of debugging pattern-matching compilation, as apparently there's something wrong with it and that's why I can't compile more lines of code, yet.
With that said, I'll probably be done with that particular issue by today or tomorrow.
My plans for the weekend are to tackle that issue, port some more machinery from new-luxc into stdlib, and adapt and test parallel compilation and the new caching layer that I built a little while ago.
By the end of the weekend I hope to be fully compiling the prelude (lux.lux) and a few other modules.
Next week, the focus is supposed to be with fixing a few type-checker bugs (overall that new-luxc type-checker is superior to the old-luxc type-checker, but there are still a couple of issues where it fails to type-check that I need to figure out); also I have to benchmark the different stages of compilation in order to optimize it, and remove the mysterious performance problem that new-luxc currently has.
I'll also focus on doing a small overhaul to the JVM interop layer, and to the way data-structures (tuples & variants) get encoded and manipulated (through pattern-matching) in Lux.
Sorry that new-luxc is still highly work-in-progress.
However, with that said, I'm highly optimistic about things.
I think, by the end of the month, all the JVM machinery should be almost finished.
I'll see if I get out a 0.6-alpha0 release by then which should be usable.
If you wonder where the delays in development are coming from, it's mostly because I keep messing around with the architecture of the system.
I've been doing a lof of re-designs of parts the architecture all over the place, and I've even gone through multiple interations on some parts of the system, as my understanding of things has improved over time.
The original Lux compiler was something that I developed as a throw-away design.
I never really cared so much about its quality beyond its performance, because I always knew I would replace it some day.
The new Lux compiler is meant to stay. And even though I'm bound to change things in important ways over time, I really do care a lot about its design and architecture and I want to make sure it is as good as possible, as that is ultimately the key to enabling a lot of the plans I have for it in the future.
All that re-design and re-architecting undoubtedly breaks things, and then fixing and adjusting things takes some time.
Plus, as I work on the compiler, I notice a lot of compromises and hacks I did in the old days, which them prompts me to do further re-designs of things to correct a lot of bad ideas that have become baggage on the language.
Anyway, just wanted to let you know what's going on, and that for the first time in a long time, I finally feel hopeful that I can finish this in the near future.
For a while I've felt like I've been trapped in an endless loop where I work and I work but the amount of work remaining just keeps growing and growing.
But I finally feel like I'm getting the work pile down and its end is in sight.
Have a great day, and let me know if you have any questions!
I'm sorry to say that the new compiler is still not ready for primetime.
So far, I've gotten it to compile the first 900 lines of the prelude (lux.lux).
I'm in the middle of debugging pattern-matching compilation, as apparently there's something wrong with it and that's why I can't compile more lines of code, yet.
With that said, I'll probably be done with that particular issue by today or tomorrow.
My plans for the weekend are to tackle that issue, port some more machinery from new-luxc into stdlib, and adapt and test parallel compilation and the new caching layer that I built a little while ago.
By the end of the weekend I hope to be fully compiling the prelude (lux.lux) and a few other modules.
Next week, the focus is supposed to be with fixing a few type-checker bugs (overall that new-luxc type-checker is superior to the old-luxc type-checker, but there are still a couple of issues where it fails to type-check that I need to figure out); also I have to benchmark the different stages of compilation in order to optimize it, and remove the mysterious performance problem that new-luxc currently has.
I'll also focus on doing a small overhaul to the JVM interop layer, and to the way data-structures (tuples & variants) get encoded and manipulated (through pattern-matching) in Lux.
Sorry that new-luxc is still highly work-in-progress.
However, with that said, I'm highly optimistic about things.
I think, by the end of the month, all the JVM machinery should be almost finished.
I'll see if I get out a 0.6-alpha0 release by then which should be usable.
If you wonder where the delays in development are coming from, it's mostly because I keep messing around with the architecture of the system.
I've been doing a lof of re-designs of parts the architecture all over the place, and I've even gone through multiple interations on some parts of the system, as my understanding of things has improved over time.
The original Lux compiler was something that I developed as a throw-away design.
I never really cared so much about its quality beyond its performance, because I always knew I would replace it some day.
The new Lux compiler is meant to stay. And even though I'm bound to change things in important ways over time, I really do care a lot about its design and architecture and I want to make sure it is as good as possible, as that is ultimately the key to enabling a lot of the plans I have for it in the future.
All that re-design and re-architecting undoubtedly breaks things, and then fixing and adjusting things takes some time.
Plus, as I work on the compiler, I notice a lot of compromises and hacks I did in the old days, which them prompts me to do further re-designs of things to correct a lot of bad ideas that have become baggage on the language.
Anyway, just wanted to let you know what's going on, and that for the first time in a long time, I finally feel hopeful that I can finish this in the near future.
For a while I've felt like I've been trapped in an endless loop where I work and I work but the amount of work remaining just keeps growing and growing.
But I finally feel like I'm getting the work pile down and its end is in sight.
Have a great day, and let me know if you have any questions!