------------------------------------------------------------------- Fri Feb 13 14:22:21 UTC 2026 - uncomfyhalomacro@opensuse.org - Update to version 0.26.0: * scripts/version: update to 0.26.0 * rt+freebsd+aarch64: fix _start * hare-version(1): print tool paths * getopt: print help text to stdout when -h is provided * hare test: fails when a module dependency is missing * Add io::unreader * make bootstrap * os::exec: add path argument to lookup * os::exec: add flags to wait functions * unix::tty: add tcgetpgrp * path: correct ownership documentation * typo psuedo * hare::unparse: fix recent new leak * Filter out non-permission bits in fs::move * hare::parse: drop leading whitespace from loc * hare::parse: don't handle negative integer literals * mime: fix memory leaks from unfree hash table slices * uuid: fix typo in README * hare::module::gather: dedupe on names * hare::ast: update for error types * MAINTAINERS: missed a spot for bgs * net::dns::resolve: fix error handling * Added time::sleep_until, added optional clock argument to time::sleep. sleep_until is implemented using clock_nanosleep(...TIMER_ABSTIME...). * Use relative links for the breadcrumb bar * Use relative links across modules * Makefile: build configured hare(1) from all target * Makefile: s/-install/-configured/g for $BINOUT/* * encoding::asn1::wrap_err: fix wild write * MAINTAINERS: bgs steps down * Replace dealiasing ... with tagged union reduction * Drop hare::types, hare::unit, and cmd/haretype * rt: make rem *timespec of nanosleep nullable * Fix syntax issues on +dragonfly+libc * Add support for DragonFly BSD * Remove multi-binding global declarations * Add hare::ast::location * MAINTAINERS: fix my name * MAINTAINERS: Add Joe Finney * Update for looser void assignability rules * genbootsrap: use some for-each * all: use _ for padding/reserved/unused struct fields * Fix parsing @undefined in struct initializer. * Implement @undefined initializers * Add kqueue and kevent syscalls to 'rt' * hare::lex: new finish method to cleanup leaks from register_annotation * Implement break with value and for/else. * crypto::ec: fix documentation unterminated reference * hare::parse:: export synassert * Makefile: Install the stdlib README. * hare::*: implement discarding bindings and assignment * all: replace void casts with discarding assignment * hare::ast: use empty string for _ in binding_unpack * rt: Added syscall wrappers for sched_{get,set}scheduler() and sched_yield(). * rt: Added clock_nanosleep(). * haredoc: Colors iff FORCE_COLOR || (isatty && !NO_COLOR) * haredoc: print shorter types in table of contents * hare-tool(1): Document HARE_TOOLPATH. * cmd::hare::tool: Use HARE_TOOLPATH when available. * haredoc: don't lookup via @symbol * haredoc: remove obsolete parseident function * haredoc: don't show @symbol * os: fix typos * crypto::sha3: add module summary to the README * crypto: Add SHA-3 implementation * regex::compile: remove double free on err * test: fix memory leak in require() * regex: fix memory leak in compile() * bufio: fix memory leaks in tests * bytes::{split,splitn,rsplitn}: new functions * Further fixes required to pass resolve flags to openat2 * os+linux: fix open_file bug * Reapply "Remove @offset and allow _: type in structs." * all: fix minor docs issues * sort: Fix off-by-one in sort::shuffle * math: add checked and non-checked integer power function * sort: add sort::shuffle * hare/parse: fix leak of struct field names * hare/parse: fix leaks of comments * hare/lex: comment() now resets the comment buffer * hare/lex: document lex_rn_str and ltok invarient * hare/ast: fix multiple leaks (and use foreach) * scripts/version: update version to 0.25.2 * time: add timespec_to_duration * io: add io::vector_buf * stdoid: add more oids required by x509. * rt: make rt::iovec buffer nullable * Revert "Remove @offset and allow _: type in structs." * strings::tokenize: improve documentation * netbsd: add back __sigtramp_siginfo_2. * Use _: type throughout Hare. * test: add current() * Use _: type in function signatures. * debug: Use .skip instead of .balign for altstack definition * Remove @offset and allow _: type in structs. * lex: disallow invalid Unicode in escapes. * lex: use for-each loops. * lex: fix memory leak in lex_literal. * lex: restrict whitespace to the spec. * lex: fix up comments. * rt+linux: Fix the size of siginfo * crypto::ed25519: change return type of verify_buf * crypto::ed25519: new verification api * cmd/hare: only gather rt when building binaries. * hare::lex: fix lossy file offset maintenance on unget * Revert "builds: remove email to hare-dev on build error" * builds: remove email to hare-dev on build error * Makefile: install docs/hare-tool.1 * os::exec: fix clearenv * cmd/hare: Break out of loops on boolean latches * cmd/hare: Flatten link rendering inner loop * cmd/hare: Ignore missing modules in 'hare deps' * hare::module: Tolerate missing dependencies * hare::module: Remove unused recursive flags * cmd/hare: Handle direct dependencies when rendering * cmd/hare: Plug 'hare deps' depth leak * strings: add bytesub * debug: cleanup scan_strtab * path: clarify MAX docs * encoding::utf8: simplify utf8sz implementation * encoding::utf8, strings: add position function * os::exec::exec: document error handling * os: nomem changes * docs/hare-tool.1: minor stylistic changes * ascii: Make cclass an array, rather than a slice. * encoding::utf8: document behavior of next on invalid codepoint * encoding::base{32,64}: remove @init * hare::module: unexport locstr * hare::build: replace os::move with os::rename in cleanup_task * hare::parse::doc: remove strerror * bytes: disallow no variadic args in trim functions * hare deps: make it colorful :) * types::c, sort::cmp: add C string comparison functions * io: document that io::off is compatible with off_t * regex: fix `\\` in replace targetstr * linux: delete start+libc.ha * format::ini: prepend syntaxerr string with "line " * format::ini: improve docs all around * rt: fix return types of bind and connect * rt: rename ucontext to ucontext_t * strings: document end type * hare(1): add hare tool subcommand * hare::parse: s/non-c-style/for-each/ * debug::dwarf: add missing `ok = true` * types::c: actually propagate nomem errors from fromstr * path: replace static delete with slice assignment * crypto::math: remove unnecessary casts when negating * all: style: remove space before colon in cast exprs * encoding::pem: change globals into constants * types::c: improve docs all around * docs/haredoc.5: clarify that haredoc only doesn't format in default mode * hare::parse::doc: add examples to decl_ref/mod_ref docs * haredoc.1: add trailing :: to example * test: document that functions can't be called outside test * encoding::utf8: remove mention of strings from README * crypto::math: document precondition in eqslice * crypto: improve compare docs * fs, os: improve iter docs * hare::module: unexport _gather_submodules * hare::module: fix typo in docs * wordexp: s/returned/resulted in/ in utf8::invalid err msg * wordexp: improve wording in README * encoding::utf8: add sentence to decode docs * time::date: add error assertions to date::parse examples * time::date: remove "shall" from parsefail docs * os::exec: line-wrap docs * Add period to some docs * all: improve some strerror docs * test: mention hare-test(1) in README * fmt: improve README wording * sort: mention sort::cmp:: in cmpfunc docs * strings: s/runewise/rune-wise/ in sub docs * Add one-line module summary to haredoc * os: add open_buffered et al * bufio: add managed bufio::stream modes * unix: add getrlimit/setrlimit * unix::resolvconf::parse fix memory leak * unix::passwd: fix _dup methods returing 0 as uid/gid * Remove most unused imports. * ascii: comment ctype constants. * mime: nomem updates * mime: Use tuple destructuring * memio: add "nonblocking" mode * utf8::utf8sz: use for-each loop. * haredoc: fix link template for symbols * time: nomem updates * Document various undocumented modules * hare::parse: export parsing utilities * hare::lex: add registration for user annotations * hare::lex: scan & discard annotations * sort: add sort::inplace * regex: nomem updates * test: sort tests by name * bufio::scanner: address my own feedback * io+linux: fix rt::dup3 flags * hare::lex: add save, restore functions * bufio::scanner: implement io::seek * io::dup, io::dup2: make flags optional * debug: print context on assertion failure * rt::strcmp: O(1) if data pointers are equal * io::copier: accept io::handle for "from" * strings::dup: update comment for nomem changes * net::dial::dial_uri: don't return nomem * net::dns: do not abort on fetch tcp errors * net: nomem updates * hare::lex: add io::off to location * haredoc(1): add source links to HTML output * haredoc(1): add option to show line numbers * linux::keyctl: nomem api update * all: fix incorrect indentation * sort: Handle allocation failure * types::c: return nomem on allocation failure * unix::tty::ptsname: use static allocation everywhere * unix: update more apis for nomem * format::ini: fix entry_dup * format::ini: handle nomem * unix::passwd: handle nomem * unix::hosts: handle nomem * unix::resolvconf: handle nomem * all: fix fmt:: oversights on -linux * make bootstrap * mime: improve documentation on lifetimes * fs: nomem changes * net::uri: Fix memory leak in percent_decode * fmt: nomem api updates * strconv: nomem updates * encoding::base64: return nomem * encoding::base32: return nomem * encoding::hex: handle nomem * cmd/hare: print relative paths in error messages * ascii::*: return nomem on allocation failures * MAINTAINERS: update Vlad's email address * make bootstrap * Refactor glob for nomem * Refactor getopt for nomem * rt+linux: add waitid syscall wrapper * rt+linux::clone3: new syscall wrapper * rt+linux: add pidfd bits * debug::dwarf: fix double-free * linux::keyctl: add set_timeout * wordexp: handle nomem * linux::keyctl: add additional wrapper functions * shlex: handle nomem errors * debug: handle nomem errors * path::local: too_long instead of abort on exceeding max * make bootstrap * bufio::read_tok: free buf on nomem * io::drain: free result on nomem * io::drain: nomem * time::date: fix realize(); rm lack error type * time::date: repurpose tz() to tzdb() * time::date: add docs for path constants * time::date: update fixedzone() * time::chrono: add TODOs * time::date: rm TODO * time: update READMEs, docs * time::date: implement PETZ (Posix Extending TZ) * time::date: add zfunresolved enum type workaround * time::date: improve TZDB_PATH, init_tz_local() * time: from_nsec(): abort on invalid nsec * time: add from_nsec(), INSTANT_ZERO * time: rm unix functions; add new(); reorgnise code * time::date: rm simultaneous() * time::date: simultaneous(), coincident() docs * time::date: repurpose coincident() * time::chrono: mv coincident, simultaneous to date * time::chrono: improve UTC init * time::chrono: rm invalid; add utciniterror str * time::date: rename /transition/zonetransition/ * time::date: rename /zone/zonephase/ * time::date: lookupzone: handle past instants * time::date: add lookupzone field to timezone * time::date: date: add observer comments inline * time::date: add formatspan() * time::date: traverse(), hop() docs * time::date: improve traverse() * time::date: rename span arithm functions * time::date: rename /pdiff/traverse/ * time::date: mv parithm.ha to step.ha * time::date: add truncate.ha * time::date: add hop.ha * time::date: add pdiff.ha * time::date: move duration file * time::date: rename /period/span/ * time::date: update step enum type, add TODOs * time::date: rename /unit/step/, /unitdiff()/hop()/ * time::chrono: rm discontinuity error type * time::chrono: refactor convert(); rm analytical * time::date: rearrange daydate, daytime code * time::date: improve add() * time::chrono: improve add() * time: add to_ functions * time::chrono: add tscmismatch type, date strerror * time: overhaul modules * time::date: format: tidy, add fmtzoff() * time::date: new(): clarify code * time::date: realize: locality dependent gap sizes * time::date: realize_gapstart(): rm TODO * time::chrono: fix LOCAL.name init * time::chrono: rename, unexport def SECS_1900_1970 * bufio: return nomem rather than assert * bufio:newscanner: defer allocation to the first read * memio: pass on nomem on dynamic_write * io: add nomem to error * errors: add nomem to strerror * crypto::ec: fix broken docstring reference * crypto::keystore: return nomem on allocation failure * crypto::argon2: pass on nomem * crypto::hmac: use hash::close where appropriate * bytes, strings: drop non-constant assertion messages * unix/tty+netbsd: update for strings::dup() change * haredoc: show functions with same siguature as alias * strings::pad: return nomem on alloc failure * strings::split: return nomem on alloc failure * strings::template::compile: return nomem on alloc failure * strings::{from,to}runes: return nomem on allocation failure * strings::replace: return nomem on allocation failure * strings::dup{,all}: return nomem on allocation failure * strings::join: return nomem on allocation failure * strings::concat: return nomem on allocation failure * unix::poll::poll: add default timout * unix::poll::INDEF: fix typo * os::exec::lookup: always return static result * os::exec::lookup: return errors if appropriate * os::exec::lookup: fix lookup of paths * hare::unparse: mark end of output in error message * hare::parse: fix nomem literal parsing * all: style: rewrite functions with bare match * errors::opaque: note utility of unwrap functions in docs * updates for the allocation failure RFC * test: Fix memory leak * crypto::cipher: add gcm_unlink_block * cmd/hare: limit executability error to exe output * cmd/hare: rebuild on binary change based on mtime * debug: swap in default abort handler on begin_fatal * test: store backtrace on abort * rt: add heap management utilities * debug: add stack trace storage solution * cmd/hare: Skip replacing the output file if possible * net: add sockflag::DGRAM to +linux * scripts/genbootstrap: respect $HARE * os::exec: update pipe() code examples * malloc+libc: ensure that malloc(0) returns null * hare::doc: don't introduce own error type * sort::cmp: Document module * NetBSD: fix rt::sigaction * all: update for removal of switching on pointers * regex: change extraneous increment to assertion * regex: fix `jump_idxs` interference * regex: remove unused charclass type * regex: implement nested capture groups * regex: fix memory leaks * regex: add tests for jump bugs * regex: remember charset_class name, for introspectability * regex: fix comments * sort: don't use left sublicing operand on opaque slice * unix::passwd: fix test examples * bufio: fix EOF_GREEDY scan mode * all: refer to a function by its name, not identifier * hare(1) version: add -vv for extra verbose * regex: document and test split insertion * debug::dwarf: re-introduce bufio::read_* functions * cmd/hare/build: Drop unused function * cmd/hare/build: Simplify binary path lookup * cmd/haredoc: build with $HARE_DEFINES * cmd/hare/build: rebuild on cmd binary change * unix::tty: make pty_test +test * hare::module: remove format and format_srcset * Revert "math::random: seed from current time if seed not provided" * glob: remove outdated sentence in docs for next * uuid: update RFC number in README * rt: use pid_t in more places * rt: make sigact function pointer fields nullable * types::c: add sig_atomic * math::random: seed from current time if seed not provided * strconv: add default arguments to ftosf and fftosf * unix::signal: change handle interface to use default args * Makefile: Add $(LDFLAGS) to the environment * Makefile: Install hare(1) built by hare * TREES: add my harec and hare-spec trees * rt: rename jmpbuf to jmp_buf * mime: get rid of errors dependency * fnmatch: get rid of errors dependency * math: use tuple unpacking in trig_reduce * math: use constants in nearbyint * math::complex+test: remove double casts * math+test: use STANDARD_TOL for more tests * math: change type of F32_*_MASK to u32 * strconv: remove generic *tos functions * math: remove generic int functions * math: rename F(32|64)_MIN to F(32|64)_MIN_SUBNORMAL * math: remove generic float functions * math: improve docs for mulu, divu, and remu * math: add messages to mulu* and divu* assertions * math: s/panic/abort/g * math: delete addu* and subu* functions * math: drop UINT_SIZE * math: merge bit_size functions * math: make some constants flexible * math: merge isclose with eqwithin * math: replace dead link with archived version * math::checked: add functions for int, uint, and size * hash::fnv: add optional basis parameter * os: add fcntl F_GETFL/F_SETFL wrappers * strconv: use type/error assertion in stof tests * haredoc: add trailing :: to submodules * debug::image: fix typo in README * crypto::argon2: remove old copyright headers * strings: minor docs adjustments * hare::module: mention 'find' in context docs * haredoc: omit newscanner's optional param * types::c: fix header in wint docs * ecdh::newkey: fix size interpeted as underread * time::chrono: fix loading TZ filepaths * cmd/hare: Print dependencies to a t * cmd/hare: Print modules without dependencies * hare::module: Highlight results from gather*() calls * cmd/hare: New options for hare deps recursivity * hare::module: Resolve submodules from a location * hare::module: Optionally gather modules recursively * cmd/hare: Move gather_submodules() to stdlib * cmd/hare: Move unwrap_module_error() logic to stdlib * bufio::scanner: add options to fine-tune the behavior of a scanner * cmd/hare/build: don't write commands run to cache * linux::vdso: fix memory leak * log: remove @init * rt+linux: add sigqueueinfo * rt+linux: support real-time signals in sigsets * hare::unparse: always include decimal point for fconst * strconv: don't fall back to multiprecision for scientific notation * hare::unparse: fix memory leaks in test * strings::template: allow underscores in variable names * encoding::asn1::stdoid: fix anyExtendedKeyUsage * encoding::asn1::stdoid: add extended key usage ids * Update documentation for os::exec::pipe * asn1::stdoid: add more ids required for x.509 (RFC 5280) * crypto::rsa: add pss signature support * Add io::fsync, io::fdatasync * Makefile: Build haredoc with $(HAREFLAGS) * hare::parse::type: fix typo * errors: guarantee 8-byte alignment for opaque data * Update test runner * hare::parse: redefine vaarg() as vaarg(object-selector, type) * disable debug on openbsd * hare+libc.sc: Separate .test_array from RELRO sections * Revert "rt+freebsd: fix some types" * make bootstrap * strconv: merge multiprecision implementations. * encoding::utf8: add remaining and slice functions * hare::parse::doc: improve invalid utf-8 location * fs: handle path::too_long in rmdirall * time::chrono: handle path::too_long in tz * haredoc: handle path::too_long * rt+freebsd: fix some types * rt+linux: fix name of field in st_flock * rt: fix name of field in sigval * ascii: overwrite buf in str(upper|lower)_buf * ascii: improve str_(upper|lower) docs * test: use math:: wrappers for resetting fp env * types::c: s/SHORT/SHRT/g * all: fix misaligned memory accesses * net::unix: use types::c::fromstr_buf * stdoid: add OIDs for the RSA PSS signature algorithm * crypto::rsa: improve bitlen * net::uri: Clean up memory handling after failure * errors: add netunreachable * scripts/version: achieve shellcheck compliance * build: verify the stdoid database * genoiddb: generate comments for exported oids * cmd/genoiddb: fix buggy foreach conversion * strings: update docstring to show next returns done * time::date: realize: support ISO week dates * time::date: parse() %G and %V * regex: allow ^ at start of every whole-expression alternation * regex: allow $ at end of every whole-expression alternation * regex: fix anchor bug in whole-expression alternations * regex: remove duplicate tests * docs/rfc.md: remove * net/uri: fix silly usage of wantrune() * net/uri: fix absolute path when no authority * debug::dwarf: eliminate use of bufio::read_* functions * encoding::pem: replace bufio::read_line with scanner * net::uri: remove unused import * net/uri: fix some leaks * hare.1: add note about poor error message quality * NetBSD: add os::shm_open() * time::date: fix typo ------------------------------------------------------------------- Thu Jul 17 15:19:08 UTC 2025 - uncomfyhalomacro@opensuse.org - Update to version 0.25.2+git.1750492346.e07d36b3: * scripts/version: update version to 0.25.2 * cmd/hare: Break out of loops on boolean latches * cmd/hare: Flatten link rendering inner loop * cmd/hare: Ignore missing modules in 'hare deps' * hare::module: Tolerate missing dependencies * hare::module: Remove unused recursive flags * cmd/hare: Handle direct dependencies when rendering * cmd/hare: Plug 'hare deps' depth leak * strings: add bytesub * debug: cleanup scan_strtab * path: clarify MAX docs * encoding::utf8: simplify utf8sz implementation * encoding::utf8, strings: add position function * os::exec::exec: document error handling * os: nomem changes * docs/hare-tool.1: minor stylistic changes * ascii: Make cclass an array, rather than a slice. * encoding::utf8: document behavior of next on invalid codepoint * encoding::base{32,64}: remove @init * hare::module: unexport locstr * hare::build: replace os::move with os::rename in cleanup_task * hare::parse::doc: remove strerror * bytes: disallow no variadic args in trim functions * hare deps: make it colorful :) * types::c, sort::cmp: add C string comparison functions * io: document that io::off is compatible with off_t * regex: fix `\\` in replace targetstr * linux: delete start+libc.ha * format::ini: prepend syntaxerr string with "line " * format::ini: improve docs all around * rt: fix return types of bind and connect * rt: rename ucontext to ucontext_t * strings: document end type * hare(1): add hare tool subcommand * hare::parse: s/non-c-style/for-each/ * debug::dwarf: add missing `ok = true` * types::c: actually propagate nomem errors from fromstr * path: replace static delete with slice assignment * crypto::math: remove unnecessary casts when negating * all: style: remove space before colon in cast exprs * encoding::pem: change globals into constants * types::c: improve docs all around * docs/haredoc.5: clarify that haredoc only doesn't format in default mode * hare::parse::doc: add examples to decl_ref/mod_ref docs * haredoc.1: add trailing :: to example * test: document that functions can't be called outside test * encoding::utf8: remove mention of strings from README * crypto::math: document precondition in eqslice * crypto: improve compare docs * fs, os: improve iter docs * hare::module: unexport _gather_submodules * hare::module: fix typo in docs * wordexp: s/returned/resulted in/ in utf8::invalid err msg * wordexp: improve wording in README * encoding::utf8: add sentence to decode docs * time::date: add error assertions to date::parse examples * time::date: remove "shall" from parsefail docs * os::exec: line-wrap docs * Add period to some docs * all: improve some strerror docs * test: mention hare-test(1) in README * fmt: improve README wording * sort: mention sort::cmp:: in cmpfunc docs * strings: s/runewise/rune-wise/ in sub docs * Add one-line module summary to haredoc * os: add open_buffered et al * bufio: add managed bufio::stream modes * unix: add getrlimit/setrlimit * unix::resolvconf::parse fix memory leak * unix::passwd: fix _dup methods returing 0 as uid/gid * Remove most unused imports. * ascii: comment ctype constants. * mime: nomem updates * mime: Use tuple destructuring * memio: add "nonblocking" mode * utf8::utf8sz: use for-each loop. * haredoc: fix link template for symbols * time: nomem updates * Document various undocumented modules * hare::parse: export parsing utilities * hare::lex: add registration for user annotations * hare::lex: scan & discard annotations * sort: add sort::inplace * regex: nomem updates * test: sort tests by name * bufio::scanner: address my own feedback * io+linux: fix rt::dup3 flags * hare::lex: add save, restore functions * bufio::scanner: implement io::seek * io::dup, io::dup2: make flags optional * debug: print context on assertion failure * rt::strcmp: O(1) if data pointers are equal * io::copier: accept io::handle for "from" * strings::dup: update comment for nomem changes ------------------------------------------------------------------- Sat Mar 29 16:52:57 UTC 2025 - mcepl@cepl.eu - Update to version 0.24.2+git.1743159305.5b6db3e8: * net::dial::dial_uri: don't return nomem * net::dns: do not abort on fetch tcp errors * net: nomem updates * hare::lex: add io::off to location * haredoc(1): add source links to HTML output * haredoc(1): add option to show line numbers * linux::keyctl: nomem api update * all: fix incorrect indentation * sort: Handle allocation failure * types::c: return nomem on allocation failure ------------------------------------------------------------------- Sat Mar 29 16:49:04 UTC 2025 - Matej Cepl - Don’t require EXACT version of harec (there is nothing exact when using git checkouts). ------------------------------------------------------------------- Sat Aug 10 01:04:06 UTC 2024 - Soc Virnyl Estela - Improve build logic. * fixes version string output * no need to run `./scripts/version` * set our own cflags and ldflags ------------------------------------------------------------------- Tue Jul 16 15:31:19 UTC 2024 - Soc Virnyl Estela - Remove riscv64-correct-comments.patch ------------------------------------------------------------------- Tue Jul 16 14:32:27 UTC 2024 - Soc Virnyl Estela - Update to version 0.24.2: This release introduces a lot of breaking changes * time::date now accepts a zone offset (zoff) parameter in time::date::reckon and time::date::truncate. * time::date::calculus has been renamed to time::date::rflag. * time::date::realize requires .vloc to be set, and no longer defaults to UTC. * time::date::now() is renamed to time::date::localnow() and time::date::nowutc() is renamed to time::date::now() * time::date::EPOCHAL_JULIAN and EPOCHAL_GREGORIAN have been renamed to EPOCHDAY_JULIAN and EPOCHDAY_GREGORIAN respectively * time::chrono::eq has been removed and replaced with time::chrono::simultaneous and time::chrono::coincident * time::chrono::mzone has been renamed to time::chrono::ozone * The type of time::date::parsefail has been chnaged from rune (storing the offending format specifier) to (size, rune), which adds the index of the position where the parsing failure occured. * Several constants for format layouts in time::date have been renamed: [[EMAILZ]] => [[EMAILZONE]] [[STAMP_NANO]] => [[STAMPNANO]] [[STAMP_ZOFF]] => [[STAMPZOFF]] [[STAMP_ZONE]] => [[STAMPZONE]] [[STAMP_NOZL]] => [[STAMPLOC]] * unix::hosts * unix::passwd * "done" is now a reserved word and cannot be used in user-defined names * The following standard library symbols have been updated to use done types in their API: * bytes::next_token/bytes::prev_token * encoding::utf8 * fs::next * glob::next * io::EOF * mime * path::nextiter * strings::next/strings::prev * strings::next_token/strings::prev_token * In short, if your program matches on a function using the iterator pattern with "void" and this causes an error from 0.24.2, the correct solution is likely to rewrite it to use a for-each loop, or replace "void" with "done" in the relevant match case. * for-each loops and the "done" type * Optional parameters for functions * Support for shared memory and memfds on supported platforms * Revised and improved APIs for unix::* * Improved performance for bufio and related APIs * regex:: now supports multiple alternation (i.e. (x|y|z)) * New cryptography APIs: * crypto::ec * crypto::ecdh * crypto::ecdsa ------------------------------------------------------------------- Mon May 13 11:03:12 UTC 2024 - Matej Cepl - Add riscv64-correct-comments.patch to fix the build on riscv64. ------------------------------------------------------------------- Sat Feb 17 01:02:16 UTC 2024 - Soc Virnyl Estela - First pre-release version of hare 0.24.0 * requires qbe 1.2 and harec 0.24.0 ------------------------------------------------------------------- Sat Jan 20 07:25:20 UTC 2024 - Soc Virnyl Estela - Update to version 1705636831.933763ed: * OpenBSD: rt add kqueue(2) wrappers * OpenBSD: rt fix termios structures * .builds/freebsd.yml drop CC=cc workaround again * Fix typo in crypto::chachapoly * strings: Simplify fromutf8 * Makefile: more quoting * remove harec2 from the makefile all target * cmd/haredoc: close read end of pipe after passing it to command * cmd/hare: fix cross-compiling qbe arch * Advance after zero-length regex matches * .builds/*: exit on non-master builds * make bootstrap * strings: rename pad functions per convention * strings: improve docs and params for pad functions * strings: readd pad functions * time: change signature of *_to_timespec funcs * notify hare-dev on ci failure * encoding::utf8: Return invalid from utf8sz on invalid starting byte * *BSD: fsflags_to_bsd return unsupported instead of abort() * rt: BPF socket structs & option levels for Linux * configs/*.mk: don't always assume cross-compilation * fmt: Fix fmt::mods documentation * unix::signal: fix typo in docs * encoding::utf8: Rename valid() to validate() and change return type * update ci for harec config.mk ------------------------------------------------------------------- Thu Dec 28 12:11:52 UTC 2023 - Soc Virnyl Estela - Update to version 1703745713.f01c8eed: * OpenBSD: rt fix munmap system call * OpenBSD: fix CI ------------------------------------------------------------------- Sat Dec 23 02:20:15 UTC 2023 - Soc Virnyl Estela - Update to version 1703237889.6c1a836c: * correct inotify_event to use [*]u8 * make rt/+{arch}/restore.s platform-specific to +linux * rt/: prepare for IBT support * strings: Further simplify sub * os: handle errors on file system iteration * strconv::stof32 fix doc - Update specfile * Always be specific with harec versions. Some hare versions won't work if harec version is not specified. ------------------------------------------------------------------- Sat Dec 16 01:10:17 UTC 2023 - Soc Virnyl Estela - Add filter to rpmlint * filelist-forbidden-fhs23 ------------------------------------------------------------------- Sat Dec 16 01:03:47 UTC 2023 - Soc Virnyl Estela - Move SRCDIR and HAREPATHs to `/usr/src` instead from `/usr/lib` or `/usr/lib64`. Respect defaults if possible. - Update to version 1702417101.ce67adb5: * +libc: Avoid overriding the default linker script on other platforms * FreeBSD: Fix build with +libc * os fs.ha: s/errors::errno/fs_to_errno/ * OpenBSD: implement os::mkfifo and os::mkfile * math: Accept types::signed instead of integer in absi * cmd/{hare,haredoc}: remove unused imports * cmd/{hare,haredoc}: Don't allocate tags * haretype: use system architecture * os: add arch type and functions * cmd/haredoc: replace split with rtokenize * io: improve seek and whence docs * test: display special msg when no tests are run * hare deps: print more intuitive msg when no deps * os+linux: add mkfile * os+linux: s/Unix/Unix-like/ * haredoc: submodules newline fixes * hare build: fix order of flags * getopt: improve docs * all: always use tabs for indentation * hare::parse::doc: add docs * haredoc: error out when more than one arg supplied * docs: rename hare-doc(5) to haredoc(5) * os+openbsd: remove extra License: header * rt+linux: fix some types * hare::parse: improve assign expr error message * strings: use type assertion in iter tests * strings: test contains with no variadic arguments * strings: test join with only one variadic argument * strings: test concat with only one argument * hare::ast: remove inaccurate comment * path: mention fs::resolve in README * docs/rfc-template: wrap at 72 columns * memio+test: use defer for closing streams * cmd/*: fix memory leaks * ascii: add strlower_buf and strupper_buf * hare::parse: disallow mixing @init, @fini, and @test * hare::ast: s/constant/literal/g * hare build: only overwrite executable files * hare::parse+test: add labelled compound test * hare::*: support for/switch/match labels * all: update labelled loop syntax * cmd::hare add comments and cleanup ------------------------------------------------------------------- Fri Dec 8 14:27:46 UTC 2023 - Soc Virnyl Estela - Add README-suse-maint.md ------------------------------------------------------------------- Fri Dec 8 13:25:24 UTC 2023 - Soc Virnyl Estela - Enable checks. ------------------------------------------------------------------- Fri Dec 08 13:20:23 UTC 2023 - uncomfy+openbuildservice@uncomfyhalomacro.pl - Update to version 1701969360.dbd2d7a5: * remove the fs::flag::TRUNC argument from os::create in cmd::hare * crypto::aes check for AVX before using the native interface * cmd::hare::build: separate tmpfile from lockfile * FreeBSD: truncate files on creation by default * scripts/moddirs: ignore configs/ * OpenBSD: add rt::unveil() * OpenBSD: add rt::pledge() * OpenBSD: rt:: sycalls introduce pathbuf1 * OpenBSD: truncate files on creation by default * OpenBSD: arm64 is called aarch64 in hare * OpenBSD: rt:: fix readlinkat, renameat * strconv: Remove base restrictions from doc comment of integertosb * OpenBSD: os::cpucount: Return the number of online CPUs ------------------------------------------------------------------- Sat Dec 02 10:19:02 UTC 2023 - uncomfy+openbuildservice@uncomfyhalomacro.pl - Update specfile - Update to version 1701471445.901444ae: * scripts/genbootstrap: reset platformtags * drop build status from readme * configs/openbsd.mk remove my local path * OpenBSD: add .builds/openbsd.yml * OpenBSD: make bootstrap * OpenBSD: unix::tty isatty() use fcntl(F_ISATTY) * OpenBSD: os::exec update for checkless for loops * MAINTAINERS: add Lorenz (xha) to OpenBSD * OpenBSD: add genbootstrap * OpenBSD: add net::unix * OpenBSD: add net::udp * OpenBSD: add net::tcp * OpenBSD: add net::ip * OpenBSD: add net * OpenBSD: add crypto::random * OpenBSD: add format::elf * OpenBSD: add unix::resolveconf * OpenBSD: add unix::hosts * OpenBSD: add unix::poll * OpenBSD: add unix::tty * OpenBSD: add unix::signal * OpenBSD: add unix * OpenBSD: add os::exec * OpenBSD: add os * OpenBSD: add time::chrono * OpenBSD: add time * OpenBSD: add path * OpenBSD: add io * OpenBSD: add rt * cmd::hare: add OpenBSD * cmd::hare: introduce ctx.libc * cmd::hare: introduce platform.ha for adding platform-specific setttings * remove config.example.mk and add configs/.mk * unix::tty: make openpty() platform-specific * os::exec: make cmdfile platform-specific * rt: make the signal test platform specific * rt: make start* and initfini platform-specific * rt: make linker scripts platform-specific * cmd::hare arch add comment about values beeing overwritten * math::complex: clarify isnan behavior * wordexp: correctly handle string containing only whitespace * test: hexdump non-printable ASCII * cmd/hare: fix memory leaks * bytes: improve tests style and add test * bytes: replace if expressions with logical and * bytes: simplify reverse * strings: simplify ltrim and rtrim * strings: remove pre-allocation * strings: improve docstrings * strings: simplify sub * strings: remove duplicate allocation in multireplace * strings: take direction into account in iterstr * strings: consistently use fromutf8_unsafe * strings: use static append where applicable * strings: drop pad functions * encoding::utf8: operate exclusively on byte slices * hare cache: exit after printing usage text * rt: simplify frame-walking functions * crypto::sha1: document BLOCKSZ * update for checkless for loops * fmt: flesh out float formatting * fmt: add center-alignment * fmt: factor out format string iterator * strconv::{ffmt, fflags}: improve default values * bufio/scanner: fix slice or array access out of bounds * wordexp: new module * rt+freebsd fix getpriority * time::date: add month and weekday constants * types::c: add unterminatedstr * unix::tty: Add README * net::unix: remove unused buf * linux::keyctl: Add chown and setperm * io: add dup, dup2 functions * hare::*: remove unused import forms ------------------------------------------------------------------- Sat Nov 11 07:36:58 UTC 2023 - Soc Virnyl Estela - Minor specfile change ------------------------------------------------------------------- Fri Nov 10 12:26:57 UTC 2023 - Soc Virnyl Estela - change incorrect license in specfile - add groups section ------------------------------------------------------------------- Fri Nov 10 06:52:24 UTC 2023 - Soc Virnyl Estela - adopt new config.mk ------------------------------------------------------------------- Fri Nov 10 04:15:57 UTC 2023 - uncomfy+openbuildservice@uncomfyhalomacro.pl - Update to version 1699559089.3d06f9d2: * speed up crypto::argon2 a bit * cmd/hare: Improve 'Command not found' error message in get_version * crypto: use test::skip * test: implement skip function * test: disallow expectabort outside @test * Move string comparison logic to sort::cmp::strs() * all: style fix * all: fix test failure memory leaks * time::chrono: drop unused leapsecs parameter * cmd/parsechk: initial commit ------------------------------------------------------------------- Sun Aug 20 15:06:19 UTC 2023 - Soc Virnyl Estela - Remove no-exec-stack.patch. Seems it's already in the latest commits ------------------------------------------------------------------- Sun Aug 20 14:56:03 UTC 2023 - Soc Virnyl Estela - Add no-exec-stack.patch ------------------------------------------------------------------- Sun Aug 20 14:48:25 UTC 2023 - Soc Virnyl Estela - Update to version 0+3206: * crypto::ed25519: change api to take slices * drop hare release * pass -z noexecstack to ld * Remove unused imports * rt: remove syscallsarch+*.ha * s/error/errors/ module name * net::dns: remove obsolete reference in docs * net::dns: fix off-by-one in encode_raw * rt: add IPPROTO_ICMPV6 * strings: rename runes() to torunes() * io: make io::writeall take const []u8 * MAINTAINERS: Add Conrad Hoffmann * net::dns: support for basic DNSSEC RR types * net::dns: support for OPT records (EDNS, RFC 6891) * rt: fix off-by-one haredocs for AF_* and IPPROTO_* * memio: truncate on reset() * os::exec: fix TOCTOU * os::exec+freebsd: only open() regular files * rt+freebsd: add fstat, AT_EMPTY_PATH, S_IF* * net::dns: enforce actual label size restriction * net::dns: write label terminator in encode_labels * path: fix capitalization of docstring * malloc: improve wording in a comment * cmd/haretype, cmd/ioctlgen: update for memio * net::dns: add TSIG records and decoding * net::dns: implement encoding of TXT records * net::dns: add constants for DNS dynamic updates * net::dns: retry over TCP on truncated response * hare::*: remove unary + * Stop using unary + * test: reset environment before first test is run * format::ini: fix and test error line numbering * mime: fix compilation on +libc * Don't rely on loose pointer assignability semantics * strio,bufio: merge memstream implementation into memio * hare::lex: add static assertion for bmap length * hare::*: remove implicit const flag from functions * Remove slices:: and strings::cap * Use cap builtin * hare::parse: allow return and yield in more places * regex: Document when the caller must free the return value * hare::parse: fix abort in name_list * hare::parse: improve struct/union/enum comments * hare::parse+test: add and use roundtrip_reparse * net/uri: Always prefix path with a slash when there's a host * math::checked: initial commit * os::exec: only open() regular files * bufio: elaborate on docs for scantok and scanline * hkdf: add extract and expand functions ------------------------------------------------------------------- Sun Aug 13 13:26:57 UTC 2023 - Soc Virnyl Estela - Replace obsoleted `disabled` option with `manual` ------------------------------------------------------------------- Sat Jul 22 01:51:57 UTC 2023 - Soc Virnyl Estela - Update to 0+3157: * hare::ast: add README * math::complex: add README * hare::unparse: add README * hare::unparse: add newline between imports and decls * strconv: append ".0" when float is representable as integer * strconv: remove zch variable * strconv: improve error messages * strconv: recognize - and + in stou* * types::c: add nulstr * Correctly convert strconv::base::DEC -> 10 * net::dns: fix opcode bitmask * hare::parse::identstr: only parse full ident ------------------------------------------------------------------- Thu Jun 22 12:51:08 UTC 2023 - Soc Virnyl Estela - Update to 0+3145: Alexey Yerin (3): net: correct references of net::unix::prepfiles -> allocfiles os::exec: fill utime and stime +libc: include empty .init_array section Armin Preiml (5): mime: move test entries into a +test file io::teestream: implement writer add crypto::chachapoly crypto: refactor authenc to use crypto::chachapoly base64: avoid infite loop in decoder Autumn! (3): io: move fd-related functions into one file all: rename 'flags' types to 'flag' getopt: add subcommand context to errors Bor Grošelj Simić (3): rt: update abort for non-constant assert changes in harec unify fixed and non-fixed abort paths rt: mark platform_abort as @noreturn Byron Torres (6): time::date: new: use virtual interface time::date: simplify observers time::date: parse: fix scanners time::date: add %e; update POSIX layout time::chrono: fix $TZ causing TZ_LOCAL double-free time::date: avoid tz() in tests, TZDB dependency Carlos Une (1): math::complex::tan: test huge arguments Conrad Hoffmann (2): net::dns: add support for PTR records net::dns: add support for SSHFP records Dmitry Matveyev (1): unix::hosts: refactor into more general interface Drew DeVault (2): haredoc: set LESS to FRX if unset docs/maintainers.md: document some maintainer bits Ember Sawady (17): Improve test runner rt: fix platform_abort rt/abort*.ha: add missing comma in reasons rt+freebsd: _start: don't touch first arg rt: update for @noreturn abort fs+freebsd::readlink: return wrongtype on EINVAL Improve +libc argv/argc/envp initialization io+freebsd::fd_copy: return errors::unsupported Get rid of rt/+test/ztos.ha Rewrite malloc linux/*: fix fully-qualified identifiers hare::parse::want: unlex token on failure hare::parse::ident: disallow empty identifier os: add setenv and unsetenv rt: make errno constants have type rt::errno io+linux::fd_copy: simplify Fix chachapoly compilation Noah Altunian (1): haredoc: update man page wording to be more clear Pinghao Wu (1): crypto::argon2: fix zeroing of h0 Sebastian (21): os: use libc exit when linking with libc os: move status type to separate file hare::ast: add error_assert_expr rt: implement shutdown net: implement shutdown types::c: add strings test math::random: add assertions that n != 0 all: reorder tagged union fields to put error last os::exec: split kill into kill and sig ascii: allocate new string in strupper+strlower ascii: consistent capitalization in docs os::exec+freebsd: use unix::signal::signame rt: fix typo types::c: add limits net: remove slices dependency contributors.sh: read Co-authored-by contributors.sh: use git ls-tree instead of find unix::signal: replace signal type with sig enum types::c: add tostrn and tostrn_unsafe temp: require mode param for "file" and "named" regex: add replacen and rawreplacen Tom Lebreux (1): bufio: allow borrowedread up to last byte Vlad-Stefan Harbuz (1): regex: improve README examples illiliti (1): crypto::salsa20: add hsalsa20 ------------------------------------------------------------------- Sun May 28 03:28:04 UTC 2023 - Soc Virnyl Estela - Remove checks for now. ------------------------------------------------------------------- Sat May 27 13:12:29 UTC 2023 - Soc Virnyl Estela - Update to 0+3076: * cmd/haredoc: close read end of pipe later * time::chrono: use daydate, daytime; improve docs * time: improve function parameter names * time::date: rename datetime type to date * time: rename datetime module in READMEs, docs * cmd/haretype: fix compilation * cmd/ioctlgen: fix compilation * crypto/aes/*.s: use correct per-function sections * net::unix: replace memcpy with slice assignment ------------------------------------------------------------------- Mon Mar 20 12:02:54 UTC 2023 - Soc Virnyl Estela - Configure LDFLAGS inside config.mk explicitly. ------------------------------------------------------------------- Mon Mar 20 02:06:13 UTC 2023 - Soc Virnyl Estela - Configure CFLAGS inside config.mk. ------------------------------------------------------------------- Fri Mar 17 12:13:44 UTC 2023 - Soc Virnyl Estela - Cleanup specfile ------------------------------------------------------------------- Wed Mar 1 00:40:34 UTC 2023 - Soc Virnyl Estela - Initial spec for hare 0+git2848