hruodr | 21 Apr 20:30 2015

Re: thoughs about venti+fossil

Dear Sirs!

I have a question about this old discussion: <at>

And about the following answer:

> if you change lump.c to say
>       int verifywrites = 1;
> then venti will check every block as it is written to make
> sure there is no hash collision.  this is not the default (anymore).

Does this mean, that Plan9 by default supposes that A=B if hash(A)=hash(B)?

That this was not the default before, but it is now?

That I still have the possibility of a "full check" of A=B (and not supposing
it after checking hash(A)=hash(B)) by changing "int verifywrites = 1;" in 

I do not want to revive the discussion, because I have the feeling
that the discussion about the thema easily becomes very ideological. 
I had it just some time ago, here my last word:

(Continue reading)

Skip Tavakkolian | 20 Apr 03:08 2015


please ignore...

there was once a mascot named glenda
for an operating system that's kinda splenda
until, that is, a bunch of kids
ripped off its front fenda

jordi collell | 18 Apr 10:35 2015

P9p from osx to ubuntu

I'm new here. Is just my thirth month with acme but i completly addicted to it ;)

I just switched from the p9p from osx to ubuntu and I miss some features.

On my laptop there is a trackpad with two buttons.. But i don't know how to get middle click. I just tryied to remap it to a three touch but seems it doesn't work in p9p Any hint or suggestion on how i can do it? Perhaps i can patch devdraw in like in osx ( where u can get it with meta and ctrl)

Another think.. But this is not related to the switch. Someone can share some script for having two acme instance working with plumbers on different namespaces?

There is another issue with high xdpi. But i think is related to x window and on the end if I keep the 1980x1040 res all works perfect with a nice antialias :)

cinap_lenrek | 2 Apr 18:51 2015

kernel for sgi/indy

have 9front working on sgi/indy (150Mhz r5000) with seeq ethernet,
newport graphics (1280x1024x32) and mouse/keyboard working so
it can be used as a terminal.

in case anyone wants to play with it:


Derek Carter | 1 Apr 21:58 2015

Enable fontsrv on Darwin

I'm not certain about why this would have been disabled, but it seems to 
work now.

Tested with OSX 10.9.5


aka Goozbach

Anthony Sorace | 1 Apr 17:46 2015

Why didn't anyone tell me about the new slogan?

Sounds a bit pollyanna to me, but who am I to judge?

cinap_lenrek | 1 Apr 03:34 2015

mips linker hoisting stack freeing operation

Pt(int x, int y)
	int buf[1000];							/* added for demonstration */
	Point p;

	buf[0] = x;
	p.x = x;
	p.y = y;
	return p;

vc -S compiler output looks ok, but i dont quite understand why it
doesnt directly move x and y to the caller passed storage in R1:

TEXT	Pt+0(SB),0,$4012
	MOVW	y+8(FP),R8
	MOVW	x+4(FP),R7
	MOVW	R1,.ret+0(FP)
	MOVW	R7,buf-4000(SP)
	MOVW	R7,p-4008(SP)
	MOVW	R8,p-4004(SP)
	MOVW	.ret+0(FP),R4
	MOVW	$p-4008(SP),R6
	MOVW	0(R6),R2
	MOVW	4(R6),R3
	MOVW	R2,0(R4)
	MOVW	R3,4(R4)
	RET	,

and after linking it becomes:

Pt 0x00004020	ADD	$-0xfb0,R29				/* allocate stack frame */
Pt+0x4 0x00004024	MOVW	R1,.ret+4(FP)
Pt+0x8 0x00004028	ADDU	$0x8,R29,R6		/* local p */
Pt+0xc 0x0000402c	MOVW	.ret+4(FP),R4
Pt+0x10 0x00004030	MOVW	x+8(FP),R7
Pt+0x14 0x00004034	MOVW	y+12(FP),R8
Pt+0x18 0x00004038	MOVW	R7,buf+16(SP)
Pt+0x1c 0x0000403c	MOVW	R7,p+8(SP)
Pt+0x20 0x00004040	MOVW	R8,0xc(R29)
Pt+0x24 0x00004044	ADD	$0xfb0,R29			/* free stack frame (now R6 < SP) */
Pt+0x28 0x00004048	MOVW	0x0(R6),R2		/* p.x = x; NEIN! */
Pt+0x2c 0x0000404c	MOVW	0x4(R6),R3		/* p.y = y; NEIN! */
Pt+0x30 0x00004050	MOVW	R2,0x0(R4)		/* ret->x = p.x */
Pt+0x34 0x00004054	JMP	(R31)
Pt+0x38 0x00004058	MOVW	R3,0x4(R4)		/* ret->y = p.y */

