Wednesday 21 February 2024

You do not know everything ...

 Hi folks,


Hope you are well since the last time.


Some progress related to EuroBSDCon 2024 in Dublin, now you can finally see its official logo, shoutout to SinΓ¨ad Woods aka baboom βœŠ, also thanks to our sponsors to trust us this year again.

As for my PHPFoundation time, since January, I m pretty glad, only I do realise I have a bit the tendency to judge too quickly parts of PHP I do not fully understand, I need to do better and see the bigger picture. Beyond that, again, I have a good time interacting with various contributors and the other members of the Foundation, I hope it is reciprocal.

At last, I have been increasing my activity in LLVM and Rust a bit, more PR than average had been merged.

The rest is more or less as usual, in the meantime I wish you well and see you next time !

Labels: , , , ,

View David Carlier's profile on LinkedIn

Sunday 14 January 2024

2024 = blossoming ?

 Hi folks,


I hope 2024 is starting great for all of you !


If you love belgium chocolates (or fries), as always, FOSDEM 2024 is the next event to go to ! If you can,

there is also AsiaBSDCon then BSDCan. After that, if you have still the stomach, there should be the next EuroBSDCon in ... Ireland ! The site is still under construction and informations are added when there is enough certainty (so do not bother to ask me anything, just subscribe to the newsletter πŸ‘Œ).

Also, I have the pleasure to be alongside with engineers I have the upmost respect towards to which

are the PHP Core Developers. I became myself one since recently and I ll do my best to bring what I can to this programming language.



I think this is it for now, and wish you a wonderful 2024 year to you all. Take care πŸ‘


Labels: , , , ,

View David Carlier's profile on LinkedIn

Thursday 23 November 2023

Hopefully you learnt your lesson by the 2nd time

 Hi folks,


First and foremost, FreeBSD 14 had been finally released this week, I myself plan to upgrade within this very weekend. Notably, I m glad the number of supported cores had been pushed to 1024 ! Also glad to see more LLVM sanitisers can be used to fix kernel bugs 😊. To finish with BSD, next major events for 2024 will be occurring in the usual slots FOSDEM then AsianBSDCon, for the latter this time in Taiwan ! Today, PHP 8.3 was finally released sometime this afternoon (UK time). As last year, it was interesting to see so many people on X refreshing every few minutes or so awaiting the official announcement πŸ˜‰ but, I guess 2024 ought to be the year of PHP death I'm sure ..

In my side, not much updates, I'm mostly into the same projects, I gave a try to Rust miri to improve FreeBSD support as much as I can. Now in a month time, it will be Xmas so take care of yourself in the meantime !


Labels: , , , ,

View David Carlier's profile on LinkedIn

Sunday 30 July 2023

A thingy to sing e ...

 Hi folks,

Hope all is well in your side !

Same as last year, PHP 8.3 is on its way for the next autumn and, mostly, fit the time schedule. PHP developers might argue again there is not that much significant new features, however nielsdos, one of the recent new members, has made a lot of efforts to significantly improve the DOM extension (among other things, because he is a beast 😁). In my part, I continue trying to improve the PostgreSQL module.

Also, I went back a bit to LLVM, still the fuzzer and sanitisers part, as usual hoping what I have mostly in mind will make it for the next major release. Beyond that, it is mostly projects I like to come back when I get the chance, caprice32 the Amstrad CPC emulator for example or. I have a bit less time for video games but still contribute to Yamagi Quake II. As for modern programming languages, I focus mostly on rust related projects libc, libAFL and rust itself whenever I can ..

Wish you well πŸ™

Labels: , , , ,

View David Carlier's profile on LinkedIn

Thursday 25 May 2023

Before you know it, you are already in your fifties..

 Hi folks,


Less than one month before the summer πŸ™‚, but FreeBSD 14 is more and more around the corner.

One part of this upgrade is its impressive boot time decrease. It comes a long way ... πŸ‘

On my part, I published my first rust crate recently, isoalloc-rs using the related popular security oriented memory allocator. There is already existing excellent crates for the major allocators, jemalloc, mimalloc and the one from SchrodingerZhu ; snmalloc (one of the best in my view). Those are my suggestions if your priority is pure performance, isoalloc has a ton of refined options in return.

Still on my Zig's journey, I m now above 50 commits without really realising it. I like and know the language more but can see more clearly (ie beyond the obvious borrow checker) that, while it overlap a lot with rust, it can't replace it; they can truly co-exist. In the meantime my redox contributions had also grown a little mostly implementing missing syscalls/libc functions.


Labels: , , , , ,

View David Carlier's profile on LinkedIn

Monday 10 April 2023

Which one do I prefer ?

 Hi folks,


Following-up my previous post and having spent more time with Zig since, I have tried to assess which, among the languages I am dealing with, I tend to prefer. Before going further, I wanted to clarify the following statements represent only personal opinions, not a general consensus of any sort nor the "truth" that everyone agrees upon. Indeed, if you prefer language E over A, I encourage you to continue πŸ™‚ and will have my respect as you are dedicating your time into it.

1/ Rust

After 3 years plus after diving into it, I still like the language and what it stands for. Now, I see more of its caveats and idealise it less than I used to ;  it is still an excellent programming language tough. I tend, now, to see it more as a possible C++ replacement than a C one in term of expressiveness possibilities.

