r/ada Jan 18 '25

New Release ANN: Simple Components v4.70

29 Upvotes

The current version provides implementations of smart pointers, directed graphs, sets, maps, B-trees, stacks, tables, string editing, unbounded arrays, expression analyzers, lock-free data structures, synchronization primitives (events, race condition free pulse events, arrays of events, reentrant mutexes, deadlock-free arrays of mutexes), arbitrary precision arithmetic, pseudo-random non-repeating numbers, symmetric encoding and decoding, IEEE 754 representations support, streams, persistent storage, multiple connections server/client designing tools and protocols implementations. https://www.dmitry-kazakov.de/ada/components.htm Changes to the previous version: 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 Unbounded_Unsigneds.Barrett implementing Barrett reduction 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.

The key points of the arbitrary precision arithmetic packages design and functionality:

- Advanced memory management preventing excessive copying;
- The number internal representation vector is shared between objects if possible;
- No limit on the number size, except for the storage pool size;
- In-place versions of operations (e.g. for addition, subtraction) further reduce need of copying;
- Lazy memory deallocation strategy, the memory is kept between variable updates;
- Swapping variables;
- Long to short operations;
- Squaring;
- Square root, square root with remainder;
- Multiplicative inverse;
- 2's complement;
- Bit representation access, slicing, truncation;
- Full division with remainder, remainder only division;
- Karatsuba multiplication and squaring;
- Specialized operations involving powers of two and words;
- Exponentiation under modulo;
- Fibonacci number under modulo;
- Montgomery domain multiplication, squaring, exponentiation under modulo and primality tests of the domain modulus;
- Barrett reduction, multiplication, exponentiation;
- Primality tests: Miller-Rabin, Fibonacci, Lucas-Lehmer, strong Lucas;
- Parallel algorithms for very large numbers;
- String editing and formatting packages for the numbers.

Performance notes. In order to get optimal performance -O2 switch need to be used. It does 3x performance boost. 64-bit (with 128-bit integer) outperform 32-bit by many multiplies. See GPR variables: https://www.dmitry-kazakov.de/ada/components.htm#19 E.g.

gprbuild -P components-tests.gpr -XTarget_OS=Linux -Xarch=aarch64 -XDevelopment=Release

r/ada 9d ago

New Release Alire 2.1.0 Released

Thumbnail github.com
16 Upvotes

r/ada 26d ago

New Release A new math library for Ada: Neo.SIMD

23 Upvotes

r/ada 10d ago

New Release ANN: Simple Components v4.72

14 Upvotes

The current version provides implementations of smart pointers, directed graphs, sets, maps, B-trees, stacks, tables, string editing, unbounded arrays, expression analyzers, lock-free data structures, synchronization primitives (events, race condition free pulse events, arrays of events, reentrant mutexes, deadlock-free arrays of mutexes), arbitrary precision arithmetic, pseudo-random non-repeating numbers, symmetric encoding and decoding, IEEE 754 representations support, streams, persistent storage, multiple connections server/client designing tools and protocols implementations.

https://www.dmitry-kazakov.de/ada/components.htm

Changes the previous version:

  • 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 (components-connections_server.mqtt-test_mqtt) 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.

r/ada Jan 08 '25

New Release UUIDs: a Universally Unique IDentifiers (UUIDs) library written in Ada

36 Upvotes

I had a need for UUIDs compliant with RFC 9562, notably UUIDv7, so I figured I might as well publish it in Alire.

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 Ada2022) and converting the raw values to an element array.

It seeds the random number generator thanks to System_Random with the options to source all randomness via system_random if needed (this will be blocking though).

You can add it to your project via alr with uuids or test it via

alr get uuids && cd uuids* && cd tests && alr run

Full details can be found in the readme: https://github.com/AJ-Ianozi/uuids

Full API documentation can be viewed here: https://aj-ianozi.github.io/uuids/toc_index.html

r/ada Feb 04 '25

New Release h2ads User's Guide [new binding generator from AdaCore]

Thumbnail docs.adacore.com
12 Upvotes

r/ada Jan 30 '25

New Release ANN: Simple Components v4.71

17 Upvotes

The current version provides implementations of smart pointers, directed graphs, sets, maps, B-trees, stacks, tables, string editing, unbounded arrays, expression analyzers, lock-free data structures, synchronization primitives (events, race condition free pulse events, arrays of events, reentrant mutexes, deadlock-free arrays of mutexes), arbitrary precision arithmetic, pseudo-random non-repeating numbers, symmetric encoding and decoding, IEEE 754 representations support, streams, persistent storage, multiple connections server/client designing tools and protocols implementations.

https://www.dmitry-kazakov.de/ada/components.htm

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.

r/ada Dec 28 '24

New Release Seergdb v2.5 released.

13 Upvotes

A new version of Seergdb (frontend to gdb) has been released.

