comp.lang.ada
 help / color / mirror / Atom feed
From: Paul Jarrett <jarrett.paul.young@gmail.com>
Subject: Re: yet another Ada web site?
Date: Tue, 11 Oct 2022 21:21:31 -0700 (PDT)	[thread overview]
Message-ID: <12faec32-1572-4df5-af28-be1c41083b9cn@googlegroups.com> (raw)
In-Reply-To: <8635bxht60.fsf@stephe-leake.org>

> Adahome.com is sort of like that, but it is run by some company and 
> hasn't been updated in forever.

https://ada-lang.io/ is designed to be updateable for a long time and open to community contributions by being completely open source.  There's already multiple people who have permissions to merge changes to help ensure longevity.

> I don't have much trouble finding any information that I want about Ada,
> e.g. with web searches.

> I cannot suggest searching the Web, because search engines deteriorated
> beyond any usability. Just ask what you need here.

ada-lang.io is indexed using Algolia, so the entire site (including the Ada 2022 draft RM) is searchable.

Someone else wrote a tool for searching through all code in Alire crates at https://search.synack.me/

> I am not sure if package manager is a good idea if it does not refer the
> target system's packaging tools, e.g. DEB, RPM, MSI etc.
>
> The main problem with that stuff is usually architectural. Most of it is
plain aggregation of source code, which is utterly wrong.
> 
> The very idea to rebuild everything each time on each client is
> atrocious both with regard of wasting computing resources as well as
> testing, safety, consistency, interoperability inside the target.

Alire can do additional build steps and other things.

As an application developer, having the code available helps in auditing third-party software for security reasons, build it in a debug configuration for troubleshooting, and also provides the means to locally fix bugs or adapt the library if needed.  Isolating libraries and including them with a package manager on a per project basis eases setup also by not making developers have to look up or use multiple installers.

I've seen inconsistencies in builds when developers who rely on the system libraries (installed by things like apt) join the project at different times -- the earliest developers might be on libfoo-1.2 whereas newer developers are on libfoo-1.4.  You don't run into this problem if the repo points to the applicable dependencies and everyone builds everything locally.  It also avoid other problems such as if your system's package manager doesn't have a particular library version, and the project builds that library from source.  It's not perfect and there's other problems that you run into, but it often does help understanding what is being built in the project more clear.  Alire even takes this an entire step further by being able to install and manage the toolchain as well (gprbuild and GNAT).

Package managers also simplify having multiple projects using the same library, but different and possibly incompatible versions on the same system.  You get a snapshot in time and a more consistent path to get a build working for new developers, or on a new system.  There are limitations due to what systems open source library writers have available to test on, so you shouldn't just blanket trust code you pull in though, and you should be careful how you use it.

Overall, Alire makes the experience building and developing in Ada for me on Windows, Mac and Linux, considerably simpler and more efficient, by providing the same interface for use across all of these systems.

With the beautiful site styling done by onox, someone pointed to ada-lang.io should be able to download Alire, install a toolchain, make a project and build in less than 15 minutes or so (depending on download and install time).  The work done by Fabien and Alejandro, and everyone else who has contributed to Alire to make this happen within the last couple years is absolutely incredible.  Combined with Maxim's fantastic work on the Ada language plugin for Visual Studio Code and it's a great experience for first-time users of the language.

> What definition/semantics of "move" do you mean? Is it documented
> somewhere?
> 
> What I do not understand: Why should the move operation be less expensive than a copy?
> As I see it: First you have to do a copy, then delete the source.
>
> Besides avoiding copying indirectly pointed-to data, it also can enforce
> single ownership in things like std::unique_ptr.

It's referring to the C++ and Rust notions of "move".

Moves can be less expensive than copy since it's a transfer of ownership of resources, such has handing off a heap allocated resources instead of doing an allocation and then copying the data, or handing off a socket or file handle to a new object.  It allows modelling different semantics.  E.g. in C++ there are both copy constructors/copy assignment operators, but also move constructors/move assignment operators.  Moves are the sense of "You can steal the resources if you want."

> Maybe a web forum would be a good idea, because many people nowadays see
> Usenet newgroups as an outdated thing. So the fact that the community
> mostly relies on comp.lang.ada may turn them off.

There's a dedicated forum now at https://forum.ada-lang.io/

  reply	other threads:[~2022-10-12  4:21 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-25 10:01 yet another Ada web site? Maxim Reznik
2022-08-26 18:58 ` Paul Rubin
2022-08-27  9:12 ` Rene
2022-08-27  9:53   ` Nasser M. Abbasi
2022-08-28  7:21     ` Simon Wright
2022-08-28  7:50     ` Dmitry A. Kazakov
2022-08-28 10:26       ` Luke A. Guest
2022-09-16 15:25         ` Maxim Reznik
2022-09-16 17:07           ` Luke A. Guest
2022-09-16 17:34           ` Stephen Leake
2022-09-16 18:45             ` Jere
2022-09-17  9:45               ` Luke A. Guest
2022-09-16 18:49           ` Jere
2022-09-17 13:08           ` Move semantics (was: yet another Ada web site?) G.B.
2022-09-19 17:04             ` Move semantics Stephen Leake
2022-09-19 18:50               ` Paul Rubin
2022-09-20 11:44                 ` AdaMagica
2022-09-20 14:46                   ` Niklas Holsti
2022-09-20 19:39                   ` Paul Rubin
2022-09-24  6:54                 ` Stephen Leake
2022-09-18  8:47           ` yet another Ada web site? grosdan
2022-09-18 10:57             ` Dmitry A. Kazakov
2022-09-18 16:28             ` Luke A. Guest
2022-09-19 17:02             ` Stephen Leake
2022-09-19  6:39           ` Emmanuel Briot
2022-09-30 10:29   ` shtps
2022-09-30 12:29     ` Niklas Holsti
2022-10-09 16:13       ` Stephen Leake
2022-10-12  4:21         ` Paul Jarrett [this message]
2022-10-13  0:06           ` Stephen Leake
2022-10-13  6:58             ` Dmitry A. Kazakov
2022-10-14  8:41               ` Fabien Chouteau
2022-10-14 10:05                 ` Dmitry A. Kazakov
2022-10-14 11:19                   ` Stephen Leake
2022-10-14 13:05                     ` Dmitry A. Kazakov
2022-10-16  8:54                       ` G.B.
2022-10-16  9:20                         ` Dmitry A. Kazakov
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox