From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on ip-172-31-65-14.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-1.9 required=3.0 tests=BAYES_00,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 Path: eternal-september.org!reader01.eternal-september.org!aioe.org!oDTuUKkHPdLDp1cR2K7oFQ.user.46.165.242.91.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: yet another Ada web site? Date: Fri, 14 Oct 2022 15:05:06 +0200 Organization: Aioe.org NNTP Server Message-ID: References: <8635bxht60.fsf@stephe-leake.org> <12faec32-1572-4df5-af28-be1c41083b9cn@googlegroups.com> <861qrch9j1.fsf@stephe-leake.org> <8635bqveja.fsf@stephe-leake.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: gioia.aioe.org; logging-data="27731"; posting-host="oDTuUKkHPdLDp1cR2K7oFQ.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org"; User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.13.1 Content-Language: en-US X-Notice: Filtered by postfilter v. 0.9.2 Xref: reader01.eternal-september.org comp.lang.ada:64499 List-Id: On 2022-10-14 13:19, Stephen Leake wrote: > "Dmitry A. Kazakov" writes: > >> On 2022-10-14 10:41, Fabien Chouteau wrote: >>> On Thursday, October 13, 2022 at 8:58:20 AM UTC+2, Dmitry A. Kazakov wrote: >>>> It seems so. Multiple versions at once are not supported. E.g. when you >>>> are working on two projects both dependent on different versions of >>>> another project: >>>> >>>> B -> A.1 >>>> C -> A.2 >>> Yes of course, different crates can depend on different version of >>> the same crate. >> >> It is about whether both A's can be installed and coexist on the same >> machine. > > In Alire, "installed" means "checked out the source code into a local > directory". > > If A depends on a system library that is a shared object file, and those > are different versions, then it depends on the OS; Debian can handle > this nicely, Windows only via separate directories and search paths. > > >>>> Or even the same project, e.g. when doing some migration from one >>>> version to another. >>> Not sure how you would do that? Link two different version of the >>> same library in an executable? That's not going to work. >> >> Same as above. You have B.1 -> A.1 and B.* -> A.2. You want to install >> both A.1 and A.2 and work on B.* while checking on B.1. > > And the solution is the same as well. > >> In the long gone time of common sense, a project code management >> system would use a virtual file system and map different parts of the >> projects graph onto a structure of folders arranged by versions. > > What prevents that now? Nothing except that it is to be done manually. Why not download a source archive and bother with anything? It is Turing-complete, after all... (:-)) The advantage of a file system is that developing image will be automated and consistent. And you would not need to move any files physically. Alire is extremely slow because it must pull all files [and then compile them on top of that]. Furthermore, a virtual file system shares duplicates of the same version of same file. When you work with naked Git you must have as many copies as you have projects. Same applies to virtual machines and dockers. It is a huge overhead for nothing. Moreover, a virtual file system is instant so long you do not access a file for read or write. Which is the case for gprbuild, make and other tools which use timestamps and then never look into files. With a virtual file system you can automatically check in all files on closing if it was open for write and never worry about command-line mess or plug-ins. Any tool will work out of the box. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de