unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#50449] [PATCH] Add zig
@ 2021-09-07  5:22 Andrew Patterson
  0 siblings, 0 replies; 4+ messages in thread
From: Andrew Patterson @ 2021-09-07  5:22 UTC (permalink / raw)
  To: 50449; +Cc: Andrew Patterson

---
Note that this is a minor version behind; zig 0.8.0 depends on all the
clang headers version 12.x, and the current version of lld is 11.x.

 gnu/packages/zig.scm | 73 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 73 insertions(+)
 create mode 100644 gnu/packages/zig.scm

diff --git a/gnu/packages/zig.scm b/gnu/packages/zig.scm
new file mode 100644
index 0000000000..bb8af0c98d
--- /dev/null
+++ b/gnu/packages/zig.scm
@@ -0,0 +1,73 @@
+(define-module (gnu packages zig)
+  #:use-module (guix packages)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system cmake)
+  #:use-module ((guix licenses) #:prefix l:)
+  #:use-module (guix build utils)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages llvm)
+  #:use-module (guix utils))
+
+;; Zig versions depend on specific LLVM major versions; should be able to update
+;; to 0.8.x with lld@12
+(define-public zig
+  (package
+    (name "zig")
+    (version "0.7.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ziglang/zig")
+             (commit version)))
+       (sha256
+        (base32
+         "0gq8xjqr3n38i2adkv9vf936frac80wh72dvhh4m5s66yafmhphg"))))
+    (build-system cmake-build-system)
+    (inputs
+     `(("llvm" ,llvm-11)
+       ("clang-toolchain" ,clang-toolchain-11)
+       ("lld" ,lld))) ; is currently version 11
+    (arguments
+     `(#:tests? #f
+       #:phases (modify-phases %standard-phases
+                  (add-before 'install 'set-cachedir
+                    (lambda* _ ;; See [[https://github.com/ziglang/zig/issues/6810]]
+                      (setenv "XDG_CACHE_HOME" "/tmp/"))))))
+    (home-page "https://ziglang.org/")
+    (synopsis
+     "Programming language for maintaining robust, optimal, and reusable software")
+    (description
+     "Zig is a general-purpose programming language and toolchain for
+maintaining robust, optimal, and reusable software.
+
+⚡ A Simple Language
+
+Focus on debugging your application rather than debugging your programming
+language knowledge.
+@itemize @bullet
+@item No hidden control flow.
+@item No hidden memory allocations.
+@item No preprocessor, no macros.
+@end itemize
+
+⚡ Comptime
+
+A fresh approach to metaprogramming based on compile-time code execution and
+lazy evaluation.
+@itemize @bullet
+@item Call any function at compile-time.
+@item Manipulate types as values without runtime overhead.
+@item Comptime emulates the target architecture.
+@end itemize
+
+⚡ Performance Meets Safety
+
+Write fast, clear code capable of handling all error conditions.
+@itemize @bullet
+@item The language gracefully guides your error handling logic.
+@item Configurable runtime checks help you strike a balance between performance
+and safety guarantees.
+@item Take advantage of vector types to express SIMD instructions portably.
+@end itemize")
+    (license l:expat)))
-- 
2.33.0





