shithub: mc

Download patch

ref: ece21cac74e30ff4c2f1265e11d642d136d8b287
parent: f196ea0ea5f82cb63e4bb66f2009d8115de386a9
author: Ori Bernstein <[email protected]>
date: Sat Nov 18 06:33:55 EST 2017

Update bootstrap scripts.

--- a/mk/bootstrap/bootstrap+Darwin-x86_64.sh
+++ b/mk/bootstrap/bootstrap+Darwin-x86_64.sh
@@ -8,6 +8,7 @@
 	as -g -o lib/thread/atomic-impl.o lib/thread/atomic-impl+x64.s
 	as -g -o lib/std/getbp.o lib/std/getbp+posixy-x64.s
 	$pwd/6/6m -I . -I lib/sys lib/std/option.myr
+	$pwd/6/6m -I . -I lib/sys lib/std/traits.myr
 	as -g -o lib/std/memops-impl.o lib/std/memops-impl+posixy-x64.s
 	$pwd/6/6m -I . -I lib/sys lib/std/fltbits.myr
 	as -g -o lib/std/sjlj-impl.o lib/std/sjlj-impl+posixy-x64.s
@@ -103,8 +104,8 @@
 	$pwd/6/6m -I . -I lib/sys lib/std/dial+posixy.myr
 	$pwd/6/6m -I . -I lib/sys lib/std/listen+posixy.myr
 	$pwd/6/6m -I . -I lib/sys lib/std/try.myr
-	ar -rcs lib/std/libstd.a lib/std/resolve.o lib/std/result.o lib/std/try.o lib/std/ipparse.o lib/std/alloc.o lib/std/iterutil.o lib/std/putint.o lib/std/sleq.o lib/std/sljoin.o lib/std/slpop.o lib/std/syswrap.o lib/std/getint.o lib/std/strsplit.o lib/std/slfill.o lib/std/writeall.o lib/std/fltfmt.o lib/std/hasprefix.o lib/std/swap.o lib/std/fmt.o lib/std/netaddr.o lib/std/varargs.o lib/std/diriter.o lib/std/getcwd.o lib/std/blat.o lib/std/optparse.o lib/std/pathjoin.o lib/std/readall.o lib/std/strjoin.o lib/std/threadhooks.o lib/std/sjlj.o lib/std/extremum.o lib/std/endian.o lib/std/rand.o lib/std/sldup.o lib/std/sleep.o lib/std/wait.o lib/std/introspect.o lib/std/fltparse.o lib/std/fndup.o lib/std/strbuf.o lib/std/assert.o lib/std/spork.o lib/std/slpush.o lib/std/strstrip.o lib/std/htab.o lib/std/hashfuncs.o lib/std/slput.o lib/std/sjlj-impl.o lib/std/fltbits.o lib/std/striter.o lib/std/types.o lib/std/cstrconv.o lib/std/units.o lib/std/backtrace.o lib/std/syswrap-ss.o lib/std/die.o lib/std/mk.o lib/std/hassuffix.o lib/std/memops-impl.o lib/std/utf.o lib/std/slurp.o lib/std/dialparse.o lib/std/bytealloc.o lib/std/mktemp.o lib/std/consts.o lib/std/chomp.o lib/std/dir.o lib/std/search.o lib/std/memops.o lib/std/fmtfuncs.o lib/std/strfind.o lib/std/env.o lib/std/dirname.o lib/std/clear.o lib/std/listen.o lib/std/sort.o lib/std/cmp.o lib/std/now.o lib/std/intparse.o lib/std/mkpath.o lib/std/option.o lib/std/dial.o lib/std/errno.o lib/std/chartype.o lib/std/bigint.o lib/std/bitset.o lib/std/getbp.o lib/std/slcp.o lib/std/execvp.o
-	$pwd/muse/muse -o lib/std/libstd.use -p std lib/std/resolve.use lib/std/result.use lib/std/try.use lib/std/ipparse.use lib/std/alloc.use lib/std/iterutil.use lib/std/putint.use lib/std/sleq.use lib/std/sljoin.use lib/std/slpop.use lib/std/syswrap.use lib/std/getint.use lib/std/strsplit.use lib/std/slfill.use lib/std/writeall.use lib/std/fltfmt.use lib/std/hasprefix.use lib/std/swap.use lib/std/fmt.use lib/std/netaddr.use lib/std/varargs.use lib/std/diriter.use lib/std/getcwd.use lib/std/blat.use lib/std/optparse.use lib/std/pathjoin.use lib/std/readall.use lib/std/strjoin.use lib/std/threadhooks.use lib/std/sjlj.use lib/std/extremum.use lib/std/endian.use lib/std/rand.use lib/std/sldup.use lib/std/sleep.use lib/std/wait.use lib/std/introspect.use lib/std/fltparse.use lib/std/fndup.use lib/std/strbuf.use lib/std/assert.use lib/std/spork.use lib/std/slpush.use lib/std/strstrip.use lib/std/htab.use lib/std/hashfuncs.use lib/std/slput.use lib/std/fltbits.use lib/std/striter.use lib/std/types.use lib/std/cstrconv.use lib/std/units.use lib/std/backtrace.use lib/std/syswrap-ss.use lib/std/die.use lib/std/mk.use lib/std/hassuffix.use lib/std/utf.use lib/std/slurp.use lib/std/dialparse.use lib/std/bytealloc.use lib/std/mktemp.use lib/std/consts.use lib/std/chomp.use lib/std/dir.use lib/std/search.use lib/std/memops.use lib/std/fmtfuncs.use lib/std/strfind.use lib/std/env.use lib/std/dirname.use lib/std/clear.use lib/std/listen.use lib/std/sort.use lib/std/cmp.use lib/std/now.use lib/std/intparse.use lib/std/mkpath.use lib/std/option.use lib/std/dial.use lib/std/errno.use lib/std/chartype.use lib/std/bigint.use lib/std/bitset.use lib/std/slcp.use lib/std/execvp.use
+	ar -rcs lib/std/libstd.a lib/std/resolve.o lib/std/result.o lib/std/try.o lib/std/ipparse.o lib/std/alloc.o lib/std/iterutil.o lib/std/putint.o lib/std/sleq.o lib/std/sljoin.o lib/std/slpop.o lib/std/syswrap.o lib/std/getint.o lib/std/strsplit.o lib/std/slfill.o lib/std/writeall.o lib/std/fltfmt.o lib/std/hasprefix.o lib/std/swap.o lib/std/fmt.o lib/std/netaddr.o lib/std/varargs.o lib/std/diriter.o lib/std/getcwd.o lib/std/blat.o lib/std/optparse.o lib/std/pathjoin.o lib/std/readall.o lib/std/strjoin.o lib/std/threadhooks.o lib/std/sjlj.o lib/std/extremum.o lib/std/endian.o lib/std/rand.o lib/std/sldup.o lib/std/sleep.o lib/std/wait.o lib/std/introspect.o lib/std/fltparse.o lib/std/fndup.o lib/std/strbuf.o lib/std/assert.o lib/std/spork.o lib/std/slpush.o lib/std/strstrip.o lib/std/htab.o lib/std/hashfuncs.o lib/std/slput.o lib/std/sjlj-impl.o lib/std/fltbits.o lib/std/striter.o lib/std/types.o lib/std/cstrconv.o lib/std/units.o lib/std/backtrace.o lib/std/syswrap-ss.o lib/std/die.o lib/std/mk.o lib/std/hassuffix.o lib/std/memops-impl.o lib/std/utf.o lib/std/slurp.o lib/std/dialparse.o lib/std/bytealloc.o lib/std/mktemp.o lib/std/consts.o lib/std/chomp.o lib/std/dir.o lib/std/search.o lib/std/memops.o lib/std/fmtfuncs.o lib/std/strfind.o lib/std/env.o lib/std/dirname.o lib/std/clear.o lib/std/listen.o lib/std/sort.o lib/std/cmp.o lib/std/now.o lib/std/intparse.o lib/std/traits.o lib/std/mkpath.o lib/std/option.o lib/std/dial.o lib/std/errno.o lib/std/chartype.o lib/std/bigint.o lib/std/bitset.o lib/std/getbp.o lib/std/slcp.o lib/std/execvp.o
+	$pwd/muse/muse -o lib/std/libstd.use -p std lib/std/resolve.use lib/std/result.use lib/std/try.use lib/std/ipparse.use lib/std/alloc.use lib/std/iterutil.use lib/std/putint.use lib/std/sleq.use lib/std/sljoin.use lib/std/slpop.use lib/std/syswrap.use lib/std/getint.use lib/std/strsplit.use lib/std/slfill.use lib/std/writeall.use lib/std/fltfmt.use lib/std/hasprefix.use lib/std/swap.use lib/std/fmt.use lib/std/netaddr.use lib/std/varargs.use lib/std/diriter.use lib/std/getcwd.use lib/std/blat.use lib/std/optparse.use lib/std/pathjoin.use lib/std/readall.use lib/std/strjoin.use lib/std/threadhooks.use lib/std/sjlj.use lib/std/extremum.use lib/std/endian.use lib/std/rand.use lib/std/sldup.use lib/std/sleep.use lib/std/wait.use lib/std/introspect.use lib/std/fltparse.use lib/std/fndup.use lib/std/strbuf.use lib/std/assert.use lib/std/spork.use lib/std/slpush.use lib/std/strstrip.use lib/std/htab.use lib/std/hashfuncs.use lib/std/slput.use lib/std/fltbits.use lib/std/striter.use lib/std/types.use lib/std/cstrconv.use lib/std/units.use lib/std/backtrace.use lib/std/syswrap-ss.use lib/std/die.use lib/std/mk.use lib/std/hassuffix.use lib/std/utf.use lib/std/slurp.use lib/std/dialparse.use lib/std/bytealloc.use lib/std/mktemp.use lib/std/consts.use lib/std/chomp.use lib/std/dir.use lib/std/search.use lib/std/memops.use lib/std/fmtfuncs.use lib/std/strfind.use lib/std/env.use lib/std/dirname.use lib/std/clear.use lib/std/listen.use lib/std/sort.use lib/std/cmp.use lib/std/now.use lib/std/intparse.use lib/std/traits.use lib/std/mkpath.use lib/std/option.use lib/std/dial.use lib/std/errno.use lib/std/chartype.use lib/std/bigint.use lib/std/bitset.use lib/std/slcp.use lib/std/execvp.use
 	$pwd/6/6m -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/types.myr
 	$pwd/6/6m -I lib/sys -I lib/std lib/regex/types.myr
 	$pwd/6/6m -I lib/sys -I lib/std lib/regex/interp.myr