Pros:

- Extended expressiveness, the inherent difficulty of Rust does not bother me as much as long it is justified. To me, in the case of Rust, it is. Just the trait concept alone does it in my opinion, same as with the macros.

- Mature ecosystem. It even had been accepted by the Linux kernel as a secondary language of choice for kernel modules (while having refused C++ decades ago, which tells a lot).

- Miri is very helpful to detect possible undefined behavior, but hopefully will be mature enough one day to be part of rust rather than being a separated tool.

- How you can switch memory allocators (jemallocator, mimalloc, etc), while benefits from their features (e.g. jemalloc profiling).

- An excellent alternative for web programming too.

Cons:

- It is far to be straightforward to interact with C++ code however and even with specialised crates (e.g. cxx), it is not ideal. I think if you mostly want to build bridges with legacy C++ code, there are other languages out there more appropriate (Google Carbon, ..., D (yes it is not dead πŸ™‚)).

- But even if you want to deal with C, you have to use libc and/or bindgen capabilities. The latter works mostly fine in my experience. Overall, not a deal breaker in my view tough.

- No builtin defer mechanism but not a huge drawback again on this one, you can fairly do one of your own easily like you would do in C++ with using drop trait and a macro.

- No strong cons overall tough.

2/ Zig

After one month into it, I can't say if this language will "make it"  (ie to the industry at large) with 100% certainty. Does it have the potential tough ? Absolutely ! it has good community and good press already ; but we will know better once 1.0 is out. Indeed, a good chunk of great languages did not or are stuck in a particular niche (Haskell, Ada, ...). The lack of maturity does not discourage me enough to be interested by it tough.

Pros:

- Overall less obscure than Rust, in term of semantic and features usability.

- An excellent bridge builder towards C, better than Rust is for sure.

- The comptime feature by itself but also how accessible it is to use it.

- The various allocators ; arenas, heap, fixed buffers ... are an interesting concept by themselves.

- The clever build system (via build.zig), not only for Zig code but C/C++/ObjC/Assembly as well.

Cons:

- Again ; unless you re willing to do some C wrapping beforehand, there are better solutions out there to deal with C++ code.

- You need to disable ubsan, one of the signs of its inherent immaturity which needs dear fixing.


Others

1/ Nim

I think it s a decent programming language ; however it has a garbage collector. While it can be disabled, with a low level programming language I want the other way around, no garbage collection at all or at least disabled by default  (I am glad c++ 23 removed its support); I prefer to have full reins ; good for them tough you can choose the garbage collection algorithm. Not necessarily a huge fan of the python's like style but that is not necessarily a real deal breaker in my view ; I think their target are indeed around this : python/ruby/golang developers especially for embedded development.

2/ D

It is a bit unfortunate this language did not get much traction decades ago. But it starts to get some renewed interest recently I find, especially that the language mentioned above borrow some of its concepts πŸ˜‰, can interact with C and especially C++ a lot easier than Rust/Zig. It also has a garbage collector but you do not have to use it and manage memory manually.

3/ Jai

Is still in development, the compile time function execution is one of its selling point. The fact that Jai is not yet accessible to the public is a bit of an issue in my view, but looks definitively promising. However I barely see it as a general programming language but has a better chance to have its own niche.

4/ Odin

I personally appreciate it better than Nim and is a more appropriate contender against Zig in my opinion ; is open source, can decently interact with C. I m willing to give it more time to assert and prove themselves in the mid/long term.

So ? ...


Well, for me Rust and Zig are toe to toe, depends of the actual task at hand. For interacting with C and rapid development Zig tends to win but otherwise the higher maturity of Rust has my preference in other situations. As for their performance, both are usually very close in my personal usage and can be potentially be faster than C in some contexts. But overall I appreciate the greatly improved memory safety they both bring.

Labels: , , , ,

View David Carlier's profile on LinkedIn

Wednesday 29 March 2023

Making system programming fun again

 Hi folks,


The AsiaBSDCon is about to start as I write, the main talk which interests me the most is about NGINX Unit, some seem to be updated versions of previous talks but should be great regardless. Following that, FreeBSD 13.2 is around the corner, starting this week !.

Aside from my usual contributions, I recently stumbled across the Zig programming language which I heard of before already but never really tried. Then after couple of days of experimentation, I was pleasantly surprised how easy is to interact with C, you just need to import and the symbols are available to you ; Zig being also a C/C++ compiler you can build a final binary with those 2/3 languages. I also appreciated the absence of preprocessor, the comptime concept (e.g. a if statement can also evaluate a compile time expression) ; overall Andrew Kelley's optimism and dedication is infectious I find. Seems Zig is at a place where Rust was a decade or so ago, not stable yet but is above an interesting threshold with this 0.10.x version. Those two languages represent some very good candidates as the "next" C (Yes I know there is others like Nim, Odin...). Note that C/C++ are not inherently bad languages, not at all ... they are decades ago old which is very different, it is always good to remember the context ...

Also, I decided recently to give a new go at the redox operating system (which is written in Rust), doing mostly TODOs and my own ideas, most of them are already merged.

Labels: , , ,

View David Carlier's profile on LinkedIn