^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [bug#50449] [PATCH] Add zig
       [not found] <handler.50449.B.163099841130426.ack@debbugs.gnu.org>
@ 2021-09-07 17:21 ` Andrew Patterson
  2021-09-08 10:11   ` Andrew Patterson
  0 siblings, 1 reply; 4+ messages in thread
From: Andrew Patterson @ 2021-09-07 17:21 UTC (permalink / raw)
  To: 50449; +Cc: Andrew Patterson

---
I forgot the copyright header last time; here it is with it.

 gnu/packages/zig.scm | 91 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 91 insertions(+)
 create mode 100644 gnu/packages/zig.scm

diff --git a/gnu/packages/zig.scm b/gnu/packages/zig.scm
new file mode 100644
index 0000000000..59056a1f88
--- /dev/null
+++ b/gnu/packages/zig.scm
@@ -0,0 +1,91 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Andrew Patterson <andrewpatt7@gmail.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages zig)
+  #:use-module (guix packages)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system cmake)
+  #:use-module ((guix licenses) #:prefix l:)
+  #:use-module (guix build utils)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages llvm)
+  #:use-module (guix utils))
+
+;; Zig versions depend on specific LLVM major versions; should be able to update
+;; to 0.8.x with lld@12
+(define-public zig
+  (package
+    (name "zig")
+    (version "0.7.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ziglang/zig")
+             (commit version)))
+       (sha256
+        (base32
+         "0gq8xjqr3n38i2adkv9vf936frac80wh72dvhh4m5s66yafmhphg"))))
+    (build-system cmake-build-system)
+    (inputs
+     `(("llvm" ,llvm-11)
+       ("clang-toolchain" ,clang-toolchain-11)
+       ("lld" ,lld))) ; is currently version 11
+    (arguments
+     `(#:tests? #f
+       #:phases (modify-phases %standard-phases
+                  (add-before 'install 'set-cachedir
+                    (lambda* _ ;; See [[https://github.com/ziglang/zig/issues/6810]]
+                      (setenv "XDG_CACHE_HOME" "/tmp/"))))))
+    (home-page "https://ziglang.org/")
+    (synopsis
+     "Programming language for maintaining robust, optimal, and reusable software")
+    (description
+     "Zig is a general-purpose programming language and toolchain for
+maintaining robust, optimal, and reusable software.
+
+⚡ A Simple Language
+
+Focus on debugging your application rather than debugging your programming
+language knowledge.
+@itemize @bullet
+@item No hidden control flow.
+@item No hidden memory allocations.
+@item No preprocessor, no macros.
+@end itemize
+
+⚡ Comptime
+
+A fresh approach to metaprogramming based on compile-time code execution and
+lazy evaluation.
+@itemize @bullet
+@item Call any function at compile-time.
+@item Manipulate types as values without runtime overhead.
+@item Comptime emulates the target architecture.
+@end itemize
+
+⚡ Performance Meets Safety
+
+Write fast, clear code capable of handling all error conditions.
+@itemize @bullet
+@item The language gracefully guides your error handling logic.
+@item Configurable runtime checks help you strike a balance between performance
+and safety guarantees.
+@item Take advantage of vector types to express SIMD instructions portably.
+@end itemize")
+    (license l:expat)))
-- 
2.33.0