--- a/mk/bootstrap/bootstrap+FreeBSD-amd64.sh
+++ b/mk/bootstrap/bootstrap+FreeBSD-amd64.sh
@@ -8,6 +8,7 @@
 	as -g -o lib/thread/atomic-impl.o lib/thread/atomic-impl+x64.s
 	as -g -o lib/std/getbp.o lib/std/getbp+posixy-x64.s
 	$pwd/6/6m -I . -I lib/sys lib/std/option.myr
+	$pwd/6/6m -I . -I lib/sys lib/std/traits.myr
 	as -g -o lib/std/memops-impl.o lib/std/memops-impl+posixy-x64.s
 	$pwd/6/6m -I . -I lib/sys lib/std/fltbits.myr
 	as -g -o lib/std/sjlj-impl.o lib/std/sjlj-impl+posixy-x64.s
@@ -103,8 +104,8 @@
 	$pwd/6/6m -I . -I lib/sys lib/std/dial+posixy.myr
 	$pwd/6/6m -I . -I lib/sys lib/std/listen+posixy.myr
 	$pwd/6/6m -I . -I lib/sys lib/std/try.myr
-	ar -rcs lib/std/libstd.a lib/std/resolve.o lib/std/result.o lib/std/try.o lib/std/ipparse.o lib/std/alloc.o lib/std/iterutil.o lib/std/putint.o lib/std/sleq.o lib/std/sljoin.o lib/std/slpop.o lib/std/syswrap.o lib/std/getint.o lib/std/strsplit.o lib/std/slfill.o lib/std/writeall.o lib/std/fltfmt.o lib/std/hasprefix.o lib/std/swap.o lib/std/fmt.o lib/std/netaddr.o lib/std/varargs.o lib/std/diriter.o lib/std/getcwd.o lib/std/blat.o lib/std/optparse.o lib/std/pathjoin.o lib/std/readall.o lib/std/strjoin.o lib/std/threadhooks.o lib/std/sjlj.o lib/std/extremum.o lib/std/endian.o lib/std/rand.o lib/std/sldup.o lib/std/sleep.o lib/std/wait.o lib/std/introspect.o lib/std/fltparse.o lib/std/fndup.o lib/std/strbuf.o lib/std/assert.o lib/std/spork.o lib/std/slpush.o lib/std/strstrip.o lib/std/htab.o lib/std/hashfuncs.o lib/std/slput.o lib/std/sjlj-impl.o lib/std/fltbits.o lib/std/striter.o lib/std/types.o lib/std/cstrconv.o lib/std/units.o lib/std/backtrace.o lib/std/syswrap-ss.o lib/std/die.o lib/std/mk.o lib/std/hassuffix.o lib/std/memops-impl.o lib/std/utf.o lib/std/slurp.o lib/std/dialparse.o lib/std/bytealloc.o lib/std/mktemp.o lib/std/consts.o lib/std/chomp.o lib/std/dir.o lib/std/search.o lib/std/memops.o lib/std/fmtfuncs.o lib/std/strfind.o lib/std/env.o lib/std/dirname.o lib/std/clear.o lib/std/listen.o lib/std/sort.o lib/std/cmp.o lib/std/now.o lib/std/intparse.o lib/std/mkpath.o lib/std/option.o lib/std/dial.o lib/std/errno.o lib/std/chartype.o lib/std/bigint.o lib/std/bitset.o lib/std/getbp.o lib/std/slcp.o lib/std/execvp.o
-	$pwd/muse/muse -o lib/std/libstd.use -p std lib/std/resolve.use lib/std/result.use lib/std/try.use lib/std/ipparse.use lib/std/alloc.use lib/std/iterutil.use lib/std/putint.use lib/std/sleq.use lib/std/sljoin.use lib/std/slpop.use lib/std/syswrap.use lib/std/getint.use lib/std/strsplit.use lib/std/slfill.use lib/std/writeall.use lib/std/fltfmt.use lib/std/hasprefix.use lib/std/swap.use lib/std/fmt.use lib/std/netaddr.use lib/std/varargs.use lib/std/diriter.use lib/std/getcwd.use lib/std/blat.use lib/std/optparse.use lib/std/pathjoin.use lib/std/readall.use lib/std/strjoin.use lib/std/threadhooks.use lib/std/sjlj.use lib/std/extremum.use lib/std/endian.use lib/std/rand.use lib/std/sldup.use lib/std/sleep.use lib/std/wait.use lib/std/introspect.use lib/std/fltparse.use lib/std/fndup.use lib/std/strbuf.use lib/std/assert.use lib/std/spork.use lib/std/slpush.use lib/std/strstrip.use lib/std/htab.use lib/std/hashfuncs.use lib/std/slput.use lib/std/fltbits.use lib/std/striter.use lib/std/types.use lib/std/cstrconv.use lib/std/units.use lib/std/backtrace.use lib/std/syswrap-ss.use lib/std/die.use lib/std/mk.use lib/std/hassuffix.use lib/std/utf.use lib/std/slurp.use lib/std/dialparse.use lib/std/bytealloc.use lib/std/mktemp.use lib/std/consts.use lib/std/chomp.use lib/std/dir.use lib/std/search.use lib/std/memops.use lib/std/fmtfuncs.use lib/std/strfind.use lib/std/env.use lib/std/dirname.use lib/std/clear.use lib/std/listen.use lib/std/sort.use lib/std/cmp.use lib/std/now.use lib/std/intparse.use lib/std/mkpath.use lib/std/option.use lib/std/dial.use lib/std/errno.use lib/std/chartype.use lib/std/bigint.use lib/std/bitset.use lib/std/slcp.use lib/std/execvp.use
+	ar -rcs lib/std/libstd.a lib/std/resolve.o lib/std/result.o lib/std/try.o lib/std/ipparse.o lib/std/alloc.o lib/std/iterutil.o lib/std/putint.o lib/std/sleq.o lib/std/sljoin.o lib/std/slpop.o lib/std/syswrap.o lib/std/getint.o lib/std/strsplit.o lib/std/slfill.o lib/std/writeall.o lib/std/fltfmt.o lib/std/hasprefix.o lib/std/swap.o lib/std/fmt.o lib/std/netaddr.o lib/std/varargs.o lib/std/diriter.o lib/std/getcwd.o lib/std/blat.o lib/std/optparse.o lib/std/pathjoin.o lib/std/readall.o lib/std/strjoin.o lib/std/threadhooks.o lib/std/sjlj.o lib/std/extremum.o lib/std/endian.o lib/std/rand.o lib/std/sldup.o lib/std/sleep.o lib/std/wait.o lib/std/introspect.o lib/std/fltparse.o lib/std/fndup.o lib/std/strbuf.o lib/std/assert.o lib/std/spork.o lib/std/slpush.o lib/std/strstrip.o lib/std/htab.o lib/std/hashfuncs.o lib/std/slput.o lib/std/sjlj-impl.o lib/std/fltbits.o lib/std/striter.o lib/std/types.o lib/std/cstrconv.o lib/std/units.o lib/std/backtrace.o lib/std/syswrap-ss.o lib/std/die.o lib/std/mk.o lib/std/hassuffix.o lib/std/memops-impl.o lib/std/utf.o lib/std/slurp.o lib/std/dialparse.o lib/std/bytealloc.o lib/std/mktemp.o lib/std/consts.o lib/std/chomp.o lib/std/dir.o lib/std/search.o lib/std/memops.o lib/std/fmtfuncs.o lib/std/strfind.o lib/std/env.o lib/std/dirname.o lib/std/clear.o lib/std/listen.o lib/std/sort.o lib/std/cmp.o lib/std/now.o lib/std/intparse.o lib/std/traits.o lib/std/mkpath.o lib/std/option.o lib/std/dial.o lib/std/errno.o lib/std/chartype.o lib/std/bigint.o lib/std/bitset.o lib/std/getbp.o lib/std/slcp.o lib/std/execvp.o
+	$pwd/muse/muse -o lib/std/libstd.use -p std lib/std/resolve.use lib/std/result.use lib/std/try.use lib/std/ipparse.use lib/std/alloc.use lib/std/iterutil.use lib/std/putint.use lib/std/sleq.use lib/std/sljoin.use lib/std/slpop.use lib/std/syswrap.use lib/std/getint.use lib/std/strsplit.use lib/std/slfill.use lib/std/writeall.use lib/std/fltfmt.use lib/std/hasprefix.use lib/std/swap.use lib/std/fmt.use lib/std/netaddr.use lib/std/varargs.use lib/std/diriter.use lib/std/getcwd.use lib/std/blat.use lib/std/optparse.use lib/std/pathjoin.use lib/std/readall.use lib/std/strjoin.use lib/std/threadhooks.use lib/std/sjlj.use lib/std/extremum.use lib/std/endian.use lib/std/rand.use lib/std/sldup.use lib/std/sleep.use lib/std/wait.use lib/std/introspect.use lib/std/fltparse.use lib/std/fndup.use lib/std/strbuf.use lib/std/assert.use lib/std/spork.use lib/std/slpush.use lib/std/strstrip.use lib/std/htab.use lib/std/hashfuncs.use lib/std/slput.use lib/std/fltbits.use lib/std/striter.use lib/std/types.use lib/std/cstrconv.use lib/std/units.use lib/std/backtrace.use lib/std/syswrap-ss.use lib/std/die.use lib/std/mk.use lib/std/hassuffix.use lib/std/utf.use lib/std/slurp.use lib/std/dialparse.use lib/std/bytealloc.use lib/std/mktemp.use lib/std/consts.use lib/std/chomp.use lib/std/dir.use lib/std/search.use lib/std/memops.use lib/std/fmtfuncs.use lib/std/strfind.use lib/std/env.use lib/std/dirname.use lib/std/clear.use lib/std/listen.use lib/std/sort.use lib/std/cmp.use lib/std/now.use lib/std/intparse.use lib/std/traits.use lib/std/mkpath.use lib/std/option.use lib/std/dial.use lib/std/errno.use lib/std/chartype.use lib/std/bigint.use lib/std/bitset.use lib/std/slcp.use lib/std/execvp.use
 	$pwd/6/6m -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/types.myr
 	$pwd/6/6m -I lib/sys -I lib/std lib/regex/types.myr
 	$pwd/6/6m -I lib/sys -I lib/std lib/regex/interp.myr
--- a/mk/bootstrap/bootstrap+Linux-x86_64.sh
+++ b/mk/bootstrap/bootstrap+Linux-x86_64.sh
@@ -8,6 +8,7 @@
 	as -g -o lib/thread/atomic-impl.o lib/thread/atomic-impl+x64.s
 	as -g -o lib/std/getbp.o lib/std/getbp+posixy-x64.s
 	$pwd/6/6m -I . -I lib/sys lib/std/option.myr
+	$pwd/6/6m -I . -I lib/sys lib/std/traits.myr
 	as -g -o lib/std/memops-impl.o lib/std/memops-impl+posixy-x64.s
 	$pwd/6/6m -I . -I lib/sys lib/std/fltbits.myr
 	as -g -o lib/std/sjlj-impl.o lib/std/sjlj-impl+posixy-x64.s
@@ -103,8 +104,8 @@
 	$pwd/6/6m -I . -I lib/sys lib/std/dial+posixy.myr
 	$pwd/6/6m -I . -I lib/sys lib/std/listen+posixy.myr
 	$pwd/6/6m -I . -I lib/sys lib/std/try.myr
-	ar -rcs lib/std/libstd.a lib/std/resolve.o lib/std/result.o lib/std/try.o lib/std/ipparse.o lib/std/alloc.o lib/std/iterutil.o lib/std/putint.o lib/std/sleq.o lib/std/sljoin.o lib/std/slpop.o lib/std/syswrap.o lib/std/getint.o lib/std/strsplit.o lib/std/slfill.o lib/std/writeall.o lib/std/fltfmt.o lib/std/hasprefix.o lib/std/swap.o lib/std/fmt.o lib/std/netaddr.o lib/std/varargs.o lib/std/diriter.o lib/std/getcwd.o lib/std/blat.o lib/std/optparse.o lib/std/pathjoin.o lib/std/readall.o lib/std/strjoin.o lib/std/threadhooks.o lib/std/sjlj.o lib/std/extremum.o lib/std/endian.o lib/std/rand.o lib/std/sldup.o lib/std/sleep.o lib/std/wait.o lib/std/introspect.o lib/std/fltparse.o lib/std/fndup.o lib/std/strbuf.o lib/std/assert.o lib/std/spork.o lib/std/slpush.o lib/std/strstrip.o lib/std/htab.o lib/std/hashfuncs.o lib/std/slput.o lib/std/sjlj-impl.o lib/std/fltbits.o lib/std/striter.o lib/std/types.o lib/std/cstrconv.o lib/std/units.o lib/std/backtrace.o lib/std/syswrap-ss.o lib/std/die.o lib/std/mk.o lib/std/hassuffix.o lib/std/memops-impl.o lib/std/utf.o lib/std/slurp.o lib/std/dialparse.o lib/std/bytealloc.o lib/std/mktemp.o lib/std/consts.o lib/std/chomp.o lib/std/dir.o lib/std/search.o lib/std/memops.o lib/std/fmtfuncs.o lib/std/strfind.o lib/std/env.o lib/std/dirname.o lib/std/clear.o lib/std/listen.o lib/std/sort.o lib/std/cmp.o lib/std/now.o lib/std/intparse.o lib/std/mkpath.o lib/std/option.o lib/std/dial.o lib/std/errno.o lib/std/chartype.o lib/std/bigint.o lib/std/bitset.o lib/std/getbp.o lib/std/slcp.o lib/std/execvp.o
-	$pwd/muse/muse -o lib/std/libstd.use -p std lib/std/resolve.use lib/std/result.use lib/std/try.use lib/std/ipparse.use lib/std/alloc.use lib/std/iterutil.use lib/std/putint.use lib/std/sleq.use lib/std/sljoin.use lib/std/slpop.use lib/std/syswrap.use lib/std/getint.use lib/std/strsplit.use lib/std/slfill.use lib/std/writeall.use lib/std/fltfmt.use lib/std/hasprefix.use lib/std/swap.use lib/std/fmt.use lib/std/netaddr.use lib/std/varargs.use lib/std/diriter.use lib/std/getcwd.use lib/std/blat.use lib/std/optparse.use lib/std/pathjoin.use lib/std/readall.use lib/std/strjoin.use lib/std/threadhooks.use lib/std/sjlj.use lib/std/extremum.use lib/std/endian.use lib/std/rand.use lib/std/sldup.use lib/std/sleep.use lib/std/wait.use lib/std/introspect.use lib/std/fltparse.use lib/std/fndup.use lib/std/strbuf.use lib/std/assert.use lib/std/spork.use lib/std/slpush.use lib/std/strstrip.use lib/std/htab.use lib/std/hashfuncs.use lib/std/slput.use lib/std/fltbits.use lib/std/striter.use lib/std/types.use lib/std/cstrconv.use lib/std/units.use lib/std/backtrace.use lib/std/syswrap-ss.use lib/std/die.use lib/std/mk.use lib/std/hassuffix.use lib/std/utf.use lib/std/slurp.use lib/std/dialparse.use lib/std/bytealloc.use lib/std/mktemp.use lib/std/consts.use lib/std/chomp.use lib/std/dir.use lib/std/search.use lib/std/memops.use lib/std/fmtfuncs.use lib/std/strfind.use lib/std/env.use lib/std/dirname.use lib/std/clear.use lib/std/listen.use lib/std/sort.use lib/std/cmp.use lib/std/now.use lib/std/intparse.use lib/std/mkpath.use lib/std/option.use lib/std/dial.use lib/std/errno.use lib/std/chartype.use lib/std/bigint.use lib/std/bitset.use lib/std/slcp.use lib/std/execvp.use
+	ar -rcs lib/std/libstd.a lib/std/resolve.o lib/std/result.o lib/std/try.o lib/std/ipparse.o lib/std/alloc.o lib/std/iterutil.o lib/std/putint.o lib/std/sleq.o lib/std/sljoin.o lib/std/slpop.o lib/std/syswrap.o lib/std/getint.o lib/std/strsplit.o lib/std/slfill.o lib/std/writeall.o lib/std/fltfmt.o lib/std/hasprefix.o lib/std/swap.o lib/std/fmt.o lib/std/netaddr.o lib/std/varargs.o lib/std/diriter.o lib/std/getcwd.o lib/std/blat.o lib/std/optparse.o lib/std/pathjoin.o lib/std/readall.o lib/std/strjoin.o lib/std/threadhooks.o lib/std/sjlj.o lib/std/extremum.o lib/std/endian.o lib/std/rand.o lib/std/sldup.o lib/std/sleep.o lib/std/wait.o lib/std/introspect.o lib/std/fltparse.o lib/std/fndup.o lib/std/strbuf.o lib/std/assert.o lib/std/spork.o lib/std/slpush.o lib/std/strstrip.o lib/std/htab.o lib/std/hashfuncs.o lib/std/slput.o lib/std/sjlj-impl.o lib/std/fltbits.o lib/std/striter.o lib/std/types.o lib/std/cstrconv.o lib/std/units.o lib/std/backtrace.o lib/std/syswrap-ss.o lib/std/die.o lib/std/mk.o lib/std/hassuffix.o lib/std/memops-impl.o lib/std/utf.o lib/std/slurp.o lib/std/dialparse.o lib/std/bytealloc.o lib/std/mktemp.o lib/std/consts.o lib/std/chomp.o lib/std/dir.o lib/std/search.o lib/std/memops.o lib/std/fmtfuncs.o lib/std/strfind.o lib/std/env.o lib/std/dirname.o lib/std/clear.o lib/std/listen.o lib/std/sort.o lib/std/cmp.o lib/std/now.o lib/std/intparse.o lib/std/traits.o lib/std/mkpath.o lib/std/option.o lib/std/dial.o lib/std/errno.o lib/std/chartype.o lib/std/bigint.o lib/std/bitset.o lib/std/getbp.o lib/std/slcp.o lib/std/execvp.o
+	$pwd/muse/muse -o lib/std/libstd.use -p std lib/std/resolve.use lib/std/result.use lib/std/try.use lib/std/ipparse.use lib/std/alloc.use lib/std/iterutil.use lib/std/putint.use lib/std/sleq.use lib/std/sljoin.use lib/std/slpop.use lib/std/syswrap.use lib/std/getint.use lib/std/strsplit.use lib/std/slfill.use lib/std/writeall.use lib/std/fltfmt.use lib/std/hasprefix.use lib/std/swap.use lib/std/fmt.use lib/std/netaddr.use lib/std/varargs.use lib/std/diriter.use lib/std/getcwd.use lib/std/blat.use lib/std/optparse.use lib/std/pathjoin.use lib/std/readall.use lib/std/strjoin.use lib/std/threadhooks.use lib/std/sjlj.use lib/std/extremum.use lib/std/endian.use lib/std/rand.use lib/std/sldup.use lib/std/sleep.use lib/std/wait.use lib/std/introspect.use lib/std/fltparse.use lib/std/fndup.use lib/std/strbuf.use lib/std/assert.use lib/std/spork.use lib/std/slpush.use lib/std/strstrip.use lib/std/htab.use lib/std/hashfuncs.use lib/std/slput.use lib/std/fltbits.use lib/std/striter.use lib/std/types.use lib/std/cstrconv.use lib/std/units.use lib/std/backtrace.use lib/std/syswrap-ss.use lib/std/die.use lib/std/mk.use lib/std/hassuffix.use lib/std/utf.use lib/std/slurp.use lib/std/dialparse.use lib/std/bytealloc.use lib/std/mktemp.use lib/std/consts.use lib/std/chomp.use lib/std/dir.use lib/std/search.use lib/std/memops.use lib/std/fmtfuncs.use lib/std/strfind.use lib/std/env.use lib/std/dirname.use lib/std/clear.use lib/std/listen.use lib/std/sort.use lib/std/cmp.use lib/std/now.use lib/std/intparse.use lib/std/traits.use lib/std/mkpath.use lib/std/option.use lib/std/dial.use lib/std/errno.use lib/std/chartype.use lib/std/bigint.use lib/std/bitset.use lib/std/slcp.use lib/std/execvp.use
 	$pwd/6/6m -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/types.myr
 	$pwd/6/6m -I lib/sys -I lib/std lib/regex/types.myr
 	$pwd/6/6m -I lib/sys -I lib/std lib/regex/interp.myr
--- a/mk/bootstrap/bootstrap+NetBSD-amd64.sh
+++ b/mk/bootstrap/bootstrap+NetBSD-amd64.sh
@@ -7,6 +7,7 @@
 	as -g -o lib/thread/atomic-impl.o lib/thread/atomic-impl+x64.s
 	as -g -o lib/std/getbp.o lib/std/getbp+posixy-x64.s
 	$pwd/6/6m -I . -I lib/sys lib/std/option.myr
+	$pwd/6/6m -I . -I lib/sys lib/std/traits.myr
 	as -g -o lib/std/memops-impl.o lib/std/memops-impl+posixy-x64.s
 	$pwd/6/6m -I . -I lib/sys lib/std/fltbits.myr
 	as -g -o lib/std/sjlj-impl.o lib/std/sjlj-impl+posixy-x64.s
@@ -102,8 +103,8 @@
 	$pwd/6/6m -I . -I lib/sys lib/std/dial+posixy.myr
 	$pwd/6/6m -I . -I lib/sys lib/std/listen+posixy.myr
 	$pwd/6/6m -I . -I lib/sys lib/std/try.myr
-	ar -rcs lib/std/libstd.a lib/std/resolve.o lib/std/result.o lib/std/try.o lib/std/ipparse.o lib/std/alloc.o lib/std/iterutil.o lib/std/putint.o lib/std/sleq.o lib/std/sljoin.o lib/std/slpop.o lib/std/syswrap.o lib/std/getint.o lib/std/strsplit.o lib/std/slfill.o lib/std/writeall.o lib/std/fltfmt.o lib/std/hasprefix.o lib/std/swap.o lib/std/fmt.o lib/std/netaddr.o lib/std/varargs.o lib/std/diriter.o lib/std/getcwd.o lib/std/blat.o lib/std/optparse.o lib/std/pathjoin.o lib/std/readall.o lib/std/strjoin.o lib/std/threadhooks.o lib/std/sjlj.o lib/std/extremum.o lib/std/endian.o lib/std/rand.o lib/std/sldup.o lib/std/sleep.o lib/std/wait.o lib/std/introspect.o lib/std/fltparse.o lib/std/fndup.o lib/std/strbuf.o lib/std/assert.o lib/std/spork.o lib/std/slpush.o lib/std/strstrip.o lib/std/htab.o lib/std/hashfuncs.o lib/std/slput.o lib/std/sjlj-impl.o lib/std/fltbits.o lib/std/striter.o lib/std/types.o lib/std/cstrconv.o lib/std/units.o lib/std/backtrace.o lib/std/syswrap-ss.o lib/std/die.o lib/std/mk.o lib/std/hassuffix.o lib/std/memops-impl.o lib/std/utf.o lib/std/slurp.o lib/std/dialparse.o lib/std/bytealloc.o lib/std/mktemp.o lib/std/consts.o lib/std/chomp.o lib/std/dir.o lib/std/search.o lib/std/memops.o lib/std/fmtfuncs.o lib/std/strfind.o lib/std/env.o lib/std/dirname.o lib/std/clear.o lib/std/listen.o lib/std/sort.o lib/std/cmp.o lib/std/now.o lib/std/intparse.o lib/std/mkpath.o lib/std/option.o lib/std/dial.o lib/std/errno.o lib/std/chartype.o lib/std/bigint.o lib/std/bitset.o lib/std/getbp.o lib/std/slcp.o lib/std/execvp.o
-	$pwd/muse/muse -o lib/std/libstd.use -p std lib/std/resolve.use lib/std/result.use lib/std/try.use lib/std/ipparse.use lib/std/alloc.use lib/std/iterutil.use lib/std/putint.use lib/std/sleq.use lib/std/sljoin.use lib/std/slpop.use lib/std/syswrap.use lib/std/getint.use lib/std/strsplit.use lib/std/slfill.use lib/std/writeall.use lib/std/fltfmt.use lib/std/hasprefix.use lib/std/swap.use lib/std/fmt.use lib/std/netaddr.use lib/std/varargs.use lib/std/diriter.use lib/std/getcwd.use lib/std/blat.use lib/std/optparse.use lib/std/pathjoin.use lib/std/readall.use lib/std/strjoin.use lib/std/threadhooks.use lib/std/sjlj.use lib/std/extremum.use lib/std/endian.use lib/std/rand.use lib/std/sldup.use lib/std/sleep.use lib/std/wait.use lib/std/introspect.use lib/std/fltparse.use lib/std/fndup.use lib/std/strbuf.use lib/std/assert.use lib/std/spork.use lib/std/slpush.use lib/std/strstrip.use lib/std/htab.use lib/std/hashfuncs.use lib/std/slput.use lib/std/fltbits.use lib/std/striter.use lib/std/types.use lib/std/cstrconv.use lib/std/units.use lib/std/backtrace.use lib/std/syswrap-ss.use lib/std/die.use lib/std/mk.use lib/std/hassuffix.use lib/std/utf.use lib/std/slurp.use lib/std/dialparse.use lib/std/bytealloc.use lib/std/mktemp.use lib/std/consts.use lib/std/chomp.use lib/std/dir.use lib/std/search.use lib/std/memops.use lib/std/fmtfuncs.use lib/std/strfind.use lib/std/env.use lib/std/dirname.use lib/std/clear.use lib/std/listen.use lib/std/sort.use lib/std/cmp.use lib/std/now.use lib/std/intparse.use lib/std/mkpath.use lib/std/option.use lib/std/dial.use lib/std/errno.use lib/std/chartype.use lib/std/bigint.use lib/std/bitset.use lib/std/slcp.use lib/std/execvp.use
+	ar -rcs lib/std/libstd.a lib/std/resolve.o lib/std/result.o lib/std/try.o lib/std/ipparse.o lib/std/alloc.o lib/std/iterutil.o lib/std/putint.o lib/std/sleq.o lib/std/sljoin.o lib/std/slpop.o lib/std/syswrap.o lib/std/getint.o lib/std/strsplit.o lib/std/slfill.o lib/std/writeall.o lib/std/fltfmt.o lib/std/hasprefix.o lib/std/swap.o lib/std/fmt.o lib/std/netaddr.o lib/std/varargs.o lib/std/diriter.o lib/std/getcwd.o lib/std/blat.o lib/std/optparse.o lib/std/pathjoin.o lib/std/readall.o lib/std/strjoin.o lib/std/threadhooks.o lib/std/sjlj.o lib/std/extremum.o lib/std/endian.o lib/std/rand.o lib/std/sldup.o lib/std/sleep.o lib/std/wait.o lib/std/introspect.o lib/std/fltparse.o lib/std/fndup.o lib/std/strbuf.o lib/std/assert.o lib/std/spork.o lib/std/slpush.o lib/std/strstrip.o lib/std/htab.o lib/std/hashfuncs.o lib/std/slput.o lib/std/sjlj-impl.o lib/std/fltbits.o lib/std/striter.o lib/std/types.o lib/std/cstrconv.o lib/std/units.o lib/std/backtrace.o lib/std/syswrap-ss.o lib/std/die.o lib/std/mk.o lib/std/hassuffix.o lib/std/memops-impl.o lib/std/utf.o lib/std/slurp.o lib/std/dialparse.o lib/std/bytealloc.o lib/std/mktemp.o lib/std/consts.o lib/std/chomp.o lib/std/dir.o lib/std/search.o lib/std/memops.o lib/std/fmtfuncs.o lib/std/strfind.o lib/std/env.o lib/std/dirname.o lib/std/clear.o lib/std/listen.o lib/std/sort.o lib/std/cmp.o lib/std/now.o lib/std/intparse.o lib/std/traits.o lib/std/mkpath.o lib/std/option.o lib/std/dial.o lib/std/errno.o lib/std/chartype.o lib/std/bigint.o lib/std/bitset.o lib/std/getbp.o lib/std/slcp.o lib/std/execvp.o
+	$pwd/muse/muse -o lib/std/libstd.use -p std lib/std/resolve.use lib/std/result.use lib/std/try.use lib/std/ipparse.use lib/std/alloc.use lib/std/iterutil.use lib/std/putint.use lib/std/sleq.use lib/std/sljoin.use lib/std/slpop.use lib/std/syswrap.use lib/std/getint.use lib/std/strsplit.use lib/std/slfill.use lib/std/writeall.use lib/std/fltfmt.use lib/std/hasprefix.use lib/std/swap.use lib/std/fmt.use lib/std/netaddr.use lib/std/varargs.use lib/std/diriter.use lib/std/getcwd.use lib/std/blat.use lib/std/optparse.use lib/std/pathjoin.use lib/std/readall.use lib/std/strjoin.use lib/std/threadhooks.use lib/std/sjlj.use lib/std/extremum.use lib/std/endian.use lib/std/rand.use lib/std/sldup.use lib/std/sleep.use lib/std/wait.use lib/std/introspect.use lib/std/fltparse.use lib/std/fndup.use lib/std/strbuf.use lib/std/assert.use lib/std/spork.use lib/std/slpush.use lib/std/strstrip.use lib/std/htab.use lib/std/hashfuncs.use lib/std/slput.use lib/std/fltbits.use lib/std/striter.use lib/std/types.use lib/std/cstrconv.use lib/std/units.use lib/std/backtrace.use lib/std/syswrap-ss.use lib/std/die.use lib/std/mk.use lib/std/hassuffix.use lib/std/utf.use lib/std/slurp.use lib/std/dialparse.use lib/std/bytealloc.use lib/std/mktemp.use lib/std/consts.use lib/std/chomp.use lib/std/dir.use lib/std/search.use lib/std/memops.use lib/std/fmtfuncs.use lib/std/strfind.use lib/std/env.use lib/std/dirname.use lib/std/clear.use lib/std/listen.use lib/std/sort.use lib/std/cmp.use lib/std/now.use lib/std/intparse.use lib/std/traits.use lib/std/mkpath.use lib/std/option.use lib/std/dial.use lib/std/errno.use lib/std/chartype.use lib/std/bigint.use lib/std/bitset.use lib/std/slcp.use lib/std/execvp.use
 	$pwd/6/6m -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/types.myr
 	$pwd/6/6m -I lib/sys -I lib/std lib/regex/types.myr
 	$pwd/6/6m -I lib/sys -I lib/std lib/regex/interp.myr
--- a/mk/bootstrap/bootstrap+OpenBSD-amd64.sh
+++ b/mk/bootstrap/bootstrap+OpenBSD-amd64.sh
@@ -8,6 +8,7 @@
 	as -g -o lib/thread/atomic-impl.o lib/thread/atomic-impl+x64.s
 	as -g -o lib/std/getbp.o lib/std/getbp+posixy-x64.s
 	$pwd/6/6m -I . -I lib/sys lib/std/option.myr
+	$pwd/6/6m -I . -I lib/sys lib/std/traits.myr
 	as -g -o lib/std/memops-impl.o lib/std/memops-impl+posixy-x64.s
 	$pwd/6/6m -I . -I lib/sys lib/std/fltbits.myr
 	as -g -o lib/std/sjlj-impl.o lib/std/sjlj-impl+posixy-x64.s
@@ -23,7 +24,7 @@
 	$pwd/6/6m lib/sys/systypes.myr
 	as -g -o lib/sys/util.o lib/sys/util+posixy-x64.s
 	$pwd/6/6m lib/sys/syserrno+openbsd.myr
-	$pwd/6/6m lib/sys/sys+openbsd:6.1-x64.myr
+	$pwd/6/6m lib/sys/sys+openbsd:6.2-x64.myr
 	ar -rcs lib/sys/libsys.a lib/sys/sys.o lib/sys/syserrno.o lib/sys/util.o lib/sys/systypes.o lib/sys/ifreq.o lib/sys/syscall.o
 	$pwd/muse/muse -o lib/sys/libsys.use -p sys lib/sys/sys.use lib/sys/syserrno.use lib/sys/systypes.use lib/sys/ifreq.use
 	$pwd/6/6m -I . -I lib/sys lib/std/errno.myr
@@ -103,8 +104,8 @@
 	$pwd/6/6m -I . -I lib/sys lib/std/dial+posixy.myr
 	$pwd/6/6m -I . -I lib/sys lib/std/listen+posixy.myr
 	$pwd/6/6m -I . -I lib/sys lib/std/try.myr
-	ar -rcs lib/std/libstd.a lib/std/resolve.o lib/std/result.o lib/std/try.o lib/std/ipparse.o lib/std/alloc.o lib/std/iterutil.o lib/std/putint.o lib/std/sleq.o lib/std/sljoin.o lib/std/slpop.o lib/std/syswrap.o lib/std/getint.o lib/std/strsplit.o lib/std/slfill.o lib/std/writeall.o lib/std/fltfmt.o lib/std/hasprefix.o lib/std/swap.o lib/std/fmt.o lib/std/netaddr.o lib/std/varargs.o lib/std/diriter.o lib/std/getcwd.o lib/std/blat.o lib/std/optparse.o lib/std/pathjoin.o lib/std/readall.o lib/std/strjoin.o lib/std/threadhooks.o lib/std/sjlj.o lib/std/extremum.o lib/std/endian.o lib/std/rand.o lib/std/sldup.o lib/std/sleep.o lib/std/wait.o lib/std/introspect.o lib/std/fltparse.o lib/std/fndup.o lib/std/strbuf.o lib/std/assert.o lib/std/spork.o lib/std/slpush.o lib/std/strstrip.o lib/std/htab.o lib/std/hashfuncs.o lib/std/slput.o lib/std/sjlj-impl.o lib/std/fltbits.o lib/std/striter.o lib/std/types.o lib/std/cstrconv.o lib/std/units.o lib/std/backtrace.o lib/std/syswrap-ss.o lib/std/die.o lib/std/mk.o lib/std/hassuffix.o lib/std/memops-impl.o lib/std/utf.o lib/std/slurp.o lib/std/dialparse.o lib/std/bytealloc.o lib/std/mktemp.o lib/std/consts.o lib/std/chomp.o lib/std/dir.o lib/std/search.o lib/std/memops.o lib/std/fmtfuncs.o lib/std/strfind.o lib/std/env.o lib/std/dirname.o lib/std/clear.o lib/std/listen.o lib/std/sort.o lib/std/cmp.o lib/std/now.o lib/std/intparse.o lib/std/mkpath.o lib/std/option.o lib/std/dial.o lib/std/errno.o lib/std/chartype.o lib/std/bigint.o lib/std/bitset.o lib/std/getbp.o lib/std/slcp.o lib/std/execvp.o
-	$pwd/muse/muse -o lib/std/libstd.use -p std lib/std/resolve.use lib/std/result.use lib/std/try.use lib/std/ipparse.use lib/std/alloc.use lib/std/iterutil.use lib/std/putint.use lib/std/sleq.use lib/std/sljoin.use lib/std/slpop.use lib/std/syswrap.use lib/std/getint.use lib/std/strsplit.use lib/std/slfill.use lib/std/writeall.use lib/std/fltfmt.use lib/std/hasprefix.use lib/std/swap.use lib/std/fmt.use lib/std/netaddr.use lib/std/varargs.use lib/std/diriter.use lib/std/getcwd.use lib/std/blat.use lib/std/optparse.use lib/std/pathjoin.use lib/std/readall.use lib/std/strjoin.use lib/std/threadhooks.use lib/std/sjlj.use lib/std/extremum.use lib/std/endian.use lib/std/rand.use lib/std/sldup.use lib/std/sleep.use lib/std/wait.use lib/std/introspect.use lib/std/fltparse.use lib/std/fndup.use lib/std/strbuf.use lib/std/assert.use lib/std/spork.use lib/std/slpush.use lib/std/strstrip.use lib/std/htab.use lib/std/hashfuncs.use lib/std/slput.use lib/std/fltbits.use lib/std/striter.use lib/std/types.use lib/std/cstrconv.use lib/std/units.use lib/std/backtrace.use lib/std/syswrap-ss.use lib/std/die.use lib/std/mk.use lib/std/hassuffix.use lib/std/utf.use lib/std/slurp.use lib/std/dialparse.use lib/std/bytealloc.use lib/std/mktemp.use lib/std/consts.use lib/std/chomp.use lib/std/dir.use lib/std/search.use lib/std/memops.use lib/std/fmtfuncs.use lib/std/strfind.use lib/std/env.use lib/std/dirname.use lib/std/clear.use lib/std/listen.use lib/std/sort.use lib/std/cmp.use lib/std/now.use lib/std/intparse.use lib/std/mkpath.use lib/std/option.use lib/std/dial.use lib/std/errno.use lib/std/chartype.use lib/std/bigint.use lib/std/bitset.use lib/std/slcp.use lib/std/execvp.use
+	ar -rcs lib/std/libstd.a lib/std/resolve.o lib/std/result.o lib/std/try.o lib/std/ipparse.o lib/std/alloc.o lib/std/iterutil.o lib/std/putint.o lib/std/sleq.o lib/std/sljoin.o lib/std/slpop.o lib/std/syswrap.o lib/std/getint.o lib/std/strsplit.o lib/std/slfill.o lib/std/writeall.o lib/std/fltfmt.o lib/std/hasprefix.o lib/std/swap.o lib/std/fmt.o lib/std/netaddr.o lib/std/varargs.o lib/std/diriter.o lib/std/getcwd.o lib/std/blat.o lib/std/optparse.o lib/std/pathjoin.o lib/std/readall.o lib/std/strjoin.o lib/std/threadhooks.o lib/std/sjlj.o lib/std/extremum.o lib/std/endian.o lib/std/rand.o lib/std/sldup.o lib/std/sleep.o lib/std/wait.o lib/std/introspect.o lib/std/fltparse.o lib/std/fndup.o lib/std/strbuf.o lib/std/assert.o lib/std/spork.o lib/std/slpush.o lib/std/strstrip.o lib/std/htab.o lib/std/hashfuncs.o lib/std/slput.o lib/std/sjlj-impl.o lib/std/fltbits.o lib/std/striter.o lib/std/types.o lib/std/cstrconv.o lib/std/units.o lib/std/backtrace.o lib/std/syswrap-ss.o lib/std/die.o lib/std/mk.o lib/std/hassuffix.o lib/std/memops-impl.o lib/std/utf.o lib/std/slurp.o lib/std/dialparse.o lib/std/bytealloc.o lib/std/mktemp.o lib/std/consts.o lib/std/chomp.o lib/std/dir.o lib/std/search.o lib/std/memops.o lib/std/fmtfuncs.o lib/std/strfind.o lib/std/env.o lib/std/dirname.o lib/std/clear.o lib/std/listen.o lib/std/sort.o lib/std/cmp.o lib/std/now.o lib/std/intparse.o lib/std/traits.o lib/std/mkpath.o lib/std/option.o lib/std/dial.o lib/std/errno.o lib/std/chartype.o lib/std/bigint.o lib/std/bitset.o lib/std/getbp.o lib/std/slcp.o lib/std/execvp.o
+	$pwd/muse/muse -o lib/std/libstd.use -p std lib/std/resolve.use lib/std/result.use lib/std/try.use lib/std/ipparse.use lib/std/alloc.use lib/std/iterutil.use lib/std/putint.use lib/std/sleq.use lib/std/sljoin.use lib/std/slpop.use lib/std/syswrap.use lib/std/getint.use lib/std/strsplit.use lib/std/slfill.use lib/std/writeall.use lib/std/fltfmt.use lib/std/hasprefix.use lib/std/swap.use lib/std/fmt.use lib/std/netaddr.use lib/std/varargs.use lib/std/diriter.use lib/std/getcwd.use lib/std/blat.use lib/std/optparse.use lib/std/pathjoin.use lib/std/readall.use lib/std/strjoin.use lib/std/threadhooks.use lib/std/sjlj.use lib/std/extremum.use lib/std/endian.use lib/std/rand.use lib/std/sldup.use lib/std/sleep.use lib/std/wait.use lib/std/introspect.use lib/std/fltparse.use lib/std/fndup.use lib/std/strbuf.use lib/std/assert.use lib/std/spork.use lib/std/slpush.use lib/std/strstrip.use lib/std/htab.use lib/std/hashfuncs.use lib/std/slput.use lib/std/fltbits.use lib/std/striter.use lib/std/types.use lib/std/cstrconv.use lib/std/units.use lib/std/backtrace.use lib/std/syswrap-ss.use lib/std/die.use lib/std/mk.use lib/std/hassuffix.use lib/std/utf.use lib/std/slurp.use lib/std/dialparse.use lib/std/bytealloc.use lib/std/mktemp.use lib/std/consts.use lib/std/chomp.use lib/std/dir.use lib/std/search.use lib/std/memops.use lib/std/fmtfuncs.use lib/std/strfind.use lib/std/env.use lib/std/dirname.use lib/std/clear.use lib/std/listen.use lib/std/sort.use lib/std/cmp.use lib/std/now.use lib/std/intparse.use lib/std/traits.use lib/std/mkpath.use lib/std/option.use lib/std/dial.use lib/std/errno.use lib/std/chartype.use lib/std/bigint.use lib/std/bitset.use lib/std/slcp.use lib/std/execvp.use
 	$pwd/6/6m -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/types.myr
 	$pwd/6/6m -I lib/sys -I lib/std lib/regex/types.myr
 	$pwd/6/6m -I lib/sys -I lib/std lib/regex/interp.myr
