forked from pool/harec
df45642d06
* check: Handle error expressions in offset() * Clean up includes * expr_hash: Handle STORAGE_ERROR case * check: Handle error in bindings of for-accumulator * expr_hash: Remove unnecessary alias check * Disallow casting types of undefined size * typedef: Emit struct literals * Remove unused gen_context.store * eval: Disallow auto-dereferencing * typedef: Handle values of enums with rune storage * eval: Implement slicing expressions * parse: simplify nested switch * parse: Remove unnecessary special-case from parse_if_expression * drop some "descriptive" names in generated IL * makefiles/tests.mk: make everything depend on harec * check: drop check of for_expr binding result type * gen_expr_delete: split single element/subslice cases * remove a use of *void in tests * simplify condition in identifier_eq * gen: implement gen_slice_ptrs and load_slice_data helpers * check: rewrite slice_bounds_check * eval: fix and add tests for casts from tagged unions * check: lower len(array) to a constant * gen: remove another overly verbose temporary name * remove useless line * check_expr_compound: simplify lower_implicit_cast logic * type_store: fix tuple size calculation * eval: use restrict keyword * type_store: simplify function signatures in struct initialization * test some embedded struct error cases * use arch specific sizes from ctx->arch consistently * gen: rewrite slice bounds checks * gen_expr_assign_slice: use gen_subslice_info * gen_expr_delete: use gen_subslice_info * test functions with bodies have named parameters * gen: rewrite expandable array -> slice assignment * gen: use store_slice_data instead of manual slice stores * type_store: return errors more explicitly in case of struct init errors * type_store: fix union size calculation * prohibit @packed in check, not in the parser * ast: split up slice and array atypes * ast: improve representation of array literal expandability * resolve: pass function location data into prototype check * util: simplify printing in errline() * eval: truncate bitwise not and integer unary negation results * check: improve binding assignability failure error * check: don't special case STORAGE_ERROR in check_function * check: drop pointless branch * gen: extract fixed_abort condition checks into a separate function * gen: rewrite slice and array alloc cases * check: rewrite check_expr_call * check: fix outdated comment about flexible promotion * tests: fix typo * Makefile: add uninstall target * check.c: fix up lingering issue from rename * Generate meaningful names for @init functions * Generate arbitrary names for @init functions * scripts/version: upgrade to 0.24.2 * fix some spurious errors * Allow optional parameters in variadic functions. * check: fix error location in check_expr_append_insert * 12-loops: fix scope test * implement for-each * rt::compile ensure tests fail when "invalid" Hare is valid * gen: fix implicitly void if false branch * parse: fix memory leak * eval: fix signed integer comparisons * check: remove TODO * Remove unnecessary forward declaration * lex: make comment more accurate * gen: s/strconst/strliteral/g * Makefile: recompile everything when a header changes * makefiles/tests.mk: make all tests depend on .cache/rt.td * typedef: fix some format specifiers * set TDENV when running tests * tests: rename 00-constants to 00-literals * util: ignore write errors to stderr * Check stage at which compilation failed in reject tests * tests/00-literals: s/append/static append/ * gen: fix for-each iterator with tagged union type * typedef: use const in more places * types: remove extraneous check * types: make unbounded arrays not assignable to slices * gen: remove gen_defers from gen_expr_for * main: remove unnecessary 'next' variable * mod: use string initializer instead of memcpy * parse: remove dead branch * parse: use error function for empty block error * check: fix measurement error locations * check: simplify switch exhaustivity checking * tests.mk: add missing testmod.td dependency * typedef: Remove unnecessary includings of "typedef.h" * lex: allow digit separators * Check that enums are exported if used in exported types. * Implement optional function parameters. OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/harec?expand=0&rev=24
81 lines
1.7 KiB
RPMSpec
81 lines
1.7 KiB
RPMSpec
#
|
|
# spec file for package harec
|
|
#
|
|
# Copyright (c) 2024 SUSE LLC
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
Name: harec
|
|
Release: 0
|
|
Version: 0.24.2
|
|
Summary: Bootstrap compiler for hare
|
|
Group: Development/Tools/Building
|
|
URL: https://git.sr.ht/~sircmpwn/harec
|
|
Source0: https://git.sr.ht/~sircmpwn/%{name}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
|
|
Source1: README-suse-maint.md
|
|
BuildRequires: make
|
|
BuildRequires: qbe = 1.2
|
|
BuildRequires: zstd
|
|
License: GPL-3.0-only
|
|
|
|
%description
|
|
|
|
HareC is a bootstrap compiler for the Hare programming language. Written in C11 for
|
|
POSIX-compatible systems.
|
|
|
|
%prep
|
|
%setup -q
|
|
|
|
%build
|
|
cat > config.mk <<-SH
|
|
PREFIX = %{_prefix}
|
|
BINDIR = %{_bindir}
|
|
|
|
PLATFORM = linux
|
|
ARCH = %{_arch}
|
|
HARECFLAGS =
|
|
QBEFLAGS =
|
|
ASFLAGS =
|
|
LDLINKFLAGS = --gc-sections -z noexecstack
|
|
CFLAGS = %{optflags} -Iinclude
|
|
LDFLAGS =
|
|
LIBS = -lm
|
|
|
|
CC = cc
|
|
AS = as
|
|
LD = ld
|
|
QBE = qbe
|
|
|
|
HARECACHE = .cache
|
|
BINOUT = .bin
|
|
|
|
DEFAULT_TARGET = %{_arch}
|
|
VERSION = %{version}
|
|
SH
|
|
|
|
make
|
|
|
|
%install
|
|
make DESTDIR=%{buildroot} install
|
|
|
|
%check
|
|
make check
|
|
|
|
%files
|
|
%{_bindir}/%{name}
|
|
%license COPYING
|
|
%doc README.md
|
|
|
|
%changelog
|