ki>
Also (tangential) did anybody tried to port Tiny-CC?
Giacomo
--
9fans: 9fans
Permalink:
https://9fans.topicbox.com/groups/9fans/Tab2715b0e6f3e0a5-M85b3f817edeaf49c1634b730
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription
d approve its business model based on surveillance
capitalism.
On the other hand, RMS, Terry A. Davis or Phineas Fisher, Ola Bini are all very
politically aware hackers, each in his own way.
Sure, since ever, Power system try to get control of hackers.
Sometime they manage to jail us. Someti
alls.
Cancelling Nemo is not a political achievement.
Building on the great work he donated to this community, is.
My 2 cents.
Giacomo
[1] http://www.tesio.it/2019/06/03/what-is-informatics.html
[2]
http://www.tesio.it/2018/02/14/what-i-wish-i-knew-before-contributing-to-open-source.htm
and the "free of
charges" is clearly referred to the permission:
https://opensource.org/licenses/MIT
> You can ignore this file and consider u9fs is distributed under MIT.
Thanks!
But I think that to avoid future issues, the Plan 9 Foundation
Hello 9fans,
browsing the 9p.io's sources of plan9 I have noticed that u9fs have a
specific LICENSE file that is not MIT, while the page header says
"Distributed under the MIT License".
What's the actual license under which u9fs is distributed by the
Plan 9 F
On April 3, 2019 4:02:49 PM UTC, o...@eigenstate.org wrote:
>Don't particularly care. At some point I'd like to commit it to 9front,
>but I can relicense it then.
>
>Do you have a preference?
Probably MIT or a BSD.
But I can also live with any copyleft of your choice.
Giacomo
diffs the changed files.
> git/merge: Yup, what it says on the label. Should
> also be a script around git/fs.
> git/log:Need to figure out how to make it filter
> by files.
> /n/git/HEAD:add /n/git/head subtree which points
> to the current commit.
>
>...And a whole bunch more.
Impressive!
I didn't imagine one could implement git in so few lines of C! Thanks for
challenging my assumptions!
I'd like to port it to Jehanne but I cannot find a license in the repository,
so in theory it's "all rights reserved" under most jurisdictions.
What's your take on this?
Did you intend to put it under public domain instead? Maybe MIT? Or LPL?
Giacomo
Not sure if anybody cares, but Jehanne's kernel derives from a version
of Charles https://bitbucket.org/forsyth/plan9-9k cherry picked from
2015.
Giacomo
rt:
https://github.com/JehanneOS/jehanne/blob/master/sys/src/lib/c/9sys/sleep.c#L23
The blocking system call used in sleep is rendezvous that, in Jehanne,
can never occur at tag ((void*)~0).
Giacomo
ke.
http://jehanne.io/2018/11/15/simplicity-awakes.html
Feel free to ask any question!
Giacomo
/github.com/brho/plan9/blob/master/sys/src/cmd/fcp.c
Giacomo
le set of kernel abstractions that can support a
distributed operating system able to replace the mainstream Web+OS
mess.
You know... heretics are crazy, too!
Giacomo
uce?
I can foresee some (eg bind semantics) but maybe I'm missing some of them.
> Good luck and have fun.
>
Thanks! :-)
Giacomo
>
> > On 2 May 2018, at 19:14, Giacomo Tesio wrote:
> >
> > 2013-06-17 21:06 GMT+02:00 Nemo :
> > You should ask if anyo
a mount is
done, seems pretty complex and prone to deadlocks.
> Don't you have a tricorder?
>
No... but usually I can get away with my sonic screwdriver... :-)
Giacomo
before going crazy about security, consider that the shell running
TeXlive will only see a limited namespace, containing only the file it
has to work with and nothing else.
But this is not going to happen soon... People do not hate Javascript
enough, yet... :-D
Giacomo
2018-02-12 14:05 GMT+01:00 Ethan Grammatikidis :
> On Mon, Feb 12, 2018, at 8:33 AM, Giacomo Tesio wrote:
>> 2018-02-12 2:10 GMT+01:00 Ethan Grammatikidis :
>>> linux-style package managers and bsd-style port trees facilitate and enable
>>> coupling.
>>
>> W
?
Probably C. But I wonder if a more high level language could make the job
easier without increasing too much the project scope.
So far candidates alternatives (that I still need time to evaluate deeply)
are Wirth's Oberon-07 and Obi's Myrddin.
Giacomo
n9-9k
@Rui: Jehanne diverged a lot from Plan 9, in a pursuit for my vision
of simplicity.
While it's in no way a Unix, many won't even consider it a Plan 9
system. Still for anyone interested: http://jehanne.io
Giacomo
ments).
Jehanne is the project that diverged most from the original Plan9
design, with its own set of crazy decisions, but currently it's an
unstable toy.
Giacomo
2018-02-10 3:48 GMT+01:00 Benjamin Huntsman :
> Just curious as to the state of the union. Is 9front pretty much the de
> fa
Please share a link here, when ready!
Giacomo
2018-01-29 11:36 GMT+01:00 Hugues Evrard :
> Yes it should be recorded, and made available online later on (I needed
> confirmation before answering here).
> Thanks,
> Hugues
>
>
> On 24/01/18 09:32, Fran. J Ballesteros wrote:
oor understanding
of how plan 9 and 9front already manage user memory.
As far as I can remember plan9 flush tables very often and clearly
separate kernel memory pages and user space memory.
So my dumb question is: are plan9/9front and friends actually
vulnerable to Meltdown?
Giacomo
me name, so
you know what you are going to open. But here you can open a file that
is not actually visible in the containing folder.
Giacomo
2017-11-02 17:39 GMT+01:00 :
> what do you not understand about private namespaces?
>
> --
> cinap
>
d be accessible to programs knowing their exact
names but not visible to the poor user who ignore them.
I wonder if this can be turned to a security issue.
Eg an invisible pipe named "null" and bound before to /dev could
receive top secret data you wanted to destroy.
Giacomo
PS: knowing
if this is an intended feature or a security issue.
If it is an intended feature can you provide an usage example?
Giacomo
Here it is:
https://github.com/JehanneOS/jehanne/blob/master/sys/src/cmd/ns/clone.c
I'll leave the modifications to the plumber for another boring night...
Giacomo
2017-10-25 1:00 GMT+02:00 Chris McGee :
>
>> Think about multiple processes owned by multiple users running on a
y and
add a ns/clone command that take a pid and a command to run so that
ns/clone 256 rc
would start a new rc in a copy of the name space of the process with pid 256.
Giacomo
2017-10-24 21:18 GMT+02:00 Giacomo Tesio :
> 2017-10-24 16:21 GMT+02:00 Alex Musolino :
>> Creating a ch
age that make the plumber clone
the name space of a target process.
This should address both use-cases without issues for the processes
running in the original name space.
Giacomo
asked about the "dirty" /env/* because I thought it
could have had a purpose I was missing.
Giacomo
ce -d is a no-op (why?) and -r
for this early rfork, but I have no idea of what it would broke.
Giacomo
2017-10-18 19:25 GMT+02:00 Skip Tavakkolian :
> yes. lc -- an rc script -- shares the environment with the rc that starts
> it; so env is updated with arglist of lc. $* is the arglist th
I have been a bit surprised to see that $* does not always contains
the same as '/env/*':
% echo $*
% cat '/env/*'
% lc
bin/ lib/ tmp/
% echo $*
% cat '/env/*'
/bin/lc%
Not really an issue, but why this happens?
Giacomo
2017-10-17 18:00 GMT+02:00 Skip Tavakkolian :
> On Tue, Oct 17, 2017, 8:05 AM Giacomo Tesio wrote:
>
>> Really? Just aesthetics? :-o
>>
>
>
>> This would flips the question a bit: I wonder why the same designers
>> chose uppercase variable names while desig
Also, why NPROC has been left uppercase? :-)
Giacomo
2017-10-17 17:45 GMT+02:00 Giacomo Tesio :
> In *rc* you use quotation marks when you want a syntax character to
>> appear in an argument, or an argument that is the empty string, and at no
>> other time. IFS is no longer u
taste changes with age, but costs accumulate... :-)
BTW, thanks for your answers!
Giacomo
2017-10-17 17:18 GMT+02:00 Charles Forsyth :
> since for example the original Rc paper still referred to $IFS.
>
>
> really? the only references to IFS I can find are in comparisons of $ifs
Really? Just aesthetics? :-o
I supposed it had some practical goal I was missing, since for example the
original Rc paper still referred to $IFS.
This would flips the question a bit: I wonder why the same designers chose
uppercase variable names while designing Unix... :-)
Giacomo
2017-10-17
tween the two
conventions, so maybe I'm just missing something obvious...
Do anyone know what considerations led to such design decision?
Giacomo
2017-09-17 23:06 GMT+02:00 Marshall Conover :
> Giacomo - While thinking on your advice, I realized most of what I've done
> so far is just a fix for a bug in their current exposed version of the
> 'bind' command.
>
Just read carefully
https://fuchsia.googleso
lot for your
free and (really) useful work.
And as long as you align with their purposes they will threat you as a peer.
It's not that those developers are evil but there's a large amount of
politics inside these companies they have to cope with.
And ultimately, the companies that pay them are not pursuing values, just
long term profits.
Giacomo
x27;m a paranoid - presotto.
*/
(see
https://github.com/0intro/plan9/blob/master/sys/src/9/port/proc.c#L882-L887)
I'd like to know a bit more about Miller's solution as I'd like to simplify
postnote.
Any hint or source code?
Giacomo
In Jehanne, I decided to test both: if the queue is not closed there's no
need to check up->errstr.
Thanks for your help!
Giacomo
2017-05-15 18:12 GMT+02:00 Charles Forsyth :
>
> On 15 May 2017 at 16:46, Giacomo Tesio wrote:
>
>> Shouldn't the waserror code c
anyone answer this question?
Rc run commands ;-)
Giacomo
d extend till the end of a single command: ; & && and
|| should stop it.
Note that it's the first time I use yacc, so probably there is a better way
to code this and there are probably bugs.
For example I was unable to make this works:
% $ echo ./configure --prefix=`{cat /env/
r than the loss.
Am I missing an obvious use case? Or maybe the changes to rc's code would
be too complex?
Giacomo
Il 15/Mag/2017 18:39, "Charles Forsyth" ha
scritto:
>
> On 15 May 2017 at 17:30, Giacomo Tesio wrote:
>
>> % echo "$--fu"
>> rc: nu
Actually a --fu variable is not that useful in Plan 9:
% --fu=bar
% echo $--fu
rc: null list in concatenation
% echo "$--fu"
rc: null list in concatenation
% ls /env
'/env/*'
/env/--fu
...
So rc can create a variable starting with more than one '-', but can't use
it.
So I wonder if there is a de
open, and still works, as you can see in
the attached test.
Shouldn't the waserror code check that the queue has been actually closed?
Giacomo
2017-05-15 15:36 GMT+02:00 Giacomo Tesio :
> Thanks Charles!
>
>
> Giacomo
>
> 2017-05-15 12:32 GMT+02:00 Charles Forsyth :
>&g
Thanks Charles!
Giacomo
2017-05-15 12:32 GMT+02:00 Charles Forsyth :
>
> On 15 May 2017 at 11:05, Giacomo Tesio wrote:
>>
>> Is there any fs/device in Plan9 that can easily provide such behaviour?
>
>
> Bind #| to a name and fill up one of the data files (blocks at
Hi, to write a test I'm looking for an easy way to have a write()
blocking forever.
Is there any fs/device in Plan9 that can easily provide such behaviour?
Giacomo
I agree that in a network, several different os should be able to work
together seemlessy.
But despite my efforts in Jehanne I don't think the key to achieve this is
a os, nor a language. IMHO the key is a better general purpose protocol, as
simple as 9p but able to replace http.
Giacomo
You might find https://lsub.org/ls/clive.html interesting.
Giacomo
2017-05-05 15:25 GMT+02:00 Dave MacFarlane :
> On Fri, May 5, 2017 at 6:21 AM, Stanley Lieber wrote:
>>
>> Plan 9 has not yet been re-implemented in Go.
>>
>> sl
>>
>
> I started trying to
cation actually using such semantics
(either ported to Plan9 or not).
Giacomo
Yes that would be a plausible explanation but actually rc does not use
getenv: it reads /env/ files directly.
I've tried to remove the loop and I can't see any issue.
Giacomo
2017-01-18 21:13 GMT+01:00 Charles Forsyth :
> Yes, it's the lists. Nothing will cope with \0 in a C
< ep; p++)
if(*p == '\0')
*p = ' ';
ans[s] = '\0';
}
Anybody know why this replacement is done?
It does not seem a good fix to read/write or read/truncate races, but
I can't find a better explanation.
Giacomo
simple reasoning I did during triage was: consider a pointer to a
struct holding both buf and its length:
mptole(num, s->buf, s->len, nil)
it will cause the leak if the struct was just zeroed.
In this case I prefer the assert fail to the leak, so that I, as a dumb
guy, would notice the issue
stop to annoy the list.
Giacomo
verified that the code is more or less the same on 9front.
I "fixed" the first with an assert, but I'm not sure wherther passing
sizeof(m->u.finished.verify) to memset in the second is the correct
solution.
Am I missing something?
Giacomo
code compiled and runs on 9front. I generated the c
> code on linux though.
>
Can you detail the process?
I'd like to give it a try on Jehanne (which is built with gcc).
Giacomo
2017-01-06 10:34 GMT+01:00 Anthony Martin :
> Ciao Giacomo,
>
Ciao Anthony, ottime domande! :-)
Let's start from the easy ones:
> Oh, and where are the man pages? /doc/hacking is missing.
Man pages in Jehanne will be readable in source form. Cat should be enough
to render th
help.
Thanks.
Giacomo
Thanks Charles! This is exactly the kind of info I was looking for.
Giacomo
2016-11-30 22:53 GMT+01:00 Charles Forsyth :
>
> On 30 November 2016 at 21:51, Charles Forsyth
> wrote:
>
>> that the whole path name is re-evaluated 3 times
>
>
> That doesn't happen
arles perfectly described them, something that break without it, so that
I can dive deeper into the matter.
Giacomo
2016-11-30 16:08 GMT+01:00 Charles Forsyth :
>
> On 30 November 2016 at 15:02, Giacomo Tesio wrote:
>
>>
>> But reading that thread I can't actually see why the OEXCL path has been
>> taken instead of eliminating the race mapping the syscall to the 9p me
(file, mode|OTRUNC)) < 0 ||
> (fd = create(file, mode, perm)) < 0 ||
> (fd = open(file, mode|OTRUNC)) < 0 ||
> error...
> }
>
> This is precisely the current create(2) call and the nasty
> race is clear.
>
>
Why the initial open() would be needed if c
e create syscall does not simply return an
error if the file already exists?
You might save me a few headache...
Thanks for your help!
Giacomo
2016-05-24 23:25 GMT+02:00 Giacomo Tesio :
> I'm pretty curious about the create(2)/create(5) race described in a
> comment in namec (see h
is it designed to solve?
Moreover, Zinq's graphics use a very smart approach, but it's specific to
9front evolution of the device with the "fixed" type.
I'm also looking for the general use case, when segments are not used for
DMA, as designed in the original Plan9.
Giaco
Hi, I'm looking for an usage example of devsegment.
I cannot find anything neither in bhro's plan9 nor in 9front.
Can anybody share a real usage world example?
Giacomo
reate(2)
syscall?
Giacomo
e challenging mainstream opinions (this is Plan9,
isn't it? :-D), I'm afraid of people doubting about evident facts or simply
ignoring them: climatic changes? unsustainable distribution of wealth?
parents negating their kids misbehavior? inadequate legal systems for the
current world? and so on...
Giacomo
entirely off topic, sorry
ent, now we can even start to ignore the information from the
physical world, while accepting the virtual information that someone else
feed us.
Giacomo
2016-04-01 22:00 GMT+02:00 :
> lu...@proxima.alt.za writes:
>
> > I don't even remember the name of the feature, but I used a tool
Thanks Charles!
Giacomo
2016-03-25 17:38 GMT+01:00 Charles Forsyth :
> If you look for "condition variables" for event notification,
> you'll find relevant material, such as this paper
> https://www.cs.berkeley.edu/~brewer/cs262/Mesa.pdf
> which has a few references
iven
their use of rendezvous I can't find anything related.
Can you provide me some references?
Giacomo
Out of curiosity, why the startboot function in port/initcode.c is `void
startboot(char *argv0, char **argv)` given the argv0 is ignored?
I see that this simplify various main() in init9.s but I wonder why not
simply use `void startboot(char **argv)`
Giacomo
I kinda agree, but I'm too incompetent in the matter. :-)
However, I was simply asking if, on amd64, kencc uses the 6 registers that
the abi deserves to the parameters.
As far as I've understood only BP is used (for the first argument, if
integer).
Can you confirm?
Giacomo
2016-
umentation/abi.pdf and always pushes
parameters to the stack?
Giacomo
2016-02-01 23:48 GMT+01:00 :
> FP is a translated to a varying offset to SP depending on where in the
> program
> you are. arguments on the stack are padded to 8 bytes on amd64, the first
> argument
> is n
should be equivalent to
.align 4
.globl insb
insb:
mov%ebp,%edx
mov0x10(%rsp),%rdi
mov0x18(%rsp),%ecx
cld
rep insb
retq
Again I cannot find a definition of address and count, but both seem to be
be valued as 8, why?
Giacomo
t is actually deprecated.
Do you know any paper that can explain its design and intent?
Giacomo
2015-11-27 13:42 GMT+01:00 :
> On Fri, Nov 27, 2015 at 09:13:20AM +0100, Giacomo Tesio wrote:
> >
> > I know nothing about compilers, but actually gcc and clang dimension and
> > complexity is astonishing.
>
> It's not astonishing: it's research. They want to
pile many
different language optimized for many different OS and architectures on
many different OS and architecture.
Alternative compilers, like tcc, only build C on very few architectures /
os with almost no optimization: they are much smaller, but still not
standard compliant.
How can it be?
Giacomo
ar effect as fsync (see stat(5)).
>
Thus Plan9 HAS fsync! :-o
And it also has server-defined semantics! Very impressive!
Giacomo
ctly what happened.
I misread privalloc(2), and assumed that privalloc()ed addresses were
somehow reset on rfork.
This is probably something to explicitly state the man page.
Thanks you all!
Giacomo
Nice example thanks.
May be my problem is that p is global in my case?
Giacomo
Il 05/Set/2015 18:50, "erik quanstrom" ha scritto:
> by the way, the following program runs without asserting for me
> with or without the waits.
>
> - erik
>
> ---
>
> #include
&g
... and given getpid(2) implementation, a pid based table could be quite
expensive, since MyStruct is accessed very very often.
2015-09-05 16:03 GMT+02:00 Giacomo Tesio :
> 2011-05-20 3:30 GMT+02:00 erik quanstrom :
>
>> one note is that while i'm aware of privalloc(2), i di
p == nil) just after rfork, and after a
few (apparently?) successful spawns, the assert fails.
What I need is a sort of thread-local storage for the MyStruct*, so that
each child process can find it's own dedicated MyStruct.
I know that could get this with an hashtable based on the pid, but I'd
prefer to avoid the book keeping if possible.
Giacomo
ment and testing.
>
> Lucio.
>
I shouldn't need any hardware (a Xen domU should be enough), but in case
I'll write you when I'm ready to work on this.
Can you share links to the most updated sources for NetBSD?
Giacomo
Hi, anybody knows where the u9fs sources are currently maintained?
I have just found https://bitbucket.org/plan9-from-bell-labs/u9fs but it's
only linked by an old googlecode repo: I was unable to find any official
link in the bell labs pages.
Giacomo
2008-12-16 23:16 GMT+01:00 Steve Simon :
> I have a distant memory that somone implemented some of POSIX pthreads
> on plan9, i.e. I want to compile programs that use pthreads under APE.
>
> anyone got any pointers?
>
Hi Steve, did you find anything (even incomplete) back then?
Giacomo
rsyth :
> As a further historical note, originally 9P required a stream that
> preseved record boundaries, and the reliable datagram protocol IL/IP and
> pipes did that.
>
So, seem that ignoring zeros is simply wrong. A residual from the past...
Giacomo
2015-08-11 17:48 GMT+02:00 Charles Forsyth :
>
> On 10 August 2015 at 15:11, Giacomo Tesio wrote:
>
>> /*
>> * reading from a pipe or a network device
>> * will give an error after a few eof reads.
>> * however, we cannot tell the difference
>> * betw
;I'm alive but boring".
I can't see how a reliable communication (a cpu connection for example) can
survive this mismatch.
I'm probably missing something.
Giacomo
2015-08-10 16:22 GMT+02:00 erik quanstrom :
> on plan 9 systems 0 writes are not discarded.
>
Interesting! Is this "by design"?
And what is the intended usage of 0 writes?
BTW, so fcall(2) is misleading, a 0 read can not be used to identify an
EOF, right?
Giacomo
plan9/blob/master/sys/src/cmd/ip/ftpfs/ftpfs.c#L273-L279
I'm a bit confused about this. What's the proper use of the 0 return value?
Giacomo
Il 27/Lug/2015 23:47, "Skip Tavakkolian" <9...@9netics.com> ha scritto:
>
> > you are aware of the 9fans' fetish for movies
>
> and rabbits
...and feticists. ;-)
watch?v=qlRTbl_IB-s (and this site
http://2045.com/ !)
I've just found it, and suddenly I realized that all the crazy ideas I've
got in the past were quite realistic, after all. :-D
Giacomo
ement a native gitfs over that, in C, using the
network fs available in Plan9.
Compared to hgfs, a bit more design of the fs structure would probably be
needed to capture the concept of branch in a hierarchical filesystem.
How much you would estimate such development?
Giacomo
2015-03-30 18:1
quot;workedhere", "shittorefactortomorrow" and so on).
Giacomo
2015-03-30 11:48 GMT+02:00 Giacomo Tesio :
> As I use both git and hg, I really miss the feature-branching in hg
> (obviously, you can, if you try hard enough, use feature branching with hg
> too, but git makes it so
good to keep track of the progress of the project.
My two cents.
Giacomo
2015-03-28 15:00 GMT+01:00 Paul Lalonde :
> I'd like to hear it too - much to learn from others' process.
> Paul
>
> On Sat, Mar 28, 2015 at 4:16 AM Charles Forsyth
> wrote:
>
>>
Thanks David!
2015-03-25 12:12 GMT+01:00 David du Colombier <0in...@gmail.com>:
> > How should I extract files from an .arch archive?
>
> disk/mkext -d / < cpython-src.arch
>
> --
> David du Colombier
>
>
chive?
Giacomo
dHat or Suse.
In the Plan9 ecosystem, while looks that some are quite upsets about such
differences, it's hard to grasp them from the outside.
Giacomo
ay to cope with such old and small bugs,
is to report them on 9fans (and other related mailing lists), possibly with
a patch.
This way, any other user that hit the bug (and find your email) can apply
the patch and fix them in his $home/bin (or somewhere else) and then bind
-b it to /bin.
Giacomo
should have
index 2 and 9. Moreover if the tenth element is actually referred by index
10, why the array should hold eleven elements?
A simple check shows that actually the array has 11 elements and the one
initialized are the forth and the eleventh.
Giacomo
diff -r 51285ae4f545 sys/man/1/2c
--- a/
Ehm... obviously I was talking about 2c(1)...
Too much coffe, today... :-D
2015-03-10 16:53 GMT+01:00 Giacomo Tesio :
> 2c(2) states:
>
> Array initializers can specify the indices of the array in
>> square brackets, as
>> int a[] = { [3] 1, [10] 5 };
>>
1 - 100 of 161 matches
Mail list logo