@@ -116,10 +117,10 @@
 	ar -rcs lib/bio/libbio.a lib/bio/puti.o lib/bio/geti.o lib/bio/mem.o lib/bio/bio.o lib/bio/iter.o
 	$pwd/muse/muse -o lib/bio/libbio.use -p bio lib/bio/puti.use lib/bio/geti.use lib/bio/mem.use lib/bio/bio.use lib/bio/iter.use
 	$pwd/6/6m -I lib/sys -I lib/std lib/thread/spawn+openbsd.myr
-	$pwd/6/6m -I lib/sys -I lib/std lib/thread/ncpu.myr
+	$pwd/6/6m -I lib/sys -I lib/std lib/thread/ncpu+openbsd.myr
 	$pwd/6/6m -I lib/sys -I lib/std lib/thread/common.myr
 	$pwd/6/6m -I lib/sys -I lib/std lib/thread/atomic.myr
-	$pwd/6/6m -I lib/sys -I lib/std lib/thread/mutex.myr
+	$pwd/6/6m -I lib/sys -I lib/std lib/thread/mutex+openbsd:6.2.myr
 	$pwd/6/6m -I lib/sys -I lib/std lib/thread/hookstd.myr
 	ar -rcs lib/thread/libthread.a lib/thread/mutex.o lib/thread/atomic.o lib/thread/atomic-impl.o lib/thread/hookstd.o lib/thread/common.o lib/thread/ncpu.o lib/thread/exit.o lib/thread/spawn.o
 	$pwd/muse/muse -o lib/thread/libthread.use -p thread lib/thread/mutex.use lib/thread/atomic.use lib/thread/hookstd.use lib/thread/common.use lib/thread/ncpu.use lib/thread/spawn.use
--- a/mk/bootstrap/bootstrap+Plan9-amd64.sh
+++ b/mk/bootstrap/bootstrap+Plan9-amd64.sh
@@ -8,6 +8,7 @@
 	6a -o lib/std/getbp.6 lib/std/getbp+plan9-x64.s
 	$pwd/6/6.out -I . -I lib/sys lib/std/errno+plan9.myr
 	$pwd/6/6.out -I . -I lib/sys lib/std/option.myr
+	$pwd/6/6.out -I . -I lib/sys lib/std/traits.myr
 	6a -o lib/std/memops-impl.6 lib/std/memops-impl+plan9-x64.s
 	$pwd/6/6.out -I . -I lib/sys lib/std/fltbits.myr
 	6a -o lib/std/sjlj-impl.6 lib/std/sjlj-impl+plan9-x64.s
@@ -100,8 +101,8 @@
 	$pwd/6/6.out -I . -I lib/sys lib/std/ipparse.myr
 	$pwd/6/6.out -I . -I lib/sys lib/std/fmtfuncs.myr
 	$pwd/6/6.out -I . -I lib/sys lib/std/try.myr
