From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([209.51.188.92]:43101) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hX48T-0003kR-U6 for guix-patches@gnu.org; Sat, 01 Jun 2019 09:33:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hX3zP-0003bc-G6 for guix-patches@gnu.org; Sat, 01 Jun 2019 09:24:05 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:52219) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hX3zO-0003bU-NN for guix-patches@gnu.org; Sat, 01 Jun 2019 09:24:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hX3zO-0008EJ-9y for guix-patches@gnu.org; Sat, 01 Jun 2019 09:24:02 -0400 Subject: [bug#36033] Add Smalltalk Pharo VM Resent-Message-ID: From: Ludovic =?UTF-8?Q?Court=C3=A8s?= References: Date: Sat, 01 Jun 2019 15:23:02 +0200 In-Reply-To: (Brian Woodcox's message of "Fri, 31 May 2019 13:46:50 -0600") Message-ID: <877ea5fnih.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Brian Woodcox Cc: 36033@debbugs.gnu.org Hello, Thanks for working on this, and congrats on your first package, which is not an easy one! :-) Some preliminary comments: Brian Woodcox skribis: > From 49683e04e51cd904571008fa7979a3f58ae0134c Mon Sep 17 00:00:00 2001 > From: "Brian C. Woodcox" > Date: Fri, 31 May 2019 13:14:54 -0600 > Subject: [PATCH] Add pharo-vm package [...] > +(define %url "https://github.com/OpenSmalltalk/opensmalltalk-vm.git") My understanding (but I=E2=80=99m no expert) is that this is a VM that can = run Pharo bytecode, but it=E2=80=99s not =E2=80=9Cthe=E2=80=9D Pharo VM. Is it= correct? > +(define-public pharo-vm > + (package > + (name "pharo-vm") Consequently, it looks like this should be called =E2=80=98opensmalltalk-vm= =E2=80=99, no? > + (arguments > + `(#:tests? #f ;; no tests available Or maybe there=E2=80=99s a special command to run them? > + ;; add symlinks > + (symlink (string-append (assoc-ref %build-inputs "libgit2= ") "/lib/libgit2.so") > + (string-append out "/lib/pharo/" pharo-version "= /libgit2.so")) > + (symlink (string-append (assoc-ref %build-inputs "libssh2= ") "/lib/libssh2.so") > + (string-append out "/lib/pharo/" pharo-version "= /libssh2.so")) > + (symlink (string-append (assoc-ref %build-inputs "openssl= ") "/lib/libssl.so") > + (string-append out "/lib/pharo/" pharo-version "= /libssl.so")) > + (symlink (string-append (assoc-ref %build-inputs "freetyp= e")"/lib/libfreetype.so.6") > + (string-append out "/lib/pharo/" pharo-version "= /libfreetype.so.6"))) Those symlinks look somewhat inelegant to me. :-) Could we instead arrange so that the VM searches for those files in their right place? Often that involves substituting things like =E2=80=9Clibfoo.so=E2=80=9D in the code with the corresponding absolute fil= e name (see for example how this is done for Racket.) Last question: does this Git checkout contain binaries, such as Smalltalk images? IOW, is this being built entirely from source, or is it bootstrap from opaque binaries? (I know that Pharo itself is or used to be bootstrap from very old Smalltalk images and that work was ongoing to get rid of them and have a nicer bootstrapping story.) Thank you, Ludo=E2=80=99.