<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.os.inferno.general">
    <title>gmane.os.inferno.general</title>
    <link>http://blog.gmane.org/gmane.os.inferno.general</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.inferno.general/4996"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.inferno.general/4992"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.inferno.general/4991"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.inferno.general/4988"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.inferno.general/4983"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.inferno.general/4977"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.inferno.general/4974"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.inferno.general/4972"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.inferno.general/4968"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.inferno.general/4966"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.inferno.general/4961"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.inferno.general/4959"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.inferno.general/4956"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.inferno.general/4955"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.inferno.general/4949"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.inferno.general/4944"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.inferno.general/4925"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.inferno.general/4919"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.inferno.general/4918"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.inferno.general/4917"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://comments.gmane.org/gmane.os.inferno.general/4996">
    <title>TAP (Test Anything Protocol) support</title>
    <link>http://comments.gmane.org/gmane.os.inferno.general/4996</link>
    <description>&lt;pre&gt;Hi!

I've implemented Limbo module for subj, available from usual place:
http://code.google.com/p/inferno-contrib-tap/

There exists itslib(2), but there no applications which use it and I don't
see how it can be used to make writing tests easy.

In perl, there a lot of powerful modules which make writing tests really
ease - they show differences between complex data structures, allow you to
mock functions/modules, etc. - I suppose most of these things can't be
implemented in Limbo, but probably there enough room for TAP module
improvement anyway (for example, it's probably worth adding functions
which assert exceptions will/will not be thrown by tested code).
Sadly, but there some chaos with TAP specification and versions, but I
think I implemented complete "TAP version 12".

Now, as usually, I have some questions about this. :-)

It should be possible to develop and run tests both in host OS and in Inferno.

While it's straightforward to develop and run TAP-tests in Inferno, it
still lack TAP consumer application like `prove` command from Perl module
Test::Harness. This mean if you have a lot of tests it will be hard to
quickly run them all and get nicely printed summary for all tests.
I don't plan to implement it, both because TAP consumer is much more
complex than TAP producer, and because I develop in Limbo from host OS and
will run tests also from host OS.

Running tests implemented in Limbo from host OS and making it possible to
use `prove` command to run these tests require some ugly hacks. And I like
to find more clean way to do this, if possible. Here is how I implemented it:

- let's suppose your application live in /opt/your/cool/appl/cmd/

- tests will live in /opt/your/cool/appl/cmd/t/

- now, to make it possible to run `mk test` in /opt/your/cool/ you'll have
  to append this line to your mkfile's in /opt/your/cool/,
  /opt/your/cool/appl/ and /opt/your/cool/appl/cmd/ (if Charles accept
  issue 228 this will not be needed anymore):

    test:V: test-$SHELLTYPE

- next, you'll need to include /opt/powerman/tap/appl/lib/t/mktest in your
  /opt/your/cool/appl/cmd/t/mkfile. the interesting part is:

    test:V:         $TESTS.test-$OSTARG

    %.dis.test-Inferno:V:   all
    $stem.dis

    %.dis.test-os:V:        all %.t
    ./$stem.t

    %.t:
    ln -nsf runtest.sh $stem.t

- and last, you'll have to copy into your t/ directory file
  /opt/powerman/tap/appl/lib/t/runtest.sh and update it for your
  configuration. here is the file:

    #!/bin/bash -i
    TESTDIR=/opt/powerman/tap/appl/lib/t/
    DIS=$(basename $0 .t).dis
    emu-g sh -c "run /lib/sh/profile; $TESTDIR$DIS; shutdown -h" || :

  * you'll need to change TESTDIR, this is obvious
  * you may need to change `run /lib/sh/profile` command - this command
    expected to setup right environment to run your tests: bind host OS
    directories with source of your application to correct place in
    Inferno file system, load services needed for your test (ndb/cs, maybe
    mount remote ndb/registry, etc.)