-	ar u lib/std/libstd.a lib/std/resolve.6 lib/std/result.6 lib/std/try.6 lib/std/ipparse.6 lib/std/alloc.6 lib/std/iterutil.6 lib/std/putint.6 lib/std/sleq.6 lib/std/sljoin.6 lib/std/slpop.6 lib/std/syswrap.6 lib/std/getint.6 lib/std/strsplit.6 lib/std/slfill.6 lib/std/writeall.6 lib/std/fltfmt.6 lib/std/hasprefix.6 lib/std/swap.6 lib/std/fmt.6 lib/std/netaddr.6 lib/std/varargs.6 lib/std/diriter.6 lib/std/getcwd.6 lib/std/blat.6 lib/std/optparse.6 lib/std/pathjoin.6 lib/std/readall.6 lib/std/strjoin.6 lib/std/threadhooks.6 lib/std/sjlj.6 lib/std/extremum.6 lib/std/endian.6 lib/std/rand.6 lib/std/sldup.6 lib/std/sleep.6 lib/std/wait.6 lib/std/introspect.6 lib/std/fltparse.6 lib/std/fndup.6 lib/std/strbuf.6 lib/std/assert.6 lib/std/spork.6 lib/std/slpush.6 lib/std/strstrip.6 lib/std/htab.6 lib/std/hashfuncs.6 lib/std/slput.6 lib/std/sjlj-impl.6 lib/std/fltbits.6 lib/std/striter.6 lib/std/types.6 lib/std/cstrconv.6 lib/std/units.6 lib/std/backtrace.6 lib/std/syswrap-ss.6 lib/std/die.6 lib/std/mk.6 lib/std/hassuffix.6 lib/std/memops-impl.6 lib/std/utf.6 lib/std/slurp.6 lib/std/bytealloc.6 lib/std/mktemp.6 lib/std/consts.6 lib/std/chomp.6 lib/std/dir.6 lib/std/search.6 lib/std/memops.6 lib/std/fmtfuncs.6 lib/std/strfind.6 lib/std/env.6 lib/std/dirname.6 lib/std/clear.6 lib/std/listen.6 lib/std/sort.6 lib/std/cmp.6 lib/std/now.6 lib/std/intparse.6 lib/std/mkpath.6 lib/std/option.6 lib/std/dial.6 lib/std/errno.6 lib/std/chartype.6 lib/std/bigint.6 lib/std/bitset.6 lib/std/getbp.6 lib/std/slcp.6 lib/std/execvp.6
-	$pwd/muse/6.out -o lib/std/libstd.use -p std lib/std/resolve.use lib/std/result.use lib/std/try.use lib/std/ipparse.use lib/std/alloc.use lib/std/iterutil.use lib/std/putint.use lib/std/sleq.use lib/std/sljoin.use lib/std/slpop.use lib/std/syswrap.use lib/std/getint.use lib/std/strsplit.use lib/std/slfill.use lib/std/writeall.use lib/std/fltfmt.use lib/std/hasprefix.use lib/std/swap.use lib/std/fmt.use lib/std/netaddr.use lib/std/varargs.use lib/std/diriter.use lib/std/getcwd.use lib/std/blat.use lib/std/optparse.use lib/std/pathjoin.use lib/std/readall.use lib/std/strjoin.use lib/std/threadhooks.use lib/std/sjlj.use lib/std/extremum.use lib/std/endian.use lib/std/rand.use lib/std/sldup.use lib/std/sleep.use lib/std/wait.use lib/std/introspect.use lib/std/fltparse.use lib/std/fndup.use lib/std/strbuf.use lib/std/assert.use lib/std/spork.use lib/std/slpush.use lib/std/strstrip.use lib/std/htab.use lib/std/hashfuncs.use lib/std/slput.use lib/std/fltbits.use lib/std/striter.use lib/std/types.use lib/std/cstrconv.use lib/std/units.use lib/std/backtrace.use lib/std/syswrap-ss.use lib/std/die.use lib/std/mk.use lib/std/hassuffix.use lib/std/utf.use lib/std/slurp.use lib/std/bytealloc.use lib/std/mktemp.use lib/std/consts.use lib/std/chomp.use lib/std/dir.use lib/std/search.use lib/std/memops.use lib/std/fmtfuncs.use lib/std/strfind.use lib/std/env.use lib/std/dirname.use lib/std/clear.use lib/std/listen.use lib/std/sort.use lib/std/cmp.use lib/std/now.use lib/std/intparse.use lib/std/mkpath.use lib/std/option.use lib/std/dial.use lib/std/errno.use lib/std/chartype.use lib/std/bigint.use lib/std/bitset.use lib/std/slcp.use lib/std/execvp.use
+	ar u lib/std/libstd.a lib/std/resolve.6 lib/std/result.6 lib/std/try.6 lib/std/ipparse.6 lib/std/alloc.6 lib/std/iterutil.6 lib/std/putint.6 lib/std/sleq.6 lib/std/sljoin.6 lib/std/slpop.6 lib/std/syswrap.6 lib/std/getint.6 lib/std/strsplit.6 lib/std/slfill.6 lib/std/writeall.6 lib/std/fltfmt.6 lib/std/hasprefix.6 lib/std/swap.6 lib/std/fmt.6 lib/std/netaddr.6 lib/std/varargs.6 lib/std/diriter.6 lib/std/getcwd.6 lib/std/blat.6 lib/std/optparse.6 lib/std/pathjoin.6 lib/std/readall.6 lib/std/strjoin.6 lib/std/threadhooks.6 lib/std/sjlj.6 lib/std/extremum.6 lib/std/endian.6 lib/std/rand.6 lib/std/sldup.6 lib/std/sleep.6 lib/std/wait.6 lib/std/introspect.6 lib/std/fltparse.6 lib/std/fndup.6 lib/std/strbuf.6 lib/std/assert.6 lib/std/spork.6 lib/std/slpush.6 lib/std/strstrip.6 lib/std/htab.6 lib/std/hashfuncs.6 lib/std/slput.6 lib/std/sjlj-impl.6 lib/std/fltbits.6 lib/std/striter.6 lib/std/types.6 lib/std/cstrconv.6 lib/std/units.6 lib/std/backtrace.6 lib/std/syswrap-ss.6 lib/std/die.6 lib/std/mk.6 lib/std/hassuffix.6 lib/std/memops-impl.6 lib/std/utf.6 lib/std/slurp.6 lib/std/bytealloc.6 lib/std/mktemp.6 lib/std/consts.6 lib/std/chomp.6 lib/std/dir.6 lib/std/search.6 lib/std/memops.6 lib/std/fmtfuncs.6 lib/std/strfind.6 lib/std/env.6 lib/std/dirname.6 lib/std/clear.6 lib/std/listen.6 lib/std/sort.6 lib/std/cmp.6 lib/std/now.6 lib/std/intparse.6 lib/std/traits.6 lib/std/mkpath.6 lib/std/option.6 lib/std/dial.6 lib/std/errno.6 lib/std/chartype.6 lib/std/bigint.6 lib/std/bitset.6 lib/std/getbp.6 lib/std/slcp.6 lib/std/execvp.6
+	$pwd/muse/6.out -o lib/std/libstd.use -p std lib/std/resolve.use lib/std/result.use lib/std/try.use lib/std/ipparse.use lib/std/alloc.use lib/std/iterutil.use lib/std/putint.use lib/std/sleq.use lib/std/sljoin.use lib/std/slpop.use lib/std/syswrap.use lib/std/getint.use lib/std/strsplit.use lib/std/slfill.use lib/std/writeall.use lib/std/fltfmt.use lib/std/hasprefix.use lib/std/swap.use lib/std/fmt.use lib/std/netaddr.use lib/std/varargs.use lib/std/diriter.use lib/std/getcwd.use lib/std/blat.use lib/std/optparse.use lib/std/pathjoin.use lib/std/readall.use lib/std/strjoin.use lib/std/threadhooks.use lib/std/sjlj.use lib/std/extremum.use lib/std/endian.use lib/std/rand.use lib/std/sldup.use lib/std/sleep.use lib/std/wait.use lib/std/introspect.use lib/std/fltparse.use lib/std/fndup.use lib/std/strbuf.use lib/std/assert.use lib/std/spork.use lib/std/slpush.use lib/std/strstrip.use lib/std/htab.use lib/std/hashfuncs.use lib/std/slput.use lib/std/fltbits.use lib/std/striter.use lib/std/types.use lib/std/cstrconv.use lib/std/units.use lib/std/backtrace.use lib/std/syswrap-ss.use lib/std/die.use lib/std/mk.use lib/std/hassuffix.use lib/std/utf.use lib/std/slurp.use lib/std/bytealloc.use lib/std/mktemp.use lib/std/consts.use lib/std/chomp.use lib/std/dir.use lib/std/search.use lib/std/memops.use lib/std/fmtfuncs.use lib/std/strfind.use lib/std/env.use lib/std/dirname.use lib/std/clear.use lib/std/listen.use lib/std/sort.use lib/std/cmp.use lib/std/now.use lib/std/intparse.use lib/std/traits.use lib/std/mkpath.use lib/std/option.use lib/std/dial.use lib/std/errno.use lib/std/chartype.use lib/std/bigint.use lib/std/bitset.use lib/std/slcp.use lib/std/execvp.use
 	$pwd/6/6.out -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/types.myr
 	$pwd/6/6.out -I lib/sys -I lib/std lib/regex/types.myr
 	$pwd/6/6.out -I lib/sys -I lib/std lib/regex/interp.myr