Groups | Search | Server Info | Keyboard shortcuts | Login | Register


Groups > comp.lang.forth > #22375

Re: The current object

From Bernd Paysan <bernd.paysan@gmx.de>
Newsgroups comp.lang.forth
Subject Re: The current object
Date 2013-05-07 03:23 +0200
Organization 1&1 Internet AG
Message-ID <km9l2b$dc3$1@online.de> (permalink)
References (17 earlier) <QOWdnaL8esNzBBjMnZ2dnUVZ_qudnZ2d@supernews.com> <km4aus$mrd$1@online.de> <ZL6dnT23hc1-gRvMnZ2dnUVZ_qOdnZ2d@supernews.com> <km6i4p$8ib$1@online.de> <Fc-dnQiRMOoK4hrMnZ2dnUVZ_g6dnZ2d@supernews.com>

Show all headers | View raw


Andrew Haley wrote:
>> So we should agree that when we talk about objects, we talk about
>> two entirely different things?  Which are not even related?
> 
> I have no idea; I don't think that OOP and the rest of Forth are
> different universes, that's all.

Neither do I.  It's just that it turns out that my code is more maintainable 
with a current object.

> I don't want people to think in the same way.  I want them to be able
> to interwork.

Fine with me.  This however means you have to accept that people use various 
ways to deal with things.  Interwork then means that people can build that 
stuff on a common base, and deviate where necessary.

>> Do you have any pointers?  I've tried to google for that, but the
>> Java world doesn't want to talk about these pesky details.
> 
> The techniques are discussed in the survey paper
> http://www.research.ibm.com/people/m/marnold/RC23143.pdf
> 
> The list of references at the end includes the HotSpot papers.

Thanks for the pointer, that's a place to start with.

>> What I understand is that Hotspot does a lot of inlining, which
>> works fine on micro-benchmarks, especially, when the OOP stuff
>> doesn't do anything useful (i.e. there is no high polymorphic code).
> 
> It's not so much that the code is not polymorphic, but that you don't
> know before a program runs which classes will be used.

Yes, that's for sure ture.

> I suspect that's not always true, given that you talk about many calls
> to SELF methods.  I expect that a significant proportion of these will
> be monomorphic calls.

No.  These methods are "hooks" where the subclasses specialize.  A typical 
example from MINOS, the widget class resize definition:

        : resize ( x y w h -- )
          vglue@ range swap hglue@ range swap h ! w !
          repos ;

vglue@, hglue@, and repos are polymorphic methods, range isn't - it just 
makes sure that the value is within the range the glue permits.  repos is 
the closest to "monomorphic", as only windows diverge: They need to call the 
window manager when their position changes, all other objects don't need to 
call the window manager.  There are not too many hglue@ and vglue@ (8 in 
total for each), but that's all pretty much on the root of the class 
hierarchy tree, so when you pass through a dialog box, you will easily see 
all of them.  resize of course is the method that's called for every layout 
change.

There are a dozend variations of resize, most of them somewhere call the 
base class resize at some point, too.

There's a high chance that you are going to call the same resize again in 
the next invocation, as dialog boxes often have similar widgets clustered 
together.  That's handled very well by the CPU's indirect branch prediction.

What I've considered as "useful inlining" would be to take a dialog box, and 
then inline the entire walk through the box for e.g. resizing the entire 
box.  However, those dialog boxes where resize performance is important 
(because they contain thousands of elements) are typically non-static.  
Think of an HTML page or so.  Big, non-static, contains quite a number of 
different elements.

> Even for polymorphic call sites vtables aren't necessarily the fastest
> way to do dispatch, and besides that, many polymorphic call sites are
> actually interface calls so vtables don't help.

Oh, well, in Java, maybe.  When I implemented interfaces in BerndOOF, there 
is a sparce matrix of interface pointers for each class, and a dense vtable 
for each interface - the idea is that you have way less interfaces than 
classes, and each interface has several methods, so this doesn't hurt that 
much.

So each class needs space to handle all interfaces, but the call has just 
one additional indirection.  This doesn't hurt performance much, one 
additional cycle per call or so.  Essentially, for polymorphic call sites, a 
call is one branch misprediction.  Any other scheme easily produces more 
than one branch misprediction.  The branch misprediction is the most 
expensive part of the entire method call.

If you compile something like

if(class==classa) then methoda
else if(class==classb) then methodb
else generic invocation

