ref: 60d61b474fe36484cce4bb844d48faff8d9d1fd6
parent: 38fb09f0003bad6ce33fd0af769c68d0dd88bc36
author: Ori Bernstein <ori@eigenstate.org>
date: Sun Sep 11 04:33:07 EDT 2016
Update the 9front build. There were a few bugs. Oops.
--- a/lib/std/syswrap+plan9.myr
+++ b/lib/std/syswrap+plan9.myr
@@ -7,6 +7,7 @@
use "cstrconv"
use "strfind"
use "getint"
+use "syswrap-ss"
pkg std =
type fd = sys.fd
@@ -251,27 +252,3 @@
-> `Ok (e : @b)
;;
}
-
-const lasterr = {
- var errbuf : byte[sys.Maxerr]
- var err
-
- sys.errstr(errbuf[:])
- err = cstrconv(errbuf[:])
- if strhas(err, "no error")
- -> Enone
- elif strhas(err, "already exists")
- -> Eexist
- elif strhas(err, "read or write too large")
- -> Erange
- elif strhas(err, "read or write too small")
- -> Erange
- elif strhas(err, "i/o error")
- -> Eio
- elif strhas(err, "fd out of range or not open")
- -> Ebadf
- else
- -> Emisc
- ;;
-}
-
--- a/lib/std/syswrap-ss+plan9.myr
+++ b/lib/std/syswrap-ss+plan9.myr
@@ -3,11 +3,13 @@
use "types"
use "errno"
use "cstrconv"
+use "strfind"
pkg std =
const nanosleep : (nsecs : uint64 -> errno)
$noret const exit : (status : int -> void)
pkglocal const bgetcwd : (buf : byte[:] -> errno)
+ pkglocal const lasterr : (-> errno)
;;
const nanosleep = {nsecs
@@ -63,3 +65,26 @@
;;
}
+
+const lasterr = {
+ var errbuf : byte[sys.Maxerr]
+ var err
+
+ sys.errstr(errbuf[:])
+ err = cstrconv(errbuf[:])
+ if strhas(err, "no error")
+ -> Enone
+ elif strhas(err, "already exists")
+ -> Eexist
+ elif strhas(err, "read or write too large")
+ -> Erange
+ elif strhas(err, "read or write too small")
+ -> Erange
+ elif strhas(err, "i/o error")
+ -> Eio
+ elif strhas(err, "fd out of range or not open")
+ -> Ebadf
+ else
+ -> Emisc
+ ;;
+}
--- a/mk/bootstrap/bootstrap+Plan9-amd64.sh
+++ b/mk/bootstrap/bootstrap+Plan9-amd64.sh
@@ -18,6 +18,7 @@
echo $pwd/6/6.out -I ../sys -I . cstrconv.myr && $pwd/6/6.out -I ../sys -I . cstrconv.myr &&\
echo $pwd/6/6.out -I ../sys -I . strfind.myr && $pwd/6/6.out -I ../sys -I . strfind.myr &&\
echo $pwd/6/6.out -I ../sys -I . getint.myr && $pwd/6/6.out -I ../sys -I . getint.myr &&\
+echo $pwd/6/6.out -I ../sys -I . syswrap-ss+plan9.myr && $pwd/6/6.out -I ../sys -I . syswrap-ss+plan9.myr &&\
echo $pwd/6/6.out -I ../sys -I . syswrap+plan9.myr && $pwd/6/6.out -I ../sys -I . syswrap+plan9.myr &&\
echo $pwd/6/6.out -I ../sys -I . die.myr && $pwd/6/6.out -I ../sys -I . die.myr &&\
echo $pwd/6/6.out -I ../sys -I . sleq.myr && $pwd/6/6.out -I ../sys -I . sleq.myr &&\
@@ -26,6 +27,9 @@
echo $pwd/6/6.out -I ../sys -I . memops.myr && $pwd/6/6.out -I ../sys -I . memops.myr &&\
echo $pwd/6/6.out -I ../sys -I . threadhooks.myr && $pwd/6/6.out -I ../sys -I . threadhooks.myr &&\
echo $pwd/6/6.out -I ../sys -I . units.myr && $pwd/6/6.out -I ../sys -I . units.myr &&\
+echo $pwd/6/6.out -I ../sys -I . slfill.myr && $pwd/6/6.out -I ../sys -I . slfill.myr &&\
+echo $pwd/6/6.out -I ../sys -I . backtrace+x64.myr && $pwd/6/6.out -I ../sys -I . backtrace+x64.myr &&\
+echo $pwd/6/6.out -I ../sys -I . bytealloc.myr && $pwd/6/6.out -I ../sys -I . bytealloc.myr &&\
echo $pwd/6/6.out -I ../sys -I . alloc.myr && $pwd/6/6.out -I ../sys -I . alloc.myr &&\
echo $pwd/6/6.out -I ../sys -I . consts.myr && $pwd/6/6.out -I ../sys -I . consts.myr &&\
echo $pwd/6/6.out -I ../sys -I . chartype.myr && $pwd/6/6.out -I ../sys -I . chartype.myr &&\
@@ -34,7 +38,6 @@
echo $pwd/6/6.out -I ../sys -I . hasprefix.myr && $pwd/6/6.out -I ../sys -I . hasprefix.myr &&\
echo $pwd/6/6.out -I ../sys -I . slcp.myr && $pwd/6/6.out -I ../sys -I . slcp.myr &&\
echo $pwd/6/6.out -I ../sys -I . sldup.myr && $pwd/6/6.out -I ../sys -I . sldup.myr &&\
-echo $pwd/6/6.out -I ../sys -I . slfill.myr && $pwd/6/6.out -I ../sys -I . slfill.myr &&\
echo $pwd/6/6.out -I ../sys -I . slpush.myr && $pwd/6/6.out -I ../sys -I . slpush.myr &&\
echo $pwd/6/6.out -I ../sys -I . striter.myr && $pwd/6/6.out -I ../sys -I . striter.myr &&\
echo $pwd/6/6.out -I ../sys -I . bigint.myr && $pwd/6/6.out -I ../sys -I . bigint.myr &&\
@@ -46,13 +49,15 @@
echo $pwd/6/6.out -I ../sys -I . intparse.myr && $pwd/6/6.out -I ../sys -I . intparse.myr &&\
echo $pwd/6/6.out -I ../sys -I . introspect.myr && $pwd/6/6.out -I ../sys -I . introspect.myr &&\
echo $pwd/6/6.out -I ../sys -I . strsplit.myr && $pwd/6/6.out -I ../sys -I . strsplit.myr &&\
-echo $pwd/6/6.out -I ../sys -I . syswrap-ss+plan9.myr && $pwd/6/6.out -I ../sys -I . syswrap-ss+plan9.myr &&\
echo $pwd/6/6.out -I ../sys -I . varargs.myr && $pwd/6/6.out -I ../sys -I . varargs.myr &&\
echo $pwd/6/6.out -I ../sys -I . writeall.myr && $pwd/6/6.out -I ../sys -I . writeall.myr &&\
echo $pwd/6/6.out -I ../sys -I . fmt.myr && $pwd/6/6.out -I ../sys -I . fmt.myr &&\
echo $pwd/6/6.out -I ../sys -I . assert.myr && $pwd/6/6.out -I ../sys -I . assert.myr &&\
+echo $pwd/6/6.out -I ../sys -I . mk.myr && $pwd/6/6.out -I ../sys -I . mk.myr &&\
echo $pwd/6/6.out -I ../sys -I . now.myr && $pwd/6/6.out -I ../sys -I . now.myr &&\
+echo $pwd/6/6.out -I ../sys -I . putint.myr && $pwd/6/6.out -I ../sys -I . putint.myr &&\
echo $pwd/6/6.out -I ../sys -I . rand.myr && $pwd/6/6.out -I ../sys -I . rand.myr &&\
+echo 6a -o getbp.6 getbp+plan9-x64.s && 6a -o getbp.6 getbp+plan9-x64.s &&\
echo $pwd/6/6.out -I ../sys -I . sljoin.myr && $pwd/6/6.out -I ../sys -I . sljoin.myr &&\
echo $pwd/6/6.out -I ../sys -I . readall.myr && $pwd/6/6.out -I ../sys -I . readall.myr &&\
echo $pwd/6/6.out -I ../sys -I . slurp.myr && $pwd/6/6.out -I ../sys -I . slurp.myr &&\
@@ -70,12 +75,11 @@
echo $pwd/6/6.out -I ../sys -I . clear.myr && $pwd/6/6.out -I ../sys -I . clear.myr &&\
echo $pwd/6/6.out -I ../sys -I . wait+plan9.myr && $pwd/6/6.out -I ../sys -I . wait+plan9.myr &&\
echo $pwd/6/6.out -I ../sys -I . strjoin.myr && $pwd/6/6.out -I ../sys -I . strjoin.myr &&\
-echo $pwd/6/6.out -I ../sys -I . mk.myr && $pwd/6/6.out -I ../sys -I . mk.myr &&\
echo $pwd/6/6.out -I ../sys -I . pathjoin.myr && $pwd/6/6.out -I ../sys -I . pathjoin.myr &&\
echo $pwd/6/6.out -I ../sys -I . mktemp.myr && $pwd/6/6.out -I ../sys -I . mktemp.myr &&\
+echo $pwd/6/6.out -I ../sys -I . chomp.myr && $pwd/6/6.out -I ../sys -I . chomp.myr &&\
echo 6a -o memops-impl.6 memops-impl+plan9-x64.s && 6a -o memops-impl.6 memops-impl+plan9-x64.s &&\
echo $pwd/6/6.out -I ../sys -I . fndup.myr && $pwd/6/6.out -I ../sys -I . fndup.myr &&\
-echo $pwd/6/6.out -I ../sys -I . putint.myr && $pwd/6/6.out -I ../sys -I . putint.myr &&\
echo $pwd/6/6.out -I ../sys -I . mkpath.myr && $pwd/6/6.out -I ../sys -I . mkpath.myr &&\
echo $pwd/6/6.out -I ../sys -I . resolve+plan9.myr && $pwd/6/6.out -I ../sys -I . resolve+plan9.myr &&\
echo $pwd/6/6.out -I ../sys -I . slpop.myr && $pwd/6/6.out -I ../sys -I . slpop.myr &&\
@@ -82,6 +86,7 @@
echo 6a -o sjlj-impl.6 sjlj-impl+plan9-x64.s && 6a -o sjlj-impl.6 sjlj-impl+plan9-x64.s &&\
echo $pwd/6/6.out -I ../sys -I . bitset.myr && $pwd/6/6.out -I ../sys -I . bitset.myr &&\
echo $pwd/6/6.out -I ../sys -I . fmtfuncs.myr && $pwd/6/6.out -I ../sys -I . fmtfuncs.myr &&\
+echo $pwd/6/6.out -I ../sys -I . sleep.myr && $pwd/6/6.out -I ../sys -I . sleep.myr &&\
echo $pwd/6/6.out -I ../sys -I . strstrip.myr && $pwd/6/6.out -I ../sys -I . strstrip.myr &&\
echo $pwd/6/6.out -I ../sys -I . try.myr && $pwd/6/6.out -I ../sys -I . try.myr &&\
echo $pwd/6/6.out -I ../sys -I . sort.myr && $pwd/6/6.out -I ../sys -I . sort.myr &&\
@@ -91,8 +96,8 @@
echo $pwd/6/6.out -I ../sys -I . swap.myr && $pwd/6/6.out -I ../sys -I . swap.myr &&\
echo $pwd/6/6.out -I ../sys -I . sjlj.myr && $pwd/6/6.out -I ../sys -I . sjlj.myr &&\
echo $pwd/6/6.out -I ../sys -I . dial+plan9.myr && $pwd/6/6.out -I ../sys -I . dial+plan9.myr &&\
-echo $pwd/muse/6.out -o libstd.use -p std fmtfuncs.use fmt.use try.use pathjoin.use strjoin.use dir.use syswrap-ss.use sljoin.use slpush.use strstrip.use htab.use now.use getcwd.use rand.use env.use slurp.use varargs.use strbuf.use clear.use slput.use strsplit.use introspect.use resolve.use mktemp.use alloc.use optparse.use memops.use fltbits.use striter.use sldup.use fltfmt.use extremum.use option.use slcp.use writeall.use putint.use consts.use readall.use sort.use blat.use diriter.use sjlj.use mk.use errno.use hassuffix.use execvp.use swap.use ipparse.use types.use slpop.use strfind.use utf.use cstrconv.use search.use die.use units.use wait.use result.use bitset.use intparse.use hasprefix.use mkpath.use getint.use syswrap.use dirname.use sleq.use endian.use iterutil.use spork.use dial.use assert.use cmp.use chartype.use bigint.use hashfuncs.use slfill.use threadhooks.use fndup.use && $pwd/muse/6.out -o libstd.use -p std fmtfuncs.use fmt.use try.use pathjoin.use strjoin.use dir.use syswrap-ss.use sljoin.use slpush.use strstrip.use htab.use now.use getcwd.use rand.use env.use slurp.use varargs.use strbuf.use clear.use slput.use strsplit.use introspect.use resolve.use mktemp.use alloc.use optparse.use memops.use fltbits.use striter.use sldup.use fltfmt.use extremum.use option.use slcp.use writeall.use putint.use consts.use readall.use sort.use blat.use diriter.use sjlj.use mk.use errno.use hassuffix.use execvp.use swap.use ipparse.use types.use slpop.use strfind.use utf.use cstrconv.use search.use die.use units.use wait.use result.use bitset.use intparse.use hasprefix.use mkpath.use getint.use syswrap.use dirname.use sleq.use endian.use iterutil.use spork.use dial.use assert.use cmp.use chartype.use bigint.use hashfuncs.use slfill.use threadhooks.use fndup.use &&\
-echo ar vu libstd.a fmtfuncs.6 fmt.6 try.6 pathjoin.6 strjoin.6 dir.6 syswrap-ss.6 sljoin.6 slpush.6 strstrip.6 htab.6 now.6 getcwd.6 rand.6 env.6 slurp.6 varargs.6 strbuf.6 clear.6 slput.6 sjlj-impl.6 strsplit.6 introspect.6 resolve.6 mktemp.6 alloc.6 optparse.6 memops.6 fltbits.6 striter.6 sldup.6 fltfmt.6 extremum.6 option.6 slcp.6 writeall.6 putint.6 consts.6 readall.6 sort.6 blat.6 diriter.6 sjlj.6 mk.6 errno.6 hassuffix.6 execvp.6 swap.6 ipparse.6 types.6 slpop.6 strfind.6 utf.6 cstrconv.6 search.6 die.6 units.6 wait.6 result.6 bitset.6 intparse.6 hasprefix.6 mkpath.6 getint.6 syswrap.6 dirname.6 sleq.6 endian.6 iterutil.6 spork.6 dial.6 assert.6 cmp.6 chartype.6 memops-impl.6 bigint.6 hashfuncs.6 slfill.6 threadhooks.6 fndup.6 && ar vu libstd.a fmtfuncs.6 fmt.6 try.6 pathjoin.6 strjoin.6 dir.6 syswrap-ss.6 sljoin.6 slpush.6 strstrip.6 htab.6 now.6 getcwd.6 rand.6 env.6 slurp.6 varargs.6 strbuf.6 clear.6 slput.6 sjlj-impl.6 strsplit.6 introspect.6 resolve.6 mktemp.6 alloc.6 optparse.6 memops.6 fltbits.6 striter.6 sldup.6 fltfmt.6 extremum.6 option.6 slcp.6 writeall.6 putint.6 consts.6 readall.6 sort.6 blat.6 diriter.6 sjlj.6 mk.6 errno.6 hassuffix.6 execvp.6 swap.6 ipparse.6 types.6 slpop.6 strfind.6 utf.6 cstrconv.6 search.6 die.6 units.6 wait.6 result.6 bitset.6 intparse.6 hasprefix.6 mkpath.6 getint.6 syswrap.6 dirname.6 sleq.6 endian.6 iterutil.6 spork.6 dial.6 assert.6 cmp.6 chartype.6 memops-impl.6 bigint.6 hashfuncs.6 slfill.6 threadhooks.6 fndup.6 &&\
+echo $pwd/muse/6.out -o libstd.use -p std fmtfuncs.use fmt.use try.use pathjoin.use strjoin.use dir.use syswrap-ss.use sljoin.use slpush.use strstrip.use htab.use now.use getcwd.use rand.use env.use slurp.use varargs.use strbuf.use clear.use slput.use strsplit.use introspect.use resolve.use mktemp.use alloc.use optparse.use memops.use bytealloc.use fltbits.use striter.use sldup.use fltfmt.use extremum.use option.use slcp.use writeall.use putint.use consts.use sleep.use readall.use sort.use blat.use diriter.use sjlj.use backtrace.use mk.use errno.use hassuffix.use execvp.use swap.use ipparse.use types.use slpop.use strfind.use utf.use cstrconv.use search.use die.use units.use wait.use result.use bitset.use intparse.use hasprefix.use mkpath.use getint.use syswrap.use dirname.use sleq.use endian.use iterutil.use spork.use dial.use assert.use cmp.use chartype.use bigint.use threadhooks.use slfill.use hashfuncs.use fndup.use chomp.use && $pwd/muse/6.out -o libstd.use -p std fmtfuncs.use fmt.use try.use pathjoin.use strjoin.use dir.use syswrap-ss.use sljoin.use slpush.use strstrip.use htab.use now.use getcwd.use rand.use env.use slurp.use varargs.use strbuf.use clear.use slput.use strsplit.use introspect.use resolve.use mktemp.use alloc.use optparse.use memops.use bytealloc.use fltbits.use striter.use sldup.use fltfmt.use extremum.use option.use slcp.use writeall.use putint.use consts.use sleep.use readall.use sort.use blat.use diriter.use sjlj.use backtrace.use mk.use errno.use hassuffix.use execvp.use swap.use ipparse.use types.use slpop.use strfind.use utf.use cstrconv.use search.use die.use units.use wait.use result.use bitset.use intparse.use hasprefix.use mkpath.use getint.use syswrap.use dirname.use sleq.use endian.use iterutil.use spork.use dial.use assert.use cmp.use chartype.use bigint.use threadhooks.use slfill.use hashfuncs.use fndup.use chomp.use &&\
+echo ar vu libstd.a fmtfuncs.6 fmt.6 try.6 getbp.6 pathjoin.6 strjoin.6 dir.6 syswrap-ss.6 sljoin.6 slpush.6 strstrip.6 htab.6 now.6 getcwd.6 rand.6 env.6 slurp.6 varargs.6 strbuf.6 clear.6 slput.6 sjlj-impl.6 strsplit.6 introspect.6 resolve.6 mktemp.6 alloc.6 optparse.6 memops.6 bytealloc.6 fltbits.6 striter.6 sldup.6 fltfmt.6 extremum.6 option.6 slcp.6 writeall.6 putint.6 consts.6 sleep.6 readall.6 sort.6 blat.6 diriter.6 sjlj.6 backtrace.6 mk.6 errno.6 hassuffix.6 execvp.6 swap.6 ipparse.6 types.6 slpop.6 strfind.6 utf.6 cstrconv.6 search.6 die.6 units.6 wait.6 result.6 bitset.6 intparse.6 hasprefix.6 mkpath.6 getint.6 syswrap.6 dirname.6 sleq.6 endian.6 iterutil.6 spork.6 dial.6 assert.6 cmp.6 chartype.6 memops-impl.6 bigint.6 threadhooks.6 slfill.6 hashfuncs.6 fndup.6 chomp.6 && ar vu libstd.a fmtfuncs.6 fmt.6 try.6 getbp.6 pathjoin.6 strjoin.6 dir.6 syswrap-ss.6 sljoin.6 slpush.6 strstrip.6 htab.6 now.6 getcwd.6 rand.6 env.6 slurp.6 varargs.6 strbuf.6 clear.6 slput.6 sjlj-impl.6 strsplit.6 introspect.6 resolve.6 mktemp.6 alloc.6 optparse.6 memops.6 bytealloc.6 fltbits.6 striter.6 sldup.6 fltfmt.6 extremum.6 option.6 slcp.6 writeall.6 putint.6 consts.6 sleep.6 readall.6 sort.6 blat.6 diriter.6 sjlj.6 backtrace.6 mk.6 errno.6 hassuffix.6 execvp.6 swap.6 ipparse.6 types.6 slpop.6 strfind.6 utf.6 cstrconv.6 search.6 die.6 units.6 wait.6 result.6 bitset.6 intparse.6 hasprefix.6 mkpath.6 getint.6 syswrap.6 dirname.6 sleq.6 endian.6 iterutil.6 spork.6 dial.6 assert.6 cmp.6 chartype.6 memops-impl.6 bigint.6 threadhooks.6 slfill.6 hashfuncs.6 fndup.6 chomp.6 &&\
echo cd $pwd/lib/regex && cd $pwd/lib/regex &&\
echo $pwd/6/6.out -I ../std -I ../sys types.myr && $pwd/6/6.out -I ../std -I ../sys types.myr &&\
echo $pwd/6/6.out -I ../std -I ../sys interp.myr && $pwd/6/6.out -I ../std -I ../sys interp.myr &&\