web analytics
Newspapers

 
Categories: OS-Kernel

IronClad v0.70

v0.7.0

Non-breaking changes

  • Greatly improved block device (SATA, NVMe) caching. Leading to big performance improvements.
  • Added a basic NVMe driver.
  • Implement support for x86's SMAP, and expose it in an architecture-independent way.
  • Harden syscall memory argument checks.
  • Added AT_REMOVEDIR for the unlink syscall.
  • Added a kernel-side terminal for easier early boot debugging for the
    x86_64-limine target.
  • Improve PS2 device detection as to avoid false positives and false negatives.
  • Reworked x86_64-limine's clock subsystem.
  • Add support for pipe sockets with socketpair.
    Improved internal kernel printing by adding support for more 'Image uses.
  • Better handle Out Of Memory (OOM) conditions with fallible allocations.
  • Improve ACPI power button handling by exposing them to userland with the
    pwrbutton/sleepbutton devices, which can be polled by userland daemons
    for power commands.
  • Expand program loading ASLR applications by also using it for dynamic
    program bases.
  • Tons of bug fixes.
  • Improve signal handling.

Breaking changes

  • Removed the spawn syscall, modified the forksyscall` to take a
    FORK_VFORK argument that makes it not copy the parent process's tables. For
    the rationale, visit our blog's article on the matter.
  • Removed power handling interfaces replaced by the pwrbutton/sleepbutton
    changes.
  • Changed the mapping of the signal numbers handled by Ironclad due to POSIX
    requirements, affecting SIGHUP, SIGINT, SIGQUIT, SIGABRT, SIGKILL, SIGALRM,
    and `SIGTERM☠.
  • Replaced the getrandom syscall for the POSIX-compliant getentropy.

Non-code related changes

  • Moved our infrastructure from Savannah and Github to Codeberg.
  • Coalesced project web presence to (https://ironclad-os.org).
  • Started work on the project's blog, a
    hub for Ironclad news, articles, and all Ironclad, with RSS feeds for easy
    following.
Categories: Library

Simple Components v4.73

Changes to the previous version:

  • Bug fix in Generic_Set.Insert which failed to set Inserted output correctly when the element is already in the set;
  • Bug fix in Generic_Indefinite_Set.Insert, same as above;
  • The package Generic_Lock_Free_FIFO was added. The package implements lock-free N-to-M FIFOs.

See full description on Dmitry's dev page

Categories: Library

Simple Components v4.72

  • Topic list bug fix in the package GNAT.Sockets.MQTT (thanks to Xavier Grave);
  • Minor performance improvements in Unbounded_Unsigneds: calculating log2, testing for power of two;
  • OpenSSL MQTT test (test_mqtts_openssl_client) added;
  • GNAT.Sockets.Server.Secure (GNUTLS) bug fixed. Activated is called at the end of handshaking;
  • GNAT.Sockets.Server.OpenSSL bug fixed. Activated is called at the end of handshaking.

See full description on Dmitry's dev page

Categories: Library

Simple Components v4.71

Changes to the previous version:

The package Generic_FFT provides an implementation fast Fourier transform. The implementation supports pre-computed bit-reverse permutation and exponents to be used in multiple transformations of same vector length.

see full description on Dmitry's dev page

Categories: Library

Simple Components v4.70

  • The package Unbounded_Unsigneds implementing arbitrary precision unsigned arithmetic was added;
  • The package Unbounded_Integers implementing arbitrary precision integer arithmetic was added;
  • The package Unbounded_Unsigneds Primes implementing operations with prime numbers was added;
  • The package Unbounded_Unsigneds.Montgomery implementing Montgomery domain operations was added;
  • The package Strings_Edit.Unbounded_Unsigned_Edit string editing for arbitrary precision unsigned numbers was added;
  • The package Strings_Edit.Unbounded_Integer_Edit string editing for arbitrary precision integer numbers was added;
  • The package Unbounded_Unsigneds.Parallel implementing parallel arbitrary precision algorithms was added;
  • The package Job_Servers was added implementing servers of jobs backed by a task pool;
  • The number protocol added to Python bindings;
  • Reply_Text and Reply_HTML in GNAT.Sockets.Connection_State_Machine.HTTP_Server modified to call Send_Body passing the Get parameter rather than skipping it when Get = False;
  • UUID v6 and v7 generation was added to Universally_Unique_Identifiers.

See full description on Dmitry's dev page

Categories: Library random crypto

UUIDs v1.0

UUIDs is compliant with RFC 9562, notably UUIDv7.

It’s able to generate UUIDv1 through UUIDv8 (excluding UUIDv2, which is not covered in the spec).

It can identify the version and variant of the UUIDs, as well as some other things like printing (using 'Image thanks to Ada 2022) and converting the raw values to an element array.

See full ReadMe & Sources on GitHub

Categories: Library

UXStrings v0.8.1

This Ada library provides utilities for Unicode character strings of dynamic length.

Changes:

  • Add formatting integers, floats, enumerates and more with format like lib C printf for UXString based on GNAT.Formatted_String.

NB: UXS4 is now the default implementation.

Categories: Compiler Framework

Lightweight Parallelism library based on Ada 2022 features (update)

A full implementation of the parallel features of Ada 2022 is yet to be released. In the meantime, here is a light-weight-threading library that provides essentially all of the parallel features of Ada 2022, using various generics, etc. Scheduling is provided using a plug-in architecture. If no scheduler is plugged in, the light-weight threads are simply executed sequentially. If a light-weight-thread scheduler is plugged in, then the light-weight threads spawned by instances of the various generic packages are managed by that scheduler.

The light-weight threading library is available at:
https://github.com/parasail-lang/parasail/tree/main/lwt

Categories: Library

Simple Components v4.69

  • The procedure Compile was added to Python bindings in order to get a handle to the compiled module;
  • The function Object_Super of the bindings is an equivalent of x.super().y. It returns the implementation of y from the x's parent class.

See full description on Dmitry's dev page

EEC GDPR compliant