As result of this configuration, after `mk` you'll have something like
this in your t/ directory:

    powerman&amp;lt; at &amp;gt;home ~/inferno/opt/powerman/tap/appl/lib/t $ ls -l
    total 24
    -rw-r--r-- 1 powerman users  202 Mar 15 23:26 mkfile
    -rw-r--r-- 1 powerman users  422 Mar 15 14:22 mktest
    -rwxr-xr-x 1 powerman users  145 Mar 15 18:56 runtest.sh
    -rw-r--r-- 1 powerman users   98 Mar 15 19:02 smoke.b
    -rw-r--r-- 1 powerman users  335 Mar 15 23:26 smoke.dis
    -rw-r--r-- 1 powerman users 1707 Mar 15 23:26 smoke.sbl
    lrwxrwxrwx 1 powerman users   10 Mar 15 19:10 smoke.t -&amp;gt; runtest.sh

With this setup, you can run your test from Inferno as `./smoke.dis`,
from host OS as `./smoke.t`, and also you can use host OS command `prove`
in either this or upper directory, because it expect to find tests in
files "t/*.t".

So, we have several more or less ugly hacks here:

* needs to create smoke.t symlink (only good thing is it created
  automatically by `mk`)
* needs to copy runtest.sh into each your directory with tests and
  manually configure it (while it's possible to move TESTDIR out from this
  file - maybe to t/mkfile - tests for different applications still may
  need different setup after starting emu... maybe use some sort of
  t/profile file for this?)
* there two hacks in runtest.sh itself:
  - it run bash with "-i" option (because without it after emu exists
    bash print ugly "Killed" message which clutter test output... but I'm
    not sure is any subtle side effects possible because of this)
  - it replace real emu exit code with 0 (because `prove` check exit code
    and think something is wrong with all tests - emu always exit with
    non-zero code)

Also, this won't work on Windows, but I don't use it (for work) and so
can't propose more portable solution.

If there ideas how to run Limbo tests using host OS `prove` tool without
so many hack - I'll be really glad to hear it! 

&lt;/pre&gt;</description>
    <dc:creator>Alex Efros</dc:creator>
    <dc:date>2010-03-15T22:23:12</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.inferno.general/4992">
    <title>limbo doc about polymorphic syntax</title>
    <link>http://comments.gmane.org/gmane.os.inferno.general/4992</link>
    <description>&lt;pre&gt;Hi!

Is current limbo polymorphic syntax documented anywhere (man/pdf/url/post
to maillist/irc logs)? Only documentation I was able to find is two posts:
    http://9fans.net/archive/2004/05/373
    http://9fans.net/archive/2004/05/374
Is these posts meant to be used as main official comprehensive doc for
current polymorphic syntax?

Is current syntax stable, or it still may change without notice in any
incompatible way?


P.S. Maybe next one "Addendum to The Limbo Programming Language.pdf"
should be released?

&lt;/pre&gt;</description>
    <dc:creator>Alex Efros</dc:creator>
    <dc:date>2010-03-14T04:49:12</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.inferno.general/4991">
    <title>thought about deploying 3rd-party software</title>
    <link>http://comments.gmane.org/gmane.os.inferno.general/4991</link>
    <description>&lt;pre&gt;Hi!

The only way to deploy 3rd-party software in Inferno which I'm aware of is
one used by mjl at http://www.ueber.net/code/. But it has some limitations:

