~sircmpwn/hare

hare/fmt d---------
all: introduce io::handle and refactor usage

The goal of this round of refactoring is to simplify the API a bit and
reduce the ABI footprint of io::file (and io::handle).

Signed-off-by: Drew DeVault <sir@cmpwn.com>
all: overhaul switch/match syntax

This changes the syntax of switch and match expressions following
similar changes to harec et al.

match (x) {
	case type =>
		do_work();
		yield 10;
	case x: type =>
		process(x);
		yield 20;
	case =>
		abort();
};

Signed-off-by: Drew DeVault <sir@cmpwn.com>
Signed-off-by: Alexey Yerin <yyp@disroot.org>
Co-authored-by: Alexey Yerin <yyp@disroot.org>
fmt: introduce parametric modifiers

Introduces parametric format modifiers "{%}" as a new feature.
See fmt/README for details.

Introduces type fmt::field = (...fmt::formattable | *fmt::modifiers).
Refactors existing fmt::* functions to use fmt::field instead of
fmt::formattable where applicable.

Exports types fmt::{modifiers,padding,negation}.

Modifies hare::parse::syntaxerr()'s parameter list to handle fmt::field.

Signed-off-by: Byron Torres <b@torresjrjr.com>
all: yield WIP

Signed-off-by: Drew DeVault <sir@cmpwn.com>
fmt::formattable: add void

Signed-off-by: Eyal Sawady <ecs@d2evs.net>
Revert match syntax changes

Signed-off-by: Eyal Sawady <ecs@d2evs.net>
fmt: add hard stops to docs
Fix further oversights in error handling

Signed-off-by: Eyal Sawady <ecs@d2evs.net>
all: fix error handling oversights

Following a change to harec and the specification to make error handling
mandatory, a lot of issues were found throughout the stdlib. This fixes
them.

Signed-off-by: Drew DeVault <sir@cmpwn.com>
fmt: fix example string
fmt: move module docs into README
all: docs: change [ref] to [[ref]]

The following script:

	#!/bin/sh
	echo $1
	awk '/^\/\/.*/ { gsub(/\[[a-zA-Z0-9_:]+\]/, "[&]") } { print $0 }' < $1 > $1.2
	mv $1.2 $1

Was used like so:

git ls-tree -r HEAD | awk '{ print $4 }' | grep '.ha$' | xargs -n1 ./edit

And then the results were touched up by hand.
Update match statements according to spec update
bufio::fixed: implement closer
s/to_utf8/toutf8/g
all: update names to be consistent with style guide
Merge remote-tracking branch 'stdlib/master'
fmt: fix memory leak
bufio::dynamic: take io::mode argument
fmt: add tests, fix some bugs
Next