OK, turing.

<- leave blank

Tue Jul 23 11:44:14 EDT 2024

echo "Huh?"

Mon Jul 22 19:39:56 EDT 2024
struct Buf{
	void *aux;
	int (*get)(Buf*, char* dst, int len, vlong off);
	void (*ins)(Buf*, char* str, int len, vlong off);
	void (*del)(Buf*, int len, vlong off);
	void (*undo)(Buf*);
	vlong (*lines)(Buf*);
};


Mon Jul 22 19:27:35 EDT 2024
this site now runs on gefs.

Mon Jul 22 13:11:49 EDT 2024
#
# files comprising the database, use as many as you like, see ndb(6)
#
database=
	file=/net/ndb
	file=/lib/ndb/local
	file=/lib/ndb/common
	file=/lib/ndb/dnsroot
	file=/lib/ndb/dnschallenge

#
# entries defining the dns root.  these will be overridden by any
# authentic info obtained from the root.
#
dom=
	ns=A.ROOT-SERVERS.NET
	ns=B.ROOT-SERVERS.NET
	ns=C.ROOT-SERVERS.NET
	ns=D.ROOT-SERVERS.NET
	ns=E.ROOT-SERVERS.NET
	ns=F.ROOT-SERVERS.NET
	ns=G.ROOT-SERVERS.NET
	ns=H.ROOT-SERVERS.NET
	ns=I.ROOT-SERVERS.NET
	ns=J.ROOT-SERVERS.NET
	ns=K.ROOT-SERVERS.NET
	ns=L.ROOT-SERVERS.NET
	ns=M.ROOT-SERVERS.NET

#
# because the public demands the name localhost
#
ip=127.0.0.1 sys=localhost dom=localhost

# example: adjust to fit your network
#auth=cirno authdom=9front
#ipnet=9front ip=192.168.0.0 ipmask=255.255.255.0
# ipgw=192.168.0.1
# dns=192.168.0.1
# auth=cirno
# dnsdom=9front
# cpu=cirno
# smtp=cirno
#
#ip=192.168.0.99 sys=cirno dom=cirno.9front ether=112233445566


sys=netrunners ether=5600050721f6
auth=netrunners authdom=netrunners.org


Mon Jul 22 09:24:31 EDT 2024
[Stanza 1]
I didn't expect music to give me so much fun
I'm sitting down after hours and I'm scratching my head like a shilling
Don't worry, Peter, that you ate the goat
I have a problem because I lie down all day and don't give a damn about anything
You can smell of Prada, you can smell of Zara
Actually, I don't really give a fuck
We can go out for wine or a beer
Apparently I'm even better if I drink half
But stop, I'm taking care of myself, with a twist in the morning
Once I'd fuck two tails and walk happy
Before you speak ill of me, think first
Two words about Jurek?  Positively twisted
I've had a bit of a tummy tuck lately
But no wonder, since I'm not fucking around
Lubelska or Soplica?  Trousers or skirt?
Sorry, I can't advise you usually
A fuck in the ass, a fuck in the ass - there's a difference
One presses the chest, the other the syph
Somebody's collecting for a bottle, somebody's collecting for a jeep.
And I can do something and it's not trivial
I'm a lecturer at the university in Babichy
One has exchanged a good anus for prosperity
But I don't bother with that because for me it's....

[Refrain]
One fuck, you're pouring vodka on two.
Did you chop something up or did you just beat a horse?
Did you get up early in the morning or did you sleep like a corpse?
But I don't care, I'm still getting away with it, it makes no difference to me
You can wave your dick in the street, no big deal
I don't care, even though they've got a record on me
One dick, you're a pimp - vodka on two
Did you chop something up, or did you just beat a horse?
Did you get up loose in the morning or did you sleep like a corpse?
But I don't care, I'm still getting away with it, it makes no difference to me
You can wave your dick in the street, no big deal
I don't care, even though they got a record on me

[Stanza 2]
[Stanza 2] They say, ‘Hey, Perch, what are you gonna grow up to be?
Pears in the willow tree or whores on Roxie
I haven't sold my soul, but I dance to my heart's content
And if I want to I'll put out a record: Brother-in-law's lawyer
I just wanted to ask you and I'm not bothering you anymore
Would you like to go out for a beer like Sławek Mentzen?
And I know right from the start that I'm going to end up badly
I'm saying no to alcohol, no, okay, go ahead.
This girl's rather indecisive
Once she says goodbye, once she says hello, like Rafał Pa Hi
The apple doesn't fall far from the tree
Not far from an egg from her hand, Not far from a vodka Tonic
And today I don't give a damn
Bogusław Linda winks at me from the vodka label
It fits you like a glove and it fits like a glove
And when I'm drunk I'll get in a Bolt.

[Refrain]
One fuck
Pour it on the rim, sir - vodka on two
Did you chop something up, or did you just beat a horse?
Did you get up loose in the morning or did you sleep like a corpse?
But I don't care, I'm still getting away with it, it makes no difference to me
You can wave your dick in the street, no big deal
I don't care, even though they've got a record on me

Mon Jul 22 01:09:28 EDT 2024
diff fc859af624883111ad21311d50dd5ebfaad3b741 uncommitted
--- a/sys/src/libjson/json.c
+++ b/sys/src/libjson/json.c
@@ -1,6 +1,7 @@
 #include <u.h>
 #include <libc.h>
 #include <ctype.h>
+#include <bio.h>
 #include <json.h>

 typedef struct Lex Lex;
@@ -16,8 +17,9 @@

 struct Lex
 {
+ Biobuf *b;
	char *s;
- ulong slen;
+ int slen_;
	int t;
	double n;
	char *buf;
@@ -24,6 +26,22 @@
	Rune peeked;
 };

+static char*
+ensure(Lex *l, char *p)
+{
+ char *t;
+ int n;
+
+ n = p - l->buf;
+ if(n +UTFmax + 1< l->slen_)
+ return p;
+ l->slen_ += l->slen_/2 + 1;
+ if((t = realloc(l->buf, l->slen_)) == nil)
+ return nil;
+ l->buf = t;
+ return t + n;
+}
+
 static Rune
 getch(Lex *l)
 {
@@ -34,9 +52,15 @@
		l->peeked = 0;
		return r;
	}
- if(l->s[0] == '\0')
- return 0;
- l->s += chartorune(&r, l->s);
+ if(l->b != nil){
+ r = Bgetrune(l->b);
+ if(r == -1)
+ r = 0;
+ }else{
+ if(l->s[0] == '\0')
+ return 0;
+ l->s += chartorune(&r, l->s);
+ }
	return r;
 }

@@ -102,11 +126,11 @@
	if(r >= 0x80 || isalpha(r)){
		t = l->buf;
		for(;;){
- t += runetochar(t, &r);
- if(t >= l->buf + l->slen){
+ if((t = ensure(l, t)) == nil){
				werrstr("json: literal too long");
				return -1;
			}
+ t += runetochar(t, &r);
			r = peekch(l);
			if(r < 0x80 && !isalpha(r))
				break;
@@ -187,11 +211,11 @@
				}
			}
			r2 = 0;
- t += runetochar(t, &r);
- if(t >= l->buf + l->slen){
- werrstr("json: string too long");
+ if((t = ensure(l, t)) == nil){
+ werrstr("json: literal too long");
				return -1;
			}
+ t += runetochar(t, &r);
		}
		*t = 0;
		l->t = TSTRING;
@@ -315,6 +339,27 @@
 }

 JSON*
