cmeerw

joined 2 years ago
 

Kernel changes

  • x86: PVH boot is now supported on non-XEN platforms (QEMU, Firecracker)
  • various new drivers for temperature (and other environmental) sensors and fan control
  • the heartbeat watchdog will detect locking errors that prevent softints from running or the timecounters from making progress on one of the CPUs
  • On machines with no entropy source timing based entropy estimation allows unblocking of the entropy system (like it used to before NetBSD 10.0)
  • lots of enhancements for Linux emulation
  • new syscall: semtimedop(2)
  • lots of enhancements to the riscv port
  • various bug fixes

Userland changes

  • libm got most (all?) missing long double and transcendental functions
  • userland support for manipulating/querying (U)EFI variables has been added
  • jemalloc has been updated to version 5.3
  • various bug fixes to libpthread and making functions signal safe
  • lots of miscelaneous bug fixes
  • the in-tree X.org components are all (well, nearly - there are a few minor/unimportant exceptions) up-to-date

3rd party software updates included

  • gcc for all architectures is now at version 12.5
  • gdb for all architectures is now at version 15.1
  • binutils for all architectures is now at version 2.42
  • OpenSSL got updated to the latest long term support version available: 3.5.1
  • OpenSSH is at version 10.0
  • many others updated, including dhcpcd, openresolv, unbound, nsd, ...
 

#NetBSD 11.0 has been branched, and the stabilization process now begins. Pre-release snapshots will be available for users to try soon(tm).

This will be the first release with RISC-V, C23, and POSIX 2024 support.

 

So today I wanted to talk about a very cool example that Dan put together on the flight home from Sofia, while I was unconscious a few seats over: the ability to, at compile time, ingest a JSON file and turn it into a C++ object.

 

Herb Sutter just announced that the verdict is in: C++26, the next version of C++, will include compile-time reflection.

Reflection in programming languages means that you have access the code’s own structure. For example, you can take a class, and enumerate its methods. For example, you could receive a class, check whether it contains a method that returns a string, call this method and get the string. Most programming languages have some form of reflection. For example, the good old Java does have complete reflection support.

 

Today marks a turning point in C++: A few minutes ago, the C++ committee voted the first seven (7) papers for compile-time reflection into draft C++26 to several sustained rounds of applause in the room.

 

Let’s take a problem that can only be solved with Reflection and compare what the solution would look like between:

  • the C++26 value-based model
  • the Reflection Technical Specification (TS)’s type-based model
 

In the agenda we will have reports from:

  • board (billc)
  • secteam (billc)
  • releng (martin)
  • core (riastradh)
  • finance-exec (riastradh)
  • membership-exec (martin, christos)
  • pkgsrc-pmc (wiz)
  • pkgsrc-security (tm, leot)
  • gnats (dh)
[–] cmeerw@programming.dev 1 points 6 months ago (1 children)

That leaves UCEPROTECTL3

Is anyone still using them?

 
  • Enhancing Support for NAT64 Protocol Translation in NetBSD - Dennis O.I
  • Asynchronous I/O Framework - Ethan Miller
  • Using bubblewrap to add sandboxing to NetBSD - Vasyl Lanko
 

Each year, the ISO C++ standards committee and the Standard C++ Foundation run this survey to stay in touch with the worldwide C++ community.

[–] cmeerw@programming.dev 2 points 8 months ago

I see a lot of spam coming from sendgrid, so I wonder how long they can continue operating that way until they get blocked completely by one of the larger mailbox providers.

[–] cmeerw@programming.dev 3 points 9 months ago (1 children)

see https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3471r2.html#enabling-hardening

Much like a freestanding implementation, the way to request a hardened implementation is left for the implementation to define. For example, similarly to -ffreestanding, we expect that most toolchains would provide a compiler flag like -fhardened, but other alternatives like a -D_LIBCPP_HARDENING_MODE= macro would also be conforming.

[–] cmeerw@programming.dev 3 points 10 months ago

I wonder if it would be possible to build such a tool on top of tree-sitter (although not sure tree-sitter's C++ grammar can handle modules yet)

[–] cmeerw@programming.dev 15 points 1 year ago

at least you could keep their reviews so users could at least know if the app can be trusted.

You mean, don't trust a flatpak uploaded by a random person, but if there are enough fake reviews, it can be trusted?

[–] cmeerw@programming.dev 2 points 1 year ago

No mention of Reflection which was passed to the Core Working Group for wording review, or senders/receivers (on the library side) which was actually voted into the working paper.

[–] cmeerw@programming.dev 1 points 1 year ago

Huh? There is no such alternation between new features and feature freeze releases. In fact, C++26 will very likely get reflection as a major new feature. In comparison, the biggest core language feature in C++23 was probably "deducting this (explicit object member functions)".

The only thing that keeps Contracts out of C++26 is that they might not be finished in time (they'll need to be handed over from Evolution to Core by the February 2025 meeting, and then make it through Core review during the summer 2025 meeting).

[–] cmeerw@programming.dev 1 points 1 year ago

... except when ISO delays publication of the standard.

[–] cmeerw@programming.dev 1 points 2 years ago

Can anyone explain why there is such a huge difference in some of the benchmarks: Poll, Forking, CPU Cache, Semaphores, Socket Activity, Context Switching (all Stress-NG). Can we really trust these tests?

[–] cmeerw@programming.dev 2 points 2 years ago (1 children)

Depends on what semantic you want. Sure, if you use a unique_ptr member, you will get a deleted copy constructor/operator - I wouldn't consider that blowing up in my face.

[–] cmeerw@programming.dev 9 points 2 years ago (4 children)

And even the presented fix hurts my eyes. Should have used a unique_ptr or optional.

[–] cmeerw@programming.dev 1 points 2 years ago

Yes, it's not Open Source, but I am not sure that's really relevant here. I see it more as a prototype implementation for something that could be standardised for C++.

view more: next ›