the problem appears to be the linker hoisting the ADD $const,SP up.
this works until we hit a interrupt or a note, then the local variables
get corrupted. and this is not the interrupt handlers fault,
as this depends on the size of the local variables of the
function, not some fixed redzone area. (thats what int buf[1000]
is trying to demonstrate).

theres my attempt at preventing the linker from doing so:

diff -r 192be1470c05 -r 359ae373800c sys/src/cmd/vl/sched.c
--- a/sys/src/cmd/vl/sched.c	Mon Mar 30 20:53:49 2015 -0400
+++ b/sys/src/cmd/vl/sched.c	Wed Apr 01 01:30:16 2015 +0200
 <at>  <at>  -85,7 +85,7  <at>  <at> 
 		for(t=s+1; t<=se; t++) {
 			if(!(t->p.mark & LOAD))
-			if(t->p.mark & BRANCH)
+			if(t->p.mark & BRANCH || t->set.ireg & (1<<REGSP))
 			if(conflict(s, t))
 <at>  <at>  -102,7 +102,7  <at>  <at> 

 		/* put schedule fodder above load */
 		for(t=s+1; t<=se; t++) {
-			if(t->p.mark & BRANCH)
+			if(t->p.mark & BRANCH || t->set.ireg & (1<<REGSP))
 			if(s > sch && conflict(s-1, t))

which seems to work in this case:

Pt 0x00004020	ADD	$-0xfb0,R29				/* allocate stackframe */
Pt+0x4 0x00004024	MOVW	R1,.ret+4(FP)
Pt+0x8 0x00004028	ADDU	$0x8,R29,R6
Pt+0xc 0x0000402c	MOVW	.ret+4(FP),R4
Pt+0x10 0x00004030	MOVW	x+8(FP),R7
Pt+0x14 0x00004034	MOVW	y+12(FP),R8
Pt+0x18 0x00004038	MOVW	R7,buf+16(SP)
Pt+0x1c 0x0000403c	MOVW	R7,p+8(SP)
Pt+0x20 0x00004040	MOVW	R8,0xc(R29)
Pt+0x24 0x00004044	MOVW	0x0(R6),R2		/* p.x = x; JA! */
Pt+0x28 0x00004048	MOVW	0x4(R6),R3		/* p.y = y; JA! */
Pt+0x2c 0x0000404c	MOVW	R2,0x0(R4)		/* ret->x = p.x */
Pt+0x30 0x00004050	MOVW	R3,0x4(R4)		/* ret->y = p.y */
Pt+0x34 0x00004054	JMP	(R31)
Pt+0x38 0x00004058	ADD	$0xfb0,R29			/* free stack frame last */

any comments (charles)?


Skip Tavakkolian | 1 Apr 01:23 2015

puzzling 9P server / 9pcon interaction

i'm trying to test a new 9P fs with 9pcon. after posting the file server's fd to /srv, it can be mounted (e.g. mount /srv/foo /n/foo) and walked correctly.  trying 9pcon on the same fd (e.g. aux/9pcon /srv/foo) results in "inappropriate use of fd".

any ideas?  fyi, the 9p code is from scartch based on re-re-reading of 0intro(5) docs, so it is entirely possible i missed something subtle that 9pcon doesn't tolerate.

Steve Simon | 1 Apr 00:27 2015

acid -k


Trying to debug a driver using acid.

none of the mkfiles in /sys/src/9 contain rules
to make .acid files, why?

Does noone use acid -k -l kernel ?

is there a way to generate these files I have missed?

-Steve (confused of Winchester).

Rudolf Sykora | 27 Mar 17:48 2015

ssh handshake failed


trying to connect from 9atom via ssh (v2) to my linux machine I get:
ssh: dial: handshake failed

What should I check that might have gone wrong?
(The machine is otherwise accessible from other systems via ssh.)

Thank you

Mathieu Lonjaret | 26 Mar 17:02 2015

easier refreshing of acme wins


I work with many git branches, often affecting the same files. And I
also happen to jump from one to the other quite frequently. There
could be a problem with my workflow, but let's pretend there isn't.

When one of said files is already open in acme, the win won't
automatically refresh it and that's ok, I certainly wouldn't want that
anyway, because I don't always to refresh them all.

However, I find it a bit tedious that I have to write (or paste)
myself the Get tag for each of the wins I want to refresh. To the
point that I'm thinking of hardcoding the Get tag as one of the
"permanent" tags for a win.

Before I do that, does anyone have a better solution to suggest? The
best would be that the Get tag gets automatically added to the tag bar
whenever the files are changed (by git checkout, or other).

p9p acme btw.