+jsonload(Biobuf *b)
+{
+ JSON *j;
+ Lex l;
+
+ memset(&l, 0, sizeof(l));
+ l.b = b;
+ l.buf = nil;
+ j = jsonobj(&l);
+ free(l.buf);
+
+ if(peeknonspace(&l) != 0){
+ jsonfree(j);
+ werrstr("json: unexpected trailing data");
+ return nil;
+ }
+ return j;
+
+}
+
+JSON*
 jsonparse(char *s)
 {
	JSON *j;
@@ -322,8 +367,8 @@

	memset(&l, 0, sizeof(l));
	l.s = s;
- l.slen = strlen(s);
- if((l.buf = mallocz(l.slen+UTFmax+1, 1)) == nil)
+ l.slen_ = strlen(s);
+ if((l.buf = mallocz(l.slen_+UTFmax+1, 1)) == nil)
		return nil;

	j = jsonobj(&l);


Sun Jul 21 03:28:04 EDT 2024
git.9front.org/plan9front/plan9front/b8986a889d7e3a445c0265c5cfb3b1db385db756/sys/doc/troff.pdf/raw



Sat Jul 20 14:38:12 EDT 2024
BEGIN { MAXGEN = 1500000; NONWORD = "\n"; w1 = w2 = NONWORD }
{ for(i = 1 ; i <= NF ; i++){ # read all words
		statetab[w1,w2,++nsuffix[w1,w2]] = $i
		w1 = w2
		w2 = $i
	}
}
END {
	statetab[w1,w2,++nsuffix[w1,w2]] = NONWORD # add tail
	w1 = w2 = NONWORD
	for(i = 0 ; i < MAXGEN ; i++){ # gen
		r = int(rand() * nsuffix[w1,w2]) + 1 # nsuffix >= 1
		p = statetab[w1,w2,r]
		if(p == NONWORD)
			exit
		print p
		w1 = w2 # advance chain
		w2 = p
	}
}


Sat Jul 20 12:27:54 EDT 2024
diff 23e7a571724aa78dd33ffdde9da1c0fa330c3aae uncommitted
--- a/sys/src/9/port/proc.c
+++ b/sys/src/9/port/proc.c
@@ -206,8 +206,6 @@
		return;
	}
	up = runproc();
- if(up->edf == nil)
- up->priority = reprioritize(up);
	if(up != m->readied)
		m->schedticks = m->ticks + HZ/10;
	m->readied = nil;
@@ -352,6 +350,10 @@
	int fairshare, n, load, ratio;

	updatecpu(p);
+
+ if(p->fixedpri)
+ return p->basepri;
+
	load = MACHP(0)->load;
	if(load == 0)
		return p->basepri;
@@ -404,7 +406,20 @@
		return -1;
	}
	p->state = Ready;
+
+ /*
+ * When the priority is very low (process is using
+ * more than its fair share) or when it has changed,
+ * reset processor affinity.
+ *
+ * This is to prevent a cpu from always picking
+ * a low priority process with affinity over
+ * a higher priority one without.
+ */
+ if(pri < 3 || pri != p->priority)
+ p->mp = nil;
	p->priority = pri;
+
	if(pri == PriEdf){
		Proc *pp, *l;

@@ -640,6 +655,8 @@
	if(edflock(p)){
		edfrun(p, rq == &runq[PriEdf]); /* start deadline timer and do
		admin */
		edfunlock();
+ } else {
+ p->priority = reprioritize(p);
	}
	pt = proctrace;
	if(pt != nil)
@@ -709,8 +726,9 @@
	p->lastlock = nil;
	p->lastilock = nil;
	p->nlocks = 0;
- p->delaysched = 0;
	p->trace = 0;
+ p->preempted = 0;
+ p->delaysched = 0;

	/* sched params */
	p->mp = nil;


Sat Jul 20 12:16:01 EDT 2024
a new market-based typesetting system that is affordable to learn

Sat Jul 20 04:56:30 EDT 2024
#include <stdio.h>

int main() {
    int x = 5;
    int y = (x++) + (x++);
    printf("y = %d\n", y);
    return 0;
}

prev | next