shithub: riscv

Download patch

ref: 2c596d0021299bdeb05bb92866c150b8e43977e9
parent: 21831527cb77e6b4892e0fcd08bbc7a31f8d9098
parent: 3a79916c9be2d524b392c1a87a4685ceca603831
author: Ori Bernstein <[email protected]>
date: Sun Apr 19 05:03:35 EDT 2020

merge

--- a/lib/ken
+++ b/lib/ken
@@ -38,3 +38,7 @@
 I just hate to be pushed around by some @#$%^& machine.
 So, if you put a G on the front you have to put a zero on the back?
 No.
+thanks.
+It does everything Unix does only less reliably.
+I imagine people programmed in Fortran for the same reason they took three-legged races.
+rob, you shouldn't have shut down this discussion.
--- a/lib/rob
+++ b/lib/rob
@@ -396,3 +396,5 @@
 Code can move.
 You might find blog.golang.org/constants helpful.
 Over time, everything gets better but also worse and always bigger and more complex.
+Nice to see Egreg again.
+It wasn't my intention.
--- a/lib/rsc
+++ b/lib/rsc
@@ -245,3 +245,4 @@
 I needed that last week.
 I have a new blog post you might be interested in.
 Ever since I wrote “go get,” we on the core Go team hoped the community would take care of dependency management.
+This past winter, as a side project, I spent some time getting up to speed on suffix array construction algorithms and rewrote index/suffixarray's New implementation (that is, the index builder) to run 3-10X faster in half the memory of the old one.
--- a/lib/theo
+++ b/lib/theo
@@ -914,3 +914,13 @@
 I doubt it.
 Well, I disagree.
 I don't believe any of this.
+Not all tools are for everyone.
+So a javascript exploit in your browser can perform a rm -rf.
+Fine.
+If you dont like our software, please dont use it.
+In your opinion.
+If you don't like what it does, don't use it.
+The bullshit foaming out of your mouth is astounding.
+PLEASE STOP USING OPENBSD IMMEDIATELY
+Look, you are wrong.
+No. It ends here.
--- a/sys/games/lib/fortunes
+++ b/sys/games/lib/fortunes
@@ -5250,3 +5250,6 @@
 Having a public mailing list is an invitation for discussion amongst likeminded individuals, not elitist fuckery. -- Steve Stallion, talking about 9fans
 [9fans] ..... UNSUBSCRIBE_HELP NEEDED
 Open source may not be safe if it has no super excellent moderator.
+On the Internet, we are all Poland. -- Michael Hayden
+By the way, BBCNews site makes corrupt the browser. -- Kenji
+As much as I'd love to I feel I have to let it go -- rminnich
--- a/sys/src/cmd/1c/list.c
+++ b/sys/src/cmd/1c/list.c
@@ -16,25 +16,19 @@
 int
 Bconv(Fmt *fp)
 {
-	char str[STRINGSZ], ss[STRINGSZ], *s;
 	Bits bits;
 	int i;
 
-	memset(str, 0, sizeof str);
 	bits = va_arg(fp->args, Bits);
 	while(bany(&bits)) {
 		i = bnum(bits);
-		if(str[0])
-			strncat(str, " ", sizeof str - 1);
-		if(var[i].sym == S) {
-			snprint(ss, sizeof ss, "$%ld", var[i].offset);
-			s = ss;
-		} else
-			s = var[i].sym->name;
-		strncat(str, s, sizeof str - 1);
 		bits.b[i/32] &= ~(1L << (i%32));
+		if(var[i].sym == S)
+			fmtprint(fp, "$%ld ", var[i].offset);
+		else
+			fmtprint(fp, "%s ", var[i].sym->name);
 	}
-	return fmtstrcpy(fp, str);
+	return 0;
 }
 
 int
--- a/sys/src/cmd/2c/list.c
+++ b/sys/src/cmd/2c/list.c
@@ -27,25 +27,19 @@
 int
 Bconv(Fmt *fp)
 {
-	char str[STRINGSZ], ss[STRINGSZ], *s;
 	Bits bits;
 	int i;
 
-	memset(str, 0, sizeof str);
 	bits = va_arg(fp->args, Bits);
 	while(bany(&bits)) {
 		i = bnum(bits);
-		if(str[0])
-			strncat(str, " ", sizeof str - 1);
-		if(var[i].sym == S) {
-			snprint(ss, sizeof ss, "$%ld", var[i].offset);
-			s = ss;
-		} else
-			s = var[i].sym->name;
-		strncat(str, s, sizeof str - 1);
 		bits.b[i/32] &= ~(1L << (i%32));
+		if(var[i].sym == S)
+			fmtprint(fp, "$%ld ", var[i].offset);
+		else
+			fmtprint(fp, "%s ", var[i].sym->name);
 	}
-	return fmtstrcpy(fp, str);
+	return 0;
 }
 
 int
