Heads up: Qi 4 Release Incoming

After more than a year of contributions, work on the Qi compiler is getting close to release (targeted for next week)! And we would love your help with testing it, especially against existing codebases making use of Qi.

As part of implementing an optimizing compiler, this release includes backwards-incompatible changes:

  • mixing pure functions and undeclared effects (e.g. a displayln somewhere inside a function) is no longer honored (use an expicit side effect instead)
  • syntax is now matched literally (which may affect you if you have bindings with the same name as Qi forms)
  • explicit use of esc when defining a flow using a Racket higher order function is now required (formerly there was a quirk that allowed a shortcut here - that is now eliminated)

So this is to give advance warning that this new release could break existing Qi code that you may have (and if it does (or doesn't), that would be valuable to hear about). Now is a great time to test your existing codebases that make use of Qi against the new compiler branch (here is one way to do that). We are already aware of the above backwards incompatibilities and are eager to help you migrate your code in case you run into any of them or discover another one we didn't know about.

Thanks for your help!

4 Likes

We're getting close and things are looking to be on track for Friday's planned release. If you'd like to join for the "release party," such as it is, we're glad to have you :slightly_smiling_face: . Bring your favorite drink! And for some entertainment, we just might be able to convince my cat Ferdinand to do tricks for us. Hope to see you there!

Well, it's never as simple as that, is it :sweat_smile: . Due to some last minute issues that turned up during testing, we felt it would be best to push the release out by a couple of weeks to be on the safe side. This will give more time to fix the issues that came up as well as more time for review and testing. We are now targeting the "release party" for January 5 (Friday). It will be at the usual Qi meeting time that's on the Racket calendar.

We will still be meeting tomorrow and will likely investigate the issues that came up (e.g. relating to premature termination of compiler optimization passes, and a case of improper application of optimization while traversing the input syntax) and the best ways to fix them.

Of course, further community testing and review is appreciated as we get closer to release. Thanks!

We're actually going to move this to Friday January 12 to better accommodate schedules of Qi contributors. Hope to see you then!

1 Like

Hi all, a reminder that the :yin_yang: Qi 4 :yin_yang: release meetup is happening tomorrow! We typically meet on the old Racket Gather (but on the remote chance we hit the attendee limit, we can move elsewhere as needed):

Where: Racket Gather
When: 2024-01-12T18:00:00Z

Also, as some of you know, we had been planning to have my cat Ferdinand perform some tricks for us under the pretext of Qi 4 being like "chi chi chi chi," a way of calling cats in Prague and other parts of Europe. Ferdy is recovering from a stroke that he had this past weekend (actually, right before or during the monthly Racket meetup, and I had to leave to take him to the ER!), so we will see if he is feeling up to doing any tricks for us tomorrow or not. A few days ago I did not think there was any chance he would be able to, as he was in a coma for a day, and they told us that he may never regain his sight even if he were to awaken. Remarkably, he is back, he is getting stronger, and he can see! And, he is already keen on doing tricks (he LOVES to do tricks). If this champion feels like doing a couple, then we won't stop him :joy_cat:

1 Like