^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [bug#50449] [PATCH] Add zig
  2021-09-07 17:21 ` [bug#50449] [PATCH] Add zig Andrew Patterson
@ 2021-09-08 10:11   ` Andrew Patterson
  0 siblings, 0 replies; 4+ messages in thread
From: Andrew Patterson @ 2021-09-08 10:11 UTC (permalink / raw)
  To: 50449; +Cc: Andrew Patterson

---
Confusion between my main guix install and what I'm working on led to
issues.

Current status as to the Submitting Paches checklist in the info page:
1. That's the hash for 0.7.1
2. I've added a synopsis and description
3. I don't know what ~guix lint~'s complaint that "the source file name
should contain the package name" means; otherwise, it's fine
4. It builds on x64 linux.
5. I haven't tried to build it on other platforms; the inputs might need
to be native-inputs, but I'm not sure
6. It has a bundled libc, but that's because zig has a c compiler built
in for some reason.
7. The ~guix size~ output seems reasonable.
8. There shouldn't be any dependent packages, since it's new.
9. ~guix build --rounds=2 zig~ worked fine.
10. Not relevant.
11. The patch is all adding zig.
12. I wrote the patch in emacs, so the indentation should be fine.
13. I don't think there are mirror urls for github?

 gnu/packages/zig.scm | 91 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 91 insertions(+)
 create mode 100644 gnu/packages/zig.scm

diff --git a/gnu/packages/zig.scm b/gnu/packages/zig.scm
new file mode 100644
index 0000000000..ba48fcf51f
--- /dev/null
+++ b/gnu/packages/zig.scm
@@ -0,0 +1,91 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Andrew Patterson <andrewpatt7@gmail.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages zig)
+  #:use-module (guix packages)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system cmake)
+  #:use-module ((guix licenses) #:prefix l:)
+  #:use-module (guix build utils)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages llvm)
+  #:use-module (guix utils))
+
+;; Zig versions depend on specific LLVM major versions; should be able to update
+;; to 0.8.x with lld@12
+(define-public zig
+  (package
+    (name "zig")
+    (version "0.7.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ziglang/zig")
+             (commit version)))
+       (sha256
+        (base32
+         "1z6c4ym9jmga46cw2arn7zv2drcpmrf3vw139gscxp27n7q2z5md"))))
+    (build-system cmake-build-system)
+    (inputs
+     `(("llvm" ,llvm-11)
+       ("clang-toolchain" ,clang-toolchain-11)
+       ("lld" ,lld))) ; is currently version 11
+    (arguments
+     `(#:tests? #f
+       #:phases (modify-phases %standard-phases
+                  (add-before 'install 'set-cachedir
+                    (lambda* _ ;; See [[https://github.com/ziglang/zig/issues/6810]]
+                      (setenv "XDG_CACHE_HOME" "/tmp/"))))))
+    (home-page "https://ziglang.org/")
+    (synopsis
+     "Programming language for maintaining robust, optimal, and reusable software")
+    (description
+     "Zig is a general-purpose programming language and toolchain for
+maintaining robust, optimal, and reusable software.
+
+⚡ A Simple Language
+
+Focus on debugging your application rather than debugging your programming
+language knowledge.
+@itemize @bullet
+@item No hidden control flow.
+@item No hidden memory allocations.
+@item No preprocessor, no macros.
+@end itemize
+
+⚡ Comptime
+
+A fresh approach to metaprogramming based on compile-time code execution and
+lazy evaluation.
+@itemize @bullet
+@item Call any function at compile-time.
+@item Manipulate types as values without runtime overhead.
+@item Comptime emulates the target architecture.
+@end itemize
+
+⚡ Performance Meets Safety
+
+Write fast, clear code capable of handling all error conditions.
+@itemize @bullet
+@item The language gracefully guides your error handling logic.
+@item Configurable runtime checks help you strike a balance between performance
+and safety guarantees.
+@item Take advantage of vector types to express SIMD instructions portably.
+@end itemize")
+    (license l:expat)))
-- 
2.33.0





^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [bug#50449] [PATCH] Add zig
       [not found] <a1922b0a2ec237d217af54ed3ff7065e360d994c.camel@gmail.com>
@ 2021-09-09  1:43 ` Andrew Patterson
  0 siblings, 0 replies; 4+ messages in thread
From: Andrew Patterson @ 2021-09-09  1:43 UTC (permalink / raw)
  To: 50449; +Cc: Liliana Marie Prikler

Thanks for the input, and sorry for not looking through the 
existing
bugs first.  I'll look at the merged issues(?), and I'll watch for 
the
lld version bump, but I probably won't add much to this in the 
foreseeable
future.

-- 
Andrew Patterson




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-09-09  1:54 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <handler.50449.B.163099841130426.ack@debbugs.gnu.org>
2021-09-07 17:21 ` [bug#50449] [PATCH] Add zig Andrew Patterson
2021-09-08 10:11   ` Andrew Patterson
     [not found] <a1922b0a2ec237d217af54ed3ff7065e360d994c.camel@gmail.com>
2021-09-09  1:43 ` Andrew Patterson
2021-09-07  5:22 Andrew Patterson

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).