%global rev 651.gf52fc2c2 Name: zig Version: 0.2.0 Release: %{rev}%{?dist} Summary: Programming language designed for robustness, optimality, and clarity License: MIT URL: https://ziglang.org Source0: https://avsej.fedorapeople.org/%{name}.src/%{version}-%{rev}/%{name}-%{version}-%{rev}.tar.xz BuildRequires: cmake clang-devel llvm-devel lld-devel %description Zig is an open-source programming language designed for robustness, optimality, and clarity. * 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. * 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. * 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. * 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. * Nullable 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 doc Requires: %{name} = %{version}-%{release} Summary: Supplemental documentation for %{name} BuildArch: noarch %description doc Supplemental documentation for %{name}. For more information, visit the main site. %prep %autosetup %cmake %build %make_build %check #./zig build --build-file ./build.zig test %install %make_install %ldconfig_scriptlets %files %license LICENSE %{_bindir}/zig /usr/lib/zig %files doc %doc doc/* README.md %changelog * Fri Jun 29 2018 Sergey Avseyev - 0.2.0-651.gf52fc2c2 - Initial package