you get three mispredictions in the generic invocation case (supposed classa 
and classb are used frequently enough that each of the if statements has a 
>50% likelyhood to match).  The CPU's branch predictor would be more dynamic 
than this code, and when class A and B cluster or have an easy pattern 
(think e.g. of fixed-size boxes and variable glue boxes interspaced, it's 
then A/B/A/B/A most of the time), the CPU's branch predictor does a very 
good job.

> And the type of EXECUTE is?  :-)

EXECUTE consumes an xt.  All other changes to the system state, including 
the stacks, are subject to the xt called.

> The thing about Forth is that it is so malleable that people have very
> different views of what it is.  I suppose that's a feature, not a bug.

Yes.

>> A class is the set of selector -> method for all selectors which
>> that object understands.
> 
> If all you mean by "class" in the sentence that I was disagreeing with
> is the set of messages, then I have no diagreement with you.  That's
> not what "class" usually means.

Well, in addition to the selector -> method set, a class also has a set of 
instance variables.  I don't think that much of a class as a "type" in a 
C++-like static typed system.  That would not be very Forth-ish.

[...]
> Ah, but my reasoning goes like this: there's no great performance
> advantage to binding call site dispatch at compile time, and there is
> a lot more flexibility to doing it at run time, so you might as well
> do it at run time.
>
> But I admit my preference here: I don't think it's worth worrying
> about shaving a few nanoseconds if it's rewarded by a simplifying
> assumption that significantly helps the programmer.  This will
> probably make for faster systems, because that programmer will have
> more time to think about the actual problem.

The optimization at compile time when some parts are already known are 
transparent for the programmer.  It doesn't change the semantics, it only 
changes when to do what.  If you can do it at compile-time and it's not too 
difficult for the compiler to find out, then do it at compile time.  If it 
shaves of 1 or 100ns doesn't matter: you can do it at compile time, then do 
it at compile time.

