all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Madhu <enometh@meer.net>
To: emacs-devel@gnu.org
Subject: Re: [PROPOSAL] Builder, a build system integration for Emacs
Date: Sun, 28 May 2023 15:50:25 +0530	[thread overview]
Message-ID: <m3y1l8bvva.fsf@leonis4.robolove.meer.net> (raw)
In-Reply-To: 3a315ddd3aa7d7cda74e@heytings.org

* Gregory Heytings <3a315ddd3aa7d7cda74e @heytings.org> :
Wrote on Sat, 27 May 2023 00:25:25 +0000:
>>> This is the misconception I pointed to in my previous post: Rust
>>> libraries are not dynamic libraries, they are compiled into the
>>> program.  This eliminates all compatibility problems: you can have
>>> as many programs as you want on your computer, each one compiled
>>> with a different version of a given library.
>> I have trouble understanding that.  Before dynamic libraries, we
>> used static libraries.  Each library was a .o file, made by
>> compilation.
> Rust libraries are neither dynamic (compiled separately and loaded at
> run time) nor static (compiled separately and linked at build time),
> they are always compiled together with the program.
>> But how can each program have its own version of one and the same
>> library?  Does Rust store all libraries as **source code** and
>> recompile each library each time that library is linked into a
>> program?
>>
>
> Yes, that's how it works.  For example, there are 25 versions of the
> "itoa" library (which does the opposite of the well-known "atoi"
> function), and you could have 25 different Rust programs on your
> computer, each one using on a different version of that library.  If
> you build these programs yourself, you will end up, in your local
> CARGO_HOME directory, with a copy of the source code of the 25
> versions of that library: itoa-0.1.0, ..., itoa-1.0.6.

This (and in golang) is the spiritual equivalent of having (and
shipping) every variant of functions in all released versions glibc
available, and a program may "link" to any of the versions. Where
"linking" means compiling all the sourcees, using the current llvm
satisfying the hardware and build requirements including memory and
hardware and obligatory traffic to the repo homeservers (no payas you
cannot change crates.io, you can only add a second repo server, and
change all your config files to use it)

Conventional thinking would abhor at the horror of having all versions
of all glibc functions all the time, even if you have got the whole
thing from a repo server. Now why is this is a good idea?  The folk
investing in it and the jobs and also investing in the hardware and
bandwidth probably know.














  reply	other threads:[~2023-05-28 10:20 UTC|newest]

