[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Upgraded to .NET 10 and some random ramblings



Hi,

I recently merged a merge request 
(https://gitlab.perlang.org/perlang/perlang/-/merge_requests/658) that 
upgraded from our previous .NET version (.NET 8) to .NET 10. In case 
anyone wants to build Perlang from source, keep this in mind. I've also 
updated the project README to reflect this.

When I upgraded the .NET version the last time (September 2024), I wrote 
this in my commit message 
(https://gitlab.perlang.org/perlang/perlang/-/commit/e66979e6468a62741b32b78498b92472a5752dd1):

     Let's upgrade now, and hope that this .NET upgrade is the last
     upgrade we'll ever do (in other words, let's hope we are self-hosted
     by the time .NET 8 runs out of support). This might be hoping for
     too much, since the effort of becoming self-hosted is likely to take
     a few years. Let's see on November 10, 2026 if we made it or not. :)
  
(https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core#lifecycle)

Well, we're not at November yet, but I can already say now that hoping 
that the self-hosting issue 
(https://gitlab.perlang.org/perlang/perlang/-/issues/454) will be solved 
by then is clearly hoping for too much. We are making progress, slowly 
but steadily, but it's clearly a multi-year project. I'd rather see it 
take the time it needs than rushing something out the door; that's the 
way I feel when it comes to software development, I guess.

Speaking on other upcoming development, I've started working on range 
support a while ago, and hoping to complete it someday. The idea is to 
be able to write things like "if (x in 1..10)", and also be able to use 
it for switch statements. Think about scenarios where you want to run 
the same block for all values between 1 and 5, for example.

Another thing that I hope will come up soon is to start working on 
revisiting Mac support for Perlang 
(https://gitlab.perlang.org/perlang/perlang/-/issues/511). We now have 
the preconditions in place; my employer (who happens to be my own 
company :) has been gracious enough to purchase an M4-based Mac Mini. 
One of the first Perlang-related steps on this machine would be to get 
some form of virtualization-based CI runner setup. I'm thinking of 
something along the lines of 
https://gitlab.perlang.org/perlang/perlang-bsd-ci - some scripts for 
preparing virtual machine images in a repeatable way, and an 
accompanying set of "driver" scripts for GitLab to be able to start/stop 
the VMs as CI jobs are being launched.

I don't have any experience with headless virtualization on Mac, so if 
someone happens to read this and is an expert on the topic, please get 
in touch. What I *did* find when googling a bit on this was Cilicon: 
https://github.com/traderepublic/Cilicon. There is also 
https://github.com/cirruslabs/gitlab-tart-executor, but that one seems 
to follow an annoying pattern common on macOS and Windows: it uses the 
proprietary Tart for maintaining macOS virtual machines, so less 
interesting in that sense. If possible, I really want something based on 
free software. Qemu seems to have VMApple support, but seems limited to 
macOS 12.x which is too old. I want something that can run a macOS 
version that is currently supported.

I think I remember seeing some other option for this as well, but can't 
remember exactly which one it was. Either way, this will likely be a bit 
of an effort to get accomplished.

My time for Perlang is currently quite limited, but still wanted to 
write this project update to help you know that I'm still alive. :) 
Until we see each other next time, dear mailing list - have a nice time.

-- 
Per Lundberg
Perlang author and maintainer