Programming Leftovers
-
18 Best NodeJS Frameworks for App Development in 2023
Node.js is used to build fast, highly scalable network applications based on an event-driven non-blocking input/output model, and single-threaded asynchronous programming.
A web application framework is a combination of libraries, helpers, and tools that provide a way to effortlessly build and run web applications. A web framework lays out a foundation for building a website/app.
-
16 Lessons from the Tanenbaum–Torvalds Debates
Part 2 of The Tanenbaum–Torvalds Debates. 16 generalized software development lessons from the debate of microkernels vs. monolithic kernels, and two computer science visionaries — Andrew Tanenbaum and Linus Torvalds.
-
Git v2.40.1 and friends
A maintenance release Git v2.40.1, together with releases for older maintenance tracks v2.39.3, v2.38.5, v2.37.7, v2.36.6, v2.35.8, v2.34.8, v2.33.8, v2.32.7, v2.31.8, and v2.30.9, are now available at the usual places.
These maintenance releases are to address security issues identified as CVE-2023-25652, CVE-2023-25815, and CVE-2023-29007. They affect ranges of existing versions and users are encouraged to upgrade.
The tarballs are found at:
https://www.kernel.org/pub/software/scm/git/
The following public repositories all have a copy of the 'v2.40.1' tag, as well as the tags for older maintenance tracks listed above... -
Git 2.40.1 (and several others) released
There is a new stable Git release containing fixes for three separate security vulnerabilities. The fixes have also been backported to the older v2.39.3, v2.38.5, v2.37.7, v2.36.6, v2.35.8, v2.34.8, v2.33.8, v2.32.7, v2.31.8, and v2.30.9 releases. Sites using Git in untrusted environments — or with untrusted input — should probably upgrade soon.
-
GCC 13 and the state of gccrs
The first official GCC 13 release is just around the corner, and you may be a bit surprised to find out that gccrs will not be included in it. The aim of this blogpost is to go into a little bit more detail as to why this was done and how you can still try out our compiler if you’d like to.
Back in 2022, we started investigating the process of merging our code upstream with GCC. Quickly after that, our frontend was accepted for the merge, which was a great moment for us - it demonstrated people’s faith in the gccrs community and in the project’s goal of having an alternative GCC toolchain implementation of the Rust Programming Language. Given that the compiler is still not ready, we decided to go through that process with some limitations.
The expectation we had was that by making it clear the compiler was still not ready for real Rust code, we could get valuable feedback from early users as well as more engagement from two different communities - the Rust one as well as the GCC one. We would continue to push as hard as possible right up until the release’s deadline to get as much working as we could, but now that the GCC 13.1 release is upon us, we are still not there in terms of completeness.
What this means is that when using gccrs, you are still not able to do “easy Rust things” - examples like “Hello World!”, or using the standard library in general, will not work. Similarly, even more complex concepts which are essential to the Rust Programming Language like borrow-checking are not implemented yet, and gccrs will not be considered complete without such features. We believe that this would cause a lot of confusion for unsuspecting users, who might see gccrs as part of an official GCC release and expect a working compiler.
-
An update on the GCC frontend for Rust
Philip Herron and Arthur Cohen have posted an update on the status of gccrs — the GCC frontend for the Rust language — and why it will not be a part of the upcoming GCC 13 release.