shithub: mc

Download patch

ref: bccb73dc9a1d19bf472c9ce776cc6ee76cef05d5
parent: 8ecdf73fad606722a6f2c05f53ad619c21bf84de
author: Ori Bernstein <ori@eigenstate.org>
date: Sun Feb 28 12:47:39 EST 2016

Plan 9 build should now work.

--- a/6/gen.c
+++ b/6/gen.c
@@ -139,7 +139,6 @@
 			p += bprintf(p, end - p, "_tydesc$%s%s%s$%d", ns, sep, ty->name->name.name, ty->tid);
 		for (i = 0; i < ty->narg; i++)
 			p += tyidfmt(p, end - p, ty->arg[i]);
-		bprintf(p, end - p, "/* %zd */", ty->tid);
 	} else {
 		if (file->file.globls->name) {
 			ns = file->file.globls->name;
--- a/6/mkfile
+++ b/6/mkfile
@@ -18,7 +18,7 @@
 	peep.$O\
 	typeinfo.$O\
 
-LIB=../parse/libparse.a ../mi/libmi.a
+LIB=../util/libutil.a ../parse/libparse.a ../mi/libmi.a
 
 HFILES=asm.h ../parse/parse.h ../mi/mi.h ../config.h insns.def regs.def
 
--- a/6/typeinfo.c
+++ b/6/typeinfo.c
@@ -104,7 +104,7 @@
 	char buf[512];
 	uint8_t tt;
 	Node *len;
-	int isintern;
+	int isextern;
 
 	sub = NULL;
 	nsub = 0;
@@ -181,10 +181,10 @@
 	case Tyname:
 		i = bprintf(buf, sizeof buf, "%s", Symprefix);
 		tydescid(buf + i, sizeof buf - i, ty);
-		isintern = 0;
-		if (types[i]->isreflect && (!types[i]->isimport || types[i]->ishidden))
-			isintern = 1;
-		lappend(&sub, &nsub, mkblobref(buf, 0, isintern));
+		if (!strcmp("_tydesc$sys$size", buf))
+			printf("vis: %d\n", ty->vis);
+		isextern = ty->isimport || ty->vis != Visintern;
+		lappend(&sub, &nsub, mkblobref(buf, 0, isextern));
 		break;
 	}
 	b = mkblobseq(sub, nsub);
--- a/mk/bootstrap/bootstrap+Plan9-amd64.sh
+++ b/mk/bootstrap/bootstrap+Plan9-amd64.sh
@@ -19,7 +19,6 @@
 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 . 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 . striter.myr ;	$pwd/6/6.out	-I ../sys -I . striter.myr 
 echo 	$pwd/6/6.out	-I ../sys -I . sleq.myr ;	$pwd/6/6.out	-I ../sys -I . sleq.myr 
 echo 	$pwd/6/6.out	-I ../sys -I . hassuffix.myr ;	$pwd/6/6.out	-I ../sys -I . hassuffix.myr 
 echo 	$pwd/6/6.out	-I ../sys -I . extremum.myr ;	$pwd/6/6.out	-I ../sys -I . extremum.myr 
@@ -26,6 +25,7 @@
 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 . memops.myr ;	$pwd/6/6.out	-I ../sys -I . memops.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 
 echo 	$pwd/6/6.out	-I ../sys -I . utf.myr ;	$pwd/6/6.out	-I ../sys -I . utf.myr 
 echo 	$pwd/6/6.out	-I ../sys -I . cmp.myr ;	$pwd/6/6.out	-I ../sys -I . cmp.myr 
@@ -34,6 +34,7 @@
 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 
 echo 	$pwd/6/6.out	-I ../sys -I . fltbits.myr ;	$pwd/6/6.out	-I ../sys -I . fltbits.myr 
 echo 	$pwd/6/6.out	-I ../sys -I . strbuf.myr ;	$pwd/6/6.out	-I ../sys -I . strbuf.myr 
@@ -40,11 +41,12 @@
 echo 	$pwd/6/6.out	-I ../sys -I . fltfmt.myr ;	$pwd/6/6.out	-I ../sys -I . fltfmt.myr 
 echo 	$pwd/6/6.out	-I ../sys -I . hashfuncs.myr ;	$pwd/6/6.out	-I ../sys -I . hashfuncs.myr 
 echo 	$pwd/6/6.out	-I ../sys -I . htab.myr ;	$pwd/6/6.out	-I ../sys -I . htab.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 . 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 . now.myr ;	$pwd/6/6.out	-I ../sys -I . now.myr 
@@ -53,7 +55,9 @@
 echo 	$pwd/6/6.out	-I ../sys -I . slurp.myr ;	$pwd/6/6.out	-I ../sys -I . slurp.myr 
 echo 	$pwd/6/6.out	-I ../sys -I . dirname.myr ;	$pwd/6/6.out	-I ../sys -I . dirname.myr 
 echo 	$pwd/6/6.out	-I ../sys -I . optparse.myr ;	$pwd/6/6.out	-I ../sys -I . optparse.myr 
+echo 	$pwd/6/6.out	-I ../sys -I . dir+plan9.myr ;	$pwd/6/6.out	-I ../sys -I . dir+plan9.myr 
 echo 	$pwd/6/6.out	-I ../sys -I . ipparse.myr ;	$pwd/6/6.out	-I ../sys -I . ipparse.myr 
+echo 	$pwd/6/6.out	-I ../sys -I . iterutil.myr ;	$pwd/6/6.out	-I ../sys -I . iterutil.myr 
 echo 	$pwd/6/6.out	-I ../sys -I . env+plan9.myr ;	$pwd/6/6.out	-I ../sys -I . env+plan9.myr 
 echo 	$pwd/6/6.out	-I ../sys -I . execvp.myr ;	$pwd/6/6.out	-I ../sys -I . execvp.myr 
 echo 	$pwd/6/6.out	-I ../sys -I . slput.myr ;	$pwd/6/6.out	-I ../sys -I . slput.myr 
@@ -60,17 +64,17 @@
 echo 	$pwd/6/6.out	-I ../sys -I . spork.myr ;	$pwd/6/6.out	-I ../sys -I . spork.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 . blat.myr ;	$pwd/6/6.out	-I ../sys -I . blat.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 . writeall.myr ;	$pwd/6/6.out	-I ../sys -I . writeall.myr 
+echo 	$pwd/6/6.out	-I ../sys -I . diriter.myr ;	$pwd/6/6.out	-I ../sys -I . diriter.myr 
 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 . 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 . pathjoin.myr ;	$pwd/6/6.out	-I ../sys -I . pathjoin.myr 
 echo 	$pwd/6/6.out	-I ../sys -I . slpop.myr ;	$pwd/6/6.out	-I ../sys -I . slpop.myr 
 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 
@@ -83,8 +87,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 . dial+plan9.myr ;	$pwd/6/6.out	-I ../sys -I . dial+plan9.myr 
 echo 	6a	-o memops-impl.6 memops-impl+plan9-x64.s ;	6a	-o memops-impl.6 memops-impl+plan9-x64.s 
-echo 	$pwd/muse/6.out	-o std fmtfuncs.use fmt.use try.use pathjoin.use strjoin.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 alloc.use optparse.use memops.use fltbits.use sldup.use fltfmt.use extremum.use option.use slcp.use writeall.use putint.use sort.use blat.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 spork.use dial.use assert.use cmp.use chartype.use bigint.use hashfuncs.use slfill.use fndup.use ;	$pwd/muse/6.out	-o std fmtfuncs.use fmt.use try.use pathjoin.use strjoin.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 alloc.use optparse.use memops.use fltbits.use sldup.use fltfmt.use extremum.use option.use slcp.use writeall.use putint.use sort.use blat.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 spork.use dial.use assert.use cmp.use chartype.use bigint.use striter.use hashfuncs.use slfill.use fndup.use mktemp.use
-echo 	ar	vu libstd.a fmtfuncs.6 fmt.6 try.6 pathjoin.6 strjoin.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 strsplit.6 introspect.6 resolve.6 alloc.6 optparse.6 memops.6 fltbits.6 sldup.6 fltfmt.6 extremum.6 option.6 slcp.6 writeall.6 putint.6 sort.6 blat.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 spork.6 dial.6 assert.6 cmp.6 chartype.6 memops-impl.6 bigint.6 hashfuncs.6 slfill.6 fndup.6 ;	ar	vu libstd.a fmtfuncs.6 fmt.6 try.6 pathjoin.6 strjoin.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 strsplit.6 introspect.6 resolve.6 alloc.6 optparse.6 memops.6 fltbits.6 sldup.6 fltfmt.6 extremum.6 option.6 slcp.6 writeall.6 putint.6 sort.6 blat.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 spork.6 dial.6 assert.6 cmp.6 chartype.6 memops-impl.6 bigint.6 hashfuncs.6 slfill.6 fndup.6 mktemp.6 striter.6
+echo 	$pwd/muse/6.out	-o 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 sort.use blat.use diriter.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 fndup.use ;	$pwd/muse/6.out	-o 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 sort.use blat.use diriter.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 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 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 sort.6 blat.6 diriter.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 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 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 sort.6 blat.6 diriter.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 fndup.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 
@@ -95,9 +99,10 @@
 echo 	cd $pwd/lib/bio;	cd $pwd/lib/bio
 echo 	$pwd/6/6.out	-I ../sys -I ../std bio.myr ;	$pwd/6/6.out	-I ../sys -I ../std bio.myr 
 echo 	$pwd/6/6.out	-I ../sys -I ../std puti.myr ;	$pwd/6/6.out	-I ../sys -I ../std puti.myr 
+echo 	$pwd/6/6.out	-I ../sys -I ../std iter.myr ;	$pwd/6/6.out	-I ../sys -I ../std iter.myr 
 echo 	$pwd/6/6.out	-I ../sys -I ../std geti.myr ;	$pwd/6/6.out	-I ../sys -I ../std geti.myr 
-echo 	$pwd/muse/6.out	-o bio puti.use bio.use geti.use ;	$pwd/muse/6.out	-o bio puti.use bio.use geti.use 
-echo 	ar	vu libbio.a puti.6 bio.6 geti.6 ;	ar	vu libbio.a puti.6 bio.6 geti.6 
+echo 	$pwd/muse/6.out	-o bio puti.use bio.use geti.use iter.use ;	$pwd/muse/6.out	-o bio puti.use bio.use geti.use iter.use 
+echo 	ar	vu libbio.a puti.6 bio.6 geti.6 iter.6 ;	ar	vu libbio.a puti.6 bio.6 geti.6 iter.6 
 echo 	cd $pwd/mbld;	cd $pwd/mbld
 echo 	$pwd/6/6.out	-I ../lib/regex -I ../lib/bio -I ../lib/std -I ../lib/sys config+plan9-x64.myr ;	$pwd/6/6.out	-I ../lib/regex -I ../lib/bio -I ../lib/std -I ../lib/sys config+plan9-x64.myr 
 echo 	$pwd/6/6.out	-I ../lib/regex -I ../lib/bio -I ../lib/std -I ../lib/sys opts.myr ;	$pwd/6/6.out	-I ../lib/regex -I ../lib/bio -I ../lib/std -I ../lib/sys opts.myr 
--- a/muse/mkfile
+++ b/muse/mkfile
@@ -7,7 +7,7 @@
 OFILES=\
 	muse.$O\
 
-LIB=../parse/libparse.a
+LIB=../parse/libparse.a ../util/libutil.a
 
 BIN=/$objtype/bin
 </sys/src/cmd/mkone
--- a/parse/mkfile
+++ b/parse/mkfile
@@ -6,7 +6,9 @@
 LIB=libparse.a
 OFILES= \
 	dump.$O \
-	fold.$O\
+	err.$O \
+	export.$O \
+	fold.$O \
 	gram.$O \
 	infer.$O \
 	names.$O \
--- /dev/null
+++ b/util/mkfile
@@ -1,0 +1,20 @@
+</$objtype/mkfile
+CC=pcc
+LD=pcc
+CFLAGS=-c -D_POSIX_SOURCE -D_SUSV2_SOURCE -D_C99_SNPRINTF_EXTENSION
+
+LIB=libutil.a
+OFILES= \
+	alloc.$O \
+	bitset.$O \
+	htab.$O \
+	pack.$O \
+	util.$O \
+
+</sys/src/cmd/mklib
+
+install:V: $LIB
+	touch $LIB
+
+uninstall:V:
+	echo nothing to uninstall