--- a/sys/src/cmd/5c/list.c
+++ b/sys/src/cmd/5c/list.c
@@ -17,25 +17,19 @@
 int
 Bconv(Fmt *fp)
 {
-	char str[STRINGSZ], ss[STRINGSZ], *s;
 	Bits bits;
 	int i;
 
-	memset(str, 0, sizeof str);
 	bits = va_arg(fp->args, Bits);
 	while(bany(&bits)) {
 		i = bnum(bits);
-		if(str[0])
-			strncat(str, " ", sizeof str - 1);
-		if(var[i].sym == S) {
-			snprint(ss, sizeof ss, "$%ld", var[i].offset);
-			s = ss;
-		} else
-			s = var[i].sym->name;
-		strncat(str, s, sizeof str - 1);
 		bits.b[i/32] &= ~(1L << (i%32));
+		if(var[i].sym == S)
+			fmtprint(fp, "$%ld ", var[i].offset);
+		else
+			fmtprint(fp, "%s ", var[i].sym->name);
 	}
-	return fmtstrcpy(fp, str);
+	return 0;
 }
 
 char *extra [] = {
@@ -195,12 +189,10 @@
 int
 Rconv(Fmt *fp)
 {
-	char str[STRINGSZ];
 	Adr *a;
 	int i, v;
 
 	a = va_arg(fp->args, Adr*);
-	snprint(str, sizeof str, "GOK-reglist");
 	switch(a->type) {
 	case D_CONST:
 		if(a->reg != NREG)
@@ -208,19 +200,14 @@
 		if(a->sym != S)
 			break;
 		v = a->offset;
-		memset(str, 0, sizeof str);
+		fmtprint(fp, "[");
 		for(i=0; i<NREG; i++) {
-			if(v & (1<<i)) {
-				if(str[0] == 0)
-					strncat(str, "[R", sizeof str - 1);
-				else
-					strncat(str, ",R", sizeof str - 1);
-				snprint(str+strlen(str), sizeof(str)-strlen(str), "%d", i);
-			}
+			if(v & (1<<i))
+				fmtprint(fp, "R%d,", i);
 		}
-		strncat(str, "]", sizeof str - 1);
+		fmtprint(fp, "]");
 	}
-	return fmtstrcpy(fp, str);
+	return 0;
 }
 
 int
--- a/sys/src/cmd/6c/cgen.c
+++ b/sys/src/cmd/6c/cgen.c
@@ -824,9 +824,9 @@
 				gopcode(o, n->type, r, &nod);
 		} else {
 			/* TO DO: could do better with r->addable >= INDEXED */
-			regalloc(&nod1, r, Z);
+			regalloc(&nod1, r, nn);
 			cgen(r, &nod1);
-			regalloc(&nod, l, nn);
+			regalloc(&nod, l, Z);
 			cgen(l, &nod);
 			gopcode(o, n->type, &nod1, &nod);
 			regfree(&nod1);
--- a/sys/src/cmd/6c/list.c
+++ b/sys/src/cmd/6c/list.c
@@ -16,44 +16,36 @@
 int
 Bconv(Fmt *fp)
 {
-	char str[STRINGSZ], ss[STRINGSZ], *s;
 	Bits bits;
 	int i;
 
-	memset(str, 0, sizeof str);
 	bits = va_arg(fp->args, Bits);
 	while(bany(&bits)) {
 		i = bnum(bits);
-		if(str[0])
-			strncat(str, " ", sizeof str - 1);
-		if(var[i].sym == S) {
-			snprint(ss, sizeof ss, "$%lld", var[i].offset);
-			s = ss;
-		} else
-			s = var[i].sym->name;
-		strncat(str, s, sizeof str - 1);
 		bits.b[i/32] &= ~(1L << (i%32));
+		if(var[i].sym == S)
+			fmtprint(fp, "$%lld ", var[i].offset);
+		else
+			fmtprint(fp, "%s ", var[i].sym->name);
 	}
-	return fmtstrcpy(fp, str);
+	return 0;
 }
 
 int
 Pconv(Fmt *fp)
 {
-	char str[STRINGSZ];
 	Prog *p;
 
 	p = va_arg(fp->args, Prog*);
 	if(p->as == ADATA)
-		snprint(str, sizeof str, "	%A	%D/%d,%D",
+		return fmtprint(fp, "	%A	%D/%d,%D",
 			p->as, &p->from, p->from.scale, &p->to);
 	else if(p->as == ATEXT)
-		snprint(str, sizeof str, "	%A	%D,%d,%D",
+		return fmtprint(fp, "	%A	%D,%d,%D",
 			p->as, &p->from, p->from.scale, &p->to);
 	else
-		snprint(str, sizeof str, "	%A	%D,%D",
+		return fmtprint(fp, "	%A	%D,%D",
 			p->as, &p->from, &p->to);
-	return fmtstrcpy(fp, str);
 }
 
 int
@@ -274,16 +266,13 @@
 int
 Rconv(Fmt *fp)
 {
-	char str[20];
 	int r;
 
 	r = va_arg(fp->args, int);
 	if(r >= D_AL && r <= D_NONE)
-		snprint(str, sizeof str, "%s", regstr[r-D_AL]);
+		return fmtprint(fp, "%s", regstr[r-D_AL]);
 	else
-		snprint(str, sizeof str, "gok(%d)", r);
-
-	return fmtstrcpy(fp, str);
+		return fmtprint(fp, "gok(%d)", r);
 }
 
 int
--- a/sys/src/cmd/8c/list.c
+++ b/sys/src/cmd/8c/list.c
@@ -16,25 +16,19 @@
 int
 Bconv(Fmt *fp)
 {
-	char str[STRINGSZ], ss[STRINGSZ], *s;
 	Bits bits;
 	int i;
 
-	memset(str, 0, sizeof str);
 	bits = va_arg(fp->args, Bits);
 	while(bany(&bits)) {
 		i = bnum(bits);
-		if(str[0])
-			strncat(str, " ", sizeof str - 1);
-		if(var[i].sym == S) {
-			snprint(ss, sizeof(ss), "$%ld", var[i].offset);
-			s = ss;
-		} else
-			s = var[i].sym->name;
-		strncat(str, s, sizeof str - 1);
 		bits.b[i/32] &= ~(1L << (i%32));
+		if(var[i].sym == S)
+			fmtprint(fp, "$%ld ", var[i].offset);
+		else
+			fmtprint(fp, "%s ", var[i].sym->name);
 	}
-	return fmtstrcpy(fp, str);
+	return 0;
 }
 
 int
--- a/sys/src/cmd/kc/list.c
+++ b/sys/src/cmd/kc/list.c
@@ -16,25 +16,19 @@
 int
 Bconv(Fmt *fp)
 {
-	char str[STRINGSZ], ss[STRINGSZ], *s;
 	Bits bits;
 	int i;
 
-	memset(str, 0, sizeof str);
 	bits = va_arg(fp->args, Bits);
 	while(bany(&bits)) {
 		i = bnum(bits);
-		if(str[0])
-			strncat(str, " ", sizeof str - 1);
-		if(var[i].sym == S) {
-			snprint(ss, sizeof ss, "$%ld", var[i].offset);
-			s = ss;
-		} else
-			s = var[i].sym->name;
-		strncat(str, s, sizeof str - 1);
 		bits.b[i/32] &= ~(1L << (i%32));
+		if(var[i].sym == S)
+			fmtprint(fp, "$%ld ", var[i].offset);
+		else
+			fmtprint(fp, "%s ", var[i].sym->name);
 	}
-	return fmtstrcpy(fp, str);
+	return 0;
 }
 
 int
--- a/sys/src/cmd/qc/list.c
+++ b/sys/src/cmd/qc/list.c
@@ -16,25 +16,19 @@
 int
 Bconv(Fmt *fp)
 {
-	char str[STRINGSZ], ss[STRINGSZ], *s;
 	Bits bits;
 	int i;
 
-	memset(str, 0, sizeof str);
 	bits = va_arg(fp->args, Bits);
 	while(bany(&bits)) {
 		i = bnum(bits);
-		if(str[0])
-			strncat(str, " ", sizeof str - 1);
-		if(var[i].sym == S) {
-			snprint(ss, sizeof ss, "$%ld", var[i].offset);
-			s = ss;
-		} else
-			s = var[i].sym->name;
-		strncat(str, s, sizeof str - 1);
 		bits.b[i/32] &= ~(1L << (i%32));
+		if(var[i].sym == S)
+			fmtprint(fp, "$%ld ", var[i].offset);
+		else
+			fmtprint(fp, "%s ", var[i].sym->name);
 	}
-	return fmtstrcpy(fp, str);
+	return 0;
 }
 
 int
--- a/sys/src/cmd/vc/list.c
+++ b/sys/src/cmd/vc/list.c
@@ -15,25 +15,19 @@
 int
 Bconv(Fmt *fp)
 {
-	char str[STRINGSZ], ss[STRINGSZ], *s;
 	Bits bits;
 	int i;
 
-	memset(str, 0, sizeof str);
 	bits = va_arg(fp->args, Bits);
 	while(bany(&bits)) {
 		i = bnum(bits);
-		if(str[0])
-			strncat(str, " ", sizeof str - 1);
-		if(var[i].sym == S) {
-			snprint(ss, sizeof ss, "$%ld", var[i].offset);
-			s = ss;
-		} else
-			s = var[i].sym->name;
-		strncat(str, s, sizeof str - 1);
 		bits.b[i/32] &= ~(1L << (i%32));
+		if(var[i].sym == S)
+			fmtprint(fp, "$%ld ", var[i].offset);
+		else
+			fmtprint(fp, "%s ", var[i].sym->name);
 	}
-	return fmtstrcpy(fp, str);
+	return 0;
 }
 
 int
--- a/sys/src/libmemdraw/mkfile
+++ b/sys/src/libmemdraw/mkfile
@@ -29,14 +29,8 @@
 
 </sys/src/cmd/mksyslib
 
-$O.drawtime: drawtime.$O $LIB
-	$LD -o $target $prereq
-
 $O.drawtest: drawtest.$O $LIB
 	$LD -o $target $prereq
  
 $O.arctest: arctest.$O draw.$O arc.$O $LIB
-	$LD -o $target $prereq
-
-$O.test: test.$O $LIB
 	$LD -o $target $prereq