Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 683386 - dev-lang/zig - an open-source programming language designed for robustness, optimality, and maintainability
Summary: dev-lang/zig - an open-source programming language designed for robustness, o...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Default Assignee for New Packages
URL: https://ziglang.org/
Whiteboard:
Keywords: PullRequest
Depends on:
Blocks:
 
Reported: 2019-04-15 13:42 UTC by Anton Kochkov
Modified: 2019-08-02 08:37 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
zig-0.4.0.ebuild (zig-0.4.0.ebuild,1.09 KB, text/plain)
2019-05-25 17:26 UTC, Nick Erdmann
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Anton Kochkov 2019-04-15 13:42:59 UTC
Zig is an open-source programming language designed for robustness, optimality, and maintainability.

Feature Highlights
- Manual memory management. Memory allocation failure is handled correctly. Edge cases matter!
- Zig competes with C instead of depending on it. The Zig Standard Library does not depend on libc.
- Small, simple language. Focus on debugging your application rather than debugging your knowledge of your programming language.
- A fresh take on error handling that resembles what well-written C error handling looks like, minus the boilerplate and verbosity.
- Debug mode optimizes for fast compilation time and crashing with a stack trace when undefined behavior would happen.
- ReleaseFast mode produces heavily optimized code. What other projects call "Link Time Optimization" Zig does automatically.
- ReleaseSafe mode produces optimized code but keeps safety checks enabled. Disable safety checks in the bottlenecks of your code.
- Generic data structures and functions.
- Compile-time reflection and compile-time code execution. No preprocessor.
- Concurrency via coroutines. Async/await is thread-safe, non-blocking, and makes no syscalls, and therefore available in freestanding mode. You can multiplex coroutines onto a thread pool in userland for M:N concurrency.
- Import .h files and directly use C types, variables, and functions.
- Export functions, variables, and types for C code to depend on. Automatically generate .h files.
- Optional type instead of null pointers.
- Order independent top level declarations.
- Friendly toward package maintainers. Reproducible build, 3-step bootstrapping process.
- Cross-compiling is a first-class use case.

https://ziglang.org/

https://github.com/ziglang/zig

Latest release - 0.4:

- https://github.com/ziglang/zig/releases/tag/0.4.0
- https://ziglang.org/download/0.4.0/release-notes.html
Comment 1 Nick Erdmann 2019-05-25 17:26:03 UTC
Created attachment 577792 [details]
zig-0.4.0.ebuild
Comment 2 Anton Kochkov 2019-05-26 01:56:30 UTC
(In reply to Nick Erdmann from comment #1)
> Created attachment 577792 [details]
> zig-0.4.0.ebuild

Can you please send a Pull Request to https://github.com/gentoo/gentoo ?
Comment 3 Larry the Git Cow gentoo-dev 2019-08-02 08:37:43 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=01327ee8db1a1e7d88849498264988031bc4d552

commit 01327ee8db1a1e7d88849498264988031bc4d552
Author:     Nick Erdmann <n@nirf.de>
AuthorDate: 2019-05-26 06:22:57 +0000
Commit:     Joonas Niilola <juippis@gentoo.org>
CommitDate: 2019-08-02 08:37:35 +0000

    dev-lang/zig: new package
    
    Zig is an open-source programming language designed for robustness,
    optimality, and maintainability.
    
    Feature Highlights
    - Manual memory management. Memory allocation failure is handled correctly.
      Edge cases matter!
    - Zig competes with C instead of depending on it. The Zig Standard Library
      does not depend on libc.
    - Small, simple language. Focus on debugging your application rather than
      debugging your knowledge of your programming language.
    - A fresh take on error handling that resembles what well-written C error
      handling looks like, minus the boilerplate and verbosity.
    - Debug mode optimizes for fast compilation time and crashing with a stack
      trace when undefined behavior would happen.
    - ReleaseFast mode produces heavily optimized code. What other projects call
      "Link Time Optimization" Zig does automatically.
    - ReleaseSafe mode produces optimized code but keeps safety checks enabled.
      Disable safety checks in the bottlenecks of your code.
    - Generic data structures and functions.
    - Compile-time reflection and compile-time code execution. No preprocessor.
    - Concurrency via coroutines. Async/await is thread-safe, non-blocking, and
      makes no syscalls, and therefore available in freestanding mode. You can
      multiplex coroutines onto a thread pool in userland for M:N concurrency.
    - Import .h files and directly use C types, variables, and functions.
    - Export functions, variables, and types for C code to depend on.
      Automatically generate .h files.
    - Optional type instead of null pointers.
    - Order independent top level declarations.
    - Friendly toward package maintainers. Reproducible build, 3-step
      bootstrapping process.
    - Cross-compiling is a first-class use case.
    
    Package-Manager: portage-2.3.66
    Closes: https://bugs.gentoo.org/683386
    Signed-off-by: Nick Erdmann <n@nirf.de>
    Closes: https://github.com/gentoo/gentoo/pull/12110
    Signed-off-by: Joonas Niilola <juippis@gentoo.org>

 dev-lang/zig/Manifest         |  1 +
 dev-lang/zig/metadata.xml     | 18 ++++++++++++++
 dev-lang/zig/zig-0.4.0.ebuild | 56 +++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 75 insertions(+)