Programming Leftovers
Perl / Raku
-
Rakudo Weekly News: 2022.44 PRename
An announcement by the board of The Perl Foundation caused quite a bit of confusion (PerlWeekly, HackerNews comments), both in the Perl and Raku communities. Elizabeth Mattijsen explained that it was the wording of the announcement causing confusion. It’s the underlying legal entity “Yet Another Society” that will get another trade name (doing-business-as) “The Perl and Raku Foundation” (TPRF). Along with the other dbas “The Perl Foundation” and “The Raku Foundation”.
-
Hello and welcome! | MarisaG [blogs.perl.org]
Perl is my all-time favorite language, and I have been using it since it was released. But I just now decided to create a website for it to share and curate Perl content with other fans.
-
On the Perl and Raku Foundation
The announcement of a change of name of "The Perl Foundation" to the "The Perl and Raku Foundation" left me feeling puzzled, and I should say disappointed.
Fortunately, after the last Raku Steering Council meeting, it became clear that my disappointment was unwarranted. And that my (and probably a lot of other people's) puzzlement was caused by poor wording of the announcement, not by what it was trying to convey.
R
-
Dirk Eddelbuettel: RcppGSL 0.3.12 on CRAN: Maintenance
A new release 0.3.12 of RcppGSL is now on CRAN. The RcppGSL package provides an interface from R to the GNU GSL by relying on the Rcpp package.
This release accomodates, just like so many other releases this week, the more stringent views of clang-15 about what a correct function prototype is. While we were at it, an updatet to GitHub Actions was made as well.
-
Dirk Eddelbuettel: RcppBDT 0.2.6 on CRAN: Maintenance
A minor maintenance release for the RcppBDT package is now on CRAN.
The RcppBDT package is an early adopter of Rcpp and was one of the first packages utilizing Boost and its Date_Time library. The now more widely-used package anytime is a direct descentant of RcppBDT.
This release accomodates, just like so many other releases this week, the more stringent views of clang-15 about what a correct function prototype is. While we were at it, an updatet to GitHub Actions was made as well.
-
Dirk Eddelbuettel: RApiDatetime 0.0.7 on CRAN: Maintenance
A new release of our RApiDatetime package is now on CRAN.
RApiDatetime provides a number of entry points for C-level functions of the R API for Date and Datetime calculations. The functions asPOSIXlt and asPOSIXct convert between long and compact datetime representation, formatPOSIXlt and Rstrptime convert to and from character strings, and POSIXlt2D and D2POSIXlt convert between Date and POSIXlt datetime. Lastly, asDatePOSIXct converts to a date type. All these functions are rather useful, but were not previously exported by R for C-level use by other packages. Which this package aims to change.
This release accomodates, just like so many other releases this week, the more stringent views of clang-15 about what a correct function prototype is. While we were at, updates to GitHub Actions and https URL were made as well.
Misc.
-
Meet Abi – Collabora Software Engineering Intern
Collabora recruits interns to work over the summer alongside our team, and to build experience to help them assess whether they want to pursue a career in Software Engineering, but how does that work out?
-
ephemerons and finalizers -- wingolog
Good day, hackfolk. Today we continue the series on garbage collection with some notes on ephemerons and finalizers.
[...]
This is a more annoying property for a garbage collector to track. If you happen to mark K as live and then you mark E as live, then you can just continue to trace V. But if you see E first and then you mark K, you don't really have a direct edge to V. (Indeed this is one of the main purposes for ephemerons: associating data with an object, here K, without actually modifying that object.)
During a trace of the object graph, you can know if an object is definitely alive by checking if it was visited already, but if it wasn't visited yet that doesn't mean it's not live: we might just have not gotten to it yet. Therefore one common implementation strategy is to wait until tracing the object graph is done before tracing ephemerons. But then we have another annoying problem, which is that tracing ephemerons can result in finding more live ephemerons, requiring another tracing cycle, and so on. Mozilla's Steve Fink wrote a nice article on this issue earlier this year, with some mitigations.
[...]
The gnarliness continues! Imagine that O is associated with a finalizer F, and also, via ephemeron E, some auxiliary data V. Imagine that at the end of the trace, O is unreachable and so will be dead. Imagine that F receives O as an argument, and that F looks up the association for O in E. Is the association to V still there?
Guile's documentation on guardians, a finalization-like facility, specifies that weak associations (i.e. ephemerons) remain in place when an object becomes collectable, though I think in practice this has been broken since Guile switched to the BDW-GC collector some 20 years ago or so and I would like to fix it.
-
TinyML-CAM pipeline enables 80 FPS image recognition on ESP32 using just 1 KB RAM
The challenge with TinyML is to extract the maximum performance/efficiency at the lowest footprint for AI workloads on microcontroller-class hardware. The TinyML-CAM pipeline, developed by a team of machine learning researchers in Europe, demonstrates what’s possible to achieve on relatively low-end hardware with a camera.