pugscode.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, smop: etc.) || We do Haskell, too | > reverse . show $ foldl1 (*) [1..4] | irclog: irc.pugscode.org/
Set by TimToady on 25 January 2008.
00:00 alester left 00:05 bacek joined 00:07 justatheory left 00:16 japhb left 00:19 japhb joined 00:26 Alias_ left 00:40 justatheory joined 00:54 Alias_ joined
meppl good night 00:56
00:58 justatheory left 00:59 meppl left 01:13 cathyal joined, cathyal is now known as planofish, _timbunce left 01:20 Alias_ left, Alias__ joined 01:21 hcchien joined 01:35 Limbic_Region left 01:41 alester joined 01:49 jfredett_ joined 02:00 jfredett left 02:23 alester left 02:25 Alias__ left 02:26 Alias_ joined 02:28 aindilis joined, alester joined 02:33 xinming_ joined
pugs_svn r21443 | lwall++ | [STD] removed all trailing {*} because they inhibit composibility 02:39
r21443 | lwall++ | meta-infixes now (tend to) include trailing components for complete tokens
02:39 xinming__ joined 02:41 xinming left 02:44 wknight8111 left 02:53 xinming_ left
pugs_svn r21444 | putter++ | [rx_on_re] Establish regression baseline. 02:59
03:02 Alias__ joined 03:03 Alias_ left 03:08 elmex_ joined 03:11 BinGOs_ joined 03:12 BinGOs left
TimToady @messages 03:13
lambdabot masak asked 7h 17m 55s ago: is `class A is B {}; class B {}` allowed in Perl 6?
TimToady @tell masak "is B" is not allowed unless B is already known to be a trait or type; only subroutines can be post-declared 03:14
lambdabot Consider it noted.
03:17 mod_cure left
TimToady moritz_: are you sure your STD is up-to-date? my STD fails on neither of those, and passes 80%+ of the t/spec tests all of which start with 'use v6;' 03:21
where "passes" means "parses", of course
03:21 elmex left, elmex_ is now known as elmex 04:31 REPLeffect joined
pugs_svn r21445 | putter++ | [elf] elf_g created. 04:42
r21445 | putter++ | elf_g copied from elf_f. elf_f now has its own copy of STD_red. elf_f frozen.
r21445 | putter++ | TESTS regressions file dropped. VERSIONS carved out of README.
04:43 REPLeffect left, REPLeffect joined, timbunce joined 04:54 kanru joined
pugs_svn r21446 | Auzon++ | [gsoc_spectest] added some S09 tests from TASKS (added 10 tests) 04:56
05:02 alester left 05:13 luqui joined 05:20 Psyche^ joined 05:22 Alias__ left 05:36 Patterner left, Psyche^ is now known as Patterner 05:39 justatheory joined 05:44 justatheory left 05:51 [particle1 joined 05:54 alester joined 06:23 barney joined 06:24 xinming__ left 06:28 xinming joined 06:41 penk joined 06:44 iblechbot joined 06:45 audreyt left 07:09 BinGOs_ is now known as BinGOs 07:12 jferrero left
rakudo_svn r29693 | pmichaud++ | [rakudo]: spectest-progress.csv update: 102 files, 1799 passing tests 07:21
moritz_ good morning 07:22
07:38 masak joined 07:46 xinming_ joined 07:47 rho joined
moritz_ TimToady: it was an outdated STD.pmc, so never mind 07:50
07:51 timbunce left
pugs_svn r21447 | moritz++ | [spec] capture.t: used '...' for strings in which $ should 07:53
r21447 | moritz++ | not be interpolated.
masak moritz_: good morning 07:56
lambdabot masak: You have 1 new message. '/msg lambdabot @messages' to read it.
masak @messages 07:57
lambdabot TimToady said 4h 42m 31s ago: "is B" is not allowed unless B is already known to be a trait or type; only subroutines can be post-declared
07:57 Alias_ joined
moritz_ good morning masak ;) 07:57
masak :)
it's good to have people spread out over the globe
then you have the luxury of getting your questions answered overnight 07:58
07:58 timbunce joined, xinming left 08:01 timbunce left
masak so, next question: if, for some reason, I have to declare classes in reverse order, how do I write? is 'class A { ... }; class B is A {}; class A is also {}' the "standard practice" for this? 08:03
can I make a class derive a new class using the 'is also' mechanism?
moritz_ I don't know if class a { ... } (with literal '...') is valid syntax, but I think it should work with 'is also'
masak: I see no reason why not 08:04
masak moritz_: actually, the literal '...' is not strictly required here, I guess
'class A {}; class B is A {}; class A is also { has $.stuff }' 08:05
moritz_ masak: should I retitle RT #57170?
masak moritz_: if you wish
are these statements eval'ed at BEGIN time? 08:06
moritz_ masak: for example to "inheriting from a non-defined class should give a nice error message"
masak: class definitions are, yes
masak moritz_: oki
what happens if I put them in an eval?
moritz_ then they happen at run time, and in the BEGIN-phase of the eval block
masak what happens if I create instances of A and B, and then eval an 'A is also'? 08:07
:)
moritz_ only new instances are affected (I think)
masak ok, so no Smalltalk here
still, maybe that's reasonable 08:08
moritz_ that's what chitchat is for ;-)
masak hehe
moritz_ uhm, that title change didn't work 08:09
08:14 pmurias joined
pmurias classes are open by default, so modifing them at runtime should work 08:15
moritz_ wow, STD.pm now parses 82% of t/spec/ 08:19
08:19 pmurias left
moritz_ TimToady++ 08:19
zamanfou is now away: In the rain my tears are forever lost. 08:22
moritz_ masak: so what do we do with t/oo/class/declaration-order.t?
08:22 pmurias joined
masak moritz_: ah, right 08:23
maybe remove it outright
moritz_ s/lives_ok/eval_dies_ok/ in the second case?
masak even better
masak fixes
moritz_ and maybe move to t/spec/S12-classes/ ? 08:24
masak gladly :) 08:25
pugs_svn r21448 | masak++ | [declaration-order.t] reformulated test due to new insights about semantics 08:26
moritz_ masak: dies_ok isn't good because the class declaration happens at compile time
masak: that's why I suggested eval_dies_ok
masak ah, I see it now 08:27
fixing
08:27 Alias_ left, Alias__ joined
pugs_svn r21449 | masak++ | [declaration-order.t] moved into t/spec 08:27
r21450 | masak++ | [declaration-order.t] s/dies_ok/eval_dies_ok/ 08:28
masak after the moving-into-t/spec is done, will there be any tests outside t/spec? 08:29
moritz_ not in the official test suite 08:30
masak ah, so t/spec is the official test suite
moritz_ aye
there might be implementation specific tests still
pmurias unless the unspeced features will also be untested ;) 08:31
pugs_svn r21451 | moritz++ | [spec] 08:32
r21451 | moritz++ | capture.t: removed old-style todo markers
r21451 | moritz++ | declaration-order.t: eval_dies_ok takes a string
masak moritz_++ # oops, again 08:33
moritz_ now if only I know why rakudo says "[oops; continuation 0xb5e52144 of type 21 is trying to jump from runloop 22394 to runloop 110]"... 08:34
moritz_ realcleans and rebuilds 08:35
my desk could use a "make realclean" also ;-)
masak *lol* 08:36
moritz_ masak: title of ticket changed (barney++) 08:41
masak dz
08:48 barney left 08:56 pmurias left 09:06 bsb left 09:30 chris2 joined 09:33 bacek left 10:03 lambdabot left 10:04 aindilis left, aindilis joined 10:07 donaldh joined 10:08 lambdabot joined 10:37 orafu left 10:41 qiang joined 10:52 bbkr joined 10:57 ruoso joined 11:10 wknight8111 joined
pugs_svn r21452 | fglock++ | [v6.pm] large test files are chunked 11:11
11:23 meppl joined 11:24 pbuetow joined 11:28 rindolf joined 11:48 pmurias joined 11:58 Lorn left, Lorn_ joined 12:06 orafu joined 12:07 penk left 12:14 luqui left 12:23 orafu left 12:27 kanru left 12:29 wknight8111 left
pugs_svn r21453 | moritz++ | [spec] compact.t: ord with $_ as argument is written as .ord 12:33
rindolf Hi all. 12:36
12:39 orafu joined 12:44 masak left
pmurias rindolf: hi 12:50
rindolf pmurias: hi. 12:51
moritz_ www.mikeonads.com/2008/07/13/using-...te-gender/ # nice one
lambdabot Title: b Mike On Ads 1 16 ōæ½xBB Blog Archive 1 3a ōæ½xBB Using your browser URL history to estim ..., tinyurl.com/6xmego
rindolf pmurias: wow! nothingmuch has 114 CPAN distributions. 12:52
12:54 Jamzio joined 12:55 masak joined
pmurias rindolf: yes, that's quite a lot of CPAN distributions ;) 12:59
13:15 cognominal_ left 13:16 c1sung joined 13:20 kanru joined 13:28 cmarcelo joined
ruoso placing some wood in the fire on the "HLL Interoperability" thread 13:42
moritz_ ;)
ruoso pmurias, in the end doo we agree on the p6opaque structure? 13:43
moritz_ rakudo: multi sub a() { }; say 1; 13:47
p6eval rakudo 29697: OUTPUT[1ā¤]
moritz_ rakudo: multi sub a { }; say 1;
p6eval rakudo 29697: OUTPUT[get_pmc_keyed() not implemented in class 'Undef'ā¤current instr.: 'parrot;Perl6;Grammar;Actions;multi_declarator' pc 133690 (src/gen_actions.pir:13082)ā¤]
moritz_ rakudo: multi a() { }; say 1;
p6eval rakudo 29697: OUTPUT[Statement not terminated properly at line 1, near "{ }; say 1"ā¤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)ā¤]
moritz_ masak++ wrote tickets for those two
pmurias ruoso: looking once more at it ;) 13:49
nothing objectable there so if you're fine with the one on the wiki we do ;) 13:51
lunch& 13:52
ruoso by "on the wiki" you mean www.perlfoundation.org/perl6/index....ementation
lambdabot Title: SMOP p6opaque Implementation / Perl 6, tinyurl.com/2z5spt
13:54 iblechbot left
pmurias ruoso: yes 13:55
ruoso alright then
do we have an lowlevel array implemented already/ 13:56
?
13:57 audreyt joined, b_jonas joined 14:01 pmurias left
ruoso brb & 14:01
14:02 qiang1 joined 14:03 pmurias joined
pmurias ruoso: not yet, i'll get to work on it then 14:10
s/get to work/get working/ 14:12
ruoso: what do we need for the lowlevel array? 14:14
the biggest problem with arrays ATM is that s1p dosn't support postcircumfix:<[ ]> 14:16
b_jonas pmurias: is "s1p" the sed2perl translator 14:17
pmurias :) 14:18
it's the unoffical name for the elf smop backend
b_jonas yeah, and that would only have made sense with a2p, not s2p 14:19
14:20 qiang left
b_jonas s2p sucks btw, and would need a rewrite 14:22
I think I could rewrite it to work but I don't think anyone actually uses it these days so I don't care
and there are more than one (non-perl) sed implementations anyway
otoh compared to how it's written it works remarkably well 14:23
it's a nice hack
I especially like how it has substitutions like s/a-zA-Z0-9_/\\w/g affecting the whole code 14:24
pugs_svn r21454 | fglock++ | [PCR] version 0.33 14:26
14:26 Exodist joined 14:27 hercynium joined
pugs_svn r21455 | fglock++ | [v6.pm] version 0.024 # 3176 tests pass 14:30
14:33 iblechbot joined 14:35 timbunce joined, mofino joined 15:04 [particle1 left 15:09 timbunce left
pugs_svn r21456 | fglock++ | [v6.pm] more tests # 5057 15:22
15:25 mncharity joined
pmurias mncharity: hi! 15:25
mncharity hi pmurias :) 15:29
saw the 80% t/spec STD parse go by. woo hoo!
how goes? 15:30
pmurias i made a very simple smop backend
mncharity ! :) 15:31
pmurias but it's blocking on "\\\\" not working in elf 15:32
mncharity ha ha. fixing that as we speak.
wow. sometime the universe does bizarre timing coincidences. 15:33
Not "ha ha", you were blocked. But funny that I hit the same thing, and was fixing. 15:35
pmurias ;)
15:37 masak left
pmurias re 80% t/spec STD parse i maybe i should revieve pixie 15:38
s/i//
?
pugs_svn r21457 | putter++ | [elf_g] String escape handling slightly improved. Probably still flakey. 15:40
moritz_ is elf limited by parsing, or by the rest of the compiler? 15:41
mncharity "Perl 6 development has been blocked for years on the absence of a parser willing to report on classes." - me ;) 15:42
so parser
moritz_ we should promote mncharity to our parser pumpkin 15:43
pmurias that's TimToady
moritz_ he's already got the post of language designer and Last Instance of Everything, (LIE) ;-) 15:44
mncharity re pixie, good question. was puzzling over how to proceed. perhaps wrap STD5 as a STD_green alternate front-end, with an second IR from ast.
15:44 justatheory joined
mncharity how does STD(5) speed compare with STD_red? 15:45
pmurias STD5 is a bit slower i think 15:46
the way i got t/01-sanity/01-04 was to fill in the {*} blocks and create ast from it
* got working
mncharity re pumpkin, I get to be a carriage for a while?
moritz_ can't parse that question 15:47
mncharity re sanity, neat. I'll look (eventually...), and pursue directly, or scavenge code/ideas. 15:48
pmurias moritz_: a fairy tale reference i guess
mncharity re parsing pumpkins, isn't the story that they get to be carriages until midnight? 15:49
15:50 timbunce joined
mncharity (what, Disney hasn't yet managed to homogenize world-wide recognition of mangled fairy tails? ;) 15:50
*tales
moritz_ mncharity: I hardly recognize fariy tails that aren't copyright by GebrĆ¼der Grimm ;-) 15:51
mncharity :)
pmurias re how goes, i have vactions right now so i have no real excuse for not helping with perl6 other than lazines and the opengl book I received yesterday ;)
mncharity lol
pmurias mncharity: and how does stuff go for you? 15:52
got to go to the library& 15:55
15:55 pmurias left
mncharity distracted, scattered, tired. neat web project to teach numeracy to kindergarden-postdocs :). keep hitting "if only p6 existed, I'd write this there and then compile it down to js". 15:56
16:01 rho left 16:02 rindolf left 16:03 [particle1 joined 16:06 ruoso left
pugs_svn r21458 | putter++ | [misc/elfish/rx_on_re] Moved p5 regex engine core into a p6 file. 16:08
r21458 | putter++ | Core now uses s///g, instead of a source filter, for the backtracking api.
r21458 | putter++ | Sub::Name use undisabled. Switched to elf_g.
r21458 | putter++ | Regressions exist - as yet undiagnosed. It's unexpectedly working "better".
Auzon moritz_++: Thanks for catching my p5isms :)
moritz_ you're welcome 16:09
(I have to show that I actually do something as a mentor, at least from time to time ;-)
mncharity unexpectedly passing tests. phooey. debugging task for another day. 16:10
Auzon
.oO(unexpectedly passing tests are bad?)
16:14 alester left
mncharity :) when doing a "mutate the implementation while intending to maintain behavior invariance" exercise, yes. it means I don't really understand the changes I just made. perhaps with excellent test coverage, one might disregard understanding, and simply use suite passing. but a good test suite for regex/regexp regrettably doesn't exist. 16:16
16:17 Alias__ left
Auzon Incidentally, I'm starting work on S05 testing real soon now (possibly as soon as after lunch). Let me know if you have any requests for it :) 16:17
pmichaud how about the test suite that PGE uses?
moritz_ that's certainly a good start, but rather limited in terms of testing modifiers, iirc 16:18
mncharity pmichaud: last time I looked (long ago), my fuzzy recollection it was largely derived from the same p5 regexp.t? which is very partial. 16:19
pmichaud no, we build the p6 tests from scratch, essentially 16:20
*built
we then converted them to use a similar format to p5rx.t so that it would be easier to port to other regex engines 16:21
16:21 Alias_ joined
mncharity nifty. that will be a big help for the stage after this. 16:23
pugs_svn r21459 | lwall++ | [STD] various buglets 16:24
r21459 | lwall++ | [t/spec] various buglets
mncharity plan is get the "historically tiny changes toggle perl5 segfaults" code partially rewritten in p6 (emitting p5 plus a "small" residual p5 engine core). then deal with rx syntax changes since its tests were created. then, at some point, think about improving the implementation. 16:26
pmichaud: thanks for the pointer. Auzon: looking forward to it. re requests, will ponder. pmichaud: aside from "sync everything to current spec and unify tests", any areas strike you as notably needing improvement? 16:29
pmichaud in the regex tests? we do need some updates to some of the modifiers, as moritz++ suggests
thus far we've been implementing modifiers in terms of "what do we need to write language compilers?" 16:30
moritz_ which mostly means :sigspace and :i, right?
pmichaud :i works (and is tested) already 16:31
oh, you mean for compilers. yes, :sigspace and :i primarily
most/many of the other modifiers don't fit within PGE itself but can be done by the outer-language compiler.
mncharity moritz_: re parsing, given a parser, one can dump parse trees for all of t/. in a nice, simple, generative format which can be easily turned into whatever anyone needs (sexp, terms, whatever). after that... doing partial p6 backends is straightforward if one has a target language without much impedance mismatch. challenge is 16:32
all the core bits which are unspeced (historically). the p6 object story may actually have matured to the point that you could simply sit down and do the Right Thing. though p6l seemed to still be arguing over what exactly .WHAT(?) does a couple of weeks ago, so perhaps not. 16:33
pugs_svn r21460 | moritz++ | [t/deprecated-syntax.pod] mention variable interpolation in test descriptions 16:34
16:34 Lorn joined
mncharity re straightforward, PIL-Run and PIL2JS were up in days, doing significant test passing in weeks. increasing stuck on, and then blocked by, pugs's parser not exposing oo-related info. 16:36
moritz_ I'm too young for remebering that, I guess ;-) 16:37
mncharity now we (almost) have a parser without that limitation.
*grin*
sigh, yes, it's been a while. :/
16:39 TJCRI joined
mncharity re "rest of the compiler", well, it would be nice to have a prelude written in p6. we're not much further along than when the pugs effort to create it bogged down in fighting pugsbugs. but as for the compiler core, the difficulty is largely a function of the target. Haskell, C - hard. P5, JS, ruby, common lisp - much easier. parrot/pir/C - I'm unclear... perhaps easy if you had a fully working implementation snatched from the f 16:42
16:43 alester joined
moritz_ mncharity: message truncated after 'snatched from the f' 16:44
mncharity Toying with the idea of doing a lisp lightning talk next week. "Perl 6 - The future of Common Lisp" "Perl 6 -
but as for the compiler core, the difficulty is largely a function of the target. Haskell, C - hard. P5, JS, ruby, common lisp - much easier. parrot/pir/C - I'm unclear... perhaps easy if you had a fully working implementation snatched from the future, but obviously hard when it's still a work in progress.
16:45 donaldh left
mncharity "Perl 6 - The means by which CL will take over the world" 16:45
16:46 Lorn_ left
b_jonas hmm 16:47
mncharity p6 and CL are quite similar. 'optional typing', 'do good compiling when you can', 'do dynamic runtime-mutatable oo when you wish', 'MOP-able oo', 'macros', 'alter the language with modifiable parsing/reading', ... 16:49
pugs_svn r21461 | moritz++ | [spec] fudged each block in S03-operators/assign.t with a #?DOES directive
r21461 | moritz++ | rakudo doesn't pass any of these tests, but now at least plan() matches the
r21461 | moritz++ | number of skipped tests.
r21461 | moritz++ | fudge's test counting seems seriously borked wrt this test file
16:49 AzureStone_ joined
b_jonas ah, that last one (alter the language with modifiable parsing/reading) is true 16:49
I never realized that
though you could say that about forth as well... 16:50
mncharity :)
b_jonas no, really, the reader and compiler is the nicest part of forth 16:51
the stack thingy is not unique and the unchecked typing isn't unique either and isn't so convenient
16:52 [particle1 left
pugs_svn r21462 | audreyt++ | * INSTALL: Update links to Cabal and cabal-install 16:52
b_jonas I mean, the idea that you can define a string-quote-operator as a compile-time macro is from forth
I think that predates common lisp reader macros
mncharity just combining the "have a compiler story" with "can do hairy runtime mutation of objects" by itself filters the set of all languages down to p6, CL, some individual schemes, and ... not sure there's a forth.
no pun intended
b_jonas compiler story? 16:53
what does story mean there
hairy runtime mutation of objects... CL has that? I'll have to look at that 16:54
also, CL too is a more modern language using an older and well established language to advocate itself 16:55
I think that one itself is quite rare, let's see
perl6, common lisp, scheme, c++, "java"script, no, it's not rare 16:56
mncharity the language talks about and is built for compilation. eg, js, ruby, python, and p5 have the "hairy runtime mutation" (though p5's has often been "buggy - you are not supposed to do that"). but the js, ruby, python compiler stories have largely been jit like thinks, or struggles to compile something not really intended to compile.
*things
b_jonas yes, I know p6, js, ruby have the runtime mutation, but I don't know about how CL has it 16:57
I'll look it up in the CL book
mncharity yes, CLOS can, for instance, add a field at runtime and have it propagated to already created objects.
b_jonas CL book = Common Lisp the Language, 2nd Edition, in html
add a _field_, meh, any language where fields are in a hash can do that (p5, js, ruby, python) 16:58
mncharity re cltl, looks like www.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html is down at the moment. usually up. 16:59
b_jonas I have a local copy, so no problem
though I still depend too much on online docs I'm lazy to download (often because they are in lots of separate html pages) 17:00
mncharity re hash, yes, but CL can statically compile to C++ like performance.
js's jit tamarin is a not-quite-there yet work in progress. p5 doesn't have a jit. ruby's is rather limited but at least is core (for the next major version). python's efforts the most mature, but... it really feels like it's going against the grain of the language. 17:03
b_jonas yeah 17:04
I dislike jit, but even without jit non-hash-based structures are a good idea
mncharity lua
b_jonas scheme definitely has non-hash-based structures as an extension, I think even r6rs might have those 17:05
mncharity not for non-hash-based, but for sort of having a compiler story. even if its a forth-like "don't get too far from the machine".
b_jonas so by "compiler story" you mean the optimizations, not the changeable parser and other such interface things 17:06
like lexical pragmas etc
17:12 ruoso joined 17:13 [particle1 joined
mncharity by "compiler story" I mean "are language features chosen with compilation in mind", and thus "can I talk to the compiler", and thus "can I compile away abstractions", and thus "can I use abstractions without paying a runtime cost for them". 17:13
well, only the first two. the latter two are motivation. 17:14
17:15 demq joined
mncharity but yes, optimizations. though changeable parser and such blend into optimization via macros and such. 17:15
eep. /me very late. b_jonas: I'd like to continue the conversation some time (sorry I've been distracted), but I've got to run now. 17:16
&
17:16 mncharity left
b_jonas bye 17:17
17:22 Alias_ left 17:23 justatheory left 17:25 alester left 17:27 iblechbot left, dmq left 17:28 timbunce left 17:31 justatheory joined 17:37 cognominal_ joined, cognominal_ left 17:38 cognominal_ joined 17:44 timbunce joined 17:46 cognominal_ left 17:47 iblechbot joined 17:48 justatheory_ joined, justatheory left 17:52 justatheory_ left 17:57 [particle2 joined 18:02 meppl left 18:03 [particle1 left, meppl joined 18:06 justatheory joined 18:25 pmurias joined
ruoso pmurias, hi 18:26
pmurias, about lowlevel array... a lowlevel array can be implemented directly in C, the same way you did with Hash 18:27
18:28 alester joined
pmurias ruoso: it's already started 18:29
ruoso: i can do it this evening
ruoso pmurias++
18:34 timbunce left
ruoso pugs: say Any.can('FETCH') 18:35
p6eval pugs: OUTPUT[*** No such method in class Any: "&can"ā¤ at /tmp/IVo3dMtfF5 line 1, column 5 - line 2, column 1ā¤]
ruoso pugs: say Any.^can('FETCH')
p6eval pugs: OUTPUT[*** No such method in class Class: "&can"ā¤ at /tmp/oBmxsWl5Pc line 1, column 5 - line 2, column 1ā¤]
ruoso pugs: say 1.FETCH 18:36
p6eval pugs: OUTPUT[*** No such method in class Int: "&FETCH"ā¤ at /tmp/1UQatPfEh4 line 1, column 5 - line 2, column 1ā¤]
b_jonas can is a method now?
18:36 qiang1 left
ruoso b_jonas, it is... 18:36
b_jonas and it's lowercased?
ruoso b_jonas, iirc yes 18:37
b_jonas makes sense, we don't have an "is" infix either
18:37 justatheory left
ruoso something just crossed my mind... how do we know if something should be used as a container or as a value? 18:38
'$a = 1' Ɨ '$a = foo()' Ɨ 'foo() = 1' 18:39
is it purely syntatic?
pmurias no
i guess containers redispatch methods on their value 18:40
ruoso which means that if foo() is rw, then we copy the container...
$a = 1 # this copies '1' as a value 18:41
$a = foo() # this copy the return of foo() as a value, which means, the scalar returned by foo
$a.bar() works, because the scalar delegates to the value
b_jonas I think in '$a = foo()' the equal sign copies the value of foo() to inside the container $a
that's how it works in p5 at least
and I think that's how = works in p6 too
18:42 justatheory joined
ruoso so how we differentiate $a = 1 from $a = foo() ? 18:42
because we can't 1.FETCH
so we can't assume the rvalue to be a container
18:42 timbunce joined
b_jonas ruoso: 1 has some container too, doesn't it? 18:42
pmurias no
ruoso b_jonas, does it?
b_jonas I mean, isn't just 1 as an expression in a scalar?
or am I thinking p5 there? 18:43
ruoso b_jonas, still
the problem persists
b_jonas in p5, the return value of every expression is in a scalar
ruoso my $a = foo()
do you have a scalar with a scalar with a value?
(considering foo() is rw)
b_jonas ruoso: I think no
ruoso and how you differentiate from 18:44
my $a = bar()
b_jonas in that case the container wouldn't be a scalar
ruoso (where bar() is ro and returns a value)
b_jonas but some upgraded container than behaives like a scalar
so there's no inner plain scalar
but I'm not sure
also, waiyt
in p5, a normal (non-lvalue) function or method copies each return values to new scalars 18:45
don't they?
eg. p5 'sub foo { $a } foo()' returns the value of $a in a new scratch scalar
I'm not sure if p6 does that though
but that's why p5 lvalue subs can work 18:46
ruoso b_jonas, in fact... p6 have a more clear distinction between value and container
you have values that are not inside containers
which is something that doesn't exist in p5
b_jonas yeah
I'm not sure how p6 subs work normally 18:47
ruoso b_jonas, it's not really about subs... 18:48
b_jonas I don't really get all the nits about containers in p5, and don't get even the basics of them in p6
ruoso except that subs might return scalars
b_jonas by the way, which languages have an "is" infix operator?
ruoso java? 18:49
b_jonas and also, what does it mean in them?
I think VB might have one
pmurias fetches thinking in java
b_jonas but is it container/address equality query, class/interface membership query, or a mutator something, or something else? 18:50
I just checked, and javascript doesn't have an "is" infix
(it has an "in")
ruoso b_jonas, in Java it is a lowlevel vm operation that introspect the object and class lowlevel data structure directly...
b_jonas hmm
pmurias b_jonas: javascript doesn't even have classes 18:51
b_jonas I assume you want to say it checks some form of class membership
pmurias: meh, it still has something like them, or it could still be address equalty for objects
I wonder where I find a VB manual online that tells me if it has "IS" 18:52
moritz_ I CAN HAS IS?
pmurias b_jonas: js has ===
b_jonas let me thing... corelscript has no objects so it can't have them, python has "in", what other language...
I'll check the synopsis for what "is" in p6 is exactly 18:53
pmurias: yeah
pmurias b_jonas: js has prototypes instead of classes because the developers were lazy
b_jonas pmurias: yeah 18:54
how about smalltalk? it could have an "is" method or operator in stdlib
18:54 alester left 18:55 [particle2 left
pmurias ruoso: what's the syntax for is in java? 18:56
b_jonas yeah, the internets says visual basic has "IS", I was right 18:57
ruoso foo isa Object
pmurias isn't it instanceof
ruoso heh...
b_jonas and it's object address equality query infix
ruoso thankfully 3 years away from jaava
it's instanceof indeeed 18:58
Auzon Wow. Rakudo passes the regex test I just wrote 18:59
18:59 alester joined
Auzon (not a complex one, but still, I didn't know that Rakudo had much/any regex support) 18:59
moritz_ hey, cool ;-)
b_jonas it seems java has no "is" infix
strang 19:00
ruoso b_jonas, it's "instanceof"
pmurias ruoso: what methods do we need for our lowlevel array?
b_jonas itnernets might be lying
ruoso pmurias, postcircumfix:[] at first...
b_jonas it's instanceof?
pugs_svn r21463 | Auzon++ | [gsoc_spectest] tests for handling of unknown metasyntax and escaping (added 6 tests)
ruoso b_jonas, yes
b_jonas very good, so "is" indeed is used for two things
har har har
no wait
Auzon moritz_: It can be added to spectest_regression, and it's pure even :P 19:01
b_jonas the NAME is instance of
so "instanceof" is the name of the instance of query
right
so there's just one "is"
moritz_ Auzon: very good
b_jonas "isa" is a good name though
ruoso pmurias, postcricumfix:[] returns a scalar, right?
b_jonas though I think the smartmatch is the best
ruoso: I think it returns whatever the array has for elements 19:02
ruoso b_jonas, and smartmatch is not the same as "isa"
b_jonas there could be unboxed numeric arrays that don't have scalars in them
but how [] assignment could work in that case I've no idea
ruoso b_jonas, but the array should return a scalar, so you can STORE on it
b_jonas yeah
ruoso and also BIND on it
b_jonas so it has to return some container
pmurias ruoso: yes
ruoso pugs: my @a; my $b := @a[0]; $b = 1; say @a[0]; 19:03
p6eval pugs: OUTPUT[1ā¤]
ruoso pmurias, so you just need postcircumfix:[]
and the proxy scalar object, of course
that should support FETCH and STORE (at least)
moritz_ Auzon: running spectest_regression, will commit when it finishes
b_jonas it could return a magical scalar/container created in place like what substr in p5 returns
Auzon great :)
b_jonas s/in place/on the fly/ 19:04
ruoso b_jonas, yes... that's the most likely solution...
I think that's how Hash works also, isn't it pmurias?
Auzon Cool, we're almost to 2000 passing tests in Rakudo
b_jonas ruoso: that's what haskell unboxed arrays do, sort of
ruoso but I'm still unsure on when the interpreter should expect a value instead of a container... 19:05
b_jonas indexing return normal boxed numbers, even though the unboxed arrays don't actually contain them
ruoso maybe bare-values should generate in-place container for themselves
pmurias ruoso: hashes are *supposed* to return a proxy
ruoso actually bare-values should return in-place read-only container for themselves 19:06
b_jonas I have to admit that I really prefer how ruby has no containers at all and assignment to methods (including assignment to indexing) is solved by specially named methods
but containers do fit the whole way how p6 is designed
ruoso pugs: my $a := 1; say $a;
p6eval pugs: OUTPUT[1ā¤]
pmurias actually our container model is more powerfull
b_jonas that is, how p6 has everything you might want it to have, but mostly transparently when you don't need them 19:07
pmurias what are the benefits of the ruby def method= {...} way? 19:08
ruoso pmurias, does it solve 'my $a = 1' Ɨ 'my $a = foo()' (where foo() is rw)
pmurias it = ? 19:09
ruoso yes... it's the assignment code...
how does it know if it should call FETCH or not?
b_jonas pmurias: the no containers 19:10
pmurias the kp6 way was that Object supported .FETH irrc
b_jonas pmurias: it's not just ruby, but also visual basic and digitalmars' D 19:11
19:11 orphean left
ruoso pmurias, that was my first thought... but I stopped... when pugs failed on 1.FETCH(); 19:11
b_jonas pmurias: and the setf in common lisp (and hacks to make scheme set! behaive like that) are also similar to the no-container model
ruoso perl6: say 1.FETCH();
p6eval elf 21463: OUTPUT[Can't call method "FETCH" without a package or object reference at (eval 117) line 3.ā¤ at ./elf_f line 3861ā¤]
..pugs: OUTPUT[*** No such method in class Int: "&FETCH"ā¤ at /tmp/yxgaIkgMaP line 1, column 5-14ā¤]
..rakudo 29697: OUTPUT[Method 'FETCH' not found for invocant of class 'Int'ā¤current instr.: '_block11' pc 21 (EVAL_11:13)ā¤]
pmurias isn't even vaguely familiar with either visual basic or D, and have no intention of looking into the former 19:12
s/have/has
b_jonas pmurias: otoh, containers certainly have some advantages: 19:13
namely look at C++, it uses containers,
ruoso b_jonas, pmurias, I think the solution is for Any to have a STORE and a FETCH, where FETCH returns itself, and STORE is a failure (item is readonly by default)
b_jonas that makes definitions of stdlib somewhat complicated because it has to define some tricky container objects
but it also allows some interface thigns you couldn't do with just foo= methods
pugs_svn r21464 | lwall++ | [STD] add types for subsets; distinguish endstmts that suppress modifiers 19:14
b_jonas so I think in general containers allow for more things to have an equals signed interface 19:15
compared to just foo= methods or custom setf definitions
but foo= methods allow an easier implementation of modules with such an interface 19:16
pmurias ruoso: $foo := "hello world";say $foo would point to iy
b_jonas: that is not nessesarly true
b_jonas pmurias: like why? 19:17
ruoso pugs: my $foo := "take a look, pmurias"; say $foo
p6eval pugs: OUTPUT[take a look, pmuriasā¤]
ruoso but... 19:18
b_jonas ruoso: I can't relaly judge if that (default FETCH) is a good enough idea because of my infamiliarity with p6
ruoso pugs: say "foo".FETCH()
p6eval pugs: OUTPUT[*** No such method in class Str: "&FETCH"ā¤ at /tmp/pNlXfchYSo line 1, column 5 - line 2, column 1ā¤]
pmurias b_jonas: looking for the appropriate paper/presentation
ruoso pmurias, OTOH, creating in-place ro containers for bare values should also solve it 19:19
b_jonas pmurias: well, it's true that implementation of such things in C++ could be simpler if C++ offered some default methods for += and similar operators
(C++ has some default methods but not for that kind of thing)
ruoso pmurias, actually in-place container doesn't solve it... because foo() might return a plain value without a container... 19:20
pmurias ruoso: i would go for the FETCH and STORE
ruoso yeah... I think that's it... 19:21
pmurias b_jonas: there something called bi-directional programming
b_jonas pmurias: eek, that's a really crazy name
becasue it makes you think of befunge and similar things
broquaint oobar
Rarr, shoddy window focus :S 19:22
pmurias b_jonas: you can look at www.cis.upenn.edu/~bcpierce/papers/index.shtml , i read about it in the types considered harmfull slides
lambdabot Title: Benjamin Pierce's Publications
19:22 justatheory left
pmurias b_jonas: it should enable something like class Length {has $!inches;method cm is rw {has $!inches*2.54}} 19:23
b_jonas otoh, if containers worked well, that just proved my statement that there are lots of recent activity about generalizing type systems to do something good
19:24 alester left
pmurias b_jonas: it relation with static typing is that it's a challening thing to type 19:25
b_jonas well, I didn't specifically said static typing 19:26
rakudo_svn r29698 | moritz++ | [rakudo] added S05-metasyntax/unknown.t to spectest_regression, Auzon++
r29698 | moritz++ | +6 passes
b_jonas I guess containers or values that can be assigned can be considered an extension to the type system
pmurias i shouldn't be implementing that array
moritz_ type systems challenge the sanity of the implementors and language designers ;-)
b_jonas otoh I can't find what you're referring to on www.cis.upenn.edu/~bcpierce/papers/index.shtml
lambdabot Title: Benjamin Pierce's Publications
b_jonas ah, I should look at the types considered harmful 19:27
which are linked from there
moment
19:28 timbunce left
moritz_ now parrot is at 1805 passing tests 19:29
pmurias moritz_: rakudo or parrot?
moritz_ uhm, rakudo 19:30
pmurias moritz_: v6 does 5057 19:31
moritz_ pmurias: of the official test suite?
anyway, impressing number
pmurias moritz_: just took this number from fglock's commit msg 19:32
moritz_ pmurias: numbers without known unit are not very meaningful for me as a physicist ;-)
Auzon It's "just" parsing them. ("just" because it's very impressive) 19:34
19:36 meppl left 19:38 meppl joined
pmurias ruoso: i'm wondering wouldn't it be a good idea to make RI destruction automatic 19:42
?
ruoso pmurias, as we evolve we'll have to... at some point... 19:43
I'm not sure that's necessary for list, hash or even p6opaque
(the lowlevel list and hash, I mean)
pmurias it wouldn't be very hard to do 19:47
pugs_svn r21465 | Auzon++ | [gsoc_spectest] explicit tests for changes in metacharacters, fudged for rakudo (added 13 tests) 19:50
ruoso pmurias, sure sure... as you have a global namespace you can simply leave the only reference there.. 19:53
19:53 apeiron_ joined
pmurias thought more of putting responder interfaces into a linked list, to be deleted in smop_destr 19:55
should i use realloc or do the free,malloc and copying myself? 19:58
ruoso sorry... I missed your point? 20:00
why a linked list?
Auzon moritz_: my last commit should be good for spectest_regression too. I should have more such tests if you want to wait though
20:02 apeiron left
pmurias ruoso: putting them into a global namespace would also do it 20:03
ruoso pmurias, and that would be more natural, since it would be available for other objects to find it then 20:04
pmurias do you know the answer to my second question? 20:05
ruoso I didn't understand it, actually
why would you use realloc
pmurias i have to grow the array 20:07
when you do my @foo;@foo[10000] = 3; @foo has to grow 20:08
20:09 Lorn left
ruoso ah... ok... I'd use realloc then 20:10
pmurias got to fetch the loundry for drying& 20:12
do i have to store a Scalar in each array cell?
ruoso pmurias, no... you actually need to create a proxy scalar that holds the position in the array 20:21
ruoso home & 20:23
20:23 ruoso left
rakudo_svn r29700 | moritz++ | [rakudo] added S05-metasyntax/changed.t to spectest_regression, Auzon++ 20:26
r29700 | moritz++ | +10 pass, +3 todo tests
moritz_ perlbot: karma Auzon 20:27
perlbot Karma for Auzon: 144
20:40 Jedai left 20:41 Jedai joined, alester joined 20:42 timbunce joined
rakudo_svn r29701 | infinoid++ | [pbc_to_exe] Commit patches from Reini Urban in RT #57188. rurban++ 20:43
r29701 | infinoid++ | * Add an optional --install flag to pbc_to_exe.
r29701 | infinoid++ | * Add a rule to the rakudo Makefile to generate an installable perl6 binary.
r29702 | infinoid++ | [rakudo] 20:48
r29702 | infinoid++ | Followup to r29701, add installable_perl6 to the $CLEANUP list.
20:49 planofish left
pmurias what's the efficient equivalent of pow(2,ceil(log2(n))+1) 20:51
moritz_ pow(2, $something) can be made with a bit-shift operation 20:53
I guess you can do the whole thing with tricky bit shift & mask operations, but I've never been good at that 20:54
pmurias the ceil(log2(n)) is the tricky part 20:55
20:55 justatheory joined, jferrero joined 20:56 justatheory left
pmurias i meant floor(log2(n)) 20:57
wikipedia has a solution
20:58 Alias_ joined 20:59 jferrero left, jferrero joined
rhr pugs: my $x=63; my $log=0; while $x > 1 { $x = $x +> 1; $log++; } say $log 21:00
p6eval pugs: OUTPUT[5ā¤]
rhr is that the solution?
21:01 [particle1 joined 21:02 jferrero left
pmurias rhr: the wikipedia one is bit smarter 21:03
en.wikipedia.org/wiki/Binary_logarithm
lambdabot Title: Binary logarithm - Wikipedia, the free encyclopedia
21:04 justatheory joined
pmurias but it works for a set integer size only 21:04
pugs: my @foo;say exists @foo[1000]; 21:07
p6eval pugs: OUTPUT[*** No compatible multi variant found: "&exists"ā¤ at /tmp/2nDbA7RHAd line 1, column 13-30ā¤]
pmurias pugs: my @foo;say exists(@foo[1000]);
p6eval pugs: OUTPUT[*** No compatible multi variant found: "&exists"ā¤ at /tmp/McReVNGykh line 1, column 13-31ā¤]
21:07 Jedai left 21:08 Jedai joined 21:09 Alias_ left
rhr pmurias: thanks 21:10
pmurias np
;)
pugs: my @foo = (1,2,3);say @foo;@foo.elems = 2;say @foo;
p6eval pugs: OUTPUT[123ā¤*** Can't modify constant item: VInt 3ā¤ at /tmp/gZHzOkYsSd line 1, column 28-42ā¤]
pmurias .elems is readonly?
rakudo_svn r29705 | moritz++ | [rakudo] dynamic x_label_skip in tools/progress-graph.pl 21:11
21:19 Alias_ joined
pugs_svn r21466 | pmurias++ | [smop] 21:23
r21466 | pmurias++ | sm0p/strip_out_actions - hacked in ~~
r21466 | pmurias++ | some work on lowlevel Array
pmurias @tell ruoso i'll finish the Array tommorow morning unless something creeps up on me 21:24
lambdabot Consider it noted.
b_jonas pmurias: reading the typing harmful slides now, and one of the pages has the title "Example: An escaping lens"
Run! One of the lenses has escaped! It's coming! 21:25
it's a frightening title
moritz_ rakudo: class A {}; my A $x .= new; say 1; 21:28
p6eval rakudo 29705: OUTPUT[1ā¤]
21:29 masak joined
pugs_svn r21467 | lwall++ | [STD] add <*foo> 21:31
pmurias b_jonas: how do you like lenses? 21:33
21:33 b_jonas left
pmurias sleep& 21:34
21:35 pmurias left, b_jonas joined
japhb A friend of mine who is actually at OSCON tells me that Larry announced STD was done ...? 21:41
moritz_ japhb: it parses (at least) 80% of the official test suite
21:41 justatheory left
japhb That sounds like a suspicious simplification 21:42
Ah, I had noticed that last night.
moritz_ japhb: let's say that the hard parts are done
mostly
japhb heh
OK, so my friend misheard. Too bad .... 21:43
21:44 japhb left
masak rakudo: class A { my $x; method foo { say $x } }; my A $a .= new; $a.foo 21:44
p6eval rakudo 29705: OUTPUT[Lexical '$x' not foundā¤current instr.: 'parrot;A;foo' pc 180 (EVAL_13:80)ā¤] 21:45
masak is this correct?
moritz_ don't think so, but I'm not sure
masak rakudo: class A { has $.x = "hi"; method foo { say $.x } }; my A $a .= new; $a.foo 21:46
p6eval rakudo 29706: OUTPUT[Method 'lvalue' not found for invocant of class 'PAST::Stmts'ā¤current instr.: 'parrot;PAST::Compiler;as_post' pc 2698 (src/PAST/Compiler.pir:707)ā¤]
masak hunh?
moritz_ try to find out what S12 says on scoping
masak mm
moritz_ masak: initalization of attributes never worked
masak oh, I see :)
21:46 justatheory joined
masak according to S12, 'my' and 'our' makes the attribute a class attribute 21:47
which means it should work, methinks 21:48
moritz_ same here
unless they have special sigils (which I seriously doubt
masak oh, but it should still have a twigil
should be my $.x
moritz_ sure?
21:48 [particle1 left
moritz_ the "my" makes it private to the class anyway 21:48
masak says S12
I'm not able to give you line numbers, because I'm reading the HTML, not the POD 21:49
but search for "Class attributes are declared" and you'll find it
but it doesn't work, so I'll submit a bug for this too 21:50
heh: 21:51
rakudo: class A { has $.x; method foo { say $.x } }; my A $a .= new; $a.foo
p6eval rakudo 29706: OUTPUT[Objectā¤]
masak why does it print "Object"? :)
pugs_svn r21468 | lwall++ | [roundrobin.t] missing ) 21:54
r21469 | lwall++ | [evalfile.t] 0-ary rand 21:57
masak moritz_: how do I reference into a synopsis, with line numbers? (i.e. where's the POD file stored?)
moritz_ masak: either just click on the link in the IRC log...
masak: or look at docs/Perl6/Spec/
TimToady svn.perl.org/perl6/doc/trunk/design/syn
lambdabot Title: Revision 14568: /doc/trunk/design/syn
masak moritz_: thanks, the latter was what I wanted 21:58
I'm creating a reference, so I need the file itself
moritz_ what kind of ref? smartlink? hyperlink?
masak an exact reference in an email to rekudobug 21:59
s/reku/raku/
21:59 szr joined, szr left
moritz_ ah 21:59
masak is there no way to set a class attribute? 22:01
s/a class/an/
moritz_ from inside a method, or from outside if it is rw 22:02
masak oki, thanks
22:02 justatheory left 22:03 araujo left 22:06 japhb joined 22:10 Jedai left, Arathorn left, apple-gunkies left, frobnitz left, pmichaud left, breinbaas left, moritz_ left, chris2 left, japhb left, b_jonas left, mofino left, lisppaste3 left, bloonix left, felipe left, gbacon left, pl0d left, yath_ left, Juerd left, charsbar left, hercynium left, rlb3 left, nnunley left, silug left, r0bby left, Patterner left, REPLeffect left, spinclad left, smtms left, pjcj left, TreyHarris left, awwaiid left, Alias_ left, timbunce left, apeiron_ left, AzureStone_ left, thepler left, rhr left, lumi left, jiing left, integral left, audreyt left, rakudo_svn left, pugs_svn left, baest_ left, p6eval left, ilbot2 left, Guest16015 left, broquaint left, Lunchy left, nothingmuch left, pbuetow left, bbkr left, aindilis left, xinming_ left, jfredett_ left, simcop2387 left, cls_bsd left, josh- left, [particle] left, dalek left, agentzh left, iblechbot left, TJCRI left, cmarcelo left, hcchien left, PZt left, mj41 left, cosimo left, pasteling left, allbery_b left, Khisanth left, smg left, kanru left, c1sung left, lambdabot left, elmex left, Auzon left, kolibrie left, Maddingue left, TimToady left, SamB left, IRSeekBot left, Jamzio left, arguile left, fridim_ left, ingy left, kcwu left, perlbot left, zamanfou left, speckbot left, jrockway left, buubot left, masak left, meppl left, demq left, Exodist left, orafu left, jan__ left, fullermd left, cj left, s1n left, nipotaway left, yahooooo left, pengrate left, PerlJam left, sunnavy left, Tene left, clkao left, obra left, BinGOs left, Grrrr left, Grrrr joined 22:12 TimToady joined, japhb joined, b_jonas joined, Alias_ joined, Jedai joined, timbunce joined, apeiron_ joined, meppl joined, demq joined, AzureStone_ joined, TJCRI joined, mofino joined, hercynium joined, Exodist joined, audreyt joined, cmarcelo joined, kanru joined, c1sung joined, Jamzio joined, orafu joined, pbuetow joined, bbkr joined, lambdabot joined, aindilis joined, chris2 joined, xinming_ joined, Patterner joined, REPLeffect joined, BinGOs joined, elmex joined, jfredett_ joined, hcchien joined, spinclad joined, TreyHarris joined, thepler joined, integral joined, rlb3 joined, pjcj joined, silug joined, r0bby joined, rhr joined, lumi joined, nnunley joined, awwaiid joined, jiing joined, smtms joined, Auzon joined, Arathorn joined, jan__ joined, PZt joined, mj41 joined, irc.freenode.net sets mode: +o TimToady, fullermd joined, simcop2387 joined, cj joined, s1n joined, cls_bsd joined, pl0d joined, kolibrie joined, rakudo_svn joined, pugs_svn joined, baest_ joined, cosimo joined, josh- joined, apple-gunkies joined, pasteling joined, arguile joined, Maddingue joined, frobnitz joined, ilbot2 joined, Guest16015 joined, p6eval joined, broquaint joined, Lunchy joined, nothingmuch joined, [particle] joined, fridim_ joined, moritz_ joined, pmichaud joined, breinbaas joined, ingy joined, dalek joined, allbery_b joined, Khisanth joined, kcwu joined, agentzh joined, lisppaste3 joined, bloonix joined, felipe joined, perlbot joined, gbacon joined, smg joined, nipotaway joined, zamanfou joined, Caelum joined, meteorjay joined, mtve joined, charsbar joined, yahooooo joined, buubot joined, SamB joined, PerlJam joined, Juerd joined, sunnavy joined, yath_ joined, clkao joined, obra joined, IRSeekBot joined, jrockway joined, speckbot joined, funktio joined, pengrate joined, Tene joined 22:16 TJCRI left 22:20 hercynium left 22:24 alester left
pugs_svn r21470 | lwall++ | [getc.t] 0-ary rand, bad ."" interaction 22:31
22:33 Jedai left 22:34 Jedai joined 22:41 aindilis left 22:44 timbunce left 22:46 wknight8111 joined
pugs_svn r21471 | lwall++ | more spec ." snafus 22:50
23:01 Jedai left 23:04 Limbic_Region joined 23:05 alester joined 23:12 ruoso joined 23:18 cognominal_ joined 23:24 AzureStone_ left 23:27 Alias_ left 23:31 alester left 23:36 AzureStone joined 23:37 justatheory joined 23:42 [particle1 joined 23:43 timbunce joined 23:47 chris2 left 23:50 japhb left 23:54 araujo joined 23:58 cmarcelo left