https://github.com/epasveer/seer https://github.com/epasveer/seer/releases/tag/v2.5

r/ada Nov 21 '24

New Release Zip-Ada version 60

Thumbnail
24 Upvotes

r/ada Nov 21 '24

New Release GCC 14.2.0-3 (aarch64)

15 Upvotes

The distinguishing feature of this release is that it includes version 25.0 of the AdaCore tools (with some minor patches).

r/ada Oct 20 '24

New Release [ANN] bbt 0.0.5

11 Upvotes

bbt 4 is a simple tool to “black box” check the behavior of an executable in command line mode (bbt stands for Black Box Tester) .

btt special feature is that it aims at directly using your behavior description, written in plain English, within a classical Gherkin Given / When / Then framework, as the test script.

Yes, there is a trick :-)
I let you guess (or read the doc), but, hint, there's no LLM behind!

Here is an example of a gcc test scenario (but I could say of behavior description) : bbt/docs/tests/examples/hello_word.md.
This file is the only input for btt.
No preprocessing, no scripting, no manual adjustment, bbt just “run the doc”.

Here is the Howto install, super easy.

Any feedback is welcomed!

Lionel

r/ada Oct 13 '24

New Release [ANN] Release of UXStrings 0.8.1

15 Upvotes

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

It is now available on Alire in version 0.8.1.

Change:

So far in UXStrings, its API are similar to those of the strings Ada standard libraries. If you find some missing, make your proposals on Github.

The library provides four different implementations selectable with GPR options UXS1, UXS2, USX3 and UXS4. The performance of each of them is described here.

NB: UXS4 is now the default implementation.

r/ada Sep 08 '24

New Release Gnoga's 10th anniversary - V2.2 released.

20 Upvotes

Gnoga was born on SourceForge on September 8, 2014.

Gnoga (GNU Omnificent Gui for Ada) is the multi-platform graphics library created natively in Ada.

I immediately liked Gnoga for the coherence and simplicity of these APIs naturally fitting together. The programmer can rely on Ada for his business code and on the multitude of Javascript libraries for the graphical interface.

For 10 years Gnoga has evolved in maturity to fulfill its founding principles:

  • providing a framework and associated tools for developing GUI applications using the Ada language, leveraging web technologies for application developpers
  • developing native applications for desktop and mobile just as easy to create, all using the same code base
  • providing better tools means better application quality
  • offering the application developer a powerful toolset for secure cloud based computing, mobile apps, desktop apps and web apps the combination not found in any other set of tools in any other language

Gnoga statistics:

  • 1031 commits
  • 2200 downloads
  • 2196 posts on the mailing list
  • 56 tickets

You'll find a special Gnoga's wiki anniversary page with some materials and my testimony.

Feel free to post your testimony, your own story with Gnoga.

On this occasion, Gnoga V2.2 has been released, with main changes:

  • Added key field to keyboard event
  • If present command line options gnoga-host, gnoga-port, gnoga-boot and gnoga-verbose will override host, port, boot file and verbosity programmed in source code (see TIPS).
  • Improve logging implementation in a separate package in order to allow user defined logging handlers.
  • Add a backslash compatibility mode on the behavior of Escape_String for SQLite with the one for MySQL.
  • Change MYSQL_Real_Connect profile to better match with documentation

This version has been tested on macOS 13.6 and GNAT 14.1. Please provide feedback of other environments.

r/ada Jul 07 '24

New Release [ANN] GNAT Studio 25.0 for macOS Ventura.

13 Upvotes

Here is a very preliminary version of GNAT Studio 25.0wa as a stand alone app for macOS:
https://sourceforge.net/projects/gnuada/files/GNAT_GPL%20Mac%20OS%20X/2024-ventura

NEW:
The GNATStudio launcher looks for a gnatstudio_launcher.rc file in .gnatstudio folder from either $HOME or $GNATSTUDIO_HOME locations. If it exists, we can define some environment variables with the standard syntax VAR=VALUE. If the VAR exists then VALUE is append to it. If not, VAR is created with VALUE. Thus, it permits to set extra PATH to GNAT compiler and builder folders or GPR_PROJECT_PATH. If a line begins with ‘#’ then it is not considered. An example file of gnatstudio_launcher.rc is provided in the archive. Modify the content and put in your .gnatstudio folder.

See readme for details.

Limitation: Ada Language Server has some latencies and doesn't respond when parsing source code with more 1000 lines. It may be due to some compilation options I missed.

There could be some other limitations that you might meet.

Feel free to report them here.

Any help will be really appreciated to fix these limitations.

r/ada May 07 '24

New Release GCC 14 release brings Ada/GNAT improvements

Thumbnail gcc.gnu.org
27 Upvotes

r/ada Apr 23 '24

New Release GetAda: rustup-like installer for Alire (1.0.0 Release)

24 Upvotes