Thread overview: 101+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-21 10:21 [PROPOSAL] Builder, a build system integration for Emacs BTuin
2023-05-21 12:11 ` Philip Kaludercic
2023-05-21 14:56   ` Augustin Chéneau (BTuin)
2023-05-21 17:24 ` Jim Porter
2023-05-21 19:33   ` Augustin Chéneau (BTuin)
2023-05-21 19:58     ` Jim Porter
2023-05-21 21:36       ` John Yates
2023-05-22 16:35       ` Augustin Chéneau (BTuin)
2023-05-23  0:44         ` Po Lu
2023-05-23 21:10           ` Augustin Chéneau (BTuin)
2023-05-23 21:17             ` Óscar Fuentes
2023-05-24  6:09             ` Dirk-Jan C. Binnema
2023-05-24 21:35               ` Richard Stallman
2023-05-24 23:32                 ` Jim Porter
2023-05-25  0:11                 ` Gregory Heytings
2023-05-25  4:00                   ` tomas
2023-05-25  6:53                     ` Gregory Heytings
2023-05-25  7:48                       ` Eli Zaretskii
2023-05-25  9:33                         ` Gregory Heytings
2023-05-25 11:28                           ` Eli Zaretskii
2023-05-25 11:53                             ` Gregory Heytings
2023-05-25 13:09                               ` Eli Zaretskii
2023-05-25 14:36                                 ` Gregory Heytings
2023-05-25 16:20                                   ` Eli Zaretskii
2023-05-25 16:40                                     ` tomas
2023-05-25 19:23                                     ` Gregory Heytings
2023-05-26  0:57                                       ` Po Lu
2023-05-27  0:24                                         ` Gregory Heytings
2023-05-26  5:57                                       ` Eli Zaretskii
2023-05-26 21:16                                       ` Richard Stallman
2023-05-27  0:25                                         ` Gregory Heytings
2023-05-28 10:20                                           ` Madhu [this message]
2023-05-28 12:38                                             ` Po Lu
2023-05-29 22:03                                               ` Gregory Heytings
2023-05-29 22:42                                                 ` Po Lu
2023-05-30  7:26                                                   ` Gregory Heytings
2023-05-30 12:54                                                     ` Po Lu
2023-05-30 15:08                                                       ` Gregory Heytings
2023-05-30 16:50                                                         ` chad
2023-05-31  1:14                                                         ` Po Lu
2023-06-05  1:09                                                           ` Gregory Heytings
2023-06-05  5:29                                                             ` Po Lu
2023-06-05  8:17                                                               ` Gregory Heytings
2023-06-05  9:06                                                                 ` Po Lu
2023-06-17  3:34                                                                   ` Yilkal Argaw
2023-05-27 14:55                                         ` Brian Cully via Emacs development discussions.
2023-05-26  0:54                                   ` Po Lu
2023-05-26 21:16                                   ` Richard Stallman
2023-05-27  0:26                                     ` Gregory Heytings
2023-05-27  2:37                                       ` Ruijie Yu via Emacs development discussions.
2023-05-28 21:48                                       ` Richard Stallman
2023-05-29 22:05                                         ` Gregory Heytings
2023-05-30 13:01                                           ` Po Lu
2023-05-30 15:08                                             ` Gregory Heytings
2023-05-31  1:16                                               ` Po Lu
2023-06-02 21:38                                                 ` Richard Stallman
2023-06-05  1:10                                                 ` Gregory Heytings
2023-06-05  5:19                                                   ` Po Lu
2023-06-05  8:17                                                     ` Gregory Heytings
2023-06-05  9:00                                                       ` Po Lu
2023-05-31 22:28                                               ` Richard Stallman
2023-05-30 21:52                                           ` Richard Stallman
2023-05-28 21:48                                       ` Richard Stallman
2023-05-25 13:16                         ` chad
2023-05-25 19:38                           ` Augustin Chéneau (BTuin)
2023-05-26 21:32                           ` Richard Stallman
2023-05-27  9:45                             ` Yuri Khan
2023-05-28 21:48                               ` Richard Stallman
2023-05-29  8:03                                 ` Yuri Khan
2023-05-30 21:47                                   ` Richard Stallman
2023-05-25  7:55                       ` tomas
2023-05-25  8:44                         ` Gregory Heytings
2023-05-25 10:38                       ` Po Lu
2023-05-25 11:44                         ` Gregory Heytings
2023-05-25 12:02                           ` Po Lu
2023-05-25 12:08                             ` Gregory Heytings
2023-05-26  0:52                               ` Po Lu
2023-05-26 21:16                           ` Richard Stallman
2023-05-27  0:26                             ` Gregory Heytings
2023-05-28 21:47                               ` Richard Stallman
2023-05-29 22:05                                 ` Gregory Heytings
2023-05-30 13:03                                   ` Po Lu
2023-05-31 22:29                                     ` Richard Stallman
2023-05-26 22:59                       ` Lynn Winebarger
2023-05-28 21:22                         ` Björn Bidar
2023-05-29 22:38                           ` Richard Stallman
2023-05-29 22:38                           ` Richard Stallman
2023-05-30  4:28                             ` tomas
2023-05-25 10:42             ` Po Lu
2023-05-25 19:36               ` Augustin Chéneau (BTuin)
2023-05-22 22:00 ` Richard Stallman
2023-05-23  8:36   ` Philip Kaludercic
2023-05-23 11:18     ` Eli Zaretskii
2023-05-23 12:13       ` Po Lu
2023-05-23 18:46       ` Augustin Chéneau (BTuin)
2023-05-24  6:32         ` Juri Linkov
2023-05-24 20:09           ` Augustin Chéneau (BTuin)
2023-05-24  3:34     ` David Masterson
2023-05-24 10:26       ` Philip Kaludercic
2023-05-28 21:17     ` Björn Bidar
  -- strict thread matches above, loose matches on Subject: below --
2023-05-27  7:12 [PROPOSAL] " Payas Relekar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m3y1l8bvva.fsf@leonis4.robolove.meer.net \
    --to=enometh@meer.net \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.