From patchwork Tue Aug 30 16:31:36 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Sockwell X-Patchwork-Id: 42078 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 8152F27BBEA; Tue, 30 Aug 2022 18:34:00 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 4B7E327BBE9 for ; Tue, 30 Aug 2022 18:33:58 +0100 (BST) Received: from localhost ([::1]:54520 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oT57d-0008Vf-Cu for patchwork@mira.cbaines.net; Tue, 30 Aug 2022 13:33:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:56198) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oT49j-0005Ce-7l for guix-patches@gnu.org; Tue, 30 Aug 2022 12:32:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:47533) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oT49i-0004KQ-T6 for guix-patches@gnu.org; Tue, 30 Aug 2022 12:32:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oT49i-0007gJ-El for guix-patches@gnu.org; Tue, 30 Aug 2022 12:32:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#57491] [PATCH] patch series: Update Raku ecosystem Resent-From: "Daniel Sockwell" Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 30 Aug 2022 16:32:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 57491 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 57491@debbugs.gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.166187711229509 (code B ref -1); Tue, 30 Aug 2022 16:32:02 +0000 Received: (at submit) by debbugs.gnu.org; 30 Aug 2022 16:31:52 +0000 Received: from localhost ([127.0.0.1]:37282 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oT49Y-0007ft-1V for submit@debbugs.gnu.org; Tue, 30 Aug 2022 12:31:52 -0400 Received: from lists.gnu.org ([209.51.188.17]:45712) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oT49T-0007fh-54 for submit@debbugs.gnu.org; Tue, 30 Aug 2022 12:31:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38868) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oT49S-0004np-Fj for guix-patches@gnu.org; Tue, 30 Aug 2022 12:31:46 -0400 Received: from out1.migadu.com ([2001:41d0:2:863f::]:38435) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oT49P-0004HV-Bd for guix-patches@gnu.org; Tue, 30 Aug 2022 12:31:46 -0400 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=codesections.com; s=key1; t=1661877097; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1VuxvB9pptNxlJjIZLJpIY8qLDS5zRZUGWUF2lCJfAM=; b=zsdSvtMvBbPCy1etkVpawQGerhztAW/TjMyyENtq6fJhDStKe9itWlZqTaeR76SxVJYIhO 9GxuwDCwRPblctzeie7VIFyBVFHM0xkC+ENjeVJpOTZptPt3Ui/xWshk+lC5zJ9+3gTtrQ llLIt+XWq01brEjPcI/Qi0f36WqLgOQttjE46CQxOq4UsYUSp1R5UqmjIIDI/f0VOLTBzh cYKzzlVMvGaX+0lWTQWM1coOPcpAIP52fhB5qbwUgrmsDb+R0+uw6wBS1AK5+xd49vDOmn aBwaQ/Iu6u3oJ+zRnrCR6Z2oXoP11hsBNE7z7W+LcyCl2+rE6l4u+D1wo5kmqg== Date: Tue, 30 Aug 2022 16:31:36 +0000 X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. Message-ID: X-Migadu-Flow: FLOW_OUT X-Migadu-Auth-User: codesections.com Received-SPF: pass client-ip=2001:41d0:2:863f::; envelope-from=daniel@codesections.com; helo=out1.migadu.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Mailman-Approved-At: Tue, 30 Aug 2022 13:23:26 -0400 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" Reply-to: Daniel Sockwell X-ACL-Warn: , Daniel Sockwell via Guix-patches X-Patchwork-Original-From: Daniel Sockwell via Guix-patches via From: Daniel Sockwell X-getmail-retrieved-from-mailbox: Patches Hi all, I am working on updating Guix's version of the compiler/related tools for the Raku programming language. The current versions are from March of 2019, which makes them pretty out-of-date given Raku's monthly release cadence. This first patch is for MoarVM (the virtual machine that Raku runs on) which is a dependency for later packages. I note that, unfortunately, the output of this package is currently non-deterministic; however, the same is true of the 2019 version so that non-determinism isn't a regression. This is my first Guix package so I'd welcome any feedback you might have. I will follow up shortly with three additional patches that Guix needs in order to provide an up-to-date Raku compiler. Thanks in advance! Best, Daniel From 18919edeb7ba1f3e3a18e710a715eec899f1910c Mon Sep 17 00:00:00 2001 Message-Id: <18919edeb7ba1f3e3a18e710a715eec899f1910c.1661876717.git.daniel@codesections.com> From: Daniel Sockwell Date: Tue, 30 Aug 2022 12:23:21 -0400 Subject: [PATCH] Update moarvm 2019.03->2022.07 --- gnu/packages/perl6.scm | 88 +++++++++++++++++++++--------------------- 1 file changed, 45 insertions(+), 43 deletions(-) diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm index dab9dd477b..9b3d98987a 100644 --- a/gnu/packages/perl6.scm +++ b/gnu/packages/perl6.scm @@ -22,11 +22,13 @@ (define-module (gnu packages perl6) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix packages) + #:use-module (guix build-system gnu) #:use-module (guix build-system perl) #:use-module (guix build-system rakudo) #:use-module (gnu packages bdw-gc) #:use-module (gnu packages libevent) #:use-module (gnu packages libffi) + #:use-module (gnu packages perl) #:use-module (gnu packages multiprecision) #:use-module (gnu packages pkg-config) #:use-module (gnu packages tls)) @@ -34,29 +36,27 @@ (define-module (gnu packages perl6) (define-public moarvm (package (name "moarvm") - (version "2019.03") + (version "2022.07") (source - (origin - (method url-fetch) - (uri (string-append "https://moarvm.org/releases/MoarVM-" - version ".tar.gz")) - (sha256 - (base32 - "017w1zvr6yl0cgjfc1b3ddlc6vjw9q8p7alw1vvsckw95190xc14")) - (modules '((guix build utils))) - (snippet - '(begin - ;(delete-file-recursively "3rdparty/dynasm") ; JIT - (delete-file-recursively "3rdparty/dyncall") - (delete-file-recursively "3rdparty/freebsd") - (delete-file-recursively "3rdparty/libatomicops") - (delete-file-recursively "3rdparty/libuv") - (delete-file-recursively "3rdparty/libtommath") - (delete-file-recursively "3rdparty/msinttypes") - #t)))) - (build-system perl-build-system) + (origin + (method url-fetch) + (uri (string-append "https://moarvm.org/releases/MoarVM-" version ".tar.gz")) + (sha256 (base32 "0ijvdd7jyq990zyxrlv8pqhf53q20qhbjly6cnagj9pq2r6z0zik")) + (modules '((guix build utils))) + (snippet + '(begin (for-each + delete-file-recursively + '(;"3rdparty/dyncall" ; upstream prefers dyncall to libffi + ;"3rdparty/dynasm" ; needed for JIT + ;"3rdparty/freebsd" ; freebsd/memmem.o is used on linux + "3rdparty/libatomicops" + "3rdparty/libtommath" + "3rdparty/libuv" + "3rdparty/msinttypes")))))) + (build-system gnu-build-system) (arguments - '(#:phases + '(#:test-target "test" + #:phases (modify-phases %standard-phases (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) @@ -65,34 +65,36 @@ (define-public moarvm (setenv "CFLAGS" "-fcommon") (setenv "LDFLAGS" (string-append "-Wl,-rpath=" out "/lib")) (invoke "perl" "Configure.pl" - "--prefix" out - "--pkgconfig" (string-append pkg-config "/bin/pkg-config") - "--has-libtommath" + "--mimalloc" "--has-libatomic_ops" - "--has-libffi" - "--has-libuv"))))))) + "--has-libtommath" + "--has-libuv" + ;"--has-dyncall" ; TODO: package dyncall for guix + "--toolchain" "gnu" + "--os" "linux" + "--pkgconfig" (string-append pkg-config "/bin/pkg-config") + "--prefix" out))))))) (home-page "https://moarvm.org/") ;; These should be inputs but moar.h can't find them when building rakudo - (propagated-inputs - (list libatomic-ops libffi libtommath-1.0 libuv)) - (native-inputs - (list pkg-config)) - (synopsis "VM for NQP And Rakudo Perl 6") + (propagated-inputs (list libatomic-ops libtommath libuv)) + (native-inputs (list pkg-config perl)) + (synopsis "Virtual machine for the Raku programming language") (description - "Short for \"Metamodel On A Runtime\", MoarVM is a modern virtual machine -built for the Rakudo Perl 6 compiler and the NQP Compiler Toolchain. Highlights -include: + "MoarVM (\"Metamodel On A Runtime\") is a modern virtual machine built for +the Raku programming language, NQP, and the Rakudo Raku compiler. MoarVM's +features include: @itemize -@item Great Unicode support, with strings represented at grapheme level -@item Dynamic analysis of running code to identify hot functions and loops, and -perform a range of optimizations, including type specialization and inlining -@item Support for threads, a range of concurrency control constructs, and -asynchronous sockets, timers, processes, and more -@item Generational, parallel, garbage collection -@item Support for numerous language features, including first class functions, -exceptions, continuations, runtime loading of code, big integers and interfacing -with native libraries. +@item Just-in-time compilation of running code, allowing MoarVM to identify +and optimize hot functions/loops. Optimizations include type specialization, +code inlining/elimination, and on-stack replacement. +@item Unusually strong Unicode support enabled by strings represented at +grapheme level and an embedded copy of the Unicode Character Database +@item Support for numerous Raku language features, such as delimited +continuations, first-class functions, resumable exceptions, runtime code +loading, bounded serialization, and native calling/pointer manipulation. +@item The low-level concurrency primitives required to implement Raku's +high level concurrency system. @end itemize") (license license:artistic2.0)))