* if Inferno installed system-wide (not in some user's home directory)
  it will require root access to install such software using host OS mk or
  emu started by root to install using native mk
* it's likely will be conflicts between different software providers in
  application/module names because everything is installed in same global
  directories (can be solved by using /dis/mjl/ and /module/mjl/)
* it's hard to provide different versions of some module for different
  applications (he tried to work around this by adding version number to
  module name like "util0.m", but that's ugly)
* it's hard to uninstall


I wanna propose different way to do this, something like DJB's
slashpackage: http://cr.yp.to/slashpackage/management.html

* let's choose and create some top-level directory for all 3rd-party
  software like /contrib or /opt or anything else you like

* all 3rd-party software will expect to find all it's files here:
      /contrib/SOFTNAME/dis/
      /contrib/SOFTNAME/dis/lib/
      /contrib/SOFTNAME/module/
      /contrib/SOFTNAME/lib/
      ...
  where SOFTNAME may be just package name like "httpd" while we've not so
  much software, but also can be "mjl/httpd" or "ueber.net/httpd" to
  guarantee uniqueness of names.

* to install such package system-wide it's enough to do:

    # hg clone https://soft.name/ $INFERNO_ROOT/contrib/softname

  and there no need to additionally run mk (dis files in
  /contrib/softname/dis/ are already in place and ready to use)

* to install such package locally for one of your project needs without
  having root access:

    $ cd $YOUR_PROJECT_DIR
    $ mkdir -p contrib/
    $ hg clone https://soft.name/ contrib/softname
    $ emu
    ; memfs -b /
    ; mkdir /contrib
    ; cd $YOUR_PROJECT_DIR_INSIDE_EMU
    ; bind -b contrib /contrib

* in same way (using single bind) application may override system-wide
  version of some package in /contrib/ by it's own version

* if there some local modification needed for this package, it's enough to
  run mk in /contrib/softname/ directory after modifying files in
  /contrib/softname/appl/ and it will rebuild binaries in
  /contrib/softname/dis/ (both native and host OS's mk can be used)

* update is ease (hg pull &amp;amp;&amp;amp; hg update)

* uninstall is ease :)


Packages implemented in this way should be used a little differently:

* from limbo code:
    
    include "contrib/softname/module/softmodulename.m";
    load SoftModuleName SoftModuleName-&amp;gt;PATH;

  this will "just works" if contrib packages was installed locally (i.e.
  in contrib/ subdirectory of your project), but if it was installed
  system-wide you'll need to add -I/ for native limbo or -I$INFERNO_ROOT
  for host OS limbo.

* from sh (you can define short alias using sh's functions):

    ; contrib/softname/dis/softapplicationname


Implementation of such packages should be done in this way:

* in contrib/softname/module/softmodulename.m:

    PATH: con "/contrib/softname/dis/lib/softmodulename.dis";

* in contrib/softname/appl/{lib,cmd}/softmodulename.b:

    include "../../module/softmodulename.m";
    load SoftModuleName SoftModuleName-&amp;gt;PATH;

* in contrib/softname/*/mkfile all paths are relative


The example of such module you can found here:
http://code.google.com/p/inferno-contrib-hashtable/

&lt;/pre&gt;</description>
    <dc:creator>Alex Efros</dc:creator>
    <dc:date>2010-03-13T08:01:09</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.inferno.general/4988">
    <title>Scripting Languages</title>
    <link>http://comments.gmane.org/gmane.os.inferno.general/4988</link>
    <description>&lt;pre&gt;When the Tk module was developed what was the reason for not including Tcl?

Has anyone ported Python to Inferno/Limbo?

Has anyone coded a TIL(threaded interpreter language, eg. Forth) in Limbo?

Does anyone have a complete list of development and application 
software? This would help so we do not have to recode what has already 
been done!

By the way, thank you for Inferno it makes using multiple 
processors/systems such a pleasure.

Regards,
Paul


&lt;/pre&gt;</description>
    <dc:creator>Paul Lycett</dc:creator>
    <dc:date>2010-03-07T14:59:31</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.inferno.general/4983">
    <title>Opinion on idea for using Inferno as the base for a virtual reality system</title>
    <link>http://comments.gmane.org/gmane.os.inferno.general/4983</link>
    <description>&lt;pre&gt;Hi list,

I am always looking around at different OSes and recently came across Inferno.

I have read a lot of the overview docs and downloaded the source and got it 
running on my GNU/Linux box. I really like the concepts encapsulated in the 
model.

My other love is building virtual reality worlds and it struck me that Inferno 
makes half of a really neat P2P VR system.

I brain-dumped a page of my ideas here:

http://home.exetel.com.au/impact/inferno.shtml

and if anyone would like to make an opinion on my ideas (positive OR negative 
welcome as long as it is constructive ;-) I would very much appreciate it.

I am not a real programmer, though I understand programming concepts and can 
do simple things in C, Java, SmallTalk, Python. At best I aspire to be a 
really good virtual world content producer, however if any real programmers 
thought this was a worthwhile and ultimately doable proposition I am able to 
drop one day paid work per week to allocate to learning how to contribute 
meaningfully to realising the goal outlined.

Regards,
LaeMing Wang
DipIT B.Ed(IT) B.Teach(Primary)
Australia

&lt;/pre&gt;</description>
    <dc:creator>LaeMing</dc:creator>
    <dc:date>2010-02-27T01:01:22</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.inferno.general/4977">
    <title>automated/unatended signer startup</title>
    <link>http://comments.gmane.org/gmane.os.inferno.general/4977</link>
    <description>&lt;pre&gt;When starting auth/keyfs, it always (that I can tell) prompts for the  
key to use to decrypt the key database. Is there a recommended way of  
daemonizing this? I'd like to not have the keydb password sitting  
around unencrypted on disk, obviously.

Anthony

&lt;/pre&gt;</description>
    <dc:creator>Anthony Sorace</dc:creator>
    <dc:date>2010-02-25T21:52:27</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.inferno.general/4974">
    <title>styx fid, quid questions</title>
    <link>http://comments.gmane.org/gmane.os.inferno.general/4974</link>
    <description>&lt;pre&gt;1. when comunicating with servers, do the clients use quid from styx
r-messages, or the fid is enough?
2. how clients arranges so that fids are different?
3. how path paramerter from quid is generated?

dorin

&lt;/pre&gt;</description>
    <dc:creator>dorin bumbu</dc:creator>
    <dc:date>2010-02-24T16:18:39</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.inferno.general/4972">
    <title>empty directories in mercurial repository</title>
    <link>http://comments.gmane.org/gmane.os.inferno.general/4972</link>
    <description>&lt;pre&gt;just checking: is there a script somewhere to recreate the missing
empty directories, e.g. $SYSTARG/$OBJTYPE/lib ?

&lt;/pre&gt;</description>
    <dc:creator>roger peppe</dc:creator>
    <dc:date>2010-02-23T16:18:03</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.inferno.general/4968">
    <title>unusual delimiter in webget</title>
    <link>http://comments.gmane.org/gmane.os.inferno.general/4968</link>
    <description>&lt;pre&gt;Hi!

Is anybody knows why appl/svc/webget/webget.b use ∎ (U+220E) as delimiter
between tokens instead of usual space? Space delimiter looks safe and
natural for given tokens. And real delimiter doesn't even mentioned in doc.

&lt;/pre&gt;</description>
    <dc:creator>Alex Efros</dc:creator>
    <dc:date>2010-02-17T23:05:52</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.inferno.general/4966">
    <title>(Complete) examples of distributed file systems using Inferno</title>
    <link>http://comments.gmane.org/gmane.os.inferno.general/4966</link>
    <description>&lt;pre&gt;Folks:

Can anyone point me in the direction of some "useful" (and perhaps
complete?) examples of implementations of distributed file systems
using Inferno?  I don't mean obvious things such as using Styx to
import/export resources from one machine to the other but actual,
working examples of distributed file systems implementing crypto,
redundancy and fail-over using Styx as the transport mechanism.

I've seen various mentions of such systems (or the beginnings of them,
at least) here and there in blogs and random PDFs but no workable
project that I can easily download and fiddle with to indulge my
personal curiosity.


Thanks in advance,

Matt

&lt;/pre&gt;</description>
    <dc:creator>Matt Adams</dc:creator>
    <dc:date>2010-02-16T08:01:58</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.inferno.general/4961">
    <title>Gauging the "health" of Inferno's on-going development</title>
    <link>http://comments.gmane.org/gmane.os.inferno.general/4961</link>
    <description>&lt;pre&gt;Folks:

Can anyone enlighten me as to the general "health" of Inferno
vis-a-vis on-going development?  I'm curious to know what, if
anything, has been happening with Inferno since it's last major
release in 2004.

I see that the mailing list &amp;amp; IRC channels have fairly low activity
but I don't want to judge the goings-on of the Inferno community on
these two items alone.

Any insight from those who've followed Inferno's development over the
past six years would be appreciated.  I'm trying to gauge it's
suitability for a personal project but would rather not dip my toes
into an environment that appears to have little going on.

(I see fairly regular commits to the official hg repository but those
seem to originate from Vita Nova itself - not sure how much of this is
maintenance and how much is continued development to push things
forward - assuming that's a "need" as such)


Thanks in advance,

Matt

&lt;/pre&gt;</description>
    <dc:creator>Matt Adams</dc:creator>
    <dc:date>2010-02-14T03:17:19</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.inferno.general/4959">
    <title>libc0 vs libc?</title>
    <link>http://comments.gmane.org/gmane.os.inferno.general/4959</link>
    <description>&lt;pre&gt;Why does Inferno have both modules/libc.m and libc0.m? And why are
they different but overlapping?

&lt;/pre&gt;</description>
    <dc:creator>Venkatesh Srinivas</dc:creator>
    <dc:date>2010-02-13T20:13:20</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.inferno.general/4956">
    <title>inferno-npe KSD</title>
    <link>http://comments.gmane.org/gmane.os.inferno.general/4956</link>
    <description>&lt;pre&gt;Hi!

Just to explain what I'm working on in inferno-npe...

I've added 3 calls to internally to hosted emu: ksd_key_create,
ksd_getspecific, and ksd_setspecific; they're inspired by pthreads's
key_create/getspecific/setspecific.
ksd_key_create() returns an integer, which is a key that can be passed
to getspecific/setspecific, to access a pointer local to that kproc.
ksd_key_create takes a function called a 'destructor', which is called
when the kproc exits via pexit(), which is called on that key. Unlike
pthreads, there is no way to delete a key; I had no need for that.

I added KSD (kproc-specific data) in support of new allocator work. I
am implementing a Solaris/libumem-style magazine layer; an early
snapshot is available in emu/port/objcache.c. At first, the objcache
will not provide an malloc/free interface - it will only provide for
creating 'caches' of objects of the same type. This looks like it will
help - there are a good number of commonly allocated these objects,
primarily Progq, Prog, ... structures. The KSD will provide for
kproc-local magazines, so that the hot path for allocation/free avoids
locks. Eventually, I hope to support allocations from the magazines.

Why the allocator? In some timing results from dtrace on a
Solaris/sparc system (without the JIT), Inferno running thread-ring,
poolalloc + poolfree checked in third in total time spent for
functions; (xec checked in first, as expected).

I'm not working directly on the malloc/free/poolalloc/poolfree; while
that would speed up all allocations (not just specific ones from
Mainmem); perhaps I should be? I didn't, because I didn't understand
the interactions between the Block headers (BHdr) and the garbage
collector. Even otherwise, allocating related objects close together,
particular with Solaris-style ctors/dtors is probably a good idea...

Comments appreciated!

&lt;/pre&gt;</description>
    <dc:creator>Venkatesh Srinivas</dc:creator>
    <dc:date>2010-02-12T19:04:02</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.inferno.general/4955">
    <title>inferno administration</title>
    <link>http://comments.gmane.org/gmane.os.inferno.general/4955</link>
    <description>&lt;pre&gt;This issue comes up for me every year or so:

What's the best, recommended, way to handle clean Inferno install and administration?

I've read and re-read "Installing the Inferno Software" but continue to get messed up every once in a while.  I think my biggest problem is that I tend to use Inferno as only a single-user system.. thus losing some of the theoretical benefits.

The man pages are good, but has anyone come up with a base paper/article for getting people up to speed on administering a network of Inferno machines?

-jas


&lt;/pre&gt;</description>
    <dc:creator>Jeff Sickel</dc:creator>
    <dc:date>2010-02-12T17:07:22</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.inferno.general/4949">
    <title>linux/arm jit problems</title>
    <link>http://comments.gmane.org/gmane.os.inferno.general/4949</link>
    <description>&lt;pre&gt;hi all,

the jit on linux/arm does not work for me.  i'm trying it on debian lenny
(5.0, the latest stable) on a sheevaplug (ARMv5TE).  an attempt to
start it looks like this:

$ emu-g -c1
[Emuinit] Broken: "Segmentation violation"
Killed

i've already had a look, but haven't been able to find a solution.
(the mailing list archive at gmane does not let me search at the moment,
perhaps it is a known problem).
at least the dis interpreter works fine.

so far, i am wondering how the jit (glue) code handles different abi's.
if i understand correctly, libinterp/xec.c:/^xec calls the jit code
through comvec().  i would expect the preamble to save some registers:
it seems that linux with its "eabi" (as specified by arm) is callee-saves.

i haven't read the full jit yet, so my suspicion about the abi is likely
premature.  and at least my first attempt to save the registers still
results in the same crashes...  i added instructions to the preamble to:

1. store callee-saves registers that the jit code modifies
2. call the real preamble just a few instructions forward
3. restore the registers
4. return

the preamble then looks like this:

00144e30 e92d43f0       MOVM.DB.W       R13,[R4-R9,R14]
00144e34 eb000001       BL      144e40
00144e38 e8bd43f0       MOVM.IA.W       [R4-R9,R14],R13
00144e3c e28ef000       ADD     $#0,R14,R15
00144e40 e59f500c       MOVW    $#11acd0,R5
00144e44 e585e020       MOVW    R14,#20(R5)
00144e48 e5959008       MOVW    #8(R5),R9
00144e4c e5958004       MOVW    #4(R5),R8
00144e50 e595f000       MOVW    #0(R5),R15

the first four instructions are new.  only r4-r9 are saved.  r0-r3 are
scratch, and higher registers are not used in the jit (unless i've
missed something, perhaps punted functions make it necessary to save
the others too).  also, i'm not 100% sure the movm's do what i intend
to do.

the segmentation fault handler mentions addr=0xc (after modifying the
handler to take a siginfo_t* arg).  perhaps that hints at the cause?
i don't see it though. :)

the assembler above is printed by das(), from libinterp/das-arm.c.
shouldn't the parameters to the MOVM instructions be reversed?  the
first MOVM has bit 20 not set (STM, register list to addr of r13), the
second MOVM does (LDM, from addr of r13 to register list).  and aren't
()'s around R13 appropriate too?

any hints/insights about causes,solutions,workarounds are appreciated!
in the mean time, i'll be reading more of the arm jit.

cheers,
mjl

&lt;/pre&gt;</description>
    <dc:creator>Mechiel Lukkien</dc:creator>
    <dc:date>2010-02-09T13:30:57</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.inferno.general/4944">
    <title>totally OT: Google Wave - collaboration (was: Re: Color depth)</title>
    <link>http://comments.gmane.org/gmane.os.inferno.general/4944</link>
    <description>&lt;pre&gt;
After using wave lightly for a few weeks for keeping some ideas
private and sharing some with friends, I find the planned  "Save/Put
each character" feature suggesting a - probably unplanned, but
nevertheless - "warm and cosy" reliability feeling. (Yes, I also
think, that trusting google your content is a totally different
issue.)
Although I can hardly imagine using it for collaboration (concurrently
editing documents, aka chating) _as advertised_. It not only looks
ridiculous in the video, we tried it and it is ridiculous. Although I
have to admit, that most of the time this type of "collaboration"
diverts into a fun war-typing (new word?) game. I think wave needs new
conventions to be usable as advertised.
On the other hand, I can imagine using wave as a front-end for some
collaboration based applications.

&lt;/pre&gt;</description>
    <dc:creator>fgergo-Re5JQEeQqe8AvxtiuMwx3w&lt; at &gt;public.gmane.org</dc:creator>
    <dc:date>2010-02-02T14:51:07</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.inferno.general/4925">
    <title>Laptop File System</title>
    <link>http://comments.gmane.org/gmane.os.inferno.general/4925</link>
    <description>&lt;pre&gt;I've put some updates to my laptop file system on Google
code.  I hesitate to claim it's ready for prime time, but I've
started using it and I don't plan to do anything else to it
unless I run into some problems or someone asks for it
to do something.  You can find it in the source and in the
downloads on:

http://inferno-bls.googlecode.com/

BLS


&lt;/pre&gt;</description>
    <dc:creator>blstuart-Bdlq13kUjeyLZ21kGMrzwg&lt; at &gt;public.gmane.org</dc:creator>
    <dc:date>2010-01-30T04:27:24</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.inferno.general/4919">
    <title>inferno .bit format</title>
    <link>http://comments.gmane.org/gmane.os.inferno.general/4919</link>
    <description>&lt;pre&gt;is the inferno .bit format equivalent
to any of the plan9 image formats?

thanks,

r

&lt;/pre&gt;</description>
    <dc:creator>Robert Ball</dc:creator>
    <dc:date>2010-01-20T22:34:21</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.inferno.general/4918">
    <title>Color depth</title>
    <link>http://comments.gmane.org/gmane.os.inferno.general/4918</link>
    <description>&lt;pre&gt;Hi there. As I see, the color depth is too low to show 24-bit
pictures. Is it possible to increase the depth? I use a host version
of Inferno (20090630).
&lt;/pre&gt;</description>
    <dc:creator>Pavel Nevidomsky</dc:creator>
    <dc:date>2010-01-20T13:07:46</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.inferno.general/4917">
    <title>Some 386 experiments...</title>
    <link>http://comments.gmane.org/gmane.os.inferno.general/4917</link>
    <description>&lt;pre&gt;Hi everybody,

Over the past few days, I've run a few experiments with hosted Inferno on i386:

First, I replaced the lock / add / unlock pattern in incref/decref with
a locked XADD. This fairly dramatically sped up the thread-ring benchmark; on
a 2.66GHz Core 2 Duo, from around 11 seconds to somewhere in the 9 sec range.
(a similar improvement was seen on a Core i7 system as well). 
This patch is commited to inferno-npe, if people are interested; it involved 
teaching 8a and 8l about XADD as well. 

Flush off some success, I attempted to tinker with taslock. I first tried to 
replace the XCHG underlying taslock with CMPXCHG; the reasoning was the 
CMPXCHG doesn't involve a write to the lockword in the contended case, which
means that the cacheline containing the lockword will not be brutally stolen
from the first successful writer.

Sadly, I noticed no performance differences on the thread-ring benchmark,
on Roger Peppe's chamenos-redux program, or on an I/O intensive tar-like
program I'm working on (the theory was that I/O intensive programs will
involve a high ratio of syscalls, so lots of threads releasing() and 
acquiring()).

I also tried adding an unlocked read before the XCHG; I've often seen
this described as an optimization for i386 spinlocks. No difference seen
here either, all the times are very close together. Perhaps the locks just 
aren't contended enough for these tricks to matter.

Just thought people might be interested,
&lt;/pre&gt;</description>
    <dc:creator>Venkatesh Srinivas</dc:creator>
    <dc:date>2010-01-18T04:52:56</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.inferno.general/4913">
    <title>Inferno for x86-64 systems?</title>
    <link>http://comments.gmane.org/gmane.os.inferno.general/4913</link>
    <description>&lt;pre&gt;Hi, is there a version of Inferno for x86-64 systems? If so, could
someone please point me in the direction of an installation CD/DVD?
Thanks!

&lt;/pre&gt;</description>
    <dc:creator>David Fockens</dc:creator>
    <dc:date>2010-01-15T11:15:30</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.os.inferno.general">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.os.inferno.general</link>
  </textinput>
</rdf:RDF>