> I'm not proposing complexity.
> 
> My suggestion is that a Forth system provides a few words that do
> dispatch and lookup, and these are implemented in the best
> (simplest/fastest/whatever; depends on the Forth system's author)
> possible way for that system.  These words may be used to implement an
> OOP system, and if interworking is required they must be used because
> that's how OOP systems communicate with each other.
> 
> However, the choice of what words are bound to what objects is left to
> the OOP system's designer, or indeed to the program itself.  This is a
> simplifying assumption.  If someone wants to work in their own world,
> without interworking, of course they can do that with their own
> dispatch and lookup mechanism.

In any case, you must do it the Common Lisp MOP-way: first look at what's 
there, and then find a way to implement it with a common base.  IMHO, the 
method dispatch and lookup mechanism is too much deviating between different 
Forth OOP systems that you can make it "generic".

>> known selector -> known class: early binding
>> known selector -> known base class: dense vtable binding
>> either class or selector unknown: hash table or sparse vtable binding,
>> with the fallback to a "catch everything else" method
> 
> Sure, but there's no need to distinguish between these cases.  I mean,
> you can if you like, but there's no reason the system has to.

Yes, that's of course just an opportunity for optimization.

-- 
Bernd Paysan
"If you want it done right, you have to do it yourself"
http://bernd-paysan.de/

Back to comp.lang.forth | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Re: Went open source with my GA144 simulator written in Factor Mark Wills <markrobertwills@yahoo.co.uk> - 2013-04-24 14:56 -0700
  Re: Went open source with my GA144 simulator written in Factor rickman <gnuarm@gmail.com> - 2013-04-24 18:12 -0400
    Re: Went open source with my GA144 simulator written in Factor Mark Wills <markrobertwills@yahoo.co.uk> - 2013-04-24 15:43 -0700
      Re: Went open source with my GA144 simulator written in Factor rickman <gnuarm@gmail.com> - 2013-04-24 18:49 -0400
      Re: Went open source with my GA144 simulator written in Factor AKE <assadebrahim2000@gmail.com> - 2013-04-24 16:09 -0700
    Re: Went open source with my GA144 simulator written in Factor Paul Rubin <no.email@nospam.invalid> - 2013-04-24 20:23 -0700
      Re: Went open source with my GA144 simulator written in Factor rickman <gnuarm@gmail.com> - 2013-04-25 15:41 -0400
    Re: Went open source with my GA144 simulator written in Factor Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-25 03:23 -0500
      Re: Went open source with my GA144 simulator written in Factor Alex McDonald <blog@rivadpm.com> - 2013-04-25 02:36 -0700
      Re: Went open source with my GA144 simulator written in Factor Doug Hoffman <glidedog@gmail.com> - 2013-04-25 07:01 -0400
      Re: Went open source with my GA144 simulator written in Factor Bernd Paysan <bernd.paysan@gmx.de> - 2013-04-25 17:56 +0200
        Re: Went open source with my GA144 simulator written in Factor Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-25 11:56 -0500
          Re: Went open source with my GA144 simulator written in Factor Bernd Paysan <bernd.paysan@gmx.de> - 2013-04-26 16:04 +0200
            Re: Went open source with my GA144 simulator written in Factor Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-26 13:02 -0500
              Re: Went open source with my GA144 simulator written in Factor Bernd Paysan <bernd.paysan@gmx.de> - 2013-04-26 21:34 +0200
                Re: Went open source with my GA144 simulator written in Factor Doug Hoffman <glidedog@gmail.com> - 2013-04-26 15:56 -0400
                Re: Went open source with my GA144 simulator written in Factor Bernd Paysan <bernd.paysan@gmx.de> - 2013-04-27 00:48 +0200
                Re: Went open source with my GA144 simulator written in Factor Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-26 18:21 -0500
                Re: Went open source with my GA144 simulator written in Factor Bernd Paysan <bernd.paysan@gmx.de> - 2013-04-28 02:22 +0200
                Re: Went open source with my GA144 simulator written in Factor Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-28 03:31 -0500
                Re: Went open source with my GA144 simulator written in Factor Doug Hoffman <glidedog@gmail.com> - 2013-04-28 06:30 -0400
                Re: Went open source with my GA144 simulator written in Factor Doug Hoffman <glidedog@gmail.com> - 2013-04-28 06:21 -0400
                Re: Went open source with my GA144 simulator written in Factor Bernd Paysan <bernd.paysan@gmx.de> - 2013-04-28 15:41 +0200
                Re: Went open source with my GA144 simulator written in Factor Roelf Toxopeus <rt4all@notthis.hetnet.nl> - 2013-04-28 16:35 +0200
                Re: Went open source with my GA144 simulator written in Factor Bernd Paysan <bernd.paysan@gmx.de> - 2013-04-29 02:37 +0200
                Re: Went open source with my GA144 simulator written in Factor Roelf Toxopeus <rt4all@notthis.hetnet.nl> - 2013-04-29 10:07 +0200
                Re: Went open source with my GA144 simulator written in Factor Bernd Paysan <bernd.paysan@gmx.de> - 2013-04-29 21:12 +0200
                Re: Went open source with my GA144 simulator written in Factor Doug Hoffman <glidedog@gmail.com> - 2013-04-29 06:26 -0400
                Re: Went open source with my GA144 simulator written in Factor Bernd Paysan <bernd.paysan@gmx.de> - 2013-04-29 21:07 +0200
                Re: Went open source with my GA144 simulator written in Factor Bernd Paysan <bernd.paysan@gmx.de> - 2013-04-29 22:01 +0200
                Re: Went open source with my GA144 simulator written in Factor Doug Hoffman <glidedog@gmail.com> - 2013-04-29 16:51 -0400
                Re: Went open source with my GA144 simulator written in Factor Bernd Paysan <bernd.paysan@gmx.de> - 2013-04-29 23:57 +0200
                Re: Went open source with my GA144 simulator written in Factor Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-29 17:24 -0500
                Re: Went open source with my GA144 simulator written in Factor Bernd Paysan <bernd.paysan@gmx.de> - 2013-04-30 02:16 +0200
                Re: Went open source with my GA144 simulator written in Factor Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-30 03:19 -0500
                Re: Went open source with my GA144 simulator written in Factor Doug Hoffman <glidedog@gmail.com> - 2013-04-29 18:40 -0400
                Re: Went open source with my GA144 simulator written in Factor Doug Hoffman <glidedog@gmail.com> - 2013-04-29 20:01 -0400
                Re: Went open source with my GA144 simulator written in Factor Bernd Paysan <bernd.paysan@gmx.de> - 2013-04-30 02:40 +0200
                Re: Went open source with my GA144 simulator written in Factor Doug Hoffman <glidedog@gmail.com> - 2013-05-01 08:58 -0400
                Re: Went open source with my GA144 simulator written in Factor Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-01 09:57 -0500
                Re: Went open source with my GA144 simulator written in Factor Doug Hoffman <glidedog@gmail.com> - 2013-05-02 04:24 -0400
                Re: Went open source with my GA144 simulator written in Factor Alex McDonald <blog@rivadpm.com> - 2013-05-01 07:58 -0700
                Re: Went open source with my GA144 simulator written in Factor Doug Hoffman <glidedog@gmail.com> - 2013-05-02 04:29 -0400
                Re: Went open source with my GA144 simulator written in Factor Alex McDonald <blog@rivadpm.com> - 2013-05-02 02:49 -0700
                Re: Went open source with my GA144 simulator written in Factor Doug Hoffman <glidedog@gmail.com> - 2013-05-01 08:54 -0400
                Re: Went open source with my GA144 simulator written in Factor Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-01 23:59 +0200
                Re: Went open source with my GA144 simulator written in Factor Ron Aaron <rambamist@gmail.com> - 2013-04-30 06:05 +0300
                The current object (was: Went open source with my GA144 ...) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-05-01 17:01 +0000
                Re: The current object (was: Went open source with my GA144 ...) albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-05-01 19:20 +0000
                Re: The current object (was: Went open source with my GA144 ...) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-05-02 17:02 +0000
                Re: The current object (was: Went open source with my GA144 ...) Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-02 02:12 +0200
                Re: The current object Doug Hoffman <glidedog@gmail.com> - 2013-05-02 04:52 -0400
                Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-02 04:31 -0500
                Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-02 18:25 +0200
                Re: The current object anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-05-02 16:58 +0000
                Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-02 22:26 +0200
                Re: The current object anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-05-06 14:52 +0000
                Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-07 03:47 +0200
                Re: The current object anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-05-07 15:22 +0000
                Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-02 12:12 -0500
                Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-02 21:56 +0200
                Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-03 03:19 -0500
                Re: The current object Doug Hoffman <glidedog@gmail.com> - 2013-05-03 06:54 -0400
                Re: The current object (was: Went open source with my GA144 ...) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-05-02 14:28 +0000
                Re: The current object (was: Went open source with my GA144 ...) Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-02 19:58 +0200
                Re: The current object (was: Went open source with my GA144 ...) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-05-03 16:50 +0000
                Re: The current object (was: Went open source with my GA144 ...) Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-04 18:58 +0200
                Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-04 13:35 -0500
                Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-05 01:08 +0200
                Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-04 18:29 -0500
                Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-05 03:00 +0200
                Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-05 03:48 -0500
                Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-05 23:15 +0200
                Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-06 05:01 -0500
                Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-07 03:23 +0200
                Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-07 03:39 -0500
                Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-07 19:00 +0200
                Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-07 13:34 -0500
                Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-07 22:00 +0200
                Re: The current object anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-05-08 07:26 +0000
                Re: The current object Doug Hoffman <glidedog@gmail.com> - 2013-05-05 06:39 -0400
                Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-05 09:15 -0500
                Re: The current object Paul Rubin <no.email@nospam.invalid> - 2013-05-05 09:25 -0700
                Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-05 11:43 -0500
                Re: The current object Paul Rubin <no.email@nospam.invalid> - 2013-05-05 09:59 -0700
                Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-06 05:06 -0500
                Re: The current object Mark Wills <forthfreak@gmail.com> - 2013-05-06 00:19 -0700
                Re: The current object "WJ" <w_a_x_man@yahoo.com> - 2013-05-13 22:45 +0000
                Re: The current object Doug Hoffman <glidedog@gmail.com> - 2013-05-05 06:39 -0400
                Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-05 23:40 +0200
                Re: The current object Doug Hoffman <glidedog@gmail.com> - 2013-05-05 06:39 -0400
                Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-05 23:29 +0200
                Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-06 05:10 -0500
                Re: The current object Doug Hoffman <glidedog@gmail.com> - 2013-05-08 07:35 -0400
                Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-09 00:06 +0200
                Re: The current object Doug Hoffman <glidedog@gmail.com> - 2013-05-09 06:41 -0400
                Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-11 21:31 +0200
                Re: The current object Doug Hoffman <glidedog@gmail.com> - 2013-05-12 07:40 -0400
                Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-14 01:10 +0200
                Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-14 03:58 -0500
                Re: The current object anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-05-14 14:51 +0000
                Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-15 03:48 -0500
                Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-14 18:37 +0200
                Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-14 14:42 -0500
                Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-15 00:22 +0200
                Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-15 02:56 -0500
                Re: The current object stephenXXX@mpeforth.com (Stephen Pelc) - 2013-05-15 13:52 +0000
                Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-15 17:58 +0200
                Re: The current object albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-05-17 14:01 +0000
                Re: The current object johno <email@address.com> - 2013-05-15 22:38 +0100
                Re: The current object Doug Hoffman <glidedog@gmail.com> - 2013-05-14 06:27 -0400
                Re: The current object albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-05-09 16:06 +0000
                Re: The current object (was: Went open source with my GA144 ...) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-05-06 16:12 +0000
                Re: The current object (was: Went open source with my GA144 ...) Alex McDonald <blog@rivadpm.com> - 2013-05-06 10:25 -0700
                Re: The current object (was: Went open source with my GA144 ...) Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-07 04:00 +0200
                Re: The current object (was: Went open source with my GA144 ...) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-05-07 15:02 +0000
                Re: The current object (was: Went open source with my GA144 ...) Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-07 04:09 +0200
                Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-07 03:41 -0500
                Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-07 19:02 +0200
                Re: The current object (was: Went open source with my GA144 ...) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-05-07 14:33 +0000
                Re: The current object (was: Went open source with my GA144 ...) Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-07 19:40 +0200
                Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-15 16:46 +0200
                Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-15 13:11 -0500
                Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-15 23:23 +0200
                Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-16 02:24 -0500
                Re: The current object anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-05-16 13:55 +0000
                Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-16 17:45 +0200
                Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-18 05:13 -0500
                Re: The current object Doug Hoffman <glidedog@gmail.com> - 2013-05-18 06:43 -0400
                Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-18 10:03 -0500
                Re: The current object Doug Hoffman <glidedog@gmail.com> - 2013-05-18 11:30 -0400
                Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-19 01:20 +0200
                Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-19 12:33 -0500
                Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-19 01:07 +0200
                Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-19 03:58 -0500
                OO dispatch (was: The current object) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-05-16 14:07 +0000
                Re: OO dispatch Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-18 05:28 -0500
                Re: OO dispatch anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-05-20 11:28 +0000
                Re: OO dispatch Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-20 09:00 -0500
                Re: OO dispatch Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-21 01:37 +0200
                Re: OO dispatch Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-21 03:21 -0500
                Re: OO dispatch anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-05-21 12:24 +0000
                Re: OO dispatch Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-21 10:18 -0500
                Re: OO dispatch anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-05-21 16:03 +0000
                Re: OO dispatch Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-21 12:55 -0500
                Re: Went open source with my GA144 simulator written in Factor Mark Wills <markrobertwills@yahoo.co.uk> - 2013-04-27 00:42 -0700
                Re: Went open source with my GA144 simulator written in Factor albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-04-27 09:09 +0000
                Re: Went open source with my GA144 simulator written in Factor Mark Wills <markrobertwills@yahoo.co.uk> - 2013-04-27 02:28 -0700
                Re: Went open source with my GA144 simulator written in Factor Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-27 04:52 -0500
                Re: Went open source with my GA144 simulator written in Factor Bernd Paysan <bernd.paysan@gmx.de> - 2013-04-28 02:24 +0200
                Re: Went open source with my GA144 simulator written in Factor Doug Hoffman <glidedog@gmail.com> - 2013-04-27 06:18 -0400
                Re: Went open source with my GA144 simulator written in Factor Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-27 08:06 -0500
                Re: Went open source with my GA144 simulator written in Factor Doug Hoffman <glidedog@gmail.com> - 2013-04-28 07:01 -0400
                Re: Went open source with my GA144 simulator written in Factor albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-04-28 13:09 +0000
                Re: Went open source with my GA144 simulator written in Factor Doug Hoffman <glidedog@gmail.com> - 2013-04-28 09:33 -0400
                Re: Went open source with my GA144 simulator written in Factor Alex McDonald <blog@rivadpm.com> - 2013-04-28 08:34 -0700
                Re: Went open source with my GA144 simulator written in Factor Alex McDonald <blog@rivadpm.com> - 2013-04-28 08:37 -0700
              Re: Went open source with my GA144 simulator written in Factor Bernd Paysan <bernd.paysan@gmx.de> - 2013-04-30 18:30 +0200
      Re: Went open source with my GA144 simulator written in Factor rickman <gnuarm@gmail.com> - 2013-04-25 15:47 -0400
        Re: Went open source with my GA144 simulator written in Factor AKE <assadebrahim2000@gmail.com> - 2013-04-25 13:39 -0700
        Re: Went open source with my GA144 simulator written in Factor AKE <assadebrahim2000@gmail.com> - 2013-04-25 13:51 -0700
        Re: Went open source with my GA144 simulator written in Factor Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-25 16:43 -0500
          Re: Went open source with my GA144 simulator written in Factor rickman <gnuarm@gmail.com> - 2013-04-26 13:44 -0400
            Re: Went open source with my GA144 simulator written in Factor Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-26 13:11 -0500

csiph-web