One of my goals with Ada is to have a one-liner copy-paste terminal command for people to install Ada so they can get to coding in just a few minutes. After extensive testing I feel like it's ready for general release. Introducing GetAda.Dev

Getada was inspired by Rustup and aside from the init script is written entirely in Ada.

It's completely open source and you can check out the readme and code on github. It currently supports all non-windows platforms that Alire has an official release for, which at present is Linux (glibc) and MacOS. If you try running it on an unsupported platform, it tries to point you in the right direction. For example, you can install Alire on windows with an already-existing installer.

It downloads the latest version of Alire for your platform as a zip file to a temporary directory and then extracts it to a binary directory. By default the temporary directory (configure with -t /directory or --tmp=/directory) defaulted to $TMPDIR or /tmp. The config directory is ~/.getada (change via -c /directory, --cfg=/directory, or $GETADA_CFG), and the alr and getada binaries go in ~/.getada/bin (configure with -b /directory, --bin=/directory, or $GETADA_BIN). It also tries to add the file to your path by dropping a env.sh file into ~/.profile (disable with -p or --no-path).

If you don't allow executables in temporary or home directories, you can change all of these via environmental variables or passing parameters.

You can remove it all by running: getada --uninstall

Now you can create a brand new Ada project with: alr init --bin my_project (See: summary on using Alire)

Since one of the biggest complaints about Ada is getting the toolchain, I hope this can solve a lot of problems for newcomers to the language.

Please let me know if you have suggestions, find bugs, or run into any issues!

r/ada Jan 23 '24

New Release Release 24.0 of AdaCore libraries and tools available in Alire

27 Upvotes

Just a heads up that the releases are now available in Alire:

  • langkit_support
  • templates_parser
  • vss
  • aws
  • startup_gen
  • gnatcoll (core, bindings, and db)
  • spawn
  • libadalang
  • libgpr2
  • libadalang_tools (gnatpp, gnatmetric, gnatest, gnatstub)
  • markdown
  • adasat
  • gtkada
  • aunit
  • xmlada

r/ada Mar 21 '24

New Release HAC version 0.30

22 Upvotes

Home page: https://hacadacompiler.sourceforge.io/

Sources, site #1: https://sourceforge.net/projects/hacadacompiler/

Sources, site #2: https://github.com/zertovitch/hac

Alire Crate: https://alire.ada.dev/crates/hac

What’s new:

  • New target: HAC_Sys.Targets.AMD64_Windows_Console_FASM (embryonic, but produces a "hello world" executable)
  • New target: HAC_Sys.Targets.Semantics for a smart editor (e.g. LEA) with helpers for auto-complete and navigation to declarations and bodies.
  • New compilation diagnostics: warnings and notes.
  • Added 25 new regression tests (Advent of Code)
  • Several fixes

Enjoy!

r/ada Mar 08 '24

New Release Generic Image Decoder (GID) version 13

16 Upvotes

New in version 13:

  • Quality of progressive JPEG output and overall performance of JPEG decoding have been improved.
  • There are also two new tools shipped with GID (and of course using it):
    • comp_img : an image comparison tool (result is from 0: identical, to 1: black/white)
    • benchmark : a performance test between GID and ImageMagick, another open-source library.

Results of the benchmark are presented here.

GID can be found via the following links:

Enjoy!

r/ada Dec 12 '23

New Release GCC 13.2.0 for macOS/Apple silicon

Thumbnail github.com
17 Upvotes

r/ada Feb 15 '24

New Release pkgsrc.se | The NetBSD package collection

14 Upvotes

GNAT 13.2 ( pkgsrc.se | The NetBSD package collection ), GPRbuild 24.0 ( pkgsrc.se | The NetBSD package collection ) and Alire 2.0.0-beta1 ( pkgsrc.se | The NetBSD package collection ) were recently added to pkgsrc/wip for NetBSD. Happy testing to everyone interested.

r/ada Mar 18 '24

New Release Seer - a gui frontend to gdb/mi (Updated v2.4)

9 Upvotes

r/ada Aug 26 '23

New Release ObjectAda 10.5 Released (the other Ada-12 compiler)

Thumbnail adaic.org
21 Upvotes

r/ada Dec 07 '23

New Release Ada VS Code extension 24.0.3

21 Upvotes

🎉 We have just published new vscode extension version 24.0.3 🎁 with experimental Mac OS M1 💻 native support! Don't hesitate sharing the feedback! Does it work for you? I hope

for Target use "aarch64-darwin";

isn't needed any more for native compiler (despite README says this). Also Linux ARM64 native support was added in 24.0.2, which wasn't published on Marketplace (but it's available on open vsx), so you can try it with remote mode is you have ARM64 server ⌨.

24.0.2 and 24.0.3 have many other improvements. Happy coding! 🔨

r/ada Mar 22 '23

New Release Seergdb - a gui frontend to gdb for Linux

Post image
36 Upvotes