pugscode.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, elf: etc.) (or perl6: for all) | irclog: irc.pugscode.org/
Set by Tene on 29 July 2008.
00:09 araujo joined 00:10 japhb joined 00:14 japhb left 00:23 kanru joined 00:25 Limbic_Region left 00:27 typename joined 00:29 snooper left
ruoso rakudo: my @@slice = map { ((2,3),1) } 1..4; say @slice[0;0;0]; 00:35
p6eval rakudo 31006: OUTPUT[Statement not terminated properly at line 1, near "@@slice = "␤␤current instr.: 'parrot;PGE::Util;die' pc 119 (runtime/parrot/library/PGE/Util.pir:82)␤]
ruoso does any implementation support slices? 00:36
diakopter ruoso: I thought pugs supported an older syntax of slices 00:38
ruoso pugs: my @@slice = map { ((2,3),1) } 1..4; say @slice[0;0;0]; 00:39
p6eval pugs: OUTPUT[*** ␤ Unexpected "1"␤ expecting ",", ":" or operator␤ at /tmp/JSZpduVl78 line 1, column 32␤]
ruoso pugs: my @@slice = map { ((2,3),1) }, 1..4; say @slice[0;0;0];
p6eval pugs: OUTPUT[*** ␤ Unexpected "["␤ expecting "::"␤ Variable "@slice" requires predeclaration or explicit package name␤ at /tmp/RVu7jl99Au line 1, column 49␤]
ruoso pugs: my @@slice = map { ((2,3),1) }, 1..4; say @@slice[0;0;0];
p6eval pugs: OUTPUT[*** ␤ Unexpected ";"␤ expecting "x", octal digit, "o", "b", fraction, exponent, term postfix, operator or "]"␤ at /tmp/sjPsP6DcXz line 1, column 52␤]
ruoso diakopter, do you have any idea which syntax is that? 00:43
pmichaud afaik there aren't any implementations supporting slicing yet
maybe pugs does it, but I don't think I've seen it
might look to see if there are any tests for it in the pugs repo
00:44 typename left
ruoso www.perlfoundation.org/perl6/index....ropagation 00:45
I'm trying to get my ideas straight about the contexts in Perl 6
00:50 PZt left
ewilhelm pugs: my @a = (1..5); say @a[2..3] 00:51
p6eval pugs: OUTPUT[34␤]
ewilhelm pmichaud, rakudo doesn't do that yet? 00:52
pugs: my @a = (1..5); say @a[2..3].join(",")
p6eval pugs: OUTPUT[3,4␤]
00:52 araujo left, sail0r joined 00:53 araujo joined
ewilhelm pugs: my @a = (1..5); say @a[2,3,0].join(","); 00:53
p6eval pugs: OUTPUT[3,4,1␤]
pmichaud rakudo doesn't have slices yet, no.
ewilhelm hmm, it just gives me 3 for @a[2,3] and 4 for @a[2,3,0] right now :-/ 00:54
00:55 sail0r left
pmichaud it's treating it as @a[+(2,3)] and @a[+(2,3,0)] 00:55
ewilhelm oh it is treating the [slice list] as a scalar :-)
pmichaud i.e., it's taking the list 2,3 and .... right
ewilhelm thanks. I'll kick some other tire for now 00:57
ruoso ewilhelm, in case you're lacking tires... take a look at the wiki page I've just mentioned above ;) 00:58
ewilhelm what's the best way to keep track of which hubcaps are expected to fall off? read the fudge?
pmichaud slices and slice context are two items that I have waaaaay down the list on the ROADMAP, and as taking a significant amount of time for me to develop.
which means jonathan++ will probably do it in a couple of days :-)
looking at the fudged tests is probably the best way, as well as perusing the RT queue
we might be able to at least generate a warning that slice context isn't working yet, though. 00:59
ruoso pmichaud, that shouldn't be so hard since that is something that could be detected by syntax... 01:03
wknight8111_ would rather eat fudge then read fudge 01:04
01:31 ab5tract left 01:38 Jedai left 01:39 Jedai joined 01:45 wknight8111_ left 02:03 Jedai left 02:04 Jedai joined 02:11 ggoebel left 02:14 wknight8111 left 02:35 Auzon joined, Auzon left 02:39 explorer__ left 02:45 xinming__ is now known as xinming
s1n pmichaud: speaking of slices, i have some info about those undefs 02:56
moritz_: ping 03:01
03:10 alanhaggai_ joined, alanhaggai_ is now known as Guest95176 03:11 Guest95176 left 03:13 meppl left, meppl joined 03:18 PZt joined 03:19 eternaleye joined
s1n pmichaud: pong, check your email 03:26
03:37 CMA joined
meppl good night 03:41
03:43 meppl left 03:51 agentzh left 04:01 matju joined 04:10 Jedai left 04:11 Jedai joined 04:45 drbean left 04:53 matju left 04:56 Myoma left 05:24 Psyche^ joined 05:32 zerotux joined 05:33 zerotux left 05:34 BinGOs left 05:38 Patterner left, Psyche^ is now known as Patterner 05:40 zamolxes left 05:42 dduncan left 05:44 BinGOs joined 05:45 justatheory left 05:49 BinGOs left 05:51 xinming left 05:53 xinming joined 06:00 BinGOs joined 06:04 xinming_ joined 06:16 agentzh joined 06:17 xinming left
moritz_ s1n: pong 06:25
06:27 ashizawa joined
CMA is away: Gone away for now 06:29
06:29 CMA left 06:33 BinGOs left 06:57 BinGOs joined 07:03 dduncan joined 07:08 Myoma joined 07:09 xinming joined 07:11 xinming_ left 07:21 iblechbot joined 07:24 pmurias joined 07:25 xinming_ joined 07:31 charsbar left
pmurias ruoso: hi 07:33
ruoso: didn't TimToady state that you get a capture context when you don't have any other context determining info?
07:34 charsbar joined 07:37 pbuetow joined 07:38 charsbar left 07:40 charsbar joined 07:41 xinming left 07:44 dduncan left 07:48 dalek joined
pmurias ruoso: i'm implementing a meta-ri as the SMOP_RELEASE and SMOP_REFERENCE macroes are really ugly 07:54
07:55 Jedai left, Jedai joined 07:58 pbuetow left 08:03 masak joined, charsbar left 08:06 charsbar joined 08:10 charsbar left 08:11 charsbar joined
pmurias ruoso: which brought to my attention again the problem that the boilerplate required to create a RI isn't clearly defined any-way so it can't be automaticly generated or even copied and has to be manualy cargoe culted from an existing RI 08:11
08:16 charsbar left 08:18 charsbar joined 08:21 kanru left
pmurias ruoso: why aren't RI gc'ed? 08:25
08:27 kanru joined, charsbar left 08:29 charsbar joined, bennymac1 joined 08:39 charsbar left 08:41 charsbar joined 08:45 charsbar left 08:48 charsbar joined 08:51 elmex joined 09:03 schmalbe joined 09:04 cyber-user joined 09:10 cyber-user left 09:11 DJ-Dongdot_ joined 09:14 zamolxes joined 09:16 ab5tract_ left 09:22 drbean joined 09:28 pbuetow joined 09:30 smg left 09:39 DJ-Dongdot_ left 09:40 jferrero joined 09:56 ruoso_ joined, ruoso left
ruoso_ pmurias, the RI's we have so far are not gc'ed because they will be needed in the entire life of the interpreter anyway... as well as the constant identifiers, native bool true and false and some other values... 09:56
pmurias, it's important to understand that we're going to have a limited number of RI's...
all the code compiled by s1p will only use pre-defined RI's... specifically p6opaque, code, method etc
so I don't think it's much of a problem that the RI's doesn't share much of the implementation...
but nothing stops anyone from having a RI that is subject to gc
it's just because it doesn't make much sense to have gc for such basic RIs
10:03 meppl joined 10:13 ashizawa_ joined, ashizawa left
pmurias ruoso_: i see, i'm not sure we will have a limited number of RI's we might have one for every (closed) class in the (far) future 10:20
10:22 ruoso_ left 10:24 zamolxes left 10:36 zamolxes joined 11:00 smg joined 11:02 jferrero left
rakudo_svn r31018 | moritz++ | [rakudo] added tests for literals with underscores to spectest_regression 11:04
pmurias pugs: say 1 11:05
p6eval pugs: OUTPUT[1␤]
moritz_ @tell s1n it seems that we have no common uptime :( you can either ask other people on the channel, or mail me your questions to [email@hidden.address] 11:19
lambdabot Consider it noted.
s1n moritz_: noted, will you be available about 11 hours from now? 11:27
lambdabot s1n: You have 1 new message. '/msg lambdabot @messages' to read it.
moritz_ s1n: no. I'm not online this weekend :( 11:28
s1n okay, real fast 11:29
i talked to pm about those undef warnings that he turned on in the test suite 11:30
i looked into it, most seem to be things marked todo, such as slices, that are not working, hence the undef warning
i wanted to try and clean them up but i didn't want to turn a todo into a skip
what do you think?
moritz_ I think the slices can be turned into skips 11:31
and I also think that we need a "no warnings" pragma, because some tests are valid as they are now
s1n i was thinking that too
yes, pm and i have a plan for that 11:32
moritz_ stuff like my $x; $x++; is $x, 1, "\$x autovivifies'
and we need a way to test if a warning was generated
s1n that we do
moritz_ how?
s1n no, i was agreeing
moritz_ ok
s1n i talked to pm about it and he said we could work on it once the undef warnings were handled 11:33
i'm going to work through those warnings this weekend and then get to the warning detection thing 11:34
moritz_ the first very basic step in terms of the test suite is to grep for thinks like 'is ..., undef' and replace them by 'ok !defined(...)'
s1n yeah i'm doing that now
is !defined preferred over .defined?
moritz_ yes, because the latter doesn't work reliably in rakudo 11:35
or you can use ok $stuff ~~ undef, "description";
s1n shall i replace the .defined with !defined?
moritz_ only if the tests brake
s1n alright
that's what i needed to know 11:36
11:36 BinGOs left
moritz_ s/brake/break/ ;) 11:36
moritz_ should really learn english some day
11:36 BinGOs joined
s1n i knew what you meant 11:36
11:37 ashizawa_ left
moritz_ nevertheless a programmer should be able to say *exactly* what he means ;) 11:37
s1n gotta go to work, bbl 11:39
moritz_ has to go too, have fun hacking
11:41 BinGOs left 11:44 BinGOs joined, BinGOs left 11:50 iblechbot left 12:12 meppl left 12:13 Jedai left 12:14 Jedai joined 12:28 braceta joined 12:29 braceta left 12:30 agentz1 joined, agentzh left 12:35 |jedai| joined 12:36 Jedai left 13:05 BinGOs joined 13:07 BinGOs left, BinGOs joined 13:09 iblechbot joined 13:46 charsbar left
pmurias @tell ruoso where should I put the declaration of the linked list of manual alloced RI's? 13:47
lambdabot Consider it noted.
13:49 TJCRI joined 13:50 charsbar joined 13:51 Jedai joined 13:52 Jedai left 13:53 charsbar left 13:58 charsbar joined 14:05 charsbar left 14:07 charsbar joined 14:10 pbuetow_ joined 14:16 pbuetow_ left 14:21 schmalbe left
pmurias hates manual memory managment... 14:32
rakudo_svn r31027 | rurban++ | [perl6] fix perl6doc usage message 14:51
14:55 sri_work joined 14:58 meppl joined 15:03 jferrero joined 15:07 kanru left 15:26 Exodist joined 15:37 xinming_ is now known as xinming 15:39 justatheory joined 15:45 charsbar left 15:46 charsbar joined 15:54 masak left 15:58 zamolxes left 16:04 charsbar left, ab5tract joined 16:05 charsbar joined 16:11 charsbar_ joined 16:22 drbean_ joined 16:23 charsbar_ left 16:24 charsbar_ joined 16:28 charsbar left 16:33 charsbar_ left 16:36 drbean left 16:49 duzy joined
duzy hi, how's perl6 going? 16:49
17:07 charsbar joined 17:09 duzy left 17:11 alester is now known as AndyLunch 17:15 ruoso joined
rakudo_svn r31032 | jonathan++ | [rakudo] Re-enable setting block signature on subs; seems to cause no issues. 17:16
r31033 | jonathan++ | [rakudo] Implementation of =<> that may work. Not completely sure it works, since we never manage to parse this operator yet. Checking it in now, so I don't do it as part of another commit of something else by accident at some point in the future; it'll work once parsing stuff 17:17
..is fixed up.
ruoso pmurias, the idea is that the object can decide to implement whatever memory management it wants... 17:21
lambdabot ruoso: You have 1 new message. '/msg lambdabot @messages' to read it.
17:22 cosimo left
ruoso so even forcing manually-managed RI's to register themselves in a central list is something I'd like to avoid... 17:22
pmurias ruoso: i abandoned that idea and intend to have the RI's refcounted/traced 17:43
ruoso pmurias, it is an important feature to support values that are not subject to gc 17:44
rakudo_svn r31034 | jonathan++ | [rakudo] As we aren't smart enough in the compiler yet to sort between class/role types and subset types, do it upon construction of signature objects. This gets signature objects in shape for the multi-dispatcher.
ruoso I agree that some RIs might be gc'ed... but I'd like to avoid making that a requirement
rakudo_svn r31035 | coke++ | [rakudo] fix a doc typo. 17:51
pmurias ruoso: it's not a requirement i just want the setting up/cleaning up RIs to be less of a magic process 17:54
ruoso pmurias, in the last stage of the smop initialization, you can have objects being added to the global namespace 17:55
pmurias setting the ref_cnt of a freed object to 999 is strange
ruoso pmurias, if you add the RI to the global namespace, and leave there the only reference, it will be freed when the global namespace is destroyed... 17:57
pmurias, that is just a hack to allow you call DESTROY during destruction
pmurias, we could have a flag or something noticing that that value is already being destroyed... 17:58
pmurias i think it would make more sense to just set it to 1
ruoso in practical terms, it's the same thing... 17:59
setting it to 999 only makes it very clear that the object is being destroyed when you're debugging it
pmurias and ref_cnt < 0 is a bug
ruoso: that's a point ;)
ruoso pmurias, yes... that's why it tests for ref_cnt <= 0 (maybe it should simply be == 0, but I don't think it actually matters, since it can't get below 0 without being equal to 0 anyway 18:00
rakudo_svn r31036 | jonathan++ | [rakudo] Trailing whitespace fix. 18:01
r31037 | jonathan++ | [rakudo] Subs with no signature still need to get a Signature object.
18:03 km2 joined
ruoso pmurias, but anyway... I think we can start using more the global namespace... and that should make the initialization and destruction "less magical" 18:04
pmurias ruoso: can i move SMOP_LOWLEVEL_INTERNAL into the header
ruoso pmurias, which header?
pmurias smop_lowlevel.h
ruoso yeah... I think so... we can consider objects that are implemented using the default lowlevel are part of a "community"
pmurias as i want to do a DESTROYALL less reference counting for the meta-ri 18:05
ruoso but always keep in mind that smop_lowlevel.h refers to the *default* lowlevel implementation
pmurias, I don't think I see what you meant... 18:06
18:11 explorer__ joined, jferrero left
pugs_svn r22230 | pmurias++ | [smop] meta RI, it's only used by the IO RI ` 18:18
pmurias ruoso: not to call DESTROYALL when RI's are freed, you can see look at release in smop_ri.c 18:19
ruoso I see... you know that you could have the ri receiving the message itself, and discarding the message if the invocant is the ri.. but having a meta_ri is probably easier anyway 18:23
18:23 zamolxes joined
pmurias message being MESSAGE? 18:25
ruoso yes... I mean... the RI is the RI of itself 18:27
so it does receive DESTROYALL call when it is itself being destroyed
it's just a matter of not doing anything when the RI is in auto-destruction 18:28
but maybe the meta-ri is a better solution anyway...
pmurias i don't call the DESTROYALL on the meta-RI because strange things happend when i used the generic_release 18:30
strange thing = two REFERENCES and then a RELEASE and no DESTROYALL 18:31
ruoso maybe because that destoyall was trying to manipulate the RI as if it were a instance that uses that RI... 18:33
and that would cause this kind of bug...
but as I said... the meta-ri is probably a better idea... 18:35
18:36 hanekomu joined
rakudo_svn r31039 | chromatic++ | [Rakudo] Fixed POD in misc builtins file. 18:44
18:44 pmurias left 19:25 hercynium left 19:43 hanekomu left 19:59 pmurias joined, AndyLunch is now known as alester
pmurias ruoso: what's the next small think is should hack on? 20:02
* thing
ruoso pmurias, implementing the "every value is a list of itself"
and fix that in the array iterator implementation 20:03
pmurias hm?
ruoso: what does "every value is a list of itself" imply?
seen the "Late Context Propagation" section on the wiki, i understand now 20:05
shower&
20:06 zamolxes left 20:08 zamolxes joined 20:16 cognominal left
ruoso home & 20:22
20:22 ruoso left 20:23 cognominal joined 21:06 pmurias left 21:21 TJCRI left 21:40 iblechbot left 21:50 pbuetow left 22:00 RenaTu joined, RenaTu left 22:22 mj41_ joined, BinGOs left 22:23 mj41_ is now known as mj41 22:25 BinGOs joined 22:35 Limbic_Region joined
pugs_svn r22231 | lwall++ | [STD] allow for =begin END et al. without balancing =end 22:45
r22232 | lwall++ | [pointy.t] unmatched right paren found by STD 22:47
Limbic_Region TimToady - is STD.pm parsing everything that it should be at this point? I know it parses itself and the majority of the test suite but is that everything it is supposed to? 22:51
23:05 sri_work left
TimToady it parses all of the test suite. the main shortcoming of STD parsing (in the abstract) is that it doesn't know about POD yet except to skip it. 23:08
Limbic_Region well, correctly skipping it in all of its edge cases is a good way to being able to parse it :-) 23:09
TimToady the other issue is that it doesn't actually perform "use" yet, so it doesn't know if subs are imported 23:11
and its symbol table is naïvely global rather than lexically scoped
Limbic_Region so is that the part I read about not installing mini-grammars in a p6 review recently? 23:12
TimToady er, I doubt it
I don't know what that means, unless it's a ref to rakudo
certainly STD uses its own minigrammars successfully 23:13
I suppose I should work on making everything in ext/ parse as well 23:16
Limbic_Region looks for comment that invoked the question 23:18
use.perl.org/~chromatic/journal/37420 # "our of the six failing tests are the fact that it does not install new grammar rules for user-defined operators" 23:19
lambdabot Title: Journal of chromatic (983)
Limbic_Region s/our/four/
but now I understand why that doesn't have much to do with use 23:20
and is also over a month old
TimToady yes, fixed that some time ago
Limbic_Region chromatic has been playing catch up 23:21
so the big hurdle used to be LTM. With that out of the way, how do the last two things you mentioned rank? 23:22
TimToady answer, almost everything in ext fails due to using either obsoletel module declaration syntax or obsolete pod syntax :) 23:24
Limbic_Region but that is more of an impact to the staleness of the test suite rather than a hurdle in figuring out STD.pm 23:25
I had high hopes for the annotation project that attempted to keep the test suite tied to the synopses so that finding where they went stale was easier 23:26
so you have said for a while now that the synopses are for the most part complete - it is mostly fine tuning now. Is that from the standpoint of the semantics of the language or is it really that complete? 23:27
Specifically, S29 and things like pack/unpack as well as coroutines and the like 23:28
oh, and in case you wondered - this isn't an interview :-)
I just happen to have a free few minutes with the wife and kids upstairs
TimToady well, pack/unpack are far from core issues, and as for coroutines, those are less powerful than gather/take, so I don't know that p6 will even have coroutines officially 23:29
Limbic_Region ok, let me ask my question a different way 23:30
TimToady it's more important to figure out how various types will serialize themselves than in how to force it externally by pack/unpack
perhaps a given type will be able to supply a pack template though
you're asking about Christmas, aren't you? 23:31
Limbic_Region at one point, the synopses said "the same as p5 unless otherwise specified" but one of the goals of p6 is to have a specification independent of the implementation
nope
I am more wondering how close we are to someone being able to start making a run for a christmas
TimToady people are running for christmas all the time, as when they're not sure whether the p5 doctrine applies, they ask 23:32
(or not...)
arguably some of parrot's issues historically have come from not asking...
Limbic_Region well, I am not looking at any implementation really 23:33
I have been very interested in what John M. Dlugosz has been working on 23:34
TimToady anyway, all I can tell is whether the process is converging or not, and I think it is. but as to how fast it's converging...
I've been wondering whether it would be helpful to put the specs out under pugs/ so he can edit them.
(and anyone else who wants to fill in the gaps) 23:35
I feel like I'm a bit of a bottleneck on that part.
Limbic_Region Well, he had to go back to paying work recently and is restricted to weekends, but he still seems to be extremely productive 23:36
TimToady hmm, it occurs to me that the server I'm using to run irssi from is in Houston... :/
Limbic_Region and is finding things that make me think
TimToady or somewhere thereabouts, hopefully above sea level
Limbic_Region if we were to say - ok "done", go implement
TimToady no, that's waterfall chart thinking 23:37
we don't do that here
Limbic_Region we would end up with a whole bunch of unstated assumptions implemented a number of different ways
TimToady we do whirlpool design with feedback at every level all the time
we're not smart enough to design everything in advance 23:38
Limbic_Region let me try again
TimToady and when everything finally converges there will be this big sucking sound in the middle :)
Limbic_Region not too long ago, the lists were rampant with questions about semantics
syntax
etc
that seems to have dried up for the most part - at least from anyone not doing an implementation and just wondering 23:39
Juerd TimToady: Note that you can always use feather for irc if necessary
Limbic_Region and you have said yourself that things are mostly just fine tuning
TimToady after sacrificing to the latency goddess...
Limbic_Region so who else would know where the areas are that are still left to be specified
and it seems like John is turning stuff up that no one else is 23:40
TimToady primarily the implementors
and John... :)
Limbic_Region bah - I don't have a well formed question or concern
other than to say it is hard to measure how far into the second 80% we are
s/we/you/ 23:41
TimToady I thought you said you weren't asking about Christmas :P
Juerd TimToady: irssiproxy and a local client overcomes the terminal lag problem, though with huge setup overhead :)
Limbic_Region TimToady, no, I am asking when the Sears WishList Catalog is coming out - the precursor to Xmas 23:42
23:42 explorer__ left
rakudo_svn r31042 | jonathan++ | [rakudo] Constraints in a signature should actually be represented as an all Junction, not an array. 23:42
Limbic_Region oh wow, apparently the Sears Wish Book catalog had gone extinct for 14 years but returned in 2007 23:43
multichannelmerchant.com/news/sears..._10102007/
lambdabot Title: Sears Wish Book Makes a Return
Limbic_Region I used to wait patiently every year for it to come and dream 23:44
rakudo_svn r31043 | jonathan++ | [rakudo] The Perl6MultiSub PMC when checking constraints should do ACCEPTS on them, not just invoke them - it's meant to be a Junction. 23:45
Limbic_Region oh, so here is a real question
in perl 5, I recently wanted to write to the read only captures ($1 for instance) because I wanted to lie about what matched - can I do that in perl 6 and if so, how? 23:46
TimToady I don't think Match objects are readonly, so you'd just have to bind the new value in at the appropriate spot 23:47
rakudo_svn r31044 | jonathan++ | [rakudo] While we likely need a real Exception class at some point, we should map them now so .WHAT etc works on $! after a failed try.
TimToady after all, the match itself is scribbling on the Match object all the time
Limbic_Region >:-) lies, damned lies, and Match objects 23:48
TimToady but it would have to be a binding, since assignment to $1 is reserved for modifying the original string
assuming we ever implement :rw 23:49
it might not be possible to define it consistently
but anyway, bind bypasses all that, as long as $1 represents a real location somewhere 23:50
(which it doesn't in Perl 5, hence the problem) 23:51
23:51 |jedai| left
Limbic_Region are you in #parrot too? 23:51
[19:22] <@jonathan> Woo. We can nearly haz Perl 6 MMD algorithm.
TimToady more or less
23:51 |jedai| joined
TimToady jonathan is a real workhorse. I'm trying not to think about the fact that my wife just checked Animal Farm out of the library... 23:52
gives new meaning to the term "glue language" though... 23:53
Limbic_Region I recently re-read 1984 but I haven't read Animal Farm since middle school 23:54
TimToady I've never read 1984. I guess some books are more equal than others. :)
Limbic_Region heh 23:56
23:56 Exodist left
Limbic_Region I also recently re-read Flowers For Algernon or so I thought 23:56
rakudo_svn r31045 | jonathan++ | [rakudo] If we are calling ACCEPTS in a multi-dispatch to do a type-check, then because blocks are not differentiated from regexes at the moment we get exceptions when trying to store $/. This patch wraps that code up in a handler.
Limbic_Region I didn't realize there were two versions - one shorter and more appropriate for school age children
and one more adult
TimToady yes, it was originally a short story, I think 23:57
and I think the short one is probably more better 23:58
at least, that's what Glo tells me
Limbic_Region is currently reading "The Female Brain" with "Do You Think What You Think You Think" on deck
TimToady well, duh, nobody thinks what I think I think, not even me...