

From esoteric@oiva.sange.fi Wed Mar 20 00:24:17 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16nS1Z-000HaV-00; Wed, 20 Mar 2002 00:24:09 +0200
Received: with LISTAR (v0.129a; list misc); Wed, 20 Mar 2002 00:24:03 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16nS1H-000HaM-00; Wed, 20 Mar 2002 00:23:51 +0200
Received: with LISTAR (v0.129a; list lang); Wed, 20 Mar 2002 00:23:44 +0200 (EET)
Received: from rebecca.tiscali.nl ([195.241.76.181])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16nS19-000HaG-00
	for lang@esoteric.sange.fi; Wed, 20 Mar 2002 00:23:43 +0200
Received: from dds.nl (xs241-234-102.dial.tiscali.nl [195.241.234.102])
	by rebecca.tiscali.nl (Postfix) with ESMTP id D616E8A5386
	for <lang@esoteric.sange.fi>; Tue, 19 Mar 2002 22:51:24 +0100 (MET)
Sender: root@rebecca.tiscali.nl
Message-ID: <3C97B25C.B1F3D7BD@dds.nl>
Date: Tue, 19 Mar 2002 22:49:17 +0100
From: Milo van Handel <mwq@dds.nl>
Organization: Milo-Soft
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.3-5 i586)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: [Kayak] Several programs (not very interesting though)
References: <Pine.LNX.4.21.0203181547360.5476-100000@dark.darkweb.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
X-list: misc

Ben Rudiak-Gould wrote:

> > I have a suggestion for benrg too: it would be good if source codes
> > could work backwards without having to invert the various types of
> > bracket.  The language could accept any direction of bracket at the
> > top level, but when within brackets, the same type would be nesting
> > and the opposite type would be closing.  It probably makes parsing a
> > bit harder though.
>
> Your proposal is good because it doesn't break any existing code or the
> existing inversion algorithm. I also don't think it would make parsing
> much harder (at least not with my ad-hoc parser). However, from an
> esthetic perspective I rather like the bracket-mirroring and I don't see a
> pressing need to support non-mirroring inversion. Anyone else have an
> opinion on this?

I vote against non-mirroring inversion, for the same esthetic reasons.






From esoteric@oiva.sange.fi Wed Mar 20 00:34:58 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16nSBv-000HcF-00; Wed, 20 Mar 2002 00:34:51 +0200
Received: with LISTAR (v0.129a; list misc); Wed, 20 Mar 2002 00:34:45 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16nSBM-000Hc8-00; Wed, 20 Mar 2002 00:34:16 +0200
Received: with LISTAR (v0.129a; list lang); Wed, 20 Mar 2002 00:34:09 +0200 (EET)
Received: from rebecca.tiscali.nl ([195.241.76.181])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16nSB9-000Hc2-00
	for lang@esoteric.sange.fi; Wed, 20 Mar 2002 00:34:03 +0200
Received: from dds.nl (xs241-234-102.dial.tiscali.nl [195.241.234.102])
	by rebecca.tiscali.nl (Postfix) with ESMTP id 0FA548A3678
	for <lang@esoteric.sange.fi>; Tue, 19 Mar 2002 23:33:57 +0100 (MET)
Sender: root@rebecca.tiscali.nl
Message-ID: <3C97BC55.DB93915B@dds.nl>
Date: Tue, 19 Mar 2002 23:31:49 +0100
From: Milo van Handel <mwq@dds.nl>
Organization: Milo-Soft
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.3-5 i586)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: [Kayak] Several programs (not very interesting though)
References: <Pine.LNX.4.44.0203191633390.21880-100000@melkinpaasi.cs.Helsinki.FI>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
X-list: misc

Panu A Kalliokoski wrote:

> On Mon, 18 Mar 2002, Milo van Handel wrote:
> > > construct a language with even stricter bidirectionality? Currently there
> > > seem to be two ways to produce redundancy - taking the "paper to make
> > > copies on" from the input, as apparently does Milo's Hello World! program,
> > From the input?  I don't use the input.  And what do you mean with "paper"?
>
> Oh, seems I misread the program. By "paper" I meant the zero bits that
> have to be extracted from somewhere to write something on (to invert or
> let be).

Try this program...

(in) {
   in out in out in out in out in|out in out in|out in out in|out
   in out in out in|out in out in out in out in out in|out in|out
   in out in|out in|out in out in out in|out in out in out in|out
   in out in|out in|out in out in|out in|out in out in out in|out
   in out in|out in|out in|out in out in out in|out in out in|out
   in out in|out in|out in out in|out in|out in|out in|out in|out
   in out in|out in|out in|out in out in|out in|out in|out in|out
   in out in out in|out in out in out in out in out in out in|out
   in out in|out in|out in out in|out in|out in|out in|out in|out
   in out in|out in|out in out in|out in|out in out in out in|out
   in out in|out in|out in out in|out in|out in out in out in|out
   in out in|out in|out in out in out in|out in out in|out in|out
   in out in|out in out in out in|out in out in out in out in|out
} (out)

It is not quite a bijection from input to output since a bit in the in/out
stack can say something about other bits (specifically, if the first bit of
nine is zero, then the rest must also be zero), but it prints "Hello world!"
when given empty input, and uses no zero stack.

> > Enforce using the bit bucket?  And have my computer melt down?  The
> > whole point of the language is to minimize the usage of the bit bucket.
>
> No, the bit bucket can be redirected (like unix pipes) into some other
> program, like it is redirected within a Kayak program from function to
> function.

Another problem: how are you going to figure out exactly how well the
pogram uses the bit bucket?  If you underuse it, the program will be
sensitive to input, meaning that certain inputs will generate errors.
If you overuse it, your program will work all right, until you run it in
reverse, and pick a random bit off the entropy stack when actually you
know what you want.  Allthough there is probably a perfect way to do it for
any task, it's hard to figure out exactly how, and harder still to have
the compiler check this, since that would require the compiler to be able
to check, in finite time, what the program will do in an infinity of
possible situations...

Howver, for programs that don't use input but want to accept (and discard)
what they're given (basicly, these are "Hello world!" programs and quines),
it's easy to figure out how to usethe bit bucket exactly right, namely by
using the following function:

discard(in|bb) {
   in[
      in bb in bb in bb in bb in bb in bb in bb in bb
      discard(in|bb)discard
   ]bb
} (in|bb)discard

It should be straightforward to check that when run in reverse, this
generates a valid output stack (with correct EOF conditions) randomly
from the bit bucket.  However, I haven't tested it yet.





From esoteric@oiva.sange.fi Wed Mar 20 01:50:21 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16nTMj-000HkF-00; Wed, 20 Mar 2002 01:50:05 +0200
Received: with LISTAR (v0.129a; list misc); Wed, 20 Mar 2002 01:49:59 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16nTLq-000Hk6-00; Wed, 20 Mar 2002 01:49:10 +0200
Received: with LISTAR (v0.129a; list lang); Wed, 20 Mar 2002 01:49:03 +0200 (EET)
Received: from pandora.tiscali.nl ([195.241.76.179])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16nTLj-000Hk0-00
	for lang@esoteric.sange.fi; Wed, 20 Mar 2002 01:49:03 +0200
Received: from dds.nl (xs241-234-102.dial.tiscali.nl [195.241.234.102])
	by pandora.tiscali.nl (Postfix) with ESMTP id A74521C52DC
	for <lang@esoteric.sange.fi>; Tue, 19 Mar 2002 23:10:45 +0100 (MET)
Sender: root@pandora.tiscali.nl
Message-ID: <3C97B6E6.BB7CA6EC@dds.nl>
Date: Tue, 19 Mar 2002 23:08:38 +0100
From: Milo van Handel <mwq@dds.nl>
Organization: Milo-Soft
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.3-5 i586)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: taking the address of a temporary
References: <Pine.LNX.4.44.0203190939580.14280-100000@melkinpaasi.cs.Helsinki.FI>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
X-list: misc

Panu A Kalliokoski wrote:

> On Mon, 18 Mar 2002, Ben Rudiak-Gould wrote:
> >     f(&MyClass(args));
> [...]
> > It's inconsistent to warn about the first of these and not the other two.
>
> I can't say I agree. Most C++ warnings are not warnings of bad programming
> techniques but exactly syntaxes that might give unexpected results if the
> programmer doesn't know her C++. For example,
>
> while (blahblah);     gives a warning in gcc while exactly equivalent
> while (blahblah) {};  does not.
>
> > > Also, there has to be something bad about it, or it my compiler
> > > wouldn't give a warning about it.
> > Maybe, but I can't figure out what. I feel the same way about the
> > "function argument isn't used" warning which almost all C++ compilers
> > produce. At least in that case the warning suggests a potential
> > optimization.
>
> Nah, the warnings are just a way to spot mistakes. If they weren't
> sometimes sensible code, they'd be made errors instead of warnings.

(*(int*)0)=0; doesn't give me an error message (or even a warning, in this
case), but nobody would claim it's sensible code :)






From esoteric@oiva.sange.fi Wed Mar 20 03:21:49 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16nUnB-000I1t-00; Wed, 20 Mar 2002 03:21:29 +0200
Received: with LISTAR (v0.129a; list misc); Wed, 20 Mar 2002 03:21:22 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16nUl6-000HxN-00; Wed, 20 Mar 2002 03:19:20 +0200
Received: with LISTAR (v0.129a; list lang); Wed, 20 Mar 2002 03:19:13 +0200 (EET)
Received: from pandora.tiscali.nl ([195.241.76.179])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16nUky-000HxH-00
	for lang@esoteric.sange.fi; Wed, 20 Mar 2002 03:19:12 +0200
Received: from dds.nl (xs241-234-102.dial.tiscali.nl [195.241.234.102])
	by pandora.tiscali.nl (Postfix) with ESMTP id 36D684F0AF
	for <lang@esoteric.sange.fi>; Tue, 19 Mar 2002 23:07:27 +0100 (MET)
Sender: root@pandora.tiscali.nl
Message-ID: <3C97B61F.42A2E3C3@dds.nl>
Date: Tue, 19 Mar 2002 23:05:19 +0100
From: Milo van Handel <mwq@dds.nl>
Organization: Milo-Soft
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.3-5 i586)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: [Kayak] Several programs (not very interesting though)
References: <20020318233138.A26713@irz601.inf.tu-dresden.de> <Pine.LNX.4.21.0203181443400.18027-100000@dark.darkweb.com> <20020319042257.C26713@irz601.inf.tu-dresden.de>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
X-list: misc

Bertram Felgenhauer wrote:

> Btw, I'd rather see the bit bucket behave as a real stack, i.e.
> values pushed on the bit bucket would be retrievable later ... not
> that it makes much difference, it just seems cleaner.

It already is.  Actually, I want exactly the opposite.  Seeing the bit bucket
as something which takes data and discards it as heat (which is the explanation
in the language specifications for why such a thing might be useful), then it
would be reasonable to assume that any bits are immediately turned into heat,
making them unretrievable

> > The reversibility problem occurs as long as there is any possible output
> > which cannot in principle occur as input. Thus to guarantee error-free
> > reversibility the trailing data on the input stack would have to be
> > specified as unpredictable.
>
> That would be possible, yes, and by virtue of reversibility, everyithing
> following the EOF marker on the output should be ignored;

But then, you would have a sort of implied it bucket stored under the in/out
stacks (input is a random bit source, while output is a random bit sink, both
of which are currently done by the bit bucket).

> Btw, there's another problem with reversibility with Kayak right now,
> namely that
>
>   (b,io) {z b} (io,b)
>
> is only reversible 50% of the time.

This is because you push something on the bit bucket that you actually already
know.  As noted in my email announcing my sort program (and some others), bit
bucket using programs are reversible (with some randomness in the output, but
still reversible) if they are careful only to use the bit bucket for actual
entropy.  Since you are dumping something which you already know it must be a
zero (or, in more complex situations, that you can derive its value from other
varibles), you can get rid of it by pushing it onto the all-zero stack, so if
you put it in the bit bucket anyway then you are overusing the bit bucket,
thereby breaking reversibility.





From esoteric@oiva.sange.fi Wed Mar 20 11:38:48 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ncY9-000Iz2-00; Wed, 20 Mar 2002 11:38:29 +0200
Received: with LISTAR (v0.129a; list misc); Wed, 20 Mar 2002 11:38:23 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ncWH-000IyW-00; Wed, 20 Mar 2002 11:36:33 +0200
Received: with LISTAR (v0.129a; list lang); Wed, 20 Mar 2002 11:36:26 +0200 (EET)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ncW9-000IyQ-00
	for lang@esoteric.sange.fi; Wed, 20 Mar 2002 11:36:25 +0200
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g2K9Xfp25787
	for <lang@esoteric.sange.fi>; Wed, 20 Mar 2002 11:36:24 +0200
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g2K9Xbv25890
	for <lang@esoteric.sange.fi>; Wed, 20 Mar 2002 11:33:37 +0200
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Wed, 20 Mar 2002 11:33:37 +0200 (EET)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: lang@esoteric.sange.fi
Subject: [lang] Re: taking the address of a temporary
In-Reply-To: <3C97B6E6.BB7CA6EC@dds.nl>
Message-ID: <Pine.LNX.4.44.0203201129040.25794-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc

On Tue, 19 Mar 2002, Milo van Handel wrote:
> (*(int*)0)=0; doesn't give me an error message (or even a warning, in this
> case), but nobody would claim it's sensible code :)

The compiler is not perfect. Note that my claim was that error-like weird
practices are made warnings if they might be useful, not that practices
that may not be useful are always made errors.

It's quite hard to prove (*(int*)0)=0; is nonsensical, because sometimes 
you really have to deal with explicit hardware addresses and guessing just 
which of them are "bad" is outside the scope of the compiler. But the more 
important point is that, it's hard to write something like the above by 
mistake, so detecting it has little added value.

-- 

Am fuar -> symb <- am fesh
atehwa@iki.fi







From esoteric@oiva.sange.fi Wed Mar 20 23:40:08 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16nno9-000Koz-00; Wed, 20 Mar 2002 23:39:45 +0200
Received: with LISTAR (v0.129a; list misc); Wed, 20 Mar 2002 23:39:38 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16nnnm-000Kos-00; Wed, 20 Mar 2002 23:39:23 +0200
Received: with LISTAR (v0.129a; list lang); Wed, 20 Mar 2002 23:39:15 +0200 (EET)
Received: from rebecca.tiscali.nl ([195.241.76.181])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16nnna-000Kol-00
	for lang@esoteric.sange.fi; Wed, 20 Mar 2002 23:39:10 +0200
Received: from dds.nl (xs241-239-233.dial.tiscali.nl [195.241.239.233])
	by rebecca.tiscali.nl (Postfix) with ESMTP id D63748A492C
	for <lang@esoteric.sange.fi>; Wed, 20 Mar 2002 22:20:19 +0100 (MET)
Sender: root@rebecca.tiscali.nl
Message-ID: <3C98FC93.327C8420@dds.nl>
Date: Wed, 20 Mar 2002 22:18:11 +0100
From: Milo van Handel <mwq@dds.nl>
Organization: Milo-Soft
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.3-5 i586)
MIME-Version: 1.0
To: Esoteric languages <lang@esoteric.sange.fi>
Subject: [lang] [Kayak] Sorting!
Content-Type: multipart/mixed; boundary="------------B3C3F988CAB4301111CD51ED"
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
X-list: misc

This is a multi-part message in MIME format.
--------------B3C3F988CAB4301111CD51ED
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

This is a working character sort utility for arbitrary length strings!  It is
careful in the use of the bit bucket (or so I think, I haven't tried to prove
it, but it should be possible, probably with induction to the string size), so
you can run it in reverse on an already sorted string to generate a random
order.  The distribution, however, is not even - if the bit bucket has an even
distribution (which it does in this implementation), then the program prefers
to shuffle less over more, as is both evident from the algorithm (which
requires more bits to be exactly right for reversal than for changing nothing)
and determined by experiment.  However, all permutations should eventually
show up.  Of course, there are very many permutations, so you will probably
need to be immortal at the very least.  As an example, when sorting 26
characters (the letters of the alphabet, in case you were wondering where that
number came from), is has a chance of 1/2^325 to do a complete reversal, but a
chance of 1/2^25 of not changing anything.  Both are small, but the latter is
2^300 (over 2*10^90) times more likely, having a chance of 33554432 which, in
order to achieve as actual random number, would merely require a lot of
patience
rather than immortality.  If you try once a second, it will take on average a
bit over a year (where a bit is a bit over three quarters of a month, where a
bit is...) to receive a run which is.  The reversal, on the other hand, will
take way longer than the universe exists even if you try once a nanosecond
(of course, the random number generator in the current implementation is
seeded by time(), which is only accurate to the second, so you'll have to
change this if you want to actually perform this experiment, which you don't).

So, what is the actual algorithm?  It may look like bubble sort from a
distance, and indeed does look as if the characters bubble up, but is in fact
a different algorithm which was designed with bit bucket usage in mind
(meaning, basically, that if it knows that a<b and b<c, then it is guaranteed
never to compare a with c, which some other sort algorithms still might), but
it should also be implementable in ther languages, although I have not
calculated its speed (except that I know it's faster then bubblesort, but just
about anything is) so I don't know if this would be worth it.  It works like
this:
- It starts at the last character.
- Say it is on character k out of n.  Characters k+1 through n are already
  sorted.  It then bubbles up character k to it's correct location (it might
  already be there), but without ever looking at characters 1 through k-1.
  This bubbling is done in push-first()push-first.  After this, characters
  k through n are sorted.  This satisfies the precondition for bubbling
  character k-1, so that's what we're doing now, except if k=1, in which case
  there is no character k-1 so we conclude that the whole string is sorted and
  print the output.
--------------B3C3F988CAB4301111CD51ED
Content-Type: text/plain; charset=us-ascii; name="sort.kayak"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="sort.kayak"

compare(a|b|alb) {
   a[b[compare(a|b|alb)big-endian]b]|[b[alb|alb]|[compare(a|b|alb)big-endian]|b]|a
} (a|b|alb)big-endian

compare(io|top-is-less) {
   z|a io a io a io a io a io a io a io a io a
   z b io b io b io b io b io b io b io b io b
   compare(a|b|top-is-less)big-endian
   b io b io b io b io b io b io b io b io b z
   a io a io a io a io a io a io a io a io a|z
} (io|top-is-less)top2

swap-top2(io) {
   io a io a io a io a io a io a io a io a
   io b io b io b io b io b io b io b io b
   a io a io a io a io a io a io a io a io
   b io b io b io b io b io b io b io b io
} (io)2pot-paws

push-first(io|bb) {
   io t io t io t io t io t io t io t io t
   io[
      t io t io t io t io t io t io t io t io
      compare(io|top-is-less)top2
      top-is-less|[
         swap-top2(io)2pot-paws
         io t io t io t io t io t io t io t io t
         push-first(io|bb)push-first
         t io t io t io t io t io t io t io t io
      ]bb
      io t io t io t io t io t io t io t io t
   ]io
   t io t io t io t io t io t io t io t io
} (io|bb)push-first

sort(io|bb) {
   io[
      io t io t io t io t io t io t io t io t    << remove first character >>
      sort(io|bb)sort                       << recusively sort what's left >>
      t io t io t io t io t io t io t io t io  << put back first character >>
      push-first(io|bb)push-first       << advance it to the correct place >>
   ]io
} (io|bb)sort

(bb|io) {
   sort(io|bb)sort
} (io|bb)



--------------B3C3F988CAB4301111CD51ED--






From esoteric@oiva.sange.fi Thu Mar 21 02:48:59 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16nqlA-000LTF-00; Thu, 21 Mar 2002 02:48:52 +0200
Received: with LISTAR (v0.129a; list misc); Thu, 21 Mar 2002 02:48:44 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16nqkb-000LSx-00; Thu, 21 Mar 2002 02:48:17 +0200
Received: with LISTAR (v0.129a; list lang); Thu, 21 Mar 2002 02:48:11 +0200 (EET)
Received: from ctb-mesg2.saix.net ([196.25.240.74])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16nqkT-000LSf-00
	for lang@esoteric.sange.fi; Thu, 21 Mar 2002 02:48:10 +0200
Received: from lennie (woc53-01-p13.wc.saix.net [155.239.129.13])
	by ctb-mesg2.saix.net (8.11.4/8.11.4) with SMTP id g2L0m6T00345
	for <lang@esoteric.sange.fi>; Thu, 21 Mar 2002 02:48:06 +0200 (SAT)
Message-ID: <008b01c1d071$5318ca60$0d81ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: "EsoLang Lang" <lang@esoteric.sange.fi>
Subject: [lang] Prnfoff, BAK, Wassisname, Fromage, Tabarnac, Brainffft, Best ?
Date: Tue, 19 Mar 2002 20:44:06 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

Hello Everybody,

Where can I get these esoteric languages ? Don't know them !

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Thu Mar 21 02:48:59 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16nql9-000LTD-00; Thu, 21 Mar 2002 02:48:52 +0200
Received: with LISTAR (v0.129a; list misc); Thu, 21 Mar 2002 02:48:44 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16nqkb-000LSu-00; Thu, 21 Mar 2002 02:48:17 +0200
Received: with LISTAR (v0.129a; list lang); Thu, 21 Mar 2002 02:48:09 +0200 (EET)
Received: from ctb-mesg2.saix.net ([196.25.240.74])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16nqkS-000LSd-00
	for lang@esoteric.sange.fi; Thu, 21 Mar 2002 02:48:08 +0200
Received: from lennie (woc53-01-p13.wc.saix.net [155.239.129.13])
	by ctb-mesg2.saix.net (8.11.4/8.11.4) with SMTP id g2L0m2T00339
	for <lang@esoteric.sange.fi>; Thu, 21 Mar 2002 02:48:03 +0200 (SAT)
Message-ID: <008901c1d071$517e5440$0d81ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: <lang@esoteric.sange.fi>
References: <Pine.BSF.4.21.0203191051170.58569-100000@oiva.sange.fi>
Subject: [lang] Re: [list-meta] some stats
Date: Tue, 19 Mar 2002 20:32:32 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

Hello!

> Please note that by subscribing both misc and lang you will receive
> duplicates for all messages posted to lang, because they are
> automathically echoed to misc. Misc is only meant as an easy means to
> receive all messages, and if you subscribe misc, you should not subscribe
> any other list. I'm a little bit surprised that 16 people are in this
> condition and only one of them is complaining.

Well, I'm one of the 16 people and just don't complain (already know this) !
:)

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Thu Mar 21 02:49:00 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16nql9-000LTE-00; Thu, 21 Mar 2002 02:48:52 +0200
Received: with LISTAR (v0.129a; list misc); Thu, 21 Mar 2002 02:48:44 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16nqkb-000LSv-00; Thu, 21 Mar 2002 02:48:17 +0200
Received: with LISTAR (v0.129a; list lang); Thu, 21 Mar 2002 02:48:10 +0200 (EET)
Received: from ctb-mesg2.saix.net ([196.25.240.74])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16nqkS-000LSe-00
	for lang@esoteric.sange.fi; Thu, 21 Mar 2002 02:48:08 +0200
Received: from lennie (woc53-01-p13.wc.saix.net [155.239.129.13])
	by ctb-mesg2.saix.net (8.11.4/8.11.4) with SMTP id g2L0m4T00342
	for <lang@esoteric.sange.fi>; Thu, 21 Mar 2002 02:48:04 +0200 (SAT)
Message-ID: <008a01c1d071$5247bec0$0d81ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: <lang@esoteric.sange.fi>
References: <Pine.LNX.4.44.0203190956410.14534-100000@melkinpaasi.cs.Helsinki.FI>
Subject: [lang] Re: [several languages] updates, queries
Date: Tue, 19 Mar 2002 20:39:28 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

Panu A Kalliokoski,

> 1) I (finally) added the brainfuck interpreters in SIMPLE and Thue into
> http://esoteric.sange.fi/brainfuck/impl/interp/ .

Nice Archive ! :) Now downloading some stuff to checkout.

> 2) Prnfoff's page seems to be gone. Does anybody have any copies of his
> esoteric languages, BAK and wassisname, Fromage? (Prnfoff's style was
> always heavy obfuscation in addition to esotericism, but the languages are
> still very interesting.)

Prnfoff ? BAK ? Wassisname, Fromage ? Don't know them !

> 3) Can I put up small web pages for Tabarnac, Brainffft and BEST? These
> languages seem not to have their own web pages, while they all have nice
> ideas IMO. (It might be a good idea to gather all brainfuck-offspring in
> one place, but it's too much trouble finding them all.)

Tabarnac ? Brainffft ? Best ? Know know them too !

Can my e (Exclamation) language be seen as a brainfuck-offspring ?

> 4) It occurred to me that arranging an esoteric documentation contest
> (sample programs / tutorials / tips=progr. techniques) could be a good
> idea. Actually, I'd like it more to be an esoteric documentation project,
> but that sounds a little bit too passive and stable.

Yes, Agree ! I use to like the Esoteric Language Database
(http://www.purists.org/esoteric/) but its outdated, some links doesn't work
etc.

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Thu Mar 21 10:26:14 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16nxtd-000MZk-00; Thu, 21 Mar 2002 10:26:06 +0200
Received: with LISTAR (v0.129a; list misc); Thu, 21 Mar 2002 10:25:59 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16nxsh-000MZO-00; Thu, 21 Mar 2002 10:25:07 +0200
Received: with LISTAR (v0.129a; list lang); Thu, 21 Mar 2002 10:25:00 +0200 (EET)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16nxsZ-000MZF-00
	for lang@esoteric.sange.fi; Thu, 21 Mar 2002 10:24:59 +0200
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g2L8Owr12626
	for <lang@esoteric.sange.fi>; Thu, 21 Mar 2002 10:24:58 +0200
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g2L8OuN15374
	for <lang@esoteric.sange.fi>; Thu, 21 Mar 2002 10:24:56 +0200
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Thu, 21 Mar 2002 10:24:56 +0200 (EET)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: Esoteric languages <lang@esoteric.sange.fi>
Subject: [lang] Re: [Kayak] Sorting!
In-Reply-To: <3C98FC93.327C8420@dds.nl>
Message-ID: <Pine.LNX.4.44.0203211015480.15150-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc

On Wed, 20 Mar 2002, Milo van Handel wrote:
> calculated its speed (except that I know it's faster then bubblesort, but just
> about anything is) so I don't know if this would be worth it.  It works like
> this:

Reading the description, I got the impression that it's equal to the 
so-called insertion sort. (I first had difficulties remembering just how 
exactly bubble sort works, because it's been ages since I needed 
destructive-update arrays for anything.) Insertion sort's execution time 
is the same with bubble sort, O(n*n), but it uses half the comparisons (on 
average) of bubble sort, so it's expected to be faster. On reversed input, 
it is just as bad as bubble sort, but on almost-sorted input, it might 
have better performance than quicksort.

Cool to see stuff like this, by the way. (Though I still think the bit 
bucket should not be seen as immediately emitting bits as heat, but rather 
as redirected to the upper levels just in case some program would make use 
of the discarded bits, so as to reduce heating.)

Panu

-- 

Am fuar -> symb <- am fesh
atehwa@iki.fi







From esoteric@oiva.sange.fi Thu Mar 21 10:33:20 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ny0c-000MbM-00; Thu, 21 Mar 2002 10:33:18 +0200
Received: with LISTAR (v0.129a; list misc); Thu, 21 Mar 2002 10:33:11 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ny0S-000MbG-00; Thu, 21 Mar 2002 10:33:09 +0200
Received: with LISTAR (v0.129a; list lang); Thu, 21 Mar 2002 10:33:02 +0200 (EET)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ny0L-000MbA-00
	for lang@esoteric.sange.fi; Thu, 21 Mar 2002 10:33:01 +0200
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g2L8X0r14906
	for <lang@esoteric.sange.fi>; Thu, 21 Mar 2002 10:33:00 +0200
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g2L8Wve15437
	for <lang@esoteric.sange.fi>; Thu, 21 Mar 2002 10:32:57 +0200
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Thu, 21 Mar 2002 10:32:57 +0200 (EET)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: EsoLang Lang <lang@esoteric.sange.fi>
Subject: [lang] Re: Prnfoff, BAK, Wassisname, Fromage, Tabarnac, Brainffft,
 Best ?
In-Reply-To: <008b01c1d071$5318ca60$0d81ef9b@lennie>
Message-ID: <Pine.LNX.4.44.0203211028290.15150-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc

> Where can I get these esoteric languages ? Don't know them !

:) Prnfoff is the name of a person. BAK and Fromage are his languages, and 
I was asking for them on this list exactly because they've vanished. 
Wassisname is a word implying that I have difficulties remembering some 
other word: it is a contraction of the clause "What was its name?". 
Tabarnac, Brainffft and BEST can be found at this list's archive,

http://esoteric.sange.fi/archive/

Your e (exclamation) language can be seen as brainfuck's offspring, and
you might want to add it to the language database once it becomes
functional - that's a paradigm shift for you. (Just in case, the last 
remark was a joke. No, don't ask what it meant.)

Panu






From esoteric@oiva.sange.fi Thu Mar 21 23:28:36 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oA5t-000OLa-00; Thu, 21 Mar 2002 23:27:34 +0200
Received: with LISTAR (v0.129a; list misc); Thu, 21 Mar 2002 23:27:27 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oA3h-000OLP-00; Thu, 21 Mar 2002 23:25:17 +0200
Received: with LISTAR (v0.129a; list lang); Thu, 21 Mar 2002 23:25:10 +0200 (EET)
Received: from rebecca.tiscali.nl ([195.241.76.181])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oA3T-000OLG-00
	for lang@esoteric.sange.fi; Thu, 21 Mar 2002 23:25:03 +0200
Received: from dds.nl (xs241-234-222.dial.tiscali.nl [195.241.234.222])
	by rebecca.tiscali.nl (Postfix) with ESMTP id 4FE8C8A3895
	for <lang@esoteric.sange.fi>; Thu, 21 Mar 2002 22:24:44 +0100 (MET)
Sender: root@rebecca.tiscali.nl
Message-ID: <3C9A4F19.A30D6FD1@dds.nl>
Date: Thu, 21 Mar 2002 22:22:34 +0100
From: Milo van Handel <mwq@dds.nl>
Organization: Milo-Soft
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.3-5 i586)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: [Kayak] Sorting! (note: bugfix attached)
References: <Pine.LNX.4.44.0203211015480.15150-100000@melkinpaasi.cs.Helsinki.FI>
Content-Type: multipart/mixed; boundary="------------2F615C0D78B4524DBC08C234"
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
X-list: misc

This is a multi-part message in MIME format.
--------------2F615C0D78B4524DBC08C234
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Panu A Kalliokoski wrote:

> On Wed, 20 Mar 2002, Milo van Handel wrote:
> > calculated its speed (except that I know it's faster then bubblesort, but just
> > about anything is) so I don't know if this would be worth it.  It works like
> > this:
>
> Reading the description, I got the impression that it's equal to the
> so-called insertion sort. (I first had difficulties remembering just how
> exactly bubble sort works, because it's been ages since I needed
> destructive-update arrays for anything.) Insertion sort's execution time
> is the same with bubble sort, O(n*n), but it uses half the comparisons (on
> average) of bubble sort, so it's expected to be faster. On reversed input,
> it is just as bad as bubble sort, but on almost-sorted input, it might
> have better performance than quicksort.

On reversed input, no sorting algorithm can go faster than O(n^2), since there are
O(n^2) operations necessary for the swappings even if you know in advance that the
input is reversed.  As for already sorted input, my algorithm takes exactly n-1
comparisons, since that's what's necessary to recognize an already sorted string.
I don't know insertion sort, but I might have reinvented the wheel.  And bubble
sort goes like this:
1. Perform step 2 for i=n...2 (counting backwards).
2. Perform step 3 for j=1...i-1.
3. Compare character j with character j+1 and swap if necessary.

As for the bug fix, my program wasn't fully reversible after all.  It would fail
when reversing input with equal characters.  The reason for this is that, if a=b,
then it was defined to never claim a<b (obviously, from a mathematical viewpoint).
Now after either swapping or not swapping, it would still be able to recognize that
the characters are equal (if I coded that in), so it could have discarded this flag
without using the bit bucket, but it chose to use the bit bucket anyway, getting
the "z bb" problem.  The new version recognizes when a=b and then randomly (from
the bit bucket) claims either a<b or a>=b.  Since this came from the bit bucket in
the first place, it can (and has to) go back without breaking reversibility.

--------------2F615C0D78B4524DBC08C234
Content-Type: text/plain; charset=us-ascii; name="sort.kayak"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="sort.kayak"

compare(a|b|alb) {
   a[b[compare(a|b|alb)big-endian]b]|[b[alb|alb]|[compare(a|b|alb)big-endian]|b]|a
} (a|b|alb)big-endian

compare(io|top-is-less|bb) {
   z|a io a io a io a io a io a io a io a io a
   z b io b io b io b io b io b io b io b io b
   compare(a|b|t)big-endian
   a io a io a io a io a io a io a io a io a|a
   io a io a io a io a io a io a io a io a
   b io b io b io b io b io b io b io b io b|b
   io b io b io b io b io b io b io b io b
   compare(a|b|t)big-endian
   t|[compare(a|b|top-is-less)big-endian]|[bb top-is-less]t
   compare(a|b|t)big-endian
   a io a io a io a io a io a io a io a io a|a
   io a io a io a io a io a io a io a io a
   b io b io b io b io b io b io b io b io b|b
   io b io b io b io b io b io b io b io b
   compare(a|b|t)big-endian
   b io b io b io b io b io b io b io b io b z
   a io a io a io a io a io a io a io a io a|z
} (io|top-is-less|bb)top2

swap-top2(io) {
   io a io a io a io a io a io a io a io a
   io b io b io b io b io b io b io b io b
   a io a io a io a io a io a io a io a io
   b io b io b io b io b io b io b io b io
} (io)2pot-paws

push-first(io|bb) {
   io t io t io t io t io t io t io t io t
   io[
      t io t io t io t io t io t io t io t io
      compare(io|top-is-less|bb)top2
      top-is-less|[
         swap-top2(io)2pot-paws
         io t io t io t io t io t io t io t io t
         push-first(io|bb)push-first
         t io t io t io t io t io t io t io t io
      ]bb
      io t io t io t io t io t io t io t io t
   ]io
   t io t io t io t io t io t io t io t io
} (io|bb)push-first

sort(io|bb) {
   io[
      io t io t io t io t io t io t io t io t
      sort(io|bb)sort
      t io t io t io t io t io t io t io t io
      push-first(io|bb)push-first
   ]io
} (io|bb)sort

(bb|io) {
   sort(io|bb)sort
} (io|bb)

--------------2F615C0D78B4524DBC08C234--






From esoteric@oiva.sange.fi Fri Mar 22 06:42:04 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oGs6-000P7P-00; Fri, 22 Mar 2002 06:41:46 +0200
Received: with LISTAR (v0.129a; list misc); Fri, 22 Mar 2002 06:41:39 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oGq1-000P7B-00; Fri, 22 Mar 2002 06:39:37 +0200
Received: with LISTAR (v0.129a; list lang); Fri, 22 Mar 2002 06:39:31 +0200 (EET)
Received: from mail.inf.tu-dresden.de ([141.76.2.1])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oGpp-000P75-00
	for lang@esoteric.sange.fi; Fri, 22 Mar 2002 06:39:25 +0200
Received: from irz601.inf.tu-dresden.de (irz601.inf.tu-dresden.de [141.76.2.66])
	by mail.inf.tu-dresden.de (8.11.2/8.11.2) with ESMTP id g2M4dJm01757
	for <lang@esoteric.sange.fi>; Fri, 22 Mar 2002 05:39:19 +0100 (MET)
Received: (from bf3@localhost)
	by irz601.inf.tu-dresden.de (8.10.2+Sun/8.10.2) id g2M4dJt11021
	for lang@esoteric.sange.fi; Fri, 22 Mar 2002 05:39:19 +0100 (MET)
Date: Fri, 22 Mar 2002 05:39:19 +0100
From: Bertram Felgenhauer <bf3@mail.inf.tu-dresden.de>
To: lang@esoteric.sange.fi
Subject: [lang] Re: [Kayak] Sorting! (reversible merge sort)
Message-ID: <20020322053919.A10628@irz601.inf.tu-dresden.de>
References: <Pine.LNX.4.44.0203211015480.15150-100000@melkinpaasi.cs.Helsinki.FI> <3C9A4F19.A30D6FD1@dds.nl>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 0.95.1i
In-Reply-To: <3C9A4F19.A30D6FD1@dds.nl>; from Milo van Handel on Thu, Mar 21, 2002 at 10:22:34PM +0100
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: bf3@mail.inf.tu-dresden.de
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: bf3@mail.inf.tu-dresden.de
Precedence: bulk
X-list: misc

Hi,

Milo van Handel wrote:
> Panu A Kalliokoski wrote:
> > On Wed, 20 Mar 2002, Milo van Handel wrote:
> On reversed input, no sorting algorithm can go faster than O(n^2),
[...]

Wrong. It's possible to implement merge sort in Kayak (see below), and
this takes O(n log(n)) operations to accomplish that task.

> As for the bug fix, my program wasn't fully reversible after all.

Hmm, the same happened to me with the merge sort program ...

regards,

Bertram

<[mergesort.kayak]>
<< compare two stacks, top==msb, limited to c (given in unary)  bits,
   return a random bit if the stacks compare equal >>
compare (a|b|c|bb|alb) { c [ a [ b [ compare (a|b|c|bb|alb). ] b ] |
                               [ b [ z | alb ] |
                                   [ compare (a|b|c|bb|alb). ] | b ] | a ] |
                           [ bb alb ] | c } (a|b|c|bb|alb).

<< split an io-format stack into two of about equal size >>
split (l|a|b) { l [ l t l t l t l t   l t l t l t l t
                split (l|b|a).
                t a t a t a t a   t a t a t a t a ] a } (l|a|b).

<< convert io format stack to data/count format >>
count (a|ac) { a [ a t a t a t a t   a t a t a t a t
                   count (a|ac).
                   t a t a t a t a   t a t a t a t a ] ac } (a|ac).

<< divide an unary number by two, giving two halves >>
div2 (a|b|c) { a [ div2(a|c|b). ] b } (a|b|c).

<< reversible merge, takes two data/count format lists and merges them. It
   returns the merged list but without the associated count (which would be
   redundant as it can be calculated from the ac and bc unary numbers which
   are preserved by this function) >>
merge (a|ac|b|bc|8|bb|l) { ac [ bc [ a u a u a u a u   a u a u a u a u 
                                     b v b v b v b v   b v b v b v b v
                                     compare (v|u|8|bb|ulv).
                                     ulv [ u a u a u a u a   u a u a u a u a
                                           z | ac
                                           merge (a|ac|b|bc|8|bb|l).
                                           ac | z
                                           v l v l v l v l   v l v l v l v l ]
                                         | [ v b v b v b v b   v b v b v b v b
                                           z | bc
                                           merge (a|ac|b|bc|8|bb|l).
                                           bc | z
                                           u l u l u l u l   u l u l u l u l ]
                                   bb ] |
                                   [ a u a u a u a u   a u a u a u a u 
                                     merge (a|ac|b|bc|8|bb|l).
                                     u l u l u l u l   u l u l u l u l ] | bc ]
                              | [ bc [ b v b v b v b v   b v b v b v b v
                                       merge (a|ac|b|bc|8|bb|l).
                                       v l v l v l v l   v l v l v l v l ] bc ]
                           | ac } (a|ac|b|bc|8|bb|l).

<< merge sort: start by splitting the given list into two; if both are non-
   empty, recurse; proceed by counting the elements in the two resulting
   lists and merging them. To make the function reversible, the relation
   between ac and bc (ac=bc or ac=bc+1) has to be taken into account when 
   calculating the lc (length of the resulting list); running div2 in reverse
   accomplishes that. Finally, convert l/lc back to io format >>
sort (l|8|bb) { split (l|a|b).
                a [ b [ z | a
                        sort (a|8|bb).
                        a b
                        sort (b|8|bb).
                        b | z ] b ] a
                count (a|ac).
                count (b|bc).
                merge (a|ac|b|bc|8|bb|l).
                .(bc|ac|lc) 2vid
                .(lc|l) tnuoc } (l|8|bb).

<< main function. trivial >>
(bb|io) { z | 8 z | 8 z | 8 z | 8   z | 8 z | 8 z | 8 z | 8
          sort (io|8|bb).
          8 | z 8 | z 8 | z 8 | z   8 | z 8 | z 8 | z 8 | z } (io|bb)

<[EOF]>
-- 
    `.oo'     "Do not meddle in the affairs of Wizards, for they
 ,.  (`-'   are subtle and quick to anger."        -- J.R.R. Tolkien
'^\`-' )      "Do not meddle in the affairs of wizards, for you
   c-L'-    are crunchy and good with ketchup."    -- Terry Pratchett





From esoteric@oiva.sange.fi Fri Mar 22 08:19:21 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oION-000PHe-00; Fri, 22 Mar 2002 08:19:11 +0200
Received: with LISTAR (v0.129a; list misc); Fri, 22 Mar 2002 08:19:04 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oINW-000PHU-00; Fri, 22 Mar 2002 08:18:18 +0200
Received: with LISTAR (v0.129a; list lang); Fri, 22 Mar 2002 08:18:11 +0200 (EET)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oINO-000PHO-00
	for lang@esoteric.sange.fi; Fri, 22 Mar 2002 08:18:10 +0200
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g2M6I9r15891
	for <lang@esoteric.sange.fi>; Fri, 22 Mar 2002 08:18:09 +0200
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g2M6I4M24571
	for <lang@esoteric.sange.fi>; Fri, 22 Mar 2002 08:18:07 +0200
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Fri, 22 Mar 2002 08:18:04 +0200 (EET)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: lang@esoteric.sange.fi
Subject: [lang] Re: [Kayak] Sorting! (note: bugfix attached)
In-Reply-To: <3C9A4F19.A30D6FD1@dds.nl>
Message-ID: <Pine.LNX.4.44.0203220804460.24091-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc

On Thu, 21 Mar 2002, Milo van Handel wrote:
> Panu A Kalliokoski wrote:
> > average) of bubble sort, so it's expected to be faster. On reversed input,
> > it is just as bad as bubble sort, but on almost-sorted input, it might
> > have better performance than quicksort.
> On reversed input, no sorting algorithm can go faster than O(n^2), since there are
> O(n^2) operations necessary for the swappings even if you know in advance that the

This only holds for sorting algorithms that never swap non-adjacent cells. 
Algorithms that may swap non-adjacent cells, like quicksort, heapsort, 
mergesort, shellsort, radix-sort and so on, have usually a worst-case 
performance (not average) of O(n*log n). Interestingly, shellsort actually 
is just a non-locally swapping version of bubblesort.

> input is reversed.  As for already sorted input, my algorithm takes exactly n-1
> comparisons, since that's what's necessary to recognize an already sorted string.

As for trivial algorithms to sort input of which you know it is reversed, 
consider a routine that pops the data characterwise from one stack and 
puts it characterwise on another. This reverses the input in O(n). The 
number of comparisons needed to recognise an already sorted string is the 
same as the number of swaps needed to sort the string.

> I don't know insertion sort, but I might have reinvented the wheel.  And bubble
> sort goes like this:
> 1. Perform step 2 for i=n...2 (counting backwards).
> 2. Perform step 3 for j=1...i-1.
> 3. Compare character j with character j+1 and swap if necessary.

Well, it's very hard to come up with new sorting algorithms any more.  
(Many non-obvious ones, like random-sort and genetic-sort, have also been
invented already.) As for bubble sort, I did remember eventually how it 
works, but as you can see, it's quite depndent on arrays with destructive 
update, so I wonder if the algorithm makes any ssense in a setup where you 
do not have those...

> the "z bb" problem.  The new version recognizes when a=b and then
> randomly (from the bit bucket) claims either a<b or a>=b.  Since this
> came from the bit bucket in the first place, it can (and has to) go back
> without breaking reversibility.

Programming in Kayak certainly seems to bring up interesting issues with 
reversible algorithms :)

Panu

-- 

Am fuar -> symb <- am fesh
atehwa@iki.fi







From esoteric@oiva.sange.fi Fri Mar 22 22:21:57 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oVXC-0001Fr-00; Fri, 22 Mar 2002 22:21:10 +0200
Received: with LISTAR (v0.129a; list misc); Fri, 22 Mar 2002 22:21:00 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oVUW-0001Fi-00; Fri, 22 Mar 2002 22:18:24 +0200
Received: with LISTAR (v0.129a; list lang); Fri, 22 Mar 2002 22:18:17 +0200 (EET)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oVUO-0001Fc-00
	for lang@esoteric.sange.fi; Fri, 22 Mar 2002 22:18:16 +0200
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g2MKIEr27772
	for <lang@esoteric.sange.fi>; Fri, 22 Mar 2002 22:18:15 +0200
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g2MKI8D14942
	for <lang@esoteric.sange.fi>; Fri, 22 Mar 2002 22:18:08 +0200
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Fri, 22 Mar 2002 22:18:07 +0200 (EET)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: lang@esoteric.sange.fi
Subject: [lang] [functional] Erlang - miscellaneous remarks
Message-ID: <Pine.LNX.4.44.0203221931340.2307-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc


I checked the Erlang pages (faq, tutorials, stuff like that) for some
information about the language. I see Erlang comes with a strong
philosophy of how things should be done, which I find nice. Of course, you
could form different programmer traditions to keep up different
programming styles, but the programming practices get bound to languages
anyway, so it's better to endorse them officially. There are a lot of
languages with the "anything goes" attitude - Ocaml, PHP, C++ and so on.  
They all require the programmer to have separately clear knowledge of how
she wants to do things.

Now, there are actually not so many abstraction frameworks out there - 
much less than there seem to be languages, at least. One of them is the 
flow model, which can be seen in Unix pipes (very restricted form), most 
non-structured network protocols, lazy functional programming (a very 
general form), dataflow languages and systems like that. This approach 
tends to break up the operational semantics into as small parts as 
possible, making the intermediate representations the actual interface 
between the parts of the program. As the parts are usually very simple, it 
is easy to reason about the working of the program.

Another big abstraction framework is the OO model. In its weakest form, 
it's basically record-like data structures with specialised handling 
routines. On a higher abstraction level, module systems come to mind. Some 
additional flexibility and bottom-up designing possibilities are added by 
runtime binding, for which languages like C++ use nice techniques (vtable) 
to make it very efficient.

Now, Erlang's explicit concurrency lies somewhere between these two. It is 
certainly closer to the OO model than the flow one, but the concurrency 
semantics demand higher level of independence and consistency from 
individual components, which I think is good. On the other hand, explicit 
concurrency is even more heavy-weight than the usual OO frameworks (from 
the design point of view), so it might be best suited, after all, for 
applications that are really meant to be distributed.

Another interesting approach to concurrency is Join-calculus, which is 
arguably one of the cleanest concurrency models out there. It also adds to 
the implicitness of concurrency and distribution, which is sometimes a 
good thing and sometimes bad. Most notably it removes the distinction 
between messages and handler routines, which is IMO a good thing.

Still another method for abstraction is aspect-oriented programming, which
is even more hype-oriented than OO is. The basic idea is being able to
tweak anything (add code to be executed under different conditions), so
that different additional functionality can be easily added. I don't know
whether this is such a good idea, because with the current AOP tools any
project still requires significant amount of design. Maybe AOP is more
like a solution to OO's narrow-minded problem modeling.

Usually abstraction gives birth to modularity - the less assumptions your 
code makes, the more there are situations it can be used at. Erlang seems 
to aim towards robustness by simplicity, because an important 
modularisation technique that is synergetic with non-abstract data types, 
namely higher order functions, seems to be missing. Erlang does have 
higher-order processes (process id's can be passed around), but it seems 
weird to me to force working on that level of abstraction.

OO modularity is often based on dynamic binding. This is quite equivalent 
to first-class functions, except that methods of objects of different 
classes are not interchangeable - just the objects itself are, given they 
implement the same interface. Storing functions (perhaps with some values 
in the closure) into data structures is a technique less endorsed by 
functional programming languages than it would deserve. Erlang does not 
even have the facilities to do this.

Instead, Erlang has strong support for using runtime-checked tags in data 
structures. This certainly brings flexibility, but still feels very 
error-prone to me - protocol extensions are probably not gracefully 
handled with, but end up generating match errors. However, tags are a 
natural solution when totally free-form messages are wanted.

Dataflow modularisation is usually based on polymorphic / dynamic typing 
and separating different aspects of algorithms into independent routines 
that can then be mixed-and-matched to build pipelines. This can also be 
done in non-lazy environments but really gets off in lazy environments, 
because in non-lazy ones the technique tends to have the program doing 
much work that is never necessary to be done. Moreover, in non-lazy 
environments one cannot separate end-conditions from processing logic.

Overall, Erlang seems to use quite different abstraction / modularisation
techniques from most functional setups. The Erlang environment is well
designed for its problem domain (fault tolerance), but it does lose a lot
from stronger functional environments. The abstraction / modularisation
techniques cannot be put in any single order of preference, because they 
require different models of thought and are aimed on extension on 
different dimensions. But it is good to study all these languages for 
their "spirit", because that brings valuable tools into the programmer's 
toolkit.

-- 

Am fuar -> symb <- am fesh
atehwa@iki.fi








From esoteric@oiva.sange.fi Fri Mar 22 23:38:56 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oWk7-0001N9-00; Fri, 22 Mar 2002 23:38:35 +0200
Received: with LISTAR (v0.129a; list misc); Fri, 22 Mar 2002 23:38:29 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oWjG-0001Mx-00; Fri, 22 Mar 2002 23:37:42 +0200
Received: with LISTAR (v0.129a; list lang); Fri, 22 Mar 2002 23:37:35 +0200 (EET)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oWj8-0001Mr-00
	for lang@esoteric.sange.fi; Fri, 22 Mar 2002 23:37:34 +0200
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g2MLbXr07079
	for <lang@esoteric.sange.fi>; Fri, 22 Mar 2002 23:37:33 +0200
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g2MLbQ518638
	for <lang@esoteric.sange.fi>; Fri, 22 Mar 2002 23:37:26 +0200
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Fri, 22 Mar 2002 23:37:26 +0200 (EET)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: lang@esoteric.sange.fi
Subject: [lang] Re: referential transparency
In-Reply-To: <20020315165412.5c6676fe.cpressey@catseye.mb.ca>
Message-ID: <Pine.LNX.4.44.0203222249490.15449-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc

On Fri, 15 Mar 2002, Chris Pressey wrote:
> inheritance, while ignoring interface.  Similarly with functional, lazy
> evaluation and referential transparency make people go 'wow' while they
> quite possibly ignore the more basic benefits of functional programming,
> like single-assignment (I'll address that in particular later on)

Hmm, I see single-assignment as a direct result of referential
transparency. But the difference is, of course, caused by our
terminologies. Without referential transparency, however,
single-assignment is more like a gesture than an actual property of
language, because you can then write programs that basically use recursion
only to loop and perform calculation by (for example, in the case of
Erlang) sending and receiving messages.

> any problem as entirely referentially transparent, but is it worth the
> extra work?  My guess is, not always.  It makes sense for things that
> really are functions.  It makes a lot less sense for things that really do
> change state.

Well, the amount of extra work it takes depends a lot on what you're used 
to. The Haskell solution is, retain ref.trans., cast away lazy evaluation 
when it comes to I/O. Lazy K's solution does not even cast away lazy 
evaluation. The reason lazy evaluation is sometimes hard to fit with 
current systems is that current systems are not designed for use with lazy 
evaluation. Erlang also casts away ref.trans. with I/O. Give and take...

By the way, we really seem to have deep terminological differences. You 
talk about functional programs not having "state". But of course they do - 
that's what data structures contain! You talk about functional programs 
not changing state. But they do - by mapping old states to new ones. 
There's nothing in the essence of functional programming that somehow 
disagrees with state. 

> What abstraction does is put a black box around something.  What's inside
> that box can't see out, and what's outside can't see in.  Whenever
> something inside this box affects something outside that box, without
> going through its "surface" (interface), that is (as near as I can tell) a
> side effect, and in that case the box is not perfectly black.

Actually, I think the more the box has "interface" the less it is black. 
Tho only way for a box to be totally black is not to provide any interface 
at all. But let's go on.

> So by this definition, I/O is a side effect unless the entire
> communication is retained so that we can regard it as internal and
> unchanging wrt our black box.  The more complex the I/O (networks,
> databases etc), the more difficult this is to do.  What we end up doing is
> to pass the entire world, more or less, as the argument and return the new
> entire world as the result to each box.  Looks to me like that defeats the
> purpose of the box being black, since now the stuff inside the box can see
> (and alter) arbitrary parts of the outside world in question.

Now, now. Of course the functional _program_ has to get the whole world as
parameter (yes, with retaining semantics), because it might need any
service. The program then may pass only parts of the world to its parts.  
Apparently you haven't really looked into Haskell's I/O model, because you 
think it's that hard to accommodate I/O in a functional, referentially 
transparent framework. Besides, lazy evaluation really does take away the 
distinction between client / server code - neither is the program a 
service to the world or vice versa, they are interdependent entities.

Features lost by Haskell's framework:
- lazy evaluation (in the full monad, for example dealing with multiple 
  filehandles)
- guarantees of what will happen if you both read and write some file (as 
  if there ever were much of these in Unix)

Features retained by Haskell's framework:
- referential transparency
- abstraction of world
- possibility to divide the world in pieces

Features gained by Haskell's framework:
- retaining world state if needed (lazy input streams get memoised and are 
  discarded automatically by gc)
- cross-dependential pure concurrency models

> Lazy database updates sound good until there's a power outage... or access
> time constraints...

Saving a lazy data structure is not different from marshalling an ordinary
one. Power outages are able to break anything. Access time constraints are
an interesting one - lazy functional languages make it more difficult to
handle these, but I've never dealt with a DBMS that really did guarantee
and keep access time constraints.

> a flush as an operation.  Isn't it somewhat hypocritical to claim that one
> style of programming is a "higher" level of abstraction than another, but
> at the same time they're "just" different models and any examination of
> how a model works is an 'ontological question'?  Try as I might I cannot

Huh? You can also look at the world on different levels of abstraction, 
like the particle level or the object/property level, but that does not 
tell you anything of how the world "really" is. So yes: how the world (or 
some model) really works is a question of free choice.

> believe the universe is stateless, because quite obviously at any given
> time I can describe it's state, which may change at any given time under
> circumstances far beyond my control or even my comprehension.  The only

I must point out that the above is a gross contradiction - how can you 
describe something which changes beyond your comprehension? But I'll still 
try to explain how you can see the world as a purely functional network 
(not as stateless). Thisnk the world comprises of lists of states for all 
objects in the world. Then the objects read each other's states and 
produce new states in their own list, depending on this input. You can't 
handle the whole world's state for two reasons (in addition to limited 
processing capabilities): first, the world's state might depend on your 
observations (this is a property of quantum mechanics the concurrent model 
has hard time explaining); second, some object's state might be totally 
independent of you observation, so that you can never know how far the 
actual object has gone - you can only read its "track". This is equal to 
people not being able to test some object's properties. In my view, 
functional network explains the world far better than concurrency...

> way I can believe it's stateless is if I consciously ignore its state
> (which is what we're doing with functional programming.)  This is what
> abstraction is all about, consciously ignoring things.  And while I

With functional abstraction, you're actually adding information about the 
world, because you can to some extent recover the world's past state. So 
I'm not ignoring things - all the information is there, it's just in a 
different format. And the thing we're ignoring in functional programming 
is not world's state - quite on the contrary, it's made very explicit - 
but ordre of evaluation.

> And if you've never seen awkward operator overloading, I'd guess you've
> probably never programmed in BASIC, Perl, or PL/I...

I have in BASIC (AppleBasic for Apple II c), I don't remember it having 
any kind of operator overloading... Perl's operator overloading is handy 
but ugly, so I don't think that counts as awkward. PL/I, I haven't 
used...

-- 

Am fuar -> symb <- am fesh
atehwa@iki.fi







From esoteric@oiva.sange.fi Sat Mar 23 00:23:01 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oXR3-0001TW-00; Sat, 23 Mar 2002 00:22:57 +0200
Received: with LISTAR (v0.129a; list misc); Sat, 23 Mar 2002 00:22:46 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oXQd-0001TQ-00; Sat, 23 Mar 2002 00:22:32 +0200
Received: with LISTAR (v0.129a; list lang); Sat, 23 Mar 2002 00:22:25 +0200 (EET)
Received: from pandora.tiscali.nl ([195.241.76.179])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oXQR-0001TK-00
	for lang@esoteric.sange.fi; Sat, 23 Mar 2002 00:22:20 +0200
Received: from dds.nl (xs241-231-60.dial.tiscali.nl [195.241.231.60])
	by pandora.tiscali.nl (Postfix) with ESMTP id 4EA4736CEA
	for <lang@esoteric.sange.fi>; Fri, 22 Mar 2002 23:22:13 +0100 (MET)
Sender: root@pandora.tiscali.nl
Message-ID: <3C9BAD92.B18E2288@dds.nl>
Date: Fri, 22 Mar 2002 23:17:55 +0100
From: Milo van Handel <mwq@dds.nl>
Organization: Milo-Soft
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.3-5 i586)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: [Kayak] Sorting! (note: bugfix attached)
References: <Pine.LNX.4.44.0203220804460.24091-100000@melkinpaasi.cs.Helsinki.FI>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
X-list: misc

Panu A Kalliokoski wrote:

> > On reversed input, no sorting algorithm can go faster than O(n^2), since there are
> > O(n^2) operations necessary for the swappings even if you know in advance that the
>
> This only holds for sorting algorithms that never swap non-adjacent cells.
> Algorithms that may swap non-adjacent cells, like quicksort, heapsort,
> mergesort, shellsort, radix-sort and so on, have usually a worst-case
> performance (not average) of O(n*log n). Interestingly, shellsort actually
> is just a non-locally swapping version of bubblesort.

You're right, I should think before I type.

> > I don't know insertion sort, but I might have reinvented the wheel.  And bubble
> > sort goes like this:
> > 1. Perform step 2 for i=n...2 (counting backwards).
> > 2. Perform step 3 for j=1...i-1.
> > 3. Compare character j with character j+1 and swap if necessary.
>
> Well, it's very hard to come up with new sorting algorithms any more.
> (Many non-obvious ones, like random-sort and genetic-sort, have also been
> invented already.)

What are those?  Random-sort sounds like it might be similar to bogosort (look in the
Jargon File, it's an algorithm that permutes the string randomly and then checks
whether it succeeded, then repeats as often as necessary - the ultimate example of an
it-couldn't-be-worse algrorithm, if it can even be called an algorithm, but it does
work), but is probably slightly more intelligent than that.

> As for bubble sort, I did remember eventually how it
> works, but as you can see, it's quite depndent on arrays with destructive
> update, so I wonder if the algorithm makes any ssense in a setup where you
> do not have those...

You can implement bubble sort in Kayak, but it won't be reversible, because given the
string "abc", bubble sort will compare the "a" with the "b", then the "b" with the "c",
and then - here's the problem - the "a" with the "b".

> > the "z bb" problem.  The new version recognizes when a=b and then
> > randomly (from the bit bucket) claims either a<b or a>=b.  Since this
> > came from the bit bucket in the first place, it can (and has to) go back
> > without breaking reversibility.
>
> Programming in Kayak certainly seems to bring up interesting issues with
> reversible algorithms :)

Also the converse: it's becuase the reversibility issues that Kayak is so interesting,
without them it would just be YAFOL (Yet Another Few-Operator Language).







From esoteric@oiva.sange.fi Sat Mar 23 00:29:54 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oXXl-0001V9-00; Sat, 23 Mar 2002 00:29:53 +0200
Received: with LISTAR (v0.129a; list misc); Sat, 23 Mar 2002 00:29:46 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oXXb-0001Uo-00; Sat, 23 Mar 2002 00:29:43 +0200
Received: with LISTAR (v0.129a; list lang); Sat, 23 Mar 2002 00:29:36 +0200 (EET)
Received: from ctb-mesg2.saix.net ([196.25.240.74])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oXXS-0001Ua-00
	for lang@esoteric.sange.fi; Sat, 23 Mar 2002 00:29:34 +0200
Received: from lennie (woc53-01-p145.wc.saix.net [155.239.129.145])
	by ctb-mesg2.saix.net (8.11.4/8.11.4) with SMTP id g2MMTPT16931
	for <lang@esoteric.sange.fi>; Sat, 23 Mar 2002 00:29:29 +0200 (SAT)
Message-ID: <008901c1d1f0$46871a60$9181ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: <lang@esoteric.sange.fi>
References: <Pine.LNX.4.44.0203211028290.15150-100000@melkinpaasi.cs.Helsinki.FI>
Subject: [lang] Re: Prnfoff, BAK, Wassisname, Fromage, Tabarnac, Brainffft, Best ?
Date: Fri, 22 Mar 2002 09:51:04 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

Panu A Kalliokoski,

> :) Prnfoff is the name of a person. BAK and Fromage are his languages, and
> I was asking for them on this list exactly because they've vanished.
> Wassisname is a word implying that I have difficulties remembering some
> other word: it is a contraction of the clause "What was its name?".
> Tabarnac, Brainffft and BEST can be found at this list's archive,
>
> http://esoteric.sange.fi/archive/

Oo' Sorry! I thought "Prnfoff" and "Wassisname" where esoteric languages -
My bad English ! <g> :-)

> Your e (exclamation) language can be seen as brainfuck's offspring, and
> you might want to add it to the language database once it becomes
> functional - that's a paradigm shift for you. (Just in case, the last
> remark was a joke. No, don't ask what it meant.)

Ok! I'm now working on a version with unlimited memory cells, looping (like
BrainFuck) and simple maths ! :) Will make an announcement.

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Sat Mar 23 00:29:57 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oXXo-0001VK-00; Sat, 23 Mar 2002 00:29:56 +0200
Received: with LISTAR (v0.129a; list misc); Sat, 23 Mar 2002 00:29:50 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oXXc-0001Uv-00; Sat, 23 Mar 2002 00:29:44 +0200
Received: with LISTAR (v0.129a; list lang); Sat, 23 Mar 2002 00:29:37 +0200 (EET)
Received: from ctb-mesg2.saix.net ([196.25.240.74])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oXXU-0001Uc-00
	for lang@esoteric.sange.fi; Sat, 23 Mar 2002 00:29:36 +0200
Received: from lennie (woc53-01-p145.wc.saix.net [155.239.129.145])
	by ctb-mesg2.saix.net (8.11.4/8.11.4) with SMTP id g2MMTVT16972
	for <lang@esoteric.sange.fi>; Sat, 23 Mar 2002 00:29:31 +0200 (SAT)
Message-ID: <008b01c1d1f0$47e60e20$9181ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: <lang@esoteric.sange.fi>
References: <Pine.LNX.4.44.0203192337570.28536-100000@melkinpaasi.cs.Helsinki.FI>
Subject: [lang] Re: Quine In e lang ?
Date: Fri, 22 Mar 2002 10:12:07 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

Panu A Kalliokoski,

> At least the language totally lacks capabilities that ensure a quine can
> be written (i.e. it has insufficient expressive power for defining a fixed
> point combinator). If some quine exists, it does so by sheer luck. I don't
> remember the innards or your language thoroughly, but I guess the empty
> program is also a quine in e.

Ok! The next release will have unlimited memory cells, looping (like
Brainfuck) and simple maths!

Why do you say that an empty program is also like a quine ?

> By the way, e presents people with almost no challenge because it is
> heavily under-TC and has operational semantics very similar to those of
> brainfuck. How about coming up with a new language?

The e language is just my idea of writting something useful with exclamation
marks (!) Because may people (like my lecturer from last year !) think that
exclamations have no good meanings in programming (or in the computer world
at all!) By making it more base on BrainFuck (like Ook!, L00P etc) make it
more turing complete! Almost all languages are eather base on INTERCAL or
Befunge... Others (like mine) take BrainFuck as its offspring ! :)

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Sat Mar 23 00:29:57 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oXXo-0001VI-00; Sat, 23 Mar 2002 00:29:56 +0200
Received: with LISTAR (v0.129a; list misc); Sat, 23 Mar 2002 00:29:49 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oXXb-0001Ut-00; Sat, 23 Mar 2002 00:29:43 +0200
Received: with LISTAR (v0.129a; list lang); Sat, 23 Mar 2002 00:29:36 +0200 (EET)
Received: from ctb-mesg2.saix.net ([196.25.240.74])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oXXS-0001Ub-00
	for lang@esoteric.sange.fi; Sat, 23 Mar 2002 00:29:35 +0200
Received: from lennie (woc53-01-p145.wc.saix.net [155.239.129.145])
	by ctb-mesg2.saix.net (8.11.4/8.11.4) with SMTP id g2MMTUT16964
	for <lang@esoteric.sange.fi>; Sat, 23 Mar 2002 00:29:30 +0200 (SAT)
Message-ID: <008a01c1d1f0$47369440$9181ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: <lang@esoteric.sange.fi>
References: <012701c1cf68$c2e94360$6f81ef9b@lennie> <010a01c1cf6d$c0abe440$3900a8c0@amir>
Subject: [lang] Re: Quine In e lang ?
Date: Fri, 22 Mar 2002 09:54:50 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

Hello!

> It is too limited. You only have 10 memory cells (but that can be
increased
> easily, so it's not a problem), and you can't loop, and it (in almost any
> case) prevents you from writing quines.

The next release will have unlimited memory cells, looping (like Brainfuck)
and simple maths ! :) Would it then be possible to write a quine ? It will
then be turing-complete !

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Sat Mar 23 00:29:58 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oXXq-0001VP-00; Sat, 23 Mar 2002 00:29:58 +0200
Received: with LISTAR (v0.129a; list misc); Sat, 23 Mar 2002 00:29:51 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oXXf-0001V1-00; Sat, 23 Mar 2002 00:29:47 +0200
Received: with LISTAR (v0.129a; list lang); Sat, 23 Mar 2002 00:29:39 +0200 (EET)
Received: from ctb-mesg2.saix.net ([196.25.240.74])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oXXW-0001Ul-00
	for lang@esoteric.sange.fi; Sat, 23 Mar 2002 00:29:38 +0200
Received: from lennie (woc53-01-p145.wc.saix.net [155.239.129.145])
	by ctb-mesg2.saix.net (8.11.4/8.11.4) with SMTP id g2MMTYT16997
	for <lang@esoteric.sange.fi>; Sat, 23 Mar 2002 00:29:34 +0200 (SAT)
Message-ID: <008d01c1d1f0$499a74e0$9181ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: "EsoLang Lang" <lang@esoteric.sange.fi>
Subject: [lang] VALGOL I or II ?
Date: Fri, 22 Mar 2002 11:10:07 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

Hello!

I want any information on VALGOL I or II... I only have a Meta II version of
the language (don't have a Meta II machine and Meta II is very old !) but
don't seam to find anything else! I want a downloadable
compiler/interpreter, complete detail documentation, examples etc. I may
want to write my own interpreter for VALGOL (or my own custom VALGOL
dialect)

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Sat Mar 23 01:09:39 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oY9q-0001c9-00; Sat, 23 Mar 2002 01:09:14 +0200
Received: with LISTAR (v0.129a; list misc); Sat, 23 Mar 2002 01:09:07 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oY8F-0001c3-00; Sat, 23 Mar 2002 01:07:35 +0200
Received: with LISTAR (v0.129a; list lang); Sat, 23 Mar 2002 01:07:28 +0200 (EET)
Received: from dark.darkweb.com ([216.163.74.170])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oY87-0001bx-00
	for lang@esoteric.sange.fi; Sat, 23 Mar 2002 01:07:27 +0200
Received: from localhost (benrg@localhost)
	by dark.darkweb.com (8.9.3/8.9.3) with ESMTP id PAA03433
	for <lang@esoteric.sange.fi>; Fri, 22 Mar 2002 15:07:12 -0800
Date: Fri, 22 Mar 2002 15:07:12 -0800 (PST)
From: Ben Rudiak-Gould <benrg@dark.darkweb.com>
To: Esoteric languages <lang@esoteric.sange.fi>
Subject: [lang] Re: [Kayak] Sorting!
In-Reply-To: <3C98FC93.327C8420@dds.nl>
Message-ID: <Pine.LNX.4.21.0203221450380.15669-100000@dark.darkweb.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: benrg@dark.darkweb.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: benrg@dark.darkweb.com
Precedence: bulk
X-list: misc

On Wed, 20 Mar 2002, Milo van Handel wrote:

> This is a working character sort utility for arbitrary length strings!  
> It is careful in the use of the bit bucket (or so I think, I haven't
> tried to prove it, but it should be possible, probably with induction
> to the string size), so you can run it in reverse on an already sorted
> string to generate a random order.

Very cool.

> The distribution, however, is not even - if the bit bucket has an even
> distribution (which it does in this implementation), then the program prefers
> to shuffle less over more, as is both evident from the algorithm (which
> requires more bits to be exactly right for reversal than for changing nothing)
> and determined by experiment.

I'm not sure an even distribution of permutations is even possible for
N>2. Permutations have to be represented in the bit bucket by prefix-free
codes, but any such code has a 1/2^k probability of occurring at random,
and 2^k can't equal N! for any N>2. You would have to assign infinitely
many prefix-free codes of unbounded length to each permutation, chosen so
that their probabilities add up to 1/N!. I guess it might be possible, but
it would be very tricky.

> However, all permutations should eventually show up.  Of course, there
> are very many permutations, so you will probably need to be immortal
> at the very least.

Actually, all you need to be is unethical, so you can hack the RNG. :-)

-- Ben






From esoteric@oiva.sange.fi Sat Mar 23 03:49:29 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oaea-0002i6-00; Sat, 23 Mar 2002 03:49:08 +0200
Received: with LISTAR (v0.129a; list misc); Sat, 23 Mar 2002 03:49:01 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oacl-0002ek-00; Sat, 23 Mar 2002 03:47:15 +0200
Received: with LISTAR (v0.129a; list lang); Sat, 23 Mar 2002 03:47:08 +0200 (EET)
Received: from dark.darkweb.com ([216.163.74.170])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oacd-0002ee-00
	for lang@esoteric.sange.fi; Sat, 23 Mar 2002 03:47:07 +0200
Received: from localhost (benrg@localhost)
	by dark.darkweb.com (8.9.3/8.9.3) with ESMTP id RAA07282
	for <lang@esoteric.sange.fi>; Fri, 22 Mar 2002 17:46:57 -0800
Date: Fri, 22 Mar 2002 17:46:57 -0800 (PST)
From: Ben Rudiak-Gould <benrg@dark.darkweb.com>
To: Esoteric languages <lang@esoteric.sange.fi>
Subject: [lang] Re: [Kayak] Sorting!
In-Reply-To: <Pine.LNX.4.44.0203211015480.15150-100000@melkinpaasi.cs.Helsinki.FI>
Message-ID: <Pine.LNX.4.21.0203221507420.15669-100000@dark.darkweb.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: benrg@dark.darkweb.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: benrg@dark.darkweb.com
Precedence: bulk
X-list: misc

On Thu, 21 Mar 2002, Panu A Kalliokoski wrote:

> Cool to see stuff like this, by the way. (Though I still think the bit 
> bucket should not be seen as immediately emitting bits as heat, but rather 
> as redirected to the upper levels just in case some program would make use 
> of the discarded bits, so as to reduce heating.)

Even if the bits are not used, the system might prefer to losslessly move
the bits to the physical edge of the machine before destroying them, to
simplify cooling. In any case, I agree that the disposition of the bits
should be at the system's discretion, not the program's.

But this doesn't mean that bits pushed into the bit bucket should
necessarily be preserved until program exit. A Kayak program can run for
an arbitrarily long time and accumulate a lot of garbage; the system might
want to dispose of it sooner rather than later. Perhaps it would be better
to leave this up to the implementation. Unfortunately, saying that the
bits might disappear is no different from saying that they do.

"Practical" issues on nonexistent hardware aside, I'd rather preserve the
bits simply because it's more reversible. The C++ interpreter preserves
the bits and future versions will continue to do so.

-- Ben






From esoteric@oiva.sange.fi Sat Mar 23 10:17:58 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ogiW-0003ED-00; Sat, 23 Mar 2002 10:17:36 +0200
Received: with LISTAR (v0.129a; list misc); Sat, 23 Mar 2002 10:17:29 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oggK-0003CB-00; Sat, 23 Mar 2002 10:15:20 +0200
Received: with LISTAR (v0.129a; list lang); Sat, 23 Mar 2002 10:15:13 +0200 (EET)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16oggD-0003C5-00
	for lang@esoteric.sange.fi; Sat, 23 Mar 2002 10:15:13 +0200
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g2N8F8r28470
	for <lang@esoteric.sange.fi>; Sat, 23 Mar 2002 10:15:08 +0200
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g2N8F2e12181
	for <lang@esoteric.sange.fi>; Sat, 23 Mar 2002 10:15:05 +0200
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Sat, 23 Mar 2002 10:15:02 +0200 (EET)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: lang@esoteric.sange.fi
Subject: [lang] Re: Quine In e lang ?
In-Reply-To: <008b01c1d1f0$47e60e20$9181ef9b@lennie>
Message-ID: <Pine.LNX.4.44.0203230955420.11061-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc

On Fri, 22 Mar 2002, D De Villiers wrote:
> The next release will have unlimited memory cells, looping (like Brainfuck)
> and simple maths ! :) Would it then be possible to write a quine ? It will
> then be turing-complete !

It is certainly possible to write a quine in any Turing-complete language.

> > point combinator). If some quine exists, it does so by sheer luck. I don't
> > remember the innards or your language thoroughly, but I guess the empty
> > program is also a quine in e.
> Why do you say that an empty program is also like a quine ?

Well, in many languages empty programs produce empty output, so the output
is equal to the program. This complieswith the definition of quine.

> exclamations have no good meanings in programming (or in the computer world

Hm. I tend to think that exclamation points have little use in natural 
language (during the three-four years I've been posting to the list, 
Iguess my exclamation point total does not exceed 20). And I discard most 
exclamation-point-containing advertisements without looking at them. On 
the other hand, in programming languages exclamation points do have their 
use. For example, I find C's usage of ! for the not operator quite 
intuitive. Erlang's message passing operator is !, and that is neatly 
orthogonal with bang paths used in UUCP networks. In probabilistic and 
combinatorial mathematics the shorthand of using ! for factorial is 
indispensable for the readability of the formulae.

Panu

-- 

Am fuar -> symb <- am fesh
atehwa@iki.fi







From esoteric@oiva.sange.fi Sat Mar 23 11:23:02 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ohji-0003Kp-00; Sat, 23 Mar 2002 11:22:54 +0200
Received: with LISTAR (v0.129a; list misc); Sat, 23 Mar 2002 11:22:47 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ohj5-0003Ke-00; Sat, 23 Mar 2002 11:22:15 +0200
Received: with LISTAR (v0.129a; list lang); Sat, 23 Mar 2002 11:22:07 +0200 (EET)
Received: from ctb-mesg2.saix.net ([196.25.240.74])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ohiw-0003KR-00
	for lang@esoteric.sange.fi; Sat, 23 Mar 2002 11:22:06 +0200
Received: from lennie (woc53-01-p230.wc.saix.net [155.239.129.230])
	by ctb-mesg2.saix.net (8.11.4/8.11.4) with SMTP id g2N9M2T14224
	for <lang@esoteric.sange.fi>; Sat, 23 Mar 2002 11:22:02 +0200 (SAT)
Message-ID: <011f01c1d24b$6f94fde0$e681ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: <lang@esoteric.sange.fi>
References: <Pine.GSO.3.96.1020318121536.17876A-100000@rama>
Subject: [lang] Re: TECO ?
Date: Sat, 23 Mar 2002 11:09:38 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

John Colagioia,

> For the last few years, I've used it in my Programming Languages
> course, as an illustration of from where many languages arise (i.e.,
> software configuration and scripting).

Thanks! For your reply :))

Isn't it hard for someone (your students) to learn TECO because of its
esoteric syntax ? If they've no programming knowledge/experience etc.

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Sat Mar 23 11:23:08 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ohji-0003Kq-00; Sat, 23 Mar 2002 11:22:54 +0200
Received: with LISTAR (v0.129a; list misc); Sat, 23 Mar 2002 11:22:47 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ohj5-0003Kd-00; Sat, 23 Mar 2002 11:22:15 +0200
Received: with LISTAR (v0.129a; list lang); Sat, 23 Mar 2002 11:22:07 +0200 (EET)
Received: from ctb-mesg2.saix.net ([196.25.240.74])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ohiw-0003KS-00
	for lang@esoteric.sange.fi; Sat, 23 Mar 2002 11:22:06 +0200
Received: from lennie (woc53-01-p230.wc.saix.net [155.239.129.230])
	by ctb-mesg2.saix.net (8.11.4/8.11.4) with SMTP id g2N9M3T14229
	for <lang@esoteric.sange.fi>; Sat, 23 Mar 2002 11:22:03 +0200 (SAT)
Message-ID: <012001c1d24b$703cd6a0$e681ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: <lang@esoteric.sange.fi>
References: <20020319044748.29467.qmail@web13503.mail.yahoo.com>
Subject: [lang] Re: TECO ?
Date: Sat, 23 Mar 2002 11:11:23 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

Hello!

> Apparently so --- from an HD-resident, aging Simtel
> index, I get:
>
> ftp://ftp.simtel.net/pub/simtelnet/msdos/editor/pctco295.zip
> 62968  8  960228  PCTECO: Fully implemented TECO-11
> editor clone
>
> ftp://ftp.simtel.net/pub/simtelnet/msdos/editor/teco.zip
> 20743  8  860714  The TECO editor
> If the version of Windows you're using has real DOS,
> at least one of them
> should work.

Thank You! ;))

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Sat Mar 23 15:03:55 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16olBS-0003hT-00; Sat, 23 Mar 2002 15:03:46 +0200
Received: with LISTAR (v0.129a; list misc); Sat, 23 Mar 2002 15:03:39 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16olAY-0003hH-00; Sat, 23 Mar 2002 15:02:50 +0200
Received: with LISTAR (v0.129a; list lang); Sat, 23 Mar 2002 15:02:43 +0200 (EET)
Received: from rama.poly.edu ([128.238.10.212])
	by oiva.sange.fi with smtp (Exim 3.33 #1)
	id 16olAP-0003h7-00
	for lang@esoteric.sange.fi; Sat, 23 Mar 2002 15:02:41 +0200
Received: (qmail 7924 invoked by uid 20150); 23 Mar 2002 13:02:07 -0000
Date: Sat, 23 Mar 2002 08:02:06 -0500 (EST)
From: John Colagioia <jcolag@rama.poly.edu>
X-Sender: jcolag@rama
To: lang@esoteric.sange.fi
Subject: [lang] Re: TECO ?
In-Reply-To: <011f01c1d24b$6f94fde0$e681ef9b@lennie>
Message-ID: <Pine.GSO.3.96.1020323074834.7851B-100000@rama>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: jcolag@rama.poly.edu
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: jcolag@rama.poly.edu
Precedence: bulk
X-list: misc

On Sat, 23 Mar 2002, D De Villiers wrote:
> John Colagioia,
> > For the last few years, I've used it in my Programming Languages
> > course, as an illustration of from where many languages arise (i.e.,
> > software configuration and scripting).
> Thanks! For your reply :))
> Isn't it hard for someone (your students) to learn TECO because of its
> esoteric syntax ? If they've no programming knowledge/experience etc.

It's a graduate-level Computer Science course, so they have programming
experience.  My goal in the course (which differs significantly from
the school's goal, but that doesn't bother anybody much) is to get the
students to the point where they know what to look for when learning a
new language.

A typical semester involves assignments in APL, Befunge, BrainF***,
RUBE, TECO, and the like (Inform, too, but that's hardly "esoteric" in
the same sense of the word), in addition to assignments like "build
your own integer arithmetic using the non-numerical features of
Prolog," "implement a recursive algorithm without using language-level
recursion," and so on. 

This is a direct reaction/protest to the textbook I am required to use,
which appears to cover such widely diverse languages as C++, Java,
LISP, and PERL, with occasional lip service to Prolog and other such
"obscure" languages.  Argh.






From esoteric@oiva.sange.fi Sat Mar 23 19:49:17 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16opdK-0004C0-00; Sat, 23 Mar 2002 19:48:50 +0200
Received: with LISTAR (v0.129a; list misc); Sat, 23 Mar 2002 19:48:44 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16opcQ-0004Bt-00; Sat, 23 Mar 2002 19:47:54 +0200
Received: with LISTAR (v0.129a; list lang); Sat, 23 Mar 2002 19:47:47 +0200 (EET)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16opcH-0004Bn-00
	for lang@esoteric.sange.fi; Sat, 23 Mar 2002 19:47:45 +0200
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g2NHlir23193
	for <lang@esoteric.sange.fi>; Sat, 23 Mar 2002 19:47:44 +0200
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g2NHlcw07268
	for <lang@esoteric.sange.fi>; Sat, 23 Mar 2002 19:47:38 +0200
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Sat, 23 Mar 2002 19:47:38 +0200 (EET)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: lang@esoteric.sange.fi
Subject: [lang] [monads] A small library for Ocaml
Message-ID: <Pine.LNX.4.44.0203231929160.6272-200000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="-696251126-1638782119-1016905658=:6272"
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---696251126-1638782119-1016905658=:6272
Content-Type: TEXT/PLAIN; charset=US-ASCII


Here is a small library that uses a functor to elevate most common
operations into a monad. If you give the continuation monad to the
functor, for example, and then "open" the resulting structure, you should
be able to do most of your programming within the monad, with relatively
similar syntax to the one you'd normally be using. (Constants have to be
"return"ed, because there is no way to redefine constants in Ocaml. Maybe
some shorthand operator could be of some use.)

For example, to program in a list monad one would use:

open Monad

module MList : Monad = 
  struct
    type 'a m = 'a list
    let bind l1 f = List.concat (List.map f l1)
    let return a = [a]
    let failure () = []
  end

module ListOps = MonadOps(MList)

open ListOps
.... code here

I was also going to implement a library for monoids, but I couldn't come 
up with any relevant operations (or I did with a few, but not enough to 
make sense to build a functor: join, guard). Most of the monad operations 
are from the Haskell library, though I rewrite them based on the 
description.

Panu

-- 

Am fuar -> symb <- am fesh
atehwa@iki.fi


---696251126-1638782119-1016905658=:6272
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="monad.ml"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.44.0203231947380.6272@melkinpaasi.cs.Helsinki.FI>
Content-Description: 
Content-Disposition: attachment; filename="monad.ml"

DQptb2R1bGUgdHlwZSBNb25hZCA9DQogIHNpZw0KICAgIHR5cGUgJ2EgbQ0K
ICAgIHZhbCByZXR1cm4gOiAnYSAtPiAnYSBtDQogICAgdmFsIGJpbmQgOiAn
YSBtIC0+ICgnYSAtPiAnYiBtKSAtPiAnYiBtDQogICAgdmFsIGZhaWx1cmUg
OiB1bml0IC0+ICdhIG0NCiAgZW5kDQoNCm1vZHVsZSBNb25hZE9wcyAoTSA6
IE1vbmFkKSA9DQogIHN0cnVjdA0KICAgIHR5cGUgJ2EgbSA9ICdhIE0ubQ0K
DQogICAgbGV0IHJldHVybiA9IE0ucmV0dXJuDQogICAgbGV0ICg+Pj0pIG1h
IG1iID0gdHJ5IE0uYmluZCBtYSBtYiB3aXRoIE1hdGNoX2ZhaWx1cmUgXyAt
PiBNLmZhaWx1cmUgKCkNCiAgICBsZXQgKD4+PikgbWEgbWIgPSBtYSA+Pj0g
ZnVuIF8gLT4gbWINCg0KICAgIGxldCBtYXAgZiBtYSA9IG1hID4+PSBmdW4g
YSAtPiByZXR1cm4gKGYgYSkNCiAgICBsZXQgKCQkKSBtZiBtYSA9IG1mID4+
PSBmdW4gZiAtPiBtYXAgZiBtYQ0KICAgIGxldCBqb2luIG1tYSA9IG1tYSA+
Pj0gZnVuIG1hIC0+IG1hDQogICAgbGV0IG1hcDIgZiBtYSBtYiA9IG1hID4+
PSBmdW4gYSAtPiBtYiA+Pj0gZnVuIGIgLT4gcmV0dXJuIChmIGEgYikNCiAg
ICBsZXQgbWFwMyBmIG1hIG1iIG1jID0gbWEgPj49IGZ1biBhIC0+IG1hcDIg
KGYgYSkgbWIgbWMNCg0KICAgIGxldCAofi0pID0gbWFwICh+LSkNCiAgICBs
ZXQgKCspID0gbWFwMiAoKykNCiAgICBsZXQgKC0pID0gbWFwMiAoLSkNCiAg
ICBsZXQgKCAqICkgPSBtYXAyICggKiApDQogICAgbGV0ICgvKSA9IG1hcDIg
KC8pDQogICAgbGV0IChtb2QpID0gbWFwMiAobW9kKQ0KDQogICAgbGV0ICg9
KiApIGEgYiA9IG1hcDIgKD0pIGEgYg0KICAgIGxldCAoPCogKSBhIGIgPSBt
YXAyICg8KSBhIGINCiAgICBsZXQgKD4qICkgYSBiID0gbWFwMiAoPikgYSBi
DQogICAgbGV0ICg8PSogKSBhIGIgPSBtYXAyICg8PSkgYSBiDQogICAgbGV0
ICg+PSogKSBhIGIgPSBtYXAyICg+PSkgYSBiDQogICAgbGV0ICg8PiogKSBh
IGIgPSBtYXAyICg8PikgYSBiDQoNCiAgICBsZXQgKD09KiApIGEgYiA9IG1h
cDIgKD09KSBhIGINCiAgICBsZXQgKCE9KiApIGEgYiA9IG1hcDIgKCE9KSBh
IGINCg0KICAgIGxldCBub3QgPSBtYXAgbm90DQogICAgbGV0ICgmJikgPSBt
YXAyICgmJikNCiAgICBsZXQgKHx8KSA9IG1hcDIgKHx8KQ0KDQogICAgbGV0
ICheKSA9IG1hcDIgKF4pDQogICAgbGV0IChAKSBhIGIgPSBtYXAyIChAKSBh
IGINCg0KICAgIGxldCByZWMgZm9sZGxMIG1vcCBhY2MgPSBmdW5jdGlvbg0K
ICAgICAgfAlbXSAtPiByZXR1cm4gYWNjDQogICAgICB8IHggOjogeHMgLT4g
bW9wIGFjYyB4ID4+PSBmdW4gcmVzIC0+IGZvbGRsTCBtb3AgcmVzIHhzDQoN
CiAgICBsZXQgcmVjIGZvbGRyTCBtb3AgaW5pdCA9IGZ1bmN0aW9uDQogICAg
ICB8CVtdIC0+IHJldHVybiBpbml0DQogICAgICB8CXggOjogeHMgLT4gZm9s
ZHJMIG1vcCBpbml0IHhzID4+PSBmdW4gcmVzIC0+IG1vcCB4IHJlcw0KDQog
ICAgbGV0IG1hcEwgbW9wIGxpc3QgPSBmb2xkckwgDQoJKGZ1biBlbG0gYWNj
IC0+IG1vcCBlbG0gPj49IGZ1biByZXMgLT4gcmV0dXJuIChyZXMgOjogYWNj
KSkgW10gbGlzdA0KDQogICAgbGV0IG1hcExfIG1vcCBsaXN0ID0gZm9sZGxM
CShmdW4gKCkgZWxtIC0+IG1vcCBlbG0pICgpIGxpc3QNCg0KICAgIGxldCBm
aWx0ZXJMIG1wcmVkIGxpc3QgPSBmb2xkckwNCgkoZnVuIGVsbSBhY2MgLT4g
bXByZWQgZWxtID4+PSBmdW4gYiAtPg0KCSAgaWYgYiB0aGVuIHJldHVybiAo
ZWxtIDo6IGFjYykgZWxzZSByZXR1cm4gYWNjKSBbXSBsaXN0DQoNCiAgICBs
ZXQgcmVjIHppcEwgbW9wIGRzIGJzID0NCiAgICAgIG1hdGNoIChkcywgYnMp
IHdpdGgNCiAgICAgIHwJW10sIF8gfCBfLCBbXSAtPiByZXR1cm4gW10NCiAg
ICAgIHwJZCA6OiBkcywgYiA6OiBicyAtPg0KCSAgbW9wIGQgYiA+Pj0gZnVu
IGMgLT4gDQoJICAgIHppcEwgbW9wIGRzIGJzID4+PSBmdW4gY3MgLT4gcmV0
dXJuIChjIDo6IGNzKQ0KDQogICAgbGV0IHJlYyB6aXBMXyBtb3AgZHMgYnMg
PQ0KICAgICAgbWF0Y2ggKGRzLCBicykgd2l0aA0KICAgICAgfAlbXSwgXyB8
IF8sIFtdIC0+IHJldHVybiAoKQ0KICAgICAgfAlkIDo6IGRzLCBiIDo6IGJz
IC0+IG1vcCBkIGIgPj4+IHppcExfIG1vcCBkcyBicw0KDQogICAgbGV0IHJl
YyBzZXF1ZW5jZSA9IGZ1bmN0aW9uDQogICAgICB8CVtdIC0+IHJldHVybiBb
XQ0KICAgICAgfAl4IDo6IHhzIC0+IHggPj49IGZ1biB5IC0+DQoJICBzZXF1
ZW5jZSB4cyA+Pj0gZnVuIHlzIC0+IHJldHVybiAoeSA6OiB5cykNCg0KICAg
IGxldCByZWMgc2VxdWVuY2VfID0gZnVuY3Rpb24NCiAgICAgIHwJW10gLT4g
cmV0dXJuICgpDQogICAgICB8CXggOjogeHMgLT4geCA+Pj4gc2VxdWVuY2Vf
IHhzDQoNCiAgZW5kDQo=
---696251126-1638782119-1016905658=:6272--





From esoteric@oiva.sange.fi Sat Mar 23 23:53:18 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16otRc-0004fq-00; Sat, 23 Mar 2002 23:53:00 +0200
Received: with LISTAR (v0.129a; list misc); Sat, 23 Mar 2002 23:52:53 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16otQR-0004fi-00; Sat, 23 Mar 2002 23:51:47 +0200
Received: with LISTAR (v0.129a; list lang); Sat, 23 Mar 2002 23:51:40 +0200 (EET)
Received: from pandora.tiscali.nl ([195.241.76.179])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16otQJ-0004fc-00
	for lang@esoteric.sange.fi; Sat, 23 Mar 2002 23:51:39 +0200
Received: from dds.nl (xs241-239-95.dial.tiscali.nl [195.241.239.95])
	by pandora.tiscali.nl (Postfix) with ESMTP id BAE0B36C5A
	for <lang@esoteric.sange.fi>; Sat, 23 Mar 2002 22:51:18 +0100 (MET)
Sender: root@pandora.tiscali.nl
Message-ID: <3C9CF2B1.52DC3B29@dds.nl>
Date: Sat, 23 Mar 2002 22:25:05 +0100
From: Milo van Handel <mwq@dds.nl>
Organization: Milo-Soft
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.3-5 i586)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: [Kayak] Sorting! (reversible merge sort)
References: <Pine.LNX.4.44.0203211015480.15150-100000@melkinpaasi.cs.Helsinki.FI> <3C9A4F19.A30D6FD1@dds.nl> <20020322053919.A10628@irz601.inf.tu-dresden.de>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
X-list: misc

Bertram Felgenhauer wrote:

> > As for the bug fix, my program wasn't fully reversible after all.
>
> Hmm, the same happened to me with the merge sort program ...

It's easy to overlook, because sorting algorithms generally think in terms of
"less than" and "greater than", and there no real place for "equal to".  By the
way, both of our sorting programs solve the problem by randomizing the
comparison if it is equal.  Another approach (I think) would be to check for
equality when discarding the comparison, which (with some algorithms, probably
not all) has the added benefit of stability (that is, two characters which are
equal are kept in place - useless when examining only characters, but important
for larger data types which have extra data that is not sorted along).

Another interesting thing to note is that mergesort has a more even
distribution
of permutations than insertion sort (I looked it up and concluded that it is
indeed the algorithm used in my sorting program) when run in reverse.  This can
be explained from the times: insertion sort "likes" certainpermutations better
than others when given as imput, and therefore also "likes" them more as
output.
Here, the first "likes" means that it can sort it quickly, while the second
"likes" means that is has a higher chance of choosing it.  Mergesort, on the
other hand, takes about the same time for any permutations, and therefore also
has about equal chances.  And quicksort, which is normally very fast but knows
some pathological cases, will almost never output said pathological cases
(which,
in some implementations, include the sorted list!).  It's interesting what one
can see about an algorithm by reversing it, even though it was never intended
to be reversed in the first place.

By the way, have you submitted your mergesort program to the Iron Programmer
category of the Essies?






From esoteric@oiva.sange.fi Sun Mar 24 00:19:24 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16otr6-0004kB-00; Sun, 24 Mar 2002 00:19:20 +0200
Received: with LISTAR (v0.129a; list misc); Sun, 24 Mar 2002 00:19:14 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16otqn-0004k4-00; Sun, 24 Mar 2002 00:19:01 +0200
Received: with LISTAR (v0.129a; list lang); Sun, 24 Mar 2002 00:18:54 +0200 (EET)
Received: from rebecca.tiscali.nl ([195.241.76.181])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16otqg-0004jy-00
	for lang@esoteric.sange.fi; Sun, 24 Mar 2002 00:18:54 +0200
Received: from dds.nl (xs241-239-95.dial.tiscali.nl [195.241.239.95])
	by rebecca.tiscali.nl (Postfix) with ESMTP id 290838A3149
	for <lang@esoteric.sange.fi>; Sat, 23 Mar 2002 23:18:51 +0100 (MET)
Sender: root@rebecca.tiscali.nl
Message-ID: <3C9CFEC7.DC7B53E3@dds.nl>
Date: Sat, 23 Mar 2002 23:16:39 +0100
From: Milo van Handel <mwq@dds.nl>
Organization: Milo-Soft
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.3-5 i586)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: [Kayak] Sorting!
References: <Pine.LNX.4.21.0203221507420.15669-100000@dark.darkweb.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
X-list: misc

Ben Rudiak-Gould wrote:

> On Thu, 21 Mar 2002, Panu A Kalliokoski wrote:
>
> > Cool to see stuff like this, by the way. (Though I still think the bit
> > bucket should not be seen as immediately emitting bits as heat, but rather
> > as redirected to the upper levels just in case some program would make use
> > of the discarded bits, so as to reduce heating.)
>
> But this doesn't mean that bits pushed into the bit bucket should
> necessarily be preserved until program exit. A Kayak program can run for
> an arbitrarily long time and accumulate a lot of garbage; the system might
> want to dispose of it sooner rather than later. Perhaps it would be better
> to leave this up to the implementation. Unfortunately, saying that the
> bits might disappear is no different from saying that they do.

Also, if you keep around the bit bucket, then you still need only one bit
bucket for the whole system (rather than per program), so multitasking programs
will ruin the bit bucket.

> I'd rather preserve the
> bits simply because it's more reversible.

It matters with code like "(bb|in) {bb[z|x]bb bb[x|z]bb} (out|bb)", but I don't
think anyone would actually do such a thing.  Of course, I've been wrong more
often...

> The C++ interpreter preserves
> the bits and future versions will continue to do so.

But the point is, is this behaviour required for a valid implementation or is
it only a feature of this particular one?  If I write my own implementation of
Kayak, which does not preserve the bit bucket, then is that a valid
implementation according to the specifications?  This last question is
particularly important if anyone ever want to make a Kayak-in-Kayak
interpreter, which could implement the bit bucket in the interpreted program
with its own bit bucket, but might also use the bit bucket itself, thereby
clobbering it with bits that weren't put there by the interpreted program.






From esoteric@oiva.sange.fi Sun Mar 24 06:06:16 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ozGU-0005X1-00; Sun, 24 Mar 2002 06:05:54 +0200
Received: with LISTAR (v0.129a; list misc); Sun, 24 Mar 2002 06:05:47 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ozFo-0005Wv-00; Sun, 24 Mar 2002 06:05:12 +0200
Received: with LISTAR (v0.129a; list lang); Sun, 24 Mar 2002 06:05:05 +0200 (EET)
Received: from mail.inf.tu-dresden.de ([141.76.2.1])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ozFb-0005Wl-00
	for lang@esoteric.sange.fi; Sun, 24 Mar 2002 06:04:59 +0200
Received: from irz601.inf.tu-dresden.de (irz601.inf.tu-dresden.de [141.76.2.66])
	by mail.inf.tu-dresden.de (8.11.2/8.11.2) with ESMTP id g2O44rm08495
	for <lang@esoteric.sange.fi>; Sun, 24 Mar 2002 05:04:53 +0100 (MET)
Received: (from bf3@localhost)
	by irz601.inf.tu-dresden.de (8.10.2+Sun/8.10.2) id g2O44rg29273
	for lang@esoteric.sange.fi; Sun, 24 Mar 2002 05:04:53 +0100 (MET)
Date: Sun, 24 Mar 2002 05:04:53 +0100
From: Bertram Felgenhauer <bf3@mail.inf.tu-dresden.de>
To: lang@esoteric.sange.fi
Subject: [lang] Re: [Kayak] Sorting! (reversible merge sort)
Message-ID: <20020324050453.A28896@irz601.inf.tu-dresden.de>
References: <Pine.LNX.4.44.0203211015480.15150-100000@melkinpaasi.cs.Helsinki.FI> <3C9A4F19.A30D6FD1@dds.nl> <20020322053919.A10628@irz601.inf.tu-dresden.de> <3C9CF2B1.52DC3B29@dds.nl>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 0.95.1i
In-Reply-To: <3C9CF2B1.52DC3B29@dds.nl>; from Milo van Handel on Sat, Mar 23, 2002 at 10:25:05PM +0100
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: bf3@mail.inf.tu-dresden.de
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: bf3@mail.inf.tu-dresden.de
Precedence: bulk
X-list: misc

Milo van Handel wrote:
[result of comparison if the two compared values are equal]
> It's easy to overlook, because sorting algorithms generally think in terms of
> "less than" and "greater than", and there no real place for "equal to".  By 
> the way, both of our sorting programs solve the problem by randomizing the
> comparison if it is equal. 

I think that's the easier way and goes with fewer changes to the
program, so it was the obvious one to choose.

> Another approach (I think) would be to check for
> equality when discarding the comparison,

Hmm, the tricky part is to check for the same equality when the program is
run in reverse ... looks like this is a nontrivial problem with merge sort;
with insertion sort, you can simply check the two elements you would've
swapped when running the program forward for equality, like (pseudocode)

equal (a|b|aeb). << test a=b (equal should use aeb|aeb to return true) >>
aeb | [
  less (a|b|alb).
  alb [ swap (a|b). ] bb
] | aeb
equal (a|b|aeb). << cancel out change above >>

> which (with some algorithms, probably not all)
> has the added benefit of stability. [...]

An example where this isn't true is Mergesort, which is pretty hard
(although, as I feel, not impossible) to make do stable sorting.

> Another interesting thing to note is that mergesort has a more even
> distribution
> of permutations than insertion sort (I looked it up and concluded that it is
> indeed the algorithm used in my sorting program) when run in reverse.
> This can
> be explained from the times: insertion sort "likes" certainpermutations better
> than others when given as imput, and therefore also "likes" them more as
> output.
> Here, the first "likes" means that it can sort it quickly, while the second
> "likes" means that is has a higher chance of choosing it.  Mergesort, on the
> other hand, takes about the same time for any permutations, and therefore also
> has about equal chances.

To be precise, Mergesort for 2^n elements takes between n*2^(n-1) and
(n-1)*2^n+1 comparisons, each of which contributes one bit to the bit
bucket, while insertion sort takes, for n elements, between n-1 and 
n*(n-1)/2 comparisons. This means that for 64 elements, there are
permutations with probabilities ranging from 2^-321 to 2^-192, which
is pretty far from a truly even distribution, but better than the
2^-2016..2^-63 of insertion sort.

> By the way, have you submitted your mergesort program to the Iron Programmer
> category of the Essies?

No, for the deadline was over (I think) when I wrote the program and I'm
not sure it fits the category ... after all, the Mergesort was just the
theme ingredient, not the whole dish ...

Bertram

-- 
    `.oo'     "Do not meddle in the affairs of Wizards, for they
 ,.  (`-'   are subtle and quick to anger."        -- J.R.R. Tolkien
'^\`-' )      "Do not meddle in the affairs of wizards, for you
   c-L'-    are crunchy and good with ketchup."    -- Terry Pratchett





From esoteric@oiva.sange.fi Sun Mar 24 06:12:18 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ozMe-0005YA-00; Sun, 24 Mar 2002 06:12:16 +0200
Received: with LISTAR (v0.129a; list misc); Sun, 24 Mar 2002 06:12:10 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ozMW-0005Y3-00; Sun, 24 Mar 2002 06:12:08 +0200
Received: with LISTAR (v0.129a; list lang); Sun, 24 Mar 2002 06:12:01 +0200 (EET)
Received: from mail.inf.tu-dresden.de ([141.76.2.1])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ozMO-0005Xx-00
	for lang@esoteric.sange.fi; Sun, 24 Mar 2002 06:12:00 +0200
Received: from irz601.inf.tu-dresden.de (irz601.inf.tu-dresden.de [141.76.2.66])
	by mail.inf.tu-dresden.de (8.11.2/8.11.2) with ESMTP id g2O4Bxm08614
	for <lang@esoteric.sange.fi>; Sun, 24 Mar 2002 05:11:59 +0100 (MET)
Received: (from bf3@localhost)
	by irz601.inf.tu-dresden.de (8.10.2+Sun/8.10.2) id g2O4BwZ29301
	for lang@esoteric.sange.fi; Sun, 24 Mar 2002 05:11:58 +0100 (MET)
Date: Sun, 24 Mar 2002 05:11:58 +0100
From: Bertram Felgenhauer <bf3@mail.inf.tu-dresden.de>
To: lang@esoteric.sange.fi
Subject: [lang] Re: [Kayak] Sorting!
Message-ID: <20020324051158.B28896@irz601.inf.tu-dresden.de>
References: <Pine.LNX.4.21.0203221507420.15669-100000@dark.darkweb.com> <3C9CFEC7.DC7B53E3@dds.nl>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 0.95.1i
In-Reply-To: <3C9CFEC7.DC7B53E3@dds.nl>; from Milo van Handel on Sat, Mar 23, 2002 at 11:16:39PM +0100
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: bf3@mail.inf.tu-dresden.de
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: bf3@mail.inf.tu-dresden.de
Precedence: bulk
X-list: misc

Milo van Handel wrote:
> Ben Rudiak-Gould wrote:
> > I'd rather preserve the
> > bits simply because it's more reversible.
> 
> It matters with code like "(bb|in) {bb[z|x]bb bb[x|z]bb} (out|bb)", but I don't
> think anyone would actually do such a thing.  Of course, I've been wrong more
> often...

Hmm, I'd also prefer the bit bucket to keep the bits pushed on it
around, for the simple reason that if we do that it actually behaves
like a stack [0], that is, like everything else around ... meaning that

silly (a|b) { a b b a } (a|b) function

is guaranteed not to modify a nor b, even if b happens to be
the bit bucket. Otherwise, the possibility of a variable being the
bit bucket complicates reasoning about programs and may open up
possibilities for subtle bugs (not that it matters much with
a toy language like this).

Bertram

[0] just with a sequence of random bits at the bottom instead of
    a sequence of zeroes

-- 
    `.oo'     "Do not meddle in the affairs of Wizards, for they
 ,.  (`-'   are subtle and quick to anger."        -- J.R.R. Tolkien
'^\`-' )      "Do not meddle in the affairs of wizards, for you
   c-L'-    are crunchy and good with ketchup."    -- Terry Pratchett





From esoteric@oiva.sange.fi Sun Mar 24 14:50:15 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16p7RB-0006UE-00; Sun, 24 Mar 2002 14:49:29 +0200
Received: with LISTAR (v0.129a; list misc); Sun, 24 Mar 2002 14:49:22 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16p7PK-0006Tx-00; Sun, 24 Mar 2002 14:47:34 +0200
Received: with LISTAR (v0.129a; list lang); Sun, 24 Mar 2002 14:47:27 +0200 (EET)
Received: from [212.16.6.108] (helo=frox25.dhs.org)
	by oiva.sange.fi with smtp (Exim 3.33 #1)
	id 16p7PB-0006Tr-00
	for lang@esoteric.sange.fi; Sun, 24 Mar 2002 14:47:25 +0200
Received: (qmail 20569 invoked from network); 24 Mar 2002 12:37:13 -0000
Received: from heartw.ih (10.0.17.4)
  by nova.ih with SMTP; 24 Mar 2002 12:37:13 -0000
Date: Sun, 24 Mar 2002 15:39:46 +0300
From: Mtv Europe <mtve@frox25.dhs.org>
X-Mailer: The Bat! (v1.49) Personal
X-Priority: 3 (Normal)
Message-ID: <6677394705.20020324153946@frox25.dhs.org>
To: lang@esoteric.sange.fi
Subject: [lang] [Kayak] another quine
In-reply-To: <15510.10950.112798.102058@gargle.gargle.HOWL>
References: <3C94F28E.82F3DE92@dds.nl>
 <15510.10950.112798.102058@gargle.gargle.HOWL>
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="----------6F1E08B3D714826"
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mtve@frox25.dhs.org
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mtve@frox25.dhs.org
Precedence: bulk
X-list: misc

------------6F1E08B3D714826
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hello All!

Monday, March 18, 2002, 8:58:30 PM, David Fletcher wrote:

> A more compact version would be possible - the generated source is ~78K.

After yours and Milo's, third quine on Kayak appears in attachment.

> It can be run backwards with itself as input, producing the null string.

Unfortunately, for compactness this one is not reversible.

> I have a suggestion for benrg too: it would be good if source codes
> could work backwards without having to invert the various types of
> bracket.

More shorter quine (3 bits per char) would be possible if in
language specification we replace curved brackets with squared
(How long Brainf*ck will influence on eso-language design? :)

Thank you, Ben!  Kayak is very interesting!

I also have Kayak interpreter on Perl.   It works good on small programs,
but fails on big quines (looks like 40000 recursive calls for Perl are
too much).   Is somebody interested?

--
Mtv Europe

Kayak answer to question about universe and everything is:
(e|i){}(e|i)
------------6F1E08B3D714826
Content-Type: application/octet-stream; name="quine-mtve.kayak"
Content-Transfer-Encoding: x-uue
Content-Disposition: attachment; filename="quine-mtve.kayak"

begin 644 quine-mtve.kayak
M,"@Q*7LP?#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P(#$@
M,'PQ(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P
M(#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,'PQ(#!\
M,2`P(#$@,'PQ(#`@,2`P(#$@,"`Q(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,"`Q
M(#`@,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ(#!\,2`P(#$@,'PQ(#!\,2`P(#$@
M,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#`@,2`P
M?#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#!\
M,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,"`Q
M(#`@,2`P(#$@,'PQ(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P?#$@
M,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P(#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P
M(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#`@
M,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P(#$@,"`Q(#!\,2`P(#$@,'PQ
M(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P(#$@
M,"`Q(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P
M?#$@,"`Q(#!\,2`P(#$@,"`Q(#`@,2`P?#$@,'PQ(#`@,2`P(#$@,'PQ(#`@
M,2`P(#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ
M(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P(#$@
M,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P
M(#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#`@,2`P(#$@,'PQ(#`@
M,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q
M(#`@,2`P(#$@,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P?#$@
M,'PQ(#`@,2`P(#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P
M?#$@,"`Q(#`@,2`P(#$@,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P(#$@,'PQ(#`@
M,2`P(#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,"`Q(#!\,2`P?#$@,"`Q
M(#`@,2`P?#$@,"`Q(#`@,2`P(#$@,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P(#$@
M,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P
M?#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,"`Q(#!\
M,2`P(#$@,"`Q(#`@,2`P(#$@,'PQ(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q
M(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P(#$@
M,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P
M?#$@,"`Q(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\
M,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P?#$@,'PQ
M(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,"`Q(#`@,2`P(#$@,'PQ(#`@,2`P(#$@
M,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#`@,2`P?#$@,'PQ(#`@,2`P
M(#$@,'PQ(#`@,2`P(#$@,"`Q(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,"`Q(#!\
M,2`P(#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ
M(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P?#$@
M,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P
M(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#!\
M,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P(#$@,"`Q(#`@,2`P?#$@,"`Q
M(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#`@,2`P(#$@,"`Q(#`@,2`P?#$@
M,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P
M(#$@,"`Q(#`@,2`P(#$@,'PQ(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#`@
M,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P(#$@,"`Q(#!\,2`P(#$@,'PQ
M(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P(#$@
M,"`Q(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P
M(#$@,"`Q(#!\,2`P(#$@,"`Q(#`@,2`P(#$@,'PQ(#`@,2`P?#$@,'PQ(#`@
M,2`P?#$@,"`Q(#!\,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q
M(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P?#$@
M,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#!\,2`P
M(#$@,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P?#$@,'PQ(#!\
M,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q
M(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,"`Q(#`@,2`P(#$@
M,'PQ(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,'PQ(#`@,2`P
M?#$@,"`Q(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#`@
M,2`P(#$@,'PQ(#`@,2`P?#$@,'PQ(#`@,2`P(#$@,"`Q(#`@,2`P?#$@,'PQ
M(#!\,2`P?#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P(#$@
M,'PQ(#`@,2`P?#$@,'PQ(#`@,2`P(#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P
M?#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P(#$@,'PQ(#!\,2`P(#$@,"`Q(#!\
M,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q
M(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P(#$@
M,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P
M(#$@,"`Q(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\
M,2`P(#$@,"`Q(#!\,2`P(#$@,"`Q(#`@,2`P(#$@,'PQ(#`@,2`P?#$@,'PQ
M(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#!\,2`P(#$@
M,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P
M(#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,"`Q(#!\
M,2`P(#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ
M(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,'PQ(#`@,2`P?#$@
M,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P
M(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P(#$@,"`Q(#`@,2`P?#$@,"`Q(#!\
M,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q
M(#!\,2`P(#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,"`Q(#`@,2`P?#$@
M,"`Q(#!\,2`P?#$@,"`Q(#`@,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ(#!\,2`P
M(#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#!\
M,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P?#$@,'PQ
M(#!\,2`P(#$@,'PQ(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P?#$@
M,"`Q(#!\,2`P(#$@,"`Q(#`@,2`P(#$@,'PQ(#`@,2`P?#$@,'PQ(#`@,2`P
M(#$@,"`Q(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P?#$@,"`Q(#!\
M,2`P(#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#!\,2`P(#$@,'PQ
M(#`@,2`P(#$@,'PQ(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P(#$@
M,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P(#$@,"`Q(#`@,2`P(#$@,'PQ(#!\,2`P
M?#$@,'PQ(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,'PQ(#`@
M,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q
M(#!\,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P?#$@
M,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#`@,2`P
M?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,"`Q(#`@
M,2`P(#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ
M(#`@,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P?#$@
M,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P
M?#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P(#$@,"`Q(#!\,2`P?#$@,"`Q(#!\
M,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,"`Q
M(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P?#$@
M,"`Q(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P
M?#$@,"`Q(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#`@
M,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P(#$@,"`Q
M(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P(#$@
M,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,"`Q(#`@,2`P(#$@,'PQ(#!\,2`P
M(#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@
M,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q
M(#!\,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P?#$@
M,"`Q(#`@,2`P(#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#`@,2`P
M?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,'PQ(#`@
M,2`P(#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ
M(#`@,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P(#$@,"`Q(#`@,2`P?#$@
M,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P
M?#$@,"`Q(#`@,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,"`Q(#!\
M,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,"`Q
M(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P?#$@
M,"`Q(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P
M(#$@,"`Q(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#`@
M,2`P?#$@,"`Q(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q
M(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P(#$@
M,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P(#$@,"`Q(#`@,2`P(#$@,'PQ(#!\,2`P
M?#$@,'PQ(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,"`Q(#!\
M,2`P?#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q
M(#`@,2`P(#$@,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P(#$@,"`Q(#`@,2`P(#$@
M,'PQ(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#`@,2`P
M?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\
M,2`P(#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,"`Q(#`@,2`P?#$@,"`Q
M(#!\,2`P?#$@,"`Q(#`@,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ(#!\,2`P(#$@
M,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P
M(#$@,"`Q(#`@,2`P?#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P(#$@,"`Q(#`@
M,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P(#$@,"`Q
M(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P(#$@
M,"`Q(#!\,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P(#$@,"`Q(#!\,2`P
M(#$@,"`Q(#!\,2`P(#$@,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P(#$@,'PQ(#`@
M,2`P?#$@,"`Q(#!\,2`P?#$@,"`Q(#`@,2`P(#$@,'PQ(#!\,2`P(#$@,'PQ
M(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P(#$@
M,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P
M(#$@,'PQ(#`@,2`P(#$@,"`Q(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,"`Q(#`@
M,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ(#!\,2`P(#$@,'PQ(#!\,2`P(#$@,'PQ
M(#!\,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,'PQ(#`@,2`P?#$@
M,"`Q(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#`@,2`P
M(#$@,'PQ(#`@,2`P?#$@,'PQ(#`@,2`P(#$@,"`Q(#`@,2`P?#$@,'PQ(#!\
M,2`P?#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ
M(#`@,2`P(#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P?#$@
M,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P(#$@,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P
M(#$@,"`Q(#`@,2`P(#$@,'PQ(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#`@
M,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,"`Q
M(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P(#$@
M,"`Q(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,"`Q(#`@,2`P(#$@,"`Q(#!\,2`P
M?#$@,'PQ(#!\,2`P(#$@,'PQ(#!\,2`P(#$@,'PQ(#!\,2`P(#$@,'PQ(#`@
M,2`P?#$@,"`Q(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q
M(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#`@,2`P(#$@,'PQ(#`@,2`P?#$@
M,'PQ(#`@,2`P(#$@,"`Q(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P
M?#$@,"`Q(#!\,2`P?#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P?#$@,'PQ(#!\
M,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ
M(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,"`Q(#`@,2`P?#$@,"`Q(#!\,2`P?#$@
M,"`Q(#`@,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ(#!\,2`P(#$@,'PQ(#!\,2`P
M(#$@,'PQ(#!\,2`P?#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P?#$@,'PQ(#!\
M,2`P?#$@,"`Q(#`@,2`P(#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ
M(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P?#$@
M,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P
M(#$@,'PQ(#!\,2`P(#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#`@
M,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,"`Q
M(#!\,2`P(#$@,"`Q(#`@,2`P(#$@,'PQ(#`@,2`P?#$@,'PQ(#`@,2`P(#$@
M,"`Q(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P
M(#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@
M,2`P(#$@,'PQ(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,"`Q
M(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#!\,2`P(#$@
M,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P
M(#$@,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P(#$@,"`Q(#`@,2`P(#$@,'PQ(#!\
M,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q
M(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,'PQ(#`@,2`P(#$@
M,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P
M?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#`@
M,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P(#$@,"`Q(#`@,2`P?#$@,'PQ
M(#`@,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P(#$@
M,'PQ(#`@,2`P(#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P
M?#$@,"`Q(#`@,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,"`Q(#!\
M,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P(#$@,"`Q
M(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P(#$@
M,"`Q(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P
M?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P(#$@,"`Q(#!\
M,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ
M(#`@,2`P(#$@,"`Q(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P(#$@
M,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#!\,2`P
M(#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@
M,2`P(#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ
M(#`@,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,'PQ(#`@,2`P?#$@
M,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,"`Q(#`@,2`P
M(#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@
M,2`P?#$@,"`Q(#`@,2`P(#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ
M(#`@,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P?#$@
M,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P
M(#$@,"`Q(#`@,2`P(#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#`@
M,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,"`Q
M(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P(#$@
M,"`Q(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P
M(#$@,"`Q(#!\,2`P(#$@,"`Q(#`@,2`P(#$@,'PQ(#!\,2`P(#$@,'PQ(#`@
M,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P(#$@,"`Q
M(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#!\,2`P(#$@
M,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P
M(#$@,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P(#$@,"`Q(#`@,2`P(#$@,'PQ(#!\
M,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,"`Q
M(#!\,2`P?#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P?#$@
M,"`Q(#`@,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ(#!\,2`P(#$@,'PQ(#!\,2`P
M(#$@,'PQ('TH,2DQ(#$H,7PR?#,I>S%;,"`R(#!\,B`Q6S$@,B`P?#(@,'PR
M(#%;,'PP73$@,"`R(#%\,B`P?#)=?%LR?#(@,5LP?#(@,"`R(#!\,B`P(#(@
M,"`R(#$@,EU\6S%;,'PR(#`@,B`P(#(@,"`R77Q;,GPR(#!\,B`P?#(@,'PR
M(#!\,ETS(#`@,B`P(#)=,UTS(#!\,B`Q*#%\,GPS*3)=?%LQ6S`@,B`P(#(@
M,'PR(#!\,B`P(#(@,"`R(#$@,B`Q(#(@,'PR(#$H,7PR?#,I,ETS73-]*#%\
M,GPS*3(@,2@Q?#)\,RE[,"`Q,2`P(#$Q(#!\,3$@,"`Q,2`Q?#$Q(#`@,3$@
M,"`Q,2`P?#$Q(#!\,3$@,"`Q,2`P?#$Q(#`@,3$@,'PQ,2`P(#$Q(#`@,3$@
M,'PQ,2`Q*#$Q?#)\,RDR?2@Q?#)\,RDQ(#$H,7PR?#,I>S%;,'PP77Q;,5LP
M?#!=,5U\,2`P6S$H,7PR?#,I,2`Q*#%\,GPS*3$@,2@Q?#)\,RDQ(#$H,7PR
M?#,I,2`Q*#%\,GPS*3-=,WTH,7PR?#,I,R@S?#$Q*7LP*#$I,2`Q*#%\,GPS
M*3(@,"@Q*3$@,2@Q?#)\,RDS(#`@,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@
M,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ
8(#!\,2`P?#$@,2@Q?#)\,RDR?2@R?#,I
`
end

------------6F1E08B3D714826--







From esoteric@oiva.sange.fi Sun Mar 24 19:06:00 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pBR6-0006y9-00; Sun, 24 Mar 2002 19:05:40 +0200
Received: with LISTAR (v0.129a; list misc); Sun, 24 Mar 2002 19:05:30 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pBPO-0006xp-00; Sun, 24 Mar 2002 19:03:54 +0200
Received: with LISTAR (v0.129a; list lang); Sun, 24 Mar 2002 19:03:48 +0200 (EET)
Received: from ctb-mesg1.saix.net ([196.25.240.73])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pBPG-0006xh-00
	for lang@esoteric.sange.fi; Sun, 24 Mar 2002 19:03:46 +0200
Received: from lennie (woc53-01-p145.wc.saix.net [155.239.129.145])
	by ctb-mesg1.saix.net (8.11.4/8.11.4) with SMTP id g2OH22K20634
	for <lang@esoteric.sange.fi>; Sun, 24 Mar 2002 19:02:03 +0200 (SAT)
Message-ID: <004701c1d354$de395f20$9181ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: <lang@esoteric.sange.fi>
References: <008d01c1d1f0$499a74e0$9181ef9b@lennie>
Subject: [lang] Re: VALGOL I or II ?
Date: Sun, 24 Mar 2002 18:49:53 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

> I want any information on VALGOL I or II... I only have a Meta II version
of
> the language (don't have a Meta II machine and Meta II is very old !) but
> don't seam to find anything else! I want a downloadable
> compiler/interpreter, complete detail documentation, examples etc. I may
> want to write my own interpreter for VALGOL (or my own custom VALGOL
> dialect)

GeeeeWizzz ! Anything ?

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Sun Mar 24 19:06:04 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pBRD-0006yF-00; Sun, 24 Mar 2002 19:05:47 +0200
Received: with LISTAR (v0.129a; list misc); Sun, 24 Mar 2002 19:05:40 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pBPT-0006xv-00; Sun, 24 Mar 2002 19:03:59 +0200
Received: with LISTAR (v0.129a; list lang); Sun, 24 Mar 2002 19:03:52 +0200 (EET)
Received: from ctb-mesg1.saix.net ([196.25.240.73])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pBPJ-0006xn-00
	for lang@esoteric.sange.fi; Sun, 24 Mar 2002 19:03:50 +0200
Received: from lennie (woc53-01-p145.wc.saix.net [155.239.129.145])
	by ctb-mesg1.saix.net (8.11.4/8.11.4) with SMTP id g2OH1XK20555
	for <lang@esoteric.sange.fi>; Sun, 24 Mar 2002 19:01:46 +0200 (SAT)
Message-ID: <004601c1d354$d6fcf460$9181ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: "EsoLang Lang" <lang@esoteric.sange.fi>
References: <Pine.LNX.4.44.0203230955420.11061-100000@melkinpaasi.cs.Helsinki.FI>
Subject: [lang] ANN: Stupid Quine In e !
Date: Sun, 24 Mar 2002 17:03:05 +0200
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary="----=_NextPart_000_0026_01C1D355.C3AD9B20"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

This is a multi-part message in MIME format.

------=_NextPart_000_0026_01C1D355.C3AD9B20
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

Panu A Kalliokoski,

> Well, in many languages empty programs produce empty output, so the output
> is equal to the program. This complieswith the definition of quine.

The file-attachment (stupidquine.e) is the first e language quine. It only
have comments (no exclamation mark instructions), no output and produce no
output. So the output is equal to the program.

I call it "stupid"-"quine" because its not a "real" working quine (no
challenge there) And only go with the definition of a quine.

If do get to write a "real" (no stupid) quine (with my next e lang release)
then please email me at ddevilliers@lando.co.za And I'll include it in the
"Quine" section on the e lang website.

> Hm. I tend to think that exclamation points have little use in natural
> language (during the three-four years I've been posting to the list,
> Iguess my exclamation point total does not exceed 20). And I discard most
> exclamation-point-containing advertisements without looking at them. On
> the other hand, in programming languages exclamation points do have their
> use. For example, I find C's usage of ! for the not operator quite
> intuitive. Erlang's message passing operator is !, and that is neatly
> orthogonal with bang paths used in UUCP networks. In probabilistic and
> combinatorial mathematics the shorthand of using ! for factorial is
> indispensable for the readability of the formulae.

At least the e language can do something usefull with exclamation marks,
even if its just writting the "Hello World!" ! Alot more than other
langauges can do.

In some languages its use for a comment indicator (I think Python). So you
say its wrong for using it as output command?
--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------



------=_NextPart_000_0026_01C1D355.C3AD9B20
Content-Type: application/octet-stream;
	name="stupidquine.e"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="stupidquine.e"

StupidQuine.e

A simple stupid quine in the e language=20

In the theory of a quine an empty program produce empty=20
output so the output is equal to the program=20

This is not a real quine - no challenge If you do write a real quine =
then please email it
to me at ddevilliers@lando.co.za

------=_NextPart_000_0026_01C1D355.C3AD9B20--






From esoteric@oiva.sange.fi Sun Mar 24 20:37:37 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pCrt-0007F9-00; Sun, 24 Mar 2002 20:37:25 +0200
Received: with LISTAR (v0.129a; list misc); Sun, 24 Mar 2002 20:37:18 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pCqn-0007F0-00; Sun, 24 Mar 2002 20:36:17 +0200
Received: with LISTAR (v0.129a; list lang); Sun, 24 Mar 2002 20:36:10 +0200 (EET)
Received: from smtp-send.myrealbox.com ([192.108.102.143])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pCqf-0007Eu-00
	for lang@esoteric.sange.fi; Sun, 24 Mar 2002 20:36:09 +0200
Received: from amir amirlb@smtp-send.myrealbox.com [62.219.233.153]
	by smtp-send.myrealbox.com with Novell NIMS $Revision:   2.88  $ on Novell NetWare;
	Sun, 24 Mar 2002 11:36:01 -0700
Message-ID: <021101c1d362$692bf9f0$3900a8c0@amir>
From: <amirlb@myrealbox.com>
To: <lang@esoteric.sange.fi>
References: <Pine.LNX.4.44.0203230955420.11061-100000@melkinpaasi.cs.Helsinki.FI> <004601c1d354$d6fcf460$9181ef9b@lennie>
Subject: [lang] Re: ANN: Stupid Quine In e !
Date: Sun, 24 Mar 2002 20:33:30 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2919.6700
X-MIMEOLE: Produced By Microsoft MimeOLE V5.00.2919.6700
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: amirlb@myrealbox.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: amirlb@myrealbox.com
Precedence: bulk
X-list: misc

> The file-attachment (stupidquine.e) is the first e language quine. It only
> have comments (no exclamation mark instructions), no output and produce no
> output. So the output is equal to the program.

Well, the source file is not empty, yet it doesn't produce any output, so
the source isn't equal to the output, therefore it is not a quine.

--
Bad spellers of the world UNTIE!
          lightstep (Amir Livne)






From esoteric@oiva.sange.fi Sun Mar 24 20:38:58 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pCtN-0007Fc-00; Sun, 24 Mar 2002 20:38:57 +0200
Received: with LISTAR (v0.129a; list misc); Sun, 24 Mar 2002 20:38:50 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pCtE-0007FW-00; Sun, 24 Mar 2002 20:38:48 +0200
Received: with LISTAR (v0.129a; list lang); Sun, 24 Mar 2002 20:38:42 +0200 (EET)
Received: from [212.16.6.108] (helo=frox25.dhs.org)
	by oiva.sange.fi with smtp (Exim 3.33 #1)
	id 16pCt7-0007FQ-00
	for lang@esoteric.sange.fi; Sun, 24 Mar 2002 20:38:41 +0200
Received: (qmail 24296 invoked from network); 24 Mar 2002 18:28:25 -0000
Received: from heartw.ih (10.0.17.4)
  by nova.ih with SMTP; 24 Mar 2002 18:28:25 -0000
Date: Sun, 24 Mar 2002 21:31:03 +0300
From: Mtv Europe <mtve@frox25.dhs.org>
X-Mailer: The Bat! (v1.49) Personal
X-Priority: 3 (Normal)
Message-ID: <5698475215.20020324213103@frox25.dhs.org>
To: "EsoLang Lang" <lang@esoteric.sange.fi>
Subject: [lang] Re: ANN: Stupid Quine In e !
In-reply-To: <004601c1d354$d6fcf460$9181ef9b@lennie>
References:
 <Pine.LNX.4.44.0203230955420.11061-100000@melkinpaasi.cs.Helsinki.FI>
 <004601c1d354$d6fcf460$9181ef9b@lennie>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mtve@frox25.dhs.org
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mtve@frox25.dhs.org
Precedence: bulk
X-list: misc

Hello All!

Sunday, March 24, 2002, 6:03:05 PM, Lennie De Villiers wrote:

> The file-attachment (stupidquine.e) is the first e language quine. It only
> have comments (no exclamation mark instructions), no output and produce no
> output. So the output is equal to the program.

Looks like your home page unavailable now, so all the following relate to
version 1.0 of 'e' (according e_10_C.zip package obtained from archive)

First of all, beware!  Your referrer C implementation contains
security hole (buffer overflow).

Second, because of absence any control structures and highly linear
structure of language I believe it's impossible to write (normal) quine.

And third, a little consolation - here is 'e' v1.0 interpreter on Perl
with one line and seven exclamation marks:

#! /usr/bin/perl -n
y/!1/1!/+s/1+/$&%9<5?$&<17?$![$!]:$!+=$&%9%2*2-1:printf$&%3?'%d':'%c',$![$!]/ge

> (with my next e lang release)

New language design ideas are always welcome.

-- 
Mtv Europe!







From esoteric@oiva.sange.fi Mon Mar 25 00:21:14 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pGLc-0007m5-00; Mon, 25 Mar 2002 00:20:20 +0200
Received: with LISTAR (v0.129a; list misc); Mon, 25 Mar 2002 00:20:13 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pGIY-0007ln-00; Mon, 25 Mar 2002 00:17:10 +0200
Received: with LISTAR (v0.129a; list lang); Mon, 25 Mar 2002 00:17:03 +0200 (EET)
Received: from rebecca.tiscali.nl ([195.241.76.181])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pGIQ-0007lh-00
	for lang@esoteric.sange.fi; Mon, 25 Mar 2002 00:17:02 +0200
Received: from dds.nl (xs241-210-26.dial.tiscali.nl [195.241.210.26])
	by rebecca.tiscali.nl (Postfix) with ESMTP id 9D4078A4177
	for <lang@esoteric.sange.fi>; Sun, 24 Mar 2002 23:16:57 +0100 (MET)
Sender: root@rebecca.tiscali.nl
Message-ID: <3C9D043E.4D412DD6@dds.nl>
Date: Sat, 23 Mar 2002 23:39:58 +0100
From: Milo van Handel <mwq@dds.nl>
Organization: Milo-Soft
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.3-5 i586)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: Quine In e lang ?
References: <Pine.LNX.4.44.0203230955420.11061-100000@melkinpaasi.cs.Helsinki.FI>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
X-list: misc

Panu A Kalliokoski wrote:

> On Fri, 22 Mar 2002, D De Villiers wrote:
> > The next release will have unlimited memory cells, looping (like Brainfuck)
> > and simple maths ! :) Would it then be possible to write a quine ? It will
> > then be turing-complete !
>
> It is certainly possible to write a quine in any Turing-complete language.

Not quite, it also needs sufficient I/O capabilities (well, only O actually, but
I never said that "sufficient" is a lot).

> > > point combinator). If some quine exists, it does so by sheer luck. I don't
> > > remember the innards or your language thoroughly, but I guess the empty
> > > program is also a quine in e.
> > Why do you say that an empty program is also like a quine ?
>
> Well, in many languages empty programs produce empty output, so the output
> is equal to the program. This complieswith the definition of quine.

But it is a very boring one.  In fact, I think we should explicitly rule it
out...







From esoteric@oiva.sange.fi Mon Mar 25 00:51:25 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pGpW-0007rB-00; Mon, 25 Mar 2002 00:51:14 +0200
Received: with LISTAR (v0.129a; list misc); Mon, 25 Mar 2002 00:51:08 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pGp7-0007r5-00; Mon, 25 Mar 2002 00:50:49 +0200
Received: with LISTAR (v0.129a; list lang); Mon, 25 Mar 2002 00:50:42 +0200 (EET)
Received: from web14008.mail.yahoo.com ([216.136.175.124])
	by oiva.sange.fi with smtp (Exim 3.33 #1)
	id 16pGoz-0007qy-00
	for lang@esoteric.sange.fi; Mon, 25 Mar 2002 00:50:41 +0200
Message-ID: <20020324225035.4003.qmail@web14008.mail.yahoo.com>
Received: from [194.117.133.118] by web14008.mail.yahoo.com via HTTP; Sun, 24 Mar 2002 22:50:35 GMT
Date: Sun, 24 Mar 2002 22:50:35 +0000 (GMT)
From: =?iso-8859-1?q?Stephen=20Sykes?= <s_d_sykes@yahoo.co.uk>
Subject: [lang] Re: Quine In e lang ?
To: lang@esoteric.sange.fi
In-Reply-To: <3C9D043E.4D412DD6@dds.nl>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: s_d_sykes@yahoo.co.uk
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: s_d_sykes@yahoo.co.uk
Precedence: bulk
X-list: misc

> > > Why do you say that an empty program is also like a quine ?
> >
> > Well, in many languages empty programs produce empty output, so the
> output
> > is equal to the program. This complieswith the definition of quine.
> 
> But it is a very boring one.  In fact, I think we should explicitly rule
> it
> out...

If you like null programs as quines, then you will be entertained by my
new programming language where *every* possible program is a quine. I call
the language 'cat'...

+- S.D.Sykes - www.stephensykes.com - +44 777 577 2637 -
| "You have all become victims of the Evil Midnight Bomber 
| What Bombs... Hey! PAY ATTENTION!"  -- The Evil Midnight
| Bomber What Bombs at Midnight



__________________________________________________
Do You Yahoo!?
Everything you'll ever need on one web page
from News and Sport to Email and Music Charts
http://uk.my.yahoo.com





From esoteric@oiva.sange.fi Mon Mar 25 02:24:05 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pIHA-00083F-00; Mon, 25 Mar 2002 02:23:52 +0200
Received: with LISTAR (v0.129a; list misc); Mon, 25 Mar 2002 02:23:38 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pIFF-000834-00; Mon, 25 Mar 2002 02:21:53 +0200
Received: with LISTAR (v0.129a; list lang); Mon, 25 Mar 2002 02:21:46 +0200 (EET)
Received: from smtp-send.myrealbox.com ([192.108.102.143])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pIF7-00082y-00
	for lang@esoteric.sange.fi; Mon, 25 Mar 2002 02:21:45 +0200
Received: from amir amirlb@smtp-send.myrealbox.com [62.219.233.153]
	by smtp-send.myrealbox.com with Novell NIMS $Revision:   2.88  $ on Novell NetWare;
	Sun, 24 Mar 2002 17:21:31 -0700
Message-ID: <023701c1d392$af6c2270$3900a8c0@amir>
From: <amirlb@myrealbox.com>
To: <lang@esoteric.sange.fi>
References: <Pine.LNX.4.44.0203230955420.11061-100000@melkinpaasi.cs.Helsinki.FI> <3C9D043E.4D412DD6@dds.nl>
Subject: [lang] Re: Quines [was: Re: Quine In e lang ?]
Date: Mon, 25 Mar 2002 02:19:06 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2919.6700
X-MIMEOLE: Produced By Microsoft MimeOLE V5.00.2919.6700
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: amirlb@myrealbox.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: amirlb@myrealbox.com
Precedence: bulk
X-list: misc

> > Well, in many languages empty programs produce empty output, so the
output
> > is equal to the program. This complieswith the definition of quine.
>
> But it is a very boring one.  In fact, I think we should explicitly rule
it
> out...

I don't think so. You can certainly come up with a twisted, malbolge-like
language, where you can't understand how the commands are ordered, and empty
spaces at some places act as if they are some commands, but still, the empty
program will only twist around some memory cells, and eat thatever it prints
before it goes to the display (yeah, i've added a command to destroy
buffered output). So the empty program will be a quine, bot not a simple
one.

--
Bad spellers of the world UNTIE!
          lightstep (Amir Livne)






From esoteric@oiva.sange.fi Mon Mar 25 03:26:51 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pJFt-0008KL-00; Mon, 25 Mar 2002 03:26:37 +0200
Received: with LISTAR (v0.129a; list misc); Mon, 25 Mar 2002 03:26:30 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pJF5-0008KE-00; Mon, 25 Mar 2002 03:25:48 +0200
Received: with LISTAR (v0.129a; list lang); Mon, 25 Mar 2002 03:25:41 +0200 (EET)
Received: from ns3.safety.net ([216.40.201.32])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pJEx-0008K8-00
	for lang@esoteric.sange.fi; Mon, 25 Mar 2002 03:25:40 +0200
Received: from there (rs.rackshack.net.safety.net [216.40.201.32])
	by ns3.safety.net (8.10.2/8.10.2) with SMTP id g2P1PNs31535
	for <lang@esoteric.sange.fi>; Sun, 24 Mar 2002 18:25:27 -0700
Message-Id: <200203250125.g2P1PNs31535@ns3.safety.net>
Content-Type: text/plain;
  charset="iso-8859-1"
From: "Cliff L. Biffle" <cbiffle@safety.net>
To: lang@esoteric.sange.fi
Subject: [lang] Re: Quine In e lang ?
Date: Sun, 24 Mar 2002 18:22:46 -0700
X-Mailer: KMail [version 1.3.2]
References: <20020324225035.4003.qmail@web14008.mail.yahoo.com>
In-Reply-To: <20020324225035.4003.qmail@web14008.mail.yahoo.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cbiffle@safety.net
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: cbiffle@safety.net
Precedence: bulk
X-list: misc

On Sunday 24 March 2002 03:50 pm, you wrote:
> If you like null programs as quines, then you will be entertained by my
> new programming language where *every* possible program is a quine. I call
> the language 'cat'...

Ah, I'm familiar with the language!  I consider the dialect a subset of my 
now-venerable HQ9+. :-)

-Cliff





From esoteric@oiva.sange.fi Mon Mar 25 03:58:43 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pJkt-0008Rn-00; Mon, 25 Mar 2002 03:58:39 +0200
Received: with LISTAR (v0.129a; list misc); Mon, 25 Mar 2002 03:58:32 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pJke-0008Rh-00; Mon, 25 Mar 2002 03:58:24 +0200
Received: with LISTAR (v0.129a; list lang); Mon, 25 Mar 2002 03:58:17 +0200 (EET)
Received: from 80-25-141-62.uc.nombres.ttd.es ([80.25.141.62] helo=es.gnu.org)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pJkW-0008Rb-00
	for lang@esoteric.sange.fi; Mon, 25 Mar 2002 03:58:16 +0200
Received: (from jemarch@localhost)
	by es.gnu.org (8.9.3/8.9.3/Debian 8.9.3-21) id CAA31464;
	Mon, 25 Mar 2002 02:56:59 GMT
Date: Mon, 25 Mar 2002 02:56:59 GMT
Message-Id: <200203250256.CAA31464@es.gnu.org>
From: "Jose E. Marchesi" <jemarch@es.gnu.org>
To: lang@esoteric.sange.fi
CC: lang@esoteric.sange.fi
In-reply-to: <200203250125.g2P1PNs31535@ns3.safety.net> (cbiffle@safety.net)
Subject: [lang] Re: Quine In e lang ?
References: <20020324225035.4003.qmail@web14008.mail.yahoo.com> <200203250125.g2P1PNs31535@ns3.safety.net>
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: jemarch@es.gnu.org
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: jemarch@es.gnu.org
Precedence: bulk
X-list: misc

   On Sunday 24 March 2002 03:50 pm, you wrote:
   > If you like null programs as quines, then you will be entertained by my
   > new programming language where *every* possible program is a quine. I call
   > the language 'cat'...

Hum, i think the interpreter is 'cat'.
The language could be called "ASCII*" ;)

--
Jose E. Marchesi <jemarch@es.gnu.org>
GNU Spain        http://es.gnu.org
GNUs Not Unix!   http://www.gnu.org
--
"And if cynics ridicule freedom, ridicule community... if 'hard nosed
realists' say that profit is the only ideal...just ignore them, and
use copyleft all the same." -- RMS
---







From esoteric@oiva.sange.fi Mon Mar 25 11:06:07 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pQQH-0009SP-00; Mon, 25 Mar 2002 11:05:49 +0200
Received: with LISTAR (v0.129a; list misc); Mon, 25 Mar 2002 11:05:43 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pQPW-0009S7-00; Mon, 25 Mar 2002 11:05:02 +0200
Received: with LISTAR (v0.129a; list lang); Mon, 25 Mar 2002 11:04:55 +0200 (EET)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pQPO-0009S1-00
	for lang@esoteric.sange.fi; Mon, 25 Mar 2002 11:04:54 +0200
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g2P94rr20182
	for <lang@esoteric.sange.fi>; Mon, 25 Mar 2002 11:04:53 +0200
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g2P94oZ24112
	for <lang@esoteric.sange.fi>; Mon, 25 Mar 2002 11:04:50 +0200
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Mon, 25 Mar 2002 11:04:49 +0200 (EET)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: lang@esoteric.sange.fi
Subject: [lang] Re: [quines] quine classes (was: Quine In e lang ?)
In-Reply-To: <3C9D043E.4D412DD6@dds.nl>
Message-ID: <Pine.LNX.4.44.0203250941410.18952-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc

On Sat, 23 Mar 2002, Milo van Handel wrote:
> > It is certainly possible to write a quine in any Turing-complete language.
> Not quite, it also needs sufficient I/O capabilities (well, only O
> actually, but I never said that "sufficient" is a lot).

Yes - although what might be considered "input" and "output" is a lot more 
vague than the concept of quine itself. Any Turing-complete language 
should have a way to specify stop conditions. Lacking stream-like output, 
a program's state when it fulfills its stop condition can be seen as its 
output. In this way, any program that does nothing is also a quine. It 
quite much falls in the same category as an empty quine - the program has 
no "content" so it does not have to do anything to reach its track.

We could call this category "single-state quines", and specify them as
"quines that do not involve any processing / evaluation". For example, all
programs in the Unix language "cat" are single-state quines.

Interestingly, in functional languages that are idempotent (evaluating the
result of an already-evaluated expression is guaranteed to have no
effect), if we lack I/O, the only quines are single-state quines. If a
quine would perform some evaluation, and if it (by definition) evaluates
to its beginning state, then it will continue to perform the evaluation -
it cannot be that first time the state would allow for some evaluation and
the second time it would not. This makes a quine effectively equivalent to
an infinite loop in the language, a property noticed on this list some
while ago and leading to such languages as Muriel and Smurf.

The category of quines that are based on a non-idempotent expression
evaluating to itself, we could call "self-evaluating quines". For example,
the classic LISP quine ((lambda (x) (list x (list (quote quote) x)))
(quote (lambda (x) (list x (list (quote quote) x))))) belongs to this
category. It is also possible to form more esoteric quines in this
category, like (eval (Y quote)), where Y = (lambda (f) ((lambda (x) (x x))  
(lambda (x) (f (x x))))), which evaluates to an infinitely-quoted
expression - so evaluating it one round takes away one level of quotation,
leaving infinitely many quotes. (My apologies if I make programming 
mistakes - I'm a very very very bad lispist.)

The classic infinite loop, which is essentially a quine, in idempotent 
languages is (using a lambda notation) (\x.x x)(\x.x x).

The concept of I/O is particularly difficult because it might be that the
program never was input in the same way as it produces output - not every
program is a character stream, for example.

> > Well, in many languages empty programs produce empty output, so the output
> > is equal to the program. This complieswith the definition of quine.
> But it is a very boring one.  In fact, I think we should explicitly rule it
> out...

No, I think we should keep the concept of a quine as generic as possible. 
Studying the many "non-proper" quines keeps the mind keen. For example, 
there is the whole class of quines that read themselves. Now that I 
consider cheating. Consider the following quine:

#!/bin/sh
/bin/cat quine

What is clearly going on in here is that we have to preserve the 
difference between code and data in order for the classical concept of 
quine to be relevant. I'm going to name this category of quines 
"self-reading".

Actually, any language that features an "eval" command / function already
lets you cheat somewhat - again by mixing code and data, but this time not
considering code as data but vice versa. For some odd reason, this way of
cheating I don't consider too grave anymore. For example, it can be used 
to form the infinite loop in LISP:
((lambda (x) (eval (x x))) (lambda (x) (eval (x x))))

Or to make quines that contain themselves only once:
((lambda (x) ((eval x) x))
 (quote (lambda (self)
   (list (quote (lambda (x) ((eval x) x)) (list (quote quote) self)))))

Here's the same thing in bash (Author: Matt Corks, njaharve@waterloo.ca):
#!/bin/bash
read foo<<'EOF';eval $foo 
echo '#!/bin/bash';echo 'read foo<<"EOF";eval $foo';echo $foo;echo EOF
EOF 

Note that the quines do not contain themselves twice but just the code to
call themselves with themselves. This code would be the same whatever the
quine was.

Another use of this technique is to produce programs that make quines
(that's how most conventional quines are made): when run, they take the
data, then form both the program and the data based on that, and put them
together as a quine. (These two forms, the quine form and the
quine-forming form are, by the way, almost equivalent to the two standard
ways to write the Y combinator, \f.(\x.f(x x))(\x.f(x x)) and \f.(\x.x
x)(\x.f(x x)).) 

For example, the "head"s of the quines above (lambda (x) ((eval x) x)) and
read foo<<'EOF';eval $foo could also be used to bootstrap a "conventional
quine" by placing the data half of the quine in the data section.

We might call this category "data-evaluating quines". Their crucial
difference to "true quines" is that the representation of the program and
the data is exactly the same, so the program does not have to do any
processing to form the program from the data.

It can then be said that "true quines" use some representation for the
data which is not the same as the representation of the program. If we
went further we could demand that the actual representation is such that
anything could be done based on it - that is, representationally
Turing-complete. This will exclude many quines that are thought of as true
quines, because they often use a representation that is especially suited
for quining - for example, my Unlambda quine was like that.

Another interesting issue is that of shell / C / whatever quoting rules,
which actually force the programmer to re-form the data from the data,
while the data can be used as code as such. However, the situation is, in
complexity, essentially equivalent to that where you have to form the code
from the data and the data can be used as such.


-- 

Am fuar -> symb <- am fesh
atehwa@iki.fi







From esoteric@oiva.sange.fi Mon Mar 25 11:59:03 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pRFk-0009eo-00; Mon, 25 Mar 2002 11:59:00 +0200
Received: with LISTAR (v0.129a; list misc); Mon, 25 Mar 2002 11:58:53 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pRFT-0009ei-00; Mon, 25 Mar 2002 11:58:43 +0200
Received: with LISTAR (v0.129a; list lang); Mon, 25 Mar 2002 11:58:36 +0200 (EET)
Received: from smtp-send.myrealbox.com ([192.108.102.143])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pRFL-0009eb-00
	for lang@esoteric.sange.fi; Mon, 25 Mar 2002 11:58:36 +0200
Received: from amir amirlb@smtp-send.myrealbox.com [62.219.233.153]
	by smtp-send.myrealbox.com with Novell NIMS $Revision:   2.88  $ on Novell NetWare;
	Mon, 25 Mar 2002 02:58:25 -0700
Message-ID: <025d01c1d3e3$45262810$3900a8c0@amir>
From: <amirlb@myrealbox.com>
To: <lang@esoteric.sange.fi>
References: <Pine.LNX.4.44.0203250941410.18952-100000@melkinpaasi.cs.Helsinki.FI>
Subject: [lang] Re: [quines] quine classes
Date: Mon, 25 Mar 2002 11:55:54 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2919.6700
X-MIMEOLE: Produced By Microsoft MimeOLE V5.00.2919.6700
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: amirlb@myrealbox.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: amirlb@myrealbox.com
Precedence: bulk
X-list: misc

> It can then be said that "true quines" use some representation for the
> data which is not the same as the representation of the program. If we
> went further we could demand that the actual representation is such that
> anything could be done based on it - that is, representationally
> Turing-complete. This will exclude many quines that are thought of as true
> quines, because they often use a representation that is especially suited
> for quining - for example, my Unlambda quine was like that.

I believe that even "regular" quines in mainstream imperative languages (C,
Pascal, etc) there is a difference between the data and the code. I don't
mean the quoting (which is language-specific), but the order of them in the
source code: the data has to appear before the code. this way, everything
after the end of the data appears twice in the quine, and things before the
data can appear once (it might sound a little similar to "A page about
quines" by David Madore). This makes the distinction between the code and
the data at the syntactic level, so the are represented differently.

--
Bad spellers of the world UNTIE!
          lightstep (Amir Livne)






From esoteric@oiva.sange.fi Mon Mar 25 12:47:58 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pS0z-0009pC-00; Mon, 25 Mar 2002 12:47:49 +0200
Received: with LISTAR (v0.129a; list misc); Mon, 25 Mar 2002 12:47:42 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pRzw-0009p1-00; Mon, 25 Mar 2002 12:46:44 +0200
Received: with LISTAR (v0.129a; list lang); Mon, 25 Mar 2002 12:46:37 +0200 (EET)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pRzp-0009ov-00
	for lang@esoteric.sange.fi; Mon, 25 Mar 2002 12:46:37 +0200
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g2PAkZr22352
	for <lang@esoteric.sange.fi>; Mon, 25 Mar 2002 12:46:36 +0200
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g2PAkWA29375
	for <lang@esoteric.sange.fi>; Mon, 25 Mar 2002 12:46:32 +0200
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Mon, 25 Mar 2002 12:46:32 +0200 (EET)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: lang@esoteric.sange.fi
Subject: [lang] Re: [Kayak] Sorting! (note: bugfix attached)
In-Reply-To: <3C9BAD92.B18E2288@dds.nl>
Message-ID: <Pine.LNX.4.44.0203251240460.28999-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc

On Fri, 22 Mar 2002, Milo van Handel wrote:
> > Well, it's very hard to come up with new sorting algorithms any more.
> > (Many non-obvious ones, like random-sort and genetic-sort, have also been
> > invented already.)
> What are those?  Random-sort sounds like it might be similar to bogosort

Bogosort is one subclass of random-sort: random-sort might not permutate
the whole string randomly, but perhaps only parts of it. In practice, for
every (deterministic) sorting method there are several non-deterministic
ones which only specify the operations by constraints of what their result
should be. For example, a mergesort where every merge operation's
comparison clause is replaced by a random bit and where merge's results
are checked for ordering is a random-sort.

> Also the converse: it's becuase the reversibility issues that Kayak is
> so interesting, without them it would just be YAFOL (Yet Another
> Few-Operator Language).

True. Although the syntax is pretty and the language is elegant - probably
more so than, for example, brainfuck.

Panu

-- 

Am fuar -> symb <- am fesh
atehwa@iki.fi







From esoteric@oiva.sange.fi Mon Mar 25 23:57:35 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pcSq-000Bv3-00; Mon, 25 Mar 2002 23:57:16 +0200
Received: with LISTAR (v0.129a; list misc); Mon, 25 Mar 2002 23:57:09 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pcRb-000Bud-00; Mon, 25 Mar 2002 23:55:59 +0200
Received: with LISTAR (v0.129a; list lang); Mon, 25 Mar 2002 23:55:52 +0200 (EET)
Received: from ctb-mesg1.saix.net ([196.25.240.73])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pcRR-000BuQ-00
	for lang@esoteric.sange.fi; Mon, 25 Mar 2002 23:55:49 +0200
Received: from lennie (woc53-01-p187.wc.saix.net [155.239.129.187])
	by ctb-mesg1.saix.net (8.11.4/8.11.4) with SMTP id g2PLtiK29439
	for <lang@esoteric.sange.fi>; Mon, 25 Mar 2002 23:55:44 +0200 (SAT)
Message-ID: <002b01c1d447$0cce55a0$bb81ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: <lang@esoteric.sange.fi>
References: <Pine.LNX.4.44.0203230955420.11061-100000@melkinpaasi.cs.Helsinki.FI> <004601c1d354$d6fcf460$9181ef9b@lennie> <021101c1d362$692bf9f0$3900a8c0@amir>
Subject: [lang] Re: ANN: Stupid Quine In e !
Date: Mon, 25 Mar 2002 21:15:20 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

Hello!

> Well, the source file is not empty, yet it doesn't produce any output, so
> the source isn't equal to the output, therefore it is not a quine.

The source-file (stupidquine.e) only contains useless comments (they do
nothing!), it doesn't produce any output. The source is equal to the output
because there's no exclamation marks (!) instructions.

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Mon Mar 25 23:57:35 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pcSq-000Bv4-00; Mon, 25 Mar 2002 23:57:16 +0200
Received: with LISTAR (v0.129a; list misc); Mon, 25 Mar 2002 23:57:09 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pcRb-000Buc-00; Mon, 25 Mar 2002 23:55:59 +0200
Received: with LISTAR (v0.129a; list lang); Mon, 25 Mar 2002 23:55:51 +0200 (EET)
Received: from ctb-mesg1.saix.net ([196.25.240.73])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pcRR-000BuR-00
	for lang@esoteric.sange.fi; Mon, 25 Mar 2002 23:55:50 +0200
Received: from lennie (woc53-01-p187.wc.saix.net [155.239.129.187])
	by ctb-mesg1.saix.net (8.11.4/8.11.4) with SMTP id g2PLtjK29444
	for <lang@esoteric.sange.fi>; Mon, 25 Mar 2002 23:55:45 +0200 (SAT)
Message-ID: <002c01c1d447$0d7f5620$bb81ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: "EsoLang Lang" <lang@esoteric.sange.fi>
References: <20020324225035.4003.qmail@web14008.mail.yahoo.com>
Subject: [lang] cat lang ? (Was: Re: Quine In e lang ?)
Date: Mon, 25 Mar 2002 23:29:51 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

Stephen Sykes,

> If you like null programs as quines, then you will be entertained by my
> new programming language where *every* possible program is a quine. I call
> the language 'cat'...

Yes! This seams to be the rule of quines ! <g>

"cat" ? Does this language exist ? Where can I get it ?

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------








From esoteric@oiva.sange.fi Mon Mar 25 23:57:36 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pcSh-000Bus-00; Mon, 25 Mar 2002 23:57:07 +0200
Received: with LISTAR (v0.129a; list misc); Mon, 25 Mar 2002 23:57:00 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pcRm-000Bul-00; Mon, 25 Mar 2002 23:56:10 +0200
Received: with LISTAR (v0.129a; list lang); Mon, 25 Mar 2002 23:56:03 +0200 (EET)
Received: from ctb-mesg1.saix.net ([196.25.240.73])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pcRd-000BuP-00
	for lang@esoteric.sange.fi; Mon, 25 Mar 2002 23:56:02 +0200
Received: from lennie (woc53-01-p187.wc.saix.net [155.239.129.187])
	by ctb-mesg1.saix.net (8.11.4/8.11.4) with SMTP id g2PLthK29434
	for <lang@esoteric.sange.fi>; Mon, 25 Mar 2002 23:55:43 +0200 (SAT)
Message-ID: <002a01c1d447$0c0e12e0$bb81ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: <lang@esoteric.sange.fi>
References:  <Pine.LNX.4.44.0203230955420.11061-100000@melkinpaasi.cs.Helsinki.FI> <004601c1d354$d6fcf460$9181ef9b@lennie> <5698475215.20020324213103@frox25.dhs.org>
Subject: [lang] Re: ANN: Stupid Quine In e !
Date: Mon, 25 Mar 2002 21:11:56 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

Mtv Europe,

> Looks like your home page unavailable now, so all the following relate to
> version 1.0 of 'e' (according e_10_C.zip package obtained from archive)

- www.crosswinds.net/~lennie2000/comp/e_lang/
I'm still working on e v1.5 (avialable soon !)

> First of all, beware!  Your referrer C implementation contains
> security hole (buffer overflow).

Ooops! Well, Jens Baader wrote the C implementation (will ask him to fix the
problem), I only did the Java and PalmOS versions.

> And third, a little consolation - here is 'e' v1.0 interpreter on Perl
> with one line and seven exclamation marks:
>
> #! /usr/bin/perl -n
>
y/!1/1!/+s/1+/$&%9<5?$&<17?$![$!]:$!+=$&%9%2*2-1:printf$&%3?'%d':'%c',$![$!]
/ge

Thanks ! :-) I'll put this on the e lang website.

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Tue Mar 26 00:19:39 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pcoS-000C1L-00; Tue, 26 Mar 2002 00:19:36 +0200
Received: with LISTAR (v0.129a; list misc); Tue, 26 Mar 2002 00:19:30 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pcoF-000C1F-00; Tue, 26 Mar 2002 00:19:23 +0200
Received: with LISTAR (v0.129a; list lang); Tue, 26 Mar 2002 00:19:16 +0200 (EET)
Received: from rhea.tiscali.nl ([195.241.76.178])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pco8-000C19-00
	for lang@esoteric.sange.fi; Tue, 26 Mar 2002 00:19:16 +0200
Received: from dds.nl (xs241-233-199.dial.tiscali.nl [195.241.233.199])
	by rhea.tiscali.nl (Postfix) with ESMTP id 189493709A
	for <lang@esoteric.sange.fi>; Mon, 25 Mar 2002 23:19:00 +0100 (MET)
Sender: root@rhea.tiscali.nl
Message-ID: <3C9E57A9.6C61921D@dds.nl>
Date: Sun, 24 Mar 2002 23:48:09 +0100
From: Milo van Handel <mwq@dds.nl>
Organization: Milo-Soft
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.3-5 i586)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: [Kayak] another quine
References: <3C94F28E.82F3DE92@dds.nl>
	 <15510.10950.112798.102058@gargle.gargle.HOWL> <6677394705.20020324153946@frox25.dhs.org>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
X-list: misc

Mtv Europe wrote:

> > I have a suggestion for benrg too: it would be good if source codes
> > could work backwards without having to invert the various types of
> > bracket.
>
> More shorter quine (3 bits per char) would be possible if in
> language specification we replace curved brackets with squared

I don't understand.  Both the bracket in the program and the code to push its ASCII
code are of the same length independant of what character it actually is.

> Kayak answer to question about universe and everything is:
> (e|i){}(e|i)

Let's see if I got this right: the input is discarded into the bit bucket, and new
output is taken from the bit bucket?  What's the connection?  And it doesn't even
work, since it continues writing bits after having pushed end-of-file.







From esoteric@oiva.sange.fi Tue Mar 26 00:24:13 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pcsu-000C2G-00; Tue, 26 Mar 2002 00:24:12 +0200
Received: with LISTAR (v0.129a; list misc); Tue, 26 Mar 2002 00:24:05 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pcsm-000C29-00; Tue, 26 Mar 2002 00:24:04 +0200
Received: with LISTAR (v0.129a; list lang); Tue, 26 Mar 2002 00:23:58 +0200 (EET)
Received: from rhea.tiscali.nl ([195.241.76.178])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pcsf-000C23-00
	for lang@esoteric.sange.fi; Tue, 26 Mar 2002 00:23:57 +0200
Received: from dds.nl (xs241-233-199.dial.tiscali.nl [195.241.233.199])
	by rhea.tiscali.nl (Postfix) with ESMTP id A045A36B0E
	for <lang@esoteric.sange.fi>; Mon, 25 Mar 2002 23:23:55 +0100 (MET)
Sender: root@rhea.tiscali.nl
Message-ID: <3C9FA2F6.63B8A68A@dds.nl>
Date: Mon, 25 Mar 2002 23:21:42 +0100
From: Milo van Handel <mwq@dds.nl>
Organization: Milo-Soft
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.3-5 i586)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: cat lang ? (Was: Re: Quine In e lang ?)
References: <20020324225035.4003.qmail@web14008.mail.yahoo.com> <002c01c1d447$0d7f5620$bb81ef9b@lennie>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
X-list: misc

D De Villiers wrote:

> Stephen Sykes,
>
> > If you like null programs as quines, then you will be entertained by my
> > new programming language where *every* possible program is a quine. I call
> > the language 'cat'...
>
> Yes! This seams to be the rule of quines ! <g>
>
> "cat" ? Does this language exist ? Where can I get it ?

Hahaha!  "cat" isn't a real programming language.  It's a simple Unix tool
which copies input to output.  But you can also see it as if the input is a
program, there is no user input, and the output is the program output, and then
every possible program will be a quine.  As for where to get it: this is the
Kayak version: "(io){}(io)", and this is (or so I have been told) the Lazy-K
version: "".






From esoteric@oiva.sange.fi Tue Mar 26 05:47:42 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16phvo-000Cva-00; Tue, 26 Mar 2002 05:47:32 +0200
Received: with LISTAR (v0.129a; list misc); Tue, 26 Mar 2002 05:47:25 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16phts-000CvS-00; Tue, 26 Mar 2002 05:45:33 +0200
Received: with LISTAR (v0.129a; list lang); Tue, 26 Mar 2002 05:45:25 +0200 (EET)
Received: from dark.darkweb.com ([216.163.74.170])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16phtj-000CvM-00
	for lang@esoteric.sange.fi; Tue, 26 Mar 2002 05:45:23 +0200
Received: from localhost (benrg@localhost)
	by dark.darkweb.com (8.9.3/8.9.3) with ESMTP id TAA22797
	for <lang@esoteric.sange.fi>; Mon, 25 Mar 2002 19:45:06 -0800
Date: Mon, 25 Mar 2002 19:45:06 -0800 (PST)
From: Ben Rudiak-Gould <benrg@dark.darkweb.com>
To: lang@esoteric.sange.fi
Subject: [lang] [Kayak] improved interpreter
Message-ID: <Pine.LNX.4.21.0203251835050.30210-101000@dark.darkweb.com>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="-1546081718-1582310569-1017114306=:30210"
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: benrg@dark.darkweb.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: benrg@dark.darkweb.com
Precedence: bulk
X-list: misc

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---1546081718-1582310569-1017114306=:30210
Content-Type: TEXT/PLAIN; charset=US-ASCII

I've made a few important improvements to my Kayak interpreter (attached):

  1. It's several times faster than before.

  2. Parse errors are now tagged with the line on which they occurred.

  3. The hardware stack is no longer used for procedure calls, so you will
     no longer get stack overflows in deeply-recursive functions.

  4. It's "properly middle-recursive".

The last of these is the most interesting and requires some elaboration.
Ordinary tail-recursion (or head-recursion, for that matter) isn't
possible in Kayak because it loses information about the number of calls
that came before. However, the interpreter now does the next-best thing:
it merges adjacent frames on the call stack when they are identical and
attaches a repetition count. This allows for (almost-) constant-space
loops in Kayak. (It can't be exactly constant because the repetition count
can grow arbitrarily large.)

In order to take advantage of constant-space looping, your recursive
procedure must meet the following criteria:

  1. It must be self-recursive. (Mutual recursion is not supported.)

  2. It must call itself in the current execution direction (not the
     opposite).

  3. It must call itself from the same point in the source code each time.

  4. All local variables, except those passed to the nested invocation,
     must contain only zeroes at the time of the call.

  5. All local temporary registers must contain the same values on each
     call. (Actually only the innermost temporary can fail this test; the
     others will always be equal to 1.)

For example, the revloop()poolver function from eg\reverse.kayak meets all
the criteria above, but the str()len function does not:

	str(s|count) {
		s [
			s temp s temp s temp s temp
			s temp s temp s temp s temp
			count str(s|count)len | count
			temp s temp s temp s temp s
			temp s temp s temp s temp s
		] s
	} (s|count)len

Conditions (1), (2), and (3) are obviously satisfied. (5) is also
satisfied, because the outer temporary will always contain 1 (else the
recursive call will not happen at all) and, although it requires global
analysis to tell this, the inner temporary always contains 0 on the first
top-level call to str()len and 1 on the second. But (4) is not satisfied,
because the local variable "temp" will usually contain nonzero values at
the time of the recursive call.

This is easily fixed by modifying the function so that it shares one
"temp" stack among all nested invocations, like this:

	str2(s|count|temp) {
		s [
			s temp s temp s temp s temp
			s temp s temp s temp s temp
			count str2(s|count|temp)2len | count
			temp s temp s temp s temp s
			temp s temp s temp s temp s
		] s
	} (s|count|temp)2len

	str(s|count) { str2(s|count|temp)2len } (s|count)len


With this change, the memory usage of reverse.kayak drops from more than
100 times the length of the input to less than 3 times the length of the
input. (2.25 times is the minimum possible even for the empty program,
because of the overhead of storing the input/output stack in memory.) The
same change also works for invert.kayak.

It's not necessary for the arguments to the nested call to match the
formal parameters. For example, weird(x|y){x[weird(y|x)weird]y}(x|y)weird
satisfies all the criteria.


-- Ben

---1546081718-1582310569-1017114306=:30210
Content-Type: APPLICATION/x-gzip; name="kayak.cpp.gz"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.21.0203251945060.30210@dark.darkweb.com>
Content-Description: 
Content-Disposition: attachment; filename="kayak.cpp.gz"

H4sICAjhnzwAA2theWFrLmNwcADNXFtz28ixfiZ/xYinVgKvppRsKoe3rWTj
Tbni2C7HqTpVssICSVBCCQQQXCQrNv97+jJ3gFp5n84+rIhBT3dPT0/3Nz0D
v3ol/hY+hfciCdPbOryNRJxWUZEXEfx/0n31Svyc5U9FfHtXiavp9Er8OUrF
x3oXh/fjv2Z1spuIv8RlVcSbuop2ok53USGqu0j89cPbSbfb/Z843Sb1LhIL
JEpvV1bLQ7StssJuiTOgisKD3bZvNoXJbVbE1Z1LV6fbKs7SMFl1u3UJskQa
HqIyD7eRKKvd3FZmWz3l0eRu5ei3S+KN34Y6u21VfKCe3S68rbeV+DlMkl8K
EDXvPmTxTkRFkRXBNkvLSmzvwmIgDuXtyJANxBZ+rssq3N6LpZj2QbPuJssS
UYTpLjusN3EV9MXXbgdIqngr6F2cxlUcJvF/wMpLsQ+TEuR14r0IzqxX1K3j
0oKWSNopkX2A6gfTPgjtHLsdmOa6SEkwiFwtxcc/vfvL+u9/+r9XV/PuEfQy
JvyAWgD3KK0P4qvYJNn2fl2CDBDxh99Pp9OROIRf1jC0bKvaL6dXvxfHue50
C4LqJIS5e4K3SJTtAzTaoE9k9FPsiyhKwKmuXX6vrN43c20dNLEYsDr5SP2K
UpxwyZB5bJ6qqAzqtIxvUzAMPbK9dNtjVuxK0Cygl0NL4Piyb8tHe6LtVc+A
egIR2vC02ixOWf1ARCwL56NzFBFMq0DG2gaS8Y04Q1fh/jyqIirrpEJn8GmR
V6fJYSkGbOxBn/vOLWVMi9SCJEEwECl0JB4DzwBkAW1uMZY+kYuFSKWmHdW0
FGn0SHN1bTyHFWUnloSqX4dXUe99XYlsLw7RISueznp97nG0eKPopRY9tByT
aI8tBpPE9F53BA1P2ANXCrsSmVo6EvMEj/v/4FGoV5D3/enT851/l5vk1rCr
6JAnYRUttklYluLTCoJOmsRpJD7JhWWWVPSlKsKl9FJpx+DToG+vP7noP/WH
RM1x6Dkx2u7AyTG3I82aGKBpFYLhjLn/g0IvBViK4O+yXeROG4TgEo2Abwbg
ul/QE44m6Kj2x3UKvwJDxtrws/Y3DJ2zGVlhga9WAc0Uvx+vsB8tEJLScMCj
J5WGaottlZkyX2TI4rGblJ722+XoOI3+hhIwFaH3/nEgLaoMROG6K2VWGToM
xWGkX8fpGpqIAbRT9orSqgAcAX3yepPE21m3Q5MQ8Nsl5TMeB3TFrIga+tzE
0tUMaSRneBXNrYWa1+UdM9/0lRJ5lqPh5RMk6CqM03KdpcnTmhQIXM8lTUAV
cX4uzqQc5a9yRkhW+RjmAQ3nXIQjIX9tmBnAitmMKODVRnoiKEE9iXQ2s5XF
ThRXxbdv4qxVSZnkkahhIM9CMjywTbW7wiMH0hYDT+Xaxz7jlZx//XtwhREW
SYbDlrmmRUYDUSNDk6shKXs6Vlbz95OLfmYa4ljxjEGS8nCj4Lm4nDsaryBm
XqqIOh63mWnqmMasqeds03C+Y+syOhps+KHItnMHKb5J95kMPQhRk2hfrRFk
jQSBbPoNXLAjhDvs3gEQPkVQkGaVeIoqkWTZPWLtXHryBkz9GEL0RgRFmHoB
eXslwuIWmo5G/huApIXGcJ8AAsNaf5dVS8BuH8AHl5fwN8uXY/j7Nsvy93mU
Lq/4989JVkbL8RUD2eXvoDUJt8vx78RRIJgG2XUK8FsC0IpWIEw/49y5bATV
oeU+pgyjzCEBcQw/ZZQlRQOjpQyrKAcnnoNig2iEexcRe7SuItAUn+xuKeQz
0RrC41YvYgnbo4eoKKN19O86TCTw5+mleOA28ApXISacJFF6W92Bx4NPbswT
hBxmF0420W2cBv2RCCcRwnQII5NCNiKO99zNcy7yLXIt6VkE6erDGpIRrDDy
Lrm3KcljtA+RgVbwkpnD3PoOxh6bh7CrYUYoUPAz8IrEdDKxaSaYRYL++LJr
1OA3GCSEWknNHnNxlF0OYbW9o0XiGRpF+7YmTn3ZqGImEi6XyjRoaCJbLrWR
+hYM1FHEnWSSZjoQF4eA3o2UlL7NcnxpZd+pm09o4cAkSi4cBcCH+MfGiZzh
eGVZYzNe6ekW8GCUM96q0A/up5HTL2/evgY8YfZn27jYIrBcb+q93sNd/ZH2
ZpTfbYLrBvWNdC8QA4EsekT8NnKe1leSZFsX6zwr4S22prDwLWCA+gWs3Hov
8R1oskZNOzY7la9cEapVytBELElwajiyHrcRWJDgGCXkOuUGUvFON7du6fsc
W5GUVZ7NJDdKeMQBhGFbsEdWjvECqd1w2P+haUiMMndyf49cluLic3rBphgO
tc1aRm43tJhLSnV2/yjpqBEJj8QzBArmJlBnJGg447Fh1qbneHxCT09L8olj
Q4N2myPnfQ7Lu9oHAK2AaCR6r5FUQO4h7j/sZuKH8nPa0841ktNFk7IvsoPS
mPUfO8otmqtAbTGyQ9PAFjyRBIprg82QFv4+r6sy6E0mE1CQhyCLMXsYBBk8
XpKSIkZlpI3FcCgzG/SHWbB9KW7xIJ83SxWL8ZgsY15GXwBwXco8wngW8vN6
mx0OgM0Cno5zEZfarXdRXt3JVUU6z+cS6z7G4DMwhnIiVwK3b0Ow0Ov3v8y6
ZmOP23bY2O/jJAIMuM1qLDvihvkOW0DmDjOY1IL3/cTmYnFBbIZDUoOhGpDf
G4oVUzD2Y2UXiPfY3d0eRwXYuMgGQDuPirBCz6N4d+eka+ni1xcIzuXDjf0Q
2A99++Gr/XC0H75d2MYHwwHkvI9Sy/Ijk9EIZY64JAhb5uppnd2HT6oiKJVF
mgkMAzcLKt6ipXYZTwdOnpkjcmI2Ow7wbIlThRktLqnyB41ULjRrHN6bPciZ
UUNCamAtJ7mGLWgOgAF362a+eTbJ8h1d8HJN31eZjrD+UEZDm14abyGDjeOz
MZfTjCnRhMp0lrrtLFeSpRkGga0U/fH7PFYxR27S9v6Q2mbjxHScWfMhnx2T
YRt3AKtYD6sLYgoiVFDnzMZ+7xVe3sCYAEbR7w8wuhUvjLuwXO/qPCoDJAAb
FCWYkn5jPBwRreDqHYcEpoGFh+8xetEzW5b6HWIqZGMrqidHPBxiO/dS7gRT
kwcDKXMA7/uqSijXpapw037saKc2uYnUqwtQJUA0gLlY8nJWmMS18pTiHKEw
AauybwFq8iaQ5HoW/VIrhB6up1SvhQggU4cdJTu+u6sueljG8/TyiXfgVPE+
jgpZA6W6plZygpucNW4EA62NvwCsF46iS0tRKzLa1WhnUN8untET3goYLDC0
9TylCM8VSjAOZsZkNj66SW6ACB0DRzVduBHy1iwwAzgJjk2nQACskUuNS/MV
bS0i8l3wgp5ZC3KHel/nvDsKfKfgPZMJxwz+v+pdkSSczeKK51bsIUywn4Pm
3N2MSz7LQSmwTuV/6rZwKBzwzwRj4bJ08Yh8Z1xDSVBMJIHalWk78PJ/S5Z4
izTNISpbWLjdom8aDis63COA318l+tZLoB94JhVaRWs6pPl5GEJuamSlhBY2
bp08xNLFfSm2R7u6YGfovmQ9jyiqOKt6QqnDmwi1gTMFG3nWIUs/v7baG8sr
uGikUb263HHQQgsuTDo1U08FR6S2d4Vm3Z1aj9+ljCPat7O7xrq++7AvrB9g
1oCDG5VRJfNaARisFWB5AhG4fqnKAy+PyF8byd2M5+tFT5V3nbFsst2TqhoX
sNBKGNZ6XyeJdRBrl0WoyAXzjYgBhyedDcvx63aPM69QAZkKTaNS/qjADs6u
eX16Zl2+v5p4FH7X7dzMqPobo2rGfI4Z9JmdMeo2TC8qUUO/b3qRC+B+J2AD
/hAmNUVkvCegOLlHe+y6dunJCmNcuaP/z2bvsqovu5rUxRpf/zaNr29+k8rO
rFvatgyFvVb2fvlQVUlW9Tzliy2muLFM4SrqxDQPvFN5CVfGzYU7Vi6IPW9Q
HERUvsqzvKTKtWIGIwUwA1b+rTOuq9Ejd6VNiBTy2GnLXrd1uJnoqjSefZ6a
rnnbLMMDM2mfEQ1MrQnZRfsQdgCzrm9tHYiU91kIyjmT3/uxYWlHajd2Yd2a
WluK7TJRqTesKMUWTcLpY+3nD3QrTSFz3pRfeHGezyBoNhpBHt9JdlURpiWg
5APCPxf5aXyEhgaRZVSAhW0Vic/IxiuBlT+kBDcwWr3NsYukbOxG22htuP4i
vP7dbo7TYinaPg4vwDt+Qo4AvHEJvlS268A/CakLHg4BgFNPWT5qAWZkbuUl
p2KUG4e9TRsF6mfCU2tsulZZ+1RUenFI+nq08z+4ZJxg3nahjAgBdxOKfDHm
CJ7BHIHBHN7KcQ5X2jCSTaDktpydoAoKPPl6QPsGxpXt+eSG8NUu3u+joqQ6
qTAEfAUQKZS5zZp1pOq167S2rmF2SGcczy5j8g8X1boO4s6IxV4vb39xezTW
sm6ZLSIb36EHeEg83KN/nHAZByWzQHMA145ndQGDToDtIz59jRC1tE6JGSXn
+EPfYinvsqICuJJTsWouIWy43dYH9VBUCZ3c8fRWGTlCt2NdVsyL6GHePXFY
yzdpeCTXeKNINvF5HE8qlbRTZ09H5OkN7uEUveUFpzo03QV43OiNIBd48Ghg
bS5YBq3XLmmKtzC9YrEQPWwXfDoMotOoOGQl2SKrK37oz3pICU6cSEMT+Rom
fBut+dB2OTXQ/cyI4vx4ymHRHYfDJjOxElfqhoLW83M1mUw+p725X8HWJBef
qwv8e1r83KIObDJwBIj3vcW4B4G+N17JkrskbTK0j5S5NGwzky6HsefSH4YI
Bj2fp+6Ag+hf+OOShu84F2ddnchJj13bWteHEBC7uhd8Y02hOeoAtEORcY1I
Xx1GWz6zLwj6tHi/KsJ/iSt9MmJtUj18YkCkt7To8gk86THwsiQnx0izptS0
JDniX4oWl611YHQg/AV/FloFLLke2PTyLg4huy7hgOgBPIIXlafn9eHmZkR1
ak+Dn7Roa6Ee6KIOt1sL/tDXNTVrtHwLkORRl8C9iUC6+pb3Ls/p16vAiqAD
dd+PBkqyraM0sEu8sC48mIM0BL/BuVKfzRHDppdvpvGBytypJvMtb3VSSZeG
rPE03aZlhNZlPGs0kv7ZQamrVSiQiWCiozXHE1+245I602hPc3PQSw1G+de3
1+SZO2peGd4rzvPu6Ih1V3PT8xAVt7ZVndVY55C3fUdJskdItEt+qZcR73Th
TbeDZyH6Je5VltyHH933zlv3HeVN6zU9OxQYQ817eHLeWvsuTaPbmLJ1annQ
TBC4ub0fKMkyfg6VbPnch0TikUhGHiHQXeKZZKsGRNvHSyw4qR4/PMrymM0N
lQxx2t40Nx1/5dDrkT0rtnvqYGL7CewAXuYpdKnaU3mlslKLGzXClOU6vlYd
S2PbAwmP6Zf2K/uFVmfpz5EY88Uj29MMlQJwHeNoFgvKDB3L4I2l0fGdz1DY
2K4x0fJOZcvMtkR7DZDJlMHPbtZrzah9F9K6SVQaVYFWqtRgGsPf/7IJ7duQ
LemkMb1t82rFSVkSshqxidHSyVrR+BLy4tT08UwoW9W0quhocjtLsBUhW8v5
k43OlURr3toxjcwwFnzRCa65kCyxSNBIf63zzFTtmahttXpCnlXbH7J7OnPW
GrVYuryBolDhYDD4+M93n978/bV4/fHj+4/wLEIJ/h9DLAuk1BtvE5k9HoIv
ewfQaWwzWBijhV9DeH70c8fY5o96M4j99W0VPFPkI69WeMpXp2RVgZbV6pzG
VJpjeuftbEZd1ubwUjq/OV8UdJJv0MAecxmTWGeUbWnf3N7Er2EG+75ze7G9
4Hi6Soeyqbs+ovDLkYP93HuhAwMqwJos6Ou7jrWB8UjNRQO63OlXHU2xw3/B
1tD1Lf+mgr52RLkM745A57zGwo51J0FujVkL3mpXBpfKC0pm18mXSMztGfXx
FuI6viAirn78sQ/QEm/x82U0D/b9r4X2OhWVB4P0/JIHkpp79Yzj1G63eg4D
cpExqCb0LYA5bKeRPxbgbGvYZ+PYMzX2zB+7FFRKHmZ0tOk2o8gT2EIvL+f8
Y3H14x/kz8HySg4qRbxCbQixJ/KbEJ6lrKR9KdiVP5FRJcnyufE9G1rwuIhH
J2OMZKQ+X6IPZuzIYntFnQan17DcfkKa0HiYPi2Q336u7YzQaJvoRQbu0eu1
kpgVp2kI/uugc97oM5LhhQ2jaoyZoH24jqa64Km2J/haxnu8CtXQxEREdVlc
KuN3xmoDgtuW9itHJ1chcaix3hPeR9AdXOnK1O9KS1lfLVrnRUQZ35M44rjS
puNS69LO8ZqhBQGIG31X2UkqquNJSHPVt2bUxTLTljcn2m0c0mBGaa2lkw1K
ppS5dGjbxulIeORyFzm96atioqxT8B6ckvypTpc3VChtwXge9nS6j0TTb4mP
jDHM42zpCrUynjYaJA/cMZmGlbfBbjvz5SDUVFSCJw0jnJMcOnc55y8x/F28
c7ypdVHfduqJ/EmMx0bTGWZx9USk6ujf7ULMJ/QVzEyYB/tegDmG5xNND9ue
2c/ztrNp64jJ4aAKDCTV+YbnhjOKzVmeNnnC245fHZlZ3qr0SzRQeeMUb3VY
b11BcBRWZ4f2ImRJzjdS+lvnViHo+7OGZEhuRirzbOAj8wFcx4/rXg83qON/
+sZEkuDJEP6bD3tKaSbESzQrLSTH0K6PVR3lZdeirxv9T2piIjrd23gsMrx2
o4+w1AXAsl29o3GFZgzRBT1Hu4YH6LNMiCc2tIHdX3UqjnkZYkxxTaOA7/nX
JPhYA0QRHqGvImaC0AX0sQ8wnHK9/KrA39FYBAyFnA8FGM0D9sUfYNjtiLUb
4MNDvysLL/jGSr9St06vLsPbaCbu6Z8eWeCVagQaq89pD63YU3+FeLO3XuM+
rKzw6LNOSxFXAoAfwfSJeA9Iq3iMy2hk+oICi+gQplES75t9NcZXRyrWF19H
fd2rTvEbUAn/l2pDw98mlQVkXf4ydI8H1jjaB0hLI9HjU38Gj5JK3hp0GaoI
pfYXmoP8MQR3Swxn3lH8qtw2wR19ch5uIM/h6RZ0FVGMhiOcWubRFm8s7PiK
OwAh/JSWNQsT+9K+g0c5PMy5Nii/LYvLQEvHbs45pcq0gSqvmKubMYYZ6x+6
4J2le5fK0mO/xWtAtij/MrGzex3ZO1X+pm42M1/bubDV3B82UQVAY5nVBWwd
9GcM6CkI1CUmd6fXPsid4rr5L1tDiAZuRwAA
---1546081718-1582310569-1017114306=:30210--





From esoteric@oiva.sange.fi Tue Mar 26 10:08:59 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16plz9-000DTg-00; Tue, 26 Mar 2002 10:07:15 +0200
Received: with LISTAR (v0.129a; list misc); Tue, 26 Mar 2002 10:06:58 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16plyr-000DTa-00; Tue, 26 Mar 2002 10:06:57 +0200
Received: with LISTAR (v0.129a; list chat); Tue, 26 Mar 2002 10:06:56 +0200 (EET)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16plyp-000DTU-00
	for chat@esoteric.sange.fi; Tue, 26 Mar 2002 10:06:55 +0200
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g2Q86ir07997
	for <chat@esoteric.sange.fi>; Tue, 26 Mar 2002 10:06:45 +0200
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g2Q86fq00477
	for <chat@esoteric.sange.fi>; Tue, 26 Mar 2002 10:06:41 +0200
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Tue, 26 Mar 2002 10:06:41 +0200 (EET)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: chat@esoteric.sange.fi
Subject: [chat] Re: [lang] Re: [Kayak] another quine
In-Reply-To: <3C9E57A9.6C61921D@dds.nl>
Message-ID: <Pine.LNX.4.44.0203261002120.32711-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: chat-bounce@esoteric.sange.fi
Errors-to: chat-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: chat@esoteric.sange.fi
X-list: chat
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc

On Sun, 24 Mar 2002, Milo van Handel wrote:
> > Kayak answer to question about universe and everything is:
> > (e|i){}(e|i)
> Let's see if I got this right: the input is discarded into the bit
> bucket, and new output is taken from the bit bucket?  What's the
> connection?  And it doesn't even work, since it continues writing
> bits after having pushed end-of-file.

Well, at least it will provide an answer for everything, if you try 
sufficiently many times. About the universe, I'm not so sure - but maybe 
it would tell the question.

-- 

Am fuar -> symb <- am fesh
atehwa@iki.fi







From esoteric@oiva.sange.fi Tue Mar 26 11:55:20 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pnfK-000DpO-00; Tue, 26 Mar 2002 11:54:54 +0200
Received: with LISTAR (v0.129a; list misc); Tue, 26 Mar 2002 11:54:47 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pne2-000DpG-00; Tue, 26 Mar 2002 11:53:34 +0200
Received: with LISTAR (v0.129a; list lang); Tue, 26 Mar 2002 11:53:27 +0200 (EET)
Received: from wells.tecc.co.uk ([195.217.37.90])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pndu-000DpA-00
	for lang@esoteric.sange.fi; Tue, 26 Mar 2002 11:53:26 +0200
Received: from basingstoke.tecc.co.uk (basingstoke.tecc.co.uk [195.217.37.75])
	by wells.tecc.co.uk (8.9.3+Sun/8.9.3) with ESMTP id JAA17476
	for <lang@esoteric.sange.fi>; Tue, 26 Mar 2002 09:53:20 GMT
Date: Tue, 26 Mar 2002 09:53:20 GMT
Message-Id: <200203260953.JAA17476@wells.tecc.co.uk>
From: Mike Taylor <mike@tecc.co.uk>
To: lang@esoteric.sange.fi
In-reply-to: <002c01c1d447$0d7f5620$bb81ef9b@lennie> (ddevilliers@lando.co.za)
Subject: [lang] Re: cat lang ? (Was: Re: Quine In e lang ?)
References: <20020324225035.4003.qmail@web14008.mail.yahoo.com> <002c01c1d447$0d7f5620$bb81ef9b@lennie>
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mike@tecc.co.uk
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mike@tecc.co.uk
Precedence: bulk
X-list: misc

> Date: Mon, 25 Mar 2002 23:29:51 +0200
> From: "D De Villiers" <ddevilliers@lando.co.za>
> 
> "cat" ? Does this language exist ? Where can I get it ?

You should be able to implement it in "dd" easily enough.

 _/|_	 _______________________________________________________________
/o ) \/  Mike Taylor   <mike@miketaylor.org.uk>   www.miketaylor.org.uk
)_v__/\  "It is a restful chapter in any book of [James Fenimore
	 Cooper's] when somebody doesn't step on a dry twig and alarm
	 all the reds and whites for two hundred yards around" --
	 Mark Twain.






From esoteric@oiva.sange.fi Tue Mar 26 14:00:46 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ppbZ-000EJX-00; Tue, 26 Mar 2002 13:59:09 +0200
Received: with LISTAR (v0.129a; list misc); Tue, 26 Mar 2002 13:58:58 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ppbN-000EJR-00; Tue, 26 Mar 2002 13:58:58 +0200
Received: with LISTAR (v0.129a; list sci); Tue, 26 Mar 2002 13:58:56 +0200 (EET)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ppbL-000EJL-00
	for sci@esoteric.sange.fi; Tue, 26 Mar 2002 13:58:55 +0200
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g2QBwrr29316
	for <sci@esoteric.sange.fi>; Tue, 26 Mar 2002 13:58:54 +0200
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g2QBwnv23868
	for <sci@esoteric.sange.fi>; Tue, 26 Mar 2002 13:58:49 +0200
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Tue, 26 Mar 2002 13:58:49 +0200 (EET)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: sci@esoteric.sange.fi
Subject: [sci] [representational power] referencing?
Message-ID: <Pine.LNX.4.44.0203261346590.11395-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: sci-bounce@esoteric.sange.fi
Errors-to: sci-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: sci@esoteric.sange.fi
X-list: sci
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc


Probably everybody knows that though it is tedious to do with a Turing 
machine the same thing which in a random-access machine is easy (say 
today's computer arachitectures), they have nevertheless equal 
representational power so that everything that can be done on one can be 
done on the other.

Now, some time ago (when fiddling with lazy functional languges) I came up 
with the idea of doing arithmetic with true reals - not these feeble 
computer floats, which do not atually cover even rational numbers, but 
true infinite-precision reals. These could, for example, be represented by 
lazy infinite lists of bits, which are produced by approixmative 
clculations and where bits are yielded when the result is guaranteed to 
have some fixed prefix.

Now it is easy enough to do this in combinatory logic or pure lambda 
calculus, hence also with random-access architectures which have 
sufficient semantics for implementing such languages. It should be 
possible also on Turing machines, but I'm totally lost of how the numbers 
should be represented. I can't even imagine, for example, how an arbitrary 
set of input (say the algorithm should produce a list of sums of the 
inputs <i1, i1+i2, i1+i2+i3, ...> with a probably-infinite list of inputs 
should be represented on a TM with a finite set of symbols. Any ideas?

Panu

-- 

Am fuar -> symb <- am fesh
atehwa@iki.fi







From esoteric@oiva.sange.fi Tue Mar 26 14:49:36 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pqOI-000ETt-00; Tue, 26 Mar 2002 14:49:30 +0200
Received: with LISTAR (v0.129a; list misc); Tue, 26 Mar 2002 14:49:13 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pqO0-000ETm-00; Tue, 26 Mar 2002 14:49:12 +0200
Received: with LISTAR (v0.129a; list sci); Tue, 26 Mar 2002 14:49:11 +0200 (EET)
Received: from sabre-wulf.nvg.ntnu.no ([129.241.210.67])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pqNy-000ETg-00
	for sci@esoteric.sange.fi; Tue, 26 Mar 2002 14:49:10 +0200
Received: from hagbart.nvg.ntnu.no ([IPv6:::ffff:129.241.210.68]:47236 "EHLO
	hagbart.nvg.ntnu.no" ident: "[tXqpUwd7RaKbdgOgOqSadZsy5GCXTUm2]" whoson:
	"-unregistered-") by sabre-wulf.nvg.ntnu.no with ESMTP
	id <S436464AbSCZMs7>; Tue, 26 Mar 2002 13:48:59 +0100
Date:	Tue, 26 Mar 2002 13:48:59 +0100 (CET)
From:	Orjan Johansen <oerjan@nvg.ntnu.no>
To:	sci@esoteric.sange.fi
Subject: [sci] Re: [representational power] referencing?
In-Reply-To: <Pine.LNX.4.44.0203261346590.11395-100000@melkinpaasi.cs.Helsinki.FI>
Message-ID: <Pine.LNX.4.40.0203261319450.30712-100000@hagbart.nvg.ntnu.no>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE
X-listar-version: Listar v0.129a
Sender: sci-bounce@esoteric.sange.fi
Errors-to: sci-bounce@esoteric.sange.fi
X-original-sender: oerjan@nvg.ntnu.no
Precedence: bulk
Reply-to: sci@esoteric.sange.fi
X-list: sci
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: oerjan@nvg.ntnu.no
Precedence: bulk
X-list: misc

On Tue, 26 Mar 2002, Panu A Kalliokoski wrote:

> Now, some time ago (when fiddling with lazy functional languges) I came u=
p
> with the idea of doing arithmetic with true reals - not these feeble
> computer floats, which do not atually cover even rational numbers, but
> true infinite-precision reals. These could, for example, be represented b=
y
> lazy infinite lists of bits, which are produced by approixmative
> clculations and where bits are yielded when the result is guaranteed to
> have some fixed prefix.

As long as you accept that such a calculation might possibly never produce
a single bit of the result.

(E.g. try to add the binary numbers 0.101010101010... and
0.0101010101010...)

Another representation is as shrinking intervals (e.g. say each is half
the length of the previous.)  This has the advantage that for nice
continuous operations (addition, multiplication, division away from zero)
you can actually get out any finite part of a representation of the answer
in a finite time.

> Now it is easy enough to do this in combinatory logic or pure lambda
> calculus, hence also with random-access architectures which have
> sufficient semantics for implementing such languages. It should be
> possible also on Turing machines, but I'm totally lost of how the numbers
> should be represented. I can't even imagine, for example, how an arbitrar=
y
> set of input (say the algorithm should produce a list of sums of the
> inputs <i1, i1+i2, i1+i2+i3, ...> with a probably-infinite list of inputs
> should be represented on a TM with a finite set of symbols. Any ideas?

Well, normally a TM has finite input but so does lambda calculus.  I
assume that for what you are thinking of, the representation would have to
use an infinite amount of tape.

So, let's assume each i_n is represented as an infinite string of symbols,
and that there are infinitely many such strings.  To fit them all on a
single tape, use the standard trick (similarly to how rational numbers
are proved to be countable):

Symbol m of i_n (both starting at position zero for simplicity) may be put
in position

P(m,n) =3D m + (m+n)(m+n+1)/2.

Of course even with infinite input a TM may only produce finite output in
a finite time.

Greetings,
=D8rjan.

--=20
My Unlambda page: <http://home.nvg.org/~oerjan/unlambda/>
Latest contraption:  Unlambda to Ocaml compiler.






From esoteric@oiva.sange.fi Tue Mar 26 15:05:14 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pqdD-000EVP-00; Tue, 26 Mar 2002 15:04:55 +0200
Received: with LISTAR (v0.129a; list misc); Tue, 26 Mar 2002 15:04:48 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pqd5-000EVJ-00; Tue, 26 Mar 2002 15:04:47 +0200
Received: with LISTAR (v0.129a; list sci); Tue, 26 Mar 2002 15:04:42 +0200 (EET)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pqcz-000EVD-00
	for sci@esoteric.sange.fi; Tue, 26 Mar 2002 15:04:41 +0200
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g2QD4Zr24139
	for <sci@esoteric.sange.fi>; Tue, 26 Mar 2002 15:04:39 +0200
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g2QD4Sx32149
	for <sci@esoteric.sange.fi>; Tue, 26 Mar 2002 15:04:28 +0200
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Tue, 26 Mar 2002 15:04:27 +0200 (EET)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: sci@esoteric.sange.fi
Subject: [sci] Re: [representational power] referencing?
In-Reply-To: <Pine.LNX.4.40.0203261319450.30712-100000@hagbart.nvg.ntnu.no>
Message-ID: <Pine.LNX.4.44.0203261457310.11395-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: sci-bounce@esoteric.sange.fi
Errors-to: sci-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: sci@esoteric.sange.fi
X-list: sci
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc

On Tue, 26 Mar 2002, Orjan Johansen wrote:
> Another representation is as shrinking intervals (e.g. say each is half
> the length of the previous.)  This has the advantage that for nice
> continuous operations (addition, multiplication, division away from zero)
> you can actually get out any finite part of a representation of the answer
> in a finite time.

Yes, the idea did cross my mind. I guess for most purposes it is not worth 
the trouble, though.  Other cleaner representations that came to mind 
include lists of trits with significance dropping geometrically at 2/3. 

> Well, normally a TM has finite input but so does lambda calculus.  I
> assume that for what you are thinking of, the representation would have to
> use an infinite amount of tape.

Yes, just to make the case "clear" (i.e. not requiring that the inputs 
themselves be obtained by a computation)

> Symbol m of i_n (both starting at position zero for simplicity) may be put
> in position
> P(m,n) = m + (m+n)(m+n+1)/2.

Oh, of course. Thank you.

> Of course even with infinite input a TM may only produce finite output in
> a finite time.

... or rather, in a finite number of steps. Well, that's not too bad, it's 
the same with respect to reductions in functional calculi :)

Panu

-- 

Am fuar -> symb <- am fesh
atehwa@iki.fi







From esoteric@oiva.sange.fi Tue Mar 26 15:13:17 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pqlH-000EXU-00; Tue, 26 Mar 2002 15:13:15 +0200
Received: with LISTAR (v0.129a; list misc); Tue, 26 Mar 2002 15:13:08 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pqko-000EXO-00; Tue, 26 Mar 2002 15:12:46 +0200
Received: with LISTAR (v0.129a; list lang); Tue, 26 Mar 2002 15:12:40 +0200 (EET)
Received: from sabre-wulf.nvg.ntnu.no ([129.241.210.67])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pqkh-000EXI-00
	for lang@esoteric.sange.fi; Tue, 26 Mar 2002 15:12:39 +0200
Received: from hagbart.nvg.ntnu.no ([IPv6:::ffff:129.241.210.68]:51332 "EHLO
	hagbart.nvg.ntnu.no" ident: "[xixOfskRMrEHHvF24lfY7brlo7P4Lh1H]" whoson:
	"-unregistered-") by sabre-wulf.nvg.ntnu.no with ESMTP
	id <S436546AbSCZNMZ>; Tue, 26 Mar 2002 14:12:25 +0100
Date:	Tue, 26 Mar 2002 14:12:25 +0100 (CET)
From:	Orjan Johansen <oerjan@nvg.ntnu.no>
To:	Esoteric Languages List <lang@esoteric.sange.fi>
Subject: [lang] Re: [Kayak] improved interpreter
In-Reply-To: <Pine.LNX.4.21.0203251835050.30210-101000@dark.darkweb.com>
Message-ID: <Pine.LNX.4.40.0203261400380.30712-100000@hagbart.nvg.ntnu.no>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: oerjan@nvg.ntnu.no
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: oerjan@nvg.ntnu.no
Precedence: bulk
X-list: misc

On Mon, 25 Mar 2002, Ben Rudiak-Gould wrote:

> In order to take advantage of constant-space looping, your recursive
> procedure must meet the following criteria:

I noticed that in the html file you sometimes call the [ ... ] construct a
loop.  Did you consider making it one and then change your mind?

It seems problematic to make it a loop because it allocates a new empty
temporary register, and emptiness of the temporary register is static as
you note.  If the construct didn't allocate a new temporary register then
it could instead require the temporary register to be full at both ends,
and loop or exit dependent on whether it was false or true respectively.

Greetings,
=D8rjan.

--=20
My Unlambda page: <http://home.nvg.org/~oerjan/unlambda/>
Latest contraption:  Unlambda to Ocaml compiler.






From esoteric@oiva.sange.fi Tue Mar 26 19:52:34 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pv7M-000FTG-00; Tue, 26 Mar 2002 19:52:20 +0200
Received: with LISTAR (v0.129a; list misc); Tue, 26 Mar 2002 19:52:13 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pv5P-000FT5-00; Tue, 26 Mar 2002 19:50:19 +0200
Received: with LISTAR (v0.129a; list lang); Tue, 26 Mar 2002 19:50:09 +0200 (EET)
Received: from [212.16.6.108] (helo=frox25.dhs.org)
	by oiva.sange.fi with smtp (Exim 3.33 #1)
	id 16pv5E-000FSz-00
	for lang@esoteric.sange.fi; Tue, 26 Mar 2002 19:50:08 +0200
Received: (qmail 55768 invoked from network); 26 Mar 2002 17:39:07 -0000
Received: from heartw.ih (10.0.17.4)
  by nova.ih with SMTP; 26 Mar 2002 17:39:07 -0000
Date: Tue, 26 Mar 2002 20:42:28 +0300
From: Mtv Europe <mtve@frox25.dhs.org>
X-Mailer: The Bat! (v1.49) Personal
X-Priority: 3 (Normal)
Message-ID: <110268385429.20020326204228@frox25.dhs.org>
To: lang@esoteric.sange.fi
Subject: [lang] Re: [Kayak] another quine
In-reply-To: <3C9E57A9.6C61921D@dds.nl>
References: <3C94F28E.82F3DE92@dds.nl>
 <15510.10950.112798.102058@gargle.gargle.HOWL>
 <6677394705.20020324153946@frox25.dhs.org> <3C9E57A9.6C61921D@dds.nl>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mtve@frox25.dhs.org
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mtve@frox25.dhs.org
Precedence: bulk
X-list: misc

Hello Milo!

Monday, March 25, 2002, 1:48:09 AM, Milo van Handel wrote:

>> More shorter quine (3 bits per char) would be possible if in
>> language specification we replace curved brackets with squared
> I don't understand.  Both the bracket in the program and the code to push its ASCII
> code are of the same length independant of what character it actually is.

Third quine uses four bits to encode thirteen characters:
" |(){}[]0123" and separator.

If the language was designed with '[' and ']' tokens instead of '{' and '}'
(note, this syntax is still clean and monosemantical), then it would
be possible to write quine with eight chars - " |()[]0" and separator - and
thus in three bits - around one fourth shorter.

>> (e|i){}(e|i)
> Let's see if I got this right: the input is discarded into the bit bucket, and new
> output is taken from the bit bucket?

So it can produce any output on any input - the philosophers' stone! :)

Well, it more closely resembles the story about monkeys, typewriters
and Shakespeare, but look - not so many languages are able to brag
of such compact code on this task.

And with some low but computable probability it can be a quine as well!

----
Mtv Europe







From esoteric@oiva.sange.fi Tue Mar 26 22:19:57 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pxQ7-000FqS-00; Tue, 26 Mar 2002 22:19:51 +0200
Received: with LISTAR (v0.129a; list misc); Tue, 26 Mar 2002 22:19:44 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pxPg-000FqL-00; Tue, 26 Mar 2002 22:19:24 +0200
Received: with LISTAR (v0.129a; list lang); Tue, 26 Mar 2002 22:19:07 +0200 (EET)
Received: from dark.darkweb.com ([216.163.74.170])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pxPO-000FqF-00
	for lang@esoteric.sange.fi; Tue, 26 Mar 2002 22:19:06 +0200
Received: from localhost (benrg@localhost)
	by dark.darkweb.com (8.9.3/8.9.3) with ESMTP id MAA12392
	for <lang@esoteric.sange.fi>; Tue, 26 Mar 2002 12:18:55 -0800
Date: Tue, 26 Mar 2002 12:18:55 -0800 (PST)
From: Ben Rudiak-Gould <benrg@dark.darkweb.com>
To: lang@esoteric.sange.fi
Subject: [lang] Re: [Kayak] another quine
In-Reply-To: <110268385429.20020326204228@frox25.dhs.org>
Message-ID: <Pine.LNX.4.21.0203261158330.32104-100000@dark.darkweb.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: benrg@dark.darkweb.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: benrg@dark.darkweb.com
Precedence: bulk
X-list: misc

On Tue, 26 Mar 2002, Mtv Europe wrote:

> Third quine uses four bits to encode thirteen characters:
> " |(){}[]0123" and separator.
> 
> If the language was designed with '[' and ']' tokens instead of '{' and '}'
> (note, this syntax is still clean and monosemantical), then it would
> be possible to write quine with eight chars - " |()[]0" and separator - and
> thus in three bits - around one fourth shorter.

Sorry, I'm not changing it. There are four semantically distinct
bracketing operations in Kayak, and four sets of brackets in ASCII. It
would be a crime not to make them correspond one to one.

Here's an idea: instead of a fixed-width encoding, use an order-0 Huffman
code.

> >> (e|i){}(e|i)
>
> And with some low but computable probability it can be a quine as well!

Hold on, let me fire up calc.lazy... yes, with a probability of 1 in
649037107316853453566312041152512, to be exact. Of course, this applies
only if the interpreter uses something like /dev/random for its bits,
which presently it doesn't. I should fix that.

Unfortunately, the interpreter complains of nonzero values following the
output. The probability that it will print the source code without
complaining is 0 exactly.

-- Ben






From esoteric@oiva.sange.fi Tue Mar 26 22:41:29 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pxku-000Ftm-00; Tue, 26 Mar 2002 22:41:20 +0200
Received: with LISTAR (v0.129a; list misc); Tue, 26 Mar 2002 22:41:13 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pxkk-000Ftf-00; Tue, 26 Mar 2002 22:41:10 +0200
Received: with LISTAR (v0.129a; list lang); Tue, 26 Mar 2002 22:40:53 +0200 (EET)
Received: from dark.darkweb.com ([216.163.74.170])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pxkS-000FtZ-00
	for lang@esoteric.sange.fi; Tue, 26 Mar 2002 22:40:52 +0200
Received: from localhost (benrg@localhost)
	by dark.darkweb.com (8.9.3/8.9.3) with ESMTP id MAA13064
	for <lang@esoteric.sange.fi>; Tue, 26 Mar 2002 12:40:50 -0800
Date: Tue, 26 Mar 2002 12:40:50 -0800 (PST)
From: Ben Rudiak-Gould <benrg@dark.darkweb.com>
To: Esoteric Languages List <lang@esoteric.sange.fi>
Subject: [lang] Re: [Kayak] improved interpreter
In-Reply-To: <Pine.LNX.4.40.0203261400380.30712-100000@hagbart.nvg.ntnu.no>
Message-ID: <Pine.LNX.4.21.0203261220000.32104-100000@dark.darkweb.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: benrg@dark.darkweb.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: benrg@dark.darkweb.com
Precedence: bulk
X-list: misc

On Tue, 26 Mar 2002, Orjan Johansen wrote:

> I noticed that in the html file you sometimes call the [ ... ] construct a
> loop.  Did you consider making it one and then change your mind?

Oops. Yes, at one time the stacks and temporary registers were going to
hold integers instead of bits, and [ ... ] was going to execute the code
inside N times, where N was the value in the temporary register.
(Naturally, if N was negative, it would run the code backwards.) It still
works this way, if you think of 0 and 1 bits as the integers 0 and 1.

I wrote the documentation (and everything else) in a hurry and I'm sure
there are still mistakes lurking in there. Let me know if you notice any
others. (I've already replaced mentions of "function" with "procedure" and
"list" with "stack".)

> If the construct didn't allocate a new temporary register then it
> could instead require the temporary register to be full at both ends,
> and loop or exit dependent on whether it was false or true
> respectively.

True. This possibility didn't occur to me when I was designing the
language. In any case, I think the present semantics works well in
practice.

-- Ben






From esoteric@oiva.sange.fi Tue Mar 26 22:55:04 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pxxz-000Fxn-00; Tue, 26 Mar 2002 22:54:51 +0200
Received: with LISTAR (v0.129a; list misc); Tue, 26 Mar 2002 22:54:44 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pxxc-000Fxe-00; Tue, 26 Mar 2002 22:54:28 +0200
Received: with LISTAR (v0.129a; list lang); Tue, 26 Mar 2002 22:54:21 +0200 (EET)
Received: from dark.darkweb.com ([216.163.74.170])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16pxxU-000FxY-00
	for lang@esoteric.sange.fi; Tue, 26 Mar 2002 22:54:20 +0200
Received: from localhost (benrg@localhost)
	by dark.darkweb.com (8.9.3/8.9.3) with ESMTP id MAA13433
	for <lang@esoteric.sange.fi>; Tue, 26 Mar 2002 12:54:18 -0800
Date: Tue, 26 Mar 2002 12:54:18 -0800 (PST)
From: Ben Rudiak-Gould <benrg@dark.darkweb.com>
To: lang@esoteric.sange.fi
Subject: [lang] Re: [Kayak] another quine
In-Reply-To: <6677394705.20020324153946@frox25.dhs.org>
Message-ID: <Pine.LNX.4.21.0203261249510.32104-100000@dark.darkweb.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: benrg@dark.darkweb.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: benrg@dark.darkweb.com
Precedence: bulk
X-list: misc

On Sun, 24 Mar 2002, Mtv Europe wrote:

> I also have Kayak interpreter on Perl.   It works good on small programs,
> but fails on big quines (looks like 40000 recursive calls for Perl are
> too much).   Is somebody interested?

If it's anywhere near as neat as that one-line 'e' interpreter you posted
the other day, then I'm interested. :-)

-- Ben






From esoteric@oiva.sange.fi Wed Mar 27 19:42:39 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qHRI-000JEA-00; Wed, 27 Mar 2002 19:42:24 +0200
Received: with LISTAR (v0.129a; list misc); Wed, 27 Mar 2002 19:42:16 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qHOz-000JDa-00; Wed, 27 Mar 2002 19:40:02 +0200
Received: with LISTAR (v0.129a; list lang); Wed, 27 Mar 2002 19:39:54 +0200 (EET)
Received: from ctb-mesg1.saix.net ([196.25.240.73])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qHOp-000JDN-00
	for lang@esoteric.sange.fi; Wed, 27 Mar 2002 19:39:52 +0200
Received: from lennie (woc53-01-p130.wc.saix.net [155.239.129.130])
	by ctb-mesg1.saix.net (8.11.4/8.11.4) with SMTP id g2RHdYK07478
	for <lang@esoteric.sange.fi>; Wed, 27 Mar 2002 19:39:42 +0200 (SAT)
Message-ID: <005101c1d5b5$960fcfa0$8281ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: <lang@esoteric.sange.fi>
References: <20020324225035.4003.qmail@web14008.mail.yahoo.com> <002c01c1d447$0d7f5620$bb81ef9b@lennie> <3C9FA2F6.63B8A68A@dds.nl>
Subject: [lang] Re: cat lang ? (Was: Re: Quine In e lang ?)
Date: Wed, 27 Mar 2002 10:47:45 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

Milo van Handel,

> Hahaha!  "cat" isn't a real programming language.  It's a simple Unix tool
> which copies input to output.  But you can also see it as if the input is
a
> program, there is no user input, and the output is the program output, and
then
> every possible program will be a quine.  As for where to get it: this is
the
> Kayak version: "(io){}(io)", and this is (or so I have been told) the
Lazy-K
> version: "".

Yeh, Hahaha! Dear me always think that something is a programming langauge !
:) Is it only a Unix tool or is it also avialable with Linux ?

Wow! The smallest simples Kayak program I've seen - Thanks! :)

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Wed Mar 27 19:42:39 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qHRI-000JE8-00; Wed, 27 Mar 2002 19:42:24 +0200
Received: with LISTAR (v0.129a; list misc); Wed, 27 Mar 2002 19:42:16 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qHOz-000JDb-00; Wed, 27 Mar 2002 19:40:02 +0200
Received: with LISTAR (v0.129a; list lang); Wed, 27 Mar 2002 19:39:54 +0200 (EET)
Received: from ctb-mesg1.saix.net ([196.25.240.73])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qHOp-000JDO-00
	for lang@esoteric.sange.fi; Wed, 27 Mar 2002 19:39:52 +0200
Received: from lennie (woc53-01-p130.wc.saix.net [155.239.129.130])
	by ctb-mesg1.saix.net (8.11.4/8.11.4) with SMTP id g2RHdhK07513
	for <lang@esoteric.sange.fi>; Wed, 27 Mar 2002 19:39:43 +0200 (SAT)
Message-ID: <005201c1d5b5$96d93a20$8281ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: <lang@esoteric.sange.fi>
References: <20020324225035.4003.qmail@web14008.mail.yahoo.com> <002c01c1d447$0d7f5620$bb81ef9b@lennie> <200203260953.JAA17476@wells.tecc.co.uk>
Subject: [lang] Re: cat lang ? (Was: Re: Quine In e lang ?)
Date: Wed, 27 Mar 2002 10:53:20 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

Mike Taylor,

> > "cat" ? Does this language exist ? Where can I get it ?
> You should be able to implement it in "dd" easily enough.

"dd" ? I'm lost !! <g> Please HELP !! :)

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Wed Mar 27 19:42:39 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qHRM-000JE9-00; Wed, 27 Mar 2002 19:42:28 +0200
Received: with LISTAR (v0.129a; list misc); Wed, 27 Mar 2002 19:42:16 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qHP8-000JDm-00; Wed, 27 Mar 2002 19:40:10 +0200
Received: with LISTAR (v0.129a; list lang); Wed, 27 Mar 2002 19:40:03 +0200 (EET)
Received: from ctb-mesg1.saix.net ([196.25.240.73])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qHOu-000JDP-00
	for lang@esoteric.sange.fi; Wed, 27 Mar 2002 19:39:56 +0200
Received: from lennie (woc53-01-p130.wc.saix.net [155.239.129.130])
	by ctb-mesg1.saix.net (8.11.4/8.11.4) with SMTP id g2RHdkK07527
	for <lang@esoteric.sange.fi>; Wed, 27 Mar 2002 19:39:46 +0200 (SAT)
Message-ID: <005401c1d5b5$98c79ca0$8281ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: "EsoLang Lang" <lang@esoteric.sange.fi>
Subject: [lang] [ANN] e v1.5 For Palm
Date: Wed, 27 Mar 2002 13:46:49 +0200
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary="----=_NextPart_000_001B_01C1D595.D8725720"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

This is a multi-part message in MIME format.

------=_NextPart_000_001B_01C1D595.D8725720
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

Hello!

The file-attachment's the release of e lang version 1.5 only for the PalmOS
platform. The Java version will be avialable shortly!

Other implementations (like Perl, Python etc) also Welcome !

See README.TXT

Requirements:
  PalmOS 3.5 and later
  SmallBASIC @ Palm 0.8.0 (http://smallbasic.sourceforge.net)

What's New ?
------------
-  Operate on a one-dimensional array of unlimited size (not limited to 10
elements anymore!)
-  Reading Input (character/number)

History
-------

 27 Mar. 2002
    - Only PalmOS version Release!
    - Unlimited one-dimentation array size
    - Read input (character/number)
    - Change CSP to CDP

 11 Feb. 2002
    - First Release v1.0
    - Finnish e website (link above)
    - Only "HelloWorld.e" example

Visit http://www.crosswinds.net/~lennie2000/comp/e_lang/ for more
information.

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------




------=_NextPart_000_001B_01C1D595.D8725720
Content-Type: application/x-zip-compressed;
	name="e_15_Palm.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="e_15_Palm.zip"

UEsDBBQAAgAIAHxmeyzVjGmcmQQAAEwJAAAJAAAAZWxhbmcucGRijVVLb+NUFHZBYmEhzYYfcOoi
2aEPEsQs6KgtruNQS4ltYocOrHrb3CSe+hHZTqfDBs0OJH4EEnsW7GAzAoklC/4JCySWw3evH2lm
GKmR4ut7fR7fOec75/KYpfODS1Yob/6981f/J/F/9Ty0H4dBcsrag7fwv/j0yx+2sE6xYn/2tqIE
irKlbI1YlCovfj5WlO4k/O2PX/598e33F8//fvnymz9XfeW9Bw+29m9N5SH+Z99dPP8Y+x93LeXd
f66VX7H+vqsTpy96Bw9pluXkszjxAlXtOyPqs9LodTuq1ffpiLqqGkxOyc7zUTE38O+opFM/KpYx
e0aMeJ5DP+FFweZcpROyzNDo0S591Dk8Icg/EgcwR6e27au2268MOukVDOGZ84SnJZULTvCoSvd4
6cB3+7pLvbVmnwtNPO+juX9X0+W3pZTUR9mNVKIyoxSntIjmC16UxGNpFCIhzBbR15yymXQBk8Ty
HEE/jeKYIHHJKRL4WcHJSLOSnqxKiqMkKsVXWO51G3tFB0fOQGCiY/pE7Mj0fSATdveoiwNsnAHW
Ku/iuRG2n/Ob18EvcRplq4Li7OkmfoshN4kQhVh9LKVyhMNSuNyHVJeiQoYXM2jfsDiaEoshtrbU
wu5K2Gt4IrdkDwMbpxU/NMt09ZA+82jondtjCs9MF46Mr+yx19nW6hjXMZ3nUckdCVe+SrOsAK3S
VXIJpCN2jSqsci4wl4TMRgWEK5y1DEvxiuwzulqwnF2VPJegncCdjE7tsdGQoSPxn7TkeNTmfBOQ
tchfB2QGluPc9QCmn43fXxt/dMfMmLOpky5XCIx0sQFRsMMTtRAmm3oYrcEPq2jQJ+S4/iQkiwTa
O5y27thfpX6eGb4ISPeWPIVBzB2wIZvnLFHJA7VIG9kj71ADjXwaeOParhnQDuomiDZEx5MelCwv
BctfsaHS+ZkztI1tsr2B0et02mCKKJ3HoEyUoi6ie2Z5lmyqC+xDx7Urnzu9PSpCniylX7hcxihl
UeYwRHmVH2SmzK55WuzRSjhovBRLdsWFkizDlMsGwz7wh05YWd0jjQ60PQqlPmKS4VpZkoAbBeJu
vpCYOEg2ugbPynPlFJUA7YXbq1pNhut6oX1IQYJvp2bgWDTNeJHqmBcMjcUosIe2FVpmYCMaVtYd
I2KUbdMgOCJtW5PsIzH45EvVCvT/wq00xtw9pFvxesKtVejNOq1SPVnu42et1LTu/bQ21dBg91SD
nlTb6Kg6Mqnm4s4UTBWtQVSx2kM1durJqY9MlD9AkRzPVVVJeb25vRYwipKrJxruwhtxFw7qu1Cj
wxMch8+WnPTPJ06oyyl6G5UH8pOq0zDCwAQv5PRkNyyK2SXoWvO/AKPllxFPMp9NhQ+/bg2heSjN
CJrOBD8HaLTAqBr2gwMb2ep7mDAzVR3bvm2Gcm41o0E7Bte9ZZUArEc0EQw0vCWSrMpM4nQbSRTI
qwzqzqxtzYbDCKcQM6nBSNM6L/JOr2tiP3aC0FiPEjipS1kNIQFA1qS6B9qbQIZElQYeGqGV0JYT
ty/ugXXtq1WduKEzNGQwDWrlP1BLAwQUAAIACADkYnss7Fwj4iEHAAD6DwAACgAAAFJlYWRtZS50
eHSlV2tv20YW/WwD/g9X2g+V3IiWXQQNXKBbRZYTAdajkpxsPhUjciQNTM6wQ1KygsX+9p47Q0pU
7XSLXcZxQvLOfZx77oMX5/TadXl5id+SWoN/9R96o95iOBm3/dOL87MzJzOYTxaD2bBP09nkw6w3
Gg3HH+ihN/7w2PswODu7OL94XffJ9ek6ePtf5e4nM5r2HkaTOSv9/v+7/o5fHyejwRRRHCU59E2e
p7dXV7vdLgitybKd0lEWaJlf/SeWWit50+12r0KTpFfyt1jo9RUfY3sX54uNygg/AqDyq0KsJSmd
S5taid+0MpbyjaSpiJPJnDZCRxsZR5TGIse7JCBW83kjclYj6Z8X553jdXE+NqTyjLTJYSOyxZoa
dNtpuxw+h7FIRK6Mbpc+ZAY2VUipNWsrkkTp9dGtpcgkGQ05o2UnUonUfFbEJKwVe8pUomIBdw29
t0Lp+8vLp4CGORU4JwgALJV25sisSB6tUyLsU0atRptExnKJYAQ5sCF8T6CL1gZ24ORiQnez4acB
fZk80nA8740H1Gg4EMbg3S0Ny2jzwrL3DHsMJN/QXuYNFpvjcSwzylIR4h+YIi13FCvNd1Y6dxFD
JlNhRS5PHXovQ+EENqd5mowfvpCVoVlr9RXh6v0rEdaiQ1Zop2LEtNbG+gMGSi2FG5gNoRPpXN9W
tFxsJKzeQOmfdDbwxykSUeS82oq4YEmEwLf9u6mLEf/XFKkMxNmz8QZfDmLOPA6pCKQoEw9pkf8v
agNyjE7Ek3QhSpHt+YjSYVxEHkvQxmPpeftdRmPgf0pcMLdDNEmly8Ap6bI66cCkQsdgXi4jMBDQ
tzj71ROYvu6SjKWzyignQLvRdupnUkTMkaFOi5xaB+CvdJEspW17H4c6y0UcO8wz4jtbhO7m1OPT
i0/O5O+Fst70LaexLOIfgrcOO+iUlp/PExh435ujaf7ihKgbvAu6jtWXdK9sltPeFOCpDykyOx0b
ETktyvvnsvJS0bZUVedqS2wFKnUZg3Z51b4yPooSV2GQmcKGEt1lLbmNtRl/mLdeYyS3KpRlovFj
fZRvaFmWRs2JyMhMf5cf0i/gvYmpxbXYdr2N61PFnAXEJQih6KgjYiSbLoPUhh6Cjyaf73X4It6m
5O4UpNGySSsVS99SJfkIOqGBTfZSV5IIsEnDlUOTSerqDonXa/C1VcUZyewpNylN++03nuF19Kvy
R4g307v3ZUhiq4THFFpqEOzkMgMV23wyNHorbc6Fgbu68xzYIcg1Gp7v6/3Ss1BowAuPI6e+Gghl
LrjDy3hFrZ3KN0p/gwnDGgOGd4N2WYKPGXp7yWQP9hfEurPwmRhmP5eqxuCwZP0jmZgpGNhCDseY
Gvx/eMaUBllrzmVt7l2Uq5yhWbnDCQ7T6HG+4KCgsEhR6CGPF8ZhZeLY7Gi556EhUoVsUzMYNNEO
A/o4eHiYfJ7MHu6CAfWqBuSyVrrog5jnAkC/jkStFt7UaeTI4Zqed4tfxSrLl+YZXaXMfkU/5HDF
hQkeL0TKsTdnj+Mmi9hCnzrTc2o4+qrPnmLayjfGkcp1w5JJzoUS5vbBLafIIwR/gBE7CUVJmntb
i8O9L07EmaEBeTibP3uq4c0Os0Y6Xq/V9jjkqv5ew6jUu0897VcFPNEiOWTzNBqncqeyTYVEa4m5
RuyvpQ7YUku2j6LtEytx99nYOArQw7lrcg+uz45AeirJE3MOGEeCjFMecHWXmLj3VQuSz4zcEVJe
d6yFP4nMuAQOCJfDTEauQBao2tiUFe8tn9KHYWn++jhcNLmZHrNB3Nw2ho/eozPRv6nv9KzwtiwC
XfgqR51X6M/kCmnRoXxttvCoaFSb51CH5Whxs9iPZydRidzJlxJeoJQYma0f5ABZy2eMArXeSIdS
JJ8ZK0AaPpVay1MvDnEOv33GHbor94OjoxvBW4efs0fZxl/I9ub94fC4HB3PNPwgh2me4kiOcWfL
mf+NsX5J/cJafn8nckFT45JKLZysGiNTrd4z536m9DFT/mrwd/zJGklQ0rUe9HI0lfyOArqXMgZB
pNs/3XiqRhOXAWLBMsaj0rU77ACkEpBtWyZZ5mGbehkSAhFgdqhtlCqYEHHHKr8mjFVrxUuU98b1
BHSJiEV5U0/dYuXM8G6ciIyjkViYQcCfOuVm9BEVZez+gIbbVW9+pJGwAeGj58avrh2a6HhfLT8Y
gLzAIWcxlkPZqGQeD1vc8evC77nV18VXWcnW8v1aer2Qn53UnzuqIrHOvetroLw8dc8vWKVDtL0O
usc3+H5DK5PVGKcWdpUnEkug3j4Jr1lvYJhVz4I/PPBVzGZ7BTq8rYDyO/2D+zZEldIndB4FWPgp
/x3giye+pYgHqH/zCxpPZILQBF9FJTXs//oPevtjt/vu3Q/d6mFvaQDKSDbc3dnf+zR1h0Yy2OSY
V38AUEsDBBQAAgAIAHFmeywzxYggGQQAAC8JAAAJAAAAZWxhbmcuYmFzjVZbb9pIFH5H4j+cOCvZ
bNMsVNqHTZRGxAyNJbC92GyqfZvAAN76gmyTtvvr+50Zm5u6KyQw4zPznft3BpsU/TW4/Z1WRUmh
TLMg6na6nZE3pZGsnUG/1+24o5AeqM/yaP5Eoiyn1drBF3tk0yiptqn8TpJUWUJLpqpKrhX2Hskd
xs6A3tGH3t0jAXHPAtZJT0KE3Y7wR61aL1+wOvyUKlN5TfVGEUxDyJ5g1YMX++U7GpzAR0rD8XMR
/P0Z3FffanPanhZvGkl1QTnEtEnWG1XVpFKtmc/EUF4l/yoqVtoQ9JIsS2Tha5KmxEdeFSUci6wU
OXlR0z+7mtIkS2q9DeWDfquy6rHMG7Nv9JH+0K80DEN4yLpvqM8SvHljXpiK8PM8DWGp3n4Sxxbi
pNhVlBZfz0JxJZKV8Vmca+T6WInIZA7L7/lYn5JKh5pK4N9kmixJpjh3pGsfQN8EcHBTp5vEJBIs
Nx1kuUPfjulTQJPgRcwofh76sOb8LWZB78pq4z0J76VMauUZx/Vaa5cVmi/fZa/weSq/oDS7UrH3
NSHbScWnjcfNIZljiZJIWmxkKRe1Ko37XuTPp09i5rSN0jORPO475/6oDueOuZvyJ44NI9fzTgyB
F8+zXw427k91zZRcevl2x1GSzW/oJLziiRKx3rZMzl7rbyYyZhZ5fjiPySXt+VHzu6dWdnlYFk6o
A7SDrcqhVuZr9EqxLmUGaYD+I2sqpsGdhU4LaRzMGu3DiK65pLobJ3pmkB3VsqyZEueK8Hl59ibC
uSIRjJ1Br3cIrUrydYq2SnKUjOm2KovsVIMOZOL5wti+HtxQFats29iH4W2KQld1CV1UmoQhVXXx
ReXVDe3YRmuo2sqF0ihdnaXSnGRBFE682Gi+IYturRuKtQYdnQ7eLbIMzVMhC/s94qGFEoBjeBrz
xjLqA4qw7UWDM3H7QSzuKMqw+TSMPJeWhapyG5NGgoaSIjERbuwOI4GYZN3SS8eqSdZ68UDWlWU6
lHiAmlVDG/oPwAGBYXkZ4gBp5uQRjP4PdwA2g+lCe0fAlvIXI8+gIOXlUGAN9JSETaQG6YvPse5o
TSaihgMBqnV9GMb2dIgeiVBHL/BZ0LDEbq/LDQygNbqdRwt38BvfwePmDrbo7pHl8fetIvvPuRfb
ejh/S+pbswc9NEkwiNFCeirLN5mk8hX93XCmAgX0zlRlRSiX2k7Y8Imhd0YTd/WK23kMfkaOYfuv
twJJHAWYVCs2NhOhGMZmEO4njPURBAm2TVaweKA596wTbLkA+twYL3SF9HIQTW5tb7Undtv4CK3i
+dZ6S8smS/ovRVsv8dmLYucwkGCoLbWZZuyFqVdz0+zvGh0eGRAeFoGDYPTcH+mb5qg7mkW3M/dj
b+LouPbu/wBQSwMEFAACAAgA71mEKgDH8u9qAAAAkAAAAA4AAABTbWFsbEJBU0lDLnVybIt2cXVz
DPUJieXlcnIMdg0N8rHNKCkpsNLXL85NzMlJSizOTNYrzi8tSk5Nyy9KT9XLSy3R5+WK9swrSS0C
soMz8otKkktLgPqJ1eubn5KZlpmaYmtpYOJo6uRs7mru5OxsYGBoZsDLBQBQSwECFAAUAAIACAB8
Znss1YxpnJkEAABMCQAACQAAAAAAAAABACAAtoEAAAAAZWxhbmcucGRiUEsBAhQAFAACAAgA5GJ7
LOxcI+IhBwAA+g8AAAoAAAAAAAAAAQAgALaBwAQAAFJlYWRtZS50eHRQSwECFAAUAAIACABxZnss
M8WIIBkEAAAvCQAACQAAAAAAAAABACAAtoEJDAAAZWxhbmcuYmFzUEsBAhQAFAACAAgA71mEKgDH
8u9qAAAAkAAAAA4AAAAAAAAAAQAgALaBSRAAAFNtYWxsQkFTSUMudXJsUEsFBgAAAAAEAAQA4gAA
AN8QAAAAAA==

------=_NextPart_000_001B_01C1D595.D8725720--






From esoteric@oiva.sange.fi Wed Mar 27 21:40:39 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qJHR-000JVe-00; Wed, 27 Mar 2002 21:40:21 +0200
Received: with LISTAR (v0.129a; list misc); Wed, 27 Mar 2002 21:40:14 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qJFk-000JVL-00; Wed, 27 Mar 2002 21:38:36 +0200
Received: with LISTAR (v0.129a; list lang); Wed, 27 Mar 2002 21:38:29 +0200 (EET)
Received: from smtp-send.myrealbox.com ([192.108.102.143])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qJFd-000JVF-00
	for lang@esoteric.sange.fi; Wed, 27 Mar 2002 21:38:29 +0200
Received: from amir amirlb@smtp-send.myrealbox.com [62.219.227.157]
	by smtp-send.myrealbox.com with Novell NIMS $Revision:   2.88  $ on Novell NetWare;
	Wed, 27 Mar 2002 12:38:16 -0700
Message-ID: <038701c1d5c6$9c89c500$3900a8c0@amir>
From: <amirlb@myrealbox.com>
To: <lang@esoteric.sange.fi>
References: <20020324225035.4003.qmail@web14008.mail.yahoo.com> <002c01c1d447$0d7f5620$bb81ef9b@lennie> <3C9FA2F6.63B8A68A@dds.nl> <005101c1d5b5$960fcfa0$8281ef9b@lennie>
Subject: [lang] Re: cat lang ?
Date: Wed, 27 Mar 2002 21:35:50 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2919.6700
X-MIMEOLE: Produced By Microsoft MimeOLE V5.00.2919.6700
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: amirlb@myrealbox.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: amirlb@myrealbox.com
Precedence: bulk
X-list: misc

> :) Is it only a Unix tool or is it also avialable with Linux ?

Unix is a general name for many operating system, and Linux is one of them.
Therefore, any standard Unix tool is distributed with Linux.

--
Bad spellers of the world UNTIE!
          lightstep (Amir Livne)






From esoteric@oiva.sange.fi Wed Mar 27 23:33:22 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qL2X-000K5Z-00; Wed, 27 Mar 2002 23:33:05 +0200
Received: with LISTAR (v0.129a; list misc); Wed, 27 Mar 2002 23:32:58 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qL26-000K5S-00; Wed, 27 Mar 2002 23:32:38 +0200
Received: with LISTAR (v0.129a; list lang); Wed, 27 Mar 2002 23:32:30 +0200 (EET)
Received: from mailout05.sul.t-online.com ([194.25.134.82])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qL1y-000K5M-00
	for lang@esoteric.sange.fi; Wed, 27 Mar 2002 23:32:30 +0200
Received: from fwd04.sul.t-online.de 
	by mailout05.sul.t-online.com with smtp 
	id 16qKj7-0004H5-05; Wed, 27 Mar 2002 22:13:01 +0100
Received: from esoteric.holy-unicorn (340009195196-0001@[217.230.187.212]) by fwd04.sul.t-online.com
	with esmtp id 16qKis-0jzqDYC; Wed, 27 Mar 2002 22:12:46 +0100
Received: from esoteric.holy-unicorn (localhost [127.0.0.1])
	by esoteric.holy-unicorn (8.12.1/8.11.6) with ESMTP id g2RLGtgw091490
	for <lang@esoteric.sange.fi>; Wed, 27 Mar 2002 22:16:55 +0100 (CET)
	(envelope-from markus@esoteric.holy-unicorn)
Received: (from markus@localhost)
	by esoteric.holy-unicorn (8.12.1/8.12.1/Submit) id g2RLGtJr091489
	for lang@esoteric.sange.fi; Wed, 27 Mar 2002 22:16:55 +0100 (CET)
Date: Wed, 27 Mar 2002 22:16:55 +0100
From: markus.kliegl@t-online.de (Markus Kliegl)
To: lang@esoteric.sange.fi
Subject: [lang] Re: cat lang ?
Message-ID: <20020327221655.A91409@esoteric>
References: <20020324225035.4003.qmail@web14008.mail.yahoo.com> <002c01c1d447$0d7f5620$bb81ef9b@lennie> <3C9FA2F6.63B8A68A@dds.nl> <005101c1d5b5$960fcfa0$8281ef9b@lennie> <038701c1d5c6$9c89c500$3900a8c0@amir>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <038701c1d5c6$9c89c500$3900a8c0@amir>
User-Agent: Mutt/1.3.23i
X-Sender: 340009195196-0001@t-dialin.net
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: markus.kliegl@t-online.de
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: markus.kliegl@t-online.de
Precedence: bulk
X-list: misc

* amirlb@myrealbox.com <amirlb@myrealbox.com> [020327 21:04]:
> > :) Is it only a Unix tool or is it also avialable with Linux ?
> 
> Unix is a general name for many operating system, and Linux is one of them.
> Therefore, any standard Unix tool is distributed with Linux.
> 

Well, more specifically, UNIX (TM) is a registered trademark of the
OpenGroup, who are the publishers of the Single UNIX Specification
(version 3 is online at http://www.unix-systems.org/version3/), which
has been merged with POSIX, the Portable Operating System Interface,
which are the ISO/IEEE 1003.x standards, which define such things as
the 'cat' utility (in 1003.2 or the XCU section of the Single UNIX
Specification). Note that the GNU utilities often don't comply with
POSIX, but add their own weird, twisted, and hardly useful features
instead; sometimes they add very useful features and it's a pity they
aren't in POSIX - in any case portability between POSIX and GNU
utilities is more often problematic from GNU to POSIX than the other
way around.
I believe susv3 is in a stage of final review before
being released as ISO/IEEE 1003.x-2001. I suppose no one cares or uses
the terms UNIX and the like at that level, though :-)

Informally, UNIX is sort of a collective term to mean any of the
operating systems derived from the AT&T UNIX or the Berkeley Software
Distribution (BSD), which was originally also derived from the AT&T
sources (Unix version 6). Usually it also includes Linux, though most
of the time I've seen it written as Unix/Linux--maybe because Linux
has become a sort of marketing buzzword. Studying the history
and origins of all the various "flavors" of UNIX can be quite
interesting; I can provide links and pointers if anyone's interested :-)
There are so many interesting things, I wonder why the hell I had to
learn about the French Revolution and Prussian kings. *sigh*

Markus





From esoteric@oiva.sange.fi Wed Mar 27 23:59:38 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qLRr-000KA8-00; Wed, 27 Mar 2002 23:59:16 +0200
Received: with LISTAR (v0.129a; list misc); Wed, 27 Mar 2002 23:59:09 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qLQB-000KA1-00; Wed, 27 Mar 2002 23:57:31 +0200
Received: with LISTAR (v0.129a; list lang); Wed, 27 Mar 2002 23:57:24 +0200 (EET)
Received: from smtp-send.myrealbox.com ([192.108.102.143])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qLQ4-000K9v-00
	for lang@esoteric.sange.fi; Wed, 27 Mar 2002 23:57:24 +0200
Received: from amir amirlb@smtp-send.myrealbox.com [62.219.227.157]
	by smtp-send.myrealbox.com with Novell NIMS $Revision:   2.88  $ on Novell NetWare;
	Wed, 27 Mar 2002 14:57:10 -0700
Message-ID: <03b501c1d5da$06f23d10$3900a8c0@amir>
From: <amirlb@myrealbox.com>
To: <lang@esoteric.sange.fi>
Subject: [lang] beta-Juliet?
Date: Wed, 27 Mar 2002 23:54:26 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2919.6700
X-MIMEOLE: Produced By Microsoft MimeOLE V5.00.2919.6700
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: amirlb@myrealbox.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: amirlb@myrealbox.com
Precedence: bulk
X-list: misc

Where can I find a beta-Juliet interpreter (I don't really care about
Portia)? the link on cat's eye is broken, and Google can't find this
language anywhere else.
I'm thinking about creating a similar language, something like a generalized
neural network, but I don't know how to handle event invocations correctly.

--
Bad spellers of the world UNTIE!
          lightstep (Amir Livne)






From esoteric@oiva.sange.fi Thu Mar 28 00:13:49 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qLfq-000KCQ-00; Thu, 28 Mar 2002 00:13:42 +0200
Received: with LISTAR (v0.129a; list misc); Thu, 28 Mar 2002 00:13:35 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qLfb-000KCJ-00; Thu, 28 Mar 2002 00:13:27 +0200
Received: with LISTAR (v0.129a; list lang); Thu, 28 Mar 2002 00:13:16 +0200 (EET)
Received: from sabre-wulf.nvg.ntnu.no ([129.241.210.67])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qLfQ-000KCD-00
	for lang@esoteric.sange.fi; Thu, 28 Mar 2002 00:13:16 +0200
Received: from hagbart.nvg.ntnu.no ([IPv6:::ffff:129.241.210.68]:37271 "EHLO
	hagbart.nvg.ntnu.no" ident: "[MO/1LxCtbE1U0xm6sJssV6SM9LBSybjh]" whoson:
	"-unregistered-") by sabre-wulf.nvg.ntnu.no with ESMTP
	id <S436900AbSC0WM6>; Wed, 27 Mar 2002 23:12:58 +0100
Date:	Wed, 27 Mar 2002 23:12:58 +0100 (CET)
From:	Orjan Johansen <oerjan@nvg.ntnu.no>
To:	Esoteric Languages List <lang@esoteric.sange.fi>
Subject: [lang] Re: beta-Juliet?
In-Reply-To: <03b501c1d5da$06f23d10$3900a8c0@amir>
Message-ID: <Pine.LNX.4.40.0203272307560.30712-100000@hagbart.nvg.ntnu.no>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: oerjan@nvg.ntnu.no
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: oerjan@nvg.ntnu.no
Precedence: bulk
X-list: misc

On Wed, 27 Mar 2002 amirlb@myrealbox.com wrote:

> Where can I find a beta-Juliet interpreter (I don't really care about
> Portia)? the link on cat's eye is broken, and Google can't find this
> language anywhere else.

As far as I have seen, the bug on catseye affects only perl files - I
guess the web server thinks they are CGI scripts and tries to execute
them.

In any case, you should be able to download the whole subtree.

Greetings,
=D8rjan.

--=20
My Unlambda page: <http://home.nvg.org/~oerjan/unlambda/>
Latest contraption:  Unlambda to Ocaml compiler.






From esoteric@oiva.sange.fi Thu Mar 28 00:28:53 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qLuV-000KGq-00; Thu, 28 Mar 2002 00:28:51 +0200
Received: with LISTAR (v0.129a; list misc); Thu, 28 Mar 2002 00:28:44 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qLu9-000KGj-00; Thu, 28 Mar 2002 00:28:29 +0200
Received: with LISTAR (v0.129a; list lang); Thu, 28 Mar 2002 00:28:22 +0200 (EET)
Received: from imailg1.svr.pol.co.uk ([195.92.195.179])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qLu1-000KGd-00
	for lang@esoteric.sange.fi; Thu, 28 Mar 2002 00:28:21 +0200
Received: from [195.92.198.123] (helo=mail17.svr.pol.co.uk)
	by imailg1.svr.pol.co.uk with esmtp (Exim 3.35 #1)
	id 16qLtz-0004l6-00
	for lang@esoteric.sange.fi; Wed, 27 Mar 2002 22:28:19 +0000
Received: from modem-114.dagorlad.dialup.pol.co.uk ([62.136.151.114] helo=localhost.localdomain)
	by mail17.svr.pol.co.uk with esmtp (Exim 3.35 #1)
	id 16qLtz-0003Kr-00
	for lang@esoteric.sange.fi; Wed, 27 Mar 2002 22:28:19 +0000
Received: (from mike@localhost)
	by localhost.localdomain (8.9.3/8.9.3) id TAA20997;
	Wed, 27 Mar 2002 19:57:40 GMT
Date: Wed, 27 Mar 2002 19:57:40 GMT
Message-Id: <200203271957.TAA20997@localhost.localdomain>
X-Authentication-Warning: localhost.localdomain: mike set sender to mike@miketaylor.org.uk using -f
From: Mike Taylor <mike@miketaylor.org.uk>
To: lang@esoteric.sange.fi
In-reply-to: <005201c1d5b5$96d93a20$8281ef9b@lennie> (ddevilliers@lando.co.za)
Subject: [lang] Re: cat lang ? (Was: Re: Quine In e lang ?)
References: <20020324225035.4003.qmail@web14008.mail.yahoo.com> <002c01c1d447$0d7f5620$bb81ef9b@lennie> <200203260953.JAA17476@wells.tecc.co.uk> <005201c1d5b5$96d93a20$8281ef9b@lennie>
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mike@miketaylor.org.uk
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mike@miketaylor.org.uk
Precedence: bulk
X-list: misc

> Date: Wed, 27 Mar 2002 10:53:20 +0200
> From: "D De Villiers" <ddevilliers@lando.co.za>
> 
> > > "cat" ? Does this language exist ? Where can I get it ?
> > You should be able to implement it in "dd" easily enough.
> 
> "dd" ? I'm lost !! <g> Please HELP !! :)

Sorry, this was a cruel joke.  I shouldn't have done it.  "dd" is
another Unix utility that copies input unchanged to output (modulo
some junk on the standard error stream).  So "implementing" cat in dd
would be something like:

	$ alias cat=dd

I'll go and stand in a corner now.

 _/|_	 _______________________________________________________________
/o ) \/  Mike Taylor   <mike@miketaylor.org.uk>   www.miketaylor.org.uk
)_v__/\  "All that I know most surely about morality and obligations,
	 I owe to football" -- Albert Camus.





From esoteric@oiva.sange.fi Thu Mar 28 00:36:47 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qM1s-000KIa-00; Thu, 28 Mar 2002 00:36:28 +0200
Received: with LISTAR (v0.129a; list misc); Thu, 28 Mar 2002 00:36:22 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qM19-000KIM-00; Thu, 28 Mar 2002 00:35:43 +0200
Received: with LISTAR (v0.129a; list lang); Thu, 28 Mar 2002 00:35:36 +0200 (EET)
Received: from smtp-send.myrealbox.com ([192.108.102.143])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qM11-000KIG-00
	for lang@esoteric.sange.fi; Thu, 28 Mar 2002 00:35:36 +0200
Received: from amir amirlb@smtp-send.myrealbox.com [62.219.227.157]
	by smtp-send.myrealbox.com with Novell NIMS $Revision:   2.88  $ on Novell NetWare;
	Wed, 27 Mar 2002 15:35:27 -0700
Message-ID: <03c901c1d5df$5df2a190$3900a8c0@amir>
From: <amirlb@myrealbox.com>
To: <lang@esoteric.sange.fi>
References: <20020324225035.4003.qmail@web14008.mail.yahoo.com> <002c01c1d447$0d7f5620$bb81ef9b@lennie> <200203260953.JAA17476@wells.tecc.co.uk> <005201c1d5b5$96d93a20$8281ef9b@lennie> <200203271957.TAA20997@localhost.localdomain>
Subject: [lang] Re: cat lang ?
Date: Thu, 28 Mar 2002 00:32:50 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="windows-1255"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2919.6700
X-MIMEOLE: Produced By Microsoft MimeOLE V5.00.2919.6700
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: amirlb@myrealbox.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: amirlb@myrealbox.com
Precedence: bulk
X-list: misc

> some junk on the standard error stream).  So "implementing" cat in dd
> would be something like:
> 
> $ alias cat=dd

Not really...
Try cat --version, and you'll see a big difference.

--
Bad spellers of the world UNTIE!
          lightstep (Amir Livne)






From esoteric@oiva.sange.fi Thu Mar 28 11:50:35 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qWXU-000MNV-00; Thu, 28 Mar 2002 11:49:48 +0200
Received: with LISTAR (v0.129a; list misc); Thu, 28 Mar 2002 11:49:41 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qWXM-000MNO-00; Thu, 28 Mar 2002 11:49:40 +0200
Received: with LISTAR (v0.129a; list chat); Thu, 28 Mar 2002 11:49:38 +0200 (EET)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qWXJ-000MNI-00
	for chat@esoteric.sange.fi; Thu, 28 Mar 2002 11:49:37 +0200
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g2S9nZr29987
	for <chat@esoteric.sange.fi>; Thu, 28 Mar 2002 11:49:36 +0200
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g2S9nWY02693
	for <chat@esoteric.sange.fi>; Thu, 28 Mar 2002 11:49:32 +0200
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Thu, 28 Mar 2002 11:49:32 +0200 (EET)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: chat@esoteric.sange.fi
Subject: [chat] Re: [lang] [Unix] cat lang ? (I sniff a possibility for flame war)
In-Reply-To: <20020327221655.A91409@esoteric>
Message-ID: <Pine.LNX.4.44.0203281135350.1844-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: chat-bounce@esoteric.sange.fi
Errors-to: chat-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: chat@esoteric.sange.fi
X-list: chat
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc

On Wed, 27 Mar 2002, Markus Kliegl wrote:
> > Unix is a general name for many operating system, and Linux is one of them.
> > Therefore, any standard Unix tool is distributed with Linux.
> Well, more specifically, UNIX (TM) is a registered trademark of the

Yes. But Unix as a word is mostly used to refer to the family of operating 
systems with a family resemblance. Into these, Linux fits perfectly. I 
think most of the ambiguity of usage is handled by censoring the 'i' when 
they mean the UN*X(TM) thing.

> has been merged with POSIX, the Portable Operating System Interface,

Yes. The basic reason why people still rather speak of unix than posix is 
that there is a lot more similarity between different unices than there is 
between different POSIX systems (or systems that claim to be 
POSIX-compliant). Moreover, as POSIX is a standard, it is relatively easy 
to conform to it in some aspects and neglect others. You more often hear 
talk of POSIX threads, POSIX system calls, etc than talk of POSIX 
utilities...

> which are the ISO/IEEE 1003.x standards, which define such things as
> the 'cat' utility (in 1003.2 or the XCU section of the Single UNIX
> Specification). Note that the GNU utilities often don't comply with
> POSIX, but add their own weird, twisted, and hardly useful features

Well, I happen to like writing du instead of du -k, and tar xzf ... 
instead of gunzip -c ... <pipe> tar xf -

Note that non-compliance with POSIX is not about added features, but about
lacking features or features with changed semantics. As far as I know, few
GNU utilities are truly non-compliant in this sense. Where they are, the
decision has usually been conscious, as with the du thing.

Now we can enter the discussion about bloat... :)

> utilities is more often problematic from GNU to POSIX than the other
> way around.

True. I wonder how we ended up with most hackers getting their unix
experience from Linux, which as an environment is very nice and pretty
compared to most unices. There are some cases which are very problematic,
as with "make" (which it is almost impossible to write intelligent
portable Makefiles for), "ps", "sh" and so on...

> of the time I've seen it written as Unix/Linux--maybe because Linux
> has become a sort of marketing buzzword. Studying the history

As Unix once was - and now NT is. :) I wonder who is going to be the one
to use oodles and oodles of money to build the next OS brand...

Panu

-- 

Am fuar -> symb <- am fesh
atehwa@iki.fi







From esoteric@oiva.sange.fi Thu Mar 28 11:52:05 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qWZY-000MOQ-00; Thu, 28 Mar 2002 11:51:56 +0200
Received: with LISTAR (v0.129a; list misc); Thu, 28 Mar 2002 11:51:49 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qWZQ-000MOK-00; Thu, 28 Mar 2002 11:51:48 +0200
Received: with LISTAR (v0.129a; list chat); Thu, 28 Mar 2002 11:51:47 +0200 (EET)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qWZO-000MOE-00
	for chat@esoteric.sange.fi; Thu, 28 Mar 2002 11:51:46 +0200
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g2S9pjr30355
	for <chat@esoteric.sange.fi>; Thu, 28 Mar 2002 11:51:45 +0200
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g2S9pf902785
	for <chat@esoteric.sange.fi>; Thu, 28 Mar 2002 11:51:41 +0200
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Thu, 28 Mar 2002 11:51:41 +0200 (EET)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: chat@esoteric.sange.fi
Subject: [chat] Re: [lang] Re: cat lang ?
In-Reply-To: <03c901c1d5df$5df2a190$3900a8c0@amir>
Message-ID: <Pine.LNX.4.44.0203281150340.1844-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: chat-bounce@esoteric.sange.fi
Errors-to: chat-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: chat@esoteric.sange.fi
X-list: chat
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc

On Thu, 28 Mar 2002 amirlb@myrealbox.com wrote:
> > some junk on the standard error stream).  So "implementing" cat in dd
> > would be something like:
> > $ alias cat=dd
> Not really...
> Try cat --version, and you'll see a big difference.

I see you use non-standard extensions to the "cat" language. Might it be 
that you've begun your cat programming with GNU cat?

-- 

Am fuar -> symb <- am fesh
atehwa@iki.fi







From esoteric@oiva.sange.fi Thu Mar 28 19:32:37 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qdjv-000NPN-00; Thu, 28 Mar 2002 19:31:08 +0200
Received: with LISTAR (v0.129a; list misc); Thu, 28 Mar 2002 19:31:01 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qdhn-000NPC-00; Thu, 28 Mar 2002 19:28:55 +0200
Received: with LISTAR (v0.129a; list lang); Thu, 28 Mar 2002 19:28:49 +0200 (EET)
Received: from web10902.mail.yahoo.com ([216.136.131.38])
	by oiva.sange.fi with smtp (Exim 3.33 #1)
	id 16qdhf-000NP6-00
	for lang@esoteric.sange.fi; Thu, 28 Mar 2002 19:28:47 +0200
Message-ID: <20020328172836.79213.qmail@web10902.mail.yahoo.com>
Received: from [66.31.190.4] by web10902.mail.yahoo.com via HTTP; Thu, 28 Mar 2002 09:28:36 PST
Date: Thu, 28 Mar 2002 09:28:36 -0800 (PST)
From: Brian Connors <connorbd@yahoo.com>
Subject: [lang] Re: cat lang ?
To: lang@esoteric.sange.fi
In-Reply-To: <20020327221655.A91409@esoteric>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: connorbd@yahoo.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: connorbd@yahoo.com
Precedence: bulk
X-list: misc


--- Markus Kliegl <markus.kliegl@t-online.de> wrote:
> * amirlb@myrealbox.com <amirlb@myrealbox.com>
> [020327 21:04]:
> > > :) Is it only a Unix tool or is it also
> avialable with Linux ?
> > 
> > Unix is a general name for many operating system,
> and Linux is one of them.
> > Therefore, any standard Unix tool is distributed
> with Linux.
> > 
> 
> Well, more specifically, UNIX (TM) is a registered
> trademark of the
> OpenGroup, who are the publishers of the Single UNIX
> Specification
> (version 3 is online at
> http://www.unix-systems.org/version3/), which
> has been merged with POSIX, the Portable Operating
> System Interface,
> which are the ISO/IEEE 1003.x standards, which
> define such things as
> the 'cat' utility (in 1003.2 or the XCU section of
> the Single UNIX
> Specification). Note that the GNU utilities often
> don't comply with
> POSIX, but add their own weird, twisted, and hardly
> useful features
> instead; sometimes they add very useful features and
> it's a pity they
> aren't in POSIX - in any case portability between
> POSIX and GNU
> utilities is more often problematic from GNU to
> POSIX than the other
> way around.

GNU tools can be pretty skanky. Look at less(1) vs.
regular old more(1); less has some useful features but
it's hideously overengineered. I don't want a program
that has at least four pages in Linux in a Nutshell
just to scroll through a text file.

gcc has traditionally been the worst offender, IMHO;
it rather bothers me that Linux is heavily dependent
on GNU C language extensions, for example. 

> I believe susv3 is in a stage of final review before
> being released as ISO/IEEE 1003.x-2001. I suppose no
> one cares or uses
> the terms UNIX and the like at that level, though
> :-)
> 
> Informally, UNIX is sort of a collective term to
> mean any of the
> operating systems derived from the AT&T UNIX or the
> Berkeley Software
> Distribution (BSD), which was originally also
> derived from the AT&T
> sources (Unix version 6). Usually it also includes
> Linux, though most
> of the time I've seen it written as
> Unix/Linux--maybe because Linux
> has become a sort of marketing buzzword. Studying

I read an interview with Dennis Ritchie once where he
said he felt Linux was part of the family. POSIX/SUSv3
aside, that's good enough for me :-)

> the history
> and origins of all the various "flavors" of UNIX can
> be quite
> interesting; I can provide links and pointers if
> anyone's interested :-)

That ought to be fun. Let me throw in my BSD page to
help get you started:

http://www.geocities.com/connorbd/bsd.html

> There are so many interesting things, I wonder why
> the hell I had to
> learn about the French Revolution and Prussian
> kings. *sigh*

Yeah, huh?

/Brian

=====
--

__________________________________________________
Do You Yahoo!?
Yahoo! Movies - coverage of the 74th Academy Awards®
http://movies.yahoo.com/





From esoteric@oiva.sange.fi Thu Mar 28 19:48:41 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qe0q-000NTd-00; Thu, 28 Mar 2002 19:48:36 +0200
Received: with LISTAR (v0.129a; list misc); Thu, 28 Mar 2002 19:48:29 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qe0N-000NTW-00; Thu, 28 Mar 2002 19:48:07 +0200
Received: with LISTAR (v0.129a; list lang); Thu, 28 Mar 2002 19:48:00 +0200 (EET)
Received: from rama.poly.edu ([128.238.10.212])
	by oiva.sange.fi with smtp (Exim 3.33 #1)
	id 16qe0F-000NTQ-00
	for lang@esoteric.sange.fi; Thu, 28 Mar 2002 19:47:59 +0200
Received: (qmail 8340 invoked by uid 20150); 28 Mar 2002 17:47:08 -0000
Date: Thu, 28 Mar 2002 12:47:08 -0500 (EST)
From: John Colagioia <jcolag@rama.poly.edu>
X-Sender: jcolag@rama
To: lang@esoteric.sange.fi
Subject: [lang] Re: cat lang ?
In-Reply-To: <20020328172836.79213.qmail@web10902.mail.yahoo.com>
Message-ID: <Pine.GSO.3.96.1020328124159.6989B-100000@rama>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: jcolag@rama.poly.edu
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: jcolag@rama.poly.edu
Precedence: bulk
X-list: misc

On Thu, 28 Mar 2002, Brian Connors wrote:
> --- Markus Kliegl <markus.kliegl@t-online.de> wrote:
[...]
> GNU tools can be pretty skanky. Look at less(1) vs.
> regular old more(1); less has some useful features but
> it's hideously overengineered. I don't want a program
> that has at least four pages in Linux in a Nutshell
> just to scroll through a text file.

And it doesn't even do *freaky* stuff like displaying the file
horizontally, rather than vertically.

> gcc has traditionally been the worst offender, IMHO;
> it rather bothers me that Linux is heavily dependent
> on GNU C language extensions, for example. 

On the bright side, though, gcc is written in such a hackish manner,
that its source code is beautifully suited for testing other C
compilers.  I'm not perfectly sure about this, but I think just about
every foul variation of C syntax and semantics is used somewhere in the
compiler.  And not as an example.

[...]
> > There are so many interesting things, I wonder why
> > the hell I had to
> > learn about the French Revolution and Prussian
> > kings. *sigh*
> Yeah, huh?

Oddly, maybe I'm getting tired in my "old age," but I'm starting to
find the Prussian stuff sort of interesting...

Oh, and to Panu, the term "UN*X" has historically been used to
explicitly avoid trademark infringement.  The term "UNIX" was, for
heaven knows how long, a registered trademark of AT&T.  Periodically,
the Bell lawyers would give consideration to protecting their property
and crushing all those who used the name without consent.






From esoteric@oiva.sange.fi Thu Mar 28 19:59:44 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qeBa-000NVB-00; Thu, 28 Mar 2002 19:59:42 +0200
Received: with LISTAR (v0.129a; list misc); Thu, 28 Mar 2002 19:59:35 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qeBI-000NV4-00; Thu, 28 Mar 2002 19:59:24 +0200
Received: with LISTAR (v0.129a; list lang); Thu, 28 Mar 2002 19:59:18 +0200 (EET)
Received: from wells.tecc.co.uk ([195.217.37.90])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qeBB-000NUy-00
	for lang@esoteric.sange.fi; Thu, 28 Mar 2002 19:59:17 +0200
Received: from basingstoke.tecc.co.uk (basingstoke.tecc.co.uk [195.217.37.75])
	by wells.tecc.co.uk (8.9.3+Sun/8.9.3) with ESMTP id RAA18278
	for <lang@esoteric.sange.fi>; Thu, 28 Mar 2002 17:59:12 GMT
Date: Thu, 28 Mar 2002 17:59:12 GMT
Message-Id: <200203281759.RAA18278@wells.tecc.co.uk>
From: Mike Taylor <mike@tecc.co.uk>
To: lang@esoteric.sange.fi
In-reply-to: <20020328172836.79213.qmail@web10902.mail.yahoo.com> (message
	from Brian Connors on Thu, 28 Mar 2002 09:28:36 -0800 (PST))
Subject: [lang] Re: cat lang ?
References:  <20020328172836.79213.qmail@web10902.mail.yahoo.com>
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mike@tecc.co.uk
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mike@tecc.co.uk
Precedence: bulk
X-list: misc

> Date: Thu, 28 Mar 2002 09:28:36 -0800 (PST)
> From: Brian Connors <connorbd@yahoo.com>
> 
> GNU tools can be pretty skanky. Look at less(1) vs.
> regular old more(1); less has some useful features but
> it's hideously overengineered. I don't want a program
> that has at least four pages in Linux in a Nutshell
> just to scroll through a text file.

Indeed.  I knew something had gone badly wrong with the world when I
found that, in order to get "date" to remind me what the format was
for _setting_ the date, I had to pipe its usage message through a
pager.

No, I'm not kidding.  GNU date's usage message is 62 lines long.
That's more than two and a half screen for us old-timers brought up on
VT100s.

Whatever next?  ATMs with "Skip Flash Intro" buttons?  :-)

 _/|_	 _______________________________________________________________
/o ) \/  Mike Taylor   <mike@miketaylor.org.uk>   www.miketaylor.org.uk
)_v__/\  "The same ...  Only more violent!" -- Monty Python.






From esoteric@oiva.sange.fi Thu Mar 28 23:43:09 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qhff-000NvV-00; Thu, 28 Mar 2002 23:43:00 +0200
Received: with LISTAR (v0.129a; list misc); Thu, 28 Mar 2002 23:42:53 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qhez-000NvL-00; Thu, 28 Mar 2002 23:42:17 +0200
Received: with LISTAR (v0.129a; list lang); Thu, 28 Mar 2002 23:42:10 +0200 (EET)
Received: from dark.darkweb.com ([216.163.74.170])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qher-000NvF-00
	for lang@esoteric.sange.fi; Thu, 28 Mar 2002 23:42:10 +0200
Received: from localhost (benrg@localhost)
	by dark.darkweb.com (8.9.3/8.9.3) with ESMTP id NAA13165
	for <lang@esoteric.sange.fi>; Thu, 28 Mar 2002 13:41:53 -0800
Date: Thu, 28 Mar 2002 13:41:53 -0800 (PST)
From: Ben Rudiak-Gould <benrg@dark.darkweb.com>
To: lang@esoteric.sange.fi
Subject: [lang] Re: cat lang ?
In-Reply-To: <200203281759.RAA18278@wells.tecc.co.uk>
Message-ID: <Pine.LNX.4.21.0203281332381.8349-100000@dark.darkweb.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: benrg@dark.darkweb.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: benrg@dark.darkweb.com
Precedence: bulk
X-list: misc

On Thu, 28 Mar 2002, Mike Taylor wrote:
> Whatever next?  ATMs with "Skip Flash Intro" buttons?  :-)

You think you're joking, but you're not:

http://sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/2000/05/03/MN91179.DTL


-- Ben






From esoteric@oiva.sange.fi Thu Mar 28 23:51:55 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qhoH-000NzC-00; Thu, 28 Mar 2002 23:51:53 +0200
Received: with LISTAR (v0.129a; list misc); Thu, 28 Mar 2002 23:51:46 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qho4-000Nz5-00; Thu, 28 Mar 2002 23:51:40 +0200
Received: with LISTAR (v0.129a; list lang); Thu, 28 Mar 2002 23:51:33 +0200 (EET)
Received: from [212.16.6.108] (helo=frox25.dhs.org)
	by oiva.sange.fi with smtp (Exim 3.33 #1)
	id 16qhnw-000Nyz-00
	for lang@esoteric.sange.fi; Thu, 28 Mar 2002 23:51:32 +0200
Received: (qmail 90417 invoked from network); 28 Mar 2002 21:39:43 -0000
Received: from heartw.ih (10.0.17.4)
  by nova.ih with SMTP; 28 Mar 2002 21:39:43 -0000
Date: Fri, 29 Mar 2002 00:43:51 +0300
From: Mtv Europe <mtve@frox25.dhs.org>
X-Mailer: The Bat! (v1.49) Personal
X-Priority: 3 (Normal)
Message-ID: <154184785463.20020329004351@frox25.dhs.org>
To: lang@esoteric.sange.fi
Subject: [lang] [Kayak] K and S combinators calculus
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="----------111092051B6E0A28"
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mtve@frox25.dhs.org
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mtve@frox25.dhs.org
Precedence: bulk
X-list: misc

------------111092051B6E0A28
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hello All!

Don't worry, no obfuscated code this time.

K and S combinators calculus is ready to play.

It runs famous John Tromp's Universal Combinator (uc-tromp.ks)!

----
Mtv Europe
------------111092051B6E0A28
Content-Type: application/octet-stream; name="uc-tromp.ks"
Content-Transfer-Encoding: x-uue
Content-Disposition: attachment; filename="uc-tromp.ks"

begin 644 uc-tromp.ks
M8&!@8&!34TM@8%-@2V!@4U-@4V!@4U-+2V!@4V!@4V!+4V!@4V!+2V!@4V!+
M8%-@2V!@4V!+8%-@8%-+2TM@8%-@2V!38&!38$M38&!38$M@8%-@2V!38&!3
M2TM+8&!38$M@4V!@4TM+8&!38$M+8&!34V!+8&!38&!38&!32TM@2U-@2TM@
M8%-@2V!38$M+8&!38$M@8%-38&!38&!38$M38&!38$M+4V!+4TM@2TM@8%-+
!2P``
`
end

------------111092051B6E0A28
Content-Type: application/octet-stream; name="ks.kayak"
Content-Transfer-Encoding: x-uue
Content-Disposition: attachment; filename="ks.kayak"

begin 644 ks.kayak
M/`I+(&%N9"!3(&-O;6YI;F%T;W)S(&-A;&-U;'5S(&EM<&QE;65N=&5D(&EN
M($MA>6%K"F)Y($UT=B!%=7)O<&4@*&AT='`Z+R]W=W<N9G)O>#(U+F1H<RYO
M<F<O?FUT=F4O*0H*2V%Y86L@:7,@<')O9V%M;6EN9R!L86YG=6%G92!I;G9E
M;G1E9"!B>0I"96X@4G5D:6%K+4=O=6QD(#QH='1P.B\O=W=W+FUA=&@N8F5R
M:V5L97DN961U+WYB96YR9R\^"@I+4R!E>'!R97-S:6]N(&EN($).1CH*"65X
M<'(@/2`G2R<@?"`G4R<@?"`G8"<@97AP<B!E>'!R"BAN;W1A=&EO;B!C;W)R
M97-P;VYD:6YG('1O($1A=FED($UA9&]R92=S(%5N;&%M8F1A(&QA;F=U86=E
M"FAT='`Z+R]W=W<N96QE=F5S+F5N<RYF<CHX,#@P+VAO;64O;6%D;W)E+W!R
M;V=R86US+W5N;&%M8F1A+RD*"DM3(')U;&5S.@H)8&!+>'D@/2!X"@E@8&!3
M>'EZ(#T@8&!X>F!Y>@H*2U,@:6YT97)N86P@<F5P<F5S96YT871I;VX@*'-T
M86-K('1O<"!O;B!T:&4@;&5F="D@+0IA8V-O<F1I;F<@=&\@2F]H;B!4<F]M
M<"`\:'1T<#HO+W=W=RYC=VDN;FPO?G1R;VUP/CH*"5,@/2`P,`H)2R`](#`Q
M"@E@(#T@,0H*0VAA<F%C=&5R<R!O=&AE<B!T:&%N(%M@2U-=(&]N(&EN<'5T
M('=I;&P@8G)E86L@=&AE(&AE;&PN"D)E=V%R92!O9B!I;F9I;FET92!L;V]P
M:6YG+@H^"@H\"FUO=F4@9FER<W0@97AP<F5S<VEO;@H^"FUO=F4H9G)O;7QT
M;RE["@EF<F]M(%L*"0D\(&ET)W,@8"`^"@D);6]V92AF<F]M?'1M<"EE>'!R
M"@D);6]V92AF<F]M?'1O("EE>'!R"@D);6]V92AT;7`@?'1O("EE>'!R"@E=
M('P@6PH)"3P@:70G<R!+(&]R(%,@/@H)"69R;VT@=&\*"5T@?"!T;PI]*&9R
M;VU\=&\I97AP<@H*/`IC;W!Y(&9I<G-T(&5X<')E<W-I;VX*/@IC;W!Y*&9R
M;VU\=&\I>PH)9G)O;2!;"@D)/"!I="=S(&`@/@H)"6UO=F4H9G)O;7QT;7`@
M*65X<'(*"0EC;W!Y*&9R;VU\=&\@("EE>'!R"@D);6]V92AT;7`@?&9R;VTI
M97AP<@H)"6-O<'DH9G)O;7QT;R`@*65X<'(*"0DP?'1O"@E=('P@6PH)"3P@
M:70G<R!+(&]R(%,@/@H)"69R;VT@6PH)"0DP?'1O"@D)72!\(%L*"0D),"!T
M;PH)"5T@?"!F<F]M"@D),"!T;PH)72!\(&9R;VT*?2AF<F]M?'1O*65X<'(*
M"CP*<F5V97)S:6)L92!C;VYV97)S:6]N(&)E='=E96X@:6YT97)N86P\+3YE
M>'1E<FYA;"!F;W)M<PH^"FEN="AE>'!R?&]U="E["@EE>'!R(%L*"0D\(&ET
M)W,@8"`H87-C:6D@,#$Q,#`P,#`I(#X*"0EM;W9E*&5X<')\=&UP*65X<'(*
M"0EI;G0@*&5X<')\;W5T*71X90H)"6EN="`H=&UP('QO=70I='AE"@D),"!O
M=70@,'QO=70@,'QO=70@,"!O=70@,"!O=70@,"!O=70@,"!O=70*"5T@?"!;
M"@D)/"!I="=S($L@*&%S8VEI(#`Q,#`Q,#$Q*2!O<B!3("AA<V-I:2`P,3`Q
M,#`Q,2D@/@H)"3`@;W5T(#!\;W5T(#`@;W5T"@D)97AP<B!;"@D)"3`@;W5T
M"@D)72!\(%L*"0D),'QO=70*"0E=('P@;W5T"@D),"!O=70@,'QO=70*"5T@
M;W5T"@DP?&]U=`I]*&5X<')\;W5T*71X90H*/`IE;F=I;F4*/@IR961U8V4H
M97AP<GQE;G1\9FQA9RE["@EE>'!R(%L*"0EE>'!R(%L*"0D)97AP<B!;"@D)
M"0EE>'!R('P@6R!E>'!R('P@6PH)"0D)"3P@,3$Q,#`@/3T@8&!@4R`^"@D)
M"0D),'QS"@D)"0E=('P@97AP<B!=('P@97AP<@H)"0E=('P@6PH)"0D)97AP
M<B!;"@D)"0D)/"`Q,3`Q(#T](&!@2R`^"@D)"0D),'QK"@D)"0E=(&5X<'(*
M"0D)72!\(&5X<'(*"0E=(&5X<'(*"0ES('P@6R!K('P@6PH)"0ER961U8V4H
M97AP<GQE;G1\9FQA9REE8VYA:&YE"@D)72!\(&L@72!\(',*"5T@97AP<@H)
M:R!;"@D)/#P@,3$P,7AY(#T^('@@/@H)"65X<')\,"!E>'!R?#`@97AP<B`P
M(&5X<')\,`H)"6UO=F4H97AP<GQX*65X<'(*"0EM;W9E*&5X<')\96YT*65X
M<'(@/'D^"@D);6]V92AX?&5X<'(I97AP<@H)"3!\9FQA9PH)72!\(%L@<R!;
M"@D)/#P@,3$Q,#!X>7H@/3X@,3%X>C%Y>B`^"@D)97AP<GPP(&5X<')\,"!E
M>'!R?#`@97AP<B`P(&5X<'(@,`H)"6UO=F4H97AP<GQX*65X<'(*"0EM;W9E
M*&5X<')\>2EE>'!R"@D)8V]P>2AE>'!R?'HI97AP<@H)"6UO=F4H>7QE>'!R
M*65X<'(*"0DP?&5X<'(*"0EM;W9E*'I\97AP<BEE>'!R"@D);6]V92AX?&5X
M<'(I97AP<@H)"3!\97AP<B`P?&5X<'(*"0DP?&9L86<*"5T@96YT(%T@96YT
M"GTH97AP<GQE;G1\9FQA9REE8VYA:&YE"@H\"FAU;&P*/@IS:&5L;"AE>'!R
M?&5N='QO=70I>PH)8V]P>2AE>'!R?'1M<"EE>'!R"@ER961U8V4H97AP<GQE
M;G1\9FQA9REE8VYA:&YE"@EF;&%G(%L@<VAE;&PH97AP<GQE;G1\;W5T*6QL
M96AS(%T@96YT"@D\(%QN("AA<V-I:2`P,#`P,3`Q,"D@/@H),"!O=70@,"!O
M=70@,"!O=70@,"!O=70@,'QO=70@,"!O=70@,'QO=70@,"!O=70@,'QO=70*
M"6EN="AT;7!\;W5T*71X90I]*&5X<')\96YT?&]U="EL;&5H<PH*/`IM86EN
M"CX**&5N='QI;BE["@EE>'0H:6Y\97AP<BET;FD*"7-H96QL*&5X<')\96YT
J?&]U="EL;&5H<PH);6]V92AE>'!R?&5N="EE>'!R"GTH;W5T?&5N="D*
`
end

------------111092051B6E0A28--







From esoteric@oiva.sange.fi Fri Mar 29 00:16:22 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qiBs-000O1e-00; Fri, 29 Mar 2002 00:16:16 +0200
Received: with LISTAR (v0.129a; list misc); Fri, 29 Mar 2002 00:16:10 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qiBW-000O1X-00; Fri, 29 Mar 2002 00:15:54 +0200
Received: with LISTAR (v0.129a; list lang); Fri, 29 Mar 2002 00:15:47 +0200 (EET)
Received: from rebecca.tiscali.nl ([195.241.76.181])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qiBO-000O1R-00
	for lang@esoteric.sange.fi; Fri, 29 Mar 2002 00:15:46 +0200
Received: from dds.nl (xs241-239-136.dial.tiscali.nl [195.241.239.136])
	by rebecca.tiscali.nl (Postfix) with ESMTP id B2A6C8A32AD
	for <lang@esoteric.sange.fi>; Thu, 28 Mar 2002 23:14:00 +0100 (MET)
Sender: root@rebecca.tiscali.nl
Message-ID: <3CA38BCA.E70A536@dds.nl>
Date: Thu, 28 Mar 2002 22:31:54 +0100
From: Milo van Handel <mwq@dds.nl>
Organization: Milo-Soft
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.3-5 i586)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: cat lang ?
References: <20020324225035.4003.qmail@web14008.mail.yahoo.com> <002c01c1d447$0d7f5620$bb81ef9b@lennie> <3C9FA2F6.63B8A68A@dds.nl> <005101c1d5b5$960fcfa0$8281ef9b@lennie> <038701c1d5c6$9c89c500$3900a8c0@amir> <20020327221655.A91409@esoteric>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
X-list: misc

Markus Kliegl wrote:

> Usually it also includes Linux, though most
> of the time I've seen it written as Unix/Linux--maybe because Linux
> has become a sort of marketing buzzword.

Linux looks like Unix from the outside, however it is not based on
the Unix sourcecode.  Therefore, it is not officially a Unix, so it
needs to be named seperately.  Of course, that leaves one wondering
what to do with Minix, but I care so few people use it that nobody
cares :)






From esoteric@oiva.sange.fi Fri Mar 29 00:39:08 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qiXx-000O6a-00; Fri, 29 Mar 2002 00:39:05 +0200
Received: with LISTAR (v0.129a; list misc); Fri, 29 Mar 2002 00:38:59 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qiXm-000O6U-00; Fri, 29 Mar 2002 00:38:54 +0200
Received: with LISTAR (v0.129a; list lang); Fri, 29 Mar 2002 00:38:47 +0200 (EET)
Received: from smtp-send.myrealbox.com ([192.108.102.143])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qiXe-000O6O-00
	for lang@esoteric.sange.fi; Fri, 29 Mar 2002 00:38:47 +0200
Received: from amir amirlb@smtp-send.myrealbox.com [62.219.225.37]
	by smtp-send.myrealbox.com with Novell NIMS $Revision:   2.88  $ on Novell NetWare;
	Thu, 28 Mar 2002 15:38:37 -0700
Message-ID: <043a01c1d6a8$fa9cbbb0$3900a8c0@amir>
From: <amirlb@myrealbox.com>
To: <lang@esoteric.sange.fi>
References: <20020324225035.4003.qmail@web14008.mail.yahoo.com> <002c01c1d447$0d7f5620$bb81ef9b@lennie> <3C9FA2F6.63B8A68A@dds.nl> <005101c1d5b5$960fcfa0$8281ef9b@lennie> <038701c1d5c6$9c89c500$3900a8c0@amir> <20020327221655.A91409@esoteric> <3CA38BCA.E70A536@dds.nl>
Subject: [lang] Re: cat lang ?
Date: Fri, 29 Mar 2002 00:36:14 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2919.6700
X-MIMEOLE: Produced By Microsoft MimeOLE V5.00.2919.6700
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: amirlb@myrealbox.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: amirlb@myrealbox.com
Precedence: bulk
X-list: misc

> > Usually it also includes Linux, though most
> > of the time I've seen it written as Unix/Linux--maybe because Linux
> > has become a sort of marketing buzzword.
>
> Linux looks like Unix from the outside, however it is not based on
> the Unix sourcecode.  Therefore, it is not officially a Unix, so it
> needs to be named seperately.  Of course, that leaves one wondering
> what to do with Minix, but I care so few people use it that nobody
> cares :)

Ummm... There isn't one unix source code. Every Unix has different source
code (otherwise they'd be the same). In fact, many Unices' source code is
unavaliable, so you can't base anything on their code. Linux is not
officially a Unix because nobody paid the fees for whatever organization to
take a look at Linux at say that it's Unix.

--
Bad spellers of the world UNTIE!
          lightstep (Amir Livne)






From esoteric@oiva.sange.fi Fri Mar 29 01:39:23 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qjT6-000OEu-00; Fri, 29 Mar 2002 01:38:08 +0200
Received: with LISTAR (v0.129a; list misc); Fri, 29 Mar 2002 01:38:02 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qjPd-000OEh-00; Fri, 29 Mar 2002 01:34:33 +0200
Received: with LISTAR (v0.129a; list lang); Fri, 29 Mar 2002 01:34:26 +0200 (EET)
Received: from ctb-mesg1.saix.net ([196.25.240.73])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qjPV-000OEY-00
	for lang@esoteric.sange.fi; Fri, 29 Mar 2002 01:34:25 +0200
Received: from lennie (woc53-01-p71.wc.saix.net [155.239.129.71])
	by ctb-mesg1.saix.net (8.11.4/8.11.4) with SMTP id g2SNY1K20689
	for <lang@esoteric.sange.fi>; Fri, 29 Mar 2002 01:34:02 +0200 (SAT)
Message-ID: <007301c1d6b0$4641f380$4781ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: "EsoLang Lang" <lang@esoteric.sange.fi>
Subject: [lang] Purpose of "+" in HQ9+ ?
Date: Thu, 28 Mar 2002 11:48:20 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

Hello!

What's the purpose of "+" operation in HQ9+ ? To quate: "Increments the
accumulator" - What's the "accumulator" ? Please provide an example.

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Fri Mar 29 01:53:41 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qji0-000OJS-00; Fri, 29 Mar 2002 01:53:32 +0200
Received: with LISTAR (v0.129a; list misc); Fri, 29 Mar 2002 01:53:26 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qjhm-000OJJ-00; Fri, 29 Mar 2002 01:53:18 +0200
Received: with LISTAR (v0.129a; list lang); Fri, 29 Mar 2002 01:53:11 +0200 (EET)
Received: from dark.darkweb.com ([216.163.74.170])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qjhe-000OJC-00
	for lang@esoteric.sange.fi; Fri, 29 Mar 2002 01:53:10 +0200
Received: from localhost (benrg@localhost)
	by dark.darkweb.com (8.9.3/8.9.3) with ESMTP id PAA17182
	for <lang@esoteric.sange.fi>; Thu, 28 Mar 2002 15:52:55 -0800
Date: Thu, 28 Mar 2002 15:52:55 -0800 (PST)
From: Ben Rudiak-Gould <benrg@dark.darkweb.com>
To: EsoLang Lang <lang@esoteric.sange.fi>
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
In-Reply-To: <007301c1d6b0$4641f380$4781ef9b@lennie>
Message-ID: <Pine.LNX.4.21.0203281545070.16514-100000@dark.darkweb.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: benrg@dark.darkweb.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: benrg@dark.darkweb.com
Precedence: bulk
X-list: misc

On Thu, 28 Mar 2002, D De Villiers wrote:

> Hello!
> 
> What's the purpose of "+" operation in HQ9+ ? To quate: "Increments the
> accumulator" - What's the "accumulator" ? Please provide an example.

The accumulator has no independent existence. The "+" operation is a joke,
just like the rest of the language.

Here's an example:

	+H

This increments the accumulator and then prints "Hello, world!". My
interpretation of the spec is that this is operationally indistinguishable
from simply printing "Hello, world!", so it's safe to implement + as a
no-op (except for purposes of the Q instruction).

-- Ben







From esoteric@oiva.sange.fi Fri Mar 29 08:48:15 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qqAk-000PIh-00; Fri, 29 Mar 2002 08:47:38 +0200
Received: with LISTAR (v0.129a; list misc); Fri, 29 Mar 2002 08:47:31 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qqAc-000PIb-00; Fri, 29 Mar 2002 08:47:30 +0200
Received: with LISTAR (v0.129a; list chat); Fri, 29 Mar 2002 08:47:29 +0200 (EET)
Received: from web12901.mail.yahoo.com ([216.136.174.68])
	by oiva.sange.fi with smtp (Exim 3.33 #1)
	id 16qqAZ-000PIV-00
	for chat@esoteric.sange.fi; Fri, 29 Mar 2002 08:47:27 +0200
Message-ID: <20020329064717.11714.qmail@web12901.mail.yahoo.com>
Received: from [24.78.145.92] by web12901.mail.yahoo.com via HTTP; Thu, 28 Mar 2002 22:47:17 PST
Date: Thu, 28 Mar 2002 22:47:17 -0800 (PST)
From: Nikita Ayzikovsky <order_of_may@yahoo.com>
Subject: [chat] Re: [lang] [Unix] cat lang ? (I sniff a possibility for flame war)
To: chat@esoteric.sange.fi
In-Reply-To: <Pine.LNX.4.44.0203281135350.1844-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-listar-version: Listar v0.129a
Sender: chat-bounce@esoteric.sange.fi
Errors-to: chat-bounce@esoteric.sange.fi
X-original-sender: order_of_may@yahoo.com
Precedence: bulk
Reply-to: chat@esoteric.sange.fi
X-list: chat
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: order_of_may@yahoo.com
Precedence: bulk
X-list: misc

--- Panu A Kalliokoski <pkalliok@cs.Helsinki.FI> wrote:

> Yes. But Unix as a word is mostly used to refer to the family of operating 
> systems with a family resemblance. Into these, Linux fits perfectly. I 
> think most of the ambiguity of usage is handled by censoring the 'i' when 
> they mean the UN*X(TM) thing.

*N?X  :)

__________________________________________________
Do You Yahoo!?
Yahoo! Greetings - send holiday greetings for Easter, Passover
http://greetings.yahoo.com/





From esoteric@oiva.sange.fi Fri Mar 29 10:45:53 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qrze-000PVG-00; Fri, 29 Mar 2002 10:44:18 +0200
Received: with LISTAR (v0.129a; list misc); Fri, 29 Mar 2002 10:44:11 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qry0-000PV8-00; Fri, 29 Mar 2002 10:42:36 +0200
Received: with LISTAR (v0.129a; list lang); Fri, 29 Mar 2002 10:42:29 +0200 (EET)
Received: from ns3.safety.net ([216.40.201.32])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qrxs-000PV2-00
	for lang@esoteric.sange.fi; Fri, 29 Mar 2002 10:42:28 +0200
Received: from there (rs.rackshack.net.safety.net [216.40.201.32])
	by ns3.safety.net (8.10.2/8.10.2) with SMTP id g2T8gBs00429
	for <lang@esoteric.sange.fi>; Fri, 29 Mar 2002 01:42:16 -0700
Message-Id: <200203290842.g2T8gBs00429@ns3.safety.net>
Content-Type: text/plain;
  charset="iso-8859-1"
From: "Cliff L. Biffle" <cbiffle@safety.net>
To: lang@esoteric.sange.fi
Subject: [lang] Re: cat lang ?
Date: Fri, 29 Mar 2002 01:39:23 -0700
X-Mailer: KMail [version 1.3.2]
References: <20020328172836.79213.qmail@web10902.mail.yahoo.com> <200203281759.RAA18278@wells.tecc.co.uk>
In-Reply-To: <200203281759.RAA18278@wells.tecc.co.uk>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cbiffle@safety.net
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: cbiffle@safety.net
Precedence: bulk
X-list: misc

On Thursday 28 March 2002 10:59 am, you wrote:
> No, I'm not kidding.  GNU date's usage message is 62 lines long.
> That's more than two and a half screen for us old-timers brought up on
> VT100s.

I can understand now the push in some circles to port the FreeBSD userland 
over to Linux: my `date` usage statement is two lines, and includes the date 
setting format. :-)  It's all a matter of easily-manageable dates!

-Cliff





From esoteric@oiva.sange.fi Fri Mar 29 10:46:50 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qs23-000PY0-00; Fri, 29 Mar 2002 10:46:47 +0200
Received: with LISTAR (v0.129a; list misc); Fri, 29 Mar 2002 10:46:40 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qs1u-000PXu-00; Fri, 29 Mar 2002 10:46:38 +0200
Received: with LISTAR (v0.129a; list lang); Fri, 29 Mar 2002 10:46:31 +0200 (EET)
Received: from ns3.safety.net ([216.40.201.32])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qs1n-000PXo-00
	for lang@esoteric.sange.fi; Fri, 29 Mar 2002 10:46:31 +0200
Received: from there (rs.rackshack.net.safety.net [216.40.201.32])
	by ns3.safety.net (8.10.2/8.10.2) with SMTP id g2T8kTs00650
	for <lang@esoteric.sange.fi>; Fri, 29 Mar 2002 01:46:29 -0700
Message-Id: <200203290846.g2T8kTs00650@ns3.safety.net>
Content-Type: text/plain;
  charset="iso-8859-1"
From: "Cliff L. Biffle" <cbiffle@safety.net>
To: lang@esoteric.sange.fi
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
Date: Fri, 29 Mar 2002 01:43:57 -0700
X-Mailer: KMail [version 1.3.2]
References: <007301c1d6b0$4641f380$4781ef9b@lennie>
In-Reply-To: <007301c1d6b0$4641f380$4781ef9b@lennie>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cbiffle@safety.net
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: cbiffle@safety.net
Precedence: bulk
X-list: misc

On Thursday 28 March 2002 02:48 am, you wrote:
> What's the purpose of "+" operation in HQ9+ ? To quate: "Increments the
> accumulator" - What's the "accumulator" ? Please provide an example.

An accumulator is a register used in crippled machine architectures (*grin*) 
to do math.  As the name implies, the most rudimentary operation performed is 
accumulation, or addition (accumulating values one after another into a 
total).  This allows HQ9+ to perform math.

-Cliff Biffle





From esoteric@oiva.sange.fi Fri Mar 29 13:31:52 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16quaM-000PuN-00; Fri, 29 Mar 2002 13:30:22 +0200
Received: with LISTAR (v0.129a; list misc); Fri, 29 Mar 2002 13:30:15 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16quYa-000PuC-00; Fri, 29 Mar 2002 13:28:32 +0200
Received: with LISTAR (v0.129a; list lang); Fri, 29 Mar 2002 13:28:25 +0200 (EET)
Received: from dark.darkweb.com ([216.163.74.170])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16quYS-000Pu6-00
	for lang@esoteric.sange.fi; Fri, 29 Mar 2002 13:28:24 +0200
Received: from localhost (benrg@localhost)
	by dark.darkweb.com (8.9.3/8.9.3) with ESMTP id DAA30457
	for <lang@esoteric.sange.fi>; Fri, 29 Mar 2002 03:28:18 -0800
Date: Fri, 29 Mar 2002 03:28:18 -0800 (PST)
From: Ben Rudiak-Gould <benrg@dark.darkweb.com>
To: lang@esoteric.sange.fi
Subject: [lang] Re: [Kayak] K and S combinators calculus
In-Reply-To: <154184785463.20020329004351@frox25.dhs.org>
Message-ID: <Pine.LNX.4.21.0203290226090.16514-100000@dark.darkweb.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: benrg@dark.darkweb.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: benrg@dark.darkweb.com
Precedence: bulk
X-list: misc

This is fabulous work. I thought a combinator engine in Kayak would remain
one of those theoretically-possible-but-forever-unachievable goals, like
Unlambda in Brainfuck.

I notice, though, that it only reduces to head normal form -- e.g.
```KSK``KSK reduces to `S``KSK rather than `SS. This is certainly safer,
but it doesn't allow for the satisfaction of actually plugging a program
description into the universal combinator and getting the program back. I
modified reduce()ecnahne to scan all the way to the end of the expression,
and now when I run it on

``````SSK``S`K``SS`S``SSKK``S``S`KS``S`KK``S`K`S`K``S`K`S``SKKK``S`K`S``S
`KS``S`K``S`K`S``SKKK``S`K`S``SKK``S`KK``SS`K``S``S``SKK`KS`KK``S`K`S`KK`
`S`K``SS``S``S`KS``S`KKS`KSK`KK``SKK``S``S``SKK`KK`K``S``S``SKK`K`SK`KS

(the universal combinator applied to a description of the program "K" with
input "S"), ks.kayak returns after a mere 84 seconds of calculation with
the normal form "`KS".

On a peripherally related note, John Tromp, Chris Barker and I have been
working on trimming the size of the universal combinator still further. We
have it down to 41 bits now, thanks to a clever idea of Chris's, and the
language in which it's written is very pretty indeed. I'll post a
description of it here soon, once I've confirmed with them that it
actually works. :-)

-- Ben






From esoteric@oiva.sange.fi Fri Mar 29 13:55:05 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16quyA-000Pzj-00; Fri, 29 Mar 2002 13:54:58 +0200
Received: with LISTAR (v0.129a; list misc); Fri, 29 Mar 2002 13:54:52 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16quxy-000Pzd-00; Fri, 29 Mar 2002 13:54:46 +0200
Received: with LISTAR (v0.129a; list lang); Fri, 29 Mar 2002 13:54:40 +0200 (EET)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16quxr-000PzX-00
	for lang@esoteric.sange.fi; Fri, 29 Mar 2002 13:54:39 +0200
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g2TBscr30321
	for <lang@esoteric.sange.fi>; Fri, 29 Mar 2002 13:54:38 +0200
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g2TBsYR17959
	for <lang@esoteric.sange.fi>; Fri, 29 Mar 2002 13:54:34 +0200
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Fri, 29 Mar 2002 13:54:34 +0200 (EET)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: lang@esoteric.sange.fi
Subject: [lang] Re: [quines] quine classes
In-Reply-To: <025d01c1d3e3$45262810$3900a8c0@amir>
Message-ID: <Pine.LNX.4.44.0203291345370.17326-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc

On Mon, 25 Mar 2002 amirlb@myrealbox.com wrote:
> > It can then be said that "true quines" use some representation for the
> > data which is not the same as the representation of the program. If we
> I believe that even "regular" quines in mainstream imperative languages (C,
> Pascal, etc) there is a difference between the data and the code. I don't
> mean the quoting (which is language-specific), but the order of them in the
> source code: the data has to appear before the code. this way, everything

These "regular" quines I do consider "true" quines. And they certainly do 
have a big difference between code and data; for example, whereas in LISP 
you represent both code and data as lists, in most imperative languages 
there is no runtime representation for code: code is not first-class. 
Granted quoting is language-specific, but that some kind of quoting is 
needed is quite universal in the imiperative languages.

By the way, for assembler code is first-class: you can write 
assembler-writing programs in assembler. This would make it possible to 
make an eval-type quine by making a program that, given a pointer to 
itself in some register, can re-form itself and the calling code.

I don't think the order is much constrained: for example, you can write a 
quine's main working logic in a function, and then give the data to the 
function as an argument, so you can have first code and then data.

Panu

-- 

Am fuar -> symb <- am fesh
atehwa@iki.fi







From esoteric@oiva.sange.fi Fri Mar 29 14:20:18 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qvMd-00005U-00; Fri, 29 Mar 2002 14:20:15 +0200
Received: with LISTAR (v0.129a; list misc); Fri, 29 Mar 2002 14:20:08 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qvMR-00005I-00; Fri, 29 Mar 2002 14:20:03 +0200
Received: with LISTAR (v0.129a; list lang); Fri, 29 Mar 2002 14:19:56 +0200 (EET)
Received: from ctb-mesg2.saix.net ([196.25.240.74])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16qvMJ-00005C-00
	for lang@esoteric.sange.fi; Fri, 29 Mar 2002 14:19:55 +0200
Received: from lennie (woc53-01-p93.wc.saix.net [155.239.129.93])
	by ctb-mesg2.saix.net (8.11.4/8.11.4) with SMTP id g2TCJjT16791
	for <lang@esoteric.sange.fi>; Fri, 29 Mar 2002 14:19:46 +0200 (SAT)
Message-ID: <008401c1d71b$402463a0$5d81ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: <lang@esoteric.sange.fi>
References: <Pine.LNX.4.21.0203281545070.16514-100000@dark.darkweb.com>
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
Date: Fri, 29 Mar 2002 14:07:28 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

Ben Rudiak-Gould,

> The accumulator has no independent existence. The "+" operation is a joke,
> just like the rest of the language.
>
> Here's an example:
>
> +H
>
> This increments the accumulator and then prints "Hello, world!". My
> interpretation of the spec is that this is operationally indistinguishable
> from simply printing "Hello, world!", so it's safe to implement + as a
> no-op (except for purposes of the Q instruction).

So "+H" is the same as just saying "H" ?

I've written pHQ9+ (HQ9+ For Palm) interpreter and don't know how I must
implement the "+" operation (everything else are already working)

I've been thinking of implementing "+" with it only waiting for 1 sec.
(PAUSE statement in SmallBASIC) I can see no purpose of "+" !!? Only "H",
"Q" and "9" have meanings (real purpose) not "+".

Any suggestions ?

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Fri Mar 29 23:14:56 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16r3hc-0001AD-00; Fri, 29 Mar 2002 23:14:28 +0200
Received: with LISTAR (v0.129a; list misc); Fri, 29 Mar 2002 23:14:21 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16r3ff-00017k-00; Fri, 29 Mar 2002 23:12:27 +0200
Received: with LISTAR (v0.129a; list lang); Fri, 29 Mar 2002 23:12:21 +0200 (EET)
Received: from rhea.tiscali.nl ([195.241.76.178])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16r3fY-00017e-00
	for lang@esoteric.sange.fi; Fri, 29 Mar 2002 23:12:20 +0200
Received: from dds.nl (xs241-239-183.dial.tiscali.nl [195.241.239.183])
	by rhea.tiscali.nl (Postfix) with ESMTP id DE79B36EDE
	for <lang@esoteric.sange.fi>; Fri, 29 Mar 2002 22:12:09 +0100 (MET)
Sender: root@rhea.tiscali.nl
Message-ID: <3CA4D818.343C6AE1@dds.nl>
Date: Fri, 29 Mar 2002 22:09:44 +0100
From: Milo van Handel <mwq@dds.nl>
Organization: Milo-Soft
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.3-5 i586)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: [quines] quine classes
References: <Pine.LNX.4.44.0203291345370.17326-100000@melkinpaasi.cs.Helsinki.FI>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
X-list: misc

Panu A Kalliokoski wrote:

> By the way, for assembler code is first-class: you can write
> assembler-writing programs in assembler. This would make it possible to
> make an eval-type quine by making a program that, given a pointer to
> itself in some register, can re-form itself and the calling code.

Yes.  In fact, my Wierd quine works this way.






From esoteric@oiva.sange.fi Fri Mar 29 23:45:58 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16r4C3-0001FA-00; Fri, 29 Mar 2002 23:45:55 +0200
Received: with LISTAR (v0.129a; list misc); Fri, 29 Mar 2002 23:45:48 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16r4Bp-0001F3-00; Fri, 29 Mar 2002 23:45:41 +0200
Received: with LISTAR (v0.129a; list lang); Fri, 29 Mar 2002 23:45:34 +0200 (EET)
Received: from rhea.tiscali.nl ([195.241.76.178])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16r4Bi-0001Ex-00
	for lang@esoteric.sange.fi; Fri, 29 Mar 2002 23:45:34 +0200
Received: from dds.nl (xs241-239-183.dial.tiscali.nl [195.241.239.183])
	by rhea.tiscali.nl (Postfix) with ESMTP id 4920E36C85
	for <lang@esoteric.sange.fi>; Fri, 29 Mar 2002 22:45:32 +0100 (MET)
Sender: root@rhea.tiscali.nl
Message-ID: <3CA4CF5F.7D9C030F@dds.nl>
Date: Fri, 29 Mar 2002 21:32:31 +0100
From: Milo van Handel <mwq@dds.nl>
Organization: Milo-Soft
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.3-5 i586)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: cat lang ?
References: <20020324225035.4003.qmail@web14008.mail.yahoo.com> <002c01c1d447$0d7f5620$bb81ef9b@lennie> <3C9FA2F6.63B8A68A@dds.nl> <005101c1d5b5$960fcfa0$8281ef9b@lennie> <038701c1d5c6$9c89c500$3900a8c0@amir> <20020327221655.A91409@esoteric> <3CA38BCA.E70A536@dds.nl> <043a01c1d6a8$fa9cbbb0$3900a8c0@amir>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
X-list: misc

amirlb@myrealbox.com wrote:

> > > Usually it also includes Linux, though most
> > > of the time I've seen it written as Unix/Linux--maybe because Linux
> > > has become a sort of marketing buzzword.
> >
> > Linux looks like Unix from the outside, however it is not based on
> > the Unix sourcecode.  Therefore, it is not officially a Unix, so it
> > needs to be named seperately.  Of course, that leaves one wondering
> > what to do with Minix, but I care so few people use it that nobody
> > cares :)
>
> Ummm... There isn't one unix source code. Every Unix has different source
> code (otherwise they'd be the same). In fact, many Unices' source code is
> unavaliable, so you can't base anything on their code. Linux is not
> officially a Unix because nobody paid the fees for whatever organization to
> take a look at Linux at say that it's Unix.

No, look.  It all started with two people at AT&T.  They coded a new operating
system and called it "Unix".  The sourcecode has since been sold to many
different companies, all making their own modified versions, but the still
based on the original Unix sourcecode.  But Linux is different - it is based on
the Unix "look and feel" (if you'll allow me to use that for a textual system),
but te source code has been rewritten from scratch.







From esoteric@oiva.sange.fi Sat Mar 30 00:31:32 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16r4ty-0001Mi-00; Sat, 30 Mar 2002 00:31:18 +0200
Received: with LISTAR (v0.129a; list misc); Sat, 30 Mar 2002 00:31:12 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16r4sQ-0001MI-00; Sat, 30 Mar 2002 00:29:43 +0200
Received: with LISTAR (v0.129a; list lang); Sat, 30 Mar 2002 00:29:29 +0200 (EET)
Received: from ctb-mesg1.saix.net ([196.25.240.73])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16r4sB-0001MC-00
	for lang@esoteric.sange.fi; Sat, 30 Mar 2002 00:29:28 +0200
Received: from lennie (woc53-01-p158.wc.saix.net [155.239.129.158])
	by ctb-mesg1.saix.net (8.11.4/8.11.4) with SMTP id g2TMTIK28808
	for <lang@esoteric.sange.fi>; Sat, 30 Mar 2002 00:29:18 +0200 (SAT)
Message-ID: <003d01c1d770$650945a0$9e81ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: <lang@esoteric.sange.fi>
References: <007301c1d6b0$4641f380$4781ef9b@lennie> <200203290846.g2T8kTs00650@ns3.safety.net>
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
Date: Fri, 29 Mar 2002 14:47:18 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

Cliff L. Biffle,

> An accumulator is a register used in crippled machine architectures
(*grin*)
> to do math.  As the name implies, the most rudimentary operation performed
is
> accumulation, or addition (accumulating values one after another into a
> total).  This allows HQ9+ to perform math.

Ok! Now I understand the purpose of "+" operation (accumulator = doing
addition maths) but HQ9+ doesn't have any instructions (only H, Q, 9 & + )
for displaying the math answer (doing output). And only addition ! <g>

I would rather call it "HQ9" then !!

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Sat Mar 30 02:34:17 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16r6ol-0001bF-00; Sat, 30 Mar 2002 02:34:03 +0200
Received: with LISTAR (v0.129a; list misc); Sat, 30 Mar 2002 02:33:57 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16r6oF-0001b8-00; Sat, 30 Mar 2002 02:33:31 +0200
Received: with LISTAR (v0.129a; list lang); Sat, 30 Mar 2002 02:33:24 +0200 (EET)
Received: from ns3.safety.net ([216.40.201.32])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16r6o7-0001b2-00
	for lang@esoteric.sange.fi; Sat, 30 Mar 2002 02:33:24 +0200
Received: from there (rs.rackshack.net.safety.net [216.40.201.32])
	by ns3.safety.net (8.10.2/8.10.2) with SMTP id g2U0X7s08218
	for <lang@esoteric.sange.fi>; Fri, 29 Mar 2002 17:33:11 -0700
Message-Id: <200203300033.g2U0X7s08218@ns3.safety.net>
Content-Type: text/plain;
  charset="iso-8859-1"
From: "Cliff L. Biffle" <cbiffle@safety.net>
To: lang@esoteric.sange.fi
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
Date: Fri, 29 Mar 2002 17:30:36 -0700
X-Mailer: KMail [version 1.3.2]
References: <007301c1d6b0$4641f380$4781ef9b@lennie> <200203290846.g2T8kTs00650@ns3.safety.net> <003d01c1d770$650945a0$9e81ef9b@lennie>
In-Reply-To: <003d01c1d770$650945a0$9e81ef9b@lennie>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cbiffle@safety.net
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: cbiffle@safety.net
Precedence: bulk
X-list: misc

On Friday 29 March 2002 05:47 am, you wrote:
> Ok! Now I understand the purpose of "+" operation (accumulator = doing
> addition maths)

Yup!  And if you know the size of the register, you can use addition to 
implement most other mathematical techniques via creative use of overflow 
(subtraction, etc.).

> but HQ9+ doesn't have any instructions (only H, Q, 9 & + )
> for displaying the math answer (doing output).

But pure math shouldn't need to be displayed -- it just exists.  Displaying 
it is casting shadows on the wall of Plato's cave.

-Cliff





From esoteric@oiva.sange.fi Sat Mar 30 05:09:02 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16r9D9-0002jq-00; Sat, 30 Mar 2002 05:07:23 +0200
Received: with LISTAR (v0.129a; list misc); Sat, 30 Mar 2002 05:07:16 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16r9D1-0002jk-00; Sat, 30 Mar 2002 05:07:15 +0200
Received: with LISTAR (v0.129a; list chat); Sat, 30 Mar 2002 05:07:14 +0200 (EET)
Received: from mailout09.sul.t-online.com ([194.25.134.84])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16r9Cy-0002je-00
	for chat@esoteric.sange.fi; Sat, 30 Mar 2002 05:07:12 +0200
Received: from fwd10.sul.t-online.de 
	by mailout09.sul.t-online.com with smtp 
	id 16r8hh-00061X-00; Sat, 30 Mar 2002 03:34:53 +0100
Received: from esoteric.holy-unicorn (340009195196-0001@[217.230.179.109]) by fwd10.sul.t-online.com
	with esmtp id 16r8hd-26OTsOC; Sat, 30 Mar 2002 03:34:49 +0100
Received: from esoteric.holy-unicorn (localhost [127.0.0.1])
	by esoteric.holy-unicorn (8.12.1/8.11.6) with ESMTP id g2U2d9gw002110
	for <chat@esoteric.sange.fi>; Sat, 30 Mar 2002 03:39:10 +0100 (CET)
	(envelope-from markus@esoteric.holy-unicorn)
Received: (from markus@localhost)
	by esoteric.holy-unicorn (8.12.1/8.12.1/Submit) id g2U2d9KC002109
	for chat@esoteric.sange.fi; Sat, 30 Mar 2002 03:39:09 +0100 (CET)
Date: Sat, 30 Mar 2002 03:39:09 +0100
From: markus.kliegl@t-online.de (Markus Kliegl)
To: chat@esoteric.sange.fi
Subject: [chat] Re: [lang] Re: cat lang ?
Message-ID: <20020330033909.A1988@esoteric>
References: <20020327221655.A91409@esoteric> <20020328172836.79213.qmail@web10902.mail.yahoo.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20020328172836.79213.qmail@web10902.mail.yahoo.com>
User-Agent: Mutt/1.3.23i
X-Sender: 340009195196-0001@t-dialin.net
X-listar-version: Listar v0.129a
Sender: chat-bounce@esoteric.sange.fi
Errors-to: chat-bounce@esoteric.sange.fi
X-original-sender: markus.kliegl@t-online.de
Precedence: bulk
Reply-to: chat@esoteric.sange.fi
X-list: chat
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: markus.kliegl@t-online.de
Precedence: bulk
X-list: misc

* Brian Connors <connorbd@yahoo.com> [020328 19:08]:
> 
> --- Markus Kliegl <markus.kliegl@t-online.de> wrote:
[...]
> GNU tools can be pretty skanky. Look at less(1) vs.
> regular old more(1); less has some useful features but
> it's hideously overengineered. I don't want a program
> that has at least four pages in Linux in a Nutshell
> just to scroll through a text file.

That was my point and what I meant with 'weird, twisted and hardly
useful features' :-) There are useful features, such as GNU find's
'-maxdepth' flag and convenience features such as the 'I' and 'z' flags
of GNU tar. But then there's small utilities stuffed with all sorts of
features I've never used nor know about, because it takes longer to
get the job done reading about all the esoteric features of some GNU
utility than just getting it done with some dirty hack involving five
pipes. Then again, there's GNU grep, which uses a nice and fast
algorithm - I don't consider that bloat. There's also GNU make that
actually provides some useful (and often used, for that matter)
features; I guess that's mostly due to things like susv2 make not even
providing an 'include' command (!).
Oh well, I appreciate the GNU utilities and I guess I don't have much
right to criticise. I've replaced some of the FreeBSD utilities with
the GNU versions, exactly because I find them more convenient.

> 
> gcc has traditionally been the worst offender, IMHO;
> it rather bothers me that Linux is heavily dependent
> on GNU C language extensions, for example. 

http://www.open-mag.com/754088105111.htm
if Linux wouldn't depend on gcc, vendors could be distributing 47%
faster linux kernels (in theory) :-)

> 
> > I believe susv3 is in a stage of final review before
> > being released as ISO/IEEE 1003.x-2001. I suppose no
> > one cares or uses
> > the terms UNIX and the like at that level, though
> > :-)
> > 
> > Informally, UNIX is sort of a collective term to
> > mean any of the
> > operating systems derived from the AT&T UNIX or the
> > Berkeley Software
> > Distribution (BSD), which was originally also
> > derived from the AT&T
> > sources (Unix version 6). Usually it also includes
> > Linux, though most
> > of the time I've seen it written as
> > Unix/Linux--maybe because Linux
> > has become a sort of marketing buzzword. Studying
> 
> I read an interview with Dennis Ritchie once where he
> said he felt Linux was part of the family. POSIX/SUSv3
> aside, that's good enough for me :-)

Hmm, I wonder if Plan 9 actually implements POSIX syscalls, etc.
Using Linux doesn't feel too different from using FreeBSD, but
using Unixware, Solaris, or Tru64 feels quite different from using
FreeBSD or Linux, IMHO.

Personally, I don't know anyone that doesn't consider Linux a Unix in
the sense the term is usually used. I strongly suspect Unix/Linux
(now, I've even seen Linux/Unix) to be a mere marketing term.
I've also seen many programs that run on most unices branded 'Linux
programs'.

> 
> > the history
> > and origins of all the various "flavors" of UNIX can
> > be quite
> > interesting; I can provide links and pointers if
> > anyone's interested :-)
> 
> That ought to be fun. Let me throw in my BSD page to
> help get you started:
> 
> http://www.geocities.com/connorbd/bsd.html

Nice article. I also liked your 'why rms is a crackpot'... there's
an article by him about his fight against Symbolics that started the
whole FSF and GNU stuff here:
http://www.lysator.liu.se/history/garb/txt/87-2-rms.txt

That article literally scared me and all my sympathies went to
Symbolics.

> 
> > There are so many interesting things, I wonder why
> > the hell I had to
> > learn about the French Revolution and Prussian
> > kings. *sigh*
> 
> Yeah, huh?
> 

I know of geeks that drove along the Oregon trail because they were so
interested in that part of American history. I know of geeks who are
willing to kill to get their hands on old computers. (We're on the
chat list now, right? Ok, I'll proceed :-) What makes American history
more important than the history of UNIX? 'You have to know about past
events to understand what is going on in the world now.' I'd say the
same holds for UNIX; what is the significance of Linux having been
written completely from scratch? It's a matter of involvement and
somehow our societies have decided that people have to be aware of
current world politics. Observing world politics, I haven't found many
things terribbly relevant to me and I am cautious of all the
propaganda and I find myself thinking, 'They killed Kennedy, they
killed Lennon, they killed Martin Luther King. Now there's Bush. Where
are assassins when you need them?'. Watching news makes me think
'ignorant americans' or 'stuffed full of propaganda americans', but
hey, that's probably just the European liberal propaganda in me. Maybe
it's just me, though, as I live in my own weird, little world :-)
Anyway, I have strong ideals, just as RMS does, and ideals give you
power, but you can get lost in an endless battle for nothing. As the
most wise person I've encountered, Erik Naggum, once said: 'If you
want _any_ system to change, exploit it, do not fight it.' Strong
ideals seem to always arise from being forced into something, one
doesn't agree with, or not having control of something, and
fights for them seem to always involve forcing others into the ideals.
My conclusion: just go your own way and if it's Good, interested
people will follow. Ok, now how did I get into this? Anyway, I'll be
gone the next few days

Markus





From esoteric@oiva.sange.fi Sat Mar 30 10:26:23 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rEA8-0003JN-00; Sat, 30 Mar 2002 10:24:36 +0200
Received: with LISTAR (v0.129a; list misc); Sat, 30 Mar 2002 10:24:29 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rEA0-0003JH-00; Sat, 30 Mar 2002 10:24:28 +0200
Received: with LISTAR (v0.129a; list chat); Sat, 30 Mar 2002 10:24:27 +0200 (EET)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rE9y-0003JB-00
	for chat@esoteric.sange.fi; Sat, 30 Mar 2002 10:24:26 +0200
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g2U8OPr13701
	for <chat@esoteric.sange.fi>; Sat, 30 Mar 2002 10:24:25 +0200
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g2U8OJC03702
	for <chat@esoteric.sange.fi>; Sat, 30 Mar 2002 10:24:22 +0200
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Sat, 30 Mar 2002 10:24:19 +0200 (EET)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: chat@esoteric.sange.fi
Subject: [chat] Re: [lang] Re: Purpose of "+" in HQ9+ ?
In-Reply-To: <200203300033.g2U0X7s08218@ns3.safety.net>
Message-ID: <Pine.LNX.4.44.0203301005470.2129-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: chat-bounce@esoteric.sange.fi
Errors-to: chat-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: chat@esoteric.sange.fi
X-list: chat
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc

On Fri, 29 Mar 2002, Cliff L. Biffle wrote:
> Yup!  And if you know the size of the register, you can use addition to 
> implement most other mathematical techniques via creative use of overflow 
> (subtraction, etc.).

"Most other" :) What mathematical operations are there? Lemmesee... um, 
incrementation, constant addition, constant substraction, 
decrementation... yep, that's about it. (Once I heard some rumors of such 
thing as factorials, but I think they were impure mathematics.) Of course, 
one could also have  some use for being able to write even some constant - 
but maybe pure mathematics is weirdly related to relativity.

> > but HQ9+ doesn't have any instructions (only H, Q, 9 & + )
> > for displaying the math answer (doing output).
> 
> But pure math shouldn't need to be displayed -- it just exists.  Displaying 
> it is casting shadows on the wall of Plato's cave.

That's one of the best excuses I've seen in a while. Apparently pure 
mathematics does not need input either. I propose a mathematical hierarchy 
in the vein of chomsky's language hierarchy: level 0 (pure mathematics) 
does not have input or output, but can compute "most things"; evel 1 
(impure mathematics) adds input and output to this (curiously, 
e(exclamation) seems to implement this level of mathematic expressivity); 
and level 2 has the rest. It's so impure that it can't even prove its own 
consistency without being inconsistent.

This should be very educative to Platonists who vouch for pure ideas...

-- 

Am fuar -> symb <- am fesh
atehwa@iki.fi







From esoteric@oiva.sange.fi Sat Mar 30 11:29:04 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rFAF-0003QV-00; Sat, 30 Mar 2002 11:28:47 +0200
Received: with LISTAR (v0.129a; list misc); Sat, 30 Mar 2002 11:28:40 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rFA7-0003QP-00; Sat, 30 Mar 2002 11:28:39 +0200
Received: with LISTAR (v0.129a; list chat); Sat, 30 Mar 2002 11:28:37 +0200 (EET)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rFA5-0003QJ-00
	for chat@esoteric.sange.fi; Sat, 30 Mar 2002 11:28:37 +0200
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g2U9SZr18308
	for <chat@esoteric.sange.fi>; Sat, 30 Mar 2002 11:28:36 +0200
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g2U9SWH06470
	for <chat@esoteric.sange.fi>; Sat, 30 Mar 2002 11:28:32 +0200
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Sat, 30 Mar 2002 11:28:32 +0200 (EET)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: chat@esoteric.sange.fi
Subject: [chat] Re: [lang] Re: GNU utils 
In-Reply-To: <20020330033909.A1988@esoteric>
Message-ID: <Pine.LNX.4.44.0203301029010.2129-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: chat-bounce@esoteric.sange.fi
Errors-to: chat-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: chat@esoteric.sange.fi
X-list: chat
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc

On Sat, 30 Mar 2002, Markus Kliegl wrote:
> * Brian Connors <connorbd@yahoo.com> [020328 19:08]:
> > GNU tools can be pretty skanky. Look at less(1) vs.
> > regular old more(1); less has some useful features but
> > it's hideously overengineered. I don't want a program
> > that has at least four pages in Linux in a Nutshell
> > just to scroll through a text file.

I guess a small study in available pagers would certainly yield better 
alternatives. However, in big systems, it doesn't really matter much how 
big your utils are. And BSD's more really irritates me out of my skin. It 
seems to have back-scrolling, but instantly quits upon showing 
end-of-file. This means 'G' does not allow you to view the file from end 
backwards...

> of GNU tar. But then there's small utilities stuffed with all sorts of
> features I've never used nor know about, because it takes longer to
> get the job done reading about all the esoteric features of some GNU
> utility than just getting it done with some dirty hack involving five

True. Even using GNU systems, one is often better off doing everything in 
the general Unix way. But this is because of portability, not trouble of 
learning: if you had to learn to use the Unix util, it would not have been 
much more trouble to learn to use the corresponding GNU util. It's the 
same with programming languages: for example, you might get something done 
very quickly in C, even if it's done much "easier" in some other 
programming language you'd have to brush up to be able to write the 
program. Or often it's more trouble to learn to use someone else's program 
than to write your own (as is often the case with Perl / PHP).

> > gcc has traditionally been the worst offender, IMHO;
> > it rather bothers me that Linux is heavily dependent
> > on GNU C language extensions, for example. 
> http://www.open-mag.com/754088105111.htm
> if Linux wouldn't depend on gcc, vendors could be distributing 47%
> faster linux kernels (in theory) :-)

This sounds a lot like one's regular software technology fud. It's 
basically Intel's attempt to show that MMX / streams is of some use. It's 
totally Intel-dependent, because the speedup is based on the compiler 
producing code fthat uses features of Intel chips the other compilers 
don't use. For code that is not doing heavy calculations, I wonder whether 
there is any benefit at all. In addition, the Linux kernel already has the 
Intel code for some calculation-heavy stuff (such as checksums) written by 
hand in assembler for MMX.

> Nice article. I also liked your 'why rms is a crackpot'... there's
> an article by him about his fight against Symbolics that started the
> whole FSF and GNU stuff here:

I tried to explain why every geek evangelista (RMS, ESR, Larry _Wall,  
TDR, ...) seems to have little or any thought on what they're saying. I 
came to the conclusion that because they are prophets, not people, they 
see spreading of the faith as their primary responsibility, and by 
actually making compromises they could only amake things worse. So they 
kind-of become non-living statues to stand for their ideology.

> 'ignorant americans' or 'stuffed full of propaganda americans', but
> hey, that's probably just the European liberal propaganda in me. Maybe

I'm a little bit worried about this. I know almost no people who really 
like the US, and those who do, are big idiots by my standards (for other 
reasons). It's almost an intellectual requirement that you hate US - but 
the few times I get to speak to "average" americans, they seem to be so 
clueless that you can't even be angry at them... I sometimes think, could 
we be living in the same kind of soap bubble, making hypocrite judgements 
on other people's deeds - and however, we never thought we were the ones 
who did everything right. Is the European's sole justification for 
disrespecting Americans that we have bigger tradition at self-criticism?

> My conclusion: just go your own way and if it's Good, interested
> people will follow. Ok, now how did I get into this? Anyway, I'll be
> gone the next few days

I quite much agree. Too bad that interested people will follow anything 
interesting, whether it is good or not.

Panu

-- 

Am fuar -> symb <- am fesh
atehwa@iki.fi









From esoteric@oiva.sange.fi Sat Mar 30 15:25:47 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rIrM-0003se-00; Sat, 30 Mar 2002 15:25:32 +0200
Received: with LISTAR (v0.129a; list misc); Sat, 30 Mar 2002 15:25:25 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rIqV-0003sU-00; Sat, 30 Mar 2002 15:24:39 +0200
Received: with LISTAR (v0.129a; list lang); Sat, 30 Mar 2002 15:24:32 +0200 (EET)
Received: from dark.darkweb.com ([216.163.74.170])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rIqN-0003sO-00
	for lang@esoteric.sange.fi; Sat, 30 Mar 2002 15:24:31 +0200
Received: from localhost (benrg@localhost)
	by dark.darkweb.com (8.9.3/8.9.3) with ESMTP id FAA28733
	for <lang@esoteric.sange.fi>; Sat, 30 Mar 2002 05:24:29 -0800
Date: Sat, 30 Mar 2002 05:24:29 -0800 (PST)
From: Ben Rudiak-Gould <benrg@dark.darkweb.com>
To: lang@esoteric.sange.fi
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
In-Reply-To: <200203300033.g2U0X7s08218@ns3.safety.net>
Message-ID: <Pine.LNX.4.21.0203300509020.8993-100000@dark.darkweb.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: benrg@dark.darkweb.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: benrg@dark.darkweb.com
Precedence: bulk
X-list: misc

On Fri, 29 Mar 2002, Cliff L. Biffle wrote:

> But pure math shouldn't need to be displayed -- it just exists.  Displaying 
> it is casting shadows on the wall of Plato's cave.

But methinks the same could be said of the functionality captured in the
H, Q, and 9 instructions. And + as well for that matter, not to mention
computer programming in general.

In order to address the concerns of those like Lennie De Villiers who feel
that HQ9+ has insufficient expressive power, I would like to propose a new
language called "HQ9+-<>[],.". The syntax and semantics are left to the
reader's imagination.

-- Ben






From esoteric@oiva.sange.fi Sat Mar 30 18:06:27 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rLMl-0004Bb-00; Sat, 30 Mar 2002 18:06:07 +0200
Received: with LISTAR (v0.129a; list misc); Sat, 30 Mar 2002 18:06:00 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rLM4-0004BR-00; Sat, 30 Mar 2002 18:05:24 +0200
Received: with LISTAR (v0.129a; list lang); Sat, 30 Mar 2002 18:05:18 +0200 (EET)
Received: from smtp-send.myrealbox.com ([192.108.102.143])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rLLx-0004BL-00
	for lang@esoteric.sange.fi; Sat, 30 Mar 2002 18:05:17 +0200
Received: from amir amirlb@smtp-send.myrealbox.com [62.219.225.37]
	by smtp-send.myrealbox.com with Novell NIMS $Revision:   2.88  $ on Novell NetWare;
	Sat, 30 Mar 2002 09:05:06 -0700
Message-ID: <052101c1d804$5753e7f0$3900a8c0@amir>
From: <amirlb@myrealbox.com>
To: <lang@esoteric.sange.fi>
References: <20020324225035.4003.qmail@web14008.mail.yahoo.com> <002c01c1d447$0d7f5620$bb81ef9b@lennie> <3C9FA2F6.63B8A68A@dds.nl> <005101c1d5b5$960fcfa0$8281ef9b@lennie> <038701c1d5c6$9c89c500$3900a8c0@amir> <20020327221655.A91409@esoteric> <3CA38BCA.E70A536@dds.nl> <043a01c1d6a8$fa9cbbb0$3900a8c0@amir> <3CA4CF5F.7D9C030F@dds.nl>
Subject: [lang] Unix history
Date: Sat, 30 Mar 2002 18:02:42 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2919.6700
X-MIMEOLE: Produced By Microsoft MimeOLE V5.00.2919.6700
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: amirlb@myrealbox.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: amirlb@myrealbox.com
Precedence: bulk
X-list: misc

> > Ummm... There isn't one unix source code. Every Unix has different
source
> > code (otherwise they'd be the same). In fact, many Unices' source code
is
> > unavaliable, so you can't base anything on their code. Linux is not
> > officially a Unix because nobody paid the fees for whatever organization
to
> > take a look at Linux at say that it's Unix.
>
> No, look.  It all started with two people at AT&T.  They coded a new
operating
> system and called it "Unix".  The sourcecode has since been sold to many
> different companies, all making their own modified versions, but the still
> based on the original Unix sourcecode.  But Linux is different - it is
based on
> the Unix "look and feel" (if you'll allow me to use that for a textual
system),
> but te source code has been rewritten from scratch.

Except the poor guys on Berkley, who copied the AT&T source base, and got
sued. So they rewrote Unix using a different impletmentation, and these are
the BSD Unices. Now many Unices are based on the (free) BSD source instead
of the AT&T source (I think that the AT&T source belongs to Novell now).
Examples are SunOs, BSDI, OSF and Linux.

--
Bad spellers of the world UNTIE!
          lightstep (Amir Livne)






From esoteric@oiva.sange.fi Sat Mar 30 22:41:54 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rPfS-0004iN-00; Sat, 30 Mar 2002 22:41:42 +0200
Received: with LISTAR (v0.129a; list misc); Sat, 30 Mar 2002 22:41:35 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rPf8-0004iG-00; Sat, 30 Mar 2002 22:41:22 +0200
Received: with LISTAR (v0.129a; list lang); Sat, 30 Mar 2002 22:41:15 +0200 (EET)
Received: from rebecca.tiscali.nl ([195.241.76.181])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rPf1-0004iA-00
	for lang@esoteric.sange.fi; Sat, 30 Mar 2002 22:41:15 +0200
Received: from dds.nl (xs241-216-20.dial.tiscali.nl [195.241.216.20])
	by rebecca.tiscali.nl (Postfix) with ESMTP id 0BD888A37DB
	for <lang@esoteric.sange.fi>; Sat, 30 Mar 2002 21:41:09 +0100 (MET)
Sender: root@rebecca.tiscali.nl
Message-ID: <3CA62259.BD101524@dds.nl>
Date: Sat, 30 Mar 2002 21:38:50 +0100
From: Milo van Handel <mwq@dds.nl>
Organization: Milo-Soft
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.3-5 i586)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: Unix history
References: <20020324225035.4003.qmail@web14008.mail.yahoo.com> <002c01c1d447$0d7f5620$bb81ef9b@lennie> <3C9FA2F6.63B8A68A@dds.nl> <005101c1d5b5$960fcfa0$8281ef9b@lennie> <038701c1d5c6$9c89c500$3900a8c0@amir> <20020327221655.A91409@esoteric> <3CA38BCA.E70A536@dds.nl> <043a01c1d6a8$fa9cbbb0$3900a8c0@amir> <3CA4CF5F.7D9C030F@dds.nl> <052101c1d804$5753e7f0$3900a8c0@amir>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
X-list: misc

amirlb@myrealbox.com wrote:

> > > Ummm... There isn't one unix source code. Every Unix has different
> source
> > > code (otherwise they'd be the same). In fact, many Unices' source code
> is
> > > unavaliable, so you can't base anything on their code. Linux is not
> > > officially a Unix because nobody paid the fees for whatever organization
> to
> > > take a look at Linux at say that it's Unix.
> >
> > No, look.  It all started with two people at AT&T.  They coded a new
> operating
> > system and called it "Unix".  The sourcecode has since been sold to many
> > different companies, all making their own modified versions, but the still
> > based on the original Unix sourcecode.  But Linux is different - it is
> based on
> > the Unix "look and feel" (if you'll allow me to use that for a textual
> system),
> > but te source code has been rewritten from scratch.
>
> Except the poor guys on Berkley, who copied the AT&T source base, and got
> sued. So they rewrote Unix using a different impletmentation, and these are
> the BSD Unices. Now many Unices are based on the (free) BSD source instead
> of the AT&T source (I think that the AT&T source belongs to Novell now).
> Examples are SunOs, BSDI, OSF and Linux.

No, Linux isn't based on BSD.  It has been coded from scratch completely
independently of all other Unices, and even the utilities are those from GNU
which have also been coded from scratch independently of BSD and the official
Unices (although they were originally intended to run on Hurd which didn't
become very popular since Linux achieved a usable stage earlier).






From esoteric@oiva.sange.fi Sat Mar 30 22:43:02 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rPgi-0004iu-00; Sat, 30 Mar 2002 22:43:00 +0200
Received: with LISTAR (v0.129a; list misc); Sat, 30 Mar 2002 22:42:53 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rPga-0004im-00; Sat, 30 Mar 2002 22:42:53 +0200
Received: with LISTAR (v0.129a; list lang); Sat, 30 Mar 2002 22:42:42 +0200 (EET)
Received: from rebecca.tiscali.nl ([195.241.76.181])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rPgQ-0004ig-00
	for lang@esoteric.sange.fi; Sat, 30 Mar 2002 22:42:42 +0200
Received: from dds.nl (xs241-216-20.dial.tiscali.nl [195.241.216.20])
	by rebecca.tiscali.nl (Postfix) with ESMTP id 9519E8A3315
	for <lang@esoteric.sange.fi>; Sat, 30 Mar 2002 21:42:40 +0100 (MET)
Sender: root@rebecca.tiscali.nl
Message-ID: <3CA622B5.F88777A0@dds.nl>
Date: Sat, 30 Mar 2002 21:40:22 +0100
From: Milo van Handel <mwq@dds.nl>
Organization: Milo-Soft
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.3-5 i586)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
References: <Pine.LNX.4.21.0203300509020.8993-100000@dark.darkweb.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
X-list: misc

Ben Rudiak-Gould wrote:

> In order to address the concerns of those like Lennie De Villiers who feel
> that HQ9+ has insufficient expressive power, I would like to propose a new
> language called "HQ9+-<>[],.". The syntax and semantics are left to the
> reader's imagination.

Looks like Brainfuck with a few niceb but unnecessary bonus commands...






From esoteric@oiva.sange.fi Sun Mar 31 01:55:39 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rSfE-0005Au-00; Sun, 31 Mar 2002 01:53:40 +0200
Received: with LISTAR (v0.129a; list misc); Sun, 31 Mar 2002 01:53:34 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rSc2-0005Ak-00; Sun, 31 Mar 2002 01:50:22 +0200
Received: with LISTAR (v0.129a; list lang); Sun, 31 Mar 2002 01:50:16 +0200 (EET)
Received: from mail.engelsinfo.de ([212.6.209.241])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rSbv-0005Ae-00
	for lang@esoteric.sange.fi; Sun, 31 Mar 2002 01:50:15 +0200
Received: from there (morgoth [212.6.209.231])
	by mail.engelsinfo.de (8.9.3+Sun/8.9.1) with SMTP id AAA17109
	for <lang@esoteric.sange.fi>; Sun, 31 Mar 2002 00:40:18 +0100 (MET)
Message-Id: <200203302340.AAA17109@mail.engelsinfo.de>
Content-Type: text/plain;
  charset="iso-8859-1"
From: "Rafal M. Sulejman" <rafal@engelsinfo.de>
Organization: none
To: lang@esoteric.sange.fi
Subject: [lang] (Quite) Esoteric command shell (?)
Date: Sun, 31 Mar 2002 00:53:23 +0100
X-Mailer: KMail [version 1.3.2]
X-Default-Editor: vim
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: rafal@engelsinfo.de
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: rafal@engelsinfo.de
Precedence: bulk
X-list: misc


Well, not exactly esoteric _language_, but could be interesting for 
Lunixers

"Morse Code user interface for Linux. Morseall allows you to control 
your computer by tapping morse code on the buttons of a mouse." -- 
project description at Sourceforge.

http://sourceforge.net/projects/morseall/

-- 
 . . . . | Rafal M. Sulejman                        /"\
 . . . . | <rms at poczta.onet.pl>                  \ /
 # . # . | ASCII Ribbon Campaign for HTML-free mail  X
 . . . . |                                          / \





From esoteric@oiva.sange.fi Sun Mar 31 02:23:55 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rT8R-0005GL-00; Sun, 31 Mar 2002 02:23:51 +0200
Received: with LISTAR (v0.129a; list misc); Sun, 31 Mar 2002 02:23:44 +0200 (EET)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rT82-0005GF-00; Sun, 31 Mar 2002 02:23:26 +0200
Received: with LISTAR (v0.129a; list lang); Sun, 31 Mar 2002 02:23:19 +0200 (EET)
Received: from [212.16.6.108] (helo=frox25.dhs.org)
	by oiva.sange.fi with smtp (Exim 3.33 #1)
	id 16rT7u-0005G9-00
	for lang@esoteric.sange.fi; Sun, 31 Mar 2002 02:23:18 +0200
Received: (qmail 24232 invoked from network); 31 Mar 2002 00:10:40 -0000
Received: from heartw.ih (10.0.17.4)
  by nova.ih with SMTP; 31 Mar 2002 00:10:40 -0000
Date: Sun, 31 Mar 2002 04:15:35 +0400
From: Mtv Europe <mtve@frox25.dhs.org>
X-Mailer: The Bat! (v1.49) Personal
X-Priority: 3 (Normal)
Message-ID: <98181636256.20020331041535@frox25.dhs.org>
To: lang@esoteric.sange.fi
Subject: [lang] Re: [Kayak] another quine
In-reply-To: <Pine.LNX.4.21.0203261158330.32104-100000@dark.darkweb.com>
References: <Pine.LNX.4.21.0203261158330.32104-100000@dark.darkweb.com>
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="----------99E51BA935F238"
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mtve@frox25.dhs.org
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mtve@frox25.dhs.org
Precedence: bulk
X-list: misc

------------99E51BA935F238
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hello All!

Wednesday, March 27, 2002, 12:18:55 AM, Ben Rudiak-Gould wrote:

> Here's an idea: instead of a fixed-width encoding, use an order-0 Huffman
> code.

Attached quine uses this encoding:

      char  code   freq
        {  01000   3
        }  11000   4
        ]   1100   18
        [   0100   18
        )   0010   13
        (   1010   13
        |    110   75
        0    111   77
        1    011   120
       ' '   101   93
        !    001   32

----
Mtv Europe
http://www.frox25.dhs.org/~mtve/code/eso/kayak/quine/
------------99E51BA935F238
Content-Type: application/octet-stream; name="quine_6367.kayak"
Content-Transfer-Encoding: x-uue
Content-Disposition: attachment; filename="quine_6367.kayak"

begin 644 quine_6367.kayak
M,"@Q*7LP?#$@,'PQ(#`@,2`P(#$@,"`Q(#!\,2`P(#$@,'PQ(#`@,2`P(#$@
M,'PQ(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ(#`@,2`P
M?#$@,"`Q(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P(#$@,'PQ(#!\
M,2`P?#$@,"`Q(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q(#`@,2`P?#$@,'PQ
M(#`@,2`P?#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P(#$@
M,"`Q(#!\,2`P?#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P
M(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,'PQ(#!\
M,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P?#$@,'PQ
M(#!\,2`P?#$@,'PQ(#`@,2`P(#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P(#$@
M,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P
M?#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P?#$@,"`Q(#!\
M,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P?#$@,"`Q
M(#!\,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P?#$@
M,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ(#`@,2`P(#$@,'PQ(#!\,2`P
M?#$@,"`Q(#!\,2`P?#$@,'PQ(#!\,2`P?#$@,'PQ(#`@,2`P(#$@,'PQ(#!\
M,2`P?#$@,'PQ(#`@,2`P(#$@,'PQ(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,"`Q
M(#`@,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P(#$@,"`Q(#!\,2`P(#$@
M,'PQ(#`@,2`P(#$@,'PQ(#!\,2`P?#$@,'PQ(#!\,2`P(#$@,"`Q(#!\,2`P
M?#$@,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,'PQ(#!\,2`P(#$@,"`Q(#!\
M,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,'PQ(#!\,2`P(#$@,"`Q
M(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,'PQ(#!\,2`P(#$@
M,"`Q(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,'PQ(#!\,2`P
M(#$@,"`Q(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,'PQ(#`@
M,2`P?#$@,"`Q(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,'PQ
M(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,'PQ(#!\,2`P(#$@,"`Q(#!\,2`P?#$@
M,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P
M(#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P?#$@,'PQ(#!\,2`P?#$@,'PQ(#`@
M,2`P(#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q
M(#!\,2`P(#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P?#$@,'PQ(#!\,2`P?#$@
M,'PQ(#`@,2`P(#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P?#$@,'PQ(#!\,2`P
M?#$@,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P?#$@,'PQ(#!\
M,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q
M(#!\,2`P?#$@,'PQ(#`@,2`P(#$@,'PQ(#!\,2`P?#$@,'PQ(#`@,2`P(#$@
M,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P
M?#$@,'PQ(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ(#!\,2`P(#$@,"`Q(#!\
M,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,'PQ
M(#`@,2`P(#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P?#$@
M,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P(#$@,"`Q(#`@,2`P?#$@,'PQ(#!\,2`P
M(#$@,"`Q(#!\,2`P(#$@,"`Q(#`@,2`P?#$@,'PQ(#!\,2`P(#$@,'PQ(#`@
M,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q(#`@,2`P(#$@,'PQ
M(#!\,2`P(#$@,'PQ(#!\,2`P?#$@,'PQ(#`@,2`P(#$@,'PQ(#!\,2`P(#$@
M,"`Q(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P
M(#$@,"`Q(#!\,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q(#`@,2`P?#$@,'PQ(#!\
M,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#!\,2`P?#$@,"`Q(#`@,2`P?#$@,'PQ
M(#!\,2`P(#$@,'PQ(#!\,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q(#`@,2`P?#$@
M,'PQ(#!\,2`P(#$@,'PQ(#!\,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q(#`@,2`P
M?#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#`@
M,2`P?#$@,'PQ(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,'PQ
M(#`@,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P?#$@
M,'PQ(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P
M?#$@,'PQ(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ(#!\,2`P(#$@,"`Q(#`@
M,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q(#`@,2`P(#$@,'PQ(#!\,2`P(#$@,'PQ
M(#!\,2`P?#$@,'PQ(#`@,2`P(#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P?#$@
M,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P
M?#$@,'PQ(#!\,2`P?#$@,"`Q(#`@,2`P?#$@,'PQ(#!\,2`P(#$@,'PQ(#`@
M,2`P?#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ
M(#`@,2`P(#$@,'PQ(#!\,2`P?#$@,'PQ(#`@,2`P(#$@,'PQ(#!\,2`P(#$@
M,'PQ(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ(#!\,2`P
M(#$@,"`Q(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q(#`@
M,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P(#$@,'PQ(#!\,2`P?#$@,"`Q
M(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q(#`@,2`P?#$@,'PQ(#`@,2`P?#$@
M,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P
M?#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#`@,2`P?#$@,'PQ(#!\
M,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,"`Q
M(#!\,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P(#$@
M,'PQ(#!\,2`P?#$@,'PQ(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ(#`@,2`P
M?#$@,"`Q(#`@,2`P?#$@,'PQ(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,"`Q(#`@
M,2`P(#$@,'PQ(#!\,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P(#$@,"`Q
M(#!\,2`P?#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P(#$@,"`Q(#`@,2`P?#$@
M,'PQ(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,"`Q(#`@,2`P(#$@,'PQ(#!\,2`P
M?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P(#$@,'PQ(#!\,2`P?#$@,'PQ(#`@
M,2`P(#$@,'PQ(#!\,2`P?#$@,'PQ(#`@,2`P(#$@,'PQ(#!\,2`P(#$@,"`Q
M(#`@,2`P?#$@,'PQ(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,"`Q(#`@,2`P(#$@
M,'PQ(#!\,2`P?#$@,"`Q(#`@,2`P?#$@,'PQ(#`@,2`P(#$@,"`Q(#!\,2`P
M?#$@,'PQ(#`@,2`P(#$@,'PQ(#!\,2`P(#$@,"`Q(#`@,2`P?#$@,'PQ(#!\
M,2`P(#$@,"`Q(#!\,2`P?#$@,"`Q(#`@,2`P(#$@,'PQ(#!\,2`P(#$@,'PQ
M(#`@,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P(#$@,"`Q(#!\,2`P?#$@
M,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P
M?#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#`@,2`P?#$@,'PQ(#!\
M,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,"`Q
M(#!\,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,'PQ(#!\,2`P(#$@
M,'PQ(#!\,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q(#`@,2`P?#$@,'PQ(#!\,2`P
M(#$@,'PQ(#!\,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q(#`@,2`P?#$@,'PQ(#!\
M,2`P(#$@,'PQ(#!\,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q(#`@,2`P?#$@,'PQ
M(#!\,2`P(#$@,'PQ(#!\,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q(#`@,2`P?#$@
M,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,'PQ(#`@,2`P
M?#$@,"`Q(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#!\
M,2`P?#$@,'PQ(#`@,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ
M(#!\,2`P?#$@,'PQ(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ(#`@,2`P?#$@
M,'PQ(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,'PQ(#`@,2`P
M?#$@,'PQ(#!\,2`P?#$@,'PQ(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ(#`@
M,2`P?#$@,'PQ(#!\,2`P?#$@,'PQ(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ
M(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,'PQ(#!\,2`P(#$@,"`Q(#!\,2`P?#$@
M,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P
M?#$@,'PQ(#!\,2`P(#$@,"`Q(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q(#`@
M,2`P(#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P(#$@,'PQ(#!\,2`P?#$@,"`Q
M(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q(#`@,2`P?#$@,'PQ(#`@,2`P?#$@
M,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P
M(#$@,"`Q(#`@,2`P?#$@,'PQ(#!\,2`P(#$@,'PQ(#!\,2`P?#$@,'PQ(#!\
M,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P(#$@,'PQ
M(#!\,2`P?#$@,'PQ(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ(#`@,2`P?#$@
M,'PQ(#!\,2`P?#$@,'PQ(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ(#`@,2`P
M?#$@,'PQ(#!\,2`P?#$@,'PQ(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ(#`@
M,2`P?#$@,'PQ(#!\,2`P?#$@,'PQ(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ
M(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P?#$@
M,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,'PQ(#!\,2`P(#$@,"`Q(#!\,2`P
M?#$@,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#!\
M,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q
M(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,'PQ(#!\,2`P(#$@
M,"`Q(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,'PQ(#!\,2`P
M(#$@,"`Q(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,'PQ(#`@
M,2`P?#$@,"`Q(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,'PQ
M(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P?#$@
M,'PQ(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#!\,2`P
M?#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ(#!\
M,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,'PQ
M(#!\,2`P?#$@,'PQ(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ(#`@,2`P?#$@
M,'PQ(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,'PQ(#`@,2`P
M?#$@,'PQ(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,'PQ(#`@
M,2`P?#$@,'PQ(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,'PQ
M(#`@,2`P?#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#!\,2`P?#$@
M,"`Q(#!\,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,'PQ(#!\,2`P
M?#$@,"`Q(#!\,2`P?#$@,'PQ(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ(#!\
M,2`P(#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#!\,2`P?#$@,'PQ
M(#!\,2`P(#$@,'PQ(#!\,2`P?#$@,'PQ(#!\,2`P(#$@,'PQ(#`@,2`P(#$@
M,'PQ(#!\,2`P(#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,'PQ(#`@,2`P
M?#$@,"`Q(#!\,2`P?#$@,'PQ(#`@,2`P?#$@,"`Q(#`@,2`P?#$@,'PQ(#!\
M,2`P?#$@,"`Q(#`@,2`P?#$@,'PQ(#!\,2`P?#$@,'PQ(#!\,2`P?#$@,"`Q
M(#`@,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#!\,2`P?#$@
M,'PQ(#`@,2`P(#$@,"`Q(#!\,2`P(#$@,'PQ(#`@,2`P(#$@,'PQ(#!\,2`P
M?#$@,'PQ(#!\,2`P?#$@,'PQ(#`@,2`P(#$@,"`Q(#!\,2`P(#$@,"`Q(#!\
M,2`P(#$@?2@Q*3$@,2@A?#%\,3$I>S`@,2`A6S`@,2`P?#$@(2`Q(#`@,2`P
M(#$@,"`Q("%\,2`P?#%=?%LA6R%;,'PQ(#!\,2`P?#$@,'PQ(#!\,2`P(#$@
M,"`Q77Q;,"`Q(#!\,2`P(#$@,'PQ(#`@,2`P(#$@(7PQ73$Q(#!\,5U\6S!\
M,2`A?%LA?%LQ(#$Q73$Q77PA(#%;,'PQ("%\,2`P?#$@,'PQ("%;,'PP73$@
M,'PQ(#!\,5TQ73$Q73$Q(#%;,'PQ(#$H(7PQ?#$Q*3%=,3%]*"%\,7PQ,2DQ
M(#`H(7PQ?#$Q*7LP?#$@(7Q;(7Q;(7Q;(7Q;(7Q;,7PQ77PA77PA77PA77PA
M77PA(#%;(2`Q,"`P*"%\,7PQ,2DP(#!\,2`P?#$@,'PQ(#!\,2`Q,%LP?#!=
M,2`P?#$@,"`Q(#!\,2`P?#$@,'PQ(#`@,5TQ?2@A?#%\,3$I,"@A?#`P*7LP
M?#$@,'PQ(#!\,2`P?#$@,"`Q(#!\,2`P(#$@,"`Q(#!\,2`P?#$@,"`Q(#`@
M,2`P?#$@,"`Q(#`@,2`P?#$@,"`Q(#`@,2`P*#`Q*3$@,"@P,7PQ?"$I,"`P
6*#$I,2`Q*#%\,3!\(2DQ?2@Q,'PA*0``
`
end

------------99E51BA935F238--







From esoteric@oiva.sange.fi Sun Mar 31 23:15:46 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rljN-0009KU-00; Sun, 31 Mar 2002 23:15:13 +0300
Received: with LISTAR (v0.129a; list misc); Sun, 31 Mar 2002 23:15:06 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rli4-0009I9-00; Sun, 31 Mar 2002 23:13:52 +0300
Received: with LISTAR (v0.129a; list lang); Sun, 31 Mar 2002 23:13:45 +0300 (EEST)
Received: from pandora.tiscali.nl ([195.241.76.179])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rlhw-0009I3-00
	for lang@esoteric.sange.fi; Sun, 31 Mar 2002 23:13:44 +0300
Received: from dds.nl (xs241-234-57.dial.tiscali.nl [195.241.234.57])
	by pandora.tiscali.nl (Postfix) with ESMTP id 5B22A371AA
	for <lang@esoteric.sange.fi>; Sun, 31 Mar 2002 22:13:39 +0200 (MET DST)
Sender: root@pandora.tiscali.nl
Message-ID: <3CA76D66.B0AD4D03@dds.nl>
Date: Sun, 31 Mar 2002 22:11:19 +0200
From: Milo van Handel <mwq@dds.nl>
Organization: Milo-Soft
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.3-5 i586)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: [Kayak] another quine
References: <Pine.LNX.4.21.0203261158330.32104-100000@dark.darkweb.com> <98181636256.20020331041535@frox25.dhs.org>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
X-list: misc

Mtv Europe wrote:

> Hello All!
>
> Wednesday, March 27, 2002, 12:18:55 AM, Ben Rudiak-Gould wrote:
>
> > Here's an idea: instead of a fixed-width encoding, use an order-0 Huffman
> > code.
>
> Attached quine uses this encoding:
>
>       char  code   freq
>         {  01000   3

3?  Must be a typo...

>         }  11000   4
>         ]   1100   18
>         [   0100   18
>         )   0010   13
>         (   1010   13
>         |    110   75
>         0    111   77
>         1    011   120
>        ' '   101   93
>         !    001   32






From esoteric@oiva.sange.fi Mon Apr 01 13:03:10 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ryeX-000BA8-00; Mon, 01 Apr 2002 13:03:05 +0300
Received: with LISTAR (v0.129a; list misc); Mon, 01 Apr 2002 13:02:58 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ryeP-000B9w-00; Mon, 01 Apr 2002 13:02:57 +0300
Received: with LISTAR (v0.129a; list lang); Mon, 01 Apr 2002 13:02:46 +0300 (EEST)
Received: from ctb-mesg2.saix.net ([196.25.240.74])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ryeC-000B9h-00
	for lang@esoteric.sange.fi; Mon, 01 Apr 2002 13:02:45 +0300
Received: from lennie (woc53-01-p29.wc.saix.net [155.239.129.29])
	by ctb-mesg2.saix.net (8.11.4/8.11.4) with SMTP id g31A2ZT21311
	for <lang@esoteric.sange.fi>; Mon, 1 Apr 2002 12:02:36 +0200 (SAT)
Message-ID: <004901c1d963$95d5efe0$1d81ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: <lang@esoteric.sange.fi>
References: <Pine.LNX.4.21.0203300509020.8993-100000@dark.darkweb.com>
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
Date: Sun, 31 Mar 2002 22:38:34 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

Ben Rudiak-Gould,

> But methinks the same could be said of the functionality captured in the
> H, Q, and 9 instructions. And + as well for that matter, not to mention
> computer programming in general.

Ok! :) I've implemented "+" but it doesn't do anything - Only exist ! <g>
There is nothing wrong with HQ9+ (don't take me wrong here !)... I just
wanna know how do I implement "+" and what's its purpose.

> In order to address the concerns of those like Lennie De Villiers who feel
> that HQ9+ has insufficient expressive power, I would like to propose a new
> language called "HQ9+-<>[],.". The syntax and semantics are left to the
> reader's imagination.

Hahaha :-) Not Bad ! :-)

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Mon Apr 01 13:03:13 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ryeM-000B9y-00; Mon, 01 Apr 2002 13:02:54 +0300
Received: with LISTAR (v0.129a; list misc); Mon, 01 Apr 2002 13:02:47 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ryeA-000B9g-00; Mon, 01 Apr 2002 13:02:42 +0300
Received: with LISTAR (v0.129a; list lang); Mon, 01 Apr 2002 13:02:36 +0300 (EEST)
Received: from ctb-mesg2.saix.net ([196.25.240.74])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rye2-000B9a-00
	for lang@esoteric.sange.fi; Mon, 01 Apr 2002 13:02:35 +0300
Received: from lennie (woc53-01-p29.wc.saix.net [155.239.129.29])
	by ctb-mesg2.saix.net (8.11.4/8.11.4) with SMTP id g31A2HT21256
	for <lang@esoteric.sange.fi>; Mon, 1 Apr 2002 12:02:20 +0200 (SAT)
Message-ID: <003e01c1d963$8d8cf720$1d81ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: <lang@esoteric.sange.fi>
References: <007301c1d6b0$4641f380$4781ef9b@lennie> <200203290846.g2T8kTs00650@ns3.safety.net> <003d01c1d770$650945a0$9e81ef9b@lennie> <200203300033.g2U0X7s08218@ns3.safety.net>
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
Date: Sun, 31 Mar 2002 22:33:46 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

Cliff L. Biffle,

> Yup!  And if you know the size of the register, you can use addition to
> implement most other mathematical techniques via creative use of overflow
> (subtraction, etc.).

Nice ! :) Unfortunatly I know nothing about this (register, accumulator etc
?) <g> Anyother esoteric languages that make use of this method for doing
maths ?

> But pure math shouldn't need to be displayed -- it just exists.
Displaying
> it is casting shadows on the wall of Plato's cave.

?? Every math sum must have an answer and what would that be - doing maths
without getting the answer!

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Mon Apr 01 13:03:13 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ryeP-000B9v-00; Mon, 01 Apr 2002 13:02:57 +0300
Received: with LISTAR (v0.129a; list misc); Mon, 01 Apr 2002 13:02:46 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rydw-000B9Y-00; Mon, 01 Apr 2002 13:02:28 +0300
Received: with LISTAR (v0.129a; list lang); Mon, 01 Apr 2002 13:02:21 +0300 (EEST)
Received: from ctb-mesg2.saix.net ([196.25.240.74])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rydn-000B9S-00
	for lang@esoteric.sange.fi; Mon, 01 Apr 2002 13:02:20 +0300
Received: from lennie (woc53-01-p29.wc.saix.net [155.239.129.29])
	by ctb-mesg2.saix.net (8.11.4/8.11.4) with SMTP id g31A1wT21231
	for <lang@esoteric.sange.fi>; Mon, 1 Apr 2002 12:02:03 +0200 (SAT)
Message-ID: <003801c1d963$8387f680$1d81ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: <lang@esoteric.sange.fi>
References: <200203302340.AAA17109@mail.engelsinfo.de>
Subject: [lang] Re: (Quite) Esoteric command shell (?)
Date: Sun, 31 Mar 2002 12:45:20 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

Rafal M. Sulejman,

> Well, not exactly esoteric _language_, but could be interesting for
> Lunixers
>
> "Morse Code user interface for Linux. Morseall allows you to control
> your computer by tapping morse code on the buttons of a mouse." --
> project description at Sourceforge.
>
> http://sourceforge.net/projects/morseall/

Wow! :) In my book this is very esoteric (even if its not an esoteric
language!)... What about a Morseall for MS Windows project ??!

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Mon Apr 01 13:21:28 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16rywH-000BGu-00; Mon, 01 Apr 2002 13:21:25 +0300
Received: with LISTAR (v0.129a; list misc); Mon, 01 Apr 2002 13:21:18 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ryw6-000BGo-00; Mon, 01 Apr 2002 13:21:14 +0300
Received: with LISTAR (v0.129a; list lang); Mon, 01 Apr 2002 13:21:07 +0300 (EEST)
Received: from web12906.mail.yahoo.com ([216.136.174.73])
	by oiva.sange.fi with smtp (Exim 3.33 #1)
	id 16ryvy-000BGi-00
	for lang@esoteric.sange.fi; Mon, 01 Apr 2002 13:21:06 +0300
Message-ID: <20020401102055.31021.qmail@web12906.mail.yahoo.com>
Received: from [24.78.145.92] by web12906.mail.yahoo.com via HTTP; Mon, 01 Apr 2002 02:20:55 PST
Date: Mon, 1 Apr 2002 02:20:55 -0800 (PST)
From: Nikita Ayzikovsky <order_of_may@yahoo.com>
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
To: lang@esoteric.sange.fi
In-Reply-To: <003e01c1d963$8d8cf720$1d81ef9b@lennie>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: order_of_may@yahoo.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: order_of_may@yahoo.com
Precedence: bulk
X-list: misc

--- D De Villiers <ddevilliers@lando.co.za> wrote:

> Nice ! :) Unfortunatly I know nothing about this (register, accumulator etc
> ?) <g> Anyother esoteric languages that make use of this method for doing
> maths ?

Brainfuck, for example - you can survive without the "-" operator quite easily.

> ?? Every math sum must have an answer and what would that be - doing maths
> without getting the answer!

If you don't get the answer, it doesn't mean the answer doesn't exist :)

__________________________________________________
Do You Yahoo!?
Yahoo! Greetings - send holiday greetings for Easter, Passover
http://greetings.yahoo.com/





From esoteric@oiva.sange.fi Mon Apr 01 20:04:08 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16s5Df-000CCx-00; Mon, 01 Apr 2002 20:03:47 +0300
Received: with LISTAR (v0.129a; list misc); Mon, 01 Apr 2002 20:03:40 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16s5Be-000CCj-00; Mon, 01 Apr 2002 20:01:42 +0300
Received: with LISTAR (v0.129a; list lang); Mon, 01 Apr 2002 20:01:35 +0300 (EEST)
Received: from web10903.mail.yahoo.com ([216.136.131.39])
	by oiva.sange.fi with smtp (Exim 3.33 #1)
	id 16s5BW-000CCa-00
	for lang@esoteric.sange.fi; Mon, 01 Apr 2002 20:01:34 +0300
Message-ID: <20020401170114.87470.qmail@web10903.mail.yahoo.com>
Received: from [141.154.197.166] by web10903.mail.yahoo.com via HTTP; Mon, 01 Apr 2002 09:01:14 PST
Date: Mon, 1 Apr 2002 09:01:14 -0800 (PST)
From: Brian Connors <connorbd@yahoo.com>
Subject: [lang] Re: Unix history
To: lang@esoteric.sange.fi
In-Reply-To: <3CA62259.BD101524@dds.nl>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: connorbd@yahoo.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: connorbd@yahoo.com
Precedence: bulk
X-list: misc


> > Examples are SunOs, BSDI, OSF and Linux.

Someone didn't read my webpage...

> No, Linux isn't based on BSD.  It has been coded
> from scratch completely
> independently of all other Unices, and even the
> utilities are those from GNU
> which have also been coded from scratch
> independently of BSD and the official
> Unices (although they were originally intended to
> run on Hurd which didn't
> become very popular since Linux achieved a usable
> stage earlier).

Linux was never meant to be particularly BSDish
anyway; it was based on SysV (at least as soon as it
reached any significant level of maturity) and only
looks sort of BSDish in the userland. I think the way
I heard it put was something along the lines of "the
passport says Finland but it's originally from
Jersey". 

I sort of look at GNU as being the predecessor to
Apple's Copland in an odd sort of way; Copland never
even made it out the door, and the body was eventually
stripped for parts.

/Brian

=====
--

__________________________________________________
Do You Yahoo!?
Yahoo! Greetings - send holiday greetings for Easter, Passover
http://greetings.yahoo.com/





From esoteric@oiva.sange.fi Mon Apr 01 22:06:19 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16s788-000CUM-00; Mon, 01 Apr 2002 22:06:12 +0300
Received: with LISTAR (v0.129a; list misc); Mon, 01 Apr 2002 22:06:05 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16s77j-000CUG-00; Mon, 01 Apr 2002 22:05:47 +0300
Received: with LISTAR (v0.129a; list lang); Mon, 01 Apr 2002 22:05:40 +0300 (EEST)
Received: from web21408.mail.yahoo.com ([216.136.232.78])
	by oiva.sange.fi with smtp (Exim 3.33 #1)
	id 16s77S-000CUA-00
	for lang@esoteric.sange.fi; Mon, 01 Apr 2002 22:05:30 +0300
Message-ID: <20020401190524.19320.qmail@web21408.mail.yahoo.com>
Received: from [66.120.209.42] by web21408.mail.yahoo.com via HTTP; Mon, 01 Apr 2002 11:05:24 PST
Date: Mon, 1 Apr 2002 11:05:24 -0800 (PST)
From: Quowong Liu <qpliu@yahoo.com>
Subject: [lang] New language: conser
To: lang@esoteric.sange.fi
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="0-1834750279-1017687924=:15124"
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: qpliu@yahoo.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: qpliu@yahoo.com
Precedence: bulk
X-list: misc

--0-1834750279-1017687924=:15124
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Hello.

Here's a language I invented.  I also have an interpreter, which
doesn't correctly implement it, and isn't good code, but it is
enough to start playing with it.

The run the interpreter in repl mode: java conser

To run programs: java conser program.cons

The conser programming language
--------------------------------
The only data type is sets of pairs (of sets).

A program has to cons for any data other than the empty set, so it's a
conser.  Also, conser is sort of a combination of Conway and surreal.

It's a declarative language.

A program consists of function definitions, which may be mutually
recursive.  The function main must take zero or one argument.  When
the program is run, the main function is evaluated.  If it takes an
argument, the argument is 1 appended with the contents of stdin,
encoded as a surreal number.  The result of evaluating main, if it is
an integral surreal number, gets decoded into a byte stream with the
first byte discarded, and sent to stdout.  The extra byte needs to be
added or removed in case the input or the output begins with 0 or 255.

Example functions:
---------------------------------------------------------------------------
"Infinite loop."
loop = loop.
---------------------------------------------------------------------------
"Iteration.  Assumes f takes a single argument.  If n is a positive
 integer in a canonical form, gives the result of applying f n times
 to the argument."

2 a b = b.
iterate-f n a = (iterate-f <n f a (a ! 2 <n a)).
---------------------------------------------------------------------------

Example programs:
---------------------------------------------------------------------------
"cat: Copy stdin to stdout."
main a = a.
---------------------------------------------------------------------------
"H: Prints the first character of Hello world! to stdout.  Much shorter
 than printing the full Hello world! and doesn't take forever to run."

main = H.

H = (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
    (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
    (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
    (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
    (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
    ((((((((((((((,),),),),),),),),),),),),),),),),),),),),),),),),
    ),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)
    ,),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),
    ),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)
    ,),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),
    ),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)
    ,),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),
    ),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)
    ,),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),
    ),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)
    ,),),),),),),),),),),),),),),),),),),),),).

---------------------------------------------------------------------------

Tokenization:

Whitespace separates tokens.

Comments are surrounded by double quotes.  Comments cannot contain 
double quotes.  Comments are lexically whitespace.

The characters < > ( ) , & ! = . are special tokens.  Whitespace is not
needed to distinguish them.

Unbroken strings of any printable character other than the special
tokens or double quotes form identifier tokens.

A function definition consists of
 an identifier token, which names the function
 zero or more identifier tokens, which are the formal arguments
 the "=" token, which separates the specification from the body
 an expression, which consists of identifier tokens and/or
   "<" ">" "(" ")" "," "&" "!" tokens, and must be a valid expression
 the "." token, which ends the definition

Examples:
 empty = ().
 0 = (,).
 1 = (0,).
 -1 = (,0).
 bits = (0 1).
 f a b = b.

The ( ) , & ! characters can only be used to form cons, union,
intersection, or set subtraction expressions.

A cons, intersection, and set subtraction expressions consist of
 the "(" token
 zero or more expressions
 the "," token for cons, "&" for intersection, or "!" for set
subtraction
 zero or more expressions
 the ")" token.

A union expression consists of
 the "(" token
 zero or more expressions
 the ")" token

Predefined functions:
 < is car.
 > is cdr.
 (,) is cons.
 () is union.
 (&) is intersection.
 (!) is set subtraction.

Examples:
---------------------------------------------------------------------------
union a b = (a b).
intersection a b = (a&b).
subtract a b = (a!b).
3-union a b c = (a b c).
---------------------------------------------------------------------------

Since there are no higher-order functions, there is no need to
explicitly specify precedence, so there is no way to do so.

Some things to note:
 <(a b) is equivalent to (<a <b).
 ((a b)) is equivalent to (a b).
 ((a b) c) is equivalent to (a b c).
 f (a b) c is equivalent to (f a c  f b c).
 f (a b) (c d) is equivalent to (f a c  f a d  f b c  f b d).
 f () is always ().
 f () a is always ().
 f a () is always ().

Examples:
---------------------------------------------------------------------------
"List processing."
car l = <l.
cdr l = >l.

map-f l = (f<l,map-f>l).

? a = (>a!2<a>a). 2 a b = b.
concat' a b = (<a,concat'>a b ?(>a,b)).

"concat' evaluates to () if a is () or b is ()."
concat a = (? a ?(>a,<a)concat'<a>a).
---------------------------------------------------------------------------

Hello world example:
---------------------------------------------------------------------------
"Hello world!: Prints Hello world! to stdout.  Takes forever to run."

"Addition."
+ a b = (+<a b + a<b,+>a b + a>b).

"Inverse under addition."
- a = (->a,-<a).

"Multiplication."
* a b = (+ + *<a b * a<b - *<a<b + + *>a b * a>b - *>a>b,
         + + *<a b * a>b - *<a>b + + *>a b * a<b - *>a<b).

"Small numbers."
0=(,).1=(0,).2=(1,).3=(2,).4=(3,).5=(4,).6=(5,).7=(6,).8=(7,).9=(8,).

"Factors of 10."
10 a = *(9,)a.
100 a = 10 10 a.
1000 a = 100 10 a.
10000 a = 1000 10 a.
100000 a = 10000 10 a.
1000000 a = 100000 10 a.
10000000 a = 1000000 10 a.
100000000 a = 10000000 10 a.
1000000000 a = 100000000 10 a.
10000000000 a = 1000000000 10 a.
100000000000 a = 10000000000 10 a.
1000000000000 a = 100000000000 10 a.
10000000000000 a = 1000000000000 10 a.
100000000000000 a = 10000000000000 10 a.
1000000000000000 a = 100000000000000 10 a.
10000000000000000 a = 1000000000000000 10 a.
100000000000000000 a = 10000000000000000 10 a.
1000000000000000000 a = 100000000000000000 10 a.
10000000000000000000 a = 1000000000000000000 10 a.
100000000000000000000 a = 10000000000000000000 10 a.
1000000000000000000000 a = 100000000000000000000 10 a.
10000000000000000000000 a = 1000000000000000000000 10 a.
100000000000000000000000 a = 10000000000000000000000 10 a.
1000000000000000000000000 a = 100000000000000000000000 10 a.
10000000000000000000000000 a = 1000000000000000000000000 10 a.
100000000000000000000000000 a = 10000000000000000000000000 10 a.
1000000000000000000000000000 a = 100000000000000000000000000 10 a.
10000000000000000000000000000 a = 1000000000000000000000000000 10 a.
100000000000000000000000000000 a = 10000000000000000000000000000 10 a.
1000000000000000000000000000000 a = 100000000000000000000000000000 10
a.
10000000000000000000000000000000 a = 1000000000000000000000000000000 10
a.

"Hello world! encoded as a number."
26018226366724685165746607890698 = +
10000000000000000000000000000000 2 +
 1000000000000000000000000000000 6 +
  100000000000000000000000000000 0 +
   10000000000000000000000000000 1 +
    1000000000000000000000000000 8 +
     100000000000000000000000000 2 +
      10000000000000000000000000 2 +
       1000000000000000000000000 6 +
        100000000000000000000000 3 +
         10000000000000000000000 6 +
          1000000000000000000000 6 +
           100000000000000000000 7 +
            10000000000000000000 2 +
             1000000000000000000 4 +
              100000000000000000 6 +
               10000000000000000 8 +
                1000000000000000 5 +
                 100000000000000 1 +
                  10000000000000 6 +
                   1000000000000 5 +
                    100000000000 7 +
                     10000000000 4 +
                      1000000000 6 +
                       100000000 6 +
                        10000000 0 +
                         1000000 7 +
                          100000 8 +
                           10000 9 +
                            1000 0 +
                             100 6 +
                              10 9 8.

main = 26018226366724685165746607890698.
---------------------------------------------------------------------------

Lazy evaluation.

Should conser programs be lazily evaluated?

With lazy evaluation, and an alternative, more tractable, definition of
the argument and result of main as lists of numbers rather than single
big numbers, interactive programs are possible.  However, I still like
the one big number method.

If, when forcing f a b, if a evaluates to (), then f a b = () and b
never
needs to be evaluated.  However, if a never terminates, and b would
evaluate to (), then, if the order of evaluation is left to right, f a
b
would never terminate, even if b evaluates to ().  If the evaluation of
a
and b are done in parallel, then f a b = () if either a or b is ().

Still, with lazy evaluation,
 (finite-set & infinite-set) either is finite-set or doesn't terminate
 (finite-set ! infinite-set) either is () or doesn't terminate

Example of infinite sets:
---------------------------------------------------------------------------
+'s a = (a +'s(a,)).  -'s a = (a -'s(,a)).
Z = (+'s(,)-'s(,)).
inf = (Z,).
---------------------------------------------------------------------------


__________________________________________________
Do You Yahoo!?
Yahoo! Greetings - send holiday greetings for Easter, Passover
http://greetings.yahoo.com/
--0-1834750279-1017687924=:15124
Content-Type: application/octet-stream; name="conser.java"
Content-Transfer-Encoding: base64
Content-Description: conser.java
Content-Disposition: attachment; filename="conser.java"

LyogY29uc2VyLmphdmEgQ29weXJpZ2h0IChDKSAyMDAyIFF1b3dvbmcgUCBM
aXUgKEdOVSBHUEwgYXQgZW5kIG9mIGZpbGUpLgoKVGhlIHJ1biB0aGUgaW50
ZXJwcmV0ZXIgaW4gcmVwbCBtb2RlOiBqYXZhIGNvbnNlcgoKVG8gcnVuIHBy
b2dyYW1zOiBqYXZhIGNvbnNlciBwcm9ncmFtLmNvbnMKClRoZSBjb25zZXIg
cHJvZ3JhbW1pbmcgbGFuZ3VhZ2UKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KVGhlIG9ubHkgZGF0YSB0eXBlIGlzIHNldHMgb2YgcGFpcnMg
KG9mIHNldHMpLgoKQSBwcm9ncmFtIGhhcyB0byBjb25zIGZvciBhbnkgZGF0
YSBvdGhlciB0aGFuIHRoZSBlbXB0eSBzZXQsIHNvIGl0J3MgYQpjb25zZXIu
ICBBbHNvLCBjb25zZXIgaXMgc29ydCBvZiBhIGNvbWJpbmF0aW9uIG9mIENv
bndheSBhbmQgc3VycmVhbC4KCkl0J3MgYSBkZWNsYXJhdGl2ZSBsYW5ndWFn
ZS4KCkEgcHJvZ3JhbSBjb25zaXN0cyBvZiBmdW5jdGlvbiBkZWZpbml0aW9u
cywgd2hpY2ggbWF5IGJlIG11dHVhbGx5CnJlY3Vyc2l2ZS4gIFRoZSBmdW5j
dGlvbiBtYWluIG11c3QgdGFrZSB6ZXJvIG9yIG9uZSBhcmd1bWVudC4gIFdo
ZW4KdGhlIHByb2dyYW0gaXMgcnVuLCB0aGUgbWFpbiBmdW5jdGlvbiBpcyBl
dmFsdWF0ZWQuICBJZiBpdCB0YWtlcyBhbgphcmd1bWVudCwgdGhlIGFyZ3Vt
ZW50IGlzIDEgYXBwZW5kZWQgd2l0aCB0aGUgY29udGVudHMgb2Ygc3RkaW4s
CmVuY29kZWQgYXMgYSBzdXJyZWFsIG51bWJlci4gIFRoZSByZXN1bHQgb2Yg
ZXZhbHVhdGluZyBtYWluLCBpZiBpdCBpcwphbiBpbnRlZ3JhbCBzdXJyZWFs
IG51bWJlciwgZ2V0cyBkZWNvZGVkIGludG8gYSBieXRlIHN0cmVhbSB3aXRo
IHRoZQpmaXJzdCBieXRlIGRpc2NhcmRlZCwgYW5kIHNlbnQgdG8gc3Rkb3V0
LiAgVGhlIGV4dHJhIGJ5dGUgbmVlZHMgdG8gYmUKYWRkZWQgb3IgcmVtb3Zl
ZCBpbiBjYXNlIHRoZSBpbnB1dCBvciB0aGUgb3V0cHV0IGJlZ2lucyB3aXRo
IDAgb3IgMjU1LgoKRXhhbXBsZSBmdW5jdGlvbnM6Ci0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQoiSW5maW5pdGUgbG9vcC4iCmxvb3AgPSBsb29w
LgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIkl0ZXJhdGlvbi4g
IEFzc3VtZXMgZiB0YWtlcyBhIHNpbmdsZSBhcmd1bWVudC4gIElmIG4gaXMg
YSBwb3NpdGl2ZQogaW50ZWdlciBpbiBhIGNhbm9uaWNhbCBmb3JtLCBnaXZl
cyB0aGUgcmVzdWx0IG9mIGFwcGx5aW5nIGYgbiB0aW1lcwogdG8gdGhlIGFy
Z3VtZW50LiIKCjIgYSBiID0gYi4KaXRlcmF0ZS1mIG4gYSA9IChpdGVyYXRl
LWYgPG4gZiBhIChhICEgMiA8biBhKSkuCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQoKRXhhbXBsZSBwcm9ncmFtczoKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiJjYXQ6IENvcHkgc3RkaW4gdG8gc3Rkb3V0LiIK
bWFpbiBhID0gYS4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiJI
OiBQcmludHMgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiBIZWxsbyB3b3JsZCEg
dG8gc3Rkb3V0LiAgTXVjaCBzaG9ydGVyCiB0aGFuIHByaW50aW5nIHRoZSBm
dWxsIEhlbGxvIHdvcmxkISBhbmQgZG9lc24ndCB0YWtlIGZvcmV2ZXIgdG8g
cnVuLiIKCm1haW4gPSBILgoKSCA9ICgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo
KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo
KCgoKCgKICAgICgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo
KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgKICAgICgo
KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo
KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgKICAgICgoKCgoKCgoKCgoKCgo
KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo
KCgoKCgoKCgoKCgoKCgKICAgICgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo
KCgoKCgoKCgoKCgsKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwp
LCkKICAgICwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwp
LCksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwKICAgICksKSwp
LCksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCks
KSwpLCksKSwpLCksKSwpLCksKSwpLCkKICAgICwpLCksKSwpLCksKSwpLCks
KSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwp
LCksKSwpLCksKSwKICAgICksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwp
LCksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCkK
ICAgICwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCks
KSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwKICAgICksKSwpLCks
KSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwp
LCksKSwpLCksKSwpLCksKSwpLCkKICAgICwpLCksKSwpLCksKSwpLCksKSwp
LCksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCks
KSwpLCksKSwKICAgICksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCks
KSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCkKICAg
ICwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLCksKSwpLgotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClRva2VuaXphdGlvbjoKCldo
aXRlc3BhY2Ugc2VwYXJhdGVzIHRva2Vucy4KCkNvbW1lbnRzIGFyZSBzdXJy
b3VuZGVkIGJ5IGRvdWJsZSBxdW90ZXMuICBDb21tZW50cyBjYW5ub3QgY29u
dGFpbiBkb3VibGUKcXVvdGVzLiAgQ29tbWVudHMgYXJlIGxleGljYWxseSB3
aGl0ZXNwYWNlLgoKVGhlIGNoYXJhY3RlcnMgPCA+ICggKSAsICYgISA9IC4g
YXJlIHNwZWNpYWwgdG9rZW5zLiAgV2hpdGVzcGFjZSBpcyBub3QKbmVlZGVk
IHRvIGRpc3Rpbmd1aXNoIHRoZW0uCgpVbmJyb2tlbiBzdHJpbmdzIG9mIGFu
eSBwcmludGFibGUgY2hhcmFjdGVyIG90aGVyIHRoYW4gdGhlIHNwZWNpYWwg
dG9rZW5zCm9yIGRvdWJsZSBxdW90ZXMgZm9ybSBpZGVudGlmaWVyIHRva2Vu
cy4KCkEgZnVuY3Rpb24gZGVmaW5pdGlvbiBjb25zaXN0cyBvZgogYW4gaWRl
bnRpZmllciB0b2tlbiwgd2hpY2ggbmFtZXMgdGhlIGZ1bmN0aW9uCiB6ZXJv
IG9yIG1vcmUgaWRlbnRpZmllciB0b2tlbnMsIHdoaWNoIGFyZSB0aGUgZm9y
bWFsIGFyZ3VtZW50cwogdGhlICI9IiB0b2tlbiwgd2hpY2ggc2VwYXJhdGVz
IHRoZSBzcGVjaWZpY2F0aW9uIGZyb20gdGhlIGJvZHkKIGFuIGV4cHJlc3Np
b24sIHdoaWNoIGNvbnNpc3RzIG9mIGlkZW50aWZpZXIgdG9rZW5zIGFuZC9v
cgogICAiPCIgIj4iICIoIiAiKSIgIiwiICImIiAiISIgdG9rZW5zLCBhbmQg
bXVzdCBiZSBhIHZhbGlkIGV4cHJlc3Npb24KIHRoZSAiLiIgdG9rZW4sIHdo
aWNoIGVuZHMgdGhlIGRlZmluaXRpb24KCkV4YW1wbGVzOgogZW1wdHkgPSAo
KS4KIDAgPSAoLCkuCiAxID0gKDAsKS4KIC0xID0gKCwwKS4KIGJpdHMgPSAo
MCAxKS4KIGYgYSBiID0gYi4KClRoZSAoICkgLCAmICEgY2hhcmFjdGVycyBj
YW4gb25seSBiZSB1c2VkIHRvIGZvcm0gY29ucywgdW5pb24sIGludGVyc2Vj
dGlvbiwKb3Igc2V0IHN1YnRyYWN0aW9uIGV4cHJlc3Npb25zLgoKQSBjb25z
LCBpbnRlcnNlY3Rpb24sIGFuZCBzZXQgc3VidHJhY3Rpb24gZXhwcmVzc2lv
bnMgY29uc2lzdCBvZgogdGhlICIoIiB0b2tlbgogemVybyBvciBtb3JlIGV4
cHJlc3Npb25zCiB0aGUgIiwiIHRva2VuIGZvciBjb25zLCAiJiIgZm9yIGlu
dGVyc2VjdGlvbiwgb3IgIiEiIGZvciBzZXQgc3VidHJhY3Rpb24KIHplcm8g
b3IgbW9yZSBleHByZXNzaW9ucwogdGhlICIpIiB0b2tlbi4KCkEgdW5pb24g
ZXhwcmVzc2lvbiBjb25zaXN0cyBvZgogdGhlICIoIiB0b2tlbgogemVybyBv
ciBtb3JlIGV4cHJlc3Npb25zCiB0aGUgIikiIHRva2VuCgpQcmVkZWZpbmVk
IGZ1bmN0aW9uczoKIDwgaXMgY2FyLgogPiBpcyBjZHIuCiAoLCkgaXMgY29u
cy4KICgpIGlzIHVuaW9uLgogKCYpIGlzIGludGVyc2VjdGlvbi4KICghKSBp
cyBzZXQgc3VidHJhY3Rpb24uCgpFeGFtcGxlczoKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCnVuaW9uIGEgYiA9IChhIGIpLgppbnRlcnNlY3Rp
b24gYSBiID0gKGEmYikuCnN1YnRyYWN0IGEgYiA9IChhIWIpLgozLXVuaW9u
IGEgYiBjID0gKGEgYiBjKS4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCgpTaW5jZSB0aGVyZSBhcmUgbm8gaGlnaGVyLW9yZGVyIGZ1bmN0aW9u
cywgdGhlcmUgaXMgbm8gbmVlZCB0byBleHBsaWNpdGx5CnNwZWNpZnkgcHJl
Y2VkZW5jZSwgc28gdGhlcmUgaXMgbm8gd2F5IHRvIGRvIHNvLgoKU29tZSB0
aGluZ3MgdG8gbm90ZToKIDwoYSBiKSBpcyBlcXVpdmFsZW50IHRvICg8YSA8
YikuCiAoKGEgYikpIGlzIGVxdWl2YWxlbnQgdG8gKGEgYikuCiAoKGEgYikg
YykgaXMgZXF1aXZhbGVudCB0byAoYSBiIGMpLgogZiAoYSBiKSBjIGlzIGVx
dWl2YWxlbnQgdG8gKGYgYSBjICBmIGIgYykuCiBmIChhIGIpIChjIGQpIGlz
IGVxdWl2YWxlbnQgdG8gKGYgYSBjICBmIGEgZCAgZiBiIGMgIGYgYiBkKS4K
IGYgKCkgaXMgYWx3YXlzICgpLgogZiAoKSBhIGlzIGFsd2F5cyAoKS4KIGYg
YSAoKSBpcyBhbHdheXMgKCkuCgpFeGFtcGxlczoKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiJMaXN0IHByb2Nlc3NpbmcuIgpjYXIgbCA9IDxs
LgpjZHIgbCA9ID5sLgoKbWFwLWYgbCA9IChmPGwsbWFwLWY+bCkuCgo/IGEg
PSAoPmEhMjxhPmEpLiAyIGEgYiA9IGIuCmNvbmNhdCcgYSBiID0gKDxhLGNv
bmNhdCc+YSBiID8oPmEsYikpLgoKImNvbmNhdCcgZXZhbHVhdGVzIHRvICgp
IGlmIGEgaXMgKCkgb3IgYiBpcyAoKS4iCmNvbmNhdCBhID0gKD8gYSA/KD5h
LDxhKWNvbmNhdCc8YT5hKS4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCgpIZWxsbyB3b3JsZCBleGFtcGxlOgotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIkhlbGxvIHdvcmxkITogUHJpbnRzIEhlbGxvIHdvcmxk
ISB0byBzdGRvdXQuICBUYWtlcyBmb3JldmVyIHRvIHJ1bi4iCgoiQWRkaXRp
b24uIgorIGEgYiA9ICgrPGEgYiArIGE8YiwrPmEgYiArIGE+YikuCgoiSW52
ZXJzZSB1bmRlciBhZGRpdGlvbi4iCi0gYSA9ICgtPmEsLTxhKS4KCiJNdWx0
aXBsaWNhdGlvbi4iCiogYSBiID0gKCsgKyAqPGEgYiAqIGE8YiAtICo8YTxi
ICsgKyAqPmEgYiAqIGE+YiAtICo+YT5iLAogICAgICAgICArICsgKjxhIGIg
KiBhPmIgLSAqPGE+YiArICsgKj5hIGIgKiBhPGIgLSAqPmE8YikuCgoiU21h
bGwgbnVtYmVycy4iCjA9KCwpLjE9KDAsKS4yPSgxLCkuMz0oMiwpLjQ9KDMs
KS41PSg0LCkuNj0oNSwpLjc9KDYsKS44PSg3LCkuOT0oOCwpLgoKIkZhY3Rv
cnMgb2YgMTAuIgoxMCBhID0gKig5LClhLgoxMDAgYSA9IDEwIDEwIGEuCjEw
MDAgYSA9IDEwMCAxMCBhLgoxMDAwMCBhID0gMTAwMCAxMCBhLgoxMDAwMDAg
YSA9IDEwMDAwIDEwIGEuCjEwMDAwMDAgYSA9IDEwMDAwMCAxMCBhLgoxMDAw
MDAwMCBhID0gMTAwMDAwMCAxMCBhLgoxMDAwMDAwMDAgYSA9IDEwMDAwMDAw
IDEwIGEuCjEwMDAwMDAwMDAgYSA9IDEwMDAwMDAwMCAxMCBhLgoxMDAwMDAw
MDAwMCBhID0gMTAwMDAwMDAwMCAxMCBhLgoxMDAwMDAwMDAwMDAgYSA9IDEw
MDAwMDAwMDAwIDEwIGEuCjEwMDAwMDAwMDAwMDAgYSA9IDEwMDAwMDAwMDAw
MCAxMCBhLgoxMDAwMDAwMDAwMDAwMCBhID0gMTAwMDAwMDAwMDAwMCAxMCBh
LgoxMDAwMDAwMDAwMDAwMDAgYSA9IDEwMDAwMDAwMDAwMDAwIDEwIGEuCjEw
MDAwMDAwMDAwMDAwMDAgYSA9IDEwMDAwMDAwMDAwMDAwMCAxMCBhLgoxMDAw
MDAwMDAwMDAwMDAwMCBhID0gMTAwMDAwMDAwMDAwMDAwMCAxMCBhLgoxMDAw
MDAwMDAwMDAwMDAwMDAgYSA9IDEwMDAwMDAwMDAwMDAwMDAwIDEwIGEuCjEw
MDAwMDAwMDAwMDAwMDAwMDAgYSA9IDEwMDAwMDAwMDAwMDAwMDAwMCAxMCBh
LgoxMDAwMDAwMDAwMDAwMDAwMDAwMCBhID0gMTAwMDAwMDAwMDAwMDAwMDAw
MCAxMCBhLgoxMDAwMDAwMDAwMDAwMDAwMDAwMDAgYSA9IDEwMDAwMDAwMDAw
MDAwMDAwMDAwIDEwIGEuCjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAgYSA9IDEw
MDAwMDAwMDAwMDAwMDAwMDAwMCAxMCBhLgoxMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMCBhID0gMTAwMDAwMDAwMDAwMDAwMDAwMDAwMCAxMCBhLgoxMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAgYSA9IDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
IDEwIGEuCjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgYSA9IDEwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMCAxMCBhLgoxMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMCBhID0gMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAxMCBhLgoxMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgYSA9IDEwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwIDEwIGEuCjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAg
YSA9IDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAxMCBhLgoxMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMCBhID0gMTAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMCAxMCBhLgoxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAgYSA9IDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIDEwIGEuCjEw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgYSA9IDEwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMCAxMCBhLgoxMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMCBhID0gMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMCAxMCBhLgoKIkhlbGxvIHdvcmxkISBlbmNvZGVkIGFzIGEgbnVtYmVy
LiIKMjYwMTgyMjYzNjY3MjQ2ODUxNjU3NDY2MDc4OTA2OTggPSArCjEwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIDIgKwogMTAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMCA2ICsKICAxMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAgMCArCiAgIDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwIDEgKwogICAgMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCA4ICsK
ICAgICAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgMiArCiAgICAgIDEw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIDIgKwogICAgICAgMTAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMCA2ICsKICAgICAgICAxMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAgMyArCiAgICAgICAgIDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
IDYgKwogICAgICAgICAgMTAwMDAwMDAwMDAwMDAwMDAwMDAwMCA2ICsKICAg
ICAgICAgICAxMDAwMDAwMDAwMDAwMDAwMDAwMDAgNyArCiAgICAgICAgICAg
IDEwMDAwMDAwMDAwMDAwMDAwMDAwIDIgKwogICAgICAgICAgICAgMTAwMDAw
MDAwMDAwMDAwMDAwMCA0ICsKICAgICAgICAgICAgICAxMDAwMDAwMDAwMDAw
MDAwMDAgNiArCiAgICAgICAgICAgICAgIDEwMDAwMDAwMDAwMDAwMDAwIDgg
KwogICAgICAgICAgICAgICAgMTAwMDAwMDAwMDAwMDAwMCA1ICsKICAgICAg
ICAgICAgICAgICAxMDAwMDAwMDAwMDAwMDAgMSArCiAgICAgICAgICAgICAg
ICAgIDEwMDAwMDAwMDAwMDAwIDYgKwogICAgICAgICAgICAgICAgICAgMTAw
MDAwMDAwMDAwMCA1ICsKICAgICAgICAgICAgICAgICAgICAxMDAwMDAwMDAw
MDAgNyArCiAgICAgICAgICAgICAgICAgICAgIDEwMDAwMDAwMDAwIDQgKwog
ICAgICAgICAgICAgICAgICAgICAgMTAwMDAwMDAwMCA2ICsKICAgICAgICAg
ICAgICAgICAgICAgICAxMDAwMDAwMDAgNiArCiAgICAgICAgICAgICAgICAg
ICAgICAgIDEwMDAwMDAwIDAgKwogICAgICAgICAgICAgICAgICAgICAgICAg
MTAwMDAwMCA3ICsKICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAwMDAg
OCArCiAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMDAwIDkgKwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMTAwMCAwICsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxMDAgNiArCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDEwIDkgOC4KCm1haW4gPSAyNjAxODIyNjM2NjcyNDY4NTE2
NTc0NjYwNzg5MDY5OC4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CgpMYXp5IGV2YWx1YXRpb24uCgpTaG91bGQgY29uc2VyIHByb2dyYW1zIGJl
IGxhemlseSBldmFsdWF0ZWQ/CgpXaXRoIGxhenkgZXZhbHVhdGlvbiwgYW5k
IGFuIGFsdGVybmF0aXZlLCBtb3JlIHRyYWN0YWJsZSwgZGVmaW5pdGlvbiBv
Zgp0aGUgYXJndW1lbnQgYW5kIHJlc3VsdCBvZiBtYWluIGFzIGxpc3RzIG9m
IG51bWJlcnMgcmF0aGVyIHRoYW4gc2luZ2xlCmJpZyBudW1iZXJzLCBpbnRl
cmFjdGl2ZSBwcm9ncmFtcyBhcmUgcG9zc2libGUuICBIb3dldmVyLCBJIHN0
aWxsIGxpa2UKdGhlIG9uZSBiaWcgbnVtYmVyIG1ldGhvZC4KCklmLCB3aGVu
IGZvcmNpbmcgZiBhIGIsIGlmIGEgZXZhbHVhdGVzIHRvICgpLCB0aGVuIGYg
YSBiID0gKCkgYW5kIGIgbmV2ZXIKbmVlZHMgdG8gYmUgZXZhbHVhdGVkLiAg
SG93ZXZlciwgaWYgYSBuZXZlciB0ZXJtaW5hdGVzLCBhbmQgYiB3b3VsZApl
dmFsdWF0ZSB0byAoKSwgdGhlbiwgaWYgdGhlIG9yZGVyIG9mIGV2YWx1YXRp
b24gaXMgbGVmdCB0byByaWdodCwgZiBhIGIKd291bGQgbmV2ZXIgdGVybWlu
YXRlLCBldmVuIGlmIGIgZXZhbHVhdGVzIHRvICgpLiAgSWYgdGhlIGV2YWx1
YXRpb24gb2YgYQphbmQgYiBhcmUgZG9uZSBpbiBwYXJhbGxlbCwgdGhlbiBm
IGEgYiA9ICgpIGlmIGVpdGhlciBhIG9yIGIgaXMgKCkuCgpTdGlsbCwgd2l0
aCBsYXp5IGV2YWx1YXRpb24sCiAoZmluaXRlLXNldCAmIGluZmluaXRlLXNl
dCkgZWl0aGVyIGlzIGZpbml0ZS1zZXQgb3IgZG9lc24ndCB0ZXJtaW5hdGUK
IChmaW5pdGUtc2V0ICEgaW5maW5pdGUtc2V0KSBlaXRoZXIgaXMgKCkgb3Ig
ZG9lc24ndCB0ZXJtaW5hdGUKCkV4YW1wbGUgb2YgaW5maW5pdGUgc2V0czoK
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisncyBhID0gKGEgKydz
KGEsKSkuICAtJ3MgYSA9IChhIC0ncygsYSkpLgpaID0gKCsncygsKS0ncygs
KSkuCmluZiA9IChaLCkuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogKi8KCi8qIFRoaXMgaXMgbm90IGdvb2QgY29kZS4gIFRoaXMgaXMgbm90
IGludGVuZGVkIHRvIGJlIGdvb2QgY29kZS4KICAgVGhpcyBpcyBub3QgZXZl
biBpbnRlbmRlZCB0byBiZSBhIGNvcnJlY3QgaW1wbGVtZW50YXRpb24gb2Yg
Y29uc2VyLiAqLwppbXBvcnQgamF2YS5pby4qOwppbXBvcnQgamF2YS5tYXRo
Lio7CmltcG9ydCBqYXZhLnV0aWwuKjsKCnB1YmxpYyBjbGFzcyBjb25zZXIK
ewogICAgc3RhdGljIGJvb2xlYW4gc3BldyA9IGZhbHNlOwogICAgc3RhdGlj
IEhhc2hNYXAgZGVmaW5pdGlvbnMgPSBuZXcgSGFzaE1hcCgpOwogICAgc3Rh
dGljIGZpbmFsIFN0cmluZyBWRVJTSU9OID0gIigsKSI7CgogICAgcHVibGlj
IHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2Vw
dGlvbgogICAgewogICAgICAgIGlmIChhcmdzLmxlbmd0aCA9PSAwKSB7CiAg
ICAgICAgICAgIHNwZXcgPSB0cnVlOwogICAgICAgICAgICBTeXN0ZW0ub3V0
LnByaW50bG4oIlRoZSBjb25zZXIgaW50ZXJwcmV0ZXIsIHZlcnNpb24gIiAr
IFZFUlNJT04gKyAiLCBDb3B5cmlnaHQgKEMpIDIwMDIgUXVvd29uZyBQIExp
dSIpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRoaXMgcHJv
Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IgbW9kaWZ5Iik7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJp
bnRsbigiaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkiKTsKICAgICAgICAgICAg
U3lzdGVtLm91dC5wcmludGxuKCJ0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciIpOwog
ICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIihhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uIik7CiAgICAgICAgICAgIFN5c3RlbS5v
dXQucHJpbnRsbigpOwogICAgICAgICAgICByZXBsKCk7CiAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdzLmxl
bmd0aDsgaSsrKQogICAgICAgICAgICAgICAgbG9hZEZpbGUoYXJnc1tpXSk7
CiAgICAgICAgICAgIGludGVycHJldE1haW4oKTsKICAgICAgICB9CiAgICB9
CgogICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBsb2FkRmlsZShTdHJpbmcgZmls
ZW5hbWUpIHRocm93cyBFeGNlcHRpb24KICAgIHsKICAgICAgICBUb2tlbml6
ZXIgdG9rZW5pemVyID0gbmV3IFRva2VuaXplcihuZXcgRmlsZVJlYWRlcihm
aWxlbmFtZSkpOwogICAgICAgIEFycmF5TGlzdCBjdXJyZW50ID0gbmV3IEFy
cmF5TGlzdCgpOwogICAgICAgIGZvciAoU3RyaW5nIHRvayA9IHRva2VuaXpl
ci5uZXh0KCk7IHRvayAhPSBudWxsOyB0b2sgPSB0b2tlbml6ZXIubmV4dCgp
KSB7CiAgICAgICAgICAgIGlmICh0b2suZXF1YWxzKCIuIikpIHsKICAgICAg
ICAgICAgICAgIGFkZERlZmluaXRpb24oY3VycmVudCk7CiAgICAgICAgICAg
ICAgICBjdXJyZW50LmNsZWFyKCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICAgICBjdXJyZW50LmFkZCh0b2spOwogICAgICAgICAgICB9
CiAgICAgICAgfQogICAgICAgIGlmICghY3VycmVudC5pc0VtcHR5KCkpCiAg
ICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oImlsbGVnYWwgdG9rZW5z
IGF0IHRoZSBlbmQgb2YgIiArIGZpbGVuYW1lKTsKICAgIH0KCiAgICBwcml2
YXRlIHN0YXRpYyB2b2lkIGludGVycHJldE1haW4oKSB0aHJvd3MgRXhjZXB0
aW9uCiAgICB7CiAgICAgICAgRnVuY3Rpb24gbWFpbiA9IChGdW5jdGlvbikg
ZGVmaW5pdGlvbnMuZ2V0KCJtYWluIik7CiAgICAgICAgaWYgKG1haW4gPT0g
bnVsbCB8fCBtYWluLm5hcmdzID4gMSkKICAgICAgICAgICAgdGhyb3cgbmV3
IEV4Y2VwdGlvbigibm8gdmFsaWQgZGVmaW5pdGlvbiBmb3IgbWFpbiIpOwoK
ICAgICAgICBBcnJheUxpc3QgYXJncyA9IG5ldyBBcnJheUxpc3QoKTsKICAg
ICAgICBpZiAobWFpbi5uYXJncyA9PSAxKSB7CiAgICAgICAgICAgIEJ5dGVB
cnJheU91dHB1dFN0cmVhbSBiID0gbmV3IEJ5dGVBcnJheU91dHB1dFN0cmVh
bSgpOwogICAgICAgICAgICBiLndyaXRlKDEpOwogICAgICAgICAgICBieXRl
W10gYnVmID0gbmV3IGJ5dGVbODE5Nl07CiAgICAgICAgICAgIGZvciAoOzsp
IHsKICAgICAgICAgICAgICAgIGludCBjID0gU3lzdGVtLmluLnJlYWQoYnVm
KTsKICAgICAgICAgICAgICAgIGlmIChjIDwgMCkKICAgICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgICAgIGIud3JpdGUoYnVmLCAwLCBj
KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBhcmdzLmFkZChuZXcgVmFs
QmlnSW50KG5ldyBCaWdJbnRlZ2VyKGIudG9CeXRlQXJyYXkoKSkpKTsKICAg
ICAgICB9CgogICAgICAgIFZhbCByZXN1bHQgPSBtYWluLmV2YWwoYXJncyk7
CiAgICAgICAgQmlnSW50ZWdlciByZXN1bHRWYWwgPSByZXN1bHQudG9CaWdJ
bnRlZ2VyKCk7CiAgICAgICAgaWYgKHJlc3VsdFZhbCAhPSBudWxsKSB7CiAg
ICAgICAgICAgIGJ5dGVbXSByZXN1bHRCeXRlcyA9IHJlc3VsdFZhbC50b0J5
dGVBcnJheSgpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LndyaXRlKHJlc3Vs
dEJ5dGVzLCAxLCByZXN1bHRCeXRlcy5sZW5ndGgtMSk7CiAgICAgICAgfQog
ICAgfQoKICAgIHByaXZhdGUgc3RhdGljIHZvaWQgcmVwbCgpIHRocm93cyBF
eGNlcHRpb24KICAgIHsKICAgICAgICBCdWZmZXJlZFJlYWRlciBpbiA9IG5l
dyBCdWZmZXJlZFJlYWRlcihuZXcgSW5wdXRTdHJlYW1SZWFkZXIoU3lzdGVt
LmluLCAiSVNPLTg4NTktMSIpKTsKICAgICAgICBBcnJheUxpc3QgY3VycmVu
dCA9IG5ldyBBcnJheUxpc3QoKTsKICAgICAgICBib29sZWFuIGlzRGVmaW5p
dGlvbiA9IGZhbHNlOwogICAgICAgIGZvciAoOzspIHsKICAgICAgICAgICAg
aWYgKGN1cnJlbnQuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgU3lzdGVt
Lm91dC5wcmludCgiLSAiKTsKICAgICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgICAgU3lzdGVtLm91dC5wcmludCgiKyAiKTsKICAgICAgICAgICAgU3lz
dGVtLm91dC5mbHVzaCgpOwogICAgICAgICAgICBTdHJpbmcgbGluZSA9IGlu
LnJlYWRMaW5lKCk7CiAgICAgICAgICAgIGlmIChsaW5lID09IG51bGwpCiAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgLyogaW4gcmVwbCgp
LCBjb21tZW50cyBjYW4ndCBzcGFuIGxpbmVzLCBub3Qgd29ydGggZml4aW5n
ICovCiAgICAgICAgICAgIFRva2VuaXplciB0b2tlbml6ZXIgPSBuZXcgVG9r
ZW5pemVyKG5ldyBTdHJpbmdSZWFkZXIobGluZSkpOwogICAgICAgICAgICBm
b3IgKFN0cmluZyB0b2sgPSB0b2tlbml6ZXIubmV4dCgpOyB0b2sgIT0gbnVs
bDsgdG9rID0gdG9rZW5pemVyLm5leHQoKSkgewogICAgICAgICAgICAgICAg
aWYgKHRvay5lcXVhbHMoIi4iKSkgewogICAgICAgICAgICAgICAgICAgIHRy
eSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0RlZmluaXRpb24p
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZERlZmluaXRpb24o
Y3VycmVudCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsdWF0ZVByaW50KGN1cnJl
bnQpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgY3VycmVudC5jbGVhcigpOwog
ICAgICAgICAgICAgICAgICAgIGlzRGVmaW5pdGlvbiA9IGZhbHNlOwogICAg
ICAgICAgICAgICAgfSBlbHNlIGlmICh0b2suZXF1YWxzKCI9IikpIHsKICAg
ICAgICAgICAgICAgICAgICBpc0RlZmluaXRpb24gPSB0cnVlOwogICAgICAg
ICAgICAgICAgICAgIGN1cnJlbnQuYWRkKHRvayk7CiAgICAgICAgICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGN1cnJlbnQuYWRkKHRv
ayk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9
CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBhZGREZWZpbml0aW9u
KEFycmF5TGlzdCB0b2tlbnMpIHRocm93cyBFeGNlcHRpb24KICAgIHsKICAg
ICAgICBpZiAodG9rZW5zLmlzRW1wdHkoKSkKICAgICAgICAgICAgcmV0dXJu
OwoKICAgICAgICBpZiAoc3BldykgewogICAgICAgICAgICBTeXN0ZW0ub3V0
LnByaW50KCJBZGRpbmcgZGVmaW5pdGlvbjoiKTsKICAgICAgICAgICAgZm9y
IChJdGVyYXRvciBpID0gdG9rZW5zLml0ZXJhdG9yKCk7IGkuaGFzTmV4dCgp
OyApCiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgIiArIGku
bmV4dCgpKTsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CiAg
ICAgICAgfQoKICAgICAgICBGdW5jdGlvbiBmID0gbmV3IEZ1bmN0aW9uKHRv
a2Vucyk7CiAgICAgICAgaWYgKGRlZmluaXRpb25zLmtleVNldCgpLmNvbnRh
aW5zKGYubmFtZSkpCiAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24o
InJlcGVhdGVkIGRlZmluaXRpb246ICIgKyBmLm5hbWUpOwogICAgICAgIGRl
ZmluaXRpb25zLnB1dChmLm5hbWUsIGYpOwogICAgICAgIGYucmVzb2x2ZSgp
OwogICAgfQoKICAgIHByaXZhdGUgc3RhdGljIHZvaWQgZXZhbHVhdGVQcmlu
dChBcnJheUxpc3QgdG9rZW5zKSB0aHJvd3MgRXhjZXB0aW9uCiAgICB7CiAg
ICAgICAgaWYgKHRva2Vucy5zaXplKCkgPT0gMCkKICAgICAgICAgICAgcmV0
dXJuOwoKICAgICAgICBpZiAoc3BldykgewogICAgICAgICAgICBTeXN0ZW0u
b3V0LnByaW50KCJFdmFsdWF0aW5nOiIpOwogICAgICAgICAgICBmb3IgKEl0
ZXJhdG9yIGkgPSB0b2tlbnMuaXRlcmF0b3IoKTsgaS5oYXNOZXh0KCk7ICkK
ICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAiICsgaS5uZXh0
KCkpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKICAgICAg
ICB9CgogICAgICAgIGlmICh0b2tlbnMuc2l6ZSgpID09IDEpIHsKICAgICAg
ICAgICAgU3RyaW5nIHRva2VuID0gKFN0cmluZykgdG9rZW5zLmdldCgwKTsK
ICAgICAgICAgICAgRnVuY3Rpb24gZiA9IChGdW5jdGlvbikgZGVmaW5pdGlv
bnMuZ2V0KHRva2VuKTsKICAgICAgICAgICAgaWYgKGYgPT0gbnVsbCkgewog
ICAgICAgICAgICAgICAgaWYgKHRva2VuLmVxdWFscygiPCIpIHx8IHRva2Vu
LmVxdWFscygiPiIpKQogICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQu
cHJpbnRsbigiYnVpbHRpbjogIiArIHRva2VuKTsKICAgICAgICAgICAgICAg
IGVsc2UgaWYgKFRva2VuaXplci5pc1NwZWNpYWxUb2tlbih0b2tlbikpCiAg
ICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJzeW50YXgg
ZXJyb3I6ICIgKyB0b2tlbik7CiAgICAgICAgICAgICAgICBlbHNlCiAgICAg
ICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJub3QgZGVmaW5l
ZDogIiArIHRva2VuKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgICAgIGYucmVzb2x2ZSgpOwogICAgICAgICAgICAgICAgaWYgKGYubmFy
Z3MgPT0gMCAmJiBmLnJlc29sdmVkKCkpCiAgICAgICAgICAgICAgICAgICAg
U3lzdGVtLm91dC5wcmludGxuKGYudG9TdHJpbmcoKSArICIgPSAiICsgZi5l
dmFsKG5ldyBBcnJheUxpc3QoKSkudG9TdHJpbmcoKSk7CiAgICAgICAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmlu
dGxuKGYpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICB9CgogICAgICAgIEV4cHIgZXhwciA9IEV4cHIucGFyc2UobmV3IEFy
cmF5TGlzdCgpLCB0b2tlbnMpOwogICAgICAgIEFycmF5TGlzdCByZXNvbHZl
ZCA9IGV4cHIucmVzb2x2ZSgpOwogICAgICAgIGlmIChyZXNvbHZlZCAhPSBu
dWxsKSB7CiAgICAgICAgICAgIGlmIChyZXNvbHZlZC5zaXplKCkgPT0gMSkg
ewogICAgICAgICAgICAgICAgZXhwciA9IChFeHByKSByZXNvbHZlZC5nZXQo
MCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBTeXN0
ZW0ub3V0LnByaW50bG4oImlsbGVnYWwgZXhwcmVzc2lvbjogIiArIGV4cHIp
OwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAg
ICAgfQogICAgICAgIGlmICghZXhwci5yZXNvbHZlZCgpKSB7CiAgICAgICAg
ICAgIFN5c3RlbS5vdXQucHJpbnRsbigidW5yZXNvbHZhYmxlIGV4cHJlc3Np
b246ICIgKyBleHByKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0K
CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGV4cHIudG9TdHJpbmcoKSAr
ICIgPSAiICsgZXhwci5ldmFsKG5ldyBBcnJheUxpc3QoKSkpOwogICAgfQp9
CgpjbGFzcyBUb2tlbml6ZXIKewogICAgcHJpdmF0ZSBSZWFkZXIgaW47CiAg
ICBwcml2YXRlIFN0cmluZ0J1ZmZlciBzYiA9IG5ldyBTdHJpbmdCdWZmZXIo
KTsKICAgIFRva2VuaXplcihSZWFkZXIgaW4pIHsgdGhpcy5pbiA9IGluOyB9
CgogICAgc3RhdGljIGJvb2xlYW4gaXNTcGVjaWFsVG9rZW4oU3RyaW5nIHRv
a2VuKQogICAgewogICAgICAgIHJldHVybiB0b2tlbi5sZW5ndGgoKSA9PSAx
ICYmIGlzU3BlY2lhbFRva2VuKChpbnQpIHRva2VuLmNoYXJBdCgwKSk7CiAg
ICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc1NwZWNpYWxUb2tl
bihpbnQgYykKICAgIHsKICAgICAgICBzd2l0Y2ggKGMpIHsKICAgICAgICBj
YXNlICc9JzogY2FzZSAnLic6CiAgICAgICAgY2FzZSAnPCc6IGNhc2UgJz4n
OgogICAgICAgIGNhc2UgJygnOiBjYXNlICcpJzogY2FzZSAnLCc6IGNhc2Ug
JyYnOiBjYXNlICchJzoKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgZGVmYXVsdDoKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
IH0KICAgIH0KCiAgICBwcml2YXRlIGJvb2xlYW4gaXNJZGVudGlmaWVyKGlu
dCBjKQogICAgewogICAgICAgIHJldHVybiBjID49IDAgJiYgIUNoYXJhY3Rl
ci5pc1doaXRlc3BhY2UoKGNoYXIpIGMpCiAgICAgICAgICAgICYmICFpc1Nw
ZWNpYWxUb2tlbihjKSAmJiBjICE9ICciJzsKICAgIH0KCiAgICBwcml2YXRl
IHZvaWQgc2tpcENvbW1lbnQoKSB0aHJvd3MgRXhjZXB0aW9uCiAgICB7CiAg
ICAgICAgaW50IGMgPSBpbi5yZWFkKCk7CiAgICAgICAgd2hpbGUgKGMgPj0g
MCAmJiBjICE9ICciJykKICAgICAgICAgICAgYyA9IGluLnJlYWQoKTsKICAg
ICAgICBpZiAoYyA8IDApCiAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRp
b24oInVudGVybWluYXRlZCBjb21tZW50Iik7CiAgICB9CgogICAgcHJpdmF0
ZSBTdHJpbmcgZ2V0QnVmZmVyKCkKICAgIHsKICAgICAgICBTdHJpbmcgcmVz
dWx0ID0gc2IudG9TdHJpbmcoKTsKICAgICAgICBzYi5zZXRMZW5ndGgoMCk7
CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgIH0KCiAgICBTdHJpbmcgbmV4
dCgpIHRocm93cyBFeGNlcHRpb24KICAgIHsKICAgICAgICBpZiAoc2IubGVu
Z3RoKCkgPiAwKSB7CiAgICAgICAgICAgIHJldHVybiBnZXRCdWZmZXIoKTsK
ICAgICAgICB9CiAgICAgICAgaW50IGMgPSBpbi5yZWFkKCk7CiAgICAgICAg
Zm9yICg7OyBjID0gaW4ucmVhZCgpKSB7CiAgICAgICAgICAgIGlmIChjIDwg
MCkgewogICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAg
IH0gZWxzZSBpZiAoYyA9PSAnIicpIHsKICAgICAgICAgICAgICAgIHNraXBD
b21tZW50KCk7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
ICAgfSBlbHNlIGlmIChpc1NwZWNpYWxUb2tlbihjKSkgewogICAgICAgICAg
ICAgICAgcmV0dXJuIFN0cmluZy52YWx1ZU9mKChjaGFyKSBjKTsKICAgICAg
ICAgICAgfSBlbHNlIGlmIChpc0lkZW50aWZpZXIoYykpIHsKICAgICAgICAg
ICAgICAgIHNiLmFwcGVuZCgoY2hhcikgYyk7CiAgICAgICAgICAgICAgICBm
b3IgKGMgPSBpbi5yZWFkKCk7OyBjID0gaW4ucmVhZCgpKSB7CiAgICAgICAg
ICAgICAgICAgICAgaWYgKGMgPCAwKSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBnZXRCdWZmZXIoKTsKICAgICAgICAgICAgICAgICAgICB9
IGVsc2UgaWYgKGMgPT0gJyInKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
IHNraXBDb21tZW50KCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBnZXRCdWZmZXIoKTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYg
KGlzU3BlY2lhbFRva2VuKGMpKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
IFN0cmluZyByZXN1bHQgPSBnZXRCdWZmZXIoKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgc2IuYXBwZW5kKChjaGFyKSBjKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgICAgICAgICB9
IGVsc2UgaWYgKCFpc0lkZW50aWZpZXIoYykpIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGdldEJ1ZmZlcigpOwogICAgICAgICAgICAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNiLmFwcGVu
ZCgoY2hhcikgYyk7CiAgICAgICAgICAgICAgICAgICAgfSAKICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKY2xh
c3MgRnVuY3Rpb24KewogICAgU3RyaW5nIG5hbWU7CiAgICBpbnQgbmFyZ3M7
CiAgICBwcml2YXRlIEV4cHIgYm9keTsKICAgIHByaXZhdGUgYm9vbGVhbiBy
ZXNvbHZlZCA9IGZhbHNlOwoKICAgIEZ1bmN0aW9uKEFycmF5TGlzdCB0b2tl
bnMpIHRocm93cyBFeGNlcHRpb24KICAgIHsKICAgICAgICBpZiAodG9rZW5z
LmlzRW1wdHkoKSkKICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNl
cHRpb24oKTsKICAgICAgICBuYW1lID0gKFN0cmluZykgdG9rZW5zLnJlbW92
ZSgwKTsKICAgICAgICBpZiAoVG9rZW5pemVyLmlzU3BlY2lhbFRva2VuKG5h
bWUpKQogICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCJpbGxlZ2Fs
IGZ1bmN0aW9uIG5hbWU6ICIgKyBuYW1lKTsKICAgICAgICBBcnJheUxpc3Qg
Zm9ybWFscyA9IG5ldyBBcnJheUxpc3QoKTsKICAgICAgICBmb3IgKDs7KSB7
CiAgICAgICAgICAgIGlmICh0b2tlbnMuaXNFbXB0eSgpKQogICAgICAgICAg
ICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigiaWxsZWdhbCBmdW5jdGlvbiBz
cGVjaWZpY2F0aW9uOiAiICsgbmFtZSk7CiAgICAgICAgICAgIFN0cmluZyB0
b2tlbiA9IChTdHJpbmcpIHRva2Vucy5yZW1vdmUoMCk7CiAgICAgICAgICAg
IGlmICh0b2tlbi5lcXVhbHMoIj0iKSkKICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICBpZiAoVG9rZW5pemVyLmlzU3BlY2lhbFRva2VuKHRv
a2VuKSkKICAgICAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oImls
bGVnYWwgZnVuY3Rpb24gcGFyYW1ldGVyOiAiICsgbmFtZSArICI6ICIgKyB0
b2tlbik7CiAgICAgICAgICAgIGlmICh0b2tlbi5lcXVhbHMobmFtZSkgfHwg
Zm9ybWFscy5jb250YWlucyh0b2tlbikpCiAgICAgICAgICAgICAgICB0aHJv
dyBuZXcgRXhjZXB0aW9uKCJhbWJpZ3VvdXMgZnVuY3Rpb24gcGFyYW1ldGVy
OiAiICsgbmFtZSArICI6ICIgKyB0b2tlbik7CiAgICAgICAgICAgIGZvcm1h
bHMuYWRkKHRva2VuKTsKICAgICAgICB9CiAgICAgICAgbmFyZ3MgPSBmb3Jt
YWxzLnNpemUoKTsKICAgICAgICBib2R5ID0gRXhwci5wYXJzZShmb3JtYWxz
LCB0b2tlbnMpOwogICAgICAgIGlmIChib2R5ID09IG51bGwgfHwgIXRva2Vu
cy5pc0VtcHR5KCkpCiAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24o
ImlsbGVnYWwgZnVuY3Rpb24gZGVmaW5pdGlvbjogIiArIG5hbWUpOwogICAg
fQoKICAgIHByaXZhdGUgYm9vbGVhbiByZXNvbHZpbmcgPSBmYWxzZTsKICAg
IHZvaWQgcmVzb2x2ZSgpIHRocm93cyBFeGNlcHRpb24KICAgIHsKICAgICAg
ICBpZiAocmVzb2x2aW5nKQogICAgICAgICAgICByZXR1cm47CiAgICAgICAg
dHJ5IHsKICAgICAgICAgICAgcmVzb2x2aW5nID0gdHJ1ZTsKICAgICAgICAg
ICAgaWYgKHJlc29sdmVkKQogICAgICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICAgICBpZiAoYm9keS5yZXNvbHZlZCgpKSB7CiAgICAgICAgICAgICAg
ICByZXNvbHZlZCA9IHRydWU7CiAgICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGNvbnNlci5zcGV3KQogICAg
ICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJyZXNvbHZpbmcgZnVu
Y3Rpb246ICIgKyB0aGlzKTsKICAgICAgICAgICAgQXJyYXlMaXN0IHJlc29s
dmVkQm9keSA9IGJvZHkucmVzb2x2ZSgpOwogICAgICAgICAgICBpZiAocmVz
b2x2ZWRCb2R5ICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIGlmIChyZXNv
bHZlZEJvZHkuc2l6ZSgpICE9IDEpCiAgICAgICAgICAgICAgICAgICAgdGhy
b3cgbmV3IEV4Y2VwdGlvbigicmVzb2x2ZSBlcnJvcjogIiArIG5hbWUpOwog
ICAgICAgICAgICAgICAgYm9keSA9IChFeHByKSByZXNvbHZlZEJvZHkuZ2V0
KDApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChib2R5LnJlc29s
dmVkKCkpIHsKICAgICAgICAgICAgICAgIHJlc29sdmVkID0gdHJ1ZTsKICAg
ICAgICAgICAgfQogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIHJl
c29sdmluZyA9IGZhbHNlOwogICAgICAgIH0KICAgIH0KCiAgICBib29sZWFu
IHJlc29sdmVkKCkKICAgIHsKICAgICAgICBpZiAoIXJlc29sdmluZykKICAg
ICAgICAgICAgcmV0dXJuIHJlc29sdmVkOwogICAgICAgIHJldHVybiB0cnVl
OwogICAgfQoKICAgIHByaXZhdGUgVmFsIG1lbW8gPSBudWxsOwogICAgVmFs
IGV2YWwoQXJyYXlMaXN0IHBhcmFtcykgdGhyb3dzIEV4Y2VwdGlvbgogICAg
ewogICAgICAgIHJlc29sdmUoKTsKICAgICAgICBpZiAoIXJlc29sdmVkKCkp
CiAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oInVucmVzb2x2ZWQg
ZnVuY3Rpb24gYm9keTogIiArIG5hbWUpOwogICAgICAgIGlmIChuYXJncyAh
PSAwKQogICAgICAgICAgICByZXR1cm4gYm9keS5ldmFsKHBhcmFtcyk7CiAg
ICAgICAgaWYgKG1lbW8gPT0gbnVsbCkKICAgICAgICAgICAgbWVtbyA9IGJv
ZHkuZXZhbChwYXJhbXMpOwogICAgICAgIHJldHVybiBtZW1vOwogICAgfQoK
ICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKQogICAgewogICAgICAgIFN0
cmluZ0J1ZmZlciBzYiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKICAgICAgICBz
Yi5hcHBlbmQobmFtZSkuYXBwZW5kKCcgJyk7CiAgICAgICAgZm9yIChpbnQg
aSA9IDA7IGkgPCBuYXJnczsgaSsrKQogICAgICAgICAgICBzYi5hcHBlbmQo
JyInKS5hcHBlbmQoaSkuYXBwZW5kKCcgJyk7CiAgICAgICAgc2IuYXBwZW5k
KCI9ICIpLmFwcGVuZChib2R5LnRvU3RyaW5nKCkpOwogICAgICAgIHJldHVy
biBzYi50b1N0cmluZygpOwogICAgfQp9CgphYnN0cmFjdCBjbGFzcyBFeHBy
CnsKICAgIGFic3RyYWN0IGJvb2xlYW4gcmVzb2x2ZWQoKSB0aHJvd3MgRXhj
ZXB0aW9uOwogICAgYWJzdHJhY3QgQXJyYXlMaXN0IHJlc29sdmUoKSB0aHJv
d3MgRXhjZXB0aW9uOwogICAgYWJzdHJhY3QgVmFsIGV2YWwoQXJyYXlMaXN0
IHBhcmFtcykgdGhyb3dzIEV4Y2VwdGlvbjsKCiAgICBzdGF0aWMgRXhwciBw
YXJzZShBcnJheUxpc3QgZm9ybWFscywgQXJyYXlMaXN0IHRva2VucykgdGhy
b3dzIEV4Y2VwdGlvbgogICAgewogICAgICAgIEFycmF5TGlzdCB1bnJlc29s
dmVkID0gbmV3IEFycmF5TGlzdCgpOwogICAgICAgIGZvciAoOzspIHsKICAg
ICAgICAgICAgaWYgKHRva2Vucy5pc0VtcHR5KCkpCiAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgU3RyaW5nIHRva2VuID0gKFN0cmluZykg
dG9rZW5zLmdldCgwKTsKICAgICAgICAgICAgaWYgKGZvcm1hbHMuY29udGFp
bnModG9rZW4pKSB7CiAgICAgICAgICAgICAgICB0b2tlbnMucmVtb3ZlKDAp
OwogICAgICAgICAgICAgICAgRXhwciBleHByID0gbmV3IEV4cHJQYXJhbShm
b3JtYWxzLmluZGV4T2YodG9rZW4pKTsKICAgICAgICAgICAgICAgIGlmICh1
bnJlc29sdmVkLmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICAgICByZXR1
cm4gZXhwcjsKICAgICAgICAgICAgICAgIHVucmVzb2x2ZWQuYWRkKGV4cHIp
OwogICAgICAgICAgICB9IGVsc2UgaWYgKHRva2VuLmVxdWFscygiLCIpCiAg
ICAgICAgICAgICAgICAgICAgICAgfHwgdG9rZW4uZXF1YWxzKCImIikKICAg
ICAgICAgICAgICAgICAgICAgICB8fCB0b2tlbi5lcXVhbHMoIiEiKQogICAg
ICAgICAgICAgICAgICAgICAgIHx8IHRva2VuLmVxdWFscygiKSIpKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAodW5yZXNvbHZlZC5pc0Vt
cHR5KCkpCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfSBlbHNlIGlmICghdG9r
ZW4uZXF1YWxzKCIoIikpIHsKICAgICAgICAgICAgICAgIHRva2Vucy5yZW1v
dmUoMCk7CiAgICAgICAgICAgICAgICB1bnJlc29sdmVkLmFkZCh0b2tlbik7
CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0b2tlbnMu
cmVtb3ZlKDApOwogICAgICAgICAgICAgICAgQXJyYXlMaXN0IGxlZnQgPSBu
ZXcgQXJyYXlMaXN0KCk7CiAgICAgICAgICAgICAgICBmb3IgKEV4cHIgYXJn
ID0gcGFyc2UoZm9ybWFscywgdG9rZW5zKTsKICAgICAgICAgICAgICAgICAg
ICAgYXJnICE9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgIGFyZyA9IHBh
cnNlKGZvcm1hbHMsIHRva2VucykpCiAgICAgICAgICAgICAgICAgICAgbGVm
dC5hZGQoYXJnKTsKICAgICAgICAgICAgICAgIGlmICh0b2tlbnMuaXNFbXB0
eSgpKQogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24o
InVubWF0Y2hlZCAoIik7CiAgICAgICAgICAgICAgICB0b2tlbiA9IChTdHJp
bmcpIHRva2Vucy5yZW1vdmUoMCk7CiAgICAgICAgICAgICAgICBFeHByIGV4
cHI7CiAgICAgICAgICAgICAgICBpZiAodG9rZW4uZXF1YWxzKCIpIikpIHsK
ICAgICAgICAgICAgICAgICAgICBleHByID0gbmV3IEV4cHJVbmlvbihsZWZ0
KTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAg
ICAgQXJyYXlMaXN0IHJpZ2h0ID0gbmV3IEFycmF5TGlzdCgpOwogICAgICAg
ICAgICAgICAgICAgIGZvciAoRXhwciBhcmcgPSBwYXJzZShmb3JtYWxzLCB0
b2tlbnMpOwogICAgICAgICAgICAgICAgICAgICAgICAgYXJnICE9IG51bGw7
CiAgICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBwYXJzZShmb3JtYWxz
LCB0b2tlbnMpKQogICAgICAgICAgICAgICAgICAgICAgICByaWdodC5hZGQo
YXJnKTsKICAgICAgICAgICAgICAgICAgICBpZiAodG9rZW5zLmlzRW1wdHko
KSkKICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlv
bigidW5tYXRjaGVkICgiKTsKICAgICAgICAgICAgICAgICAgICBpZiAoIXRv
a2Vucy5yZW1vdmUoMCkuZXF1YWxzKCIpIikpCiAgICAgICAgICAgICAgICAg
ICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oInVubWF0Y2hlZCAoIik7CiAg
ICAgICAgICAgICAgICAgICAgaWYgKHRva2VuLmVxdWFscygiLCIpKQogICAg
ICAgICAgICAgICAgICAgICAgICBleHByID0gbmV3IEV4cHJDb25zKGxlZnQs
IHJpZ2h0KTsKICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0b2tlbi5l
cXVhbHMoIiYiKSkKICAgICAgICAgICAgICAgICAgICAgICAgZXhwciA9IG5l
dyBFeHBySW50ZXJzZWN0KGxlZnQsIHJpZ2h0KTsKICAgICAgICAgICAgICAg
ICAgICBlbHNlIGlmICh0b2tlbi5lcXVhbHMoIiEiKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgZXhwciA9IG5ldyBFeHByRGlmZmVyZW5jZShsZWZ0LCBy
aWdodCk7CiAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigpOwogICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKHVucmVzb2x2ZWQu
aXNFbXB0eSgpKQogICAgICAgICAgICAgICAgICAgIHJldHVybiBleHByOwog
ICAgICAgICAgICAgICAgdW5yZXNvbHZlZC5hZGQoZXhwcik7CiAgICAgICAg
ICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIG5ldyBFeHByVW5yZXNv
bHZlZCh1bnJlc29sdmVkKTsKICAgIH0KCiAgICBzdGF0aWMgQXJyYXlMaXN0
IHJlc29sdmVBcmdzKEFycmF5TGlzdCBhcmdzKSB0aHJvd3MgRXhjZXB0aW9u
CiAgICB7CiAgICAgICAgQXJyYXlMaXN0IHJlc29sdmVkQXJncyA9IG5ldyBB
cnJheUxpc3QoKTsKICAgICAgICBmb3IgKEl0ZXJhdG9yIGkgPSBhcmdzLml0
ZXJhdG9yKCk7IGkuaGFzTmV4dCgpOyApIHsKICAgICAgICAgICAgRXhwciBl
eHByID0gKEV4cHIpIGkubmV4dCgpOwogICAgICAgICAgICBBcnJheUxpc3Qg
cmVzb2x2ZWRFeHByID0gZXhwci5yZXNvbHZlKCk7CiAgICAgICAgICAgIGlm
IChyZXNvbHZlZEV4cHIgPT0gbnVsbCkKICAgICAgICAgICAgICAgIHJlc29s
dmVkQXJncy5hZGQoZXhwcik7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgIHJlc29sdmVkQXJncy5hZGRBbGwocmVzb2x2ZWRFeHByKTsKICAg
ICAgICB9CiAgICAgICAgcmV0dXJuIHJlc29sdmVkQXJnczsKICAgIH0KCiAg
ICBzdGF0aWMgVmFsIGV2YWxVbmlvbihBcnJheUxpc3QgcGFyYW1zLCBBcnJh
eUxpc3QgZXhwcnMpIHRocm93cyBFeGNlcHRpb24KICAgIHsKICAgICAgICBB
cnJheUxpc3QgdmFscyA9IG5ldyBBcnJheUxpc3QoKTsKICAgICAgICBmb3Ig
KEl0ZXJhdG9yIGkgPSBleHBycy5pdGVyYXRvcigpOyBpLmhhc05leHQoKTsg
KQogICAgICAgICAgICB2YWxzLmFkZCgoKEV4cHIpIGkubmV4dCgpKS5ldmFs
KHBhcmFtcykpOwogICAgICAgIHJldHVybiBWYWwudW5pb24odmFscyk7CiAg
ICB9Cn0KCmNsYXNzIEV4cHJQYXJhbSBleHRlbmRzIEV4cHIKewogICAgcHJp
dmF0ZSBpbnQgcG9zOwogICAgRXhwclBhcmFtKGludCBwb3MpIHsgdGhpcy5w
b3MgPSBwb3M7IH0KICAgIGJvb2xlYW4gcmVzb2x2ZWQoKSB7IHJldHVybiB0
cnVlOyB9CiAgICBBcnJheUxpc3QgcmVzb2x2ZSgpIHsgcmV0dXJuIG51bGw7
IH0KICAgIFZhbCBldmFsKEFycmF5TGlzdCBwYXJhbXMpIHsgcmV0dXJuIChW
YWwpIHBhcmFtcy5nZXQocG9zKTsgfQogICAgcHVibGljIFN0cmluZyB0b1N0
cmluZygpIHsgcmV0dXJuICJcIiIgKyBwb3M7IH0KfQoKY2xhc3MgRXhwclVu
aW9uIGV4dGVuZHMgRXhwcgp7CiAgICBwcml2YXRlIEFycmF5TGlzdCBhcmdz
OwoKICAgIEV4cHJVbmlvbihBcnJheUxpc3QgYXJncykgeyB0aGlzLmFyZ3Mg
PSBhcmdzOyB9CgogICAgYm9vbGVhbiByZXNvbHZlZCgpIHRocm93cyBFeGNl
cHRpb24KICAgIHsKICAgICAgICBmb3IgKEl0ZXJhdG9yIGkgPSBhcmdzLml0
ZXJhdG9yKCk7IGkuaGFzTmV4dCgpOyApCiAgICAgICAgICAgIGlmICghKChF
eHByKSBpLm5leHQoKSkucmVzb2x2ZWQoKSkgewogICAgICAgICAgICAgICAg
aWYgKGNvbnNlci5zcGV3KQogICAgICAgICAgICAgICAgICAgIFN5c3RlbS5v
dXQucHJpbnRsbigidW5yZXNvbHZlZCB1bmlvbiBleHByOiAiICsgdGhpcyk7
CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0K
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KCiAgICBBcnJheUxpc3QgcmVz
b2x2ZSgpIHRocm93cyBFeGNlcHRpb24KICAgIHsKICAgICAgICBpZiAoY29u
c2VyLnNwZXcpCiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigicmVz
b2x2aW5nICgpOiAiICsgdGhpcyk7CiAgICAgICAgYXJncyA9IHJlc29sdmVB
cmdzKGFyZ3MpOwogICAgICAgIHJldHVybiBudWxsOwogICAgfQoKICAgIFZh
bCBldmFsKEFycmF5TGlzdCBwYXJhbXMpIHRocm93cyBFeGNlcHRpb24KICAg
IHsKICAgICAgICByZXR1cm4gZXZhbFVuaW9uKHBhcmFtcywgYXJncyk7CiAg
ICB9CgogICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpCiAgICB7CiAgICAg
ICAgU3RyaW5nQnVmZmVyIHNiID0gbmV3IFN0cmluZ0J1ZmZlcigpOwogICAg
ICAgIHNiLmFwcGVuZCgnKCcpOwogICAgICAgIFN0cmluZyBzcCA9ICIiOwog
ICAgICAgIGZvciAoSXRlcmF0b3IgaSA9IGFyZ3MuaXRlcmF0b3IoKTsgaS5o
YXNOZXh0KCk7ICkgewogICAgICAgICAgICBzYi5hcHBlbmQoc3ApLmFwcGVu
ZChpLm5leHQoKS50b1N0cmluZygpKTsKICAgICAgICAgICAgc3AgPSAiICI7
CiAgICAgICAgfQogICAgICAgIHNiLmFwcGVuZCgnKScpOwogICAgICAgIHJl
dHVybiBzYi50b1N0cmluZygpOwogICAgfQp9CgphYnN0cmFjdCBjbGFzcyBF
eHByUGFpciBleHRlbmRzIEV4cHIKewogICAgcHJpdmF0ZSBBcnJheUxpc3Qg
bGVmdDsKICAgIHByaXZhdGUgQXJyYXlMaXN0IHJpZ2h0OwoKICAgIEV4cHJQ
YWlyKEFycmF5TGlzdCBsZWZ0LCBBcnJheUxpc3QgcmlnaHQpCiAgICB7CiAg
ICAgICAgdGhpcy5sZWZ0ID0gbGVmdDsKICAgICAgICB0aGlzLnJpZ2h0ID0g
cmlnaHQ7CiAgICB9CgogICAgYm9vbGVhbiByZXNvbHZlZCgpIHRocm93cyBF
eGNlcHRpb24KICAgIHsKICAgICAgICBmb3IgKEl0ZXJhdG9yIGkgPSBsZWZ0
Lml0ZXJhdG9yKCk7IGkuaGFzTmV4dCgpOyApCiAgICAgICAgICAgIGlmICgh
KChFeHByKSBpLm5leHQoKSkucmVzb2x2ZWQoKSkgewogICAgICAgICAgICAg
ICAgaWYgKGNvbnNlci5zcGV3KQogICAgICAgICAgICAgICAgICAgIFN5c3Rl
bS5vdXQucHJpbnRsbigidW5yZXNvbHZlZCBwYWlyIGV4cHIgKGxlZnQpOiAi
ICsgdGhpcyk7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgICAgIH0KICAgICAgICBmb3IgKEl0ZXJhdG9yIGkgPSByaWdodC5pdGVy
YXRvcigpOyBpLmhhc05leHQoKTsgKQogICAgICAgICAgICBpZiAoISgoRXhw
cikgaS5uZXh0KCkpLnJlc29sdmVkKCkpIHsKICAgICAgICAgICAgICAgIGlm
IChjb25zZXIuc3BldykKICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0
LnByaW50bG4oInVucmVzb2x2ZWQgcGFpciBleHByIChyaWdodCk6ICIgKyB0
aGlzKTsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
ICAgfQogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKICAgIEFycmF5TGlz
dCByZXNvbHZlKCkgdGhyb3dzIEV4Y2VwdGlvbgogICAgewogICAgICAgIGlm
IChjb25zZXIuc3BldykKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxu
KCJyZXNvbHZpbmcgKCwpIG9yICghKSBvciAoJik6ICIgKyB0aGlzKTsKICAg
ICAgICBsZWZ0ID0gcmVzb2x2ZUFyZ3MobGVmdCk7CiAgICAgICAgcmlnaHQg
PSByZXNvbHZlQXJncyhyaWdodCk7CiAgICAgICAgcmV0dXJuIG51bGw7CiAg
ICB9CgogICAgYWJzdHJhY3QgY2hhciBzZXBhcmF0b3IoKTsKCiAgICBwdWJs
aWMgU3RyaW5nIHRvU3RyaW5nKCkKICAgIHsKICAgICAgICBTdHJpbmdCdWZm
ZXIgc2IgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CiAgICAgICAgc2IuYXBwZW5k
KCcoJyk7CiAgICAgICAgU3RyaW5nIHNwID0gIiI7CiAgICAgICAgZm9yIChJ
dGVyYXRvciBpID0gbGVmdC5pdGVyYXRvcigpOyBpLmhhc05leHQoKTsgKSB7
CiAgICAgICAgICAgIHNiLmFwcGVuZChzcCkuYXBwZW5kKGkubmV4dCgpLnRv
U3RyaW5nKCkpOwogICAgICAgICAgICBzcCA9ICIgIjsKICAgICAgICB9CiAg
ICAgICAgc2IuYXBwZW5kKHNlcGFyYXRvcigpKTsKICAgICAgICBzcCA9ICIi
OwogICAgICAgIGZvciAoSXRlcmF0b3IgaSA9IHJpZ2h0Lml0ZXJhdG9yKCk7
IGkuaGFzTmV4dCgpOyApIHsKICAgICAgICAgICAgc2IuYXBwZW5kKHNwKS5h
cHBlbmQoaS5uZXh0KCkudG9TdHJpbmcoKSk7CiAgICAgICAgICAgIHNwID0g
IiAiOwogICAgICAgIH0KICAgICAgICBzYi5hcHBlbmQoJyknKTsKICAgICAg
ICByZXR1cm4gc2IudG9TdHJpbmcoKTsKICAgIH0KCiAgICBWYWwgZXZhbChB
cnJheUxpc3QgcGFyYW1zKSB0aHJvd3MgRXhjZXB0aW9uCiAgICB7CiAgICAg
ICAgcmV0dXJuIGV2YWwoZXZhbFVuaW9uKHBhcmFtcywgbGVmdCksIGV2YWxV
bmlvbihwYXJhbXMsIHJpZ2h0KSk7CiAgICB9CgogICAgYWJzdHJhY3QgVmFs
IGV2YWwoVmFsIGxlZnQsIFZhbCByaWdodCkgdGhyb3dzIEV4Y2VwdGlvbjsK
fQoKY2xhc3MgRXhwckNvbnMgZXh0ZW5kcyBFeHByUGFpcgp7CiAgICBFeHBy
Q29ucyhBcnJheUxpc3QgbGVmdCwgQXJyYXlMaXN0IHJpZ2h0KSB7IHN1cGVy
KGxlZnQsIHJpZ2h0KTsgfQoKICAgIGNoYXIgc2VwYXJhdG9yKCkgeyByZXR1
cm4gJywnOyB9CgogICAgVmFsIGV2YWwoVmFsIGxlZnQsIFZhbCByaWdodCkg
dGhyb3dzIEV4Y2VwdGlvbgogICAgewogICAgICAgIHJldHVybiBWYWwuY29u
cyhsZWZ0LCByaWdodCk7CiAgICB9Cn0KCmNsYXNzIEV4cHJJbnRlcnNlY3Qg
ZXh0ZW5kcyBFeHByUGFpcgp7CiAgICBFeHBySW50ZXJzZWN0KEFycmF5TGlz
dCBsZWZ0LCBBcnJheUxpc3QgcmlnaHQpIHsgc3VwZXIobGVmdCwgcmlnaHQp
OyB9CgogICAgY2hhciBzZXBhcmF0b3IoKSB7IHJldHVybiAnJic7IH0KCiAg
ICBWYWwgZXZhbChWYWwgbGVmdCwgVmFsIHJpZ2h0KSB0aHJvd3MgRXhjZXB0
aW9uCiAgICB7CiAgICAgICAgcmV0dXJuIFZhbC5pbnRlcnNlY3QobGVmdCwg
cmlnaHQpOwogICAgfQp9CgpjbGFzcyBFeHByRGlmZmVyZW5jZSBleHRlbmRz
IEV4cHJQYWlyCnsKICAgIEV4cHJEaWZmZXJlbmNlKEFycmF5TGlzdCBsZWZ0
LCBBcnJheUxpc3QgcmlnaHQpIHsgc3VwZXIobGVmdCwgcmlnaHQpOyB9Cgog
ICAgY2hhciBzZXBhcmF0b3IoKSB7IHJldHVybiAnISc7IH0KCiAgICBWYWwg
ZXZhbChWYWwgbGVmdCwgVmFsIHJpZ2h0KSB0aHJvd3MgRXhjZXB0aW9uCiAg
ICB7CiAgICAgICAgcmV0dXJuIFZhbC5kaWZmZXJlbmNlKGxlZnQsIHJpZ2h0
KTsKICAgIH0KfQoKYWJzdHJhY3QgY2xhc3MgRXhwckNhckNkciBleHRlbmRz
IEV4cHIKewogICAgcHJpdmF0ZSBFeHByIGFyZzsKCiAgICBFeHByQ2FyQ2Ry
KEV4cHIgYXJnKQogICAgewogICAgICAgIGlmIChhcmcgaW5zdGFuY2VvZiBF
eHByVW5yZXNvbHZlZCkKICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVF
eGNlcHRpb24oKTsKICAgICAgICB0aGlzLmFyZyA9IGFyZzsKICAgIH0KCiAg
ICBib29sZWFuIHJlc29sdmVkKCkgdGhyb3dzIEV4Y2VwdGlvbgogICAgewog
ICAgICAgIGJvb2xlYW4gcmVzb2x2ZWQgPSBhcmcucmVzb2x2ZWQoKTsKICAg
ICAgICBpZiAoIXJlc29sdmVkKQogICAgICAgICAgICBpZiAoY29uc2VyLnNw
ZXcpCiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInVucmVz
b2x2ZWQgPCBvciA+OiAiICsgdGhpcyk7CiAgICAgICAgcmV0dXJuIHJlc29s
dmVkOwogICAgfQoKICAgIEFycmF5TGlzdCByZXNvbHZlKCkgdGhyb3dzIEV4
Y2VwdGlvbgogICAgewogICAgICAgIGlmIChjb25zZXIuc3BldykKICAgICAg
ICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJyZXNvbHZpbmcgPCBvciA+OiAi
ICsgdGhpcyk7CiAgICAgICAgYXJnLnJlc29sdmUoKTsKICAgICAgICByZXR1
cm4gbnVsbDsKICAgIH0KCiAgICBhYnN0cmFjdCBjaGFyIG9wZXJhdG9yKCk7
CgogICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsgcmV0dXJuIG9wZXJh
dG9yKCkgKyBhcmcudG9TdHJpbmcoKTsgfQoKICAgIFZhbCBldmFsKEFycmF5
TGlzdCBwYXJhbXMpIHRocm93cyBFeGNlcHRpb24KICAgIHsKICAgICAgICBy
ZXR1cm4gZXZhbChhcmcuZXZhbChwYXJhbXMpKTsKICAgIH0KCiAgICBhYnN0
cmFjdCBWYWwgZXZhbChWYWwgdmFsKSB0aHJvd3MgRXhjZXB0aW9uOwp9Cgpj
bGFzcyBFeHByQ2FyIGV4dGVuZHMgRXhwckNhckNkcgp7CiAgICBFeHByQ2Fy
KEV4cHIgYXJnKSB7IHN1cGVyKGFyZyk7IH0KICAgIGNoYXIgb3BlcmF0b3Io
KSB7IHJldHVybiAnPCc7IH0KICAgIFZhbCBldmFsKFZhbCB2YWwpIHRocm93
cyBFeGNlcHRpb24geyByZXR1cm4gdmFsLmxlZnQoKTsgfQp9CgpjbGFzcyBF
eHByQ2RyIGV4dGVuZHMgRXhwckNhckNkcgp7CiAgICBFeHByQ2RyKEV4cHIg
YXJnKSB7IHN1cGVyKGFyZyk7IH0KICAgIGNoYXIgb3BlcmF0b3IoKSB7IHJl
dHVybiAnPic7IH0KICAgIFZhbCBldmFsKFZhbCB2YWwpIHRocm93cyBFeGNl
cHRpb24geyByZXR1cm4gdmFsLnJpZ2h0KCk7IH0KfQoKY2xhc3MgRXhwclVu
cmVzb2x2ZWQgZXh0ZW5kcyBFeHByCnsKICAgIHByaXZhdGUgQXJyYXlMaXN0
IGV4cHJzOwoKICAgIEV4cHJVbnJlc29sdmVkKEFycmF5TGlzdCBleHBycykg
eyB0aGlzLmV4cHJzID0gZXhwcnM7IH0KCiAgICBib29sZWFuIHJlc29sdmVk
KCkKICAgIHsKICAgICAgICBpZiAoY29uc2VyLnNwZXcpCiAgICAgICAgICAg
IFN5c3RlbS5vdXQucHJpbnRsbigidW5yZXNvbHZlZDogIiArIHRoaXMpOwog
ICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICBBcnJheUxpc3QgcmVz
b2x2ZSgpIHRocm93cyBFeGNlcHRpb24KICAgIHsKICAgICAgICBpZiAoY29u
c2VyLnNwZXcpCiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigicmVz
b2x2aW5nIHVucmVzb2x2ZWQ6ICIgKyB0aGlzKTsKCiAgICAgICAgaWYgKCEo
ZXhwcnMuZ2V0KDApIGluc3RhbmNlb2YgU3RyaW5nKSkKICAgICAgICAgICAg
dGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oKTsKCiAgICAgICAgQXJyYXlM
aXN0IHN0YWNrID0gbmV3IEFycmF5TGlzdCgpOwogICAgICAgIGZvciAoaW50
IGkgPSBleHBycy5zaXplKCktMTsgaSA+PSAwOyBpLS0pIHsKICAgICAgICAg
ICAgaWYgKGV4cHJzLmdldChpKSBpbnN0YW5jZW9mIEV4cHIpIHsKICAgICAg
ICAgICAgICAgIEV4cHIgZXhwciA9IChFeHByKSBleHBycy5nZXQoaSk7CiAg
ICAgICAgICAgICAgICBBcnJheUxpc3QgZXhwclJlc29sdmVkID0gZXhwci5y
ZXNvbHZlKCk7CiAgICAgICAgICAgICAgICBpZiAoZXhwclJlc29sdmVkID09
IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICBzdGFjay5hZGQoZXhwcik7
CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAg
IENvbGxlY3Rpb25zLnJldmVyc2UoZXhwclJlc29sdmVkKTsKICAgICAgICAg
ICAgICAgICAgICBzdGFjay5hZGRBbGwoZXhwclJlc29sdmVkKTsKICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICAgICB9CiAgICAgICAgICAgIFN0cmluZyBpZCA9IChTdHJpbmcpIGV4cHJz
LmdldChpKTsKICAgICAgICAgICAgaWYgKGlkLmVxdWFscygiPCIpIHx8IGlk
LmVxdWFscygiPiIpKSB7CiAgICAgICAgICAgICAgICBpZiAoc3RhY2suc2l6
ZSgpIDwgMSkKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0
aW9uKCJyZXNvbHZlIGVycm9yOiBub3QgZW5vdWdoIGFyZ3VtZW50cyBmb3I6
ICIgKyBpZCArICIgaW46ICIgKyB0aGlzKTsKICAgICAgICAgICAgICAgIGlm
ICghKHN0YWNrLmdldChzdGFjay5zaXplKCktMSkgaW5zdGFuY2VvZiBFeHBy
KSkgewogICAgICAgICAgICAgICAgICAgIHN0YWNrLmFkZChpZCk7CiAgICAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICBFeHByIGFyZyA9IChFeHByKSBzdGFjay5yZW1vdmUo
c3RhY2suc2l6ZSgpLTEpOwogICAgICAgICAgICAgICAgaWYgKGlkLmVxdWFs
cygiPCIpKQogICAgICAgICAgICAgICAgICAgIHN0YWNrLmFkZChuZXcgRXhw
ckNhcihhcmcpKTsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg
ICAgICAgICBzdGFjay5hZGQobmV3IEV4cHJDZHIoYXJnKSk7CiAgICAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBG
dW5jdGlvbiBmID0gKEZ1bmN0aW9uKSBjb25zZXIuZGVmaW5pdGlvbnMuZ2V0
KGlkKTsKICAgICAgICAgICAgaWYgKGYgPT0gbnVsbCkgewogICAgICAgICAg
ICAgICAgc3RhY2suYWRkKGlkKTsKICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChzdGFjay5zaXplKCkg
PCBmLm5hcmdzKQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlv
bigicmVzb2x2ZSBlcnJvcjogbm90IGVub3VnaCBhcmd1bWVudHMgZm9yOiAi
ICsgaWQgKyAiIGluOiAiICsgdGhpcyk7CiAgICAgICAgICAgIGJvb2xlYW4g
ZnJlc29sdmVkID0gdHJ1ZTsKICAgICAgICAgICAgZm9yIChpbnQgaWkgPSAw
OyBpaSA8IGYubmFyZ3M7IGlpKyspCiAgICAgICAgICAgICAgICBpZiAoIShz
dGFjay5nZXQoc3RhY2suc2l6ZSgpLWlpLTEpIGluc3RhbmNlb2YgRXhwcikp
IHsKICAgICAgICAgICAgICAgICAgICBmcmVzb2x2ZWQgPSBmYWxzZTsKICAg
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgaWYgKCFmcmVzb2x2ZWQpIHsKICAgICAgICAgICAgICAgIHN0
YWNrLmFkZChpZCk7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgICAgfQogICAgICAgICAgICBBcnJheUxpc3QgZmFyZ3MgPSBuZXcgQXJy
YXlMaXN0KCk7CiAgICAgICAgICAgIGZvciAoaW50IGlpID0gMDsgaWkgPCBm
Lm5hcmdzOyBpaSsrKQogICAgICAgICAgICAgICAgZmFyZ3MuYWRkKHN0YWNr
LnJlbW92ZShzdGFjay5zaXplKCktMSkpOwogICAgICAgICAgICBzdGFjay5h
ZGQobmV3IEV4cHJGdW5jdGlvbihmLCBmYXJncykpOwogICAgICAgIH0KCiAg
ICAgICAgQ29sbGVjdGlvbnMucmV2ZXJzZShzdGFjayk7CiAgICAgICAgaWYg
KHN0YWNrLmdldCgwKSBpbnN0YW5jZW9mIFN0cmluZykgewogICAgICAgICAg
ICBleHBycyA9IHN0YWNrOwogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAg
ICAgICB9CgogICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgc3RhY2suc2l6
ZSgpOyBpKyspCiAgICAgICAgICAgIGlmIChzdGFjay5nZXQoaSkgaW5zdGFu
Y2VvZiBTdHJpbmcpIHsKICAgICAgICAgICAgICAgIGV4cHJzLmNsZWFyKCk7
CiAgICAgICAgICAgICAgICB3aGlsZSAoc3RhY2suc2l6ZSgpID4gaSkKICAg
ICAgICAgICAgICAgICAgICBleHBycy5hZGQoc3RhY2sucmVtb3ZlKGkpKTsK
ICAgICAgICAgICAgICAgIHN0YWNrLmFkZCh0aGlzKTsKICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgcmV0dXJuIHN0YWNr
OwogICAgfQoKICAgIFZhbCBldmFsKEFycmF5TGlzdCBwYXJhbXMpIHRocm93
cyBFeGNlcHRpb24KICAgIHsKICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9u
KCJjYW5ub3QgZXZhbHVhdGUgdW5yZXNvbHZlZCBzdWJleHByZXNzaW9uOiAi
ICsgdGhpcyk7CiAgICB9CgogICAgcHVibGljIFN0cmluZyB0b1N0cmluZygp
CiAgICB7CiAgICAgICAgU3RyaW5nQnVmZmVyIHNiID0gbmV3IFN0cmluZ0J1
ZmZlcigpOwogICAgICAgIHNiLmFwcGVuZCgiXCJ1bnJlc29sdmVkIik7CiAg
ICAgICAgZm9yIChJdGVyYXRvciBpID0gZXhwcnMuaXRlcmF0b3IoKTsgaS5o
YXNOZXh0KCk7ICkKICAgICAgICAgICAgc2IuYXBwZW5kKCcgJykuYXBwZW5k
KGkubmV4dCgpLnRvU3RyaW5nKCkpOwogICAgICAgIHJldHVybiBzYi50b1N0
cmluZygpOwogICAgfQp9CgpjbGFzcyBFeHByRnVuY3Rpb24gZXh0ZW5kcyBF
eHByCnsKICAgIHByaXZhdGUgRnVuY3Rpb24gZnVuYzsKICAgIHByaXZhdGUg
QXJyYXlMaXN0IGFyZ3M7CgogICAgRXhwckZ1bmN0aW9uKEZ1bmN0aW9uIGZ1
bmMsIEFycmF5TGlzdCBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uCiAgICB7CiAg
ICAgICAgdGhpcy5mdW5jID0gZnVuYzsKICAgICAgICB0aGlzLmFyZ3MgPSBh
cmdzOwogICAgICAgIGZvciAoSXRlcmF0b3IgaSA9IGFyZ3MuaXRlcmF0b3Io
KTsgaS5oYXNOZXh0KCk7ICkKICAgICAgICAgICAgaWYgKGkubmV4dCgpIGlu
c3RhbmNlb2YgRXhwclVucmVzb2x2ZWQpCiAgICAgICAgICAgICAgICB0aHJv
dyBuZXcgUnVudGltZUV4Y2VwdGlvbigpOwogICAgfQoKICAgIGJvb2xlYW4g
cmVzb2x2ZWQoKSB0aHJvd3MgRXhjZXB0aW9uCiAgICB7CiAgICAgICAgaWYg
KCFmdW5jLnJlc29sdmVkKCkpIHsKICAgICAgICAgICAgaWYgKGNvbnNlci5z
cGV3KQogICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJ1bnJl
c29sdmVkIGZ1bmN0aW9uOiAiICsgdGhpcyk7CiAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICB9CiAgICAgICAgZm9yIChJdGVyYXRvciBpID0g
YXJncy5pdGVyYXRvcigpOyBpLmhhc05leHQoKTsgKQogICAgICAgICAgICBp
ZiAoISgoRXhwcikgaS5uZXh0KCkpLnJlc29sdmVkKCkpIHsKICAgICAgICAg
ICAgICAgIGlmIChjb25zZXIuc3BldykKICAgICAgICAgICAgICAgICAgICBT
eXN0ZW0ub3V0LnByaW50bG4oInVucmVzb2x2ZWQgZnVuY3Rpb24gYXJndW1l
bnQ6ICIgKyB0aGlzKTsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgICAgfQogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKICAg
IEFycmF5TGlzdCByZXNvbHZlKCkgdGhyb3dzIEV4Y2VwdGlvbgogICAgewog
ICAgICAgIGlmIChjb25zZXIuc3BldykKICAgICAgICAgICAgU3lzdGVtLm91
dC5wcmludGxuKCJyZXNvbHZpbmcgZnVuY3Rpb246ICIgKyB0aGlzKTsKICAg
ICAgICBmdW5jLnJlc29sdmUoKTsKICAgICAgICBmb3IgKEl0ZXJhdG9yIGkg
PSBhcmdzLml0ZXJhdG9yKCk7IGkuaGFzTmV4dCgpOyApCiAgICAgICAgICAg
ICgoRXhwcikgaS5uZXh0KCkpLnJlc29sdmUoKTsKICAgICAgICByZXR1cm4g
bnVsbDsKICAgIH0KCiAgICBWYWwgZXZhbChBcnJheUxpc3QgcGFyYW1zKSB0
aHJvd3MgRXhjZXB0aW9uCiAgICB7CiAgICAgICAgQXJyYXlMaXN0IG15UGFy
YW1zID0gbmV3IEFycmF5TGlzdCgpOwogICAgICAgIGZvciAoSXRlcmF0b3Ig
aSA9IGFyZ3MuaXRlcmF0b3IoKTsgaS5oYXNOZXh0KCk7ICkgewogICAgICAg
ICAgICBWYWwgcGFyYW0gPSAoKEV4cHIpIGkubmV4dCgpKS5ldmFsKHBhcmFt
cyk7CiAgICAgICAgICAgIGlmIChwYXJhbS5lbXB0eSgpKQogICAgICAgICAg
ICAgICAgcmV0dXJuIFZhbC5FTVBUWTsKICAgICAgICAgICAgbXlQYXJhbXMu
YWRkKHBhcmFtKTsKICAgICAgICB9CiAgICAgICAgQXJyYXlMaXN0IHJlc3Vs
dHMgPSBuZXcgQXJyYXlMaXN0KCk7CiAgICAgICAgZXZhbFBlcm11dGF0aW9u
cyhteVBhcmFtcywgbmV3IEFycmF5TGlzdCgpLCByZXN1bHRzKTsKICAgICAg
ICByZXR1cm4gVmFsLnVuaW9uKHJlc3VsdHMpOwogICAgfQoKICAgIHByaXZh
dGUgdm9pZCBldmFsUGVybXV0YXRpb25zCiAgICAgICAgKEFycmF5TGlzdCBw
YXJhbXMsIEFycmF5TGlzdCBjdXJyZW50UGVybXV0YXRpb24sIEFycmF5TGlz
dCByZXN1bHRzKQogICAgICAgIHRocm93cyBFeGNlcHRpb24KICAgIHsKICAg
ICAgICBpZiAoY3VycmVudFBlcm11dGF0aW9uLnNpemUoKSA9PSBwYXJhbXMu
c2l6ZSgpKSB7CiAgICAgICAgICAgIHJlc3VsdHMuYWRkKGZ1bmMuZXZhbChj
dXJyZW50UGVybXV0YXRpb24pKTsKICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgIH0KICAgICAgICBWYWwgcGFyYW0gPSAoVmFsKSBwYXJhbXMuZ2V0KGN1
cnJlbnRQZXJtdXRhdGlvbi5zaXplKCkpOwogICAgICAgIGlmICghKHBhcmFt
IGluc3RhbmNlb2YgVmFsU2V0KSkgewogICAgICAgICAgICBjdXJyZW50UGVy
bXV0YXRpb24uYWRkKHBhcmFtKTsKICAgICAgICAgICAgZXZhbFBlcm11dGF0
aW9ucyhwYXJhbXMsIGN1cnJlbnRQZXJtdXRhdGlvbiwgcmVzdWx0cyk7CiAg
ICAgICAgICAgIGN1cnJlbnRQZXJtdXRhdGlvbi5yZW1vdmUoY3VycmVudFBl
cm11dGF0aW9uLnNpemUoKS0xKTsKICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICBmb3IgKEl0ZXJhdG9yIGkgPSAoKFZhbFNldCkgcGFyYW0pLnNldC5p
dGVyYXRvcigpOyBpLmhhc05leHQoKTsgKSB7CiAgICAgICAgICAgICAgICBj
dXJyZW50UGVybXV0YXRpb24uYWRkKGkubmV4dCgpKTsKICAgICAgICAgICAg
ICAgIGV2YWxQZXJtdXRhdGlvbnMocGFyYW1zLCBjdXJyZW50UGVybXV0YXRp
b24sIHJlc3VsdHMpOwogICAgICAgICAgICAgICAgY3VycmVudFBlcm11dGF0
aW9uLnJlbW92ZShjdXJyZW50UGVybXV0YXRpb24uc2l6ZSgpLTEpOwogICAg
ICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBTdHJpbmcg
dG9TdHJpbmcoKQogICAgewogICAgICAgIFN0cmluZ0J1ZmZlciBzYiA9IG5l
dyBTdHJpbmdCdWZmZXIoKTsKICAgICAgICBzYi5hcHBlbmQoZnVuYy5uYW1l
KTsKICAgICAgICBmb3IgKEl0ZXJhdG9yIGkgPSBhcmdzLml0ZXJhdG9yKCk7
IGkuaGFzTmV4dCgpOyApCiAgICAgICAgICAgIHNiLmFwcGVuZCgnICcpLmFw
cGVuZCgoKEV4cHIpIGkubmV4dCgpKS50b1N0cmluZygpKTsKICAgICAgICBy
ZXR1cm4gc2IudG9TdHJpbmcoKTsKICAgIH0KfQoKYWJzdHJhY3QgY2xhc3Mg
VmFsCnsKICAgIHN0YXRpYyBWYWxTZXQgRU1QVFkgPSBuZXcgVmFsU2V0KG5l
dyBIYXNoU2V0KCkpOwogICAgc3RhdGljIFZhbEJpZ0ludCBaRVJPID0gbmV3
IFZhbEJpZ0ludChCaWdJbnRlZ2VyLlpFUk8pOwoKICAgIEJpZ0ludGVnZXIg
dG9CaWdJbnRlZ2VyKCkgeyByZXR1cm4gbnVsbDsgfQogICAgYWJzdHJhY3Qg
Ym9vbGVhbiBlbXB0eSgpOwogICAgYWJzdHJhY3QgVmFsIGxlZnQoKSB0aHJv
d3MgRXhjZXB0aW9uOwogICAgYWJzdHJhY3QgVmFsIHJpZ2h0KCkgdGhyb3dz
IEV4Y2VwdGlvbjsKCiAgICBzdGF0aWMgVmFsIGNvbnMoVmFsIHZhbDEsIFZh
bCB2YWwyKSB0aHJvd3MgRXhjZXB0aW9uCiAgICB7CiAgICAgICAgaWYgKHZh
bDEuZW1wdHkoKSAmJiB2YWwyLmVtcHR5KCkpCiAgICAgICAgICAgIHJldHVy
biBWYWwuWkVSTzsKCiAgICAgICAgLyogaW5jb3JyZWN0OiB0cnkgdG8gY2Fu
b25pY2FsaXplIHNvbWUgc3VycmVhbCBpbnRlZ2Vycy4KICAgICAgICAgICBo
b3dldmVyLCBpdCdzIHVzZWZ1bCBmb3IgcGxheWluZyB3aXRoIGludGVnZXIg
YXJpdGhtZXRpYyAtLQogICAgICAgICAgIGFkZGl0aW9uLCBzdWJ0cmFjdGlv
biwgbXVsdGlwbGljYXRpb24uICAxNiArIDE2IGFuZCA0KjQgc3RpbGwKICAg
ICAgICAgICB0YWtlIGZvcmV2ZXIgdGhvdWdoLgoKICAgICAgICAgICB0byBi
ZSBjb3JyZWN0LCBvbmx5IHJlcHJlc2VudCAoLCksICgoLCksKSwgKCgoLCks
KSwpLCAuLi4KICAgICAgICAgICBhbmQgKCwoLCkpLCAoLCgsKCwpKSksIC4u
LiBhcyBWYWxCaWdJbnQsIHNpbmNlIHRoZSBjb3JyZWN0CiAgICAgICAgICAg
bGVmdCgpIGFuZCByaWdodCgpIHdpbGwgYmUgcmV0dXJuZWQgZm9yIHRob3Nl
LiAqLwoKICAgICAgICBCaWdJbnRlZ2VyIGxtaW4gPSBmaW5kTWluKHZhbDEp
OwogICAgICAgIEJpZ0ludGVnZXIgbG1heCA9IGZpbmRNYXgodmFsMSk7CiAg
ICAgICAgQmlnSW50ZWdlciBybWluID0gZmluZE1pbih2YWwyKTsKICAgICAg
ICBCaWdJbnRlZ2VyIHJtYXggPSBmaW5kTWF4KHZhbDIpOwoKICAgICAgICBp
ZiAodmFsMi5lbXB0eSgpICYmIGxtYXggIT0gbnVsbCAmJiBsbWF4LnNpZ251
bSgpICE9IC0xKQogICAgICAgICAgICByZXR1cm4gbmV3IFZhbEJpZ0ludChs
bWF4LmFkZChCaWdJbnRlZ2VyLk9ORSkpOwoKICAgICAgICBpZiAodmFsMS5l
bXB0eSgpICYmIHJtaW4gIT0gbnVsbCAmJiBybWluLnNpZ251bSgpICE9IDEp
CiAgICAgICAgICAgIHJldHVybiBuZXcgVmFsQmlnSW50KHJtaW4uc3VidHJh
Y3QoQmlnSW50ZWdlci5PTkUpKTsKCiAgICAgICAgaWYgKGxtYXggPT0gbnVs
bCB8fCBybWluID09IG51bGwgfHwgbG1heC5jb21wYXJlVG8ocm1pbikgIT0g
LTEpCiAgICAgICAgICAgIHJldHVybiBuZXcgVmFsUGFpcih2YWwxLCB2YWwy
KTsKCiAgICAgICAgaWYgKGxtYXguc2lnbnVtKCkgPT0gLTEgJiYgcm1pbi5z
aWdudW0oKSA9PSAxKQogICAgICAgICAgICByZXR1cm4gVmFsLlpFUk87Cgog
ICAgICAgIGlmIChsbWF4LnNpZ251bSgpICE9IC0xKSB7CiAgICAgICAgICAg
IEJpZ0ludGVnZXIgdmFsID0gbG1heC5hZGQoQmlnSW50ZWdlci5PTkUpOwog
ICAgICAgICAgICBpZiAodmFsLmNvbXBhcmVUbyhybWluKSA9PSAtMSkKICAg
ICAgICAgICAgICAgIHJldHVybiBuZXcgVmFsQmlnSW50KHZhbCk7CiAgICAg
ICAgfSBlbHNlIGlmIChybWluLnNpZ251bSgpICE9IDEpIHsKICAgICAgICAg
ICAgQmlnSW50ZWdlciB2YWwgPSBybWluLnN1YnRyYWN0KEJpZ0ludGVnZXIu
T05FKTsKICAgICAgICAgICAgaWYgKHZhbC5jb21wYXJlVG8obG1heCkgPT0g
MSkKICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVmFsQmlnSW50KHZhbCk7
CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gbmV3IFZhbFBhaXIodmFsMSwg
dmFsMik7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgQmlnSW50ZWdlciBm
aW5kTWluKFZhbCB2YWwpCiAgICB7CiAgICAgICAgaWYgKHZhbCBpbnN0YW5j
ZW9mIFZhbEJpZ0ludCkKICAgICAgICAgICAgcmV0dXJuIHZhbC50b0JpZ0lu
dGVnZXIoKTsKICAgICAgICBpZiAoISh2YWwgaW5zdGFuY2VvZiBWYWxTZXQp
KQogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICBCaWdJbnRlZ2Vy
IG1pbiA9IG51bGw7CiAgICAgICAgZm9yIChJdGVyYXRvciBpID0gKChWYWxT
ZXQpIHZhbCkuc2V0Lml0ZXJhdG9yKCk7IGkuaGFzTmV4dCgpOyApIHsKICAg
ICAgICAgICAgVmFsIHYgPSAoVmFsKSBpLm5leHQoKTsKICAgICAgICAgICAg
aWYgKHYgaW5zdGFuY2VvZiBWYWxTZXQpCiAgICAgICAgICAgICAgICB0aHJv
dyBuZXcgUnVudGltZUV4Y2VwdGlvbigpOwogICAgICAgICAgICBpZiAoISh2
IGluc3RhbmNlb2YgVmFsQmlnSW50KSkKICAgICAgICAgICAgICAgIHJldHVy
biBudWxsOwogICAgICAgICAgICBWYWxCaWdJbnQgdmJpID0gKFZhbEJpZ0lu
dCkgdjsKICAgICAgICAgICAgaWYgKG1pbiA9PSBudWxsKQogICAgICAgICAg
ICAgICAgbWluID0gdmJpLnRvQmlnSW50ZWdlcigpOwogICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICBtaW4gPSBtaW4ubWluKHZiaS50b0JpZ0lu
dGVnZXIoKSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBtaW47CiAgICB9
CgogICAgcHJpdmF0ZSBzdGF0aWMgQmlnSW50ZWdlciBmaW5kTWF4KFZhbCB2
YWwpCiAgICB7CiAgICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIFZhbEJpZ0lu
dCkKICAgICAgICAgICAgcmV0dXJuIHZhbC50b0JpZ0ludGVnZXIoKTsKICAg
ICAgICBpZiAoISh2YWwgaW5zdGFuY2VvZiBWYWxTZXQpKQogICAgICAgICAg
ICByZXR1cm4gbnVsbDsKICAgICAgICBCaWdJbnRlZ2VyIG1heCA9IG51bGw7
CiAgICAgICAgZm9yIChJdGVyYXRvciBpID0gKChWYWxTZXQpIHZhbCkuc2V0
Lml0ZXJhdG9yKCk7IGkuaGFzTmV4dCgpOyApIHsKICAgICAgICAgICAgVmFs
IHYgPSAoVmFsKSBpLm5leHQoKTsKICAgICAgICAgICAgaWYgKHYgaW5zdGFu
Y2VvZiBWYWxTZXQpCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGlt
ZUV4Y2VwdGlvbigpOwogICAgICAgICAgICBpZiAoISh2IGluc3RhbmNlb2Yg
VmFsQmlnSW50KSkKICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAg
ICAgICAgICBWYWxCaWdJbnQgdmJpID0gKFZhbEJpZ0ludCkgdjsKICAgICAg
ICAgICAgaWYgKG1heCA9PSBudWxsKQogICAgICAgICAgICAgICAgbWF4ID0g
dmJpLnRvQmlnSW50ZWdlcigpOwogICAgICAgICAgICBlbHNlCiAgICAgICAg
ICAgICAgICBtYXggPSBtYXgubWF4KHZiaS50b0JpZ0ludGVnZXIoKSk7CiAg
ICAgICAgfQogICAgICAgIHJldHVybiBtYXg7CiAgICB9CgogICAgc3RhdGlj
IFZhbCB1bmlvbihMaXN0IHZhbHMpIHRocm93cyBFeGNlcHRpb24KICAgIHsK
ICAgICAgICBpZiAodmFscy5pc0VtcHR5KCkpCiAgICAgICAgICAgIHJldHVy
biBWYWwuRU1QVFk7CgogICAgICAgIEhhc2hTZXQgc2V0ID0gbmV3IEhhc2hT
ZXQoKTsKICAgICAgICAvKiBub3QgcXVpdGUgY29ycmVjdCwgc2luY2UgaGFz
aENvZGUoKSBhbmQgZXF1YWxzKCkgYXJlbid0CiAgICAgICAgICAgcHJvcGVy
bHkgZGVmaW5lZC4gIGlmIHRoZXkgd2VyZSwgdGhpcyB3b3VsZCBiZSBjb3Jy
ZWN0LiAqLwogICAgICAgIGZvciAoSXRlcmF0b3IgaSA9IHZhbHMuaXRlcmF0
b3IoKTsgaS5oYXNOZXh0KCk7ICkgewogICAgICAgICAgICBWYWwgdmFsID0g
KFZhbCkgaS5uZXh0KCk7CiAgICAgICAgICAgIGlmICghKHZhbCBpbnN0YW5j
ZW9mIFZhbFNldCkpCiAgICAgICAgICAgICAgICBzZXQuYWRkKHZhbCk7CiAg
ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGZvciAoSXRlcmF0b3Ig
aWkgPSAoKFZhbFNldCkgdmFsKS5zZXQuaXRlcmF0b3IoKTsgaWkuaGFzTmV4
dCgpOyApIHsKICAgICAgICAgICAgICAgICAgICBWYWwgdmFsdmFsID0gKFZh
bCkgaWkubmV4dCgpOwogICAgICAgICAgICAgICAgICAgIGlmICh2YWx2YWwg
aW5zdGFuY2VvZiBWYWxTZXQpCiAgICAgICAgICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCk7CiAgICAgICAgICAgICAgICAg
ICAgc2V0LmFkZCh2YWx2YWwpOwogICAgICAgICAgICAgICAgfQogICAgICAg
IH0KCiAgICAgICAgc3dpdGNoIChzZXQuc2l6ZSgpKSB7CiAgICAgICAgY2Fz
ZSAwOgogICAgICAgICAgICByZXR1cm4gVmFsLkVNUFRZOwogICAgICAgIGNh
c2UgMToKICAgICAgICAgICAgcmV0dXJuIChWYWwpIHNldC5pdGVyYXRvcigp
Lm5leHQoKTsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICByZXR1cm4g
bmV3IFZhbFNldChzZXQpOwogICAgICAgIH0KICAgIH0KCiAgICBzdGF0aWMg
VmFsIGludGVyc2VjdChWYWwgdmFsMSwgVmFsIHZhbDIpIHRocm93cyBFeGNl
cHRpb24KICAgIHsKICAgICAgICBpZiAodmFsMS5lbXB0eSgpIHx8IHZhbDIu
ZW1wdHkoKSkKICAgICAgICAgICAgcmV0dXJuIFZhbC5FTVBUWTsKCiAgICAg
ICAgaWYgKHZhbDEuZXF1YWxzKHZhbDIpKQogICAgICAgICAgICByZXR1cm4g
dmFsMTsKCiAgICAgICAgLyogdGhlIHJlc3Qgb2YgdGhpcyBmdW5jdGlvbiBp
cyBpbmNvcnJlY3QsCiAgICAgICAgICAgc2luY2UgaGFzaENvZGUoKSBhbmQg
ZXF1YWxzKCkgYXJlbid0IHByb3Blcmx5IGRlZmluZWQuICovCgogICAgICAg
IEhhc2hTZXQgc2V0ID0gbmV3IEhhc2hTZXQoKTsKCiAgICAgICAgaWYgKHZh
bDEgaW5zdGFuY2VvZiBWYWxTZXQpCiAgICAgICAgICAgIHNldC5hZGRBbGwo
KChWYWxTZXQpIHZhbDEpLnNldCk7CiAgICAgICAgZWxzZQogICAgICAgICAg
ICBzZXQuYWRkKHZhbDEpOwoKICAgICAgICBpZiAodmFsMiBpbnN0YW5jZW9m
IFZhbFNldCkKICAgICAgICAgICAgc2V0LnJldGFpbkFsbCgoKFZhbFNldCkg
dmFsMikuc2V0KTsKICAgICAgICBlbHNlIGlmICghc2V0LmNvbnRhaW5zKHZh
bDIpKQogICAgICAgICAgICByZXR1cm4gVmFsLkVNUFRZOwogICAgICAgIGVs
c2UgewogICAgICAgICAgICBzZXQuY2xlYXIoKTsKICAgICAgICAgICAgc2V0
LmFkZCh2YWwyKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBuZXcgVmFs
U2V0KHNldCk7CiAgICB9CgogICAgc3RhdGljIFZhbCBkaWZmZXJlbmNlKFZh
bCB2YWwxLCBWYWwgdmFsMikgdGhyb3dzIEV4Y2VwdGlvbgogICAgewogICAg
ICAgIGlmICh2YWwxLmVtcHR5KCkgfHwgdmFsMi5lbXB0eSgpKQogICAgICAg
ICAgICByZXR1cm4gdmFsMTsKCiAgICAgICAgaWYgKHZhbDEuZXF1YWxzKHZh
bDIpKQogICAgICAgICAgICByZXR1cm4gVmFsLkVNUFRZOwoKICAgICAgICAv
KiB0aGUgcmVzdCBvZiB0aGlzIGZ1bmN0aW9uIGlzIGluY29ycmVjdCwKICAg
ICAgICAgICBzaW5jZSBoYXNoQ29kZSgpIGFuZCBlcXVhbHMoKSBhcmVuJ3Qg
cHJvcGVybHkgZGVmaW5lZC4gKi8KCiAgICAgICAgSGFzaFNldCBzZXQgPSBu
ZXcgSGFzaFNldCgpOwoKICAgICAgICBpZiAodmFsMSBpbnN0YW5jZW9mIFZh
bFNldCkKICAgICAgICAgICAgc2V0LmFkZEFsbCgoKFZhbFNldCkgdmFsMSku
c2V0KTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIHNldC5hZGQodmFsMSk7
CgogICAgICAgIGlmICh2YWwyIGluc3RhbmNlb2YgVmFsU2V0KQogICAgICAg
ICAgICBzZXQucmVtb3ZlQWxsKCgoVmFsU2V0KSB2YWwyKS5zZXQpOwogICAg
ICAgIGVsc2UKICAgICAgICAgICAgc2V0LnJlbW92ZSh2YWwyKTsKCiAgICAg
ICAgcmV0dXJuIG5ldyBWYWxTZXQoc2V0KTsKICAgIH0KCiAgICBhYnN0cmFj
dCB2b2lkIHRvU3RyaW5nKFN0cmluZ0J1ZmZlciBzYik7Cn0KCmNsYXNzIFZh
bEJpZ0ludCBleHRlbmRzIFZhbAp7CiAgICBwcml2YXRlIEJpZ0ludGVnZXIg
dmFsOwoKICAgIFZhbEJpZ0ludChCaWdJbnRlZ2VyIHZhbCkgeyB0aGlzLnZh
bCA9IHZhbDsgfQoKICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qg
bykKICAgIHsKICAgICAgICBpZiAobyBpbnN0YW5jZW9mIFZhbEJpZ0ludCkK
ICAgICAgICAgICAgcmV0dXJuICgoVmFsQmlnSW50KSBvKS52YWwuZXF1YWxz
KHZhbCk7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIEJpZ0lu
dGVnZXIgdG9CaWdJbnRlZ2VyKCkgeyByZXR1cm4gdmFsOyB9CgogICAgYm9v
bGVhbiBlbXB0eSgpIHsgcmV0dXJuIGZhbHNlOyB9CgogICAgVmFsIGxlZnQo
KQogICAgewogICAgICAgIGlmICh2YWwuc2lnbnVtKCkgPT0gMSkKICAgICAg
ICAgICAgcmV0dXJuIG5ldyBWYWxCaWdJbnQodmFsLnN1YnRyYWN0KEJpZ0lu
dGVnZXIuT05FKSk7CiAgICAgICAgZWxzZQogICAgICAgICAgICByZXR1cm4g
VmFsLkVNUFRZOwogICAgfQoKICAgIFZhbCByaWdodCgpCiAgICB7CiAgICAg
ICAgaWYgKHZhbC5zaWdudW0oKSA9PSAtMSkKICAgICAgICAgICAgcmV0dXJu
IG5ldyBWYWxCaWdJbnQodmFsLmFkZChCaWdJbnRlZ2VyLk9ORSkpOwogICAg
ICAgIGVsc2UKICAgICAgICAgICAgcmV0dXJuIFZhbC5FTVBUWTsKICAgIH0K
CiAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeyByZXR1cm4gdmFsLnRv
U3RyaW5nKCk7IH0KCiAgICB2b2lkIHRvU3RyaW5nKFN0cmluZ0J1ZmZlciBz
YikgeyBzYi5hcHBlbmQodmFsLnRvU3RyaW5nKCkpOyB9Cn0KCmNsYXNzIFZh
bFNldCBleHRlbmRzIFZhbAp7CiAgICBTZXQgc2V0OwoKICAgIFZhbFNldChT
ZXQgc2V0KSB7IHRoaXMuc2V0ID0gc2V0OyB9CgogICAgYm9vbGVhbiBlbXB0
eSgpIHsgcmV0dXJuIHNldC5pc0VtcHR5KCk7IH0KCiAgICBWYWwgbGVmdCgp
IHRocm93cyBFeGNlcHRpb24KICAgIHsKICAgICAgICBpZiAoZW1wdHkoKSkK
ICAgICAgICAgICAgcmV0dXJuIHRoaXM7CgogICAgICAgIEFycmF5TGlzdCB2
YWxzID0gbmV3IEFycmF5TGlzdCgpOwogICAgICAgIGZvciAoSXRlcmF0b3Ig
aSA9IHNldC5pdGVyYXRvcigpOyBpLmhhc05leHQoKTsgKQogICAgICAgICAg
ICB2YWxzLmFkZCgoKFZhbCkgaS5uZXh0KCkpLmxlZnQoKSk7CiAgICAgICAg
cmV0dXJuIHVuaW9uKHZhbHMpOwogICAgfQoKICAgIFZhbCByaWdodCgpIHRo
cm93cyBFeGNlcHRpb24KICAgIHsKICAgICAgICBpZiAoZW1wdHkoKSkKICAg
ICAgICAgICAgcmV0dXJuIHRoaXM7CgogICAgICAgIEFycmF5TGlzdCB2YWxz
ID0gbmV3IEFycmF5TGlzdCgpOwogICAgICAgIGZvciAoSXRlcmF0b3IgaSA9
IHNldC5pdGVyYXRvcigpOyBpLmhhc05leHQoKTsgKQogICAgICAgICAgICB2
YWxzLmFkZCgoKFZhbCkgaS5uZXh0KCkpLnJpZ2h0KCkpOwogICAgICAgIHJl
dHVybiB1bmlvbih2YWxzKTsKICAgIH0KCiAgICBwdWJsaWMgU3RyaW5nIHRv
U3RyaW5nKCkKICAgIHsKICAgICAgICBTdHJpbmdCdWZmZXIgc2IgPSBuZXcg
U3RyaW5nQnVmZmVyKCk7CiAgICAgICAgc2IuYXBwZW5kKCcoJyk7CiAgICAg
ICAgdG9TdHJpbmcoc2IpOwogICAgICAgIHNiLmFwcGVuZCgnKScpOwogICAg
ICAgIHJldHVybiBzYi50b1N0cmluZygpOwogICAgfQoKICAgIHZvaWQgdG9T
dHJpbmcoU3RyaW5nQnVmZmVyIHNiKQogICAgewogICAgICAgIFN0cmluZyBz
cCA9ICIiOwogICAgICAgIGZvciAoSXRlcmF0b3IgaSA9IHNldC5pdGVyYXRv
cigpOyBpLmhhc05leHQoKTsgKSB7CiAgICAgICAgICAgIHNiLmFwcGVuZChz
cCk7CiAgICAgICAgICAgICgoVmFsKSBpLm5leHQoKSkudG9TdHJpbmcoc2Ip
OwogICAgICAgICAgICBzcCA9ICIgIjsKICAgICAgICB9CiAgICB9Cn0KCmNs
YXNzIFZhbFBhaXIgZXh0ZW5kcyBWYWwKewogICAgcHJpdmF0ZSBWYWwgbGVm
dDsKICAgIHByaXZhdGUgVmFsIHJpZ2h0OwoKICAgIFZhbFBhaXIoVmFsIGxl
ZnQsIFZhbCByaWdodCkgeyB0aGlzLmxlZnQgPSBsZWZ0OyB0aGlzLnJpZ2h0
ID0gcmlnaHQ7IH0KCiAgICBib29sZWFuIGVtcHR5KCkgeyByZXR1cm4gZmFs
c2U7IH0KCiAgICBWYWwgbGVmdCgpIHsgcmV0dXJuIGxlZnQ7IH0KCiAgICBW
YWwgcmlnaHQoKSB7IHJldHVybiByaWdodDsgfQoKICAgIHB1YmxpYyBTdHJp
bmcgdG9TdHJpbmcoKQogICAgewogICAgICAgIFN0cmluZ0J1ZmZlciBzYiA9
IG5ldyBTdHJpbmdCdWZmZXIoKTsKICAgICAgICB0b1N0cmluZyhzYik7CiAg
ICAgICAgcmV0dXJuIHNiLnRvU3RyaW5nKCk7CiAgICB9CgogICAgdm9pZCB0
b1N0cmluZyhTdHJpbmdCdWZmZXIgc2IpCiAgICB7CiAgICAgICAgc2IuYXBw
ZW5kKCcoJyk7CiAgICAgICAgbGVmdC50b1N0cmluZyhzYik7CiAgICAgICAg
c2IuYXBwZW5kKCcsJyk7CiAgICAgICAgcmlnaHQudG9TdHJpbmcoc2IpOwog
ICAgICAgIHNiLmFwcGVuZCgnKScpOwogICAgfQp9CgovKgoJCSAgICBHTlUg
R0VORVJBTCBQVUJMSUMgTElDRU5TRQoJCSAgICAgICBWZXJzaW9uIDIsIEp1
bmUgMTk5MQoKIENvcHlyaWdodCAoQykgMTk4OSwgMTk5MSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4KICAgICA1OSBUZW1wbGUgUGxhY2UsIFN1
aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiBFdmVyeW9u
ZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRp
bSBjb3BpZXMKIG9mIHRoaXMgbGljZW5zZSBkb2N1bWVudCwgYnV0IGNoYW5n
aW5nIGl0IGlzIG5vdCBhbGxvd2VkLgoKCQkJICAgIFByZWFtYmxlCgogIFRo
ZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhcmUgZGVzaWduZWQgdG8g
dGFrZSBhd2F5IHlvdXIKZnJlZWRvbSB0byBzaGFyZSBhbmQgY2hhbmdlIGl0
LiAgQnkgY29udHJhc3QsIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKTGljZW5z
ZSBpcyBpbnRlbmRlZCB0byBndWFyYW50ZWUgeW91ciBmcmVlZG9tIHRvIHNo
YXJlIGFuZCBjaGFuZ2UgZnJlZQpzb2Z0d2FyZS0tdG8gbWFrZSBzdXJlIHRo
ZSBzb2Z0d2FyZSBpcyBmcmVlIGZvciBhbGwgaXRzIHVzZXJzLiAgVGhpcwpH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFwcGxpZXMgdG8gbW9zdCBvZiB0aGUg
RnJlZSBTb2Z0d2FyZQpGb3VuZGF0aW9uJ3Mgc29mdHdhcmUgYW5kIHRvIGFu
eSBvdGhlciBwcm9ncmFtIHdob3NlIGF1dGhvcnMgY29tbWl0IHRvCnVzaW5n
IGl0LiAgKFNvbWUgb3RoZXIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIHNv
ZnR3YXJlIGlzIGNvdmVyZWQgYnkKdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgaW5zdGVhZC4pICBZb3UgY2FuIGFwcGx5IGl0IHRv
CnlvdXIgcHJvZ3JhbXMsIHRvby4KCiAgV2hlbiB3ZSBzcGVhayBvZiBmcmVl
IHNvZnR3YXJlLCB3ZSBhcmUgcmVmZXJyaW5nIHRvIGZyZWVkb20sIG5vdApw
cmljZS4gIE91ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlcyBhcmUgZGVzaWdu
ZWQgdG8gbWFrZSBzdXJlIHRoYXQgeW91CmhhdmUgdGhlIGZyZWVkb20gdG8g
ZGlzdHJpYnV0ZSBjb3BpZXMgb2YgZnJlZSBzb2Z0d2FyZSAoYW5kIGNoYXJn
ZSBmb3IKdGhpcyBzZXJ2aWNlIGlmIHlvdSB3aXNoKSwgdGhhdCB5b3UgcmVj
ZWl2ZSBzb3VyY2UgY29kZSBvciBjYW4gZ2V0IGl0CmlmIHlvdSB3YW50IGl0
LCB0aGF0IHlvdSBjYW4gY2hhbmdlIHRoZSBzb2Z0d2FyZSBvciB1c2UgcGll
Y2VzIG9mIGl0CmluIG5ldyBmcmVlIHByb2dyYW1zOyBhbmQgdGhhdCB5b3Ug
a25vdyB5b3UgY2FuIGRvIHRoZXNlIHRoaW5ncy4KCiAgVG8gcHJvdGVjdCB5
b3VyIHJpZ2h0cywgd2UgbmVlZCB0byBtYWtlIHJlc3RyaWN0aW9ucyB0aGF0
IGZvcmJpZAphbnlvbmUgdG8gZGVueSB5b3UgdGhlc2UgcmlnaHRzIG9yIHRv
IGFzayB5b3UgdG8gc3VycmVuZGVyIHRoZSByaWdodHMuClRoZXNlIHJlc3Ry
aWN0aW9ucyB0cmFuc2xhdGUgdG8gY2VydGFpbiByZXNwb25zaWJpbGl0aWVz
IGZvciB5b3UgaWYgeW91CmRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZSBzb2Z0
d2FyZSwgb3IgaWYgeW91IG1vZGlmeSBpdC4KCiAgRm9yIGV4YW1wbGUsIGlm
IHlvdSBkaXN0cmlidXRlIGNvcGllcyBvZiBzdWNoIGEgcHJvZ3JhbSwgd2hl
dGhlcgpncmF0aXMgb3IgZm9yIGEgZmVlLCB5b3UgbXVzdCBnaXZlIHRoZSBy
ZWNpcGllbnRzIGFsbCB0aGUgcmlnaHRzIHRoYXQKeW91IGhhdmUuICBZb3Ug
bXVzdCBtYWtlIHN1cmUgdGhhdCB0aGV5LCB0b28sIHJlY2VpdmUgb3IgY2Fu
IGdldCB0aGUKc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVt
IHRoZXNlIHRlcm1zIHNvIHRoZXkga25vdyB0aGVpcgpyaWdodHMuCgogIFdl
IHByb3RlY3QgeW91ciByaWdodHMgd2l0aCB0d28gc3RlcHM6ICgxKSBjb3B5
cmlnaHQgdGhlIHNvZnR3YXJlLCBhbmQKKDIpIG9mZmVyIHlvdSB0aGlzIGxp
Y2Vuc2Ugd2hpY2ggZ2l2ZXMgeW91IGxlZ2FsIHBlcm1pc3Npb24gdG8gY29w
eSwKZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IHRoZSBzb2Z0d2FyZS4KCiAg
QWxzbywgZm9yIGVhY2ggYXV0aG9yJ3MgcHJvdGVjdGlvbiBhbmQgb3Vycywg
d2Ugd2FudCB0byBtYWtlIGNlcnRhaW4KdGhhdCBldmVyeW9uZSB1bmRlcnN0
YW5kcyB0aGF0IHRoZXJlIGlzIG5vIHdhcnJhbnR5IGZvciB0aGlzIGZyZWUK
c29mdHdhcmUuICBJZiB0aGUgc29mdHdhcmUgaXMgbW9kaWZpZWQgYnkgc29t
ZW9uZSBlbHNlIGFuZCBwYXNzZWQgb24sIHdlCndhbnQgaXRzIHJlY2lwaWVu
dHMgdG8ga25vdyB0aGF0IHdoYXQgdGhleSBoYXZlIGlzIG5vdCB0aGUgb3Jp
Z2luYWwsIHNvCnRoYXQgYW55IHByb2JsZW1zIGludHJvZHVjZWQgYnkgb3Ro
ZXJzIHdpbGwgbm90IHJlZmxlY3Qgb24gdGhlIG9yaWdpbmFsCmF1dGhvcnMn
IHJlcHV0YXRpb25zLgoKICBGaW5hbGx5LCBhbnkgZnJlZSBwcm9ncmFtIGlz
IHRocmVhdGVuZWQgY29uc3RhbnRseSBieSBzb2Z0d2FyZQpwYXRlbnRzLiAg
V2Ugd2lzaCB0byBhdm9pZCB0aGUgZGFuZ2VyIHRoYXQgcmVkaXN0cmlidXRv
cnMgb2YgYSBmcmVlCnByb2dyYW0gd2lsbCBpbmRpdmlkdWFsbHkgb2J0YWlu
IHBhdGVudCBsaWNlbnNlcywgaW4gZWZmZWN0IG1ha2luZyB0aGUKcHJvZ3Jh
bSBwcm9wcmlldGFyeS4gIFRvIHByZXZlbnQgdGhpcywgd2UgaGF2ZSBtYWRl
IGl0IGNsZWFyIHRoYXQgYW55CnBhdGVudCBtdXN0IGJlIGxpY2Vuc2VkIGZv
ciBldmVyeW9uZSdzIGZyZWUgdXNlIG9yIG5vdCBsaWNlbnNlZCBhdCBhbGwu
CgogIFRoZSBwcmVjaXNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5
aW5nLCBkaXN0cmlidXRpb24gYW5kCm1vZGlmaWNhdGlvbiBmb2xsb3cuCgwK
CQkgICAgR05VIEdFTkVSQUwgUFVCTElDIExJQ0VOU0UKICAgVEVSTVMgQU5E
IENPTkRJVElPTlMgRk9SIENPUFlJTkcsIERJU1RSSUJVVElPTiBBTkQgTU9E
SUZJQ0FUSU9OCgogIDAuIFRoaXMgTGljZW5zZSBhcHBsaWVzIHRvIGFueSBw
cm9ncmFtIG9yIG90aGVyIHdvcmsgd2hpY2ggY29udGFpbnMKYSBub3RpY2Ug
cGxhY2VkIGJ5IHRoZSBjb3B5cmlnaHQgaG9sZGVyIHNheWluZyBpdCBtYXkg
YmUgZGlzdHJpYnV0ZWQKdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZS4gIFRoZSAiUHJvZ3JhbSIsIGJlbG93LApyZWZl
cnMgdG8gYW55IHN1Y2ggcHJvZ3JhbSBvciB3b3JrLCBhbmQgYSAid29yayBi
YXNlZCBvbiB0aGUgUHJvZ3JhbSIKbWVhbnMgZWl0aGVyIHRoZSBQcm9ncmFt
IG9yIGFueSBkZXJpdmF0aXZlIHdvcmsgdW5kZXIgY29weXJpZ2h0IGxhdzoK
dGhhdCBpcyB0byBzYXksIGEgd29yayBjb250YWluaW5nIHRoZSBQcm9ncmFt
IG9yIGEgcG9ydGlvbiBvZiBpdCwKZWl0aGVyIHZlcmJhdGltIG9yIHdpdGgg
bW9kaWZpY2F0aW9ucyBhbmQvb3IgdHJhbnNsYXRlZCBpbnRvIGFub3RoZXIK
bGFuZ3VhZ2UuICAoSGVyZWluYWZ0ZXIsIHRyYW5zbGF0aW9uIGlzIGluY2x1
ZGVkIHdpdGhvdXQgbGltaXRhdGlvbiBpbgp0aGUgdGVybSAibW9kaWZpY2F0
aW9uIi4pICBFYWNoIGxpY2Vuc2VlIGlzIGFkZHJlc3NlZCBhcyAieW91Ii4K
CkFjdGl2aXRpZXMgb3RoZXIgdGhhbiBjb3B5aW5nLCBkaXN0cmlidXRpb24g
YW5kIG1vZGlmaWNhdGlvbiBhcmUgbm90CmNvdmVyZWQgYnkgdGhpcyBMaWNl
bnNlOyB0aGV5IGFyZSBvdXRzaWRlIGl0cyBzY29wZS4gIFRoZSBhY3Qgb2YK
cnVubmluZyB0aGUgUHJvZ3JhbSBpcyBub3QgcmVzdHJpY3RlZCwgYW5kIHRo
ZSBvdXRwdXQgZnJvbSB0aGUgUHJvZ3JhbQppcyBjb3ZlcmVkIG9ubHkgaWYg
aXRzIGNvbnRlbnRzIGNvbnN0aXR1dGUgYSB3b3JrIGJhc2VkIG9uIHRoZQpQ
cm9ncmFtIChpbmRlcGVuZGVudCBvZiBoYXZpbmcgYmVlbiBtYWRlIGJ5IHJ1
bm5pbmcgdGhlIFByb2dyYW0pLgpXaGV0aGVyIHRoYXQgaXMgdHJ1ZSBkZXBl
bmRzIG9uIHdoYXQgdGhlIFByb2dyYW0gZG9lcy4KCiAgMS4gWW91IG1heSBj
b3B5IGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcyBvZiB0aGUgUHJv
Z3JhbSdzCnNvdXJjZSBjb2RlIGFzIHlvdSByZWNlaXZlIGl0LCBpbiBhbnkg
bWVkaXVtLCBwcm92aWRlZCB0aGF0IHlvdQpjb25zcGljdW91c2x5IGFuZCBh
cHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJp
YXRlCmNvcHlyaWdodCBub3RpY2UgYW5kIGRpc2NsYWltZXIgb2Ygd2FycmFu
dHk7IGtlZXAgaW50YWN0IGFsbCB0aGUKbm90aWNlcyB0aGF0IHJlZmVyIHRv
IHRoaXMgTGljZW5zZSBhbmQgdG8gdGhlIGFic2VuY2Ugb2YgYW55IHdhcnJh
bnR5OwphbmQgZ2l2ZSBhbnkgb3RoZXIgcmVjaXBpZW50cyBvZiB0aGUgUHJv
Z3JhbSBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlCmFsb25nIHdpdGggdGhlIFBy
b2dyYW0uCgpZb3UgbWF5IGNoYXJnZSBhIGZlZSBmb3IgdGhlIHBoeXNpY2Fs
IGFjdCBvZiB0cmFuc2ZlcnJpbmcgYSBjb3B5LCBhbmQKeW91IG1heSBhdCB5
b3VyIG9wdGlvbiBvZmZlciB3YXJyYW50eSBwcm90ZWN0aW9uIGluIGV4Y2hh
bmdlIGZvciBhIGZlZS4KCiAgMi4gWW91IG1heSBtb2RpZnkgeW91ciBjb3B5
IG9yIGNvcGllcyBvZiB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbgpvZiBp
dCwgdGh1cyBmb3JtaW5nIGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSwg
YW5kIGNvcHkgYW5kCmRpc3RyaWJ1dGUgc3VjaCBtb2RpZmljYXRpb25zIG9y
IHdvcmsgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb24gMQphYm92ZSwgcHJv
dmlkZWQgdGhhdCB5b3UgYWxzbyBtZWV0IGFsbCBvZiB0aGVzZSBjb25kaXRp
b25zOgoKICAgIGEpIFlvdSBtdXN0IGNhdXNlIHRoZSBtb2RpZmllZCBmaWxl
cyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcwogICAgc3RhdGluZyB0aGF0
IHlvdSBjaGFuZ2VkIHRoZSBmaWxlcyBhbmQgdGhlIGRhdGUgb2YgYW55IGNo
YW5nZS4KCiAgICBiKSBZb3UgbXVzdCBjYXVzZSBhbnkgd29yayB0aGF0IHlv
dSBkaXN0cmlidXRlIG9yIHB1Ymxpc2gsIHRoYXQgaW4KICAgIHdob2xlIG9y
IGluIHBhcnQgY29udGFpbnMgb3IgaXMgZGVyaXZlZCBmcm9tIHRoZSBQcm9n
cmFtIG9yIGFueQogICAgcGFydCB0aGVyZW9mLCB0byBiZSBsaWNlbnNlZCBh
cyBhIHdob2xlIGF0IG5vIGNoYXJnZSB0byBhbGwgdGhpcmQKICAgIHBhcnRp
ZXMgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZS4KCiAgICBjKSBJ
ZiB0aGUgbW9kaWZpZWQgcHJvZ3JhbSBub3JtYWxseSByZWFkcyBjb21tYW5k
cyBpbnRlcmFjdGl2ZWx5CiAgICB3aGVuIHJ1biwgeW91IG11c3QgY2F1c2Ug
aXQsIHdoZW4gc3RhcnRlZCBydW5uaW5nIGZvciBzdWNoCiAgICBpbnRlcmFj
dGl2ZSB1c2UgaW4gdGhlIG1vc3Qgb3JkaW5hcnkgd2F5LCB0byBwcmludCBv
ciBkaXNwbGF5IGFuCiAgICBhbm5vdW5jZW1lbnQgaW5jbHVkaW5nIGFuIGFw
cHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2UgYW5kIGEKICAgIG5vdGljZSB0
aGF0IHRoZXJlIGlzIG5vIHdhcnJhbnR5IChvciBlbHNlLCBzYXlpbmcgdGhh
dCB5b3UgcHJvdmlkZQogICAgYSB3YXJyYW50eSkgYW5kIHRoYXQgdXNlcnMg
bWF5IHJlZGlzdHJpYnV0ZSB0aGUgcHJvZ3JhbSB1bmRlcgogICAgdGhlc2Ug
Y29uZGl0aW9ucywgYW5kIHRlbGxpbmcgdGhlIHVzZXIgaG93IHRvIHZpZXcg
YSBjb3B5IG9mIHRoaXMKICAgIExpY2Vuc2UuICAoRXhjZXB0aW9uOiBpZiB0
aGUgUHJvZ3JhbSBpdHNlbGYgaXMgaW50ZXJhY3RpdmUgYnV0CiAgICBkb2Vz
IG5vdCBub3JtYWxseSBwcmludCBzdWNoIGFuIGFubm91bmNlbWVudCwgeW91
ciB3b3JrIGJhc2VkIG9uCiAgICB0aGUgUHJvZ3JhbSBpcyBub3QgcmVxdWly
ZWQgdG8gcHJpbnQgYW4gYW5ub3VuY2VtZW50LikKDApUaGVzZSByZXF1aXJl
bWVudHMgYXBwbHkgdG8gdGhlIG1vZGlmaWVkIHdvcmsgYXMgYSB3aG9sZS4g
IElmCmlkZW50aWZpYWJsZSBzZWN0aW9ucyBvZiB0aGF0IHdvcmsgYXJlIG5v
dCBkZXJpdmVkIGZyb20gdGhlIFByb2dyYW0sCmFuZCBjYW4gYmUgcmVhc29u
YWJseSBjb25zaWRlcmVkIGluZGVwZW5kZW50IGFuZCBzZXBhcmF0ZSB3b3Jr
cyBpbgp0aGVtc2VsdmVzLCB0aGVuIHRoaXMgTGljZW5zZSwgYW5kIGl0cyB0
ZXJtcywgZG8gbm90IGFwcGx5IHRvIHRob3NlCnNlY3Rpb25zIHdoZW4geW91
IGRpc3RyaWJ1dGUgdGhlbSBhcyBzZXBhcmF0ZSB3b3Jrcy4gIEJ1dCB3aGVu
IHlvdQpkaXN0cmlidXRlIHRoZSBzYW1lIHNlY3Rpb25zIGFzIHBhcnQgb2Yg
YSB3aG9sZSB3aGljaCBpcyBhIHdvcmsgYmFzZWQKb24gdGhlIFByb2dyYW0s
IHRoZSBkaXN0cmlidXRpb24gb2YgdGhlIHdob2xlIG11c3QgYmUgb24gdGhl
IHRlcm1zIG9mCnRoaXMgTGljZW5zZSwgd2hvc2UgcGVybWlzc2lvbnMgZm9y
IG90aGVyIGxpY2Vuc2VlcyBleHRlbmQgdG8gdGhlCmVudGlyZSB3aG9sZSwg
YW5kIHRodXMgdG8gZWFjaCBhbmQgZXZlcnkgcGFydCByZWdhcmRsZXNzIG9m
IHdobyB3cm90ZSBpdC4KClRodXMsIGl0IGlzIG5vdCB0aGUgaW50ZW50IG9m
IHRoaXMgc2VjdGlvbiB0byBjbGFpbSByaWdodHMgb3IgY29udGVzdAp5b3Vy
IHJpZ2h0cyB0byB3b3JrIHdyaXR0ZW4gZW50aXJlbHkgYnkgeW91OyByYXRo
ZXIsIHRoZSBpbnRlbnQgaXMgdG8KZXhlcmNpc2UgdGhlIHJpZ2h0IHRvIGNv
bnRyb2wgdGhlIGRpc3RyaWJ1dGlvbiBvZiBkZXJpdmF0aXZlIG9yCmNvbGxl
Y3RpdmUgd29ya3MgYmFzZWQgb24gdGhlIFByb2dyYW0uCgpJbiBhZGRpdGlv
biwgbWVyZSBhZ2dyZWdhdGlvbiBvZiBhbm90aGVyIHdvcmsgbm90IGJhc2Vk
IG9uIHRoZSBQcm9ncmFtCndpdGggdGhlIFByb2dyYW0gKG9yIHdpdGggYSB3
b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtKSBvbiBhIHZvbHVtZSBvZgphIHN0
b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSBkb2VzIG5vdCBicmluZyB0
aGUgb3RoZXIgd29yayB1bmRlcgp0aGUgc2NvcGUgb2YgdGhpcyBMaWNlbnNl
LgoKICAzLiBZb3UgbWF5IGNvcHkgYW5kIGRpc3RyaWJ1dGUgdGhlIFByb2dy
YW0gKG9yIGEgd29yayBiYXNlZCBvbiBpdCwKdW5kZXIgU2VjdGlvbiAyKSBp
biBvYmplY3QgY29kZSBvciBleGVjdXRhYmxlIGZvcm0gdW5kZXIgdGhlIHRl
cm1zIG9mClNlY3Rpb25zIDEgYW5kIDIgYWJvdmUgcHJvdmlkZWQgdGhhdCB5
b3UgYWxzbyBkbyBvbmUgb2YgdGhlIGZvbGxvd2luZzoKCiAgICBhKSBBY2Nv
bXBhbnkgaXQgd2l0aCB0aGUgY29tcGxldGUgY29ycmVzcG9uZGluZyBtYWNo
aW5lLXJlYWRhYmxlCiAgICBzb3VyY2UgY29kZSwgd2hpY2ggbXVzdCBiZSBk
aXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbnMKICAgIDEg
YW5kIDIgYWJvdmUgb24gYSBtZWRpdW0gY3VzdG9tYXJpbHkgdXNlZCBmb3Ig
c29mdHdhcmUgaW50ZXJjaGFuZ2U7IG9yLAoKICAgIGIpIEFjY29tcGFueSBp
dCB3aXRoIGEgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxlYXN0IHRo
cmVlCiAgICB5ZWFycywgdG8gZ2l2ZSBhbnkgdGhpcmQgcGFydHksIGZvciBh
IGNoYXJnZSBubyBtb3JlIHRoYW4geW91cgogICAgY29zdCBvZiBwaHlzaWNh
bGx5IHBlcmZvcm1pbmcgc291cmNlIGRpc3RyaWJ1dGlvbiwgYSBjb21wbGV0
ZQogICAgbWFjaGluZS1yZWFkYWJsZSBjb3B5IG9mIHRoZSBjb3JyZXNwb25k
aW5nIHNvdXJjZSBjb2RlLCB0byBiZQogICAgZGlzdHJpYnV0ZWQgdW5kZXIg
dGhlIHRlcm1zIG9mIFNlY3Rpb25zIDEgYW5kIDIgYWJvdmUgb24gYSBtZWRp
dW0KICAgIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hh
bmdlOyBvciwKCiAgICBjKSBBY2NvbXBhbnkgaXQgd2l0aCB0aGUgaW5mb3Jt
YXRpb24geW91IHJlY2VpdmVkIGFzIHRvIHRoZSBvZmZlcgogICAgdG8gZGlz
dHJpYnV0ZSBjb3JyZXNwb25kaW5nIHNvdXJjZSBjb2RlLiAgKFRoaXMgYWx0
ZXJuYXRpdmUgaXMKICAgIGFsbG93ZWQgb25seSBmb3Igbm9uY29tbWVyY2lh
bCBkaXN0cmlidXRpb24gYW5kIG9ubHkgaWYgeW91CiAgICByZWNlaXZlZCB0
aGUgcHJvZ3JhbSBpbiBvYmplY3QgY29kZSBvciBleGVjdXRhYmxlIGZvcm0g
d2l0aCBzdWNoCiAgICBhbiBvZmZlciwgaW4gYWNjb3JkIHdpdGggU3Vic2Vj
dGlvbiBiIGFib3ZlLikKClRoZSBzb3VyY2UgY29kZSBmb3IgYSB3b3JrIG1l
YW5zIHRoZSBwcmVmZXJyZWQgZm9ybSBvZiB0aGUgd29yayBmb3IKbWFraW5n
IG1vZGlmaWNhdGlvbnMgdG8gaXQuICBGb3IgYW4gZXhlY3V0YWJsZSB3b3Jr
LCBjb21wbGV0ZSBzb3VyY2UKY29kZSBtZWFucyBhbGwgdGhlIHNvdXJjZSBj
b2RlIGZvciBhbGwgbW9kdWxlcyBpdCBjb250YWlucywgcGx1cyBhbnkKYXNz
b2NpYXRlZCBpbnRlcmZhY2UgZGVmaW5pdGlvbiBmaWxlcywgcGx1cyB0aGUg
c2NyaXB0cyB1c2VkIHRvCmNvbnRyb2wgY29tcGlsYXRpb24gYW5kIGluc3Rh
bGxhdGlvbiBvZiB0aGUgZXhlY3V0YWJsZS4gIEhvd2V2ZXIsIGFzIGEKc3Bl
Y2lhbCBleGNlcHRpb24sIHRoZSBzb3VyY2UgY29kZSBkaXN0cmlidXRlZCBu
ZWVkIG5vdCBpbmNsdWRlCmFueXRoaW5nIHRoYXQgaXMgbm9ybWFsbHkgZGlz
dHJpYnV0ZWQgKGluIGVpdGhlciBzb3VyY2Ugb3IgYmluYXJ5CmZvcm0pIHdp
dGggdGhlIG1ham9yIGNvbXBvbmVudHMgKGNvbXBpbGVyLCBrZXJuZWwsIGFu
ZCBzbyBvbikgb2YgdGhlCm9wZXJhdGluZyBzeXN0ZW0gb24gd2hpY2ggdGhl
IGV4ZWN1dGFibGUgcnVucywgdW5sZXNzIHRoYXQgY29tcG9uZW50Cml0c2Vs
ZiBhY2NvbXBhbmllcyB0aGUgZXhlY3V0YWJsZS4KCklmIGRpc3RyaWJ1dGlv
biBvZiBleGVjdXRhYmxlIG9yIG9iamVjdCBjb2RlIGlzIG1hZGUgYnkgb2Zm
ZXJpbmcKYWNjZXNzIHRvIGNvcHkgZnJvbSBhIGRlc2lnbmF0ZWQgcGxhY2Us
IHRoZW4gb2ZmZXJpbmcgZXF1aXZhbGVudAphY2Nlc3MgdG8gY29weSB0aGUg
c291cmNlIGNvZGUgZnJvbSB0aGUgc2FtZSBwbGFjZSBjb3VudHMgYXMKZGlz
dHJpYnV0aW9uIG9mIHRoZSBzb3VyY2UgY29kZSwgZXZlbiB0aG91Z2ggdGhp
cmQgcGFydGllcyBhcmUgbm90CmNvbXBlbGxlZCB0byBjb3B5IHRoZSBzb3Vy
Y2UgYWxvbmcgd2l0aCB0aGUgb2JqZWN0IGNvZGUuCgwKICA0LiBZb3UgbWF5
IG5vdCBjb3B5LCBtb2RpZnksIHN1YmxpY2Vuc2UsIG9yIGRpc3RyaWJ1dGUg
dGhlIFByb2dyYW0KZXhjZXB0IGFzIGV4cHJlc3NseSBwcm92aWRlZCB1bmRl
ciB0aGlzIExpY2Vuc2UuICBBbnkgYXR0ZW1wdApvdGhlcndpc2UgdG8gY29w
eSwgbW9kaWZ5LCBzdWJsaWNlbnNlIG9yIGRpc3RyaWJ1dGUgdGhlIFByb2dy
YW0gaXMKdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUg
eW91ciByaWdodHMgdW5kZXIgdGhpcyBMaWNlbnNlLgpIb3dldmVyLCBwYXJ0
aWVzIHdobyBoYXZlIHJlY2VpdmVkIGNvcGllcywgb3IgcmlnaHRzLCBmcm9t
IHlvdSB1bmRlcgp0aGlzIExpY2Vuc2Ugd2lsbCBub3QgaGF2ZSB0aGVpciBs
aWNlbnNlcyB0ZXJtaW5hdGVkIHNvIGxvbmcgYXMgc3VjaApwYXJ0aWVzIHJl
bWFpbiBpbiBmdWxsIGNvbXBsaWFuY2UuCgogIDUuIFlvdSBhcmUgbm90IHJl
cXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UsIHNpbmNlIHlvdSBoYXZl
IG5vdApzaWduZWQgaXQuICBIb3dldmVyLCBub3RoaW5nIGVsc2UgZ3JhbnRz
IHlvdSBwZXJtaXNzaW9uIHRvIG1vZGlmeSBvcgpkaXN0cmlidXRlIHRoZSBQ
cm9ncmFtIG9yIGl0cyBkZXJpdmF0aXZlIHdvcmtzLiAgVGhlc2UgYWN0aW9u
cyBhcmUKcHJvaGliaXRlZCBieSBsYXcgaWYgeW91IGRvIG5vdCBhY2NlcHQg
dGhpcyBMaWNlbnNlLiAgVGhlcmVmb3JlLCBieQptb2RpZnlpbmcgb3IgZGlz
dHJpYnV0aW5nIHRoZSBQcm9ncmFtIChvciBhbnkgd29yayBiYXNlZCBvbiB0
aGUKUHJvZ3JhbSksIHlvdSBpbmRpY2F0ZSB5b3VyIGFjY2VwdGFuY2Ugb2Yg
dGhpcyBMaWNlbnNlIHRvIGRvIHNvLCBhbmQKYWxsIGl0cyB0ZXJtcyBhbmQg
Y29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW5nIG9yIG1vZGlm
eWluZwp0aGUgUHJvZ3JhbSBvciB3b3JrcyBiYXNlZCBvbiBpdC4KCiAgNi4g
RWFjaCB0aW1lIHlvdSByZWRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gKG9yIGFu
eSB3b3JrIGJhc2VkIG9uIHRoZQpQcm9ncmFtKSwgdGhlIHJlY2lwaWVudCBh
dXRvbWF0aWNhbGx5IHJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZQpvcmln
aW5hbCBsaWNlbnNvciB0byBjb3B5LCBkaXN0cmlidXRlIG9yIG1vZGlmeSB0
aGUgUHJvZ3JhbSBzdWJqZWN0IHRvCnRoZXNlIHRlcm1zIGFuZCBjb25kaXRp
b25zLiAgWW91IG1heSBub3QgaW1wb3NlIGFueSBmdXJ0aGVyCnJlc3RyaWN0
aW9ucyBvbiB0aGUgcmVjaXBpZW50cycgZXhlcmNpc2Ugb2YgdGhlIHJpZ2h0
cyBncmFudGVkIGhlcmVpbi4KWW91IGFyZSBub3QgcmVzcG9uc2libGUgZm9y
IGVuZm9yY2luZyBjb21wbGlhbmNlIGJ5IHRoaXJkIHBhcnRpZXMgdG8KdGhp
cyBMaWNlbnNlLgoKICA3LiBJZiwgYXMgYSBjb25zZXF1ZW5jZSBvZiBhIGNv
dXJ0IGp1ZGdtZW50IG9yIGFsbGVnYXRpb24gb2YgcGF0ZW50CmluZnJpbmdl
bWVudCBvciBmb3IgYW55IG90aGVyIHJlYXNvbiAobm90IGxpbWl0ZWQgdG8g
cGF0ZW50IGlzc3VlcyksCmNvbmRpdGlvbnMgYXJlIGltcG9zZWQgb24geW91
ICh3aGV0aGVyIGJ5IGNvdXJ0IG9yZGVyLCBhZ3JlZW1lbnQgb3IKb3RoZXJ3
aXNlKSB0aGF0IGNvbnRyYWRpY3QgdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBM
aWNlbnNlLCB0aGV5IGRvIG5vdApleGN1c2UgeW91IGZyb20gdGhlIGNvbmRp
dGlvbnMgb2YgdGhpcyBMaWNlbnNlLiAgSWYgeW91IGNhbm5vdApkaXN0cmli
dXRlIHNvIGFzIHRvIHNhdGlzZnkgc2ltdWx0YW5lb3VzbHkgeW91ciBvYmxp
Z2F0aW9ucyB1bmRlciB0aGlzCkxpY2Vuc2UgYW5kIGFueSBvdGhlciBwZXJ0
aW5lbnQgb2JsaWdhdGlvbnMsIHRoZW4gYXMgYSBjb25zZXF1ZW5jZSB5b3UK
bWF5IG5vdCBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIGF0IGFsbC4gIEZvciBl
eGFtcGxlLCBpZiBhIHBhdGVudApsaWNlbnNlIHdvdWxkIG5vdCBwZXJtaXQg
cm95YWx0eS1mcmVlIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGJ5
CmFsbCB0aG9zZSB3aG8gcmVjZWl2ZSBjb3BpZXMgZGlyZWN0bHkgb3IgaW5k
aXJlY3RseSB0aHJvdWdoIHlvdSwgdGhlbgp0aGUgb25seSB3YXkgeW91IGNv
dWxkIHNhdGlzZnkgYm90aCBpdCBhbmQgdGhpcyBMaWNlbnNlIHdvdWxkIGJl
IHRvCnJlZnJhaW4gZW50aXJlbHkgZnJvbSBkaXN0cmlidXRpb24gb2YgdGhl
IFByb2dyYW0uCgpJZiBhbnkgcG9ydGlvbiBvZiB0aGlzIHNlY3Rpb24gaXMg
aGVsZCBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIKYW55IHBhcnRp
Y3VsYXIgY2lyY3Vtc3RhbmNlLCB0aGUgYmFsYW5jZSBvZiB0aGUgc2VjdGlv
biBpcyBpbnRlbmRlZCB0bwphcHBseSBhbmQgdGhlIHNlY3Rpb24gYXMgYSB3
aG9sZSBpcyBpbnRlbmRlZCB0byBhcHBseSBpbiBvdGhlcgpjaXJjdW1zdGFu
Y2VzLgoKSXQgaXMgbm90IHRoZSBwdXJwb3NlIG9mIHRoaXMgc2VjdGlvbiB0
byBpbmR1Y2UgeW91IHRvIGluZnJpbmdlIGFueQpwYXRlbnRzIG9yIG90aGVy
IHByb3BlcnR5IHJpZ2h0IGNsYWltcyBvciB0byBjb250ZXN0IHZhbGlkaXR5
IG9mIGFueQpzdWNoIGNsYWltczsgdGhpcyBzZWN0aW9uIGhhcyB0aGUgc29s
ZSBwdXJwb3NlIG9mIHByb3RlY3RpbmcgdGhlCmludGVncml0eSBvZiB0aGUg
ZnJlZSBzb2Z0d2FyZSBkaXN0cmlidXRpb24gc3lzdGVtLCB3aGljaCBpcwpp
bXBsZW1lbnRlZCBieSBwdWJsaWMgbGljZW5zZSBwcmFjdGljZXMuICBNYW55
IHBlb3BsZSBoYXZlIG1hZGUKZ2VuZXJvdXMgY29udHJpYnV0aW9ucyB0byB0
aGUgd2lkZSByYW5nZSBvZiBzb2Z0d2FyZSBkaXN0cmlidXRlZAp0aHJvdWdo
IHRoYXQgc3lzdGVtIGluIHJlbGlhbmNlIG9uIGNvbnNpc3RlbnQgYXBwbGlj
YXRpb24gb2YgdGhhdApzeXN0ZW07IGl0IGlzIHVwIHRvIHRoZSBhdXRob3Iv
ZG9ub3IgdG8gZGVjaWRlIGlmIGhlIG9yIHNoZSBpcyB3aWxsaW5nCnRvIGRp
c3RyaWJ1dGUgc29mdHdhcmUgdGhyb3VnaCBhbnkgb3RoZXIgc3lzdGVtIGFu
ZCBhIGxpY2Vuc2VlIGNhbm5vdAppbXBvc2UgdGhhdCBjaG9pY2UuCgpUaGlz
IHNlY3Rpb24gaXMgaW50ZW5kZWQgdG8gbWFrZSB0aG9yb3VnaGx5IGNsZWFy
IHdoYXQgaXMgYmVsaWV2ZWQgdG8KYmUgYSBjb25zZXF1ZW5jZSBvZiB0aGUg
cmVzdCBvZiB0aGlzIExpY2Vuc2UuCgwKICA4LiBJZiB0aGUgZGlzdHJpYnV0
aW9uIGFuZC9vciB1c2Ugb2YgdGhlIFByb2dyYW0gaXMgcmVzdHJpY3RlZCBp
bgpjZXJ0YWluIGNvdW50cmllcyBlaXRoZXIgYnkgcGF0ZW50cyBvciBieSBj
b3B5cmlnaHRlZCBpbnRlcmZhY2VzLCB0aGUKb3JpZ2luYWwgY29weXJpZ2h0
IGhvbGRlciB3aG8gcGxhY2VzIHRoZSBQcm9ncmFtIHVuZGVyIHRoaXMgTGlj
ZW5zZQptYXkgYWRkIGFuIGV4cGxpY2l0IGdlb2dyYXBoaWNhbCBkaXN0cmli
dXRpb24gbGltaXRhdGlvbiBleGNsdWRpbmcKdGhvc2UgY291bnRyaWVzLCBz
byB0aGF0IGRpc3RyaWJ1dGlvbiBpcyBwZXJtaXR0ZWQgb25seSBpbiBvciBh
bW9uZwpjb3VudHJpZXMgbm90IHRodXMgZXhjbHVkZWQuICBJbiBzdWNoIGNh
c2UsIHRoaXMgTGljZW5zZSBpbmNvcnBvcmF0ZXMKdGhlIGxpbWl0YXRpb24g
YXMgaWYgd3JpdHRlbiBpbiB0aGUgYm9keSBvZiB0aGlzIExpY2Vuc2UuCgog
IDkuIFRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gbWF5IHB1Ymxpc2gg
cmV2aXNlZCBhbmQvb3IgbmV3IHZlcnNpb25zCm9mIHRoZSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZyb20gdGltZSB0byB0aW1lLiAgU3VjaCBuZXcgdmVy
c2lvbnMgd2lsbApiZSBzaW1pbGFyIGluIHNwaXJpdCB0byB0aGUgcHJlc2Vu
dCB2ZXJzaW9uLCBidXQgbWF5IGRpZmZlciBpbiBkZXRhaWwgdG8KYWRkcmVz
cyBuZXcgcHJvYmxlbXMgb3IgY29uY2VybnMuCgpFYWNoIHZlcnNpb24gaXMg
Z2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gIElmIHRo
ZSBQcm9ncmFtCnNwZWNpZmllcyBhIHZlcnNpb24gbnVtYmVyIG9mIHRoaXMg
TGljZW5zZSB3aGljaCBhcHBsaWVzIHRvIGl0IGFuZCAiYW55CmxhdGVyIHZl
cnNpb24iLCB5b3UgaGF2ZSB0aGUgb3B0aW9uIG9mIGZvbGxvd2luZyB0aGUg
dGVybXMgYW5kIGNvbmRpdGlvbnMKZWl0aGVyIG9mIHRoYXQgdmVyc2lvbiBv
ciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUK
U29mdHdhcmUgRm91bmRhdGlvbi4gIElmIHRoZSBQcm9ncmFtIGRvZXMgbm90
IHNwZWNpZnkgYSB2ZXJzaW9uIG51bWJlciBvZgp0aGlzIExpY2Vuc2UsIHlv
dSBtYXkgY2hvb3NlIGFueSB2ZXJzaW9uIGV2ZXIgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24uCgogIDEwLiBJZiB5b3Ugd2lz
aCB0byBpbmNvcnBvcmF0ZSBwYXJ0cyBvZiB0aGUgUHJvZ3JhbSBpbnRvIG90
aGVyIGZyZWUKcHJvZ3JhbXMgd2hvc2UgZGlzdHJpYnV0aW9uIGNvbmRpdGlv
bnMgYXJlIGRpZmZlcmVudCwgd3JpdGUgdG8gdGhlIGF1dGhvcgp0byBhc2sg
Zm9yIHBlcm1pc3Npb24uICBGb3Igc29mdHdhcmUgd2hpY2ggaXMgY29weXJp
Z2h0ZWQgYnkgdGhlIEZyZWUKU29mdHdhcmUgRm91bmRhdGlvbiwgd3JpdGUg
dG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgd2Ugc29tZXRpbWVz
Cm1ha2UgZXhjZXB0aW9ucyBmb3IgdGhpcy4gIE91ciBkZWNpc2lvbiB3aWxs
IGJlIGd1aWRlZCBieSB0aGUgdHdvIGdvYWxzCm9mIHByZXNlcnZpbmcgdGhl
IGZyZWUgc3RhdHVzIG9mIGFsbCBkZXJpdmF0aXZlcyBvZiBvdXIgZnJlZSBz
b2Z0d2FyZSBhbmQKb2YgcHJvbW90aW5nIHRoZSBzaGFyaW5nIGFuZCByZXVz
ZSBvZiBzb2Z0d2FyZSBnZW5lcmFsbHkuCgoJCQkgICAgTk8gV0FSUkFOVFkK
CiAgMTEuIEJFQ0FVU0UgVEhFIFBST0dSQU0gSVMgTElDRU5TRUQgRlJFRSBP
RiBDSEFSR0UsIFRIRVJFIElTIE5PIFdBUlJBTlRZCkZPUiBUSEUgUFJPR1JB
TSwgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQgQlkgQVBQTElDQUJMRSBMQVcu
ICBFWENFUFQgV0hFTgpPVEhFUldJU0UgU1RBVEVEIElOIFdSSVRJTkcgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORC9PUiBPVEhFUiBQQVJUSUVTClBST1ZJ
REUgVEhFIFBST0dSQU0gIkFTIElTIiBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO
WSBLSU5ELCBFSVRIRVIgRVhQUkVTU0VECk9SIElNUExJRUQsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GCk1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBUSEUgRU5USVJFIFJJU0sgQVMKVE8gVEhFIFFVQUxJ
VFkgQU5EIFBFUkZPUk1BTkNFIE9GIFRIRSBQUk9HUkFNIElTIFdJVEggWU9V
LiAgU0hPVUxEIFRIRQpQUk9HUkFNIFBST1ZFIERFRkVDVElWRSwgWU9VIEFT
U1VNRSBUSEUgQ09TVCBPRiBBTEwgTkVDRVNTQVJZIFNFUlZJQ0lORywKUkVQ
QUlSIE9SIENPUlJFQ1RJT04uCgogIDEyLiBJTiBOTyBFVkVOVCBVTkxFU1Mg
UkVRVUlSRUQgQlkgQVBQTElDQUJMRSBMQVcgT1IgQUdSRUVEIFRPIElOIFdS
SVRJTkcKV0lMTCBBTlkgQ09QWVJJR0hUIEhPTERFUiwgT1IgQU5ZIE9USEVS
IFBBUlRZIFdITyBNQVkgTU9ESUZZIEFORC9PUgpSRURJU1RSSUJVVEUgVEhF
IFBST0dSQU0gQVMgUEVSTUlUVEVEIEFCT1ZFLCBCRSBMSUFCTEUgVE8gWU9V
IEZPUiBEQU1BR0VTLApJTkNMVURJTkcgQU5ZIEdFTkVSQUwsIFNQRUNJQUws
IElOQ0lERU5UQUwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIEFSSVNJTkcK
T1VUIE9GIFRIRSBVU0UgT1IgSU5BQklMSVRZIFRPIFVTRSBUSEUgUFJPR1JB
TSAoSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRApUTyBMT1NTIE9GIERBVEEg
T1IgREFUQSBCRUlORyBSRU5ERVJFRCBJTkFDQ1VSQVRFIE9SIExPU1NFUyBT
VVNUQUlORUQgQlkKWU9VIE9SIFRISVJEIFBBUlRJRVMgT1IgQSBGQUlMVVJF
IE9GIFRIRSBQUk9HUkFNIFRPIE9QRVJBVEUgV0lUSCBBTlkgT1RIRVIKUFJP
R1JBTVMpLCBFVkVOIElGIFNVQ0ggSE9MREVSIE9SIE9USEVSIFBBUlRZIEhB
UyBCRUVOIEFEVklTRUQgT0YgVEhFClBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFUy4KCgkJICAgICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKDAoJ
ICAgIEhvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBQcm9n
cmFtcwoKICBJZiB5b3UgZGV2ZWxvcCBhIG5ldyBwcm9ncmFtLCBhbmQgeW91
IHdhbnQgaXQgdG8gYmUgb2YgdGhlIGdyZWF0ZXN0CnBvc3NpYmxlIHVzZSB0
byB0aGUgcHVibGljLCB0aGUgYmVzdCB3YXkgdG8gYWNoaWV2ZSB0aGlzIGlz
IHRvIG1ha2UgaXQKZnJlZSBzb2Z0d2FyZSB3aGljaCBldmVyeW9uZSBjYW4g
cmVkaXN0cmlidXRlIGFuZCBjaGFuZ2UgdW5kZXIgdGhlc2UgdGVybXMuCgog
IFRvIGRvIHNvLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRo
ZSBwcm9ncmFtLiAgSXQgaXMgc2FmZXN0CnRvIGF0dGFjaCB0aGVtIHRvIHRo
ZSBzdGFydCBvZiBlYWNoIHNvdXJjZSBmaWxlIHRvIG1vc3QgZWZmZWN0aXZl
bHkKY29udmV5IHRoZSBleGNsdXNpb24gb2Ygd2FycmFudHk7IGFuZCBlYWNo
IGZpbGUgc2hvdWxkIGhhdmUgYXQgbGVhc3QKdGhlICJjb3B5cmlnaHQiIGxp
bmUgYW5kIGEgcG9pbnRlciB0byB3aGVyZSB0aGUgZnVsbCBub3RpY2UgaXMg
Zm91bmQuCgogICAgPG9uZSBsaW5lIHRvIGdpdmUgdGhlIHByb2dyYW0ncyBu
YW1lIGFuZCBhIGJyaWVmIGlkZWEgb2Ygd2hhdCBpdCBkb2VzLj4KICAgIENv
cHlyaWdodCAoQykgPHllYXI+ICA8bmFtZSBvZiBhdXRob3I+CgogICAgVGhp
cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vciBtb2RpZnkKICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5CiAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgogICAgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KCiAgICBUaGlzIHByb2dyYW0gaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAgICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
CiAgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgoKICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAgICBhbG9uZyB3aXRo
IHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0
d2FyZQogICAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBT
dWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQoKCkFsc28g
YWRkIGluZm9ybWF0aW9uIG9uIGhvdyB0byBjb250YWN0IHlvdSBieSBlbGVj
dHJvbmljIGFuZCBwYXBlciBtYWlsLgoKSWYgdGhlIHByb2dyYW0gaXMgaW50
ZXJhY3RpdmUsIG1ha2UgaXQgb3V0cHV0IGEgc2hvcnQgbm90aWNlIGxpa2Ug
dGhpcwp3aGVuIGl0IHN0YXJ0cyBpbiBhbiBpbnRlcmFjdGl2ZSBtb2RlOgoK
ICAgIEdub21vdmlzaW9uIHZlcnNpb24gNjksIENvcHlyaWdodCAoQykgeWVh
ciAgbmFtZSBvZiBhdXRob3IKICAgIEdub21vdmlzaW9uIGNvbWVzIHdpdGgg
QUJTT0xVVEVMWSBOTyBXQVJSQU5UWTsgZm9yIGRldGFpbHMgdHlwZSBgc2hv
dyB3Jy4KICAgIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZSwgYW5kIHlvdSBhcmUg
d2VsY29tZSB0byByZWRpc3RyaWJ1dGUgaXQKICAgIHVuZGVyIGNlcnRhaW4g
Y29uZGl0aW9uczsgdHlwZSBgc2hvdyBjJyBmb3IgZGV0YWlscy4KClRoZSBo
eXBvdGhldGljYWwgY29tbWFuZHMgYHNob3cgdycgYW5kIGBzaG93IGMnIHNo
b3VsZCBzaG93IHRoZSBhcHByb3ByaWF0ZQpwYXJ0cyBvZiB0aGUgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZS4gIE9mIGNvdXJzZSwgdGhlIGNvbW1hbmRzIHlv
dSB1c2UgbWF5CmJlIGNhbGxlZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBgc2hv
dyB3JyBhbmQgYHNob3cgYyc7IHRoZXkgY291bGQgZXZlbiBiZQptb3VzZS1j
bGlja3Mgb3IgbWVudSBpdGVtcy0td2hhdGV2ZXIgc3VpdHMgeW91ciBwcm9n
cmFtLgoKWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5
b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHlvdXIKc2Nob29sLCBpZiBh
bnksIHRvIHNpZ24gYSAiY29weXJpZ2h0IGRpc2NsYWltZXIiIGZvciB0aGUg
cHJvZ3JhbSwgaWYKbmVjZXNzYXJ5LiAgSGVyZSBpcyBhIHNhbXBsZTsgYWx0
ZXIgdGhlIG5hbWVzOgoKICBZb3lvZHluZSwgSW5jLiwgaGVyZWJ5IGRpc2Ns
YWltcyBhbGwgY29weXJpZ2h0IGludGVyZXN0IGluIHRoZSBwcm9ncmFtCiAg
YEdub21vdmlzaW9uJyAod2hpY2ggbWFrZXMgcGFzc2VzIGF0IGNvbXBpbGVy
cykgd3JpdHRlbiBieSBKYW1lcyBIYWNrZXIuCgogIDxzaWduYXR1cmUgb2Yg
VHkgQ29vbj4sIDEgQXByaWwgMTk4OQogIFR5IENvb24sIFByZXNpZGVudCBv
ZiBWaWNlCgpUaGlzIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3Qg
cGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtIGludG8KcHJvcHJp
ZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0
aW5lIGxpYnJhcnksIHlvdSBtYXkKY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwg
dG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdp
dGggdGhlCmxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8g
ZG8sIHVzZSB0aGUgR05VIExpYnJhcnkgR2VuZXJhbApQdWJsaWMgTGljZW5z
ZSBpbnN0ZWFkIG9mIHRoaXMgTGljZW5zZS4KKi8K

--0-1834750279-1017687924=:15124--





From esoteric@oiva.sange.fi Tue Apr 02 00:28:04 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16s9L5-000CnL-00; Tue, 02 Apr 2002 00:27:43 +0300
Received: with LISTAR (v0.129a; list misc); Tue, 02 Apr 2002 00:27:36 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16s9KR-000CnC-00; Tue, 02 Apr 2002 00:27:04 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 02 Apr 2002 00:26:57 +0300 (EEST)
Received: from mailout6-0.nyroc.rr.com ([24.92.226.125])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16s9KK-000Cn6-00
	for lang@esoteric.sange.fi; Tue, 02 Apr 2002 00:26:56 +0300
Received: from mail1.twcny.rr.com (mail1-0.nyroc.rr.com [24.92.226.74])
	by mailout6-0.nyroc.rr.com (8.11.6/Road Runner 1.12) with ESMTP id g31LQno20860
	for <lang@esoteric.sange.fi>; Mon, 1 Apr 2002 16:26:50 -0500 (EST)
Received: from riff ([24.92.246.4]) by mail1.twcny.rr.com
          (Post.Office MTA v3.5.3 release 223
          ID# 0-59787U250000L250000S0V35) with ESMTP id com
          for <lang@esoteric.sange.fi>; Mon, 1 Apr 2002 16:26:47 -0500
Received: from rob by riff with local (Exim 3.35 #1 (Debian))
	id 16s9KC-0000QP-00
	for <lang@esoteric.sange.fi>; Mon, 01 Apr 2002 16:26:48 -0500
Date: Mon, 1 Apr 2002 16:26:48 -0500
From: Rob Speer <rob@twcny.rr.com>
To: lang@esoteric.sange.fi
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
Message-ID: <20020401212648.GD1101@twcny.rr.com>
References: <Pine.LNX.4.21.0203300509020.8993-100000@dark.darkweb.com> <004901c1d963$95d5efe0$1d81ef9b@lennie>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <004901c1d963$95d5efe0$1d81ef9b@lennie>
User-Agent: Mutt/1.3.28i
X-Is-It-Not-Nifty: www.sluggy.com
Sender: Rob Speer <rob@riff>
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: rob@twcny.rr.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: rob@twcny.rr.com
Precedence: bulk
X-list: misc

On Sun, Mar 31, 2002 at 10:38:34PM +0200, D De Villiers wrote:
> Ben Rudiak-Gould,
> 
> > But methinks the same could be said of the functionality captured in the
> > H, Q, and 9 instructions. And + as well for that matter, not to mention
> > computer programming in general.
> 
> Ok! :) I've implemented "+" but it doesn't do anything - Only exist ! <g>
> There is nothing wrong with HQ9+ (don't take me wrong here !)... I just
> wanna know how do I implement "+" and what's its purpose.

You don't, and there is no purpose.

You seem to be entirely missing the fact that the HQ9+ language is a
joke. There is no need to actually implement it, though the fact that
someone already did (in Ocaml) gives it a sort of completeness.

-- 
Rob Speer






From esoteric@oiva.sange.fi Tue Apr 02 08:01:02 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sGOL-000Dkd-00; Tue, 02 Apr 2002 07:59:33 +0300
Received: with LISTAR (v0.129a; list misc); Tue, 02 Apr 2002 07:59:26 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sGMp-000DkR-00; Tue, 02 Apr 2002 07:57:59 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 02 Apr 2002 07:57:52 +0300 (EEST)
Received: from sabre-wulf.nvg.ntnu.no ([129.241.210.67])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sGMh-000DkL-00
	for lang@esoteric.sange.fi; Tue, 02 Apr 2002 07:57:51 +0300
Received: from hagbart.nvg.ntnu.no ([IPv6:::ffff:129.241.210.68]:38305 "EHLO
	hagbart.nvg.ntnu.no" ident: "[Ry6XdnT3uqvdNAA6Mx158+hc8MO61UgC]" whoson:
	"-unregistered-") by sabre-wulf.nvg.ntnu.no with ESMTP
	id <S433793AbSDBE52>; Tue, 2 Apr 2002 06:57:28 +0200
Date:	Tue, 2 Apr 2002 06:57:27 +0200 (CEST)
From:	Orjan Johansen <oerjan@nvg.ntnu.no>
To:	Esoteric Languages List <lang@esoteric.sange.fi>
Subject: [lang] CHQRS9+
In-Reply-To: <20020401212648.GD1101@twcny.rr.com>
Message-ID: <Pine.LNX.4.40.0204020647380.30321-100000@hagbart.nvg.ntnu.no>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: oerjan@nvg.ntnu.no
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: oerjan@nvg.ntnu.no
Precedence: bulk
X-list: misc

On Mon, 1 Apr 2002, Rob Speer wrote:

> There is no need to actually implement it, though the fact that
> someone already did (in Ocaml) gives it a sort of completeness.

On the other hand, it might be a useful preliminary test of the power of
other programming languages to see whether they can implement HQ9+.

I hereby declare the extended language CHQRS9+, probably reinventing the
wheel:

C =3D prints the entire input of the program to output.
H =3D prints "Hello world!".
Q =3D prints the program source.
R =3D prints the input rot-13'ed.
S =3D sorts the input lines and prints them.
9 =3D prints the text of "99 bottles of beer".
+ =3D increments the accumulator.

Greetings,
=D8rjan.

--=20
My Unlambda page: <http://home.nvg.org/~oerjan/unlambda/>
Latest contraption:  Unlambda to Ocaml compiler.






From esoteric@oiva.sange.fi Tue Apr 02 09:11:36 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sHVr-000DuT-00; Tue, 02 Apr 2002 09:11:23 +0300
Received: with LISTAR (v0.129a; list misc); Tue, 02 Apr 2002 09:11:16 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sHVI-000DuK-00; Tue, 02 Apr 2002 09:10:48 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 02 Apr 2002 09:10:41 +0300 (EEST)
Received: from web12906.mail.yahoo.com ([216.136.174.73])
	by oiva.sange.fi with smtp (Exim 3.33 #1)
	id 16sHVA-000DuE-00
	for lang@esoteric.sange.fi; Tue, 02 Apr 2002 09:10:40 +0300
Message-ID: <20020402061038.53243.qmail@web12906.mail.yahoo.com>
Received: from [24.78.145.92] by web12906.mail.yahoo.com via HTTP; Mon, 01 Apr 2002 22:10:38 PST
Date: Mon, 1 Apr 2002 22:10:38 -0800 (PST)
From: Nikita Ayzikovsky <order_of_may@yahoo.com>
Subject: [lang] Re: CHQRS9+
To: lang@esoteric.sange.fi
In-Reply-To: <Pine.LNX.4.40.0204020647380.30321-100000@hagbart.nvg.ntnu.no>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: order_of_may@yahoo.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: order_of_may@yahoo.com
Precedence: bulk
X-list: misc

--- Orjan Johansen <oerjan@nvg.ntnu.no> wrote:

> I hereby declare the extended language CHQRS9+, probably reinventing the
> wheel:
> 
> C = prints the entire input of the program to output.
> H = prints "Hello world!".
> Q = prints the program source.
> R = prints the input rot-13'ed.
> S = sorts the input lines and prints them.
> 9 = prints the text of "99 bottles of beer".
> + = increments the accumulator.

I propose to add another instruction:

  I = interprets a CHQRS9+ program given in the input.

__________________________________________________
Do You Yahoo!?
Yahoo! Tax Center - online filing with TurboTax
http://http://taxes.yahoo.com/





From esoteric@oiva.sange.fi Tue Apr 02 09:52:40 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sI9l-000E5J-00; Tue, 02 Apr 2002 09:52:37 +0300
Received: with LISTAR (v0.129a; list misc); Tue, 02 Apr 2002 09:52:30 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sI9a-000E5D-00; Tue, 02 Apr 2002 09:52:26 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 02 Apr 2002 09:52:19 +0300 (EEST)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sI9S-000E57-00
	for lang@esoteric.sange.fi; Tue, 02 Apr 2002 09:52:18 +0300
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g326qFr27338
	for <lang@esoteric.sange.fi>; Tue, 2 Apr 2002 09:52:17 +0300
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g326q9W32242
	for <lang@esoteric.sange.fi>; Tue, 2 Apr 2002 09:52:12 +0300
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Tue, 2 Apr 2002 09:52:09 +0300 (EEST)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: lang@esoteric.sange.fi
Subject: [lang] Re: New language: conser
In-Reply-To: <20020401190524.19320.qmail@web21408.mail.yahoo.com>
Message-ID: <Pine.LNX.4.44.0204020911120.30165-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc

This language seems quite neat. Maybe this could serve as the long-awaited 
pairing function tarpit. (We already have functional, imperative and 
combinatorial ones, as well as message-sending. Missing are a concurrency 
tarpit, where the only data type is thread, join-calculus tarpit, OO 
tarpit, um...)

Anyway, I'm not totally clear about the semantics of the language. For 
example, does (a,b) form a set with one element, the pair of a and b? Is 
(A) always the same as A? What do you mean by consing with respect to sets 
- adding one element to the set? What does (a,) put in the cdr? The empty 
set? 

On Mon, 1 Apr 2002, Quowong Liu wrote:
> argument, the argument is 1 appended with the contents of stdin,
> encoded as a surreal number.  The result of evaluating main, if it is

Does the 1 come first or do the contents of stdin come first? I guess from 
your example programs that a surreal number n+1 is a set of one element, a 
pair (n,). Is this so?

> an integral surreal number, gets decoded into a byte stream with the
> first byte discarded, and sent to stdout.  The extra byte needs to be
> added or removed in case the input or the output begins with 0 or 255.

Is the byte stream encoded as a base-256 number?

> Predefined functions:
>  < is car.
>  > is cdr.
>  (,) is cons.
>  () is union.
>  (&) is intersection.
>  (!) is set subtraction.

What are the semantics of these? Could you give some examples of what 
arguments yield what result?

If I guess correctly, car returns the union of first elements of the pairs 
of a set, whereas cdr returns the union of second elements of the pairs of 
a set. Is this so? 

> Since there are no higher-order functions, there is no need to
> explicitly specify precedence, so there is no way to do so.

Doesn't a unit union provide a way to explicitly define precedence anyway?

> Some things to note:
>  <(a b) is equivalent to (<a <b).
>  ((a b)) is equivalent to (a b).
>  ((a b) c) is equivalent to (a b c).
>  f (a b) c is equivalent to (f a c  f b c).
>  f (a b) (c d) is equivalent to (f a c  f a d  f b c  f b d).
>  f () is always ().
>  f () a is always ().
>  f a () is always ().

Okay, now this seems to play a central role in really defining what the 
language does. Functions seem to have a set-unwinding nature - I guess 
they then receive sets of one element as arguments? 

> Should conser programs be lazily evaluated?
> 
> If, when forcing f a b, if a evaluates to (), then f a b = () and b
> never needs to be evaluated.  However, if a never terminates, and b
> would evaluate to (), then, if the order of evaluation is left to right,
> f a b would never terminate, even if b evaluates to ().  If the
> evaluation of a and b are done in parallel, then f a b = () if either a
> or b is ().

I think parallel evaluation would be natural anyway, because you need 
exactly one element of each set to be able to call f at all. This will, of 
course, require lazy sets - which might be some trouble to implement. 

> Still, with lazy evaluation,
>  (finite-set & infinite-set) either is finite-set or doesn't terminate
>  (finite-set ! infinite-set) either is () or doesn't terminate

Of course. But with a lazy implementation of sets, you can make the
expression terminate in every case where it is possible to terminate at
all. Actually, I think the language could get some very interesting
features if made lazy.

-- 

Am fuar -> symb <- am fesh
atehwa@iki.fi








From esoteric@oiva.sange.fi Tue Apr 02 09:56:51 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sIDq-000E6m-00; Tue, 02 Apr 2002 09:56:50 +0300
Received: with LISTAR (v0.129a; list misc); Tue, 02 Apr 2002 09:56:43 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sIDU-000E6W-00; Tue, 02 Apr 2002 09:56:28 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 02 Apr 2002 09:56:22 +0300 (EEST)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sIDN-000E6Q-00
	for lang@esoteric.sange.fi; Tue, 02 Apr 2002 09:56:21 +0300
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g326uJr28903
	for <lang@esoteric.sange.fi>; Tue, 2 Apr 2002 09:56:20 +0300
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g326uHx32452
	for <lang@esoteric.sange.fi>; Tue, 2 Apr 2002 09:56:17 +0300
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Tue, 2 Apr 2002 09:56:17 +0300 (EEST)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: lang@esoteric.sange.fi
Subject: [lang] Re: CHQRS9+
In-Reply-To: <20020402061038.53243.qmail@web12906.mail.yahoo.com>
Message-ID: <Pine.LNX.4.44.0204020952390.30165-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc

On Mon, 1 Apr 2002, Nikita Ayzikovsky wrote:
> > C = prints the entire input of the program to output.
> > H = prints "Hello world!".
> > Q = prints the program source.
> > R = prints the input rot-13'ed.
> > S = sorts the input lines and prints them.
> > 9 = prints the text of "99 bottles of beer".
> > + = increments the accumulator.
> I propose to add another instruction:
>   I = interprets a CHQRS9+ program given in the input.

Interestingly, if the 'I' already comes from the input, it is equivalent
to a NOP. This is a cheat many other programming languages have - for 
example, many so-called interpreters actually only read in an expression 
of the language and call a language-level eval (or equivalent). 

Panu

-- 

Am fuar -> symb <- am fesh
atehwa@iki.fi







From esoteric@oiva.sange.fi Tue Apr 02 11:02:24 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sJF6-000EJc-00; Tue, 02 Apr 2002 11:02:12 +0300
Received: with LISTAR (v0.129a; list misc); Tue, 02 Apr 2002 11:02:05 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sJER-000EJR-00; Tue, 02 Apr 2002 11:01:31 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 02 Apr 2002 11:01:24 +0300 (EEST)
Received: from tdsiaccess.demon.co.uk ([158.152.60.40] helo=mailhost.tdsi.co.uk)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sJEJ-000EJK-00
	for lang@esoteric.sange.fi; Tue, 02 Apr 2002 11:01:23 +0300
Received: from 10.0.0.165 by mailhost.tdsi.co.uk ([10.0.0.230] running VPOP3) with SMTP for <lang@esoteric.sange.fi>; Tue, 2 Apr 2002 09:07:05 +0100
From: dmoss@tdsi.co.uk
To: <lang@esoteric.sange.fi>
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
Date: Tue, 2 Apr 2002 08:58:59 +0100
Message-ID: <000601c1da1c$3f7eab50$a500000a@td165>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook CWS, Build 9.0.2416 (9.0.2910.0)
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300
In-Reply-To: <003e01c1d963$8d8cf720$1d81ef9b@lennie>
Importance: Normal
X-Server: VPOP3 V1.5.0a - Registered
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: dmoss@tdsi.co.uk
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: dmoss@tdsi.co.uk
Precedence: bulk
X-list: misc

>>it is casting shadows on the wall of Plato's cave.

>?? Every math sum must have an answer and what would that be - doing maths
>without getting the answer!

I think the idea is getting the answers without doing math. that's where AI
comes in!






From esoteric@oiva.sange.fi Tue Apr 02 12:16:26 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sKOd-000EZM-00; Tue, 02 Apr 2002 12:16:07 +0300
Received: with LISTAR (v0.129a; list misc); Tue, 02 Apr 2002 12:16:00 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sKNj-000EZD-00; Tue, 02 Apr 2002 12:15:11 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 02 Apr 2002 12:15:05 +0300 (EEST)
Received: from dark.darkweb.com ([216.163.74.170])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sKNc-000EZ4-00
	for lang@esoteric.sange.fi; Tue, 02 Apr 2002 12:15:04 +0300
Received: from localhost (benrg@localhost)
	by dark.darkweb.com (8.9.3/8.9.3) with ESMTP id BAA04842
	for <lang@esoteric.sange.fi>; Tue, 2 Apr 2002 01:14:54 -0800
Date: Tue, 2 Apr 2002 01:14:54 -0800 (PST)
From: Ben Rudiak-Gould <benrg@dark.darkweb.com>
To: lang@esoteric.sange.fi
Subject: [lang] Re: New language: conser
In-Reply-To: <20020401190524.19320.qmail@web21408.mail.yahoo.com>
Message-ID: <Pine.LNX.4.21.0204020043060.5826-100000@dark.darkweb.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: benrg@dark.darkweb.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: benrg@dark.darkweb.com
Precedence: bulk
X-list: misc

On Mon, 1 Apr 2002, Quowong Liu wrote:

> Hello.
> 
> Here's a language I invented.

I love it.

Here's a suggestion for solving the problem of astronomical running times
for nontrivial I/O: instead of encoding the input and output as integers,
encode them as binary fractions, so "Hello, World!" would be something
like 0.0100100001100101011011000110110001101111001011000010000001010-
11101101111011100100110110001100100001000010000101. The surreals are
effectively unary for integers but binary for fractions, so an O(log n)
representation (and processing time) for the fractions should be possible,
I think. Also, you might be able to lazify it, at least for input. You
would have the same problem with zero bytes in the input/output (except at
the end instead of the beginning), and it could be solved by the same
kluge.

-- Ben






From esoteric@oiva.sange.fi Tue Apr 02 12:41:27 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sKmy-000EeG-00; Tue, 02 Apr 2002 12:41:16 +0300
Received: with LISTAR (v0.129a; list misc); Tue, 02 Apr 2002 12:41:10 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sKmk-000Ee5-00; Tue, 02 Apr 2002 12:41:02 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 02 Apr 2002 12:40:55 +0300 (EEST)
Received: from ns3.safety.net ([216.40.201.32])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sKmb-000Edz-00
	for lang@esoteric.sange.fi; Tue, 02 Apr 2002 12:40:53 +0300
Received: from there (rs.rackshack.net.safety.net [216.40.201.32])
	by ns3.safety.net (8.10.2/8.10.2) with SMTP id g329eks20169
	for <lang@esoteric.sange.fi>; Tue, 2 Apr 2002 02:40:50 -0700
Message-Id: <200204020940.g329eks20169@ns3.safety.net>
Content-Type: text/plain;
  charset="iso-8859-1"
From: "Cliff L. Biffle" <cbiffle@safety.net>
To: lang@esoteric.sange.fi
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
Date: Tue, 2 Apr 2002 02:40:46 -0700
X-Mailer: KMail [version 1.3.2]
References: <Pine.LNX.4.21.0203300509020.8993-100000@dark.darkweb.com> <004901c1d963$95d5efe0$1d81ef9b@lennie> <20020401212648.GD1101@twcny.rr.com>
In-Reply-To: <20020401212648.GD1101@twcny.rr.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cbiffle@safety.net
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: cbiffle@safety.net
Precedence: bulk
X-list: misc

On Monday 01 April 2002 02:26 pm, you wrote:
> You seem to be entirely missing the fact that the HQ9+ language is a
> joke.

Depends on perspective; from what I can tell, I've written nearly as many 
working pieces of software in HQ9+ as are available in, say, Malboge.  I do, 
after all, have a working Hello, World!, a quine, an implementation of 
ninety-nine bottles of beer on the wall, and in fact a recursive 
Fibonacci-sequence generator (with optional language extension F).

> There is no need to actually implement it, though the fact that
> someone already did (in Ocaml) gives it a sort of completeness.

I have working implementations in the following languages, actually.
--Java
--ANSI C
--TI-92 calculator C
--TI-BASIC
--Visual Basic
--TRS-80 BASIC (model 100)
--Perl
--Ruby
--PHP

Coming soon:
--Brainfuck!  Mwa ha ha!  (riiiiiight)

-Cliff





From esoteric@oiva.sange.fi Tue Apr 02 12:43:36 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sKpC-000EfY-00; Tue, 02 Apr 2002 12:43:34 +0300
Received: with LISTAR (v0.129a; list misc); Tue, 02 Apr 2002 12:43:27 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sKot-000EfL-00; Tue, 02 Apr 2002 12:43:16 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 02 Apr 2002 12:43:09 +0300 (EEST)
Received: from ns3.safety.net ([216.40.201.32])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sKom-000EfF-00
	for lang@esoteric.sange.fi; Tue, 02 Apr 2002 12:43:08 +0300
Received: from there (rs.rackshack.net.safety.net [216.40.201.32])
	by ns3.safety.net (8.10.2/8.10.2) with SMTP id g329h6s20250
	for <lang@esoteric.sange.fi>; Tue, 2 Apr 2002 02:43:06 -0700
Message-Id: <200204020943.g329h6s20250@ns3.safety.net>
Content-Type: text/plain;
  charset="iso-8859-1"
From: "Cliff L. Biffle" <cbiffle@safety.net>
To: lang@esoteric.sange.fi
Subject: [lang] Re: CHQRS9+
Date: Tue, 2 Apr 2002 02:43:06 -0700
X-Mailer: KMail [version 1.3.2]
References: <Pine.LNX.4.40.0204020647380.30321-100000@hagbart.nvg.ntnu.no>
In-Reply-To: <Pine.LNX.4.40.0204020647380.30321-100000@hagbart.nvg.ntnu.no>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cbiffle@safety.net
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: cbiffle@safety.net
Precedence: bulk
X-list: misc

On Monday 01 April 2002 09:57 pm, you wrote:
> C = prints the entire input of the program to output.
> H = prints "Hello world!".
> Q = prints the program source.
> R = prints the input rot-13'ed.
> S = sorts the input lines and prints them.
> 9 = prints the text of "99 bottles of beer".
> + = increments the accumulator.

I've had ROT13 proposed as an extension before.  I wholeheartedly support 
these language extensions and will consider them an 'optional' part of the 
fundamental standard.  I do suggest the addition of language extension F 
(prints a Fibonacci sequence until killed) and D (a three-D first-person 
polygon-based shooter, to demonstrate the speed of CHQRSFD9+ and improve its 
embedded-systems appeal).

-Cliff





From esoteric@oiva.sange.fi Tue Apr 02 12:44:40 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sKqF-000Eil-00; Tue, 02 Apr 2002 12:44:39 +0300
Received: with LISTAR (v0.129a; list misc); Tue, 02 Apr 2002 12:44:32 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sKq7-000EiT-00; Tue, 02 Apr 2002 12:44:32 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 02 Apr 2002 12:44:25 +0300 (EEST)
Received: from ns3.safety.net ([216.40.201.32])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sKq0-000EiN-00
	for lang@esoteric.sange.fi; Tue, 02 Apr 2002 12:44:24 +0300
Received: from there (rs.rackshack.net.safety.net [216.40.201.32])
	by ns3.safety.net (8.10.2/8.10.2) with SMTP id g329iMs20315
	for <lang@esoteric.sange.fi>; Tue, 2 Apr 2002 02:44:22 -0700
Message-Id: <200204020944.g329iMs20315@ns3.safety.net>
Content-Type: text/plain;
  charset="iso-8859-1"
From: "Cliff L. Biffle" <cbiffle@safety.net>
To: lang@esoteric.sange.fi
Subject: [lang] Re: CHQRS9+
Date: Tue, 2 Apr 2002 02:44:23 -0700
X-Mailer: KMail [version 1.3.2]
References: <20020402061038.53243.qmail@web12906.mail.yahoo.com>
In-Reply-To: <20020402061038.53243.qmail@web12906.mail.yahoo.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cbiffle@safety.net
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: cbiffle@safety.net
Precedence: bulk
X-list: misc

On Monday 01 April 2002 11:10 pm, you wrote:
>   I = interprets a CHQRS9+ program given in the input.

This opens the possibilty for recursive CHQRSDIF9+ programs.  I like it.

-Cliff





From esoteric@oiva.sange.fi Tue Apr 02 12:45:42 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sKrG-000Ekb-00; Tue, 02 Apr 2002 12:45:42 +0300
Received: with LISTAR (v0.129a; list misc); Tue, 02 Apr 2002 12:45:35 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sKr8-000EkQ-00; Tue, 02 Apr 2002 12:45:34 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 02 Apr 2002 12:45:27 +0300 (EEST)
Received: from ns3.safety.net ([216.40.201.32])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sKr0-000EkA-00
	for lang@esoteric.sange.fi; Tue, 02 Apr 2002 12:45:26 +0300
Received: from there (rs.rackshack.net.safety.net [216.40.201.32])
	by ns3.safety.net (8.10.2/8.10.2) with SMTP id g329jOs20391
	for <lang@esoteric.sange.fi>; Tue, 2 Apr 2002 02:45:24 -0700
Message-Id: <200204020945.g329jOs20391@ns3.safety.net>
Content-Type: text/plain;
  charset="iso-8859-1"
From: "Cliff L. Biffle" <cbiffle@safety.net>
To: lang@esoteric.sange.fi
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
Date: Tue, 2 Apr 2002 02:45:24 -0700
X-Mailer: KMail [version 1.3.2]
References: <000601c1da1c$3f7eab50$a500000a@td165>
In-Reply-To: <000601c1da1c$3f7eab50$a500000a@td165>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cbiffle@safety.net
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: cbiffle@safety.net
Precedence: bulk
X-list: misc

On Tuesday 02 April 2002 12:58 am, you wrote:
> I think the idea is getting the answers without doing math. that's where AI
> comes in!

Actually, this brings us to my next language, HQ9+42.

-Cliff





From esoteric@oiva.sange.fi Tue Apr 02 12:52:56 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sKy2-000Enz-00; Tue, 02 Apr 2002 12:52:43 +0300
Received: with LISTAR (v0.129a; list misc); Tue, 02 Apr 2002 12:52:35 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sKxg-000Enj-00; Tue, 02 Apr 2002 12:52:21 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 02 Apr 2002 12:52:13 +0300 (EEST)
Received: from smtp-send.myrealbox.com ([192.108.102.143])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sKxY-000Enb-00
	for lang@esoteric.sange.fi; Tue, 02 Apr 2002 12:52:12 +0300
Received: from amir amirlb@smtp-send.myrealbox.com [62.219.225.37]
	by smtp-send.myrealbox.com with Novell NIMS $Revision:   2.88  $ on Novell NetWare;
	Tue, 02 Apr 2002 02:51:56 -0700
Message-ID: <010501c1da34$c87b6890$3900a8c0@amir>
From: <amirlb@myrealbox.com>
To: <lang@esoteric.sange.fi>
References: <Pine.LNX.4.40.0204020647380.30321-100000@hagbart.nvg.ntnu.no> <200204020943.g329h6s20250@ns3.safety.net>
Subject: [lang] Re: CHQRS9+
Date: Tue, 2 Apr 2002 12:54:34 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2919.6700
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: amirlb@myrealbox.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: amirlb@myrealbox.com
Precedence: bulk
X-list: misc

> and D (a three-D first-person
> polygon-based shooter, to demonstrate the speed of CHQRSFD9+ and improve
its
> embedded-systems appeal).

I prefer Q for Quake.

--
Bad spellers of the world UNTIE!
          lightstep (Amir Livne)






From esoteric@oiva.sange.fi Tue Apr 02 13:16:16 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sLKf-000EuE-00; Tue, 02 Apr 2002 13:16:05 +0300
Received: with LISTAR (v0.129a; list misc); Tue, 02 Apr 2002 13:15:59 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sLKF-000Eu0-00; Tue, 02 Apr 2002 13:15:40 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 02 Apr 2002 13:15:33 +0300 (EEST)
Received: from [194.78.208.93] (helo=decis.be)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sLK8-000Etu-00
	for lang@esoteric.sange.fi; Tue, 02 Apr 2002 13:15:32 +0300
Received: from decis.be [192.168.0.20] by decis.be [194.78.208.93]
	with SMTP (MDaemon.v3.5.3.R)
	for <lang@esoteric.sange.fi>; Tue, 02 Apr 2002 12:05:18 +0200
Message-ID: <3CA985C4.D8953B13@decis.be>
Date: Tue, 02 Apr 2002 12:19:48 +0200
From: Frederic van der Plancke <fvdp@decis.be>
X-Mailer: Mozilla 4.77 [en] (Windows NT 5.0; U)
X-Accept-Language: en
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: CHQRS9+
References: <Pine.LNX.4.40.0204020647380.30321-100000@hagbart.nvg.ntnu.no> <200204020943.g329h6s20250@ns3.safety.net> <010501c1da34$c87b6890$3900a8c0@amir>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-MDRemoteIP: 192.168.0.20
X-Return-Path: fvdp@decis.be
X-MDaemon-Deliver-To: lang@esoteric.sange.fi
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: fvdp@decis.be
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: fvdp@decis.be
Precedence: bulk
X-list: misc



amirlb@myrealbox.com wrote:
> 
> > and D (a three-D first-person
> > polygon-based shooter, to demonstrate the speed of CHQRSFD9+ and improve
> its
> > embedded-systems appeal).
> 
> I prefer Q for Quake.

Then Q will simultaneously:
  - reproduce the program to output
  - spawn a game of Quake

...this will provide for strange, but legal, quine programs.

May I propose operation A:
A prints f(n,n) where f is the Ackermann function and n is the
input seen as a natural number (through some obvious encoding).

> 
> --
> Bad spellers of the world UNTIE!
>           lightstep (Amir Livne)






From esoteric@oiva.sange.fi Tue Apr 02 13:26:18 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sLUI-000ExV-00; Tue, 02 Apr 2002 13:26:02 +0300
Received: with LISTAR (v0.129a; list misc); Tue, 02 Apr 2002 13:25:55 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sLU5-000ExH-00; Tue, 02 Apr 2002 13:25:49 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 02 Apr 2002 13:25:42 +0300 (EEST)
Received: from smtp-send.myrealbox.com ([192.108.102.143])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sLTx-000Ex9-00
	for lang@esoteric.sange.fi; Tue, 02 Apr 2002 13:25:41 +0300
Received: from amir amirlb@smtp-send.myrealbox.com [62.219.225.37]
	by smtp-send.myrealbox.com with Novell NIMS $Revision:   2.88  $ on Novell NetWare;
	Tue, 02 Apr 2002 03:25:36 -0700
Message-ID: <011d01c1da39$7c766710$3900a8c0@amir>
From: <amirlb@myrealbox.com>
To: <lang@esoteric.sange.fi>
References: <Pine.LNX.4.40.0204020647380.30321-100000@hagbart.nvg.ntnu.no> <200204020943.g329h6s20250@ns3.safety.net> <010501c1da34$c87b6890$3900a8c0@amir> <3CA985C4.D8953B13@decis.be>
Subject: [lang] Re: CHQRS9+
Date: Tue, 2 Apr 2002 13:28:10 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2919.6700
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: amirlb@myrealbox.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: amirlb@myrealbox.com
Precedence: bulk
X-list: misc

> > I prefer Q for Quake.
> 
> Then Q will simultaneously:
>   - reproduce the program to output
>   - spawn a game of Quake
> 
> ...this will provide for strange, but legal, quine programs.

Sounds a little like the Povray quine...

--
Bad spellers of the world UNTIE!
          lightstep (Amir Livne)






From esoteric@oiva.sange.fi Tue Apr 02 16:31:34 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sOMF-000Fe8-00; Tue, 02 Apr 2002 16:29:55 +0300
Received: with LISTAR (v0.129a; list misc); Tue, 02 Apr 2002 16:29:49 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sOLe-000Fdz-00; Tue, 02 Apr 2002 16:29:18 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 02 Apr 2002 16:29:11 +0300 (EEST)
Received: from tdsiaccess.demon.co.uk ([158.152.60.40] helo=mailhost.tdsi.co.uk)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sOLU-000Fdt-00
	for lang@esoteric.sange.fi; Tue, 02 Apr 2002 16:29:09 +0300
Received: from 10.0.0.165 by mailhost.tdsi.co.uk ([10.0.0.230] running VPOP3) with SMTP for <lang@esoteric.sange.fi>; Tue, 2 Apr 2002 14:35:01 +0100
From: dmoss@tdsi.co.uk
To: <lang@esoteric.sange.fi>
Subject: [lang] The Ruler language
Date: Tue, 2 Apr 2002 14:26:48 +0100
Message-ID: <001201c1da4a$0b6d1da0$a500000a@td165>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook CWS, Build 9.0.2416 (9.0.2910.0)
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300
In-Reply-To: <011d01c1da39$7c766710$3900a8c0@amir>
Importance: Normal
X-Server: VPOP3 V1.5.0a - Registered
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: dmoss@tdsi.co.uk
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: dmoss@tdsi.co.uk
Precedence: bulk
X-list: misc

The Ruler programming language.

Created by: David S. Moss [Black Flag]
Version: 1.0
Date created: 28/03/2002

Ruler is a bit like BrainFuck.

Like in BrainFuck, you have an array. Unlike BrainFuck, the array length is
unlimited. The array is your ONLY real variable, the pointer to the loop
iteration
can be assigned to, but is reset every time a loop is entered. you can
assign stuff
to an array pointer and get the value of a point in the array at any time.
You can
also do some fairly advanced and extremely weird loop and arithmetical
operations
and the language is (almost, no negative numbers) Turing-complete. File I/O
is done
through pipes and re-routing in the command line and arguments:

Linux/Unix.-

% <interpreter> /personal/toys/lang/ruler/program.rlr < /input.text >
/output.text

DOS/Windro$$.-

C:\> <interpreter> c:\moss\toys\lang\ruler\program.rlr < c:\input.txt >
c:\output.txt

The application is executed in a loop. when the end is reached, the
beginning starts
again with the array values as they were at the end of the previous run. To
exit the
program use @01 at the end.

Instructions:

-y   read char from StdIn and put it into y ( y = StdIn.readChar(); )
_y   read hex byte from StdIn and put it into y ( y = StdIn.readByte(); )
=xx  print xx as char to StdOut ( printf(stringValueOf(xx)); )
#xx  print xx as hex to StdOut ( printf(toHexString(xx)); )
@xx  break/end/exit xx levels up. @01 exits current loop ( break; return;
exit;)
*    get current array position ( get(array[position]); )
.    get current loop iteration or 0 if used outside loop ( for(int
i...){get(i);} )
>xx  advance array by xx ( pointer = pointer + xx; )
<xx  go back in array by xx ( pointer = pointer - xx; )
'xx  if xx is odd evaluate following instruction/block and jump to the
following
     one, else jump it and execute the following one ( if((xx %
2))...else... )
     for example: '*/="1\/="0\ will print 1 if * is odd and 0 if * is pair
(xx  start foreach i in xx loop ( for(int i = 0; i <= xx; i++)... )
[    repeat instruction until @01 ( while(true)... )
z/    start instruction block ( {... or int x{...  )
\    end instruction block ( ...} )
~xxy assign xx to y ( y = xx; )
!xxy increment y by xx ( y = y + xx; )
^xxy decrement y by xx ( y = y - xx; )
"x   x is a char value and not an instruction ( 'x'; )
xx   xx is a hex value. ALL hex values are LOWER CASE!!! ( 0xff; )
{    start comment ( /*... )
}    end comment ( ...*/ )
The chars ) and ] can be included ANYWHERE in the code and will ALWAYS be
ignored.

where xx can be replaced by:
   "d :: the char 'd'
   ff :: 0 - 255 byte value
   *  :: the current array position's value
   .  :: the current loop iteration's value
   a function
y can be either:
   *  :: the current array position's value
   .  :: the current loop iteration's value
and z is:
   ch :: an optional character string that names a function

Functions are declared in the form of a block with one or more characters in
front
of them. functions always return the current value of *. func/~ff*\ assigns
255 bits
to * and returns * every time that func is called. To redeclare a function
simply put
a call to it in front of a new set of instructions. to use a function just
put a call
to it followed by anything else. f/="s\f/="x\ redefines f, f/="f\f)/="x\
doesn't.

All blocks are functions. blocks that have no identifier are just anonymous
functions. The functions can be overridden by future definitions. Functions
are case
sensitive, NO BASIC!. Functions can be made to exit immediately with an @
statement.

All functions are global independently of how deeply nested in one another
they
appear to be. the code ~02*f/="ssome/function/="f\\\~function* is perfectly
valid.

The functions must be declared in the first place in which they are to be
executed
since they are automatically executed and a reference to the code is just
kept to
call them again, so the code: ~02*f/="ssome/function/="f\\\~function*@1 is a
perfectly valid program which will execute as follows: ~02*="s="f="f~**@1

{ Simple "Hello World!\r\n" program with a foreach loop example: }
="H="e(01="l)"o=20="W="o="r="l="d="!=0d=0a@01

which translated to java would be:

/*
 * Hello world program as translated from the above ruler version:
 */
class HelloWorld{
    public static void main(String[]args){
        while(true){
            System.out.print('H');
            System.out.print('e');

            for(int i = 0; i < 2; i++){
                System.out.print('l');
            }

            System.out.print('o');
            System.out.write(0x20);
            System.out.print('W');
            System.out.print('o');
            System.out.print('r');
            System.out.print('l');
            System.out.print('d');
            System.out.print('!');
            System.out.write(0x0d);
            System.out.write(0x0a);
            break;
        }
    }
}

At the moment I'm working on a JScript interpreter, then i will transform
this into a
C one.

Have fun.

David S. Moss [Black Flag]






From esoteric@oiva.sange.fi Tue Apr 02 17:04:46 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sOsK-000Fsk-00; Tue, 02 Apr 2002 17:03:04 +0300
Received: with LISTAR (v0.129a; list misc); Tue, 02 Apr 2002 17:02:57 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sOsC-000Fse-00; Tue, 02 Apr 2002 17:02:57 +0300
Received: with LISTAR (v0.129a; list sci); Tue, 02 Apr 2002 17:02:55 +0300 (EEST)
Received: from mail.space2u.com ([62.20.1.135])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sOsA-000FsY-00
	for sci@esoteric.sange.fi; Tue, 02 Apr 2002 17:02:54 +0300
Received: from alice (c213-100-18-138.swipnet.se [213.100.18.138])
	by mail.space2u.com (8.11.6/8.11.6) with ESMTP id g32E5Rs20736;
	Tue, 2 Apr 2002 16:05:27 +0200
Received: from kha by alice with local (Exim 3.34 #1 (Debian))
	id 16sOro-0005gK-00; Tue, 02 Apr 2002 16:02:32 +0200
Date: Tue, 2 Apr 2002 16:02:32 +0200
From: Kalle =?iso-8859-1?Q?Hasselstr=F6m?= <kalle@treskal.com>
To: sci@esoteric.sange.fi
Subject: [sci] Re: [representational power] referencing?
Message-ID: <20020402140232.GB18501@treskal.com>
References: <Pine.LNX.4.44.0203261346590.11395-100000@melkinpaasi.cs.Helsinki.FI>
Mime-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1;
	protocol="application/pgp-signature"; boundary="kfjH4zxOES6UT95V"
Content-Disposition: inline
In-Reply-To: <Pine.LNX.4.44.0203261346590.11395-100000@melkinpaasi.cs.Helsinki.FI>
User-Agent: Mutt/1.3.27i
Sender: =?iso-8859-1?Q?Karl_Hasselstr=F6m?= <kha@treskal.com>
X-listar-version: Listar v0.129a
Sender: sci-bounce@esoteric.sange.fi
Errors-to: sci-bounce@esoteric.sange.fi
X-original-sender: kalle@treskal.com
Precedence: bulk
Reply-to: sci@esoteric.sange.fi
X-list: sci
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: kalle@treskal.com
Precedence: bulk
X-list: misc


--kfjH4zxOES6UT95V
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Tue, Mar 26, 2002 at 01:58:49PM +0200, Panu A Kalliokoski wrote:
>=20
> Now it is easy enough to do this in combinatory logic or pure lambda=20
> calculus, hence also with random-access architectures which have=20
> sufficient semantics for implementing such languages. It should be=20
> possible also on Turing machines, but I'm totally lost of how the numbers=
=20
> should be represented. I can't even imagine, for example, how an arbitrar=
y=20
> set of input (say the algorithm should produce a list of sums of the=20
> inputs <i1, i1+i2, i1+i2+i3, ...> with a probably-infinite list of inputs=
=20
> should be represented on a TM with a finite set of symbols. Any ideas?
>=20

The most general way to represent such a number should be to give a
Turing-program that generates it (represented as input to some fixed
universal Turing machine).

--=20
Kalle Hasselstr=F6m, kalle@treskal.com
           www.treskal.com         =20

--kfjH4zxOES6UT95V
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: För information se http://www.gnupg.org/

iD8DBQE8qbn4N7iPzXSoOQoRAsPPAJ9CGrRoxeXyJcDmR4W6xd8wsf9SugCfSNaF
kSbuX8WYte94KFYaESU/r5Q=
=/GJ9
-----END PGP SIGNATURE-----

--kfjH4zxOES6UT95V--





From esoteric@oiva.sange.fi Tue Apr 02 17:21:30 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sPA3-000FxJ-00; Tue, 02 Apr 2002 17:21:23 +0300
Received: with LISTAR (v0.129a; list misc); Tue, 02 Apr 2002 17:21:17 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sP9l-000FxD-00; Tue, 02 Apr 2002 17:21:05 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 02 Apr 2002 17:20:59 +0300 (EEST)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sP9e-000Fx7-00
	for lang@esoteric.sange.fi; Tue, 02 Apr 2002 17:20:58 +0300
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g32EKrr02156
	for <lang@esoteric.sange.fi>; Tue, 2 Apr 2002 17:20:53 +0300
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g32EKmm30912
	for <lang@esoteric.sange.fi>; Tue, 2 Apr 2002 17:20:48 +0300
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Tue, 2 Apr 2002 17:20:48 +0300 (EEST)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: lang@esoteric.sange.fi
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
In-Reply-To: <200204020940.g329eks20169@ns3.safety.net>
Message-ID: <Pine.LNX.4.44.0204021711190.32592-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc

On Tue, 2 Apr 2002, Cliff L. Biffle wrote:
> > You seem to be entirely missing the fact that the HQ9+ language is a
> > joke.
> Depends on perspective; from what I can tell, I've written nearly as many 
> working pieces of software in HQ9+ as are available in, say, Malboge.  I do, 

You picked a bad example: Malbolge is about as powerful as e
(exclamation). (See, I have picked my standard for "weak".) Of course, as 
you say, it depends a lot on perspective whether a language is "serious" 
or not. But I'm not going to make guesses about Malbolge's "official" 
perspective: HQ9+'s "official" perspective seems to be quite 
humor-oriented.

Maybe we should invent a humor tarpit. But humor is much of breaking of
rules; and the more a language is a tarpit, the less there are rules to
break. What to do?

> after all, have a working Hello, World!, a quine, an implementation of 
> ninety-nine bottles of beer on the wall, and in fact a recursive 
> Fibonacci-sequence generator (with optional language extension F).

But you don't have "666", which is Malbolge's proof that you can do 
something with the language :) I actually like False's style: strings are 
not first-class and cannot be encoded anyhow but still magnificent 
programs have been written in the language, even without fiddling with 
amiga assembler / arrays.

By the way: you will be able to implement "Qello world!" and "QQQ" in
HQ9+.

> Coming soon:
> --Brainfuck!  Mwa ha ha!  (riiiiiight)

Why not? (On the other hand, why would anybody bother?) I do admit the
list is quite impressive...

-- 

Am fuar -> symb <- am fesh
atehwa@iki.fi







From esoteric@oiva.sange.fi Tue Apr 02 17:27:13 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sPFc-000FzE-00; Tue, 02 Apr 2002 17:27:08 +0300
Received: with LISTAR (v0.129a; list misc); Tue, 02 Apr 2002 17:27:01 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sPFR-000Fz8-00; Tue, 02 Apr 2002 17:26:58 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 02 Apr 2002 17:26:51 +0300 (EEST)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sPFK-000Fz2-00
	for lang@esoteric.sange.fi; Tue, 02 Apr 2002 17:26:50 +0300
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g32EQnr04277
	for <lang@esoteric.sange.fi>; Tue, 2 Apr 2002 17:26:49 +0300
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g32EQib31865
	for <lang@esoteric.sange.fi>; Tue, 2 Apr 2002 17:26:44 +0300
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Tue, 2 Apr 2002 17:26:43 +0300 (EEST)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: lang@esoteric.sange.fi
Subject: [lang] Re: CHQRS9+
In-Reply-To: <3CA985C4.D8953B13@decis.be>
Message-ID: <Pine.LNX.4.44.0204021723240.32592-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc

On Tue, 2 Apr 2002, Frederic van der Plancke wrote:
> > I prefer Q for Quake.
> Then Q will simultaneously:
>   - reproduce the program to output
>   - spawn a game of Quake
> ...this will provide for strange, but legal, quine programs.

This again brings the difficulty of what is to be considered "output" of 
the program. I did think a lot about side-effective quines when I wrote 
about quine classes, because eval-type quines can have as much of program 
code as they want to without it having to be duplicated. This gave me 
ideas of e.g. quines that print their source and run an IRC server, etc.

> May I propose operation A:
> A prints f(n,n) where f is the Ackermann function and n is the
> input seen as a natural number (through some obvious encoding).

RNG would also be nice. By the way, I vote for 3 as the "3D shoot-em-up
instruction".

-- 

Am fuar -> symb <- am fesh
atehwa@iki.fi







From esoteric@oiva.sange.fi Tue Apr 02 17:40:15 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sPRo-000G2F-00; Tue, 02 Apr 2002 17:39:44 +0300
Received: with LISTAR (v0.129a; list misc); Tue, 02 Apr 2002 17:39:37 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sPRC-000G29-00; Tue, 02 Apr 2002 17:39:06 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 02 Apr 2002 17:38:59 +0300 (EEST)
Received: from sabre-wulf.nvg.ntnu.no ([129.241.210.67])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sPR5-000G23-00
	for lang@esoteric.sange.fi; Tue, 02 Apr 2002 17:38:59 +0300
Received: from hagbart.nvg.ntnu.no ([IPv6:::ffff:129.241.210.68]:57509 "EHLO
	hagbart.nvg.ntnu.no" ident: "[e5w8lbP1sniZF8MDa/hn2JoPt0PrGZq9]" whoson:
	"-unregistered-") by sabre-wulf.nvg.ntnu.no with ESMTP
	id <S437119AbSDBOil>; Tue, 2 Apr 2002 16:38:41 +0200
Date:	Tue, 2 Apr 2002 16:38:41 +0200 (CEST)
From:	Orjan Johansen <oerjan@nvg.ntnu.no>
To:	Esoteric Languages List <lang@esoteric.sange.fi>
Subject: [lang] Re: CHQRS9+
In-Reply-To: <Pine.LNX.4.44.0204021723240.32592-100000@melkinpaasi.cs.Helsinki.FI>
Message-ID: <Pine.LNX.4.40.0204021637360.30321-100000@hagbart.nvg.ntnu.no>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: oerjan@nvg.ntnu.no
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: oerjan@nvg.ntnu.no
Precedence: bulk
X-list: misc

On Tue, 2 Apr 2002, Panu A Kalliokoski wrote:

> This again brings the difficulty of what is to be considered "output" of
> the program. I did think a lot about side-effective quines when I wrote
> about quine classes, because eval-type quines can have as much of program
> code as they want to without it having to be duplicated. This gave me
> ideas of e.g. quines that print their source and run an IRC server, etc.

This gave me an idea for another command:

B: assimilates your computer.

Greetings,
=D8rjan.

--=20
My Unlambda page: <http://home.nvg.org/~oerjan/unlambda/>
Latest contraption:  Unlambda to Ocaml compiler.






From esoteric@oiva.sange.fi Tue Apr 02 17:42:15 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sPUE-000G3Z-00; Tue, 02 Apr 2002 17:42:14 +0300
Received: with LISTAR (v0.129a; list misc); Tue, 02 Apr 2002 17:42:07 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sPU5-000G3N-00; Tue, 02 Apr 2002 17:42:05 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 02 Apr 2002 17:41:58 +0300 (EEST)
Received: from smtp-send.myrealbox.com ([192.108.102.143])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sPTx-000G3G-00
	for lang@esoteric.sange.fi; Tue, 02 Apr 2002 17:41:57 +0300
Received: from amir amirlb@smtp-send.myrealbox.com [62.219.225.37]
	by smtp-send.myrealbox.com with Novell NIMS $Revision:   2.88  $ on Novell NetWare;
	Tue, 02 Apr 2002 07:41:47 -0700
Message-ID: <015301c1da5d$45c7f2f0$3900a8c0@amir>
From: <amirlb@myrealbox.com>
To: <lang@esoteric.sange.fi>
References: <Pine.LNX.4.44.0204021723240.32592-100000@melkinpaasi.cs.Helsinki.FI>
Subject: [lang] Re: CHQRS9+
Date: Tue, 2 Apr 2002 17:44:24 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2919.6700
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: amirlb@myrealbox.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: amirlb@myrealbox.com
Precedence: bulk
X-list: misc

> This again brings the difficulty of what is to be considered "output" of
> the program. I did think a lot about side-effective quines when I wrote
> about quine classes, because eval-type quines can have as much of program
> code as they want to without it having to be duplicated. This gave me
> ideas of e.g. quines that print their source and run an IRC server, etc.

I wrote a quine (in C) that opens a gtk window, and shows its source within
a viewer widget. Note that C doesn't have an eval instruction, so I did have
to repeat the whole source twice.

--
Bad spellers of the world UNTIE!
          lightstep (Amir Livne)






From esoteric@oiva.sange.fi Tue Apr 02 17:49:26 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sPb8-000G92-00; Tue, 02 Apr 2002 17:49:22 +0300
Received: with LISTAR (v0.129a; list misc); Tue, 02 Apr 2002 17:49:15 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sPau-000G8w-00; Tue, 02 Apr 2002 17:49:08 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 02 Apr 2002 17:49:01 +0300 (EEST)
Received: from sabre-wulf.nvg.ntnu.no ([129.241.210.67])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sPam-000G8q-00
	for lang@esoteric.sange.fi; Tue, 02 Apr 2002 17:49:00 +0300
Received: from hagbart.nvg.ntnu.no ([IPv6:::ffff:129.241.210.68]:60581 "EHLO
	hagbart.nvg.ntnu.no" ident: "[9uqCRZ5EMs47oaRJ3kxCbJ+nuCd6xiDs]" whoson:
	"-unregistered-") by sabre-wulf.nvg.ntnu.no with ESMTP
	id <S437073AbSDBOsy>; Tue, 2 Apr 2002 16:48:54 +0200
Date:	Tue, 2 Apr 2002 16:48:53 +0200 (CEST)
From:	Orjan Johansen <oerjan@nvg.ntnu.no>
To:	Esoteric Languages List <lang@esoteric.sange.fi>
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
In-Reply-To: <Pine.LNX.4.44.0204021711190.32592-100000@melkinpaasi.cs.Helsinki.FI>
Message-ID: <Pine.LNX.4.40.0204021639090.30321-100000@hagbart.nvg.ntnu.no>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: oerjan@nvg.ntnu.no
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: oerjan@nvg.ntnu.no
Precedence: bulk
X-list: misc

On Tue, 2 Apr 2002, Panu A Kalliokoski wrote:

> By the way: you will be able to implement "Qello world!" and "QQQ" in
> HQ9+.

This goes to show that HQ9+ is already bloated.  Clearly Q should have
been named H instead, saving one instruction.

Also, 9 could be replaced with the more useful T, which uses the
accumulator to determine which verse to print.  It would also increment
it, making + obsolete.  This gives an alternative way of making quines,
which are unfortunately now needed to produce "Hello world!".

I hope some of these improvements will be considered in the next version.

Greetings,
=D8rjan.

--=20
My Unlambda page: <http://home.nvg.org/~oerjan/unlambda/>
Latest contraption:  Unlambda to Ocaml compiler.






From esoteric@oiva.sange.fi Tue Apr 02 20:10:58 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sRo1-000HLS-00; Tue, 02 Apr 2002 20:10:49 +0300
Received: with LISTAR (v0.129a; list misc); Tue, 02 Apr 2002 20:10:42 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sRnb-000HLF-00; Tue, 02 Apr 2002 20:10:23 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 02 Apr 2002 20:10:16 +0300 (EEST)
Received: from ctb-mesg1.saix.net ([196.25.240.73])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sRnS-000HL9-00
	for lang@esoteric.sange.fi; Tue, 02 Apr 2002 20:10:15 +0300
Received: from lennie (woc53-01-p108.wc.saix.net [155.239.129.108])
	by ctb-mesg1.saix.net (8.11.4/8.11.4) with SMTP id g32HA5K11976
	for <lang@esoteric.sange.fi>; Tue, 2 Apr 2002 19:10:05 +0200 (SAT)
Message-ID: <005701c1da68$78248dc0$6c81ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: "EsoLang Lang" <lang@esoteric.sange.fi>
References: <20020401190524.19320.qmail@web21408.mail.yahoo.com>
Subject: [lang] Re: New language: conser
Date: Mon, 1 Apr 2002 23:20:01 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

WoWee !! Another interpreter written in Java - GO JAVA !! :-) Sorry,
Perl/Python/etc !!

What JDK version are you using ?

Strange Point: Everytime a new language is announce on this mailinglist,
someone follows with a written quine ! ;)

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Tue Apr 02 23:22:18 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sUmv-000HzM-00; Tue, 02 Apr 2002 23:21:53 +0300
Received: with LISTAR (v0.129a; list misc); Tue, 02 Apr 2002 23:21:42 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sUmH-000HzG-00; Tue, 02 Apr 2002 23:21:13 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 02 Apr 2002 23:21:06 +0300 (EEST)
Received: from rebecca.tiscali.nl ([195.241.76.181])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sUm9-000HzA-00
	for lang@esoteric.sange.fi; Tue, 02 Apr 2002 23:21:06 +0300
Received: from dds.nl (xs241-216-67.dial.tiscali.nl [195.241.216.67])
	by rebecca.tiscali.nl (Postfix) with ESMTP id 969D78A3D27
	for <lang@esoteric.sange.fi>; Tue,  2 Apr 2002 22:20:59 +0200 (MET DST)
Sender: root@rebecca.tiscali.nl
Message-ID: <3CAA126A.629DF033@dds.nl>
Date: Tue, 02 Apr 2002 22:19:55 +0200
From: Milo van Handel <mwq@dds.nl>
Organization: Milo-Soft
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.3-5 i586)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: CHQRS9+
References: <20020402061038.53243.qmail@web12906.mail.yahoo.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
X-list: misc

Nikita Ayzikovsky wrote:

> --- Orjan Johansen <oerjan@nvg.ntnu.no> wrote:
>
> > I hereby declare the extended language CHQRS9+, probably reinventing the
> > wheel:
> >
> > C = prints the entire input of the program to output.
> > H = prints "Hello world!".
> > Q = prints the program source.
> > R = prints the input rot-13'ed.
> > S = sorts the input lines and prints them.
> > 9 = prints the text of "99 bottles of beer".
> > + = increments the accumulator.
>
> I propose to add another instruction:
>
>   I = interprets a CHQRS9+ program given in the input.

Sounds a bit like my ACCIDENT language...  Except that was a compiler.






From esoteric@oiva.sange.fi Tue Apr 02 23:35:34 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sUzw-000I1M-00; Tue, 02 Apr 2002 23:35:20 +0300
Received: with LISTAR (v0.129a; list misc); Tue, 02 Apr 2002 23:35:13 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sUzm-000I1G-00; Tue, 02 Apr 2002 23:35:10 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 02 Apr 2002 23:35:04 +0300 (EEST)
Received: from rebecca.tiscali.nl ([195.241.76.181])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sUzf-000I1A-00
	for lang@esoteric.sange.fi; Tue, 02 Apr 2002 23:35:03 +0300
Received: from dds.nl (xs241-216-67.dial.tiscali.nl [195.241.216.67])
	by rebecca.tiscali.nl (Postfix) with ESMTP id 5E4648A46A4
	for <lang@esoteric.sange.fi>; Tue,  2 Apr 2002 22:35:01 +0200 (MET DST)
Sender: root@rebecca.tiscali.nl
Message-ID: <3CAA15B1.A0E89D11@dds.nl>
Date: Tue, 02 Apr 2002 22:33:54 +0200
From: Milo van Handel <mwq@dds.nl>
Organization: Milo-Soft
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.3-5 i586)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
References: <Pine.LNX.4.44.0204021711190.32592-100000@melkinpaasi.cs.Helsinki.FI>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
X-list: misc

Panu A Kalliokoski wrote:

> By the way: you will be able to implement "Qello world!" and "QQQ" in
> HQ9+.

Only if characters not representing any instruction are ignored, rather than
signalled as an error.  Of course, we course define "e" as "comment until end of
line", thereby solving this problem and also allowing for more readable
programs...






From esoteric@oiva.sange.fi Tue Apr 02 23:36:23 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sV0r-000I1m-00; Tue, 02 Apr 2002 23:36:17 +0300
Received: with LISTAR (v0.129a; list misc); Tue, 02 Apr 2002 23:36:10 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sV0j-000I1e-00; Tue, 02 Apr 2002 23:36:09 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 02 Apr 2002 23:36:03 +0300 (EEST)
Received: from pandora.tiscali.nl ([195.241.76.179])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sV0c-000I1Y-00
	for lang@esoteric.sange.fi; Tue, 02 Apr 2002 23:36:02 +0300
Received: from dds.nl (xs241-216-67.dial.tiscali.nl [195.241.216.67])
	by pandora.tiscali.nl (Postfix) with ESMTP id B4E7A3772D
	for <lang@esoteric.sange.fi>; Tue,  2 Apr 2002 22:36:00 +0200 (MET DST)
Sender: root@pandora.tiscali.nl
Message-ID: <3CAA15F2.BE1FD45D@dds.nl>
Date: Tue, 02 Apr 2002 22:34:58 +0200
From: Milo van Handel <mwq@dds.nl>
Organization: Milo-Soft
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.3-5 i586)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
References: <Pine.LNX.4.40.0204021639090.30321-100000@hagbart.nvg.ntnu.no>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
X-list: misc

Orjan Johansen wrote:

> Also, 9 could be replaced with the more useful T, which uses the
> accumulator to determine which verse to print.  It would also increment
> it, making + obsolete.  This gives an alternative way of making quines,
> which are unfortunately now needed to produce "Hello world!".

I don't understand.  What would the "T" character exactly do and why does it
have that letter?






From esoteric@oiva.sange.fi Wed Apr 03 04:48:20 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sZsG-000Isf-00; Wed, 03 Apr 2002 04:47:44 +0300
Received: with LISTAR (v0.129a; list misc); Wed, 03 Apr 2002 04:47:34 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sZrL-000IsZ-00; Wed, 03 Apr 2002 04:46:47 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 03 Apr 2002 04:46:40 +0300 (EEST)
Received: from web12904.mail.yahoo.com ([216.136.174.71])
	by oiva.sange.fi with smtp (Exim 3.33 #1)
	id 16sZrD-000IsT-00
	for lang@esoteric.sange.fi; Wed, 03 Apr 2002 04:46:39 +0300
Message-ID: <20020403014632.48501.qmail@web12904.mail.yahoo.com>
Received: from [24.78.145.92] by web12904.mail.yahoo.com via HTTP; Tue, 02 Apr 2002 17:46:32 PST
Date: Tue, 2 Apr 2002 17:46:32 -0800 (PST)
From: Nikita Ayzikovsky <order_of_may@yahoo.com>
Subject: [lang] Re: CHQRS9+
To: lang@esoteric.sange.fi
In-Reply-To: <Pine.LNX.4.44.0204021723240.32592-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: order_of_may@yahoo.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: order_of_may@yahoo.com
Precedence: bulk
X-list: misc

--- Panu A Kalliokoski <pkalliok@cs.Helsinki.FI> wrote:

> By the way, I vote for 3 as the "3D shoot-em-up
> instruction".

Why tie ourselves to 3D ? I propose instructions 1, 2, 3, 4, 5, 6, 7 and 8
that launch a first-person polygon-based shooter in the correspondent
number of dimensions.

__________________________________________________
Do You Yahoo!?
Yahoo! Tax Center - online filing with TurboTax
http://taxes.yahoo.com/





From esoteric@oiva.sange.fi Wed Apr 03 05:06:09 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sa9x-000Iui-00; Wed, 03 Apr 2002 05:06:01 +0300
Received: with LISTAR (v0.129a; list misc); Wed, 03 Apr 2002 05:05:54 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sa9f-000Iuc-00; Wed, 03 Apr 2002 05:05:44 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 03 Apr 2002 05:05:37 +0300 (EEST)
Received: from web21402.mail.yahoo.com ([216.136.232.72])
	by oiva.sange.fi with smtp (Exim 3.33 #1)
	id 16sa9W-000IuW-00
	for lang@esoteric.sange.fi; Wed, 03 Apr 2002 05:05:35 +0300
Message-ID: <20020403020527.60919.qmail@web21402.mail.yahoo.com>
Received: from [66.120.209.42] by web21402.mail.yahoo.com via HTTP; Tue, 02 Apr 2002 18:05:27 PST
Date: Tue, 2 Apr 2002 18:05:27 -0800 (PST)
From: Quowong Liu <qpliu@yahoo.com>
Subject: [lang] Re: New language: conser
To: lang@esoteric.sange.fi
In-Reply-To: <005701c1da68$78248dc0$6c81ef9b@lennie>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: qpliu@yahoo.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: qpliu@yahoo.com
Precedence: bulk
X-list: misc

"D De Villiers" <ddevilliers@lando.co.za> writes,
>WoWee !! Another interpreter written in Java - GO JAVA !! :-) Sorry,
>Perl/Python/etc !!

Actually, I don't think java is a very good choice.  For one thing,
a language that supported continuation passing would be much nicer.
This was a weekend hack just to have something to play with, and
since I use java for work, I'm familiar enough with it to make
something quickly.  I'm thinking OCaml for a more serious
implementation, which would probably become a work in progress yet
of very little progress for years to come.

>What JDK version are you using ?

I used 1.4, but 1.2 or later should work.

>Strange Point: Everytime a new language is announce on this
mailinglist,
>someone follows with a written quine ! ;)

I'd imagine a quine would take centuries and terabytes to run.

However, here's a brainfuck interpreter.  The interpreter in java
can't run it, since, besides the interpreter being crap, this code
uses infinite lists.

"Brainfuck interpreter in conser.
 Completely untested.
 Would take forever to run.

 If a program tries to read more input than is available, strange
things will
 probably happen."

"program is a list of brainfuck instructions
 io is a pair, the car being list of numbers that is the input,
 and the cdr should be empty

 the result is a pair, with the car being the unconsumed input, and
 the cdr being a list of numbers that is the output in reverse order.

 The numbers in the input list have to be in the set of valid-numbers:
  valid-numbers = (generate+(,)generate-(,)).
  generate+ a = (a generate+(a,)).
  generate- a = (a generate-(,a)).

 The lists have to be valid lists, which means < (car), <> (cadr), <>>
(caddr),
 and so on until the end of the list have to be single element sets."
brainfuck program io = bf (program,) (zeros,zeros) io.

bf program data io = (?(<program,io)+-intp<<program program data io).

+-intp insn program data io =
 (?((insn!+-instr),bf ++p program ++*p data io)
  --intp(insn!+-instr)program data io).

--intp insn program data io =
 (?((insn!--instr),bf ++p program --*p data io)
  lt-intp(insn!--instr)program data io).

lt-intp insn program data io =
 (?((insn!lt-instr),bf ++p program --p data io)
  gt-intp(insn!lt-instr)program data io).

gt-intp insn program data io =
 (?((insn!gt-instr),bf ++p program ++p data io)
  dot-intp(insn!gt-instr)program data io).

dot-intp insn program data io =
 (?((insn!dot-instr),bf ++p program data (<io,(<<data,>io)))
  comma-intp(insn!dot-instr)program data io).

comma-intp insn program data io =
 (?((insn!comma-instr),bf ++p program ((<<io,><data),>data)(<<io,>io))
  [-intp(insn!comma-instr)program data io).

[-intp insn program data io =
 (?((insn![-instr),bf [-move program <<data data io)
  ]-intp(insn![-instr)program data io).

]-intp insn program data io =
 (?((insn!]-instr),bf ]-move program data io)
  2 (insn!]-instr) bf ++p program data io).

[-move program current =
 (?((current!(,)),find-] ++p program)2(current!(,))++p program).

]-move program = find-[ --p program.

find-] program =
 (?((<<program!]-instr),++p program)
  2(<<program!]-instr)(?((<<program![-instr),find-] find-] ++p program)
                       2(<<program![-instr)find-] ++p program)).

find-[ program =
 (?((<<program![-instr),program)
  2(<<program![-instr)(?((<<program!]-instr),find-[ --p find-[ --p
program)
                       2(<<program!]-instr)find-[ --p program)).

"Constants for instructions."
+-instr =
 ((((((((((((((((((((((((((((((((((((((((((((,),),),),),),),),),),),),
 ),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),).

--instr =
 ((((((((((((((((((((((((((((((((((((((((((((((,),),),),),),),),),),),
 ),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),).

lt-instr =
 (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((,),),),)
 ,),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),
 ),),),),),),),),),),),),),),),),),),),),),),).

gt-instr =
 (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((,),),)
 ,),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),
 ),),),),),),),),),),),),),),),),),),),),),),),),),).

dot-instr =
 (((((((((((((((((((((((((((((((((((((((((((((((,),),),),),),),),),),)
 ,),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),
 ),).

comma-instr =
 (((((((((((((((((((((((((((((((((((((((((((((,),),),),),),),),),),),)
 ,),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),).

[-instr =
 (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
 (((((((((((((((((((((((,),),),),),),),),),),),),),),),),),),),),),),)
 ,),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),
 ),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),).

]-instr =
 (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
 (((((((((((((((((((((((((,),),),),),),),),),),),),),),),),),),),),),)
 ,),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),
 ),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)
 ,),),).

"Utility functions."
++p p = (><p,(<<p,>p)).
--p p = ((<>p,<p),>>p).

++*p p = ((++<<p,><p),>p).
--*p p = ((--<<p,><p),>p).

++ a = (?(>a,(a,))>a).
-- a = (?(<a,(,a))<a).

? a = (>a!2<a>a).
2 a b = b.

zeros = ((,),zeros).

>--
>
>Lennie De Villiers
>
>PL/I for Palm Project:
http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
>e (Exclamation) Programming Language:
>http://www.crosswinds.net/~lennie2000/comp/e_lang/


__________________________________________________
Do You Yahoo!?
Yahoo! Tax Center - online filing with TurboTax
http://taxes.yahoo.com/





From esoteric@oiva.sange.fi Wed Apr 03 05:10:23 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16saEA-000Iw9-00; Wed, 03 Apr 2002 05:10:22 +0300
Received: with LISTAR (v0.129a; list misc); Wed, 03 Apr 2002 05:10:15 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16saE2-000Iw3-00; Wed, 03 Apr 2002 05:10:14 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 03 Apr 2002 05:10:07 +0300 (EEST)
Received: from web21401.mail.yahoo.com ([216.136.232.71])
	by oiva.sange.fi with smtp (Exim 3.33 #1)
	id 16saDu-000Ivx-00
	for lang@esoteric.sange.fi; Wed, 03 Apr 2002 05:10:06 +0300
Message-ID: <20020403021000.29566.qmail@web21401.mail.yahoo.com>
Received: from [66.120.209.42] by web21401.mail.yahoo.com via HTTP; Tue, 02 Apr 2002 18:10:00 PST
Date: Tue, 2 Apr 2002 18:10:00 -0800 (PST)
From: Quowong Liu <qpliu@yahoo.com>
Subject: [lang] Re: New language: conser
To: lang@esoteric.sange.fi
In-Reply-To: <Pine.LNX.4.21.0204020043060.5826-100000@dark.darkweb.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: qpliu@yahoo.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: qpliu@yahoo.com
Precedence: bulk
X-list: misc

Ben Rudiak-Gould <benrg@dark.darkweb.com> writes,
>Here's a suggestion for solving the problem of astronomical running
times
>for nontrivial I/O: instead of encoding the input and output as
integers,
>encode them as binary fractions, so "Hello, World!" would be something
>like 0.0100100001100101011011000110110001101111001011000010000001010-
>11101101111011100100110110001100100001000010000101. The surreals are
>effectively unary for integers but binary for fractions, so an O(log
n)
>representation (and processing time) for the fractions should be
possible,
>I think. Also, you might be able to lazify it, at least for input. You

That's a great idea.  I'll steal it for my revised description.

>would have the same problem with zero bytes in the input/output
(except at
>the end instead of the beginning), and it could be solved by the same
>kluge.

>-- Ben


__________________________________________________
Do You Yahoo!?
Yahoo! Tax Center - online filing with TurboTax
http://taxes.yahoo.com/





From esoteric@oiva.sange.fi Wed Apr 03 05:17:20 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16saKr-000J05-00; Wed, 03 Apr 2002 05:17:17 +0300
Received: with LISTAR (v0.129a; list misc); Wed, 03 Apr 2002 05:17:10 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16saKh-000Izz-00; Wed, 03 Apr 2002 05:17:07 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 03 Apr 2002 05:17:01 +0300 (EEST)
Received: from web21409.mail.yahoo.com ([216.136.232.79])
	by oiva.sange.fi with smtp (Exim 3.33 #1)
	id 16saKY-000Izt-00
	for lang@esoteric.sange.fi; Wed, 03 Apr 2002 05:16:59 +0300
Message-ID: <20020403021651.68862.qmail@web21409.mail.yahoo.com>
Received: from [66.120.209.42] by web21409.mail.yahoo.com via HTTP; Tue, 02 Apr 2002 18:16:51 PST
Date: Tue, 2 Apr 2002 18:16:51 -0800 (PST)
From: Quowong Liu <qpliu@yahoo.com>
Subject: [lang] Re: New language: conser
To: lang@esoteric.sange.fi
In-Reply-To: <Pine.LNX.4.44.0204020911120.30165-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: qpliu@yahoo.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: qpliu@yahoo.com
Precedence: bulk
X-list: misc

Panu A Kalliokoski <pkalliok@cs.Helsinki.FI> writes,
>Anyway, I'm not totally clear about the semantics of the language. For

>example, does (a,b) form a set with one element, the pair of a and b?
Is 
>(A) always the same as A? What do you mean by consing with respect to
sets 
>- adding one element to the set? What does (a,) put in the cdr? The
empty 
>set? 

I hope to be revising my description to make it clearer.

(a,b) is a one element set.  I've been sloppily calling one
element sets a pair, a number, or a list, depending on the context.

I'm pretty sure (A) is always the same as A, if A is a single
expression.

A cons always make a pair out of two sets.  A union is used to add an
element to a set.

(a,) puts the empty set in the cdr.

>On Mon, 1 Apr 2002, Quowong Liu wrote:
>> argument, the argument is 1 appended with the contents of stdin,
>> encoded as a surreal number.  The result of evaluating main, if it
is
>
>Does the 1 come first or do the contents of stdin come first? I guess
from 
>your example programs that a surreal number n+1 is a set of one
element, a 
>pair (n,). Is this so?

The 1 becomes the most significant bit, with stdin providing the rest
of the bits.  However, Ben Rudiak-Gould's idea of using fractions is a
better idea.

n+1 is (n,) if n is a nonnegative integer.  But there are lots of ways
to represent a surreal number.
For example: 1 = (0,), but also 1 = (-1 0,2 4).

A google search on surreal numbers gives lots of pages.
http://www.tondering.dk/claus/surreal.html is a good introduction.

I first read about surreal numbers some years ago in Knuth's story,
_Surreal Numbers_, which is a fun way to learn about them.

>> Predefined functions:
>>  < is car.
>>  > is cdr.
>>  (,) is cons.
>>  () is union.
>>  (&) is intersection.
>>  (!) is set subtraction.
>
>What are the semantics of these? Could you give some examples of what 
>arguments yield what result?
>
>If I guess correctly, car returns the union of first elements of the
pairs 
>of a set, whereas cdr returns the union of second elements of the
pairs of 
>a set. Is this so? 

That's correct.

< ((a,b) (c,d)) = (a c).
> ((a,b) (c,d)) = (b d).

cons always returns a single element set.

(a b a) = (a b).
(a b & b) = ((a&b) b).
(a & a b) = a.
(a b ! b) = (a!b).
(a ! a b) = ().

>> Since there are no higher-order functions, there is no need to
>> explicitly specify precedence, so there is no way to do so.
>
>Doesn't a unit union provide a way to explicitly define precedence
anyway?

Since f f a and f (f a) are equivalent, it could be looked at that way.
But (f f) a is illegal.

>> Some things to note:
>>  <(a b) is equivalent to (<a <b).
>>  ((a b)) is equivalent to (a b).
>>  ((a b) c) is equivalent to (a b c).
>>  f (a b) c is equivalent to (f a c  f b c).
>>  f (a b) (c d) is equivalent to (f a c  f a d  f b c  f b d).
>>  f () is always ().
>>  f () a is always ().
>>  f a () is always ().
>
>Okay, now this seems to play a central role in really defining what
the 
>language does. Functions seem to have a set-unwinding nature - I guess

>they then receive sets of one element as arguments? 

Yes.  Doing it that way makes the definitions of surreal addition
and multiplication work.

>> Should conser programs be lazily evaluated?
>> 
>> If, when forcing f a b, if a evaluates to (), then f a b = () and b
>> never needs to be evaluated.  However, if a never terminates, and b
>> would evaluate to (), then, if the order of evaluation is left to
right,
>> f a b would never terminate, even if b evaluates to ().  If the
>> evaluation of a and b are done in parallel, then f a b = () if
either a
>> or b is ().
>
>I think parallel evaluation would be natural anyway, because you need 
>exactly one element of each set to be able to call f at all. This
will, of 
>course, require lazy sets - which might be some trouble to implement. 
>
>> Still, with lazy evaluation,
>>  (finite-set & infinite-set) either is finite-set or doesn't
terminate
>>  (finite-set ! infinite-set) either is () or doesn't terminate
>
>Of course. But with a lazy implementation of sets, you can make the
>expression terminate in every case where it is possible to terminate
at
>all. Actually, I think the language could get some very interesting
>features if made lazy.

Then lazy evaluation with parallel evaluation of arguments when
forced will be the way to go.

>-- 
>
>Am fuar -> symb <- am fesh
>atehwa@iki.fi


__________________________________________________
Do You Yahoo!?
Yahoo! Tax Center - online filing with TurboTax
http://taxes.yahoo.com/





From esoteric@oiva.sange.fi Wed Apr 03 13:37:17 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16si8W-000NLG-00; Wed, 03 Apr 2002 13:37:04 +0300
Received: with LISTAR (v0.129a; list misc); Wed, 03 Apr 2002 13:36:57 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16si7q-000NJV-00; Wed, 03 Apr 2002 13:36:23 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 03 Apr 2002 13:36:12 +0300 (EEST)
Received: from wells.tecc.co.uk ([195.217.37.90])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16si7f-000NJH-00
	for lang@esoteric.sange.fi; Wed, 03 Apr 2002 13:36:11 +0300
Received: from basingstoke.tecc.co.uk (basingstoke.tecc.co.uk [195.217.37.75])
	by wells.tecc.co.uk (8.9.3+Sun/8.9.3) with ESMTP id LAA16439
	for <lang@esoteric.sange.fi>; Wed, 3 Apr 2002 11:36:05 +0100 (BST)
Date: Wed, 3 Apr 2002 11:36:05 +0100 (BST)
Message-Id: <200204031036.LAA16439@wells.tecc.co.uk>
From: Mike Taylor <mike@tecc.co.uk>
To: lang@esoteric.sange.fi
In-reply-to: <001201c1da4a$0b6d1da0$a500000a@td165> (dmoss@tdsi.co.uk)
Subject: [lang] Re: The Ruler language
References:  <001201c1da4a$0b6d1da0$a500000a@td165>
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mike@tecc.co.uk
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mike@tecc.co.uk
Precedence: bulk
X-list: misc

> Date: Tue, 2 Apr 2002 14:26:48 +0100
> From: dmoss@tdsi.co.uk
> 
> The Ruler programming language.
> 
> Created by: David S. Moss [Black Flag]
> Version: 1.0
> Date created: 28/03/2002
> 
> Ruler is a bit like BrainFuck.
> [...]

Not to be negative, but --

Here we are on a list that has _a lot_ of new languages.  We have
jaded palates.  To get our attention, a programming lnaguage has to
show us something truly interesting, like Kayak's reversibility.

Now Ruler may be wonderful for all I know, but I found it hard to
motivate myself to read past "Rule is a bit like BrainF*ck".  I find
myself thinking, how many more BrainF*ck-like languages do we need?

My point is a marketing one, not a technical one.  Why don't you kick
off not by telling us what your language is like ("C++ is a bit like
C") but what's different and special about it ("C++ provides class,
objects and templates")?

In other words: give us a reason to _care_ about your language.

Hope that helps.

 _/|_	 _______________________________________________________________
/o ) \/  Mike Taylor   <mike@miketaylor.org.uk>   www.miketaylor.org.uk
)_v__/\  "Give me the truth, but don't shove it up my ass" -- Michael
	 T. Huyck Jr.






From esoteric@oiva.sange.fi Wed Apr 03 14:50:59 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sjHq-0000tT-00; Wed, 03 Apr 2002 14:50:47 +0300
Received: with LISTAR (v0.129a; list misc); Wed, 03 Apr 2002 14:50:39 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sjHJ-0000sA-00; Wed, 03 Apr 2002 14:50:13 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 03 Apr 2002 14:50:07 +0300 (EEST)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sjHC-0000rx-00
	for lang@esoteric.sange.fi; Wed, 03 Apr 2002 14:50:06 +0300
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g33Bo4r15410
	for <lang@esoteric.sange.fi>; Wed, 3 Apr 2002 14:50:05 +0300
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g33Bo0213483
	for <lang@esoteric.sange.fi>; Wed, 3 Apr 2002 14:50:00 +0300
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Wed, 3 Apr 2002 14:50:00 +0300 (EEST)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: lang@esoteric.sange.fi
Subject: [lang] Re: [meta] about new languages
In-Reply-To: <200204031036.LAA16439@wells.tecc.co.uk>
Message-ID: <Pine.LNX.4.44.0204031424200.11347-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc

On Wed, 3 Apr 2002, Mike Taylor wrote:
> Here we are on a list that has _a lot_ of new languages.  We have
> jaded palates.  To get our attention, a programming lnaguage has to
> show us something truly interesting, like Kayak's reversibility.

I think it is a little bit too bold to speak of "us" so collectively.  I
have certainly noticed huge variations in what different people consider
"interesting" (even though the list currently has members that will call
brainfuck-with-changing-instructions esoteric (and would probably call
MaD5 esoteric as well), there are also _real_ differences of preference).  
Thus I've come to the opinion that language announcements are always
welcome - they are less than 5% of the list's total traffic - and that
criticising languages for lack of originality is waste of time, as every
language will attract those that are interested in it. If there are no
such people, what's wrong with that?

It is a different thing to start bombing the list with superfluous
messages all the time, when nobody seems to show any interest. Compared to
recent discussions on lang (I'd like to remind people to switch a little
bit more often over to chat) the language has nothing to be shamed of.

> Now Ruler may be wonderful for all I know, but I found it hard to
> motivate myself to read past "Rule is a bit like BrainF*ck".  I find
> myself thinking, how many more BrainF*ck-like languages do we need?

Brainfuck might be useful as a explanation vehicle. Because brainfuck is a
model of some generality, it is indeed hard to avoid making any new
brainfuck-like languages.  Apparently, you did not read past that point,
because the language is more akin to dc than it is to brainfuck.  I didn't
read it all, either (yet) - the language is such a mess.

> In other words: give us a reason to _care_ about your language.

I agree with this, but I think it is nobody's business to tell someone 
that he is not making her care.  Beauty is in the eye of the beholder.

I agree also that there have been so much new languages recently that it's
hard to pay attention to every one.  But you can't blame a language of
being released at a time when lots of other languages are. There have been
times on the list when every new language was welcome :) I hope they are
not over.  I do agree that more effort could be put to elaborating
languages instead of designing new ones - but usage of intellectual
resources is everybody's personal decision.

-- 

Am fuar -> symb <- am fesh
atehwa@iki.fi









From esoteric@oiva.sange.fi Wed Apr 03 14:51:34 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sjIX-0000vL-00; Wed, 03 Apr 2002 14:51:29 +0300
Received: with LISTAR (v0.129a; list misc); Wed, 03 Apr 2002 14:51:22 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sjIO-0000uo-00; Wed, 03 Apr 2002 14:51:20 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 03 Apr 2002 14:51:11 +0300 (EEST)
Received: from tdsiaccess.demon.co.uk ([158.152.60.40] helo=mailhost.tdsi.co.uk)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sjIB-0000uH-00
	for lang@esoteric.sange.fi; Wed, 03 Apr 2002 14:51:10 +0300
Received: from 10.0.0.165 by mailhost.tdsi.co.uk ([10.0.0.230] running VPOP3) with SMTP for <lang@esoteric.sange.fi>; Wed, 3 Apr 2002 12:48:36 +0100
From: dmoss@tdsi.co.uk
To: <lang@esoteric.sange.fi>
Subject: [lang] Re: The Ruler language
Date: Wed, 3 Apr 2002 12:48:28 +0100
Message-ID: <000f01c1db05$7a2c5650$a500000a@td165>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook CWS, Build 9.0.2416 (9.0.2910.0)
In-Reply-To: <200204031036.LAA16439@wells.tecc.co.uk>
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300
Importance: Normal
X-Server: VPOP3 V1.5.0a - Registered
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: dmoss@tdsi.co.uk
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: dmoss@tdsi.co.uk
Precedence: bulk
X-list: misc

> In other words: give us a reason to _care_ about your language.

You don't have to care about it, I just posted it there because I wanted to
know if someone was interested in writing a quine or an interpreter. The
reason I made it is that I just thought BF with functions and some weird
loop extensions would be fun, so I thought out Ruler. In fact, more thought
went into the name than the actual language because I wanted something
ambiguous enough.

If you want a reason to care look at the if() statement. it evaluates
pairs/odds, that means that while you can be sure that an expression will be
executed, you can only be 50% sure that an expression won't! I leave it to
you to figure out why.

Apart from that its just my toy...






From esoteric@oiva.sange.fi Wed Apr 03 15:25:17 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sjoz-0002bU-00; Wed, 03 Apr 2002 15:25:01 +0300
Received: with LISTAR (v0.129a; list misc); Wed, 03 Apr 2002 15:24:54 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sjoc-0002aJ-00; Wed, 03 Apr 2002 15:24:38 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 03 Apr 2002 15:24:31 +0300 (EEST)
Received: from wells.tecc.co.uk ([195.217.37.90])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sjoV-0002a5-00
	for lang@esoteric.sange.fi; Wed, 03 Apr 2002 15:24:31 +0300
Received: from basingstoke.tecc.co.uk (basingstoke.tecc.co.uk [195.217.37.75])
	by wells.tecc.co.uk (8.9.3+Sun/8.9.3) with ESMTP id NAA17453
	for <lang@esoteric.sange.fi>; Wed, 3 Apr 2002 13:24:29 +0100 (BST)
Date: Wed, 3 Apr 2002 13:24:29 +0100 (BST)
Message-Id: <200204031224.NAA17453@wells.tecc.co.uk>
From: Mike Taylor <mike@tecc.co.uk>
To: lang@esoteric.sange.fi
In-reply-to: 
	<Pine.LNX.4.44.0204031424200.11347-100000@melkinpaasi.cs.Helsinki.FI>
	(message from Panu A Kalliokoski on Wed, 3 Apr 2002 14:50:00 +0300
	(EEST))
Subject: [lang] Re: [meta] about new languages
References:  <Pine.LNX.4.44.0204031424200.11347-100000@melkinpaasi.cs.Helsinki.FI>
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mike@tecc.co.uk
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mike@tecc.co.uk
Precedence: bulk
X-list: misc

> Date: Wed, 3 Apr 2002 14:50:00 +0300 (EEST)
> From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
> 
> > Here we are on a list that has _a lot_ of new languages.  We have
> > jaded palates.  To get our attention, a programming lnaguage has
> > to show us something truly interesting, like Kayak's
> > reversibility.
> 
> I think it is a little bit too bold to speak of "us" so collectively.

Granted.  Please excuse the use of the Royal "we" :-)

> > Now Ruler may be wonderful for all I know, but I found it hard to
> > motivate myself to read past "Rule is a bit like BrainF*ck".  I
> > find myself thinking, how many more BrainF*ck-like languages do we
> > need?
> 
> I agree also that there have been so much new languages recently
> that it's hard to pay attention to every one.  But you can't blame a
> language of being released at a time when lots of other languages
> are.

No indeed -- but that's why presentation of new languages is even more
important now than previously.  I really am not _in any way_
criticising the new language -- I have nothing good or bad to say
about it -- just asking the author to consider kicking off the
description with something a little more sensational than "It's a bit
like BF".  (Which has happened now: thanks for the pointer to the
indeterminate "if".)

> Am fuar -> symb <- am fesh

Qu'est-ce que c'est?

 _/|_	 _______________________________________________________________
/o ) \/  Mike Taylor   <mike@miketaylor.org.uk>   www.miketaylor.org.uk
)_v__/\  "The governor cannot stand intolerance" -- John Wodele,
	 Governor Ventura's spokesman.






From esoteric@oiva.sange.fi Wed Apr 03 16:03:00 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16skPG-0004TV-00; Wed, 03 Apr 2002 16:02:30 +0300
Received: with LISTAR (v0.129a; list misc); Wed, 03 Apr 2002 16:02:23 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16skOp-0004S4-00; Wed, 03 Apr 2002 16:02:03 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 03 Apr 2002 16:01:56 +0300 (EEST)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16skOi-0004Rs-00
	for lang@esoteric.sange.fi; Wed, 03 Apr 2002 16:01:56 +0300
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g33D1nr09261
	for <lang@esoteric.sange.fi>; Wed, 3 Apr 2002 16:01:50 +0300
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g33D1i720930
	for <lang@esoteric.sange.fi>; Wed, 3 Apr 2002 16:01:44 +0300
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Wed, 3 Apr 2002 16:01:44 +0300 (EEST)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: lang@esoteric.sange.fi
Subject: [lang] Re: New language: conser
In-Reply-To: <20020403021651.68862.qmail@web21409.mail.yahoo.com>
Message-ID: <Pine.LNX.4.44.0204031544430.16692-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc

On Tue, 2 Apr 2002, Quowong Liu wrote:
> The 1 becomes the most significant bit, with stdin providing the rest
> of the bits.  However, Ben Rudiak-Gould's idea of using fractions is a
> better idea.

Does somebody actually have an idea of how computationally heavy surreal 
fractions are? They do seem to be very heavy, unless one keeps them small 
by eliminating non-maximal numbers from the left and non-minimal from the 
right.

> A google search on surreal numbers gives lots of pages.
> http://www.tondering.dk/claus/surreal.html is a good introduction.

Yes. It seems most of the language is built for surreal numbers and the 
mathematical theory around them, so my not being familiar with them 
explains why I didn't think of the definitions as self-evident. It clearly 
is not a pairing function tarpit, but it might be a surreal number 
tarpit...

These surreal numbers sure are interesting, though they seem to be quite 
equivalent to real numbers - the infinities excluded. Are all kinds of 
infinities definable with surreal numbers? aleph(aleph 0)?

> (a b & b) = ((a&b) b).

= b?

> Then lazy evaluation with parallel evaluation of arguments when
> forced will be the way to go.

Yes. It just leaves the problem of efficient implementation of lazy 
sets... ordered data structures are bad, they require calculating all 
elements to be able to extract the first one. Maybe a structure with a 
lazy "element producer", and strictly-evaluated exclusion and condition 
lists... and then it is crucial for the operation of these to flatten the 
structure as much as possible... (Just thinking aloud)

Panu






From esoteric@oiva.sange.fi Wed Apr 03 16:03:12 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16skPu-0004Vk-00; Wed, 03 Apr 2002 16:03:10 +0300
Received: with LISTAR (v0.129a; list misc); Wed, 03 Apr 2002 16:03:03 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16skPI-0004Tk-00; Wed, 03 Apr 2002 16:02:33 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 03 Apr 2002 16:02:26 +0300 (EEST)
Received: from sabre-wulf.nvg.ntnu.no ([129.241.210.67])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16skPB-0004TX-00
	for lang@esoteric.sange.fi; Wed, 03 Apr 2002 16:02:25 +0300
Received: from hagbart.nvg.ntnu.no ([IPv6:::ffff:129.241.210.68]:51368 "EHLO
	hagbart.nvg.ntnu.no" ident: "[FVI4k+Qp2GFIapM2pHyX4vhm2cu7fKzR]" whoson:
	"-unregistered-") by sabre-wulf.nvg.ntnu.no with ESMTP
	id <S436272AbSDCNCM>; Wed, 3 Apr 2002 15:02:12 +0200
Date:	Wed, 3 Apr 2002 15:02:12 +0200 (CEST)
From:	Orjan Johansen <oerjan@nvg.ntnu.no>
To:	Esoteric Languages List <lang@esoteric.sange.fi>
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
In-Reply-To: <3CAA15F2.BE1FD45D@dds.nl>
Message-ID: <Pine.LNX.4.40.0204031434480.30321-100000@hagbart.nvg.ntnu.no>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: oerjan@nvg.ntnu.no
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: oerjan@nvg.ntnu.no
Precedence: bulk
X-list: misc

On Tue, 2 Apr 2002, Milo van Handel wrote:

> Orjan Johansen wrote:
>
> > Also, 9 could be replaced with the more useful T, which uses the
> > accumulator to determine which verse to print.  It would also increment
> > it, making + obsolete.  This gives an alternative way of making quines,
> > which are unfortunately now needed to produce "Hello world!".
>
> I don't understand.  What would the "T" character exactly do and why does=
 it
> have that letter?

My apologies, I had somehow gotten the impression that HQ9+ required
upper-case commands.  Now I see that the reference implementation even
requires lower case.  So my idea does not work.

Here is what it would have looked like:


exception OutOfBeer
;;

let accumulator =3D ref 1
;;

let accumulate () =3D
  incr accumulator
;;

let t () =3D
  begin match 100-!accumulator with
  | 0 ->
    raise OutOfBeer
  | 1 ->
    print_endline "1 bottle of beer on the wall";
    print_endline "1 bottle of beer";
    print_endline "Take one down and pass it around";
    print_endline "No bottles of beer on the wall"
  | n ->
    print_int n; print_endline " bottles of beer on the wall";
    print_int n; print_endline " bottles of beer";
    print_endline "Take one down and pass it around";
    print_int (n - 1); print_endline " bottles of beer on the wall";
    print_newline ();
    beer (n - 1)
  end;
  accumulate ()
;;


Greetings,
=D8rjan.

--=20
My Unlambda page: <http://home.nvg.org/~oerjan/unlambda/>
Latest contraption:  Unlambda to Ocaml compiler.






From esoteric@oiva.sange.fi Wed Apr 03 16:11:37 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16skY0-0004cU-00; Wed, 03 Apr 2002 16:11:32 +0300
Received: with LISTAR (v0.129a; list misc); Wed, 03 Apr 2002 16:11:25 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16skXs-0004cO-00; Wed, 03 Apr 2002 16:11:24 +0300
Received: with LISTAR (v0.129a; list chat); Wed, 03 Apr 2002 16:11:23 +0300 (EEST)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16skXq-0004cI-00
	for chat@esoteric.sange.fi; Wed, 03 Apr 2002 16:11:22 +0300
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g33DBEr11561
	for <chat@esoteric.sange.fi>; Wed, 3 Apr 2002 16:11:17 +0300
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g33DB8I21348
	for <chat@esoteric.sange.fi>; Wed, 3 Apr 2002 16:11:08 +0300
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Wed, 3 Apr 2002 16:11:08 +0300 (EEST)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: chat@esoteric.sange.fi
Subject: [chat] Re: [lang] Re: Purpose of "+" in HQ9+ ?
In-Reply-To: <Pine.LNX.4.40.0204031434480.30321-100000@hagbart.nvg.ntnu.no>
Message-ID: <Pine.LNX.4.44.0204031606470.21117-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: chat-bounce@esoteric.sange.fi
Errors-to: chat-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: chat@esoteric.sange.fi
X-list: chat
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc

On Wed, 3 Apr 2002, Orjan Johansen wrote:
> let t () =
>   begin match 100-!accumulator with
>   | 0 ->
>     raise OutOfBeer

I had a similar idea, though unifying the concept of accumulator totally 
with that of bottles of beer on the wall, so that singing a verse becomes 
a natural decrementation operation. (You see, they drink one off.) Also, 
given that somebody already came up with the idea of zen beer, I think 
zero behavior should be:

No bottles of beer on the wall,
no bottles of beer.
Take one down, pass it around,
no bottles of beer on the wall.

This way, with only two instructions, you are able to sing "zen beer", 
"nine bottles of beer" and "99 bottles of beer".

-- 

Am fuar -> symb <- am fesh
atehwa@iki.fi







From esoteric@oiva.sange.fi Wed Apr 03 16:13:38 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ska0-0004fU-00; Wed, 03 Apr 2002 16:13:36 +0300
Received: with LISTAR (v0.129a; list misc); Wed, 03 Apr 2002 16:13:29 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16skZn-0004fK-00; Wed, 03 Apr 2002 16:13:23 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 03 Apr 2002 16:13:17 +0300 (EEST)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16skZg-0004fE-00
	for lang@esoteric.sange.fi; Wed, 03 Apr 2002 16:13:16 +0300
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g33DDFr11904
	for <lang@esoteric.sange.fi>; Wed, 3 Apr 2002 16:13:15 +0300
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g33DDAH21522
	for <lang@esoteric.sange.fi>; Wed, 3 Apr 2002 16:13:10 +0300
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Wed, 3 Apr 2002 16:13:10 +0300 (EEST)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: lang@esoteric.sange.fi
Subject: [lang] Re: New language: conser
In-Reply-To: <Pine.LNX.4.44.0204031544430.16692-100000@melkinpaasi.cs.Helsinki.FI>
Message-ID: <Pine.LNX.4.44.0204031611120.21117-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc

On Wed, 3 Apr 2002, Panu A Kalliokoski wrote:
> These surreal numbers sure are interesting, though they seem to be quite 
> equivalent to real numbers - the infinities excluded. Are all kinds of 

Especially the infinitesimals: I though it is the _definition_ of real 
numbers that whatever cutting point you choose on the real line, it is 
always part of the real line. How on earth could there be an infinitesimal 
between a real number and its surrounding real numbers?

-- 

Am fuar -> symb <- am fesh
atehwa@iki.fi







From esoteric@oiva.sange.fi Wed Apr 03 16:18:53 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16skf5-0004hN-00; Wed, 03 Apr 2002 16:18:51 +0300
Received: with LISTAR (v0.129a; list misc); Wed, 03 Apr 2002 16:18:44 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16skes-0004hG-00; Wed, 03 Apr 2002 16:18:38 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 03 Apr 2002 16:18:31 +0300 (EEST)
Received: from sabre-wulf.nvg.ntnu.no ([129.241.210.67])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16skel-0004hA-00
	for lang@esoteric.sange.fi; Wed, 03 Apr 2002 16:18:31 +0300
Received: from hagbart.nvg.ntnu.no ([IPv6:::ffff:129.241.210.68]:57000 "EHLO
	hagbart.nvg.ntnu.no" ident: "[TsUoUvtdfe7GoZJW1J4JSnTL2qZnyVL+]" whoson:
	"-unregistered-") by sabre-wulf.nvg.ntnu.no with ESMTP
	id <S436272AbSDCNSZ>; Wed, 3 Apr 2002 15:18:25 +0200
Date:	Wed, 3 Apr 2002 15:18:24 +0200 (CEST)
From:	Orjan Johansen <oerjan@nvg.ntnu.no>
To:	Esoteric Languages List <lang@esoteric.sange.fi>
Subject: [lang] Re: New language: conser
In-Reply-To: <Pine.LNX.4.44.0204031544430.16692-100000@melkinpaasi.cs.Helsinki.FI>
Message-ID: <Pine.LNX.4.40.0204031510490.30321-100000@hagbart.nvg.ntnu.no>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: oerjan@nvg.ntnu.no
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: oerjan@nvg.ntnu.no
Precedence: bulk
X-list: misc

On Wed, 3 Apr 2002, Panu A Kalliokoski wrote:

> These surreal numbers sure are interesting, though they seem to be quite
> equivalent to real numbers - the infinities excluded. Are all kinds of
> infinities definable with surreal numbers? aleph(aleph 0)?

Yes.  Any ordinal number may represented as the pair whose cdr is empty
and whose car is the set of all smaller ordinal numbers.

Ignoring all cdrs, this is of course parallel to the von Neumann
representation of an ordinal number as the set of all smaller ones.

Greetings,
=D8rjan.

--=20
My Unlambda page: <http://home.nvg.org/~oerjan/unlambda/>
Latest contraption:  Unlambda to Ocaml compiler.






From esoteric@oiva.sange.fi Wed Apr 03 16:22:42 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16skim-0004jV-00; Wed, 03 Apr 2002 16:22:40 +0300
Received: with LISTAR (v0.129a; list misc); Wed, 03 Apr 2002 16:22:33 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16skia-0004jP-00; Wed, 03 Apr 2002 16:22:29 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 03 Apr 2002 16:22:22 +0300 (EEST)
Received: from tdsiaccess.demon.co.uk ([158.152.60.40] helo=mailhost.tdsi.co.uk)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16skiT-0004jJ-00
	for lang@esoteric.sange.fi; Wed, 03 Apr 2002 16:22:21 +0300
Received: from 10.0.0.165 by mailhost.tdsi.co.uk ([10.0.0.230] running VPOP3) with SMTP for <lang@esoteric.sange.fi>; Wed, 3 Apr 2002 14:20:06 +0100
From: dmoss@tdsi.co.uk
To: <lang@esoteric.sange.fi>
Subject: [lang] Re: [meta] about new languages
Date: Wed, 3 Apr 2002 14:19:59 +0100
Message-ID: <001001c1db12$4205dfa0$a500000a@td165>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook CWS, Build 9.0.2416 (9.0.2910.0)
In-Reply-To: <200204031224.NAA17453@wells.tecc.co.uk>
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300
Importance: Normal
X-Server: VPOP3 V1.5.0a - Registered
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: dmoss@tdsi.co.uk
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: dmoss@tdsi.co.uk
Precedence: bulk
X-list: misc

> just asking the author to consider kicking off the
> description with something a little more sensational than "It's a bit
> like BF".  (Which has happened now: thanks for the pointer to the
> indeterminate "if".)

Its just that I like to compare stuff with what I already got because it
makes it easier for me to get into. Its like saying JavaScript is a bit like
C. They have not got much in common, but the look and feel is similar, so
the comparison is valid. In the case of Ruler, the only similitude to BF is
the array variable, apart from that... well... and Ruler can be written like
BF (sort of) same as JavaScript can be written like C (sort of).

David.






From esoteric@oiva.sange.fi Wed Apr 03 16:34:21 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sktw-0004my-00; Wed, 03 Apr 2002 16:34:12 +0300
Received: with LISTAR (v0.129a; list misc); Wed, 03 Apr 2002 16:34:05 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16skto-0004ms-00; Wed, 03 Apr 2002 16:34:04 +0300
Received: with LISTAR (v0.129a; list sci); Wed, 03 Apr 2002 16:34:03 +0300 (EEST)
Received: from sabre-wulf.nvg.ntnu.no ([129.241.210.67])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sktm-0004mk-00
	for sci@esoteric.sange.fi; Wed, 03 Apr 2002 16:34:02 +0300
Received: from hagbart.nvg.ntnu.no ([IPv6:::ffff:129.241.210.68]:65448 "EHLO
	hagbart.nvg.ntnu.no" ident: "[JnZfZMb+JI5jYC8oPwdPAhZzrgzp3/hg]" whoson:
	"-unregistered-") by sabre-wulf.nvg.ntnu.no with ESMTP
	id <S436272AbSDCNdq>; Wed, 3 Apr 2002 15:33:46 +0200
Date:	Wed, 3 Apr 2002 15:33:46 +0200 (CEST)
From:	Orjan Johansen <oerjan@nvg.ntnu.no>
To:	sci@esoteric.sange.fi
Subject: [sci] Re: [lang] Re: New language: conser
In-Reply-To: <Pine.LNX.4.44.0204031611120.21117-100000@melkinpaasi.cs.Helsinki.FI>
Message-ID: <Pine.LNX.4.40.0204031519450.30321-100000@hagbart.nvg.ntnu.no>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE
X-listar-version: Listar v0.129a
Sender: sci-bounce@esoteric.sange.fi
Errors-to: sci-bounce@esoteric.sange.fi
X-original-sender: oerjan@nvg.ntnu.no
Precedence: bulk
Reply-to: sci@esoteric.sange.fi
X-list: sci
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: oerjan@nvg.ntnu.no
Precedence: bulk
X-list: misc

On Wed, 3 Apr 2002, Panu A Kalliokoski wrote:

> On Wed, 3 Apr 2002, Panu A Kalliokoski wrote:
> > These surreal numbers sure are interesting, though they seem to be quit=
e
> > equivalent to real numbers - the infinities excluded. Are all kinds of
>
> Especially the infinitesimals: I though it is the _definition_ of real
> numbers that whatever cutting point you choose on the real line, it is
> always part of the real line. How on earth could there be an infinitesima=
l
> between a real number and its surrounding real numbers?

A pair is always interpreted as the simplest surreal number strictly
larger than all its left elements and strictly smaller than all its right
elements.

If you cut the real line then one of the parts will have an end point.
However, when interpreted as a surreal number the cut is not that end
point, but rather the simplest infinitesimal between the end point and the
other cut part.

However if you remove the end point from the cut, then you get a surreal
number representing the removed end point, because now that end point
fulfills the requirement that it is larger than all the left elements and
smaller than all the right elements.

Greetings,
=D8rjan.

--=20
My Unlambda page: <http://home.nvg.org/~oerjan/unlambda/>
Latest contraption:  Unlambda to Ocaml compiler.






From esoteric@oiva.sange.fi Wed Apr 03 18:38:17 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16smpU-0005Cu-00; Wed, 03 Apr 2002 18:37:44 +0300
Received: with LISTAR (v0.129a; list misc); Wed, 03 Apr 2002 18:37:37 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16smp9-0005Co-00; Wed, 03 Apr 2002 18:37:23 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 03 Apr 2002 18:37:16 +0300 (EEST)
Received: from dark.darkweb.com ([216.163.74.170])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16smoy-0005Ci-00
	for lang@esoteric.sange.fi; Wed, 03 Apr 2002 18:37:12 +0300
Received: from localhost (benrg@localhost)
	by dark.darkweb.com (8.9.3/8.9.3) with ESMTP id HAA12275
	for <lang@esoteric.sange.fi>; Wed, 3 Apr 2002 07:37:22 -0800
Date: Wed, 3 Apr 2002 07:37:22 -0800 (PST)
From: Ben Rudiak-Gould <benrg@dark.darkweb.com>
To: lang@esoteric.sange.fi
Subject: [lang] conser in Haskell
In-Reply-To: <20020403020527.60919.qmail@web21402.mail.yahoo.com>
Message-ID: <Pine.LNX.4.21.0204030641300.4944-200000@dark.darkweb.com>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="-1546081718-139754974-1017845871=:4944"
Content-ID: <Pine.LNX.4.21.0204030657550.4944@dark.darkweb.com>
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: benrg@dark.darkweb.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: benrg@dark.darkweb.com
Precedence: bulk
X-list: misc

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---1546081718-139754974-1017845871=:4944
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.LNX.4.21.0204030657551.4944@dark.darkweb.com>

Attached is a Haskell implementation of conser. It reads source code from
standard input. Memoization is not implemented, nor is stream I/O. The
main function is always called with no arguments, and its return value(s)
are printed as conser expressions. Declaring a main function which takes
one or more arguments and refers to any of them will result in an
unhelpful runtime error.

Believe it or not this is my first Haskell program, so I would appreciate
style critiques from more experienced Haskell coders (by private email). I
have to say that my first impression was very positive: I never had to
debug any part of my program because (seemingly) every error I made was
caught by the type system. This is a refreshing change from Lazier, which
isn't even dynamically typed. :-)

The precompiled Win32 executable is about 80K gzipped. I will email it to
anyone who (for some unfathomable reason) wants to run it.


-- Ben

---1546081718-139754974-1017845871=:4944
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="conser.hs"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.21.0204030737220.4944@dark.darkweb.com>
Content-Description: 
Content-Disposition: attachment; filename="conser.hs"

LS0gSW1wbGVtZW50YXRpb24gb2YgUXVvd29uZyBMaXUncyBlc290ZXJpYyBs
YW5ndWFnZSAiY29uc2VyIiBpbiBIYXNrZWxsIDk4Lg0KLS0gVmVyc2lvbiAw
LjAuIENvcHlyaWdodCAyMDAyIEJlbiBSdWRpYWstR291bGQuIFJlbGVhc2Vk
IHVuZGVyIHRoZSBHUEwuDQoNCg0KaW1wb3J0IExpc3QNCmltcG9ydCBDaGFy
DQoNCg0KbWFpbiA9IGludGVyYWN0IGNvbnNlcg0KDQpjb25zZXIgPSBkZWNv
ZGVPdXRwdXQgLiBydW4gLiBjb21waWxlIC4gZnVuY3Rpb25TcGxpdCAuIHRv
a2VuaXplDQoNCg0Key09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09
LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tfQ0KDQpkYXRhIFBhaXIgPSBQ
YWlyIFNldCBTZXQgICBkZXJpdmluZyAoRXEsIFNob3cpDQoNCnR5cGUgU2V0
ID0gW1BhaXJdDQoNCnstPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0t
PS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LX0NCg0Kb3BDYXIgICA9ICc8
Jw0Kb3BDZHIgICA9ICc+Jw0Kb3BPcGVuICA9ICcoJw0Kb3BDbG9zZSA9ICcp
Jw0Kb3BDb25zICA9ICcsJw0Kb3BYbiAgICA9ICcmJw0Kb3BEaWZmICA9ICch
Jw0Kb3BJcyAgICA9ICc9Jw0Kb3BFbmQgICA9ICcuJw0KDQpvcGVyYXRvcnMg
PSBbb3BDYXIsb3BDZHIsb3BPcGVuLG9wQ2xvc2Usb3BDb25zLG9wWG4sb3BE
aWZmLG9wSXMsb3BFbmRdDQoNCmNvbW1lbnQgPSAnIicNCg0Key09LT0tPS09
LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0t
PS09LT0tfQ0KDQp0b2tlbml6ZSA6OiBTdHJpbmcgLT4gW1N0cmluZ10NCg0K
dG9rZW5pemUgW10gPSBbXQ0KdG9rZW5pemUgKGNoOnJlc3QpID0NCiAgaWYg
aXNTcGFjZSBjaCB0aGVuDQogICAgdG9rZW5pemUgcmVzdA0KICBlbHNlIGlm
IGNoIGBlbGVtYCBvcGVyYXRvcnMgdGhlbg0KICAgIChbY2hdIDogdG9rZW5p
emUgcmVzdCkNCiAgZWxzZSBpZiBjaCA9PSBjb21tZW50IHRoZW4NCiAgICB0
b2tlbml6ZSAodGFpbCAoZHJvcFdoaWxlICgvPSBjb21tZW50KSByZXN0KSkN
CiAgZWxzZQ0KICAgIGxldCAodG9rZW4scmVzdDIpID0gYnJlYWsgKFxjaCAt
PiAoaXNTcGFjZSBjaCkgfHwgKGNoIGBlbGVtYCBvcGVyYXRvcnMpIHx8IChj
aCA9PSBjb21tZW50KSkgcmVzdA0KICAgICAgaW4gKChjaCA6IHRva2VuKSA6
IHRva2VuaXplIHJlc3QyKQ0KDQp7LT0tPS09LT0tPS09LT0tPS09LT0tPS09
LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS19DQoNCnR5cGUg
QXNzb2NMaXN0IGEgYiA9IFsoYSxiKV0NCg0KdHlwZSBTdHJpbmdBc3NvYyBi
ID0gQXNzb2NMaXN0IFN0cmluZyBiDQoNCmFzc29jbGlzdExvb2t1cCA6OiBF
cSBhID0+IEFzc29jTGlzdCBhIGIgLT4gYSAtPiBNYXliZSBiDQoNCmFzc29j
bGlzdExvb2t1cCBhbCBrZXkgPQ0KICBjYXNlIGZpbmQgKCg9PSBrZXkpIC4g
ZnN0KSBhbCBvZg0KICAgIE5vdGhpbmcgLT4gTm90aGluZw0KICAgIEp1c3Qg
KGtleSx2YWx1ZSkgLT4gSnVzdCB2YWx1ZQ0KDQphc3NvY2xpc3RNYXAgOjog
KGEtPmItPmMpIC0+IEFzc29jTGlzdCBhIGIgLT4gQXNzb2NMaXN0IGEgYw0K
DQphc3NvY2xpc3RNYXAgZiBbXSA9IFtdDQphc3NvY2xpc3RNYXAgZiAoKGss
dik6a3ZzKSA9IChrLGYgayB2KSA6IGFzc29jbGlzdE1hcCBmIGt2cw0KDQp7
LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0t
PS09LT0tPS09LT0tPS19DQoNCnR5cGUgUmF3RnVuY3Rpb24gPSAoW1N0cmlu
Z10sW1N0cmluZ10pICAgIC0tIHBhcmFtcywgY29kZQ0KDQp0eXBlIENvbXBp
bGVkRnVuY3Rpb24gPSBbUGFpcl0tPlNldA0KDQp7LT0tPS09LT0tPS09LT0t
PS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS19
DQoNCnBhcnNlRmF0YWwgZnVuYyBtc2cgPQ0KICBlcnJvciAoIkluIGZ1bmN0
aW9uICciICsrIGZ1bmMgKysgIic6ICIgKysgbXNnKQ0KDQp7LT0tPS09LT0t
PS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09
LT0tPS19DQoNCmZ1bmN0aW9uU3BsaXQgOjogW1N0cmluZ10gLT4gU3RyaW5n
QXNzb2MgUmF3RnVuY3Rpb24NCg0KZnVuY3Rpb25TcGxpdCBbXSA9IFtdDQpm
dW5jdGlvblNwbGl0IChuYW1lOnJlc3QpID0NCiAgbGV0IChwYXJhbXMsaXNf
Ym9keSkgPSBzcGFuICgvPSBbb3BJc10pIHJlc3QgaW4NCiAgICBpZiBudWxs
IGlzX2JvZHkgdGhlbg0KICAgICAgcGFyc2VGYXRhbCBuYW1lICJubyAnPScg
Zm91bmQgYmVmb3JlIGVuZCBvZiBmaWxlIg0KICAgIGVsc2UNCiAgICAgIGxl
dCAoYm9keSxyZXN0KSA9IHNwYW4gKC89IFtvcEVuZF0pICh0YWlsIGlzX2Jv
ZHkpIGluDQogICAgICAgIGlmIG51bGwgcmVzdCB0aGVuDQogICAgICAgICAg
cGFyc2VGYXRhbCBuYW1lICJubyAnOicgZm91bmQgYmVmb3JlIGVuZCBvZiBm
aWxlIg0KICAgICAgICBlbHNlDQogICAgICAgICAgKG5hbWUsKHBhcmFtcyxi
b2R5KSkgOiBmdW5jdGlvblNwbGl0ICh0YWlsIHJlc3QpDQoNCnstPS09LT0t
PS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09
LT0tPS09LX0NCg0KY29tcGlsZSA6OiBTdHJpbmdBc3NvYyBSYXdGdW5jdGlv
biAtPiBTdHJpbmdBc3NvYyBDb21waWxlZEZ1bmN0aW9uDQoNCmNvbXBpbGUg
ZnVuY3MgPQ0KICBsZXQgY29tcGlsZWRGdW5jcyA9IGFzc29jbGlzdE1hcCAo
XGsgdiAtPiAoZW5jb2RlIGNvbXBpbGVkRnVuY3MgKHBhcnNlIGZ1bmNzIGsg
dikpKSBmdW5jcw0KICAgaW4gY29tcGlsZWRGdW5jcw0KDQp7LT0tPS09LT0t
PS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09
LT0tPS19DQoNCnJ1biA6OiBTdHJpbmdBc3NvYyBDb21waWxlZEZ1bmN0aW9u
IC0+IFNldA0KDQpydW4gY29tcGlsZWRGdW5jcyA9DQogIGNhc2UgYXNzb2Ns
aXN0TG9va3VwIGNvbXBpbGVkRnVuY3MgIm1haW4iIG9mDQogICAgTm90aGlu
ZyAtPiBlcnJvciAiTm8gbWFpbiBmdW5jdGlvbiINCiAgICBKdXN0IGYgIC0+
IGYgW10NCg0Key09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0t
PS09LT0tPS09LT0tPS09LT0tPS09LT0tfQ0KDQpkZWNvZGVPdXRwdXQgOjog
U2V0IC0+IFN0cmluZw0KDQpkZWNvZGVPdXRwdXQgW10gICAgID0gIiINCmRl
Y29kZU91dHB1dCAoeDpbXSkgPSBkZWNvZGVPdXRwdXRQYWlyIHgNCmRlY29k
ZU91dHB1dCAoeDp4cykgPSAoZGVjb2RlT3V0cHV0UGFpciB4KSArKyAiICIg
KysgKGRlY29kZU91dHB1dCB4cykNCg0KZGVjb2RlT3V0cHV0UGFpciAoUGFp
ciB4IHkpID0gIigiICsrIChkZWNvZGVPdXRwdXQgeCkgKysgIiwiICsrIChk
ZWNvZGVPdXRwdXQgeSkgKysgIikiDQoNCnstPS09LT0tPS09LT0tPS09LT0t
PS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LX0NCg0K
ZGF0YSBDRXhwciA9IENBcmdSZWYgICAgIEludA0KICAgICAgICAgICB8IENG
dW5jYWxsICAgIFN0cmluZyBbQ0V4cHJdDQogICAgICAgICAgIHwgQ1VuaW9u
ICAgICAgW0NFeHByXQ0KICAgICAgICAgICB8IENJbnRlcnNlY3QgIENFeHBy
IENFeHByDQogICAgICAgICAgIHwgQ0RpZmZlcmVuY2UgQ0V4cHIgQ0V4cHIN
CiAgICAgICAgICAgfCBDQ29ucyAgICAgICBDRXhwciBDRXhwcg0KICAgICAg
ICAgICB8IENDYXIgICAgICAgIENFeHByDQogICAgICAgICAgIHwgQ0NkciAg
ICAgICAgQ0V4cHINCiAgZGVyaXZpbmcgU2hvdw0KDQp7LT0tPS09LT0tPS09
LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0t
PS19DQoNCnBhcnNlIDo6IFN0cmluZ0Fzc29jIFJhd0Z1bmN0aW9uIC0+IFN0
cmluZyAtPiBSYXdGdW5jdGlvbiAtPiBDRXhwcg0KDQpwYXJzZSBmdW5jcyBu
YW1lIChwYXJhbXMsYm9keSkgPQ0KICBsZXQgKGFzdCwgcmVtYWluaW5nSW5w
dXQpID0gcGFyc2VUZXJtIGZ1bmNzIG5hbWUgcGFyYW1zIGJvZHkgaW4NCiAg
ICBjYXNlIHJlbWFpbmluZ0lucHV0IG9mDQogICAgICBbXSAgIC0+IGFzdA0K
ICAgICAgeDp4cyAtPiBwYXJzZUZhdGFsIG5hbWUgKCJ1bmV4cGVjdGVkIHRv
a2VuICciICsrIHggKysgIicgYWZ0ZXIgZW5kIG9mIGZ1bmN0aW9uIikNCg0K
DQpwYXJzZVRlcm0gOjogU3RyaW5nQXNzb2MgUmF3RnVuY3Rpb24gLT4gU3Ry
aW5nIC0+IFtTdHJpbmddIC0+IFtTdHJpbmddIC0+IChDRXhwciwgW1N0cmlu
Z10pDQoNCnBhcnNlVGVybSBmdW5jcyBuYW1lIHBhcmFtcyBbXSA9IHBhcnNl
RmF0YWwgbmFtZSAidW5leHBlY3RlZCBlbmQgb2YgZnVuY3Rpb24gKGV4cGVj
dGVkIGEgdGVybSkiDQoNCnBhcnNlVGVybSBmdW5jcyBuYW1lIHBhcmFtcyAo
eDp4cykgPQ0KICAtLSAoLi4uKQ0KICBpZiB4ID09IFtvcE9wZW5dIHRoZW4N
CiAgICBwYXJzZVBhcmVudGhlc2l6ZWQgZnVuY3MgbmFtZSBwYXJhbXMgeHMN
CiAgLS0gY2FyIGFuZCBjZHINCiAgZWxzZSBpZiB4ID09IFtvcENhcl0gdGhl
bg0KICAgIGxldCAoYXN0LCByZW1haW5pbmdJbnB1dCkgPSBwYXJzZVRlcm0g
ZnVuY3MgbmFtZSBwYXJhbXMgeHMgaW4NCiAgICAgIChDQ2FyIGFzdCwgcmVt
YWluaW5nSW5wdXQpDQogIGVsc2UgaWYgeCA9PSBbb3BDZHJdIHRoZW4NCiAg
ICBsZXQgKGFzdCwgcmVtYWluaW5nSW5wdXQpID0gcGFyc2VUZXJtIGZ1bmNz
IG5hbWUgcGFyYW1zIHhzIGluDQogICAgICAoQ0NkciBhc3QsIHJlbWFpbmlu
Z0lucHV0KQ0KICAtLSByZWZlcmVuY2UgdG8gZm9ybWFsIHBhcmFtZXRlcg0K
ICBlbHNlIGNhc2UgZWxlbUluZGV4IHggcGFyYW1zIG9mDQogICAgSnVzdCBp
IC0+IChDQXJnUmVmIGksIHhzKQ0KICAgIE5vdGhpbmcgLT4NCiAgICAgIC0t
IHJlZmVyZW5jZSB0byBmdW5jdGlvbg0KICAgICAgY2FzZSBhc3NvY2xpc3RM
b29rdXAgZnVuY3MgeCBvZg0KICAgICAgICBKdXN0IGYgIC0+IHBhcnNlRnVu
Y2FsbCBmdW5jcyBuYW1lIHBhcmFtcyB4IChsZW5ndGggKGZzdCBmKSkgeHMN
CiAgICAgICAgTm90aGluZyAtPiBwYXJzZUZhdGFsIG5hbWUgKCJ1bmV4cGVj
dGVkIHRva2VuICciICsrIHggKysgIicgKGV4cGVjdGVkIGEgdGVybSkiKQ0K
DQoNCnBhcnNlUGFyZW50aGVzaXplZCBmdW5jcyBuYW1lIHBhcmFtcyBpbnB1
dCA9DQogIGxldCAodW5pb24xLCBpbnB1dDIpID0gcGFyc2VVbmlvbiBmdW5j
cyBuYW1lIHBhcmFtcyBpbnB1dCBpbg0KICAgIGNhc2UgaW5wdXQyIG9mDQog
ICAgICBbXSAgICAgLT4gcGFyc2VGYXRhbCBuYW1lICJVbmV4cGVjdGVkIGVu
ZCBvZiBmdW5jdGlvbiBpbiBwYXJlbnRoZXNpemVkIGV4cHJlc3Npb24iDQog
ICAgICAoeDp4cykgLT4NCiAgICAgICAgaWYgeCA9PSBbb3BDbG9zZV0gdGhl
bg0KICAgICAgICAgICh1bmlvbjEsIHhzKQ0KICAgICAgICBlbHNlIGlmIHgg
YGVsZW1gIFtbb3BDb25zXSxbb3BYbl0sW29wRGlmZl1dIHRoZW4NCiAgICAg
ICAgICBsZXQgKHVuaW9uMiwgaW5wdXQzKSA9IHBhcnNlVW5pb24gZnVuY3Mg
bmFtZSBwYXJhbXMgeHMgaW4NCiAgICAgICAgICAgIGlmIG51bGwgaW5wdXQz
IHx8IGhlYWQgaW5wdXQzIC89IFtvcENsb3NlXSB0aGVuDQogICAgICAgICAg
ICAgIHBhcnNlRmF0YWwgbmFtZSAibWlzc2luZyAnKScgYWZ0ZXIgY29ucy9p
bnRlcnNlY3QvZGlmZmVyZW5jZSBvcGVyYXRpb24iDQogICAgICAgICAgICBl
bHNlDQogICAgICAgICAgICAgIChpZiAgICAgICAgeCA9PSBbb3BDb25zXSB0
aGVuICAgQ0NvbnMgdW5pb24xIHVuaW9uMg0KICAgICAgICAgICAgICAgZWxz
ZSBpZiAgIHggPT0gW29wWG5dICAgdGhlbiAgIENJbnRlcnNlY3QgdW5pb24x
IHVuaW9uMg0KICAgICAgICAgICAgICAgZWxzZSB7LWlmIHggPT0gW29wRGlm
Zl0gdGhlbi19IENEaWZmZXJlbmNlIHVuaW9uMSB1bmlvbjINCiAgICAgICAg
ICAgICAgLCB0YWlsIGlucHV0MykNCiAgICAgICAgZWxzZQ0KICAgICAgICAg
IHBhcnNlRmF0YWwgbmFtZSAibWlzc2luZyAnKScgYWZ0ZXIgdW5pb24gb3Bl
cmF0aW9uIg0KDQoNCnBhcnNlRnVuY2FsbCBmdW5jcyBuYW1lIHBhcmFtcyBz
dWJuYW1lIG51bUFyZ3MgaW5wdXQgPQ0KICBsZXQgKGFyZ3MsIHJlbWFpbmlu
Z0lucHV0KSA9IHBhcnNlTXVsdGlUZXJtIGZ1bmNzIG5hbWUgcGFyYW1zIGlu
cHV0IG51bUFyZ3MNCiAgICBpbiAoQ0Z1bmNhbGwgc3VibmFtZSBhcmdzLCBy
ZW1haW5pbmdJbnB1dCkNCg0KDQpwYXJzZU11bHRpVGVybSBmdW5jcyBuYW1l
IHBhcmFtcyBpbnB1dCAwID0gKFtdLCBpbnB1dCkNCnBhcnNlTXVsdGlUZXJt
IGZ1bmNzIG5hbWUgcGFyYW1zIGlucHV0IG4gPQ0KICBsZXQgKGZpcnN0VGVy
bSwgaW5wdXQyKSA9IHBhcnNlVGVybSBmdW5jcyBuYW1lIHBhcmFtcyBpbnB1
dA0KICAgICAgKHJlbWFpbmluZ1Rlcm1zLCBpbnB1dDMpID0gcGFyc2VNdWx0
aVRlcm0gZnVuY3MgbmFtZSBwYXJhbXMgaW5wdXQyIChuLTEpDQogIGluIChm
aXJzdFRlcm06cmVtYWluaW5nVGVybXMsIGlucHV0MykNCg0KDQpwYXJzZVVu
aW9uIGZ1bmNzIG5hbWUgcGFyYW1zIFtdID0gKENVbmlvbiBbXSwgW10pDQpw
YXJzZVVuaW9uIGZ1bmNzIG5hbWUgcGFyYW1zIGlucHV0QCh4OnhzKSA9DQog
IGlmIHggYGVsZW1gIFtbb3BDbG9zZV0sW29wQ29uc10sW29wWG5dLFtvcERp
ZmZdXSB0aGVuDQogICAgKENVbmlvbiBbXSwgaW5wdXQpDQogIGVsc2UNCiAg
ICBsZXQgKGZpcnN0VGVybSwgaW5wdXQyKSAgICAgICAgICAgICA9IHBhcnNl
VGVybSBmdW5jcyBuYW1lIHBhcmFtcyBpbnB1dA0KICAgICAgICAoQ1VuaW9u
IHJlbWFpbmluZ1Rlcm1zLCBpbnB1dDMpID0gcGFyc2VVbmlvbiBmdW5jcyBu
YW1lIHBhcmFtcyBpbnB1dDINCiAgICBpbiAoQ1VuaW9uIChmaXJzdFRlcm06
cmVtYWluaW5nVGVybXMpLCBpbnB1dDMpDQoNCnstPS09LT0tPS09LT0tPS09
LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LX0N
Cg0KZW5jb2RlIDo6IFN0cmluZ0Fzc29jIENvbXBpbGVkRnVuY3Rpb24gLT4g
Q0V4cHIgLT4gQ29tcGlsZWRGdW5jdGlvbg0KDQplbmNvZGUgZnVuY3MgKENB
cmdSZWYgbikgPSBcYXJncyAtPiBbYXJncyAhISBuXQ0KDQplbmNvZGUgZnVu
Y3MgKENGdW5jYWxsIG5hbWUgc3ViYXJncykgPSBcYXJncyAtPg0KICBsZXQg
SnVzdCBmdW5jICAgID0gYXNzb2NsaXN0TG9va3VwIGZ1bmNzIG5hbWUNCiAg
ICAgIGNvbXBpbGVkQXJncyA9IG1hcCAoKCQgYXJncykuKGVuY29kZSBmdW5j
cykpIHN1YmFyZ3MNCiAgIGluIGZvbGRsIHVuaW9uIFtdIChtYXAgZnVuYyAo
bXVsdGlDYXJ0ZXNpYW5Qcm9kdWN0IGNvbXBpbGVkQXJncykpDQoNCmVuY29k
ZSBmdW5jcyAoQ1VuaW9uIFtdKSAgICAgPSBcYXJncyAtPiBbXQ0KDQplbmNv
ZGUgZnVuY3MgKENVbmlvbiAoeDp4cykpID0gXGFyZ3MgLT4NCiAgdW5pb24g
KGVuY29kZSBmdW5jcyB4IGFyZ3MpIChlbmNvZGUgZnVuY3MgKENVbmlvbiB4
cykgYXJncykNCg0KZW5jb2RlIGZ1bmNzIChDSW50ZXJzZWN0IHMgdCkgPSBc
YXJncyAtPg0KICBpbnRlcnNlY3QgKGVuY29kZSBmdW5jcyBzIGFyZ3MpIChl
bmNvZGUgZnVuY3MgdCBhcmdzKQ0KDQplbmNvZGUgZnVuY3MgKENEaWZmZXJl
bmNlIHMgdCkgPSBcYXJncyAtPg0KICAoZW5jb2RlIGZ1bmNzIHMgYXJncykg
XFwgKGVuY29kZSBmdW5jcyB0IGFyZ3MpDQoNCmVuY29kZSBmdW5jcyAoQ0Nv
bnMgcyB0KSA9IFxhcmdzIC0+DQogIFtQYWlyIChlbmNvZGUgZnVuY3MgcyBh
cmdzKSAoZW5jb2RlIGZ1bmNzIHQgYXJncyldDQoNCmVuY29kZSBmdW5jcyAo
Q0NhciBzKSA9IFxhcmdzLT4NCiAgZm9sZGwgdW5pb24gW10gKG1hcCBjYXIg
KGVuY29kZSBmdW5jcyBzIGFyZ3MpKQ0KICAgd2hlcmUgY2FyIChQYWlyIHAg
cSkgPSBwDQoNCmVuY29kZSBmdW5jcyAoQ0NkciBzKSA9IFxhcmdzLT4NCiAg
Zm9sZGwgdW5pb24gW10gKG1hcCBjZHIgKGVuY29kZSBmdW5jcyBzIGFyZ3Mp
KQ0KICAgd2hlcmUgY2RyIChQYWlyIHAgcSkgPSBxDQoNCnstPS09LT0tPS09
LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0t
PS09LX0NCg0KY2FydGVzaWFuUHJvZHVjdCA6OiBbYV0gLT4gW1thXV0gLT4g
W1thXV0NCg0KY2FydGVzaWFuUHJvZHVjdCBbXSBfICAgICAgPSBbXQ0KY2Fy
dGVzaWFuUHJvZHVjdCBfIFtdICAgICAgPSBbXQ0KY2FydGVzaWFuUHJvZHVj
dCAoeDp4cykgeXMgPQ0KICAobWFwICh4OikgeXMpICsrIChjYXJ0ZXNpYW5Q
cm9kdWN0IHhzIHlzKQ0KDQptdWx0aUNhcnRlc2lhblByb2R1Y3QgPSBmb2xk
ciBjYXJ0ZXNpYW5Qcm9kdWN0IFtbXV0NCg==
---1546081718-139754974-1017845871=:4944--





From esoteric@oiva.sange.fi Wed Apr 03 20:09:29 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16soG6-0005Qi-00; Wed, 03 Apr 2002 20:09:18 +0300
Received: with LISTAR (v0.129a; list misc); Wed, 03 Apr 2002 20:09:10 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16soFg-0005QK-00; Wed, 03 Apr 2002 20:08:53 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 03 Apr 2002 20:08:45 +0300 (EEST)
Received: from ctb-mesg2.saix.net ([196.25.240.74])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16soFW-0005Ps-00
	for lang@esoteric.sange.fi; Wed, 03 Apr 2002 20:08:43 +0300
Received: from lennie (woc53-01-p107.wc.saix.net [155.239.129.107])
	by ctb-mesg2.saix.net (8.11.4/8.11.4) with SMTP id g33H8YT24627
	for <lang@esoteric.sange.fi>; Wed, 3 Apr 2002 19:08:35 +0200 (SAT)
Message-ID: <014101c1db31$694b2f60$6b81ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: <lang@esoteric.sange.fi>
References: <Pine.LNX.4.40.0204020647380.30321-100000@hagbart.nvg.ntnu.no>
Subject: [lang] Re: CHQRS9+
Date: Tue, 2 Apr 2002 19:32:09 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

Orjan Johansen,

> On the other hand, it might be a useful preliminary test of the power of
> other programming languages to see whether they can implement HQ9+.

Yes! There is many possibilities of improving HQ9+, by just adding some
exstra instructions etc.

> I hereby declare the extended language CHQRS9+, probably reinventing the
> wheel:

> C = prints the entire input of the program to output.
> H = prints "Hello world!".
> Q = prints the program source.
> R = prints the input rot-13'ed.
> S = sorts the input lines and prints them.
> 9 = prints the text of "99 bottles of beer".
> + = increments the accumulator.

Very Nice !!! :) Did you wrote an interpreter for CHQRS9+ ?

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Wed Apr 03 20:09:30 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16soG6-0005Qp-00; Wed, 03 Apr 2002 20:09:18 +0300
Received: with LISTAR (v0.129a; list misc); Wed, 03 Apr 2002 20:09:10 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16soFg-0005QF-00; Wed, 03 Apr 2002 20:08:52 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 03 Apr 2002 20:08:45 +0300 (EEST)
Received: from ctb-mesg2.saix.net ([196.25.240.74])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16soFW-0005Pr-00
	for lang@esoteric.sange.fi; Wed, 03 Apr 2002 20:08:43 +0300
Received: from lennie (woc53-01-p107.wc.saix.net [155.239.129.107])
	by ctb-mesg2.saix.net (8.11.4/8.11.4) with SMTP id g33H8WT24614
	for <lang@esoteric.sange.fi>; Wed, 3 Apr 2002 19:08:33 +0200 (SAT)
Message-ID: <014001c1db31$68a4dd40$6b81ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: <lang@esoteric.sange.fi>
References: <20020402061038.53243.qmail@web12906.mail.yahoo.com>
Subject: [lang] Re: CHQRS9+
Date: Tue, 2 Apr 2002 19:28:25 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

Nikita Ayzikovsky,

> I propose to add another instruction:
>
>   I = interprets a CHQRS9+ program given in the input.

Nice Idea !!! :) This will improve modular programming (eg. like units in
Pascal, classes in Java etc).

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Wed Apr 03 20:09:32 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16soG6-0005Qq-00; Wed, 03 Apr 2002 20:09:18 +0300
Received: with LISTAR (v0.129a; list misc); Wed, 03 Apr 2002 20:09:10 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16soFh-0005QL-00; Wed, 03 Apr 2002 20:08:53 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 03 Apr 2002 20:08:45 +0300 (EEST)
Received: from ctb-mesg2.saix.net ([196.25.240.74])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16soFX-0005Pt-00
	for lang@esoteric.sange.fi; Wed, 03 Apr 2002 20:08:43 +0300
Received: from lennie (woc53-01-p107.wc.saix.net [155.239.129.107])
	by ctb-mesg2.saix.net (8.11.4/8.11.4) with SMTP id g33H8cT24658
	for <lang@esoteric.sange.fi>; Wed, 3 Apr 2002 19:08:38 +0200 (SAT)
Message-ID: <014401c1db31$6b644b60$6b81ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: <lang@esoteric.sange.fi>
References: <Pine.LNX.4.21.0203300509020.8993-100000@dark.darkweb.com> <004901c1d963$95d5efe0$1d81ef9b@lennie> <20020401212648.GD1101@twcny.rr.com> <200204020940.g329eks20169@ns3.safety.net>
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
Date: Tue, 2 Apr 2002 19:45:47 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

Cliff L. Biffle,

> Depends on perspective; from what I can tell, I've written nearly as many
> working pieces of software in HQ9+ as are available in, say, Malboge.  I
do,
> after all, have a working Hello, World!, a quine, an implementation of
> ninety-nine bottles of beer on the wall, and in fact a recursive
> Fibonacci-sequence generator (with optional language extension F).

This is true !! :)

> I have working implementations in the following languages, actually.
> --Java
> --ANSI C
> --TI-92 calculator C
> --TI-BASIC
> --Visual Basic
> --TRS-80 BASIC (model 100)
> --Perl
> --Ruby
> --PHP

Can you please send me all these working implementations - Only for my own
interest mind ! :-)

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Wed Apr 03 20:09:32 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16soG7-0005Qt-00; Wed, 03 Apr 2002 20:09:20 +0300
Received: with LISTAR (v0.129a; list misc); Wed, 03 Apr 2002 20:09:12 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16soFi-0005QP-00; Wed, 03 Apr 2002 20:08:54 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 03 Apr 2002 20:08:47 +0300 (EEST)
Received: from ctb-mesg2.saix.net ([196.25.240.74])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16soFZ-0005Pv-00
	for lang@esoteric.sange.fi; Wed, 03 Apr 2002 20:08:46 +0300
Received: from lennie (woc53-01-p107.wc.saix.net [155.239.129.107])
	by ctb-mesg2.saix.net (8.11.4/8.11.4) with SMTP id g33H8bT24650
	for <lang@esoteric.sange.fi>; Wed, 3 Apr 2002 19:08:37 +0200 (SAT)
Message-ID: <014301c1db31$6ac59a60$6b81ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: <lang@esoteric.sange.fi>
References: <Pine.LNX.4.21.0203300509020.8993-100000@dark.darkweb.com> <004901c1d963$95d5efe0$1d81ef9b@lennie> <20020401212648.GD1101@twcny.rr.com>
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
Date: Tue, 2 Apr 2002 19:41:52 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

Rob Speer,

> You don't, and there is no purpose.
>
> You seem to be entirely missing the fact that the HQ9+ language is a
> joke. There is no need to actually implement it, though the fact that
> someone already did (in Ocaml) gives it a sort of completeness.

Hahaha !! :) Hey, a joke! I want to implement HQ9+ just for my own jokeness
:) Everything have a goal/purpose but the "+" instruction !! <g>

Futher HQ9+ isn't turing-complete !!!

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Wed Apr 03 20:09:32 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16soG7-0005Qu-00; Wed, 03 Apr 2002 20:09:20 +0300
Received: with LISTAR (v0.129a; list misc); Wed, 03 Apr 2002 20:09:12 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16soFi-0005QQ-00; Wed, 03 Apr 2002 20:08:54 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 03 Apr 2002 20:08:47 +0300 (EEST)
Received: from ctb-mesg2.saix.net ([196.25.240.74])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16soFZ-0005Pu-00
	for lang@esoteric.sange.fi; Wed, 03 Apr 2002 20:08:45 +0300
Received: from lennie (woc53-01-p107.wc.saix.net [155.239.129.107])
	by ctb-mesg2.saix.net (8.11.4/8.11.4) with SMTP id g33H8aT24640
	for <lang@esoteric.sange.fi>; Wed, 3 Apr 2002 19:08:36 +0200 (SAT)
Message-ID: <014201c1db31$69f30820$6b81ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: <lang@esoteric.sange.fi>
References: <20020401102055.31021.qmail@web12906.mail.yahoo.com>
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
Date: Tue, 2 Apr 2002 19:38:05 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

Nikita Ayzikovsky,

> > ?? Every math sum must have an answer and what would that be - doing
maths
> > without getting the answer!
> If you don't get the answer, it doesn't mean the answer doesn't exist :)

O'Boy !! We can "fight" about this for days (even years)...  Yes! The answer
does exist - even like "2 + 2 = 4" it does exist, but whats the use of doing
maths if you don't provide the user (or the programmer) with the
answer/result ?? The only way that someone can know the answer is if they
see it on the PC's screen ! <g>

In HQ9+ the programmer must first check the code to find the answer
(counting how many "+" instructions there is) because the interpeter
wouldn't display the code (no HQ9+ language instruction to do so).

I leave my case !! $$

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Wed Apr 03 22:08:43 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sq7N-0005nc-00; Wed, 03 Apr 2002 22:08:25 +0300
Received: with LISTAR (v0.129a; list misc); Wed, 03 Apr 2002 22:08:18 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sq6n-0005nW-00; Wed, 03 Apr 2002 22:07:49 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 03 Apr 2002 22:07:42 +0300 (EEST)
Received: from pandora.tiscali.nl ([195.241.76.179])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sq6f-0005nQ-00
	for lang@esoteric.sange.fi; Wed, 03 Apr 2002 22:07:41 +0300
Received: from dds.nl (xs241-239-181.dial.tiscali.nl [195.241.239.181])
	by pandora.tiscali.nl (Postfix) with ESMTP id 1C0FF37214
	for <lang@esoteric.sange.fi>; Wed,  3 Apr 2002 21:07:31 +0200 (MET DST)
Sender: root@pandora.tiscali.nl
Message-ID: <3CAB52D6.67399DBE@dds.nl>
Date: Wed, 03 Apr 2002 21:07:02 +0200
From: Milo van Handel <mwq@dds.nl>
Organization: Milo-Soft
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.3-5 i586)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
References: <20020401102055.31021.qmail@web12906.mail.yahoo.com> <014201c1db31$69f30820$6b81ef9b@lennie>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
X-list: misc

D De Villiers wrote:

> Nikita Ayzikovsky,
>
> > > ?? Every math sum must have an answer and what would that be - doing
> maths
> > > without getting the answer!
> > If you don't get the answer, it doesn't mean the answer doesn't exist :)
>
> O'Boy !! We can "fight" about this for days (even years)...  Yes! The answer
> does exist - even like "2 + 2 = 4" it does exist, but whats the use of doing
> maths if you don't provide the user (or the programmer) with the
> answer/result ?? The only way that someone can know the answer is if they
> see it on the PC's screen ! <g>

You could always intercept the program with a debugger and read the data out of
it...  Even Turing's machine works like this, so why can't HQ9+?






From esoteric@oiva.sange.fi Wed Apr 03 22:23:15 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sqLd-0005s4-00; Wed, 03 Apr 2002 22:23:09 +0300
Received: with LISTAR (v0.129a; list misc); Wed, 03 Apr 2002 22:22:54 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sqLI-0005rv-00; Wed, 03 Apr 2002 22:22:48 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 03 Apr 2002 22:22:41 +0300 (EEST)
Received: from rama.poly.edu ([128.238.10.212])
	by oiva.sange.fi with smtp (Exim 3.33 #1)
	id 16sqLB-0005ro-00
	for lang@esoteric.sange.fi; Wed, 03 Apr 2002 22:22:41 +0300
Received: (qmail 7589 invoked by uid 20150); 3 Apr 2002 19:22:01 -0000
Date: Wed, 3 Apr 2002 14:22:01 -0500 (EST)
From: John Colagioia <jcolag@rama.poly.edu>
X-Sender: jcolag@rama
To: lang@esoteric.sange.fi
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
In-Reply-To: <3CAB52D6.67399DBE@dds.nl>
Message-ID: <Pine.GSO.3.96.1020403141353.4807B-100000@rama>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: jcolag@rama.poly.edu
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: jcolag@rama.poly.edu
Precedence: bulk
X-list: misc

On Wed, 3 Apr 2002, Milo van Handel wrote:
> D De Villiers wrote:
> > O'Boy !! We can "fight" about this for days (even years)...  Yes! The answer
> > does exist - even like "2 + 2 = 4" it does exist, but whats the use of doing
> > maths if you don't provide the user (or the programmer) with the
> > answer/result ?? The only way that someone can know the answer is if they
> > see it on the PC's screen ! <g>
> You could always intercept the program with a debugger and read the data out of
> it...  Even Turing's machine works like this, so why can't HQ9+?

In case anyone's curious, here is roughly how I present I/O in my
Programming Languages course.  Most people are pretty much satisfied
with it:

a) Commanded Communications:  An explicit instruction either dumps data
to the outside world or gets data from some outside source.  This is
the most like a typical imperative assignment statement described
above, where I/O can be handled by either a command or an operation,
which in the latter case must have a precedence, associativity, and so
on.  This is probably the most typical approach to I/O, starting at the
machine level.

b) Communication Exposures:  The users of the program (and any
peripherals) are treated as programmatic objects, like rules or
variables.  All communications, therefore, are treated as any other
value access or transfer, transparent to the programmer, except for a
special name.  This is probably the most natural form of
communications, since the programmer already understands it, but is
only infrequently used (C++ is possibly the closest common language to
this), though it would be the easiest to integrate into many imperative
languages.

c) Event-Driven Communications:  User input triggers a special
condition in the program.  Output occurs by filling a shared buffer
somewhere in the variablespace (not unlike the exposures described
above), and then triggering an event in the I/O module.  Examples of
event-driven communications systems include very low-level affairs,
such as typical PC BIOS, but very few high-level languages.  While very
few languages support this approach, it is frequently used by some
programmers to marshall I/O amongst threads in a multithreaded
application.

d) Omniscient-View Communications:  Such a language has no explicit
mechanism for I/O, but rather allows an external process (or user) to
access certain memory areas.  Note that the level of Omniscience may
not be complete or consistent.  Particular languages may change the
view so that only particular elements are seen at any particular time.
This is usually appears to the programmer (and possibly the user) as
something of a .cheat. or .hack,. because it often forces the
programmer to expose more internal information to the user than the
programmer (or user, for that matter) would prefer.  Prolog, for
example, prints every value it finds when it attempts a match, giving
the user the choice to continue at each step.  Similarly, when Turing
Machines are discussed, it is assumed that I/O occurs by a user
examining and/or modifying the tape when necessary.  Note the
difference between this and Exposures, above.which simply permit
interested parties to examine the necessary data.and Command- and
Event-based I/O systems, where the programmer must specify every nuance
of the communications protocol.

The thing to note is that, no different from programming paradigms,
each of these "communications paradigms" can be used to simulate any of
the others, but they are each (as far as I can tell) disjoint enough so
that they can be easily identified (somewhat unlike programming
paradigms).

Oh, and Chris didn't like this, as I recall, because he wanted batch
processing represented.  I insisted (and still insist) that batch is a
"less powerful" form of I/O, as any of these approaches can be used in
a batch, but the emulation cannot be done in the other direction.






From esoteric@oiva.sange.fi Wed Apr 03 22:25:58 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sqOL-0005tW-00; Wed, 03 Apr 2002 22:25:57 +0300
Received: with LISTAR (v0.129a; list misc); Wed, 03 Apr 2002 22:25:50 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sqOC-0005tK-00; Wed, 03 Apr 2002 22:25:48 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 03 Apr 2002 22:25:42 +0300 (EEST)
Received: from rama.poly.edu ([128.238.10.212])
	by oiva.sange.fi with smtp (Exim 3.33 #1)
	id 16sqO5-0005tE-00
	for lang@esoteric.sange.fi; Wed, 03 Apr 2002 22:25:41 +0300
Received: (qmail 8480 invoked by uid 20150); 3 Apr 2002 19:25:03 -0000
Date: Wed, 3 Apr 2002 14:25:03 -0500 (EST)
From: John Colagioia <jcolag@rama.poly.edu>
X-Sender: jcolag@rama
To: lang@esoteric.sange.fi
Subject: [lang] Wherefore Art Thou Essie?
Message-ID: <Pine.GSO.3.96.1020403142218.4807C-100000@rama>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: jcolag@rama.poly.edu
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: jcolag@rama.poly.edu
Precedence: bulk
X-list: misc

Uhm...sorry 'bout the subject.  It's been one of those days.

Anyway, there'll (obviously?) be a brief delay in the Essie judging.
It seems that everyone's having trouble getting through the entries
(this may be good or bad--we'll know when we're done), and so debate
hasn't yet begun.

Plus, I think Markus said he would be away for a few days, which slows
the process a bit further.

What's IBM's catchphrase?  "Real Soon Now"?






From esoteric@oiva.sange.fi Wed Apr 03 22:37:50 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sqZi-0005vO-00; Wed, 03 Apr 2002 22:37:42 +0300
Received: with LISTAR (v0.129a; list misc); Wed, 03 Apr 2002 22:37:35 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sqZY-0005vH-00; Wed, 03 Apr 2002 22:37:32 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 03 Apr 2002 22:37:26 +0300 (EEST)
Received: from smtp-send.myrealbox.com ([192.108.102.143])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sqZR-0005vB-00
	for lang@esoteric.sange.fi; Wed, 03 Apr 2002 22:37:25 +0300
Received: from amir amirlb@smtp-send.myrealbox.com [62.219.227.43]
	by smtp-send.myrealbox.com with Novell NIMS $Revision:   2.88  $ on Novell NetWare;
	Wed, 03 Apr 2002 12:37:13 -0700
Message-ID: <004301c1db4f$b3b816d0$3900a8c0@amir>
From: <amirlb@myrealbox.com>
To: <lang@esoteric.sange.fi>
References: <20020401190524.19320.qmail@web21408.mail.yahoo.com>
Subject: [lang] [conser] Some clarifications
Date: Wed, 3 Apr 2002 11:51:03 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2919.6700
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: amirlb@myrealbox.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: amirlb@myrealbox.com
Precedence: bulk
X-list: misc

There are a few points that I am not sure about:
1. I have the impression that functions get sets as their arguments and
return sets, so every expression you can form is a set. But the elements of
these sets cannot be sets, but only pairs of sets (of pairs, recursively
ever after). Am I right?
2. Do functions always get one-element sets as their parameter?
3. I also understand that there is not precedence at all, and that the
set-expressions are evaluated from left to right.
4. About your examples: "? a = (>a!2<a>a).". From what I understand, this
gives you (>a)-(2<a>a), which is (>a)-(>a), which is (). It doesn't seem
right.
5. What happens if you pass a malformed Surreal number to the output?

I hope that you will answer these questions, your language seems so nice.

--
Bad spellers of the world UNTIE!
          lightstep (Amir Livne)






From esoteric@oiva.sange.fi Wed Apr 03 23:03:04 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sqyE-00067R-00; Wed, 03 Apr 2002 23:03:02 +0300
Received: with LISTAR (v0.129a; list misc); Wed, 03 Apr 2002 23:02:55 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sqxz-000672-00; Wed, 03 Apr 2002 23:02:47 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 03 Apr 2002 23:02:40 +0300 (EEST)
Received: from pandora.tiscali.nl ([195.241.76.179])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sqxr-00066w-00
	for lang@esoteric.sange.fi; Wed, 03 Apr 2002 23:02:39 +0300
Received: from dds.nl (xs241-234-38.dial.tiscali.nl [195.241.234.38])
	by pandora.tiscali.nl (Postfix) with ESMTP id 77FEA3709C
	for <lang@esoteric.sange.fi>; Wed,  3 Apr 2002 22:02:37 +0200 (MET DST)
Sender: root@pandora.tiscali.nl
Message-ID: <3CAB5745.D533942E@dds.nl>
Date: Wed, 03 Apr 2002 21:25:57 +0200
From: Milo van Handel <mwq@dds.nl>
Organization: Milo-Soft
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.3-5 i586)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: New language: conser
References: <Pine.LNX.4.44.0204031611120.21117-100000@melkinpaasi.cs.Helsinki.FI>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
X-list: misc

Panu A Kalliokoski wrote:

> On Wed, 3 Apr 2002, Panu A Kalliokoski wrote:
> > These surreal numbers sure are interesting, though they seem to be quite
> > equivalent to real numbers - the infinities excluded. Are all kinds of
>
> Especially the infinitesimals: I though it is the _definition_ of real
> numbers that whatever cutting point you choose on the real line, it is
> always part of the real line. How on earth could there be an infinitesimal
> between a real number and its surrounding real numbers?

Define "cutting point".








From esoteric@oiva.sange.fi Wed Apr 03 23:03:06 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sqyD-00067L-00; Wed, 03 Apr 2002 23:03:01 +0300
Received: with LISTAR (v0.129a; list misc); Wed, 03 Apr 2002 23:02:54 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sqxw-00066v-00; Wed, 03 Apr 2002 23:02:44 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 03 Apr 2002 23:02:37 +0300 (EEST)
Received: from pandora.tiscali.nl ([195.241.76.179])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sqxp-00066p-00
	for lang@esoteric.sange.fi; Wed, 03 Apr 2002 23:02:37 +0300
Received: from dds.nl (xs241-234-38.dial.tiscali.nl [195.241.234.38])
	by pandora.tiscali.nl (Postfix) with ESMTP id 43BEA3709C
	for <lang@esoteric.sange.fi>; Wed,  3 Apr 2002 22:02:34 +0200 (MET DST)
Sender: root@pandora.tiscali.nl
Message-ID: <3CAB5626.9E318C6C@dds.nl>
Date: Wed, 03 Apr 2002 21:21:10 +0200
From: Milo van Handel <mwq@dds.nl>
Organization: Milo-Soft
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.3-5 i586)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
References: <Pine.LNX.4.40.0204031434480.30321-100000@hagbart.nvg.ntnu.no>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
X-list: misc

Orjan Johansen wrote:

> On Tue, 2 Apr 2002, Milo van Handel wrote:
>
> > Orjan Johansen wrote:
> >
> > > Also, 9 could be replaced with the more useful T, which uses the
> > > accumulator to determine which verse to print.  It would also increment
> > > it, making + obsolete.  This gives an alternative way of making quines,
> > > which are unfortunately now needed to produce "Hello world!".
> >
> > I don't understand.  What would the "T" character exactly do and why does it
> > have that letter?
>
> My apologies, I had somehow gotten the impression that HQ9+ required
> upper-case commands.

I thought the same, actually.

>  Now I see that the reference implementation even
> requires lower case.  So my idea does not work.

Can case be so important?

> Here is what it would have looked like:
>
> exception OutOfBeer
> ;;
>
> let accumulator = ref 1
> ;;
>
> let accumulate () =
>   incr accumulator
> ;;
>
> let t () =
>   begin match 100-!accumulator with
>   | 0 ->
>     raise OutOfBeer
>   | 1 ->
>     print_endline "1 bottle of beer on the wall";
>     print_endline "1 bottle of beer";
>     print_endline "Take one down and pass it around";
>     print_endline "No bottles of beer on the wall"
>   | n ->
>     print_int n; print_endline " bottles of beer on the wall";
>     print_int n; print_endline " bottles of beer";
>     print_endline "Take one down and pass it around";
>     print_int (n - 1); print_endline " bottles of beer on the wall";
>     print_newline ();
>     beer (n - 1)
>   end;
>   accumulate ()
> ;;

What does the "OutOfBeer" exception do?  What's the connection with quines?








From esoteric@oiva.sange.fi Wed Apr 03 23:03:06 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sqyD-00067M-00; Wed, 03 Apr 2002 23:03:01 +0300
Received: with LISTAR (v0.129a; list misc); Wed, 03 Apr 2002 23:02:54 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sqy0-000679-00; Wed, 03 Apr 2002 23:02:48 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 03 Apr 2002 23:02:42 +0300 (EEST)
Received: from pandora.tiscali.nl ([195.241.76.179])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sqxt-000673-00
	for lang@esoteric.sange.fi; Wed, 03 Apr 2002 23:02:41 +0300
Received: from dds.nl (xs241-234-38.dial.tiscali.nl [195.241.234.38])
	by pandora.tiscali.nl (Postfix) with ESMTP id 01CBF376CA
	for <lang@esoteric.sange.fi>; Wed,  3 Apr 2002 22:02:39 +0200 (MET DST)
Sender: root@pandora.tiscali.nl
Message-ID: <3CAB57AF.652B9BFF@dds.nl>
Date: Wed, 03 Apr 2002 21:27:44 +0200
From: Milo van Handel <mwq@dds.nl>
Organization: Milo-Soft
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.3-5 i586)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: The Ruler language
References: <000f01c1db05$7a2c5650$a500000a@td165>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
X-list: misc

dmoss@tdsi.co.uk wrote:

> > In other words: give us a reason to _care_ about your language.
>
> You don't have to care about it, I just posted it there because I wanted to
> know if someone was interested in writing a quine or an interpreter.

Only people who care about the language would be interested in writing anything
in it...







From esoteric@oiva.sange.fi Thu Apr 04 00:20:21 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ssAb-0006Np-00; Thu, 04 Apr 2002 00:19:53 +0300
Received: with LISTAR (v0.129a; list misc); Thu, 04 Apr 2002 00:19:46 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ssAH-0006Nj-00; Thu, 04 Apr 2002 00:19:33 +0300
Received: with LISTAR (v0.129a; list lang); Thu, 04 Apr 2002 00:19:26 +0300 (EEST)
Received: from sabre-wulf.nvg.ntnu.no ([129.241.210.67])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ssA9-0006Nd-00
	for lang@esoteric.sange.fi; Thu, 04 Apr 2002 00:19:25 +0300
Received: from hagbart.nvg.ntnu.no ([IPv6:::ffff:129.241.210.68]:8362 "EHLO
	hagbart.nvg.ntnu.no" ident: "[ta1eh3dzu3dN8w8zULoNk3W9nVL4E6fA]" whoson:
	"-unregistered-") by sabre-wulf.nvg.ntnu.no with ESMTP
	id <S436816AbSDCVTJ>; Wed, 3 Apr 2002 23:19:09 +0200
Date:	Wed, 3 Apr 2002 23:19:09 +0200 (CEST)
From:	Orjan Johansen <oerjan@nvg.ntnu.no>
To:	Esoteric Languages List <lang@esoteric.sange.fi>
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
In-Reply-To: <3CAB5626.9E318C6C@dds.nl>
Message-ID: <Pine.LNX.4.40.0204032316160.30321-100000@hagbart.nvg.ntnu.no>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: oerjan@nvg.ntnu.no
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: oerjan@nvg.ntnu.no
Precedence: bulk
X-list: misc

On Wed, 3 Apr 2002, Milo van Handel wrote:

> Orjan Johansen wrote:

> > exception OutOfBeer
> > ;;
> >
> > let accumulator =3D ref 1
> > ;;
> >
> > let accumulate () =3D
> >   incr accumulator
> > ;;
> >
> > let t () =3D
> >   begin match 100-!accumulator with
> >   | 0 ->
> >     raise OutOfBeer
> >   | 1 ->
> >     print_endline "1 bottle of beer on the wall";
> >     print_endline "1 bottle of beer";
> >     print_endline "Take one down and pass it around";
> >     print_endline "No bottles of beer on the wall"
> >   | n ->
> >     print_int n; print_endline " bottles of beer on the wall";
> >     print_int n; print_endline " bottles of beer";
> >     print_endline "Take one down and pass it around";
> >     print_int (n - 1); print_endline " bottles of beer on the wall";
> >     print_newline ();
> >     beer (n - 1)
> >   end;
> >   accumulate ()
> > ;;
>
> What does the "OutOfBeer" exception do?  What's the connection with quine=
s?

The OutOfBeer exception was just to be cute.  It would probably halt the
program.

The connection with quines and case-sensitivity is this:  All the verses
in the above contain only two capital letters, T and N.  So if we ignore
undefined commands and require commands to be upper case, then the entire
text of 99 bottles of beer would be a quine with the T command above.

Greetings,
=D8rjan.

--=20
My Unlambda page: <http://home.nvg.org/~oerjan/unlambda/>
Latest contraption:  Unlambda to Ocaml compiler.






From esoteric@oiva.sange.fi Thu Apr 04 00:27:11 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ssHa-0006PT-00; Thu, 04 Apr 2002 00:27:06 +0300
Received: with LISTAR (v0.129a; list misc); Thu, 04 Apr 2002 00:26:59 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ssHR-0006PJ-00; Thu, 04 Apr 2002 00:26:57 +0300
Received: with LISTAR (v0.129a; list lang); Thu, 04 Apr 2002 00:26:51 +0300 (EEST)
Received: from sabre-wulf.nvg.ntnu.no ([129.241.210.67])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16ssHK-0006P7-00
	for lang@esoteric.sange.fi; Thu, 04 Apr 2002 00:26:50 +0300
Received: from hagbart.nvg.ntnu.no ([IPv6:::ffff:129.241.210.68]:8874 "EHLO
	hagbart.nvg.ntnu.no" ident: "[iOgp1ZyqD9ov9dWzi/mNWKubqsVp6Bi5]" whoson:
	"-unregistered-") by sabre-wulf.nvg.ntnu.no with ESMTP
	id <S436816AbSDCV0l>; Wed, 3 Apr 2002 23:26:41 +0200
Date:	Wed, 3 Apr 2002 23:26:40 +0200 (CEST)
From:	Orjan Johansen <oerjan@nvg.ntnu.no>
To:	Esoteric Languages List <lang@esoteric.sange.fi>
Subject: [lang] Re: CHQRS9+
In-Reply-To: <014101c1db31$694b2f60$6b81ef9b@lennie>
Message-ID: <Pine.LNX.4.40.0204032319300.30321-100000@hagbart.nvg.ntnu.no>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: oerjan@nvg.ntnu.no
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: oerjan@nvg.ntnu.no
Precedence: bulk
X-list: misc

On Tue, 2 Apr 2002, D De Villiers wrote:

> > C =3D prints the entire input of the program to output.
> > H =3D prints "Hello world!".
> > Q =3D prints the program source.
> > R =3D prints the input rot-13'ed.
> > S =3D sorts the input lines and prints them.
> > 9 =3D prints the text of "99 bottles of beer".
> > + =3D increments the accumulator.
>
> Very Nice !!! :) Did you wrote an interpreter for CHQRS9+ ?

You asked for it.  It turned out to be very easy in Perl, included below.

Greetings,
=D8rjan.

--=20
My Unlambda page: <http://home.nvg.org/~oerjan/unlambda/>
Latest contraption:  Unlambda to Ocaml compiler.


#!/usr/bin/perl -w

# Interpreter in Perl for the CHIQRS9+ language.
# April 3, 2002 by =D8rjan Johansen.
# You may use this program as you wish.

sub input {
  @input =3D <STDIN> unless defined(@input);
  return @input;
}

if ($#ARGV > 0) { die "Usage: $0 <progname>\n"; }
if ($#ARGV) {
  $prog =3D join '', input;
}
else {
  open PROG, '<', $ARGV[0] or die "Could not open $ARGV[0]: $!";
  $prog =3D join '', <PROG>;
}

sub beer {
  for (my ($i,$s,$n)=3D($_[0],'s',''); $i ne 'No more'; ) {
    my $t=3D(my $j=3D$i-1||"No more")eq 1?'':'s';
    print <<VERSE; ($i,$s,$n)=3D($j,$t,"\n");
$n$i bottle$s of beer on the wall,
$i bottle$s of beer,
Take one down, pass it around,
$j bottle$t of beer on the wall.
VERSE
  }
}

sub interpret {
  my $accumulator;
  foreach (split //, $_[0]) {
    /[ \t\n]/ or
    /c/i ? print(input) :
    /h/i ? print("Hello, world!\n") :
    /i/i ? interpret(join '', input) :
    /q/i ? print($_[0]) :
    /r/i ? do {for (input) {tr/A-Za-z/N-ZA-Mn-za-m/; print;}} :
    /s/i ? print(sort &input()) :
    /9/  ? beer(99) :
    /\+/  ? $accumulator++ :
    die "Unknown command $_.\n";
  }
}

interpret $prog;






From esoteric@oiva.sange.fi Thu Apr 04 04:23:09 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16svxf-0007Aa-00; Thu, 04 Apr 2002 04:22:47 +0300
Received: with LISTAR (v0.129a; list misc); Thu, 04 Apr 2002 04:22:40 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16svxB-0007AU-00; Thu, 04 Apr 2002 04:22:17 +0300
Received: with LISTAR (v0.129a; list lang); Thu, 04 Apr 2002 04:22:11 +0300 (EEST)
Received: from web21401.mail.yahoo.com ([216.136.232.71])
	by oiva.sange.fi with smtp (Exim 3.33 #1)
	id 16svx3-0007AO-00
	for lang@esoteric.sange.fi; Thu, 04 Apr 2002 04:22:09 +0300
Message-ID: <20020404012205.79476.qmail@web21401.mail.yahoo.com>
Received: from [66.120.209.42] by web21401.mail.yahoo.com via HTTP; Wed, 03 Apr 2002 17:22:05 PST
Date: Wed, 3 Apr 2002 17:22:05 -0800 (PST)
From: Quowong Liu <qpliu@yahoo.com>
Subject: [lang] Re: [conser] Some clarifications
To: lang@esoteric.sange.fi
In-Reply-To: <004301c1db4f$b3b816d0$3900a8c0@amir>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: qpliu@yahoo.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: qpliu@yahoo.com
Precedence: bulk
X-list: misc

<amirlb@myrealbox.com> writes,
>There are a few points that I am not sure about:
>1. I have the impression that functions get sets as their arguments
and
>return sets, so every expression you can form is a set. But the
elements of
>these sets cannot be sets, but only pairs of sets (of pairs,
recursively
>ever after). Am I right?

Yes.

>2. Do functions always get one-element sets as their parameter?

Yes.

>3. I also understand that there is not precedence at all, and that the
>set-expressions are evaluated from left to right.

Left to right is what my interpreter does.  However, lazy sets will
work best with the subexpressions evaluated in parallel, so I'll say
that parallel is how it's supposed to work.

>4. About your examples: "? a = (>a!2<a>a).". From what I understand,
this
>gives you (>a)-(2<a>a), which is (>a)-(>a), which is (). It doesn't
seem
>right.

If <a is (), then 2 () >a is (), so ? a is >a.  It's a trick to
get a conditional.

>5. What happens if you pass a malformed Surreal number to the output?

Undefined.  Nontermination seems likely.  My crappy interpreter in
java would output nothing.


__________________________________________________
Do You Yahoo!?
Yahoo! Tax Center - online filing with TurboTax
http://taxes.yahoo.com/





From esoteric@oiva.sange.fi Thu Apr 04 04:23:48 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16svyd-0007B5-00; Thu, 04 Apr 2002 04:23:47 +0300
Received: with LISTAR (v0.129a; list misc); Thu, 04 Apr 2002 04:23:40 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16svyV-0007Az-00; Thu, 04 Apr 2002 04:23:39 +0300
Received: with LISTAR (v0.129a; list lang); Thu, 04 Apr 2002 04:23:32 +0300 (EEST)
Received: from web21412.mail.yahoo.com ([216.136.232.81])
	by oiva.sange.fi with smtp (Exim 3.33 #1)
	id 16svyN-0007As-00
	for lang@esoteric.sange.fi; Thu, 04 Apr 2002 04:23:32 +0300
Message-ID: <20020404012329.52950.qmail@web21412.mail.yahoo.com>
Received: from [66.120.209.42] by web21412.mail.yahoo.com via HTTP; Wed, 03 Apr 2002 17:23:29 PST
Date: Wed, 3 Apr 2002 17:23:29 -0800 (PST)
From: Quowong Liu <qpliu@yahoo.com>
Subject: [lang] Re: New language: conser
To: lang@esoteric.sange.fi
In-Reply-To: <Pine.LNX.4.44.0204031544430.16692-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: qpliu@yahoo.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: qpliu@yahoo.com
Precedence: bulk
X-list: misc

Panu A Kalliokoski <pkalliok@cs.Helsinki.FI> writes,
>> Then lazy evaluation with parallel evaluation of arguments when
>> forced will be the way to go.
>
>Yes. It just leaves the problem of efficient implementation of lazy 
>sets... ordered data structures are bad, they require calculating all 
>elements to be able to extract the first one. Maybe a structure with a

>lazy "element producer", and strictly-evaluated exclusion and
condition 
>lists... and then it is crucial for the operation of these to flatten
the 
>structure as much as possible... (Just thinking aloud)

I'm thinking along similar lines.  Something like this (using ocaml
syntax):

type 'a lazyset =
   Set of 'a set
 | LazySet of 'a set * (unit -> 'a lazyset * 'a option)

where the unit->'a lazyset*'a option does a single step in its
calculation.  It doesn't necessarily produce a new element, so
that parallel evaluation of arguments is possible.  Returning the
new element when produced is redundant, but obviously useful.

For example, forcing one step of (a b c) would force one step of
a, and return the next step, which will force one step of b.

Another idea is:

type 'a lazyset =
   Set of 'a set
 | LazySet of 'a set * 'a set * (unit -> 'a lazyset * 'a option * 'a
option)

where the additional stuff are elements that are not in the set, which
would be useful for the intersection and set difference operations.


__________________________________________________
Do You Yahoo!?
Yahoo! Tax Center - online filing with TurboTax
http://taxes.yahoo.com/





From esoteric@oiva.sange.fi Thu Apr 04 08:37:24 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16szvD-0007gw-00; Thu, 04 Apr 2002 08:36:31 +0300
Received: with LISTAR (v0.129a; list misc); Thu, 04 Apr 2002 08:36:24 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sztP-0007g9-00; Thu, 04 Apr 2002 08:34:39 +0300
Received: with LISTAR (v0.129a; list lang); Thu, 04 Apr 2002 08:34:32 +0300 (EEST)
Received: from ns3.safety.net ([216.40.201.32])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16sztH-0007g2-00
	for lang@esoteric.sange.fi; Thu, 04 Apr 2002 08:34:31 +0300
Received: from there (rs.rackshack.net.safety.net [216.40.201.32])
	by ns3.safety.net (8.10.2/8.10.2) with SMTP id g345YRs01928
	for <lang@esoteric.sange.fi>; Wed, 3 Apr 2002 22:34:27 -0700
Message-Id: <200204040534.g345YRs01928@ns3.safety.net>
Content-Type: text/plain;
  charset="iso-8859-1"
From: "Cliff L. Biffle" <cbiffle@safety.net>
To: lang@esoteric.sange.fi
Subject: [lang] Re: CHQRS9+
Date: Wed, 3 Apr 2002 22:34:30 -0700
X-Mailer: KMail [version 1.3.2]
References: <20020402061038.53243.qmail@web12906.mail.yahoo.com> <014001c1db31$68a4dd40$6b81ef9b@lennie>
In-Reply-To: <014001c1db31$68a4dd40$6b81ef9b@lennie>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cbiffle@safety.net
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: cbiffle@safety.net
Precedence: bulk
X-list: misc

In response to discussion here, I'd like to suggest the additional operand X. 
 X implements Turing-completeness.

-Cliff





From esoteric@oiva.sange.fi Thu Apr 04 11:38:14 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16t2kW-0008Mf-00; Thu, 04 Apr 2002 11:37:40 +0300
Received: with LISTAR (v0.129a; list misc); Thu, 04 Apr 2002 11:37:33 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16t2jj-0008MJ-00; Thu, 04 Apr 2002 11:36:51 +0300
Received: with LISTAR (v0.129a; list lang); Thu, 04 Apr 2002 11:36:44 +0300 (EEST)
Received: from [212.250.174.249] (helo=abydos.freakymousemats.net)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16t2jb-0008MD-00
	for lang@esoteric.sange.fi; Thu, 04 Apr 2002 11:36:43 +0300
Received: by abydos.freakymousemats.net (Postfix, from userid 33)
	id 14C8314C86; Thu,  4 Apr 2002 09:36:38 +0100 (BST)
To: lang@esoteric.sange.fi
Subject: [lang] Re: CHQRS9+
From: Cal Henderson <cal@iamcal.com>
X-Sender: <cal@iamcal.com>
X-Mailer: CalMail
Message-Id: <20020404083638.14C8314C86@abydos.freakymousemats.net>
Date: Thu,  4 Apr 2002 09:36:38 +0100 (BST)
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cal@iamcal.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: cal@iamcal.com
Precedence: bulk
X-list: misc


: In response to discussion here, I'd like to suggest the additional operand X. 
:  X implements Turing-completeness.

and why not add the 'Z' instruction which implements Turing incompleteness by making the store finite?

--cal





From esoteric@oiva.sange.fi Thu Apr 04 20:12:13 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tAm3-0009wb-00; Thu, 04 Apr 2002 20:11:47 +0300
Received: with LISTAR (v0.129a; list misc); Thu, 04 Apr 2002 20:11:40 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tAl2-0009wB-00; Thu, 04 Apr 2002 20:10:44 +0300
Received: with LISTAR (v0.129a; list lang); Thu, 04 Apr 2002 20:10:36 +0300 (EEST)
Received: from ctb-mesg2.saix.net ([196.25.240.74])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tAkr-0009vt-00
	for lang@esoteric.sange.fi; Thu, 04 Apr 2002 20:10:34 +0300
Received: from lennie (woc53-01-p93.wc.saix.net [155.239.129.93])
	by ctb-mesg2.saix.net (8.11.4/8.11.4) with SMTP id g34HAOT23773
	for <lang@esoteric.sange.fi>; Thu, 4 Apr 2002 19:10:24 +0200 (SAT)
Message-ID: <00b401c1dbfa$d77a2da0$5d81ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: <lang@esoteric.sange.fi>
References: <20020403020527.60919.qmail@web21402.mail.yahoo.com>
Subject: [lang] Re: New language: conser
Date: Wed, 3 Apr 2002 19:23:47 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

Quowong Liu,

> Actually, I don't think java is a very good choice.  For one thing,
> a language that supported continuation passing would be much nicer.
> This was a weekend hack just to have something to play with, and
> since I use java for work, I'm familiar enough with it to make
> something quickly.  I'm thinking OCaml for a more serious
> implementation, which would probably become a work in progress yet
> of very little progress for years to come.

Why ? Java is good for doing many things - Yes! You can write better
interpreters in other languages (like OCaml, Haskell etc) But Java is very
powerful !! :)

> I used 1.4, but 1.2 or later should work.

I think its time for me to update my JDK to 1.4 !! ;-)

> I'd imagine a quine would take centuries and terabytes to run.

Let's look and see -  Maybe someone will write a quine !! :)

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Thu Apr 04 20:12:13 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tAm1-0009wR-00; Thu, 04 Apr 2002 20:11:45 +0300
Received: with LISTAR (v0.129a; list misc); Thu, 04 Apr 2002 20:11:38 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tAl2-0009wC-00; Thu, 04 Apr 2002 20:10:44 +0300
Received: with LISTAR (v0.129a; list lang); Thu, 04 Apr 2002 20:10:36 +0300 (EEST)
Received: from ctb-mesg2.saix.net ([196.25.240.74])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tAkr-0009vs-00
	for lang@esoteric.sange.fi; Thu, 04 Apr 2002 20:10:33 +0300
Received: from lennie (woc53-01-p93.wc.saix.net [155.239.129.93])
	by ctb-mesg2.saix.net (8.11.4/8.11.4) with SMTP id g34HAST23809
	for <lang@esoteric.sange.fi>; Thu, 4 Apr 2002 19:10:28 +0200 (SAT)
Message-ID: <00b701c1dbfa$d99aeac0$5d81ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: "EsoLang Lang" <lang@esoteric.sange.fi>
Subject: [lang] Beatnik Interpreter ?
Date: Thu, 4 Apr 2002 16:04:09 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

Hello!

Where can I find a Beatnik interpreter ? Cliff L. Biffle's Beatnik website
(http://www.cliff.biffle.org/esoterica/beatnik.html) doesn't have any
interpreters.

Seek interpreter in Java, Perl or Python (others will also do).

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Thu Apr 04 20:12:13 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tAm3-0009wa-00; Thu, 04 Apr 2002 20:11:47 +0300
Received: with LISTAR (v0.129a; list misc); Thu, 04 Apr 2002 20:11:40 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tAl1-0009wA-00; Thu, 04 Apr 2002 20:10:44 +0300
Received: with LISTAR (v0.129a; list lang); Thu, 04 Apr 2002 20:10:36 +0300 (EEST)
Received: from ctb-mesg2.saix.net ([196.25.240.74])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tAkr-0009vu-00
	for lang@esoteric.sange.fi; Thu, 04 Apr 2002 20:10:34 +0300
Received: from lennie (woc53-01-p93.wc.saix.net [155.239.129.93])
	by ctb-mesg2.saix.net (8.11.4/8.11.4) with SMTP id g34HAPT23783
	for <lang@esoteric.sange.fi>; Thu, 4 Apr 2002 19:10:25 +0200 (SAT)
Message-ID: <00b501c1dbfa$d829a780$5d81ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: <lang@esoteric.sange.fi>
References: <Pine.LNX.4.44.0204021711190.32592-100000@melkinpaasi.cs.Helsinki.FI> <3CAA15B1.A0E89D11@dds.nl>
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
Date: Wed, 3 Apr 2002 19:26:36 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

Milo van Handel,

> Only if characters not representing any instruction are ignored, rather
than
> signalled as an error.  Of course, we course define "e" as "comment until
end of
> line", thereby solving this problem and also allowing for more readable
> programs...

Wow! Thanks !! :) This is the first positive compliment my "e" language got
!! :-)

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Thu Apr 04 20:12:16 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tAm9-0009wi-00; Thu, 04 Apr 2002 20:11:53 +0300
Received: with LISTAR (v0.129a; list misc); Thu, 04 Apr 2002 20:11:46 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tAl8-0009wI-00; Thu, 04 Apr 2002 20:10:50 +0300
Received: with LISTAR (v0.129a; list lang); Thu, 04 Apr 2002 20:10:43 +0300 (EEST)
Received: from ctb-mesg2.saix.net ([196.25.240.74])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tAl0-0009vr-00
	for lang@esoteric.sange.fi; Thu, 04 Apr 2002 20:10:42 +0300
Received: from lennie (woc53-01-p93.wc.saix.net [155.239.129.93])
	by ctb-mesg2.saix.net (8.11.4/8.11.4) with SMTP id g34HAJT23743
	for <lang@esoteric.sange.fi>; Thu, 4 Apr 2002 19:10:23 +0200 (SAT)
Message-ID: <00b301c1dbfa$d6c18c00$5d81ef9b@lennie>
From: "D De Villiers" <ddevilliers@lando.co.za>
To: <lang@esoteric.sange.fi>
References: <Pine.LNX.4.21.0204030641300.4944-200000@dark.darkweb.com>
Subject: [lang] Re: conser in Haskell
Date: Wed, 3 Apr 2002 19:16:39 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: ddevilliers@lando.co.za
Precedence: bulk
X-list: misc

Ben Rudiak-Gould,

> caught by the type system. This is a refreshing change from Lazier, which
> isn't even dynamically typed. :-)

Lazier ?? Where can I get it ?

> The precompiled Win32 executable is about 80K gzipped. I will email it to
> anyone who (for some unfathomable reason) wants to run it.

Can you please send it to me threw private email to ddevilliers@lando.co.za

--

Lennie De Villiers

PL/I for Palm Project: http://www.crosswinds.net/~lennie2000/comp/PLI_Palm/
e (Exclamation) Programming Language:
http://www.crosswinds.net/~lennie2000/comp/e_lang/
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.1
  www.geekcode.com
GB/CS/CC/IT/M d++ s:,s---:--- a-- C+++ P+ L+++ W++ N+++ K--- w++ PS t+ 5++
tv+ b++ G++ h--
!r !y+
------END GEEK CODE BLOCK------







From esoteric@oiva.sange.fi Thu Apr 04 20:39:06 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tBCN-000A5G-00; Thu, 04 Apr 2002 20:38:59 +0300
Received: with LISTAR (v0.129a; list misc); Thu, 04 Apr 2002 20:38:52 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tBCD-000A5A-00; Thu, 04 Apr 2002 20:38:49 +0300
Received: with LISTAR (v0.129a; list lang); Thu, 04 Apr 2002 20:38:42 +0300 (EEST)
Received: from rebecca.tiscali.nl ([195.241.76.181])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tBC1-000A54-00
	for lang@esoteric.sange.fi; Thu, 04 Apr 2002 20:38:37 +0300
Received: from dds.nl (xs241-240-122.dial.tiscali.nl [195.241.240.122])
	by rebecca.tiscali.nl (Postfix) with ESMTP id 00C0E8A3496
	for <lang@esoteric.sange.fi>; Thu,  4 Apr 2002 19:38:30 +0200 (MET DST)
Sender: root@rebecca.tiscali.nl
Message-ID: <3CAC8FA0.49AD5E0A@dds.nl>
Date: Thu, 04 Apr 2002 19:38:40 +0200
From: Milo van Handel <mwq@dds.nl>
Organization: Milo-Soft
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.3-5 i586)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
References: <Pine.GSO.3.96.1020403141353.4807B-100000@rama>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
X-list: misc

John Colagioia wrote:

> The thing to note is that, no different from programming paradigms,
> each of these "communications paradigms" can be used to simulate any of
> the others, but they are each (as far as I can tell) disjoint enough so
> that they can be easily identified (somewhat unlike programming
> paradigms).

Yes, but only by writing a new language, using the new paradigm, with an
interpreter
or compiler in the old one, using the old paradigm.  For example, say you have
a
C++ system with only the C I/O library, which is "Commanded Communications" in
your
list.  Then the normal C++ I/O, which is "Communication Exposures", can only be
implemented using classes with operator overloads, which are present in C++ but
could just as well not have been while keeping the language (which would then
be
more or less equivalent to C) Turing complete.

> Oh, and Chris didn't like this, as I recall, because he wanted batch
> processing represented.  I insisted (and still insist) that batch is a
> "less powerful" form of I/O, as any of these approaches can be used in
> a batch, but the emulation cannot be done in the other direction.

Some languages, which consider the program as a function from input to output
(among
others, Ben's two latest languages - Lazy K and Kayak) work only in batch mode,
so
it certainly deserves to be mentioned.  I differentiate I/O not by how it
works, but
by what it can do:

- No I/O.  You can still use the "Omniscient-View Communications" to read some
  results, but I follow the "usual" programmer's view of this being cheating.
  Turing's machine and SMETANA, among others(?).
- Batch I/O.  Lazy K, Kayak, Oroogu, and probably many more esoteric lanugage,
but
  obsolete on the non-esoteric field.
- Terminal I/O.  You can read from a single stream (the keyboard) and write to
a
  single stream (the monitor), but you can do such at any moment.  Most
esoteric
  languages, little used outside of the esoteric community because it is
usually
  trivial to extend this to the following, which is...
- Full I/O.  Like Terminal I/O, but allows free opening, reading, writing, and
  closing of an arbitrary amount of files, and maybe also things like pipes,
  sockets, and similar operating system extensions which are beyond the scope
of
  this document.  Used in most non-esoteric languages, but sadly, rare inside
the
  esoteric community.





From esoteric@oiva.sange.fi Thu Apr 04 20:48:49 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tBLn-000A9Q-00; Thu, 04 Apr 2002 20:48:43 +0300
Received: with LISTAR (v0.129a; list misc); Thu, 04 Apr 2002 20:48:36 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tBLf-000A9K-00; Thu, 04 Apr 2002 20:48:35 +0300
Received: with LISTAR (v0.129a; list lang); Thu, 04 Apr 2002 20:48:28 +0300 (EEST)
Received: from rebecca.tiscali.nl ([195.241.76.181])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tBLY-000A9E-00
	for lang@esoteric.sange.fi; Thu, 04 Apr 2002 20:48:28 +0300
Received: from dds.nl (xs241-240-122.dial.tiscali.nl [195.241.240.122])
	by rebecca.tiscali.nl (Postfix) with ESMTP id 5742F8A37B2
	for <lang@esoteric.sange.fi>; Thu,  4 Apr 2002 19:48:26 +0200 (MET DST)
Sender: root@rebecca.tiscali.nl
Message-ID: <3CAC91EB.3FC2F16@dds.nl>
Date: Thu, 04 Apr 2002 19:48:28 +0200
From: Milo van Handel <mwq@dds.nl>
Organization: Milo-Soft
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.3-5 i586)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: CHQRS9+
References: <20020404083638.14C8314C86@abydos.freakymousemats.net>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
X-list: misc

Cal Henderson wrote:

> : In response to discussion here, I'd like to suggest the additional operand X.
> :  X implements Turing-completeness.
>
> and why not add the 'Z' instruction which implements Turing incompleteness by making the store finite?

What are you two talking about?  What do the these commands do?

And I hope you realise that HQ9+ is a joke, and making it anything near Turing complete would ruin it.
It is intended to be able to easily implment those simple programs that we always go for immediately when
a new lanugage is released, without actually having any real functionality.






From esoteric@oiva.sange.fi Thu Apr 04 21:07:57 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tBeI-000ABo-00; Thu, 04 Apr 2002 21:07:50 +0300
Received: with LISTAR (v0.129a; list misc); Thu, 04 Apr 2002 21:07:43 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tBeA-000ABi-00; Thu, 04 Apr 2002 21:07:42 +0300
Received: with LISTAR (v0.129a; list chat); Thu, 04 Apr 2002 21:07:40 +0300 (EEST)
Received: from mailout04.sul.t-online.com ([194.25.134.18])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tBe7-000ABc-00
	for chat@esoteric.sange.fi; Thu, 04 Apr 2002 21:07:39 +0300
Received: from fwd00.sul.t-online.de 
	by mailout04.sul.t-online.com with smtp 
	id 16tBdx-0002oR-0G; Thu, 04 Apr 2002 20:07:29 +0200
Received: from neun (320072378593-0001@[217.80.230.70]) by fwd00.sul.t-online.com
	with smtp id 16tBdu-1CqsPQC; Thu, 4 Apr 2002 20:07:26 +0200
From: Gerson.Kurz@t-online.de (Gerson Kurz)
To: <chat@esoteric.sange.fi>
Subject: [chat] [rant] COM sucks
Date: Thu, 4 Apr 2002 20:07:15 +0100
Message-ID: <CLEFLIBFLLLHJNOKPNGFEECNCFAA.gerson.kurz@t-online.de>
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0)
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
Importance: Normal
X-Sender: 320072378593-0001@t-dialin.net
X-listar-version: Listar v0.129a
Sender: chat-bounce@esoteric.sange.fi
Errors-to: chat-bounce@esoteric.sange.fi
X-original-sender: Gerson.Kurz@t-online.de
Precedence: bulk
Reply-to: chat@esoteric.sange.fi
X-list: chat
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: Gerson.Kurz@t-online.de
Precedence: bulk
X-list: misc

If the imbeciles that are responsible for the IBM kernel debugger got
together with the designers of edlins' GUI and the guys that made up the
syntax for JCL, got terribly drunk and decided to pull a real bad april
fools joke on programmers, they couldn't come up with something more
braindead than COM.

OK, some time ago I wrote some code that allows an ActiveX object invoked
from a HTML page to callback a javascript function on the same page. To do
this, you have to

- implement IObjectWithSite in addition to whatever other interfaces you
already have only to get a pointer to IUnknown
- get a IServiceProvider from IUnknown
- get a STopLevelBrowser from the IServiceProvider
- get a IWebBrowser2 from the TopLevelBrowser
- get a document from the IWebBrowser2
- get a parent window (not directly, but using IDispatch) from the document
- get a IID_IHTMLWindow2 from the parent window
- and then, finally, you can execute your callback.

That in itself would be fair proof that COM sucks.

Well, everything was fine until there was a business descision not to use
.HTMs, but use .HTAs instead. HTAs are "HTML Applications", another
microsoft specific thingy that is basically IE invoked in a window without
browser navigation functions. (The reasoning behind that: the user cannot
navigate away from the web app, but must follow the predefined functions).
In HTAs, the callback (which, mind you, works as described in MSDN) doesn't
work - there is no STopLevelBrowser. There is only about 20 pages in the
whole 1.3 GB of MSDN that deals with HTAs, none of which tell you anything
about the HTA object modell.

After a frustrated six hour search through the docs, I found a way to get to
the callback, utilizing "Active Accessibility" funcs (that is: funcs made
for "physically challenged people" so they can use the computer, too). It
involves an otherwise undocumented window message, and lots of rather
pointless messing-with-pointers. You can read the whole thing here:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q249232

Ha, there must be a better way, and right there is: "COM events". [The
chapter on this topic in "Inside OLE" has a subchapter "Why the
complexity?"]. Its a "standard" mechanism for any COM object to fire events
and thus callback client code. To write COM events all you need to do is
implement 4 (four) different new interfaces (for 1 (one) callback!), and
hope they get called. Well, a testscript in python worked just fine, so I
started up the HTA - nothing. The HTA didn't want to register for my events,
it wanted to register for totally different and unimplemented events.

The whole morning today I searched the docs in vain. I found real gems like
this one:

"""IOleObject
...Although this interface contains 21 methods, only three are nontrivial to
implement and must be fully implemented: DoVerb, SetHostNames, and Close."""

and

"""If you have been considering using the [helpstringdll("")] and
[helpstringcontext()] IDL attributes you will probably have noticed that
MSDN mentions a function called DLLGetDocumentation. You will also have
noticed that the function prototype for DLLGetDocumentation is completely
undocumented.

I ran into this problem and have received the following prototype from a
Micorosoft Premier Support representative in the UK.

HRESULT WINAPI DLLGetDocumentation(ITypeLib* ptlib, ITypeInfo* ptinfo, LCID
lcid, DWORD dwCtx, BSTR* pbstrHelpString);
"""

Until finally I made a desparate attempt and wrote a COM spy[*]. I found out
that MSCOMM32.OCX implements about 10 interfaces in addition to those
documented in its typelib. I did some good old trial-and-error hacking and
found that there is one magic Interface "IProvideClassInfo" you need to
implement for the callbacks to work. The interface PROVIDES THE SAME GODDAMN
FU**ING INFO THAT IDISPATCH ALREADY DOES. AAARG! (And of course I later
found that there is a MSDN article for that, too:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q200839)

What really gets me is: WHY did they (Microsoft) design such a bad piece of
crap??? I mean they might have gazillions of stupid marketing droids; but
they also have some pretty smart people over there in Seattle, and some
things (for example, the early, lighter-footprint versions of NT) were quite
good for their day. They do have software designers sitting there (or so I
hope), and all they come up is ... this?!

[* It works like this: MSCOMM32.OCX is a Serial Port control, that uses COM
events for data notifications. (Its totally useless for real life Serial
Port handling, but nevertheless a favourite of VB types everywhere because
it is so "easy" to use). I wrote a MSCOMM33.OCX registered that instead of
MSCOMM32.OCX, and exported all the functions MSCOMM32.OCX exports. I wrote
wrappers for both IUnknown and IClassFactory. Its a dirty job but someone's
got to do it]







From esoteric@oiva.sange.fi Thu Apr 04 21:31:54 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tC1Q-000AGv-00; Thu, 04 Apr 2002 21:31:44 +0300
Received: with LISTAR (v0.129a; list misc); Thu, 04 Apr 2002 21:31:37 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tC15-000AGp-00; Thu, 04 Apr 2002 21:31:23 +0300
Received: with LISTAR (v0.129a; list lang); Thu, 04 Apr 2002 21:31:16 +0300 (EEST)
Received: from rama.poly.edu ([128.238.10.212])
	by oiva.sange.fi with smtp (Exim 3.33 #1)
	id 16tC0t-000AGj-00
	for lang@esoteric.sange.fi; Thu, 04 Apr 2002 21:31:11 +0300
Received: (qmail 15732 invoked by uid 20150); 4 Apr 2002 18:30:32 -0000
Date: Thu, 4 Apr 2002 13:30:32 -0500 (EST)
From: John Colagioia <jcolag@rama.poly.edu>
X-Sender: jcolag@rama
To: lang@esoteric.sange.fi
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
In-Reply-To: <3CAC8FA0.49AD5E0A@dds.nl>
Message-ID: <Pine.GSO.3.96.1020404130652.15659A-100000@rama>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: jcolag@rama.poly.edu
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: jcolag@rama.poly.edu
Precedence: bulk
X-list: misc

On Thu, 4 Apr 2002, Milo van Handel wrote:
> John Colagioia wrote:
> > The thing to note is that, no different from programming paradigms,
> > each of these "communications paradigms" can be used to simulate any of
> > the others, but they are each (as far as I can tell) disjoint enough so
> > that they can be easily identified (somewhat unlike programming
> > paradigms).
> Yes, but only by writing a new language, using the new paradigm, with an
> interpreter
> or compiler in the old one, using the old paradigm. 

I think there's a major communications mismatch, here (no pun or other
humor intended), as I'm not entirely sure what you're getting at.  In
fact, I'm having some trouble understanding the above sentence, itself.
Any help would be appreciated.

> For example, say you have a
> C++ system with only the C I/O library, which is "Commanded Communications" in
> your
> list.  Then the normal C++ I/O, which is "Communication Exposures", can only be
> implemented using classes with operator overloads, which are present in C++ but
> could just as well not have been while keeping the language (which would then
> be
> more or less equivalent to C) Turing complete.

But isn't the whole point to the distinction the fact that
communications have no relationship whatsoever to Turing completeness?

Turing completeness, for those in our home audience, is a measure of
what sorts of calculations can be made in a particular system.  It has
nothing to do with how input or output is transferred from or to the
user (note that--as has been mentioned, and I thought by you--the
Turing Machine, itself, has no real I/O capacity). 

> > Oh, and Chris didn't like this, as I recall, because he wanted batch
> > processing represented.  I insisted (and still insist) that batch is a
> > "less powerful" form of I/O, as any of these approaches can be used in
> > a batch, but the emulation cannot be done in the other direction.
> Some languages, which consider the program as a function from input to output
> (among
> others, Ben's two latest languages - Lazy K and Kayak) work only in batch mode,
> so
> it certainly deserves to be mentioned. 

But not from this perspective.  I'd be like, in my opinion, demanding
that hand calculators be covered in a discussion of programming
paradigms.

> I differentiate I/O not by how it
> works, but
> by what it can do:

Which is fine, but (a) isn't very interesting from a theoretical (or
even practical) standpoint, and (b) is guaranteed to have holes.  I'll
comment as we go, to show you what I mean.

> - No I/O.  You can still use the "Omniscient-View Communications" to read some
>   results, but I follow the "usual" programmer's view of this being cheating.
>   Turing's machine and SMETANA, among others(?).

Is it "cheating" to post results into a shared memory segment which
another process may read at a later date?  If so, then there are many
database applications out there that cheat heavily.

> - Batch I/O.  Lazy K, Kayak, Oroogu, and probably many more esoteric lanugage,
> but
>   obsolete on the non-esoteric field.

How about multiple batches?  Fixed-number and variable-number, of
course...

> - Terminal I/O.  You can read from a single stream (the keyboard) and write to
> a
>   single stream (the monitor), but you can do such at any moment.  Most
> esoteric
>   languages, little used outside of the esoteric community because it is
> usually
>   trivial to extend this to the following, which is...

But then you miss character-oriented I/O, line-oriented I/O, buffering
systems, and even screen-oriented I/O (like old PC applications that
just wrote text to video memory).

> - Full I/O.  Like Terminal I/O, but allows free opening, reading, writing, and
>   closing of an arbitrary amount of files, and maybe also things like pipes,
>   sockets, and similar operating system extensions which are beyond the scope
> of
>   this document.  Used in most non-esoteric languages, but sadly, rare inside
> the
>   esoteric community.

And the high end ("supra-full"?) graphical output, which you're of
course ignoring on purpose.  Not to mention non-visual I/O (you'll see
a very good example when the Essie results get posted).

Also, where does one fit a C-library-like system, where all the
functions are implemented except, say, fseek()?  Or worse, where does
INTERCAL (verbose number names as input, Roman(like) numerals as
output) fit?  Or a language built on an HTML/CGI model, where we can do
whatever we need on the "back-end," but can only communicate with the
user once per session in each direction?

And most importantly, what does this tell us about the programming
language (distinguished from the language implementation)?  All it
tells me is that, given the implementation, and depending on the sort
of program I'm planning to write, I may need to write a
pre/postprocessor in another language or, perhapse, write a set of
programs that get chained together.  That doesn't tell me anything
about programming in the language; it only tells me that I might have
to "think outside the box" if my program needs more flexibility.

Note that this last bit is *very* different from computational power
(Chomsky's language hierarchy, for those keeping score at home), where
you have four (well, at least--I suppose Level-0 is sufficiently
unreasearched that there might be subclassifications, there) discrete
levels of power, and nothing can blur the categories or let you map
something in a way that gives you unexpected capabilities.






From esoteric@oiva.sange.fi Thu Apr 04 21:44:15 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tCDT-000AM9-00; Thu, 04 Apr 2002 21:44:11 +0300
Received: with LISTAR (v0.129a; list misc); Thu, 04 Apr 2002 21:44:04 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tCDL-000AM3-00; Thu, 04 Apr 2002 21:44:03 +0300
Received: with LISTAR (v0.129a; list chat); Thu, 04 Apr 2002 21:44:02 +0300 (EEST)
Received: from rama.poly.edu ([128.238.10.212])
	by oiva.sange.fi with smtp (Exim 3.33 #1)
	id 16tCDJ-000ALx-00
	for chat@esoteric.sange.fi; Thu, 04 Apr 2002 21:44:01 +0300
Received: (qmail 15775 invoked by uid 20150); 4 Apr 2002 18:43:20 -0000
Date: Thu, 4 Apr 2002 13:43:20 -0500 (EST)
From: John Colagioia <jcolag@rama.poly.edu>
X-Sender: jcolag@rama
To: chat@esoteric.sange.fi
Subject: [chat] Re: [rant] COM sucks
In-Reply-To: <CLEFLIBFLLLHJNOKPNGFEECNCFAA.gerson.kurz@t-online.de>
Message-ID: <Pine.GSO.3.96.1020404133050.15659B-100000@rama>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: chat-bounce@esoteric.sange.fi
Errors-to: chat-bounce@esoteric.sange.fi
X-original-sender: jcolag@rama.poly.edu
Precedence: bulk
Reply-to: chat@esoteric.sange.fi
X-list: chat
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: jcolag@rama.poly.edu
Precedence: bulk
X-list: misc

On Thu, 4 Apr 2002, Gerson Kurz wrote:
> If the imbeciles that are responsible for the IBM kernel debugger got
> together with the designers of edlins' GUI and the guys that made up the
> syntax for JCL, got terribly drunk and decided to pull a real bad april
> fools joke on programmers, they couldn't come up with something more
> braindead than COM.

Astoundingly, most of Microsoft apparently agrees with you.  I've been
reading up on .NET (it's evil, but it seems to be kind of "Darth Vader"
evil:  You know it won't end well, but there's something about it
that's really nifty), and I've found about a dozen comments with about
the same attitude scattered throughout the books.

Consensus seems to be that COM was a nice idea that got broken during
implementation.  Much like DDE, the Microsoft solution is to "go use
something else."  Usually sockets or .NET.

Mind you, having looked at CORBA (for my Client/Server Programming
course), I should also mention that it ranks just behind COM in terms
of ickiness.

[...]
> Until finally I made a desparate attempt and wrote a COM spy[*]. I found out
> that MSCOMM32.OCX implements about 10 interfaces in addition to those
> documented in its typelib. I did some good old trial-and-error hacking and
> found that there is one magic Interface "IProvideClassInfo" you need to
> implement for the callbacks to work. The interface PROVIDES THE SAME GODDAMN
> FU**ING INFO THAT IDISPATCH ALREADY DOES. AAARG! (And of course I later
> found that there is a MSDN article for that, too:
> http://support.microsoft.com/default.aspx?scid=kb;EN-US;q200839)

I know Gerson's going to fly to New York just to whack me upside the
head for saying this, but...I thought everyone knew about
IProvideClassInfo.  I'm not a COM guy, but they guys I know who are
talk about it like it's the boogeyman or something...

> What really gets me is: WHY did they (Microsoft) design such a bad piece of
> crap??? I mean they might have gazillions of stupid marketing droids; but
> they also have some pretty smart people over there in Seattle,

...Most of whom are desperately trying to either get out of the company
(they were enticed by stock options which...well, I don't want to get
into a stock market discussion) or get over to XBox development...

> and some
> things (for example, the early, lighter-footprint versions of NT) were quite
> good for their day. They do have software designers sitting there (or so I
> hope), and all they come up is ... this?!

As I understand it (which, admittedly, is from bits and pieces of
third-hand information), (D(/))COM(+) is screwed up because COM
"needed" to (a) be consistent with normal COM and now-ancient OLE, and
(b) keep up with the Joneses (in this case, the screwed-up group
working on CORBA).

I'd like to think it was all a ruse to draw people away from CORBA and
shunt them to .NET, but I think it's just a matter of trying to
implement "cutting edge" technology and maintain backward
compatibility.  Oh, and get it out the door ASAP.

> [* It works like this: MSCOMM32.OCX is a Serial Port control, that uses COM
> events for data notifications. (Its totally useless for real life Serial
> Port handling, but nevertheless a favourite of VB types everywhere because
> it is so "easy" to use). I wrote a MSCOMM33.OCX registered that instead of
> MSCOMM32.OCX, and exported all the functions MSCOMM32.OCX exports. I wrote
> wrappers for both IUnknown and IClassFactory. Its a dirty job but someone's
> got to do it]

And here we see one of the few reasons I actually sort of like Windows,
despite its problems:  When things go really badly, there's always a
bizarre hack that can be used to subvert the main system and salvage
what you need... 

Try doing *that* under Linux...at runtime...






From esoteric@oiva.sange.fi Thu Apr 04 22:22:05 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tCo0-000AT5-00; Thu, 04 Apr 2002 22:21:56 +0300
Received: with LISTAR (v0.129a; list misc); Thu, 04 Apr 2002 22:21:49 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tCns-000ASz-00; Thu, 04 Apr 2002 22:21:48 +0300
Received: with LISTAR (v0.129a; list chat); Thu, 04 Apr 2002 22:21:47 +0300 (EEST)
Received: from mailout07.sul.t-online.com ([194.25.134.83])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tCnq-000ASt-00
	for chat@esoteric.sange.fi; Thu, 04 Apr 2002 22:21:46 +0300
Received: from fwd00.sul.t-online.de 
	by mailout07.sul.t-online.com with smtp 
	id 16tCl8-0006Ug-07; Thu, 04 Apr 2002 21:18:58 +0200
Received: from neun (320072378593-0001@[217.80.230.70]) by fwd00.sul.t-online.com
	with smtp id 16tCl2-2EjRp2C; Thu, 4 Apr 2002 21:18:52 +0200
From: Gerson.Kurz@t-online.de (Gerson Kurz)
To: <chat@esoteric.sange.fi>
Subject: [chat] AW: Re: [rant] COM sucks
Date: Thu, 4 Apr 2002 21:18:40 +0100
Message-ID: <CLEFLIBFLLLHJNOKPNGFAECPCFAA.gerson.kurz@t-online.de>
MIME-Version: 1.0
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0)
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
Importance: Normal
In-Reply-To: <Pine.GSO.3.96.1020404133050.15659B-100000@rama>
X-Sender: 320072378593-0001@t-dialin.net
X-listar-version: Listar v0.129a
Sender: chat-bounce@esoteric.sange.fi
Errors-to: chat-bounce@esoteric.sange.fi
X-original-sender: Gerson.Kurz@t-online.de
Precedence: bulk
Reply-to: chat@esoteric.sange.fi
X-list: chat
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: Gerson.Kurz@t-online.de
Precedence: bulk
X-list: misc


> On Thu, 4 Apr 2002, John Colagioia wrote

> Consensus seems to be that COM was a nice idea that got broken during
> implementation.  Much like DDE, the Microsoft solution is to "go use
> something else."  Usually sockets or .NET.

Still I like COM better than .NET, at least COM is basically C++ gone wrong,
in COM I can still fire up a disassembler and find my way. On the other
hand, .NET is Java gone wrong (if that is possible). The project I am
currently working on (a banking application implemented in the browser for
one of the largest german banks) had to decide between ".NET" and COM. They
choose COM because a) at the time .NET was not released (sometime around
last october-november? phew, very close!) and b) because they would have to
buy new machines for .NET development - .NET is not "certified" for the
machines they have right now. Proof that god does exist. (not really).

> I know Gerson's going to fly to New York just to whack me upside the
> head for saying this, but...I thought everyone knew about
> IProvideClassInfo.  I'm not a COM guy, but they guys I know who are
> talk about it like it's the boogeyman or something...

I'm not a COM guy either. The first time I heard about "OLE Automation" and
"IDispatch" I thought its a reasonably good idea - you not only implement
methods but you also provide functions so that an application can query
which methods you expose at runtime, and can call your code.
Interoperability among programming languages - why not. This works, and I
can call Office from Python, so all is well.

Trouble is, IProvideClassInfo is just a single additional method that
returns EXACTLY THE SAME as IDispatch::LoadTypeInfo. "Normal" code would
just use the already existing IDispatch::LoadTypeInfo (as witness python -
it worked just fine with my control); but not microsoft, microsoft defines
an additional interface that does the same, only has fewer arguments to
pass. I simply wouldn't have HAD THE IDEA of defining ANOTHER interface IN
ADDITION TO what I already have. You cannot say that is "legacy", because (I
think that) IDispatch was there much earlier than the redundancy that is
IProvideClassInfo.

> > [* It works like this: MSCOMM32.OCX is a Serial Port control,
> that uses COM
> > events for data notifications. (Its totally useless for real life Serial
> > Port handling, but nevertheless a favourite of VB types
> everywhere because
> > it is so "easy" to use). I wrote a MSCOMM33.OCX registered that
> instead of
> > MSCOMM32.OCX, and exported all the functions MSCOMM32.OCX
> exports. I wrote
> > wrappers for both IUnknown and IClassFactory. Its a dirty job
> but someone's
> > got to do it]
>
> And here we see one of the few reasons I actually sort of like Windows,
> despite its problems:  When things go really badly, there's always a
> bizarre hack that can be used to subvert the main system and salvage
> what you need...

Yes. Redirector DLLs are fun ;) I don't know if you all know this, but here
is a nice little trick to spy on DLL functions. Say, you have a foo.exe, and
you want to know what it writes to the serial port using kernel32.dll
functions:

- create a new dll called "kernel33.dll" (any name, as long as its <= the
size of the original name).
- create a .DEF file that exports all functions foo.exe imports from
kernel32.dll
- modify all "useless" api calls to look something like this

	CreateFileA=kernel32.CreateFileA
	CloseHandle=kernel32.CloseHandle

etc. This makes a DLL that exports exactly the same as kernel32.dll does. No
implementation necessary!
- patch foo.exe to replace "kernel32.dll" by "kernel33.dll"
- implement your spy function with the same prototype as, say WriteFile,
named MyWriteFile
- change the deffile

	WriteFile=MyWriteFile

now, whenever foo.exe calls kernel32.WriteFile(), it will actually call
kernel33.MyWriteFile() (the implementation will in turn call the real
kernel32.WriteFile()). [Code sample available upon request]. Same idea works
for OS/2 too.









From esoteric@oiva.sange.fi Fri Apr 05 06:05:00 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tK1t-000CvY-00; Fri, 05 Apr 2002 06:04:45 +0300
Received: with LISTAR (v0.129a; list misc); Fri, 05 Apr 2002 06:04:38 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tK1R-000CvS-00; Fri, 05 Apr 2002 06:04:17 +0300
Received: with LISTAR (v0.129a; list lang); Fri, 05 Apr 2002 06:04:10 +0300 (EEST)
Received: from ns3.safety.net ([216.40.201.32])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tK1J-000CvM-00
	for lang@esoteric.sange.fi; Fri, 05 Apr 2002 06:04:09 +0300
Received: from there (rs.rackshack.net.safety.net [216.40.201.32])
	by ns3.safety.net (8.10.2/8.10.2) with SMTP id g35343s23850
	for <lang@esoteric.sange.fi>; Thu, 4 Apr 2002 20:04:03 -0700
Message-Id: <200204050304.g35343s23850@ns3.safety.net>
Content-Type: text/plain;
  charset="iso-8859-1"
From: "Cliff L. Biffle" <cbiffle@safety.net>
To: lang@esoteric.sange.fi
Subject: [lang] Re: Beatnik Interpreter ?
Date: Thu, 4 Apr 2002 20:04:06 -0700
X-Mailer: KMail [version 1.3.2]
References: <00b701c1dbfa$d99aeac0$5d81ef9b@lennie>
In-Reply-To: <00b701c1dbfa$d99aeac0$5d81ef9b@lennie>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cbiffle@safety.net
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: cbiffle@safety.net
Precedence: bulk
X-list: misc

On Thursday 04 April 2002 07:04 am, you wrote:
> Where can I find a Beatnik interpreter ? Cliff L. Biffle's Beatnik website
> (http://www.cliff.biffle.org/esoterica/beatnik.html) doesn't have any
> interpreters.
>
> Seek interpreter in Java, Perl or Python (others will also do).

I had an interpreter knocked out in Java, but I can't find it.  I'll rework 
it.

I personally want to see an interpreter written in Beatnik.  That rhymes.  
And follows iambic pentameter.  :-)

-Cliff





From esoteric@oiva.sange.fi Fri Apr 05 06:06:53 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tK3v-000Cw2-00; Fri, 05 Apr 2002 06:06:51 +0300
Received: with LISTAR (v0.129a; list misc); Fri, 05 Apr 2002 06:06:44 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tK3n-000Cvw-00; Fri, 05 Apr 2002 06:06:43 +0300
Received: with LISTAR (v0.129a; list lang); Fri, 05 Apr 2002 06:06:37 +0300 (EEST)
Received: from ns3.safety.net ([216.40.201.32])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tK3g-000Cvq-00
	for lang@esoteric.sange.fi; Fri, 05 Apr 2002 06:06:36 +0300
Received: from there (rs.rackshack.net.safety.net [216.40.201.32])
	by ns3.safety.net (8.10.2/8.10.2) with SMTP id g3536Xs23957
	for <lang@esoteric.sange.fi>; Thu, 4 Apr 2002 20:06:34 -0700
Message-Id: <200204050306.g3536Xs23957@ns3.safety.net>
Content-Type: text/plain;
  charset="iso-8859-1"
From: "Cliff L. Biffle" <cbiffle@safety.net>
To: lang@esoteric.sange.fi
Subject: [lang] Re: CHQRS9+
Date: Thu, 4 Apr 2002 20:06:37 -0700
X-Mailer: KMail [version 1.3.2]
References: <20020404083638.14C8314C86@abydos.freakymousemats.net> <3CAC91EB.3FC2F16@dds.nl>
In-Reply-To: <3CAC91EB.3FC2F16@dds.nl>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cbiffle@safety.net
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: cbiffle@safety.net
Precedence: bulk
X-list: misc

On Thursday 04 April 2002 10:48 am, you wrote:
> What are you two talking about?  What do the these commands do?

X implements Turing-completeness.  When you run X, the programming language 
becomes Turing-complete.

>
> And I hope you realise that HQ9+ is a joke, and making it anything near
> Turing complete would ruin it. It is intended to be able to easily implment
> those simple programs that we always go for immediately when a new lanugage
> is released, without actually having any real functionality.

...HQ9+ is a joke?  Why didn't someone tell me earlier?  Oh, the humanity!

*grin*

-Cliff L. Biffle





From esoteric@oiva.sange.fi Fri Apr 05 08:34:38 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tMMk-000DDg-00; Fri, 05 Apr 2002 08:34:27 +0300
Received: with LISTAR (v0.129a; list misc); Fri, 05 Apr 2002 08:34:20 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tMMU-000DDP-00; Fri, 05 Apr 2002 08:34:10 +0300
Received: with LISTAR (v0.129a; list lang); Fri, 05 Apr 2002 08:34:03 +0300 (EEST)
Received: from web12901.mail.yahoo.com ([216.136.174.68])
	by oiva.sange.fi with smtp (Exim 3.33 #1)
	id 16tMMM-000DDJ-00
	for lang@esoteric.sange.fi; Fri, 05 Apr 2002 08:34:03 +0300
Message-ID: <20020405053351.8744.qmail@web12901.mail.yahoo.com>
Received: from [24.78.145.92] by web12901.mail.yahoo.com via HTTP; Thu, 04 Apr 2002 21:33:51 PST
Date: Thu, 4 Apr 2002 21:33:51 -0800 (PST)
From: Nikita Ayzikovsky <order_of_may@yahoo.com>
Subject: [lang] Re: Beatnik Interpreter ?
To: lang@esoteric.sange.fi
In-Reply-To: <200204050304.g35343s23850@ns3.safety.net>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: order_of_may@yahoo.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: order_of_may@yahoo.com
Precedence: bulk
X-list: misc

--- "Cliff L. Biffle" <cbiffle@safety.net> wrote:


> I personally want to see an interpreter written in Beatnik.  That rhymes.  
> And follows iambic pentameter.  :-)

Is it even possible? Beatnik is not TC, is it?

__________________________________________________
Do You Yahoo!?
Yahoo! Tax Center - online filing with TurboTax
http://taxes.yahoo.com/





From esoteric@oiva.sange.fi Fri Apr 05 11:17:20 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tOu9-000DiS-00; Fri, 05 Apr 2002 11:17:05 +0300
Received: with LISTAR (v0.129a; list misc); Fri, 05 Apr 2002 11:16:58 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tOto-000DiL-00; Fri, 05 Apr 2002 11:16:44 +0300
Received: with LISTAR (v0.129a; list lang); Fri, 05 Apr 2002 11:16:38 +0300 (EEST)
Received: from ns3.safety.net ([216.40.201.32])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tOtg-000DiF-00
	for lang@esoteric.sange.fi; Fri, 05 Apr 2002 11:16:37 +0300
Received: from there (rs.rackshack.net.safety.net [216.40.201.32])
	by ns3.safety.net (8.10.2/8.10.2) with SMTP id g358GUs04588
	for <lang@esoteric.sange.fi>; Fri, 5 Apr 2002 01:16:34 -0700
Message-Id: <200204050816.g358GUs04588@ns3.safety.net>
Content-Type: text/plain;
  charset="iso-8859-1"
From: "Cliff L. Biffle" <cbiffle@safety.net>
To: lang@esoteric.sange.fi
Subject: [lang] Re: Beatnik Interpreter ?
Date: Fri, 5 Apr 2002 01:16:34 -0700
X-Mailer: KMail [version 1.3.2]
References: <20020405053351.8744.qmail@web12901.mail.yahoo.com>
In-Reply-To: <20020405053351.8744.qmail@web12901.mail.yahoo.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cbiffle@safety.net
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: cbiffle@safety.net
Precedence: bulk
X-list: misc

On Thursday 04 April 2002 10:33 pm, you wrote:
> Is it even possible? Beatnik is not TC, is it?

I don't remember.  I could make it so, if it were desired.

-Cliff





From esoteric@oiva.sange.fi Fri Apr 05 13:27:38 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tQwH-000E4b-00; Fri, 05 Apr 2002 13:27:25 +0300
Received: with LISTAR (v0.129a; list misc); Fri, 05 Apr 2002 13:27:18 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tQvm-000E4Q-00; Fri, 05 Apr 2002 13:26:54 +0300
Received: with LISTAR (v0.129a; list lang); Fri, 05 Apr 2002 13:26:47 +0300 (EEST)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tQve-000E4K-00
	for lang@esoteric.sange.fi; Fri, 05 Apr 2002 13:26:46 +0300
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g35AQRr12005
	for <lang@esoteric.sange.fi>; Fri, 5 Apr 2002 13:26:27 +0300
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g35AQNc03516
	for <lang@esoteric.sange.fi>; Fri, 5 Apr 2002 13:26:23 +0300
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Fri, 5 Apr 2002 13:26:23 +0300 (EEST)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: lang@esoteric.sange.fi
Subject: [lang] Re: Purpose of "+" in HQ9+ ?
In-Reply-To: <3CAC8FA0.49AD5E0A@dds.nl>
Message-ID: <Pine.LNX.4.44.0204051313380.2466-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc

On Thu, 4 Apr 2002, Milo van Handel wrote:
> Some languages, which consider the program as a function from input to
> output (among others, Ben's two latest languages - Lazy K and Kayak)
> work only in batch mode, so it certainly deserves to be mentioned.  I

But "batch" mode becomes interactive if evaluation is lazy. I think lazy 
K, for example, is more of the "communication exposures" model: the input 
and output are modeled as language-level constructs, which happen to be 
lists. Hardcoded input is probably the only real batch input in my book.

> differentiate I/O not by how it works, but by what it can do:
> - No I/O. 

Apparently, this means "no program-initiated I/O". But the border is 
vague: if I know some area of memory gets mapped to the screen, will I be 
doing output (or input) if my brainfuck interpreter uses that area for the 
tape?

> - Batch I/O.

Rather, non-interactive I/O. Note that hardcoded input might be much 
richer than user input, because user input in most environments is streams 
of characters / bytes, whereas hardcoded input might be any 
language-level constructs.

> - Terminal I/O.

Funny name, as "terminal" is often used in Unix-like environments as a 
name for devices whose I/O capabilities far exceed those of "streams", 
which you seem to be describing. Where does random-access terminal I/O 
fit? What about ioctl's?

> - Full I/O.

What about callbacks, shared memory, RPC, interfaces, graphical output, 
sound (midi?), block-oriented I/O, memory-mapped chips, processor ports, 
interrupts, ...? Are these all "more evolved" than mere streams? If so, 
why are streams usually built on top of these?

-- 

Am fuar -> symb <- am fesh
atehwa@iki.fi








From esoteric@oiva.sange.fi Fri Apr 05 13:42:29 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tRAj-000E72-00; Fri, 05 Apr 2002 13:42:21 +0300
Received: with LISTAR (v0.129a; list misc); Fri, 05 Apr 2002 13:42:14 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tRAb-000E6w-00; Fri, 05 Apr 2002 13:42:13 +0300
Received: with LISTAR (v0.129a; list chat); Fri, 05 Apr 2002 13:42:11 +0300 (EEST)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tRAZ-000E6q-00
	for chat@esoteric.sange.fi; Fri, 05 Apr 2002 13:42:11 +0300
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g35Ag4r17534
	for <chat@esoteric.sange.fi>; Fri, 5 Apr 2002 13:42:05 +0300
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g35Ag0B04349
	for <chat@esoteric.sange.fi>; Fri, 5 Apr 2002 13:42:00 +0300
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Fri, 5 Apr 2002 13:42:00 +0300 (EEST)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: chat@esoteric.sange.fi
Subject: [chat] Re: [rant] COM sucks
In-Reply-To: <CLEFLIBFLLLHJNOKPNGFEECNCFAA.gerson.kurz@t-online.de>
Message-ID: <Pine.LNX.4.44.0204051328360.2466-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: chat-bounce@esoteric.sange.fi
Errors-to: chat-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: chat@esoteric.sange.fi
X-list: chat
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc

On Thu, 4 Apr 2002, Gerson Kurz wrote:
> The whole morning today I searched the docs in vain. I found real gems like
[...]
> found that there is one magic Interface "IProvideClassInfo" you need to
> implement for the callbacks to work. The interface PROVIDES THE SAME GODDAMN
> FU**ING INFO THAT IDISPATCH ALREADY DOES. AAARG! (And of course I later
> found that there is a MSDN article for that, too:

There are interesting differences between the open source world and the 
commercial world. In open source world, it is often cheaper to correct the 
problem than to document it, so documentation tends to lag behind. In 
commercial world, the opposite seems to hold: because idiotism is hard to 
correct, it gets documented and everybody thinks it's fine - besides, this 
has the added benefit that you really need to be not only intelligent but 
also knowledgeable in the field to be able to accomplish anything.

Even so, commercial products neglect the importance of open documentation. 
Why? Because this neatly builds a culture where commercial education and 
software engineer certification is a standard. This means more money. 
Having worked for some time with M$-originated products (access, VB) I 
concluded that they're not meant to be used by anyone, and the only reason 
anybody would use them is that they have already acquired sufficient 
knowledge to make it pay.  Therefore, I made the conclusion that becoming 
a competent M$ software engineer is the worst one could possibly do.

> What really gets me is: WHY did they (Microsoft) design such a bad piece of

COM itself is actually a relatively good design; everything that uses COM
tends to be bad. Once a friend of mine asked, "what is the Unix equivalent
to COM?" I had to admit there is none: standard layout on compilation
level does not work well wrt portability. In Unix, the same thing is done
on source level, with CORBA, for example.

But still, I ended up thinking that it would be nice to have at least 
something similar on the Unix side. Even a standard symbol one could 
extract from a .so, from which you could read what symbols the .so wants 
to export and with what prototypes. Then .so's could provide a standard 
binging interface for different languages. So close, yet so far...

Panu

-- 

Am fuar -> symb <- am fesh
atehwa@iki.fi







From esoteric@oiva.sange.fi Fri Apr 05 14:00:55 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tRSa-000ECP-00; Fri, 05 Apr 2002 14:00:48 +0300
Received: with LISTAR (v0.129a; list misc); Fri, 05 Apr 2002 14:00:34 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tRSL-000ECI-00; Fri, 05 Apr 2002 14:00:33 +0300
Received: with LISTAR (v0.129a; list sci); Fri, 05 Apr 2002 14:00:28 +0300 (EEST)
Received: from porsta.cs.helsinki.fi ([128.214.48.124])
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tRSF-000ECC-00
	for sci@esoteric.sange.fi; Fri, 05 Apr 2002 14:00:27 +0300
Received: from melkinpaasi.cs.Helsinki.FI (sslwrap@localhost [127.0.0.1])
	by porsta.cs.Helsinki.FI (8.11.6/8.11.6) with ESMTP id g35B0Pr23687
	for <sci@esoteric.sange.fi>; Fri, 5 Apr 2002 14:00:26 +0300
Received: from localhost (pkalliok@localhost)
	by melkinpaasi.cs.Helsinki.FI (8.11.6/8.11.2) with ESMTP id g35B0KY05209
	for <sci@esoteric.sange.fi>; Fri, 5 Apr 2002 14:00:20 +0300
X-Authentication-Warning: melkinpaasi.cs.Helsinki.FI: pkalliok owned process doing -bs
Date: Fri, 5 Apr 2002 14:00:20 +0300 (EEST)
From: Panu A Kalliokoski <pkalliok@cs.Helsinki.FI>
To: sci@esoteric.sange.fi
Subject: [sci] Re: [lang] Re: New language: conser
In-Reply-To: <Pine.LNX.4.40.0204031519450.30321-100000@hagbart.nvg.ntnu.no>
Message-ID: <Pine.LNX.4.44.0204051348500.4569-100000@melkinpaasi.cs.Helsinki.FI>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: sci-bounce@esoteric.sange.fi
Errors-to: sci-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
Reply-to: sci@esoteric.sange.fi
X-list: sci
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.Helsinki.FI
Precedence: bulk
X-list: misc

On Wed, 3 Apr 2002, Orjan Johansen wrote:
> If you cut the real line then one of the parts will have an end point.
> However, when interpreted as a surreal number the cut is not that end
> point, but rather the simplest infinitesimal between the end point and the
> other cut part.

I have difficulties understanding this, but I will try to ask for
clarifications. If I cut the real line by a predicate like "<3.4", the
true part will not have an end point, and the false part will - OK. But
the infinitesimal should always be part of the real line, because no
matter how close we get in the true part to the value of 3.4, it will
always be a real number, by definition (even if infinitesimal). Similarly,
if you do the same to surreal numbers, the same should happen - it is the 
definition of the real line that there is no space between reals ("an 
infinitesimal") that will not be a real number. The infinitesimal from 3.4 
downwards should be a part of the true part. Thus, surreal and real 
numbers seem isomorphic, or rather, surreal numbers seem one 
representation of real numbers.

How is an infinitesimal different from a real number that is guaranteed to 
be >0.0 but is smaller than any given number that is >0.0?

-- 

Am fuar -> symb <- am fesh
atehwa@iki.fi







From esoteric@oiva.sange.fi Fri Apr 05 15:29:21 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tSq1-000ETJ-00; Fri, 05 Apr 2002 15:29:05 +0300
Received: with LISTAR (v0.129a; list misc); Fri, 05 Apr 2002 15:28:58 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tSpU-000ET6-00; Fri, 05 Apr 2002 15:28:32 +0300
Received: with LISTAR (v0.129a; list lang); Fri, 05 Apr 2002 15:28:25 +0300 (EEST)
Received: from web14002.mail.yahoo.com ([216.136.175.93])
	by oiva.sange.fi with smtp (Exim 3.33 #1)
	id 16tSpJ-000ET0-00
	for lang@esoteric.sange.fi; Fri, 05 Apr 2002 15:28:22 +0300
Message-ID: <20020405122809.20001.qmail@web14002.mail.yahoo.com>
Received: from [194.241.42.36] by web14002.mail.yahoo.com via HTTP; Fri, 05 Apr 2002 13:28:09 BST
Date: Fri, 5 Apr 2002 13:28:09 +0100 (BST)
From: =?iso-8859-1?q?Stephen=20Sykes?= <s_d_sykes@yahoo.co.uk>
Subject: [lang] Re: languages / kayak interpreter
To: lang@esoteric.sange.fi
In-Reply-To: <00b401c1dbfa$d77a2da0$5d81ef9b@lennie>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="0-583075660-1018009689=:19282"
Content-Transfer-Encoding: 8bit
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: s_d_sykes@yahoo.co.uk
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: s_d_sykes@yahoo.co.uk
Precedence: bulk
X-list: misc

--0-583075660-1018009689=:19282
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Content-Disposition: inline

> > I'm thinking OCaml for a more serious
> > implementation, which would probably become a work in progress yet
> > of very little progress for years to come.
> 
> Why ? Java is good for doing many things - Yes! You can write better
> interpreters in other languages (like OCaml, Haskell etc) But Java is
> very powerful !! :)

Well, java is ok, but I've never liked it myself.  Too long winded.

However, that's not my point - I wanted to say that personally I like
writing interpreters in Ruby.  And to prove my point here is a new kayak
interpreter.  It works ok on Ben's sample programs, and is comfortably 1/4
the size of the original C++ interpreter.

On the other hand, Ruby runs out of stack space when running any of the
quines, so maybe the C++ implementation is superior after all :-) ...
anyway, enjoy.

Stephen
+- S.D.Sykes - www.stephensykes.com - +44 777 577 2637 -
| "By 2030, it will take a village of human brains (around a 
| thousand) to match $1,000 of computing [power]." -- Ray Kurzweil


__________________________________________________
Do You Yahoo!?
Everything you'll ever need on one web page
from News and Sport to Email and Music Charts
http://uk.my.yahoo.com
--0-583075660-1018009689=:19282
Content-Type: application/octet-stream; name="kayak.rb"
Content-Transfer-Encoding: base64
Content-Description: kayak.rb
Content-Disposition: attachment; filename="kayak.rb"

IyBSdWJ5IGtheWFrIGludGVycHJldGVyDQojIENvcHlyaWdodCAyMDAyIFN0
ZXBoZW4gU3lrZXMuIERpc3RyaWJ1dGVkIHVuZGVyIEdQTC4NCg0KY2xhc3Mg
UHJvZ3JhbSAjcmVwcmVzZW50cyB0aGUgcHJvZ3JhbSwgcGFyc2VzIGl0IGR1
cmluZyBpbml0aWFsaXNhdGlvbg0KICBhdHRyX3JlYWRlciA6cHJvY3MNCiAg
ZGVmIGluaXRpYWxpemUNCiAgICBAcCA9ICQ8LnJlYWRsaW5lcw0KICAgIHBh
cnNlDQogIGVuZA0KICBkZWYgc3RyaXBfY29tbWVudHMNCiAgICBjb3VudCA9
IDANCiAgICBAcC5jb2xsZWN0ISB7fGx8DQogICAgICBzID0gIiINCiAgICAg
IGwuZWFjaF9ieXRlIHt8YnwNCiAgICAgICAgYi5jaHIgPX4gLyg8KXwoPikv
DQogICAgICAgIGNvdW50ICs9IDEgaWYgJDENCiAgICAgICAgcyArPSBiLmNo
ciBpZiBjb3VudCA9PSAwDQogICAgICAgIGNvdW50IC09IDEgaWYgJDINCiAg
ICAgICAgcmFpc2UgIj4gd2l0aG91dCBtYXRjaGluZyA8IiBpZiBjb3VudCA8
IDANCiAgICAgIH0NCiAgICAgIHMNCiAgICB9DQogIGVuZA0KICBkZWYgcGFy
c2UNCiAgICBAcHJvY3MgPSBIYXNoLm5ldw0KICAgIHN0cmlwX2NvbW1lbnRz
DQogICAgcHMgPSBAcC5qb2luLmdzdWIoL1xzKy8sICIgIikNCiAgICBwcy5z
Y2FuKC8oW14oKVtcXXt9fFxzXSopXHMqXCgoW14oKVtcXXt9XSopXClccypc
eyhbXn1dKil9XHMqXCgoW14oKVtcXXt9XSopXClccyooW14oKVtcXXt9fFxz
XSopLykgew0KICAgICAgbmFtZSA9ICQxICsgJDUNCiAgICAgIGluYXJnX3N0
ciA9ICQyLnN0cmlwDQogICAgICBvdXRhcmdfc3RyID0gJDQuc3RyaXANCiAg
ICAgIGJvZHkgPSAkMy5zdHJpcA0KICAgICAgaW5hcmdzID0gaW5hcmdfc3Ry
LnNwbGl0KC9ccypcfFxzKi8pDQogICAgICBvdXRhcmdzID0gb3V0YXJnX3N0
ci5zcGxpdCgvXHMqXHxccyovKQ0KICAgICAgQHByb2NzW25hbWVdID0gUHJv
Y2VkdXJlLm5ldyhuYW1lLGluYXJncyxvdXRhcmdzLGJvZHkpDQogICAgICBp
ZiAobmFtZSAhPSBuYW1lLnJldmVyc2UpDQogICAgICAgIEBwcm9jc1tuYW1l
LnJldmVyc2VdID0gUHJvY2VkdXJlLm5ldyhuYW1lLnJldmVyc2Usb3V0YXJn
cy5jb2xsZWN0e3x4fHgucmV2ZXJzZX0ucmV2ZXJzZSwNCiAgICAgICAgICAg
ICAgICAgICAgICAgICBpbmFyZ3MuY29sbGVjdHt8eHx4LnJldmVyc2V9LnJl
dmVyc2UsYm9keS5yZXZlcnNlLnRyKCIoKVtdIiwiKShdWyIpKQ0KICAgICAg
ZW5kDQogICAgfQ0KICBlbmQNCmVuZA0KDQpjbGFzcyBQcm9jZWR1cmUgI3dy
YXBwZXIgZm9yIGEgdG9wIGxldmVsIHByb2NlZHVyZQ0KICBhdHRyX3JlYWRl
ciA6bmFtZQ0KICBhdHRyX3JlYWRlciA6Ym9keQ0KICBhdHRyX3JlYWRlciA6
aW5hcmdzDQogIGF0dHJfcmVhZGVyIDpvdXRhcmdzDQogIGRlZiBpbml0aWFs
aXplKG5hbWUsaW5hcmdzLG91dGFyZ3MsYm9keSkNCiAgICBAbmFtZSA9IG5h
bWUNCiAgICBAYm9keSA9IFJvdXRpbmUubmV3KGJvZHkpDQogICAgQGluYXJn
cyA9IGluYXJncw0KICAgIEBvdXRhcmdzID0gb3V0YXJncw0KICBlbmQNCmVu
ZA0KDQpjbGFzcyBSb3V0aW5lICNhIHJvdXRpbmUgaXMgYSBwcm9jZWR1cmUg
Ym9keSBvciBzb21ldGhpbmcgZW5jbG9zZWQgaW4gW10NCiAgYXR0cl9yZWFk
ZXIgOnRva3MNCiAgZGVmIGluaXRpYWxpemUoY29kZSkNCiAgICBAdG9rcyA9
IFtdDQogICAgY291bnQgPSAwDQogICAgcyA9IHkgPSAiIg0KICAgIGNvbmRz
ID0gW10NCiAgICBjb2RlLmVhY2hfYnl0ZSB7fGJ8DQogICAgICBiLmNociA9
fiAvKFxbKXwoXSkvDQogICAgICBjb3VudCAtPSAxIGlmICQyDQogICAgICBp
ZiAkMiAmJiBjb3VudCA9PSAwDQogICAgICAgIGNvbmRzIDw8IHkNCiAgICAg
ICAgeSA9ICIiDQogICAgICBlbmQNCiAgICAgIHJhaXNlICJdIHdpdGhvdXQg
bWF0Y2hpbmcgWyIgaWYgY291bnQgPCAwDQogICAgICBzICs9IGIuY2hyIGlm
IGNvdW50ID09IDANCiAgICAgIHkgKz0gYi5jaHIgdW5sZXNzIGNvdW50ID09
IDANCiAgICAgIGNvdW50ICs9IDEgaWYgJDENCiAgICB9DQogICAgcy5zY2Fu
KC8oXFtdKXwoW14oKVtcXXt9fFxzXStccz9cKFteKClbXF17fV0qXClccz9b
XigpW1xde318XHNdKyl8KFx8KXwoW14oKVtcXXt9fFxzXSspLykgew0KICAg
ICAgQHRva3MgPDwgJDMgaWYgJDMgIyJ8Ig0KICAgICAgQHRva3MgPDwgJDQg
aWYgJDQgI2lkZW50aWZpZXINCiAgICAgIGlmICQyICAgICAgICAgICAgICNw
cm9jIGNhbGwNCiAgICAgICAgJDIgPX4gLyhbXigpW1xde318XHNdKylccz9c
KChbXigpW1xde31dKilcKVxzPyhbXigpW1xde318XHNdKykvDQogICAgICAg
IG5hbWUgPSAkMSArICQzDQogICAgICAgIGFyZ19zdHIgPSAkMi5zdHJpcA0K
ICAgICAgICBhcmdzID0gYXJnX3N0ci5zcGxpdCgvXHMqXHxccyovKQ0KICAg
ICAgICBAdG9rcyA8PCBbbmFtZSwgYXJnc10NCiAgICAgIGVsc2lmICQxICAg
ICAgICAgICNjb25kaXRpb25hbA0KICAgICAgICBAdG9rcyA8PCBSb3V0aW5l
Lm5ldyhjb25kcy5zaGlmdCkNCiAgICAgIGVuZA0KICAgIH0NCiAgZW5kDQpl
bmQNCg0KY2xhc3MgUHJvY19ydW4gI2EgcnVubmluZyBpbnN0YW5jZSBvZiBh
IHByb2NlZHVyZQ0KICBkZWYgaW5pdGlhbGl6ZShwcm9nLCBuYW1lKQ0KICAg
IHJhaXNlICJDYWxsIHRvIHVua25vd24gcHJvY2VkdXJlIiB1bmxlc3MgcHJv
Zy5wcm9jcy5pbmNsdWRlPyBuYW1lDQogICAgQHAgPSBwcm9nLnByb2NzW25h
bWVdDQogICAgQHBwID0gcHJvZw0KICBlbmQNCiAgZGVmIHJ1bihhcmcpDQog
ICAgQHZhcnMgPSBIYXNoLm5ldw0KICAgIGFyZy5lYWNoX2luZGV4IHt8aXwN
CiAgICAgIGlmIGFyZ1tpXS5jbGFzcyA9PSBTdGFja2FycmF5DQogICAgICAg
IEB2YXJzW0BwLmluYXJnc1tpXV0gPSBhcmdbaV0uY29weQ0KICAgICAgZWxz
ZQ0KICAgICAgICBAdmFyc1tAcC5pbmFyZ3NbaV1dID0gYXJnW2ldDQogICAg
ICBlbmQNCiAgICB9DQogICAgcnVuX3JvdXRpbmUoQHAuYm9keSkNCiAgICBv
dXRhcmdzID0gW10NCiAgICBhcmcuZWFjaF9pbmRleCB7fGl8DQogICAgICBv
dXRhcmdzIDw8IEB2YXJzW0BwLm91dGFyZ3NbaV1dDQogICAgfQ0KICAgIG91
dGFyZ3MNCiAgZW5kDQogIGRlZiBydW5fcm91dGluZShyKQ0KICAgIHRlbXAg
PSBuaWwNCiAgICByLnRva3MuZWFjaCB7fHR8DQogICAgICBpZiB0LmNsYXNz
ID09IFN0cmluZw0KICAgICAgICBpZiB0ID09ICJ8Ig0KICAgICAgICAgIHJh
aXNlICJ8IHdoZW4gdGVtcCByZWdpc3RlciBpcyBlbXB0eSIgaWYgdGVtcCA9
PSBuaWwNCiAgICAgICAgICB0ZW1wID0gMSAtIHRlbXANCiAgICAgICAgZWxz
ZQ0KICAgICAgICAgIEB2YXJzW3RdID0gU3RhY2thcnJheS5uZXcgaWYgQHZh
cnNbdF0gPT0gbmlsDQogICAgICAgICAgaWYgdGVtcCA9PSBuaWwNCiAgICAg
ICAgICAgIHRlbXAgPSBAdmFyc1t0XS5wb3ANCiAgICAgICAgICBlbHNlDQog
ICAgICAgICAgICBAdmFyc1t0XS5wdXNoIHRlbXANCiAgICAgICAgICAgIHRl
bXAgPSBuaWwNCiAgICAgICAgICBlbmQNCiAgICAgICAgZW5kDQogICAgICBl
bHNpZiB0LmNsYXNzID09IFJvdXRpbmUNCiAgICAgICAgcmFpc2UgIlsgd2hl
biB0ZW1wIHJlZ2lzdGVyIGlzIGVtcHR5IiBpZiB0ZW1wID09IG5pbA0KICAg
ICAgICBydW5fcm91dGluZSh0KSBpZiB0ZW1wID09IDENCiAgICAgIGVsc2Ug
IyBpcyBhbiBhcnJheSwgd2hpY2ggaXMgYSBwcm9jIGNhbGwNCiAgICAgICAg
cGNhbGwgPSBQcm9jX3J1bi5uZXcoQHBwLCB0WzBdKQ0KICAgICAgICBjYWxs
YXJncyA9IFtdDQogICAgICAgIHRbMV0uZWFjaCB7fHZ8IGNhbGxhcmdzIDw8
IEB2YXJzW3ZdfQ0KICAgICAgICByZXRhcmdzID0gcGNhbGwucnVuKGNhbGxh
cmdzKQ0KICAgICAgICB0WzFdLmVhY2hfaW5kZXgge3xpfCBAdmFyc1t0WzFd
W2ldXSA9IHJldGFyZ3NbaV19DQogICAgICBlbmQNCiAgICB9DQogIGVuZA0K
ZW5kDQoNCmNsYXNzIFN0YWNrYXJyYXkgPCBBcnJheQ0KICBkZWYgcG9wICNw
b3AgemVybyB3aGVuIGVtcHR5DQogICAgZW1wdHk/ID8gMCA6IHN1cGVyDQog
IGVuZA0KICBkZWYgY29weQ0KICAgIHggPSBTdGFja2FycmF5Lm5ldw0KICAg
IGVhY2gge3xhfCB4IDw8IGF9DQogICAgeA0KICBlbmQNCiAgZGVmIHdyaXRl
X291dA0KICAgIHdoaWxlIGxlbmd0aCA+IDANCiAgICAgIHZhbGlkID0gcG9w
DQogICAgICBvYz0wDQogICAgICA4LnRpbWVzIHt8enwNCiAgICAgICAgb2Mg
PSBvYyB8IChwb3AgPDwgeikNCiAgICAgIH0NCiAgICAgIHByaW50IG9jLmNo
ciBpZiB2YWxpZA0KICAgIGVuZA0KICBlbmQNCmVuZA0KDQpjbGFzcyBCaXRi
dWNrZXQgPCBBcnJheQ0KICBkZWYgcG9wICNwb3AgcmFuZG9tIHdoZW4gZW1w
dHkNCiAgICBlbXB0eT8gPyByYW5kKDIpIDogc3VwZXINCiAgZW5kDQplbmQN
Cg0KY2xhc3MgSW4gPCBBcnJheQ0KICBkZWYgcG9wICNpbnB1dCBiZWhhdmlv
dXINCiAgICBpZiBlbXB0eT8NCiAgICAgIGIgPSBTVERJTi5nZXRjDQogICAg
ICBpZiAhYg0KICAgICAgICBwdXNoIDANCiAgICAgIGVsc2UNCiAgICAgICAg
OC50aW1lcyB7fHh8DQogICAgICAgICAgcHVzaCAoKGIgPj4gNy14KSAmIDEp
DQogICAgICAgIH0NCiAgICAgICAgcHVzaCAxDQogICAgICBlbmQNCiAgICBl
bmQNCiAgICBzdXBlcg0KICBlbmQNCmVuZA0KDQp0aGVwcm9nID0gUHJvZ3Jh
bS5uZXcNCm1haW4gPSBQcm9jX3J1bi5uZXcodGhlcHJvZywiIikNCmlucCA9
IEluLm5ldw0KaWYgdGhlcHJvZy5wcm9jc1siIl0uaW5hcmdzLmxlbmd0aCA9
PSAxDQogIG8gPSBtYWluLnJ1bihbaW5wXSkNCmVsc2UNCiAgbyA9IG1haW4u
cnVuKFtCaXRidWNrZXQubmV3LGlucF0pDQplbmQNCm9bMF0ud3JpdGVfb3V0
IGlmIG9bMF0NCg==

--0-583075660-1018009689=:19282--





From esoteric@oiva.sange.fi Fri Apr 05 15:38:31 2002
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tSz7-000EVV-00; Fri, 05 Apr 2002 15:38:29 +0300
Received: with LISTAR (v0.129a; list misc); Fri, 05 Apr 2002 15:38:22 +0300 (EEST)
Received: from localhost ([127.0.0.1] helo=oiva.sange.fi)
	by oiva.sange.fi with esmtp (Exim 3.33 #1)
	id 16tSyz-000EVP-00; Fri, 05 Apr 2002 15:38:21 +0300
Received: with LISTAR (v0.129a; list chat); Fri, 05 Apr 2002 15:38:20 +0300 (EEST)
Received: from rama.poly.edu ([128.238.10.212])
	by oiva.sange.fi with smtp (Exim 3.33 #1)
	id 16tSyx-000EVJ-00
	for chat@esoteric.sange.fi; Fri, 05 Apr 2002 15:38:19 +0300
Received: (qmail 18005 invoked by uid 20150); 5 Apr 2002 12:37:42 -0000
Date: Fri, 5 Apr 2002 07:37:41 -0500 (EST)
From: John Colagioia <jcolag@rama.poly.edu>
X-Sender: jcolag@rama
To: chat@esoteric.sange.fi
Subject: [chat] Re: AW: Re: [rant] COM sucks
In-Reply-To: <CLEFLIBFLLLHJNOKPNGFAECPCFAA.gerson.kurz@t-online.de>
Message-ID: <Pine.GSO.3.96.1020405072840.17989A-100000@rama>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-listar-version: Listar v0.129a
Sender: chat-bounce@esoteric.sange.fi
Errors-to: chat-bounce@esoteric.sange.fi
X-original-sender: jcolag@rama.poly.edu
Precedence: bulk
Reply-to: chat@esoteric.sange.fi
X-list: chat
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: jcolag@rama.poly.edu
Precedence: bulk
X-list: misc

On Thu, 4 Apr 2002, Gerson Kurz wrote:
> > On Thu, 4 Apr 2002, John Colagioia wrote
> > Consensus seems to be that COM was a nice idea that got broken during
> > implementation.  Much like DDE, the Microsoft solution is to "go use
> > something else."  Usually sockets or .NET.
> Still I like COM better than .NET, at least COM is basically C++ gone wrong,
> in COM I can still fire up a disassembler and find my way. On the other
> hand, .NET is Java gone wrong (if that is possible).

I honestly don't know about the implementation, yet, as I haven't
gotten around to tinkering.  Conceptually and architecturally, though,
I'm becoming more fond of it as I read up on it.  It's true that it
carries the stench of Java, but it looks like they actually tried to
learn the lessons indicated by Java's foulups, rather than just
reinvent the wheel.

What I *don't* like about .NET is the fact that all the high-level
languages apparently "have to" be modified to become more Java-like.
The VB programmers deserve it, though...

[Interesting note, actually:  If you pick up the O'Reilly book on the
.NET framework, it has code samples in the assembly language, C#, and
VB.NET; it's almost a complete waste of space, because the languages
appear to be identical, other than keywords]

[...]
> Trouble is, IProvideClassInfo is just a single additional method that
> returns EXACTLY THE SAME as IDispatch::LoadTypeInfo. "Normal" code would
> just use the already existing IDispatch::LoadTypeInfo (as witness python -
> it worked just fine with my control); but not microsoft, microsoft defines
> an additional interface that does the same, only has fewer arguments to
> pass. I simply wouldn't have HAD THE IDEA of defining ANOTHER interface IN
> ADDITION TO what I already have. You cannot say that is "legacy", because (I
> think that) IDispatch was there much earlier than the redundancy that is
> IProvideClassInfo.

Oh, I wasn't defending it, and I have absolutely no idea where it might
have come from (except, perhaps, from the occasional standard Microsoft
brainfart of providing identical functionality with slightly different
parameters; that just...happens, sometimes, from what I can tell).  I
was just saying that I thought everyone knew about this, because every
COM person I've ever spoken to has horror stories about
IProvideClassInfo almost identical to yours.  I figured it had become
part of standard folklore, by now. 

[...]

Oh!  A friend of mine just got back from an interview at Microsoft.
While there, he got to meet the fellow responsible for the evil
paperclip man.  Apparently, he introduced himself by saying, "I've
worked on pretty much every version of Office, and yes, the paperclip
was my idea, but I'd really rather not talk about that...and maybe
pretend it didn't happen."




