Fallback repos: svn.perl.org/perl6/pugs/trunk/ | pugscode.org <Overview Journal Logs> | pugs.kwiki.org Set by autrijus on 11 May 2005. |
|||
mugwump | it's still early in Taiwan | 00:00 | |
putter | ;) | ||
time to read the traits paper... | |||
00:43
_metaperl_ is now known as _metaperl
00:59
_metaperl_ is now known as _metaperl
|
|||
_metaperl | my perl mongers talk on hangman.p6 will commence in 46 minutes: www.metaperl.com/talks/p6/hangman-elucidated/ | 01:14 | |
mugwump | nice looking talk, _metaperl | 01:22 | |
_metaperl | mugwump, thanks | ||
stevan | _metaperl: I agree w/ mugwump | 01:29 | |
:) | |||
_metaperl | :) great. glad to help out the p6 movement in my own way | ||
revdiablo | if anyone's interested, I made a greasemonkey script to re-sort the www.nntp.perl.org post listings | 01:31 | |
makes it sort of threaded, at least easier to follow the threads than it was | |||
stevan | horray,.. openfoundry is back | 01:55 | |
wilx | ~_~ | 01:57 | |
I forgot to turn off my speakers befire I went to sleep and my mIRC beeps on notice. | |||
It woke me up :/ | |||
stevan | sorry | 01:58 | |
wilx | 0357 | ||
Heh. | |||
stevan | shhhhh wilx is sleeping :) | ||
wilx | np | ||
My fault. | |||
autrijus | OpenFoundry back, commit at will | pugscode.org <Overview Journal Logs> | pugs.kwiki.org | 02:01 | |
autrijus | hopefully stevan will still have enough sanity to update ChangeLog :) | 02:02 | |
stevan | TEst::Builder now parses :) | 02:03 | |
autrijus++ # cant stop him | |||
autrijus | that's not saying it works :) | ||
stevan | I know | ||
but its closer then it was before | |||
:) | 02:04 | ||
autrijus | :) | ||
stevan | I have a test for you too | ||
I am going to commit once this build finishes | |||
method chaining | |||
$foo.bar().baz() was not working | |||
could not find &baz was the error | |||
autrijus | right. I even know why | 02:05 | |
stevan | cool | ||
autrijus | basically invs needs to be reduced before findSub. | ||
otherwise can't know the exact type of $foo.bar() to lookup baz with | |||
but it's a nontrivial change -- and not at all sure what needs to happen when there are two .baz imposing different context to its inv | 02:06 | ||
stevan | ok | ||
autrijus | hm. maybe we can do away by declaring the correct return type in ".bar" | ||
stevan | well I will commit the test | ||
autrijus | then use that type in the mmd | ||
but yeah, just commit the test | |||
stevan | I dont /need/ it | 02:07 | |
I would just /like/ it :) | |||
autrijus | :) | ||
stevan | so how useful to you is this Meta-Model stuff mugwump and I are doing | 02:09 | |
autrijus | extremely | ||
stevan | ok | ||
good | |||
its fun | |||
meta-meta-hacking :) | |||
autrijus | :) | ||
stevan | I actually now have a reason to read my metaclass book | 02:10 | |
autrijus | without it I can't delta with parrot and nudge leo to fix things :) | ||
and I'll probably backport it to Class.hs | |||
down to 66 failed, 7 unexpected success | 02:11 | ||
crysflame | heh | 02:21 | |
you woke wilx up | |||
that's just.. cool | |||
not for wilx but still :) | |||
stevan | it must have sounded like wilx's computer was going nuts too | 02:25 | |
all those notices one after the other :) | 02:26 | ||
oh autrijus, one other request if you please :) | 02:27 | ||
I need some way to identify objects as unique | |||
=:= would be nice | |||
but baring that | |||
maybe some kind of hex address like perl5 does | |||
and if thats not possible, I can hack something myself for now | 02:28 | ||
crysflame | should all instances of a singleton object identify as the same unique object? | 02:30 | |
stevan | yes | ||
that is the definition of a singleton really | |||
stevan goes off to read more of his metaclass book :) | 02:31 | ||
autrijus++ | |||
stevan dreams of a day when he can code /only/ in perl6 :) | 02:32 | ||
mugwump | and Haskell! :) | 02:35 | |
autrijus | stevan: chaining.t should now pass. I'm smoking to make sure I didn't break things before I commit | 02:40 | |
mugwump | chain smoking! | 02:44 | |
crysflame remembers the [email@hidden.address] debate fondly | 02:45 | ||
mugwump | summary, crysflame ? | ||
or a case of "you had to be there sitting on the sidelines" ? :) | |||
crysflame | "smoking is bad" | 02:46 | |
"it's a pun, laugh | |||
"no! i refuse to laugh" | |||
end summary | |||
use.perl.org/article.pl?sid=01/02/19/1321228 | 02:47 | ||
"After a small dispute over the naming scheme, the 'smokers' list was renamed to 'daily-build' instead. 'smokers' was retained as an alias, however. " | |||
"Of course, as with all good ideas, it was nearly drowned out by lots and lots of trivial bickering. Schwern had called the mailing list [email@hidden.address] and the smoke testing software SmokingJacket. This produced objections from non-smokers and recovering smokers, and started a long and tedious objection - counterproposal cycle. Eventually, the list was given an alias of [email@hidden.address] | 02:48 | ||
officially, the list is daily-build with an alias smokers@. | |||
mugwump | I love the title of that use.perl.org article - "Help Smoke Camels" | 02:49 | |
mugwump is a sucker for|of clove cigarettes | 02:53 | ||
autrijus | stevan: you could've used | 02:58 | |
$_foo3 =:= $_foo2 =:= $_foo1 =:= $foo | |||
and anyway, =:= is there now. | |||
committing | |||
mugwump | so, does 7 =:= 7 ? | 03:00 | |
autrijus | sure. | ||
all pure values are identical to themselves. | |||
mugwump | this implies some distinction between pure things and complex things | 03:01 | |
autrijus | sure. one can be written to. | ||
mugwump | the reason I ask is it makes an important difference when writing the Set class | ||
but does "7" =:= 7, say? | 03:02 | ||
autrijus | woot, chaining.t all passes | ||
pugs> "7" =:= 7 | |||
bool::false | |||
you can try it for yourself :) | |||
mugwump | :P | ||
mugwump svn up's | |||
So, anyway, I was contemplating the difference between a Hash and a Map | 03:03 | ||
autrijus | in haskell, Hash is destructive, Map is not | ||
mugwump | thinking, a Hash is a Map where the keys must be stringifyable, and no two objects that stringify to the same thing can be used for different keys | 03:04 | |
Whereas a Map is where the object's uniqueness is the key | |||
ie, Map is to =:=, as Hash is to == | |||
or eq | |||
Which leads me to ponder whether a Map *can* be implemented in terms of a Hash | 03:06 | ||
autrijus | hm. Map requires Ord | 03:07 | |
(which implies Eq) | |||
and Hash requires a (key -> Int32) | |||
mugwump | You sort of need that Map-ness to implement a set.. | ||
autrijus | (which doens't imply anything) | 03:08 | |
mugwump | ok, so a hash only requires a hashing method, not stringify? | ||
autrijus | right. | ||
mugwump | Then it could still use =:= on the key | 03:09 | |
And just like you can have two entries in a hash that hash to the same value, you could have two keys that stringify to the same value if they are unique objects | |||
autrijus | sure. | ||
but you need a general (Object -> Int32) thing first | 03:10 | ||
mugwump | However, that raises the issue of how you refer to those entries. You can't just pull them by string anymore | ||
Object -> int32 is easy, just use the pointer address and don't tell anyone (or some other useless identifier) | |||
autrijus | well then, you can pull them out by their memory address ;) | ||
mugwump | no, because that's the hash value, which is useless for pulling values out from a user interface point of view | 03:11 | |
This has the implication of losing one trick - returning strings that are actually objects with a stringify method | 03:12 | ||
as used by, say, URI | |||
You would have to explicitly stringify the use | |||
autrijus | right. | 03:13 | |
mugwump | so, what about tacking 'out of band' stuff onto strings | 03:15 | |
eg my $foo = '0' but true; | |||
is that a pure and simple scalar, or a deviant? | |||
mugwump starts up his shiny new pugs build | 03:16 | ||
or is it simply a syntax error | 03:17 | ||
mugwump hmms | |||
autrijus | "0 but true" is always an Int object | 03:18 | |
unlike "0" which is an int value | |||
mugwump | right | 03:19 | |
mugwump makes a start on t/operators/identity.t | 03:22 | ||
putter | Hi folks. I've been porting the Perl6::Rules test files to (current) p6. | 03:28 | |
It's time for a checkin. Other eyes, time passing, and not sure I'll be able to work on it tomorrow. | |||
But I can't actually run any of it. My cvs-ghc HEAD simply isnt building, so rules are still a nogo. | 03:30 | ||
autrijus | check them into t/rules/Disabled first? | ||
putter | So I was thinking of t/rules/Disabled/from_perl6_rules. Comments? | ||
;) | |||
autrijus | sure, that worksforme | 03:31 | |
putter | will do. | ||
autrijus | we're close to 5000 tests :) | ||
putter | :) | ||
well, here come another 5k, though almost all of that is unicode. | 03:32 | ||
autrijus | wow. | ||
autrijus { for -> $impact {} } | 03:33 | ||
putter | unfortunately, it was ancient (apr '04), so the p6... wasn't. | 03:34 | |
autrijus | we're down to a respectable 32 failures in 11 tests | 03:37 | |
crysflame | happy r3000 | 03:39 | |
autrijus | :) | 03:40 | |
stevan | autrijus: should I update the changelog? | 03:41 | |
or wait a little longer | |||
autrijus | stevan: please do update it | 03:42 | |
no major features is planned before 6.2.3. | |||
we already delayed for one week to get classes and rules in :) | 03:43 | ||
stevan | excellent | ||
autrijus | what's left is fixing the 7 or so regressions | ||
and ship :) | |||
putter | the tests required extensive rewriting. I expect some of them are buggy. ah well. | ||
autrijus | putter: it's important to get started :) | 03:44 | |
putter | *nod* | ||
autrijus | stevan: also, if you have some time, try look into why golf.t is failing | ||
it may be the golf script themselves are bad. | |||
not sure. | |||
bbl. :) & | |||
stevan | ok | 03:45 | |
stevan just ate a handful of chocolate covered espresso beans :) | |||
I should be good for a few hours | |||
putter | ok, thanks folks. good night. | 03:47 | |
stevan | 'night putter | ||
f0rth | hello | 03:58 | |
stevan | hullo | ||
crysflame | hi, f0rth | ||
stevan | crysflame: should that be f0rth, hi | 03:59 | |
:) | |||
crysflame | heh | ||
f0rth | switched to wrong channel to test bot ^^" | 04:00 | |
stevan | autrijus: oh, I almost forgot | 04:03 | |
classes seems to be file scoped | |||
mugwump | ouch | 04:04 | |
stevan | so class defined in MyClass.pm is not available when you use MyClass; | ||
mugwump: yeah, its a bugger | |||
mugwump: BTW - my metaclass book is proving helpful,... although they are only talking about meta-classes,.. not meta-meta classes | 04:05 | ||
but it is helping me get my head around this more | |||
mugwump | the great thing is that we can actually start at either the M3 or M2 layer | 04:09 | |
stevan | mugwump: I would like to get what we have already done into real objects | ||
then maybe see what we have | 04:10 | ||
mugwump | ok. I'm just in the process of releasing this site I've been working on today and yesterday, should clean up this week's professional work :) | ||
stevan | btw - are you planning on building a set class? | ||
mugwump | yes | ||
stevan | ok | ||
good | |||
scw | revdiablo: thanks for updating debian/ :) I was totally occupied these days | 04:11 | |
revdiablo | scw: no problem, I only built the debian package 10 times before noticing. :) | 04:13 | |
stevan | autrijus: changelog updated :) | 04:25 | |
hmmm, it seems like objects are destroyed a little too quickly at times | 04:53 | ||
writing a test | |||
actually maybe not | 04:57 | ||
hmmm | |||
crysflame | write the test anyways | 05:01 | |
stevan | crysflame: its not the issue | ||
its very hard to isolate this | |||
however @array_of_foo_objects[0].bar() does not work | 05:02 | ||
but I suspect that is a known issue | |||
crysflame | huh | 05:03 | |
stevan | it is probably related to the method chaining issue | ||
(which is mostly fixed) | |||
it is not easy to know what @array_of_foo_objects[0] will be,... and therefore hard to find the compatible &bar method | 05:04 | ||
Khisanth | in "- return map {.4.} sort {.3.} grep {.2.} map {.1.}" from svn.openfoundry.org/pugs/modules/PORTING_HOWTO what are all those .s for? | 05:08 | |
mugwump umms and ahhs about whether to use junctions or hashes to implement the Set class | 05:17 | ||
stevan | mugwump: junctions would be cooler, but hashes might be easier | 05:33 | |
stevan goes off to sleep, back in ~8 hours & | |||
f0rth | and now ext/Set/Makefile.PL is broken? | 05:37 | |
mj41 | *** Error: Can't locate Perl6/MakeMaker.pm in @INC | 05:46 | |
f0rth: r3051 fixed? | 05:59 | ||
f0rth | yes, fixed :D | 06:01 | |
06:43
chady_ is now known as chady
|
|||
gaal | ./pugs.exe -e 'my @a = <1 2 3 4>;map { $_ += 1 }, (@a)' | 07:28 | |
*** Error: Can't modify constant item: VNum 2.0 at -e line 1, column 25-33 | |||
this is a bug, isn't it? map's $_ should be rw like for's, no? | |||
07:46
Aankh|Clone is now known as Aankhen``
|
|||
osfameron | (Jonathan Worthington)++ # Win32 pugs build | 08:30 | |
yay, pugs interpreter doesn't interpret each statement in an eval! | 08:45 | ||
my $x=123 | |||
say $x; # still 123 | |||
mj41 | congratulations ... 737/4914 subtests failed, 85.00% okay. | 08:58 | |
WinXP, r3051 | |||
history ... r1600 - 1308/4135 subtests failed, 68.37% okay. | 09:03 | ||
osfameron | Hmmm, tried to build pugs (WinXP nmake, GHC 6.4 binary, no parrot) and get | 09:04 | |
makefile(414) : fatal error U1087: cannot have : and :: dependents for same target | |||
Juerd | Perhaps try cygwin, with a real make? | 09:09 | |
mj41 | my nmake is ok .... xrl.us/ff9b | 09:10 | |
osfameron | Juerd: you don't want pugs to run on Windows natively? | ||
Juerd | I personally don't really care :) | 09:11 | |
osfameron | GNU Make version 3.78.1 also fails with makefile:307: *** multiple target patterns | 09:15 | |
mj41 | parrot only with mingw32-make and pugs only with nmake :-) | 09:18 | |
osfameron curses his lack of make-fu | |||
ah | |||
f0rth | I am playing Net::IRC and found that 'normalize (split " ", $event<rest>)[0]' on line 147 is incorrect now | 09:32 | |
Juerd | f0rth: [...][0] | ||
f0rth | normalize((split " ", $event<rest>)[0]) is ok | ||
Juerd | Oh, wow, did that break? | 09:33 | |
Juerd upgrades | |||
I'll have pugs built an an hour :) | |||
f0rth | build 7 times today until now :p | 09:35 | |
a question from logbot.p6, the result of rx:P5/^\001ACTION (.*)\001?$/ includes the last \001, is that correct? | 09:43 | ||
or removing the "?"? | 09:44 | ||
Juerd | It is correct, I think | 09:45 | |
CTCP is enclosed in \cA\cA, but the second is sometimes not sent by stupid clients | 09:46 | ||
f0rth | so that's the reason, thanks :) | 09:47 | |
the second one is always printed now | 09:52 | ||
autrijus | f0rth: want committer bit to fix this? | 10:05 | |
f0rth | I always generate C-like code :) | 10:11 | |
autrijus | that's fine :) | ||
Juerd | f0rth: Let fixing that up to others then :) | 10:12 | |
A simple "XXX - restyle" is a good indicator | |||
autrijus | fixed, btw. | ||
Juerd | autrijus: Why do arrayrefs .perl-ize as \()? | 10:13 | |
autrijus | Juerd: no good reason at all | 10:14 | |
10:14
broquaint_ is now known as broquaint
|
|||
Juerd | autrijus: Can it be []? That's somewhat (a lot) easier to read, especially when combined with () :) | 10:14 | |
webmind | ([7,8,0], [4,5,6], [1,2,3]); ? | 10:15 | |
Juerd | rather than (\(7,8,0), \(4,5,6), \(1,2,3)) | 10:16 | |
autrijus | Juerd: I can do that, but you have to fix the failing tests that tests .perl for me :) | ||
Juerd | autrijus: Sure | 10:17 | |
autrijus: { x => $x + $dx, y => $y + $dy } is parsed as a sub - on purpose, or bug? | |||
autrijus | a bug. tested, even | 10:19 | |
Juerd | There are exactly two occurrences of \() with .perl, in tests | ||
So that's doable :) | |||
autrijus | x => 3+4 currently parses a (x=>3)+4 | ||
Juerd | Ahh | ||
So adding parens to ($x+$dx) oughta do the trick for now? | |||
autrijus | yeah | ||
Juerd | (I'm avoiding "hash" now) | 10:20 | |
autrijus | and ($y+$dy) | ||
ok, [] prettification is in | |||
r3056 | |||
Juerd | hash is .perl-ized as \(..., ...) # stub? | ||
Thanks | |||
autrijus | np | 10:22 | |
Juerd | Hm, no, it's not the hash that's .perl-ized like that. Weird. | ||
autrijus: Same suggestion for hashes: {} :) | |||
And pairs: => | |||
So that .perl is actually perl code :) | 10:23 | ||
autrijus | ok, ok. | ||
Juerd | I'm currently mixing arrays, hashes and pairs | ||
And only the past few minutes I've began to understand that the output isn't wrong at all :) | |||
Just a little surprising | |||
(Though I don't know if an arrayref can be used as pair or hash) | 10:24 | ||
autrijus | all done. committing | ||
(you'll have much more to fix!) | |||
r3057. please fix away :) | 10:27 | ||
Juerd | Will do | 10:29 | |
autrijus: I'm getting weird results for nested loops - any attempt to shorten the code unbreaks the code | |||
Or, perhaps not | 10:30 | ||
While you're fixing stuff, fix my brain too please :) | |||
autrijus | sure, send the source of your brain to p6c | ||
I'll see what I can do | |||
Juerd | autrijus: I have a case of nested for loops, the inner body being { say ...; ... and next; }, somehow the say isn't executed | 10:36 | |
Ahh | 10:37 | ||
autrijus: if I have 4 nested for loops, "next" in the 4th operates on the 3rd | |||
autrijus | .. wtf? | 10:38 | |
check in a test please :) | |||
Juerd | First I'm recompiling pugs and fixing existing tests | ||
autrijus | "make unoptimised" is your friend, btw. | ||
Juerd | ok | 10:39 | |
./pugs -e'for 1..3 -> $a { say "a = $a"; for 1..3 -> $b { say "b = $b"; next } }' | 10:40 | ||
Wow | 10:42 | ||
There isn't a single test that tests hashes or arrays based on .perl's output | |||
There's one occurrence of \(, and that's for a junction | |||
autrijus | Juerd: fixed... the bug is caused by one less indentation level than needed | 10:53 | |
a simple >> in vim fixed it ;) | |||
isn't significant whitespace great? | |||
Juerd | No! | 10:57 | |
Well, significant whitespace is okay. Significant indentation is not :) | |||
autrijus | and next.t now passes :) | 10:59 | |
Juerd | Yep :) | 11:00 | |
a[f[k[p<[ulqv]>?|g<[blchm]>?|l<[qhmr]>?|q<[uvmrw]>?]?|b[g<[lchm]>?|c<[hdi]>?|h<[lmdin]>?]?|g[l<[pqhmr]>?|c<[hdi]>?|h<[mdin]>?|m<[qrins]>?]?|l[p<[uqv]>?|q<[uvmrw]>?|h<[cmdin]>?|m<[rins]>?|r<[vwnsx]>?]?]?|b[g[k<[plq]>?|l<[pqhmr]>?|c<[hdi]>?|h<[mdin]>?|m<[qrins]>?]?|c[h<[lmdin]>?|d<[iej]>?|i<[mnejo]>?]?|h[l<[kpqmr]>?|m<[qrins]>?|d<[iej]>?|i<[nejo]>?|n<[rsjot]>?]?]?|g[k[p<[ulqv]>?|l<[qhmr]>?|q<[uvmrw]>?]?|l[p<[uqv]>?|q<[uvmrw]>?|h<[cmdin]>?|m<[rins]>?|r<[vwnsx]>?]?|c[ | 11:03 | ||
YEEHAW | |||
First part works. | |||
Now to create 25 of these | |||
How dependent one can be on not-flattening, working next and handy debugging tools (pretty .perl) amazes me | 11:04 | ||
autrijus | ah. right. charclass now works in Pugs's bundled pge | ||
Juerd | The same thing 2 days ago didn't work *at all* | ||
autrijus | :) | 11:05 | |
Juerd | I had to recode some parts to avoid gather/take though | 11:06 | |
(I had written this months ago) | |||
autrijus | say, is gather/take coro-like, or not? | ||
Juerd | Not really | ||
gather returns a list | |||
A list of whatever inner "take" collected | |||
@foo = gather { for 1..5 { take } } | 11:07 | ||
equals @foo = 1..5 | |||
This way you can avoid my @foo; for 1..5 { push @foo, $_ } | |||
Which has @foo redundant | |||
Which for some people, including me, feels unclean | |||
wolverian | it's certainly a coroutine (take is just a yield) | ||
Juerd | wolverian: It doesn't have more than one entry or exit point | 11:08 | |
'take' simply pushes | |||
It doesn't terminate anything | |||
Every gather block has an implicit array, onto which take pushes | |||
wolverian | hmm. but it can be implemented as such. after taking, gather would yield itself back to the user code. | ||
s,after taking,after each take, | 11:09 | ||
Juerd | It shouldn't do that. | ||
If you want that, use a coro. | |||
wolverian | I don't see a practical difference. | ||
Juerd | This is for building lists. A way to use statements instead of expressions | ||
autrijus | luqui seems to want gather/take vs Lazy list to act as coro. | ||
i.e. gather is a generator | 11:10 | ||
wolverian | that seems sensible. | ||
Juerd | `gather` is a `map` that has no input list, and can take more than once | ||
autrijus: When did pugs start, by the way? | |||
wolverian | Juerd: I know what it is, and what I described implements that, with coroutine semantics. | ||
at least as far as I can see. :) | |||
autrijus | Juerd: 100 days ago | ||
wolverian | (which isn't really far at all.) | ||
Juerd | wolverian: Then I don't understand coroutines well enough | ||
autrijus: Was that before or after feb 4? | |||
autrijus | feb 1st | 11:11 | |
Juerd | I wrote the script I'm refitting that day | ||
It's close to its first run ;) | |||
wolverian | Juerd: right. both the { ... } given to gather and gather itself are coroutines, to be exact. when the user code calls take, execution returns to gather, which pushes the arg (think of take as a return) to the list being gathered. (er, array..) then gather yield()s back to the user code doing the take; the execution continues immediately after the take. | 11:12 | |
Juerd | Ah | 11:13 | |
I don't see why that's useful | |||
It seems more complex than simply pushing onto an implicit array :) | 11:14 | ||
wolverian | sure. I don't know either, except maybe take() can be implemented more cleanly this way. | ||
Juerd | It's taking a hell of a lot of time, but it appears to WORK :) | 11:28 | |
Juerd restarts it | tee rule | |||
Don't want to wait for building the rule more than once (takes .5 seconds in p5) | |||
autrijus: How can it build a huge rule, recursively, with constant memory usage? | 11:30 | ||
H | |||
m | |||
I'm probably better off using an optimized build for these | 11:31 | ||
this | |||
I just realised that in Perl 6, you don't have to prebuild the rule | 11:34 | ||
And can even go into unlimited depth of words to be found | |||
But that's an exercise for much later | |||
Juerd wonders how join.t was wrong | 11:40 | ||
autrijus | join("|", [1,2,3]) | 11:42 | |
that [] doesn't flatten, no? | |||
please don't say it flattens now :) | |||
oh btw: | |||
* (a => 3+4) is now parsed as (a => (3+4)), not (a => 3)+4. | |||
r3068 | |||
Juerd | autrijus: No | 11:43 | |
autrijus | so that's how it was wrong | ||
it was assuming *[1,2,3] | |||
Juerd | autrijus: Although it's entirely possible that join, the function itself, flattens arrayrefs | 11:44 | |
I don't think there's spec on this | |||
autrijus | it's not specced as such in Rod's, iirc | ||
Juerd | I'm not asking p6l either. Flatless is good here. | ||
And flattening with join, but not other functions, leads to surprises | 11:45 | ||
autrijus | down to 14 fails. | 11:46 | |
Juerd | Wow | 11:47 | |
impressive, autrijus | |||
autrijus++ | |||
autrijus | 13 now. | ||
in 4 tests | |||
Juerd | I wonder if when this matrix.p6 fun is finished, I have the largest Perl 6 rule ever created ;) | 11:49 | |
If it ever finishes, that is :) | |||
scook0 | autrijus: may I pick your brain for a bit? | 11:51 | |
autrijus | scook0: yes? | ||
scook0 | I have a bunch of pugs-internals questions that I've been accumulating... | ||
about Pads: | |||
ajs | morning all. Juerd, do you ever sleep? :) | 11:52 | |
scook0 | they map from names to /lists/ of refs, right? | ||
Juerd | ajs: Yes. Think timezones. | ||
scook0 | is that for multisubs, where the same sub name maps to multiple sub objects? | ||
Juerd | Office time :( | 11:56 | |
autrijus | scook0: yes and yes. | ||
scook0 | autrijus: cool, that's what I thought | ||
autrijus | scook0: I'm been thinking to split a Pad entry into single and multiple variants | ||
MkPad !(Map Var ([(TVar Bool, TVar VRef)])) | 11:57 | ||
becomes | |||
scook0 | yeah, the whole list thing is a bit confusing if it only gets used for one purpose | ||
autrijus | data Pad = MkPad !(Map Var PadEntry) | 11:58 | |
data PadEntry = MkEntry (TVar Bool, TVar VRef) | MkEntryMulti [(TVar Bool, TVar VRef)] | |||
yeah. but it's not critical, so is low priority | |||
Juerd | I HAVE THE RULE | ||
autrijus | down to 3 failing tests. | ||
scook0 | well, if I start feeling confident about /writing/ Haskell I might give it a try sometime | ||
autrijus | Juerd: YOU RULE | ||
has $.source is rw; | 11:59 | ||
scook0 | actually, that reminds me of another question about confusing lists | ||
I'm not sure why SlurpLimit needs to be a list | |||
Juerd | juerd.nl/bigrule.txt | 12:00 | |
firefox cowardly refuses to display a 71995 character line. | |||
scook0 | if I'm not mistaken, SlurpLimits are never given more than one entry | ||
SlurpLimits are only used for subs with a finite number of slurpy scalars and no slurpy array, right? | 12:01 | ||
Juerd | autrijus: I'll check in matrix.p6, though it's far from completion or prettiness | ||
wolverian | Juerd: it displays it fine here. | ||
autrijus | scook0: .assuming will impose multiple limits | 12:02 | |
wolverian | Juerd: what does that rule do? :) | ||
autrijus | because you can assume (curry) multiple times | ||
scook0 | ah | ||
12:02
chady is now known as chady_
|
|||
autrijus | mmm | 12:02 | |
"Pugs now powers the Matrix" | |||
scook0 | I'll have to write that in the docs then | ||
Am I correct in that they only apply to subs that take a finite number of slurpy scalars? | 12:03 | ||
Juerd | wolverian: See svn commit comment that will appear soonish | 12:04 | |
scook0 | Slurpy array params seem to nuke the SlurpLimit | ||
Juerd | autrijus: Should it run faster with parrot? | ||
scook0 | because slurpy arrays can take any number of args | ||
Juerd | wolverian: 3070 | 12:05 | |
wolverian | waiting for svnbot6 to pick it up. | ||
Juerd | If it displays the comment verbatim entirely, it'll flood the channel :) | 12:06 | |
autrijus | scook0: yes, and yes. | 12:07 | |
Juerd | It does. | ||
scook0 | autrijus: thanks | ||
autrijux: My next question is: what's the difference between (Syn "=>" ... ) and (App "&infix:=>" ... ) ? | 12:08 | ||
is the Syn form obsolete? | |||
wolverian | Juerd: how long does it take perl5 to generate the rule? | 12:09 | |
oh. the second includes that time. | 12:10 | ||
Juerd | imcc_compile_file: couldn't find 'library/Data/Escape.imc' | 12:11 | |
autrijus | scook0: no, both are in use | ||
scook0: I think we should unify to one of them, though | |||
there's no difference. | |||
Juerd | wolverian: svn up to see matrix.p6 | ||
eh | |||
wolverian: svn up to see matrix.p5 | 12:12 | ||
autrijus | Juerd: should be fixed now; try again | 12:13 | |
Juerd | I have to go to the office now, for real :( | ||
I'll try later | |||
(Though you can try it yourself too if you want) | 12:14 | ||
autrijus | k. | ||
Limbic_Region | morning all - was just catching up on what looked like an exciting day on p6.l | 12:15 | |
scook0 | autrijus: At the moment, if you call a sub that has multiple slurpy arrays, Pugs deliberately binds the first one normally, and makes all the rest empty | 12:16 | |
Is this proper behaviour, or is it just a quirk of the current implementation? | 12:17 | ||
autrijus | no, that's specced. | ||
i.e. correct | |||
scook0 | ok | ||
actually, are slurpy hash params supposed to be working? | 12:18 | ||
I ask this because they appear to be implemented, but they don't seem to actually work | |||
Is this just because there aren't any tests for them? | |||
autrijus | pugs> sub foo (*@_, *%x) { say %x } foo( c => 3 ) | 12:20 | |
c 3 | |||
worksforme | |||
er, or not. | |||
probably not. | |||
yeah, it's very broken. tests welcome :) | 12:21 | ||
mark them as :todo<bug> for now | |||
scook0 | ok | ||
autrijus: I think that's all the questions I had written down -- thanks :) | 12:23 | ||
autrijus | :) | 12:26 | |
ok. in that case... preflight will start in a few minutes! | |||
cognominal | autrijus: is this difficult to support the sub prefix:<OPNAME> syntax in pugs? | 12:35 | |
autrijus | cognominal: it's quite trivial | 12:36 | |
but I'm in preflight. :) write tests | |||
cognominal | I am still in larval stage ofr haskell :( | 12:37 | |
autrijus | tests doesn't need haskell-fu :) | 12:40 | |
cognominal | haskell-fu? | 12:44 | |
Shillo | Hullo, folks! | 12:47 | |
12:48
Hoppy is now known as [nz]Hoppy
|
|||
autrijus | please "make test" :) | 12:51 | |
preflight #1: pugscode.org/Perl6-Pugs-6.2.3-pre1.tar.gz | |||
Preflight #1: pugscode.org/Perl6-Pugs-6.2.3-pre1.tar.gz | pugscode.org <Overview Journal Logs> | pugs.kwiki.org | 12:51 | ||
autrijus | autrijus.org/tmp/changes-6.2.3.html # primitive changelog | 13:01 | |
stevan | *sniff* *sniff* | 13:13 | |
ahh I love the smell of smoking Pugs in the morning | |||
autrijus | hey stevan. :) | 13:16 | |
stevan | hey autrijus | 13:18 | |
I see we are in preflight | |||
autrijus | yes. | 13:19 | |
stevan | I am building now | ||
autrijus | Config-Tiny doesn't pass tests | ||
stevan | ok | ||
I will look at it | |||
autrijus | stevan: also please check: | 13:23 | |
t/10_unix_test.t 101 10 9.90% 41 82-90 | |||
t/20_win32_test.t 165 1 0.61% 4 | |||
(that's File::Spec) | |||
stevan | ok | ||
autrijus | aw | 13:24 | |
t/entities.t 9 3 33.33% 2-4 | |||
and LWP::Simple: | 13:25 | ||
*** Error: Unhandled/unknown proxy settings: "": NonTerm (MkPos "/home/autrijus/work/dist/pugs/blib6/lib/LWP/Simple.pm" 169 7 169 76): NonTerm (MkPos "/home/autrijus/work/dist/pugs/blib6/lib/LWP/Simple.pm" 62 13 62 48) at t/live.t line 77, column 14-24 | |||
t/getprint.t 1 256 3 0 0.00% ?? | |||
t/live.t 1 256 29 54 186.21% 3-29 | |||
and your P::E::P: | 13:26 | ||
t/basic.t 1 256 5 6 120.00% 3-5 | |||
t/basic_html.t 1 256 3 2 66.67% 3 | |||
t/complex.t 1 256 3 2 66.67% 3 | |||
that's all there is | 13:33 | ||
stevan | ok, build donw | ||
i will attack these right now | |||
autrijus | stevan++ | 13:36 | |
I'll brb | |||
stevan | oh, very odd | 13:37 | |
Juerd | autrijus: Should fixed pugsbugs tests be moved to pugsbugs/fixed? | 13:40 | |
autrijus | Juerd: no, they should be moved to other t/ directories | 13:42 | |
stevan | autrijus: this is one of the Config::Tiny errors | ||
pugs -e '"hello " ~~ rx:perl5/^(.*?)\s(.*)$/; my %h; %h{$0} = $1; say %h.keys; say %h<hello> ?? "true" :: "false";' | |||
prints: hello \n true | |||
%h<hello> is the match (\MkMatch {matchOk = True, matchFrom = 6, matchTo = 6, matchStr = "", matchSubPos = [], matchSubNamed = {}}) | 13:43 | ||
Juerd | autrijus: ok | 13:44 | |
stevan | autrijus: is that correct behavior? | ||
hey nothingmuch :) | 13:45 | ||
nothingmuch | hola | ||
stevan | autrijus: Config::Tiny has been fixed | 13:50 | |
moving onto File::Spec | |||
guten morgen iblech | 14:03 | ||
iblech | Should new tests be TODOed currently? | 14:05 | |
stevan | iblech: what do you mean new tests? | 14:09 | |
iblech | stevan: I wanted to write a test for %*ENV.exists(), as it doesn't work ATM | ||
stevan: Should I TODO it? | |||
stevan | hmmm, I would say yes since we are in preflight | 14:10 | |
iblech | ok | ||
stevan | but i will leave the final descision to autrijus | ||
iblech | :todo<bug>? | 14:11 | |
cognominal | how comes "my $x; my $x" succeed in intereactive pugs but fails in a test? | ||
anyway it should fail because , "it's illegal to declare $x twice in the same scope." | |||
PerlJam | cognominal: is it illegal? If so, why? | 14:12 | |
autrijus | iblech: no, don't todo it. | 14:13 | |
because it's, like, fixed. | |||
committing | |||
iblech | autrijus++ :) | ||
cognominal | # L S<o4/The Relationship of Blocks and Declarations> | ||
stevan | autrijus++ | ||
iblech++ | |||
cognominal | it is stated verbatim there | ||
autrijus | cognominal: yes, I noticed. write a test with todo<bug> | 14:14 | |
PerlJam | cognominal: ah, so it is. | ||
I was thinking the perl5 behavior would continue on that one | |||
autrijus | env.t all passes :) | ||
stevan | File::Spec passes | 14:17 | |
autrijus | woot | ||
iblech | FYI, I'm fixing LWP::Simple ATM | ||
stevan | I tried to fix the Win32 abs2rel bug, but I have not yet had enough coffee, so I left it TODO | 14:18 | |
autrijus | k. | ||
stevan | moving onto P::E::E | ||
s/E$/P/ | |||
iblech | Hm... connect $h, 8086 works fine, but connect $h, $p (where $p == 8086), does not ("pugs: connect: does not exist (Connection refused)") | 14:22 | |
That's weird, as I use variables for the port numbers in Net::IRC, too, and there, they work fine... | 14:23 | ||
autrijus | it worksforme. | 14:24 | |
iblech | Yeah, and it works in the interactive shell, too, w/o problems | 14:25 | |
But not in _send_request of LWP::Simple... investigating | 14:26 | ||
nothingmuch | iblech: apropos _send_requst, shouldn't that be 'http_proxy' and not 'HTTP_PROXY'? or at least both? | ||
iblech | nothingmuch: I didn't write the original code, but you're certainly right. Fixing | 14:27 | |
nothingmuch | oh crap, now I se what my problem is | 14:28 | |
svn up loop was broken | |||
autrijus | iblech: I know. | ||
fixing. | 14:29 | ||
iblech | excellent. :) | ||
nothingmuch | time for parrot to be installed too | ||
cognominal | autrijus: wagner.elixus.org/~autrijus/svk-overview.png ==> 404 | ||
stevan | autrijus: did you see my note about the match? | ||
autrijus | stevan: yeah, same problem | 14:30 | |
cognominal: mv to autrijus.org/svk-overview.png | |||
the reason is | 14:31 | ||
$0 is a match obj | |||
match obj numifies to number of submatches | |||
I'm making $0 etc into stringified match obj now. | |||
nothingmuch | oi, parrot won't make -j3 | ||
autrijus | not sure if it's according to spec | ||
nothingmuch | *sigh* | ||
autrijus | but certainly less painful | 14:32 | |
committed. please test to see that it works now | |||
stevan: you may not need "$foo" anymore; $foo would do | 14:33 | ||
food & | |||
nothingmuch goes to get pita + labane while things are building | |||
Limbic_Region | mmmm food | 14:34 | |
cognominal | what are all these empty merges when I do a svk push? | 14:36 | |
iblech | autrijus: connect() works now :) | 14:37 | |
clkao | eek | ||
stevan | Pod::Event::Parser fixed (that pesky $0 again) | 14:39 | |
Limbic_Region wonders if we will jump from version 6.28 to 6.2831 since pmichaud has already given us rules and grammars | 14:41 | ||
kungfuftr | where's the roadmap again? | 14:43 | |
PerlJam | kungfuftr: svn.perl.org/perl6/pugs/trunk/docs/...rview.html | 14:45 | |
iblech | kungfuftr: docs/01Overview.html | ||
PerlJam | search for "roadmap" | ||
Limbic_Region: nah, I don't think so ... rules and grammars hasn't been vetted enough | |||
kungfuftr | ta | ||
stevan | Limbic_Region: we also dont have full classes and traits | 14:46 | |
(we dont have traits at all actually) | |||
(or rather Roles) | |||
iblech | cognominal: There's no local() in Perl 6, it's called temp() instead, and one is allowed to use temp() on a variable multiple times | 14:48 | |
cognominal | my bad | 14:49 | |
are you sure about the "multiple times"? | |||
iblech | yes | ||
PerlJam | cognominal: you *must* be able to temp multiple times. | ||
cognominal | I am sure multiple times are not allowed on lexicals | ||
PerlJam | That's the prime benefit | ||
cognominal | on the same scope? | 14:50 | |
PerlJam | cognominal: sure you can temp a lexical multiple times | ||
Unless this is one of the behaviors that will *really* surprise me with perl6 | |||
Limbic_Region | stevan - think I wasn't clear | 14:51 | |
6.28 to 6.2813 implied that we did get full classes and traits | 14:52 | ||
we would just be skipping over 6.281 (rules and grammars) | |||
cognominal | PerlJam: so I am sure that "my $x; my $x" is an error, but currently it does not parse as a test, but it works on interactive pugs | 14:53 | |
Limbic_Region | or rather, was what I was trying to imply | ||
PerlJam | cognominal: It doesn't say in the synopses whether or not you can temp a var multiple times in the same scope. I can't even find an example that implies it. | ||
cognominal | how should I test. | ||
iblech | cognominal: That's because you wrote $x in the test description, which was double quoted. (Fixed.) | ||
cognominal | PerlJam: in S04: (It's illegal to declare $x twice in the same scope.) | 14:54 | |
PerlJam | cognominal: temp isn't a declaration | 14:55 | |
cognominal | but the only example given is a lexical declaration | ||
PerlJam | state $x; state $x should be an error too (I haven't looked if there's a test or not) | 14:56 | |
iblech | PerlJam: It's tested in cognominal++'s t/var/var.t | 14:57 | |
cognominal | how much of smart matching is implemented? | 14:59 | |
iblech | IIRC $str ~~ rx/.../ and $object ~~ Class (but maybe other things, too) | 15:00 | |
Juerd | My local repository is very fucked up | 15:03 | |
I'm starting over | |||
(svn-- # refuses to let me correct mistakes) | |||
cognominal notes thhat iblech has a ipv6 address | 15:10 | ||
iblech | cognominal: Yes :) See tunnelbroker.as8758.net/ | 15:11 | |
BTW, it'd be great if I could connect() to IPv6 hosts *hint* :) | 15:12 | ||
(Actually, POE::Component::IRC has the same problem last I checked, therefore iblechbot is still IRCing over IPv4.) | |||
autrijus | stevan: so, module tests all work now? | 15:13 | |
kungfuftr | iblech: you need an IPv6 server to connect to? | 15:15 | |
iblech | kungfuftr: First, I need a tunnel broker, which gives me an IPv6 address. Then I can connect to the IPv6net :) | 15:16 | |
kungfuftr | iblech: ah, you need a tunnel... you in the UK? | ||
iblech | kungfuftr: No, Germany. My tunnel broker is tunnelbroker.as8758.net/. | ||
ingy | hola | ||
gugod++ | 15:17 | ||
stevan | autrijus: yes I think so | ||
ingy | gugod++ | ||
autrijus | cool... rolling preflight #2 | ||
iblech | autrijus: Just checked, yes, all ext/* pass | ||
autrijus | iblech++ stevan++ | ||
kungfuftr | iblech: i have native ipv6 from here: ipv6.glbx.net/ | ||
iblech: ah, they blocking 6667? | 15:18 | ||
iblech | kungfuftr: Native! | ||
autrijus | Preflight #2: pugscode.org/Perl6-Pugs-6.2.3-pre2.tar.gz | pugscode.org <Overview Journal Logs> | pugs.kwiki.org | 15:19 | |
iblech | kungfuftr: Yes, but not 7000, which Freenode's IRC server listen on, too :) | 15:19 | |
kungfuftr | iblech: yup, native | ||
autrijus | in that preflight, var.t will fail, that's expected | 15:22 | |
already fixed in trunk | |||
will still release if that's the only failure seen | 15:23 | ||
(instead of pre3, that is) | |||
iblech | autrijus: t/magicals/env.t fails 7, 10, 11 here (Linux) | 15:26 | |
putter | re pre2, SIGNATURE? | 15:27 | |
find . |xargs grep SIGNA | |||
./README: cpansign -v # optional; see SIGNATURE for details | |||
. | |||
iblech | Oh and BTW, do you know that interactive Pugs forgets class declarations? | ||
autrijus | putter: oh. it's unsigned. will fix in final | ||
putter | k | ||
autrijus | iblech: no, I don't. aww. | 15:28 | |
iblech | It does work when the class declaration and the use of the class is on the same line, e.g. 'class A {} my $a = A.new' | ||
autrijus | iblech: hm, failing 7 means you don't have ./pugs | ||
usually | |||
can you investigate? | |||
iblech | will do | 15:29 | |
cognominal | iblech: getting an ipv6 address was painless | 15:30 | |
kungfuftr will see about offering tunneling | 15:31 | ||
iblech | autrijus: env.t fixed as r3096 (the vars SHLVL and _ were set by bash, and they didn't compare to the env expected, so those two tests failed) | 15:34 | |
But the %*ENV.exists("...") bug is still there | |||
autrijus | hm, it always returns true? | ||
iblech | yes | 15:35 | |
autrijus | attempted another fix. | 15:36 | |
r3097 | |||
iblech | Still doesn't work. If it helps you, defined %*ENV<does_not_exist> works (i.e., returns false) | 15:38 | |
autrijus | hm. did you touch src/Pugs/AST/Internals.hs and rebuild? | 15:39 | |
iblech | No, will do. | ||
autrijus | please do. :) | ||
Forth_ | I've svk sync so~ many times today... | ||
15:39
Forth_ is now known as Forth
|
|||
iblech | Still doesn't work. :( | 15:39 | |
No, wait a sec | 15:40 | ||
works! :) | |||
autrijus++ | |||
autrijus | good. :) | ||
anyone else running a test on preflight #2? | |||
putter | yes. | ||
autrijus | cool. win32? | 15:41 | |
probably need a win32 confirmation before flying | |||
stevan | autrijus: the class in the interactive shell issue iblech is talking about | ||
it also shows up with use My::Class; | |||
putter | sorry. FedoraCore3 x86_64. | ||
autrijus | ah. that's cool too. :) | ||
stevan: yeah, I noticed | |||
stevan | ok | ||
cool | |||
where is the link for preflight #2 BTW | 15:42 | ||
iblech | pugscode.org/Perl6-Pugs-6.2.3-pre2.tar.gz | ||
stevan | nvermind found it | ||
thanks iblech :) | |||
autrijus | I think envClasses needs to be a TVar to avoid this kind of problem | 15:43 | |
basically the env changed by use"" won't propagate back to the caller unless it's a TVar | |||
(because it'd be lexical otherwise) | |||
but it's not for 6.2.3 :) | 15:44 | ||
iblech | autrijus: Found another env bug: Deleting an env var does not propagate to subprocesses (but setting does) | ||
autrijus | what about setting it to '' ? | 15:45 | |
Forth | Is there a way to specify the output encoding writing to file or stdout? | ||
iblech | autrijus: Forget, it does work perfectly fine :) | ||
autrijus | iblech: eh. :) | ||
Forth: no... we don't yet have encoding support | 15:46 | ||
suggestions welcome | |||
we can link against *gasp* ICU | |||
or iconv. | |||
iblech | Ok, 4927 ok, 0 failed, 708 todo, 13 skipped and 0 unexpectedly succeeded on Linux | 15:49 | |
autrijus | cool. I'm booting to win32 to test. | 15:52 | |
Forth | i am running test but not pre2..... | ||
autrijus | Forth: on win32? | 15:53 | |
Forth | yes | ||
autrijus | oh. cool | ||
then I won't need to | |||
putter imagines everyone doing "make unoptimized" to save time, and simple "make" not being tested... | 15:57 | ||
Juerd | I use optimized make more often than unoptimized make. | 15:58 | |
Most of the time, I am in no hurry | |||
2;0 juerd@sxark:~/project/pugs$ ./pugs -BParrot examples/matrix.p6 | |||
pugs: Cannot compile: Syn "{}" [Var "%had",Pos (MkPos "examples/matrix.p6" 26 10 26 17) (App (Var "&infix:~") [Var "$y",App (Var "&infix:~") [Val (VStr "/"),App (Var "&infix:~") [Var "$x",Val (VStr "")] []] []] [])] | |||
What does that mean? | |||
putter | pre2 results (FC3 amd64, unoptimized, external parrot): | 15:59 | |
Failed 3/253 test scripts, 98.81% okay. 5/4921 subtests failed, 99.90% okay. | |||
t/magicals/env.t 11 2 18.18% 7 10 | |||
Juerd | And the other 3? | ||
Corion | I'm compiling the latest svn snapshot on Win32 | ||
putter | t/unspecced/eval_yaml.t 254 65024 2 4 200.00% 1-2 | ||
t/var/var.t 5 1 20.00% 2 | |||
Corion | (Justin Case) | ||
Juerd | Hm | ||
putter | eval_yaml failure is a ghc amd64 bug. | ||
Juerd | Corion: There are a lot of justins here | ||
Corion | Juerd: :) | 16:00 | |
Juerd | Corion: Time and Case are the most mentioned | ||
Forth | oh no~ I forget I don't have parrot install at home | 16:01 | |
osfameron | hmmm, I see r3098 in scrollback | ||
but svn.perl.org/perl6/pugs/ is at 3005 ? | |||
aha, that's a mirror | 16:02 | ||
iblech | osfameron: svn.perl.org is mirrored from the real repository svn.openfoundry.org/pugs | ||
osfameron | ta | ||
Forth | Failed 2/253 test scripts, 99.21% okay. 9/4921 subtests failed, 99.82% okay. | 16:04 | |
from the latest svn | |||
Corion | unlink.t fails with 2 fails (as expected, but should be :todo for Win32 | ||
ninereasons | you could add ':todo<Win32>' to those tests, Corion :) | 16:06 | |
autrijus | Corion: ok, please skip them for win32 | ||
Limbic_Region | Corion - is that even after it has been closed | ||
Forth | and the last line is NMAKE : fatal error U1077: 'C:\WINDOWS\system32\cmd.exe' : return code '0xff' Stop. | ||
autrijus | putter: how does t/unspecced/eval_yaml.t fail? | ||
Limbic_Region | ? | ||
putter | internal error: adjustor creation not supported on this platform | 16:07 | |
Corion | Will fix unlink.t for Win32 | ||
putter | allegedly (fully or partially fixed) in current cvs-ghc... which doesn't build for me at the moment. | ||
(or didn't build for me yesterday... trying again) | 16:08 | ||
osfameron | oooo, pugs is building r3098... | ||
autrijus | putter: ok... I'm going to let it fail for x8664 | 16:09 | |
putter | k | 16:10 | |
Corion | Committed unlink.t fix (r3100) | 16:12 | |
resmoking | |||
autrijus | I guess pre3 is warranted after all ;) | 16:13 | |
Corion | Gah. I was too eager... My fix put too much on :todo :( | ||
autrijus waits for Corion's fix fix | 16:14 | ||
Corion | r3101 | ||
Oh. And undef.t dies, according to datenzoo.de/pugs/win2k.html ... | |||
but other than that, we're ready to fly :) | 16:15 | ||
autrijus | Corion: you don't have parrot in path, right :) | ||
Corion | Is anybody "fixing" undef.t ? | ||
autrijus: Nope, no parrot here. | |||
autrijus | ok. I'm "fixing" it now | ||
ninereasons | that's a tidy way to handle it, Corion++ # todo => $win32 | 16:19 | |
Forth | pugscc won't create .exe anymore? | ||
autrijus | Forth: I thought it would. what's the error msg? did you "nmake install" first? | 16:20 | |
Corion | I never do "nmake install" | ||
stevan | autrijus: I got 4 errors | ||
t/builtins/undef.t 1 256 66 14 21.21% 60-66 | |||
t/magicals/env.t 11 2 18.18% 7 10 | |||
t/unspecced/eval_haskell.t 4 1 25.00% 2 | |||
t/var/var.t 5 1 20.00% 2 | |||
Corion | (at least not with Pugs) | ||
stevan: You don't have Parrot? :) | 16:21 | ||
iblech | autrijus: FYI, on Linux, pugscc only works with --parrot, not with --pugs and --haskell | ||
stevan | rather, 11 errors, in 4 tests | ||
autrijus | stevan: how does t/unspecced/eval_haskell.t fail? | ||
stevan | Corion: I never managed to get it to work | ||
autrijus: looking | |||
Corion | stevan: That accounts for t/builtins/undef.t :) | ||
stevan | failed test 2 | ||
eval_haskell.t that is | |||
autrijus | stevan: you have an old version of hs-plugins perhaps. | 16:22 | |
stevan | autrijus: quite likely | ||
Corion: yes, undef.t (something about not finding parrot) | |||
autrijus | undef.t shoudl be fixed | 16:23 | |
please test. | |||
stevan | ok | ||
autrijus | iblech: try pugscc again | 16:24 | |
Forth: svn up and try pugscc again? | |||
iblech | autrijus: --runpugs and --runparrot work now :), --runhaskell not | ||
Forth | autrijus: sure, building now | 16:25 | |
autrijus | stevan: so I'll let old hs-plugins fail for this release... you can update to something around or after 20050417 too | 16:27 | |
stevan | ok | ||
autrijus | iblech: try r3105 | 16:29 | |
$ perl script/pugscc --runhaskell -e 'say 1' | |||
1 | |||
how's undef.t for parrotless folks? | |||
iblech | autrijus: All --run[parrot|pugs|haskell] work now :) | 16:30 | |
autrijus | good. | ||
Corion | autrijus: good | 16:31 | |
autrijus | pre3! | ||
Corion | autrijus: Does not crash anymore and fails one (TODO) test | ||
autrijus | Final check: pugscode.org/Perl6-Pugs-6.2.3-pre3.tar.gz | pugscode.org <Overview Journal Logs> | pugs.kwiki.org | 16:31 | |
autrijus | Corion: that's good to hear | 16:31 | |
final call before boarding :) | 16:32 | ||
Corion starts a (final|full) smoke from svn | |||
autrijus starts writing release announcement | |||
# pugscode.org/Perl6-Pugs-6.2.3-pre3.tar.gz | 16:33 | ||
Juerd | 2;1 juerd@sxark:~/project/pugs$ ./pugs -BParrot examples/matrix.p6 | 16:38 | |
pugs: Cannot compile: Syn "{}" [Var "%had",Pos (MkPos "examples/matrix.p6" 26 10 26 17) (App (Var "&infix:~") [Var "$y",App (Var "&infix:~") [Val (VStr "/"),App (Var "&infix:~") [Var "$x",Val (VStr "")] []] []] [])] | |||
What does it mean? | |||
autrijus | Juerd: that means that parrot codegen doesn't do PerlHash. | ||
Juerd | Oh | ||
That's unfortunate | |||
autrijus | Juerd: really, please wait until after APW :) | ||
Juerd | What's APW? | ||
autrijus | the parrot codegen will get rewritten during my stay with Leo | ||
Juerd | I see - when is that? | 16:39 | |
autrijus | and hopefully unified with the Eval monad | ||
that's ~1month from now | |||
Juerd | ok | ||
Are there other ways of speeding up execution? | |||
autrijus | will try to cram stuff into parrot 0.2.1 to support things | ||
ajs | A *month* ... in pugs time, that's like 10 years!!! ;-) | ||
autrijus | Juerd: make things optimised... | ||
Juerd | It segfaults after a while, when trying to match the rule | ||
autrijus: Doing so already | |||
I'd add a test for the segfault, but it takes way too long for that :) | 16:40 | ||
autrijus | Juerd: I have this feeling that you're looking at a PGE problem :) | 16:41 | |
Juerd: send the rule to p6c to pmichaud? | 16:42 | ||
Juerd | It might very well be | ||
It's hard to send it as e-mail | |||
Because it exceeds the line length, and mailing lists don't accept attachments | |||
autrijus | why? just .gz it | ||
Juerd | No attachments. | ||
autrijus | oh. then send a url | ||
Juerd | That's a good idea | ||
autrijus praises the technology known as URL | |||
so, pre3 all clean here | 16:43 | ||
how's it going for others? | |||
stevan | undef.t is good for me | 16:44 | |
_metaperl | hangman.p6 had a syntax error in it... | 16:45 | |
Juerd | done | ||
_metaperl | I found out during my presentation last night :) | ||
autrijus | _metaperl: huh? it worksforme :) | ||
_metaperl | ok I will try again... maybe its my pre-ghc6.4 pugs | ||
Forth | the result of test irc.csie.org:8888/115 | 16:47 | |
autrijus | Forth: what version is this? | ||
Forth | r3106 | 16:48 | |
autrijus | really. | ||
run t\entities.t by hand and see what are the errors? | |||
_metaperl | anyone want to help guess the p6-authors name? sorry to interrupt | ||
autrijus | _metaperl: uh. what? | 16:49 | |
Juerd | _metaperl: If you want people to cooperatively play the game, just make it an irc bot. | ||
_metaperl | wild idea Juerd | ||
Corion | r3105 is go on Win32 btw | ||
autrijus | Forth: I suspect you are running against an old copy | 16:50 | |
Corion | Hmmm. What is the easy way to get Parrot/Win32 ? | ||
autrijus | Corion: read README | ||
Corion | Oh. | ||
_metaperl | here are my guesses so far: pastebot.nd.edu/802 | ||
autrijus | _metaperl: botify it :) | 16:51 | |
_metaperl | is that easy? it sounds involved | ||
Forth | autrijus: irc.csie.org:8888/116 | ||
is that my environment's problem? | 16:52 | ||
autrijus | Forth: I remember that stevan fixed that a while ago | 16:53 | |
unless I'm terribly mistaken | |||
stevan | autrijus: that was Ovid's module actually,... I never touched it | 16:54 | |
autrijus | Forth: I have no idea why it fails for you... | ||
oh ok. | |||
iblech | HTML::Entities's tests work fine here (as do all the other ext/* tests) | ||
Forth | i have no idea, too. it's a clean build | 16:55 | |
autrijus | ok. I'll investigate | ||
Forth | i should try it again first :) | ||
autrijus | no, duplicated here. | ||
stevan | I would offer to help, but I really need to pay attention to $work :) | 16:56 | |
sorry | |||
autrijus | that's fine :) | 16:57 | |
Forth | previous test is ok on that | ||
Juerd | work always gets in the way of productivity | 16:58 | |
It's an universal rule of open source | |||
autrijus | fixed. | 17:03 | |
committing | |||
Forth++ | |||
stevan | Juerd: $work is open source (to a certain degree) | 17:04 | |
just not /all/ of it | |||
Juerd | Cool | ||
putter | my test run looked good. | 17:06 | |
autrijus | Forth: please retest HTML::Entities | ||
r3110 | |||
if it works for you, I'm ready to fly | |||
Forth | go fly :) | 17:08 | |
irc.csie.org:8888/117 | |||
autrijus | ok. :) | 17:11 | |
Juerd | Yay | 17:12 | |
Limbic_Region | . o O ( fly like an eagle ) | ||
autrijus | 6.2.3 is airborne! | pugscode.org <Overview Journal Logs> | pugs.kwiki.org | ||
Limbic_Region | . o O ( leaving in on a jet plane - ain't coming back to this rev level again ) | ||
autrijus | pugscode.org/dist/Perl6-Pugs-6.2.3.tar.gz | 17:13 | |
enjoy! :) | 17:14 | ||
autrijus cheers | |||
release announcements etc will be up shortly | |||
bbiab. | |||
putter | woo hoo! | ||
autrijus | 6.2.3 is airborne! | pugscode.org <Overview Journal Logs> | pugs.kwiki.org | 17:14 | |
putter | hey everybody -- just awesome. ;) | 17:15 | |
stevan | whoa.. flying Pugs,.. watch out below :P | 17:18 | |
_metaperl | first there was Air Jordan. And now... Air Pugs | ||
winning slam dunk contests everywhere | 17:19 | ||
wilx | :) | 17:20 | |
stevan | Money it's gotta be the Haskell! | 17:24 | |
_metaperl | Forget Sleepy Floyd... forget Sleepy-eyed Tracy mcGrady... it's Lazy Evaluation's time to shine | 17:25 | |
boogie | Somebody can tell me, how can I test rules with Pugs? It seems, that everybody can test it, but me. :) I have the latest Pugs and the latest Parrot, and got error if I run an easy regexp test... | 17:28 | |
autrijus | boogie: what's the error? | ||
boogie | pugs: user error (*** Running external 'parrot' failed: | 17:29 | |
error:imcc:op not found 'concat' (concat<2>) | |||
autrijus | latest parrot? | ||
0.2.0-release? | |||
boogie | trunk | ||
autrijus | is the parrot in your path also trunk? | ||
boogie | yes, both parrot and pugs is the latest svn version. | 17:30 | |
kolibrie | boogie: does 'which parrot' point to the right one? | 17:31 | |
_metaperl | perl5 to perl6 question | ||
my ($width,$height) = split(/x/, $banner->{size}); | |||
$xpad = defined($xpad) ? $xpad : 40 ; | |||
autrijus | boogie: cd into src/pge | ||
_metaperl | I could write this as $xpad //= 40 ; | ||
autrijus | in pugs tree | ||
run this | |||
$ parrot run_pge.pir 123 123 | |||
PGE_Match 0 3 [] [] | |||
_metaperl: that's right | 17:32 | ||
_metaperl | wonderful | ||
autrijus | boogie: I'm pretty sure both parrot trunk and 0.2.0 works with our bundled pge | ||
boogie | kolibrie: that's the problem... | ||
ingy | _metaperl: freepan accout set up | 17:33 | |
tpe.freepan.org/repos/metaperl/ | |||
please testit | 17:34 | ||
boogie | Thanks for your help... ;) | ||
kolibrie | boogie: :) | ||
autrijus | :) | 17:35 | |
but if you want to use rules in real programs, I'd recommend embedded parrot | |||
spawning a process for each rule match could be slow | |||
boogie | autrijus: I've tried that too, but I got error when compiled it. | 17:36 | |
autrijus: I give it a try again, maybe it will work. The environment variables were right, but who knows. | 17:37 | ||
autrijus | I'd be grateful if you can show me the error msg. | ||
boogie | OK, I've started compiling it. | 17:38 | |
kolibrie | autrijus++ # helping everyone with debugging | ||
autrijus | everyone++ # helping me with debugging | 17:39 | |
kolibrie | :) | ||
autrijus | I still remember the early 6.0.x days... without TAP matrix, automatic smoke runs, or a channel full of lambdacamels... | 17:40 | |
it's a miracle that I managed to get anything at all done back then ;) | |||
kolibrie | ah, pioneering | 17:41 | |
autrijus | "madness" is more like it | 17:42 | |
kolibrie | I didn't say that | ||
autrijus | :) | ||
boogie thinks, that Compiling Pugs.AST.Internals takes long time. :) | 17:43 | ||
wilx | So...are there any Perl6 tutorials yet? | ||
It seems the time it starts to be worth learing has come. | |||
_metaperl | 3 talks: metaperl.com/talks/p6 | ||
autrijus | there's a examples/tutorial_gen/ | ||
boogie | wilx: read the tests, and check the doc dir | ||
autrijus | also the very-old-but-still-somewhat-useful exegeses | 17:44 | |
boogie: "make unoptimised" will make it fast(er) | 17:45 | ||
but yeah, more refactor-into-small-chunks is needed on that | |||
or we can rename it to Pugs.AST.TakesReallyLongToCompilePleaseBePatientOrAbortNowAndMakeOptimisedByHittingCtrlC | |||
boogie | it's the same with Pugs.Parser. :) But I want to get an optimized and fast version for my CGI experiments. :) | 17:46 | |
autrijus | ahh :) | ||
boogie got error message | 17:49 | ||
Linking ... | |||
/usr/local/lib/ghc-6.4/libgmp.a(set_str.o): In function `digit_value_in_base': | |||
/playpen/ghc/nightly/STABLE-cam-02-unx/i386-unknown-linux/ghc/rts/gmp/mpz/set_str.c:44: undefined reference to `__ctype_b_loc' | |||
/usr/local/lib/ghc-6.4/libgmp.a(set_str.o): In function `__gmpz_set_str': | |||
/playpen/ghc/nightly/STABLE-cam-02-unx/i386-unknown-linux/ghc/rts/gmp/mpz/set_str.c:77: undefined reference to `__ctype_b_loc' | |||
/playpen/ghc/nightly/STABLE-cam-02-unx/i386-unknown-linux/ghc/rts/gmp/mpz/set_str.c:149: undefined reference to `__ctype_b_loc' | |||
collect2: ld returned 1 exit status | 17:50 | ||
make: *** [pugs] Error 1 | |||
autrijus | mm ghc nightly? | ||
wilx | Hmm, examples/sendmoremoney.p6, in the =kwid section, the second one line paragraph ends in half of the sentence. | ||
-- The `exhaustive' solution...etc. | 17:51 | ||
boogie | autrijus: I don't remember, but it's possible. Should I try the latest nightly build? | 17:52 | |
autrijus | boogie: no, it looks like something weird with ctype.h. hm. | ||
it's possible that ghc was built with a different ctype than parrot. | |||
boogie | ctype belongs to gcc? | 17:53 | |
autrijus | I think so | ||
pmichaud | ummm, I think ctype probably belongs to glibc | 17:54 | |
autrijus | oh well. at least fork is fast on linux :) | ||
ah. that's right. | |||
__ctype_b_loc, specifically. | |||
boogie | then I try to recompile GHC now. | ||
pmichaud | and I noticed that glibc doesn't match the C Standard Library as far as ctype goes | ||
Limbic_Region | autrijus - when I fork I like it to last a while | ||
pmichaud | at least, it doesn't match the version in the Plauger book | ||
autrijus | pmichaud: I've never had the occasion to deal with glibc | ||
boogie | I mean glibc, too. :) I never knew these C libs. ;) | ||
autrijus | so all knowledge of it is purely hearsay | 17:55 | |
s/all/all my/ | |||
iblech compiles Pugs 6.2.3 live cd... | 18:07 | ||
Limbic_Region | iblech - how do I play? | 18:08 | |
iblech | ?game starts a new game, ?guess char guesses, ?show shows the name again (covered, of course) | ||
_metaperl | wow | 18:09 | |
?game | |||
autrijus | oh. wow. hangman bot. | ||
Limbic_Region | has it joined the channel? | ||
iblech | _metaperl: You first have to start the bot ;) | ||
Limbic_Region | and if not - why not? | ||
iblech | okok I start it ^^ | ||
autrijus | iblech++ # madness | 18:10 | |
iblech | thanks :) | ||
boogie agree with autrijus :) | |||
iblech | my Pugs is still compiling (optimized this time, for the live cd)... | ||
18:12
ChanServ sets mode: +o autrijus
18:13
autrijus sets mode: -o autrijus
|
|||
iblech | :) | 18:13 | |
Corion | We got ops? Yay! That means we can kick people! :) | ||
Bah. :( | |||
iblech | ?game | ||
Limbic_Region | ?game | ||
iblech | ?guess i | ||
Limbic_Region | heh | ||
autrijus | eh. | ||
_metaperl | ?guess e | ||
wilx | ?guess a | ||
Limbic_Region | ?guess m | ||
_metaperl | ?guess r | ||
wilx | ?guess u | ||
Limbic_Region | ?guess t | ||
wilx | ?guess Y | ||
Limbic_Region | ?guess s | ||
_metaperl | ?guess p | ||
wilx | ?guess w | ||
Limbic_Region | ?guess o | ||
wilx | :)) | ||
autrijus | fun! | ||
iblech | :) | ||
Corion | THE MACHINE WINS! YES! :) | ||
Odin- | Hm. | ||
autrijus | ?game | 18:14 | |
Limbic_Region | wow | ||
_metaperl | ?guess e | ||
Corion | iblech: The bot should gloat a bit more :) | ||
Odin- | Those don't appear as channel messages. | ||
Limbic_Region | ?guess t | ||
_metaperl | ?guess p | ||
autrijus | ?guess o | ||
_metaperl | ?guess a | ||
Limbic_Region | ?guess a | ||
autrijus | ?guess y | ||
_metaperl | ?guess b | ||
iblech | Odin-: They're NOTICEs, as the IRC RFCs mandate | ||
autrijus | ?guess s | ||
_metaperl | ?guess n | ||
Limbic_Region | ?guess m | ||
Odin- | iblech: Mandate? | ||
autrijus | lol | ||
Limbic_Region | ok - this is going to wreak hell on the irc logger coherency | ||
iblech | Corion: Feel free to fix this, /me lacks the vocab | 18:15 | |
Corion | Maybe somebody should start #perl6_games :) | ||
boogie | Corion: :)) | ||
autrijus aborts the bot :) | |||
iblech | Odin-: ...as the IRC RFCs recommend bot writers | ||
autrijus | iblech++ # lots and lots of fun | ||
Odin- | iblech: Interesting. | ||
Corion | This is so the bots don't get caught up in a feedback loop | ||
Odin- | iblech: And annoying. ;) | ||
Limbic_Region | iblech | 18:16 | |
grr - iblech plus plus even | |||
iblech | Odin-: Yes... Somebody posted an URL to a page describing the necessary steps to let those NOTICEs get displayed nicer | ||
putter | no svn commit notes in irc log :( :( | ||
autrijus | wow. icfp'05 contest is the same day as yapc::na | 18:17 | |
must... let... Perl 6 win icfp'05 | |||
iblech | putter: True. And the beep of the NOTICEs woke wilx up today ;) | 18:18 | |
autrijus | # icfpc.plt-scheme.org/ | ||
wilx | Hehe. | ||
Yeah. | |||
I usually turn off speakers but I forgot last night :) | |||
Odin-LAP | Much fun, then? | ||
putter | ;) | 18:19 | |
iblech | Ok, then I convert the NOTICEs to PRIVMSGs | ||
wilx | :/ | ||
No good either. | |||
Odin-LAP | Normal messages are PRIVMSG... | ||
iblech | ?quit Shutting svnbot6 down for a minute (convert to PRIVMSGs) | 18:20 | |
iblech is uploading the new live cd :) | 18:25 | ||
svnbot6 | r3113 (iblech) -- NOTICE -> PRIVMSG for svnbot.p6 and hangmanbot.p6. | 18:26 | |
Odin-LAP | Hmm. | 18:27 | |
autrijus | iblech: announce the live cd separately on p6c please :) | ||
integral | hmm, now irssi highlights this window for every commit :-( | ||
Odin-LAP | Noticeably better. :) | ||
iblech | autrijus: Ok :) | ||
Limbic_Region | ?game | 18:28 | |
oh - did the bot go away? | |||
yep | |||
autrijus | Guess! _i_b_c_R_g_o | ||
Limbic_Region goes back to $work | |||
svnbot6 | r3114 (autrijus) -- * typo | 18:33 | |
Khisanth | pugs livecd? | ||
PerlOS? :) | |||
eric256 | hello... could someone explain why the example uses my $y = =$*IN; ... i don't understand where the second = comes from. | 18:34 | |
stevan | eric256: it is basically equivalent to readline | 18:35 | |
integral | = is for reading from an iterator | ||
stevan | my $y = readline($*IN) is the same thing | ||
eric256 | ahhh. cool. thanks. | ||
stevan | :) | ||
eric256 | and so i begin to learn. ;) | ||
autrijus | :) | ||
Limbic_Region | advocacy at work | 18:36 | |
eric256 | i love the new classes. that is probably the only thing that i'm totaly excited about so far.. hopefully more will come | 18:37 | |
autrijus | I love the lack of @{${[]}} :) | ||
eric256 | do we still need to chomp input .... and is there an easy way to do that all i none step? | ||
Limbic_Region | meant to mention to you in the chatterbox - if you haven't already - install Perl6::Bible | ||
eric256 is chomped isn't implemented yet | 18:38 | ||
but there should be a way to autochomp - yes | |||
just as there is a way to auto-linefeed output | |||
say versus print | |||
eric256 | cool | ||
Limbic_Region | s/should be/will be/ | ||
eric256 | chomp IS implemented | 18:39 | |
Limbic_Region | right - just not autochomp | ||
eric256 | oh gotcha...whats the Perl6::Bible give me? | ||
Limbic_Region | but don't make the mistake of opening up your file as rw AND turning on autochomp (when it becomes available) unless you really know what that will do ;-) | ||
all the As Es and Ss | 18:40 | ||
at your fingertips | |||
autrijus | hm where is autochomp specced? | ||
Limbic_Region | autrijus - it isn't as far as I know | ||
autrijus | I see adverbial form of slurp :chomp in Perl6::Slurp | ||
Limbic_Region | it has been thrown around several times though | ||
autrijus | but nothing about autochomping | ||
Odin-LAP | Limbic_Region: And what would that do? | ||
You'd suppose it does 'chomp' automatically on each line fed in..? | 18:41 | ||
Limbic_Region | dunno | ||
autrijus | @lines = io("file").chomp.slurp; | ||
(if we go with the IO::All api) | |||
autrijus likes the IO::All api, btw, except maybe for the overloading bit | 18:42 | ||
Limbic_Region | autrijus - great thing about Perl6::Bible is it makes grep'ing for something easy (though building it into p6bible would be nicer) | 18:43 | |
eric256 | why not just $person.name = =$*IN.chomp; ?? | ||
Limbic_Region | autrijus - for example, I have already found $*ARGS is chomped; | ||
so it must be in there somewhere - looking closer | |||
autrijus | eric256: well, you can use the perl5 idiom | 18:44 | |
class Person { has $.name } | |||
my $me = Person.new; | |||
($me.name = =<>).chomp; | |||
Limbic_Region | looks like E02 autrijus | ||
autrijus | that works in pugs just fine | ||
Limbic_Region: hmm E is nonnormative | |||
(as it's not added with "Update" markers) | 18:45 | ||
maybe it'd be fun to update it, though | |||
based on current pugs/p6l understandings | |||
that will make a good tutorial | |||
eric256 | any reason they didn't change chomp to return the chomped string like every sane person expects? | 18:46 | |
Limbic_Region | autrijus - well, I know it has also been mentioned on p6.l the same way as the "Biting off less so you can chew" section of E02 | ||
might just take a confirmation email to the list | |||
autrijus | sure. | ||
Limbic_Region | ok - will do | 18:47 | |
autrijus | eric256: hm, maybe chomp should then be nonmutating | ||
and you use | |||
$foo .= chomp; | |||
if you want destructive chomp | |||
iirc it's been proposed by Juerd. | |||
eric256: so, send a patch/suggestion to Rod's S29 | 18:50 | ||
# www.rodadams.net/Perl/S29.html | |||
"chomp" is not defined there, so just define it | |||
and make it either only destructive under void context, or never destructive at all | |||
eric256: send off to p6l and, see if it can be made into S29 -- once it is, I'd be happy to implement it in pugs and/or walk you thru on how to implement it | 18:51 | ||
btw, you can patch against Pugs's docs/S29draft.pod | |||
bbiab. | |||
Limbic_Region | message sent | 18:52 | |
eric256 just knows it seems crazy as is. | |||
am i getting myself invovled in yet another project that i don't have time for? although admitidly this is a much more interesting project than any before. ;) | 18:53 | ||
Limbic_Region | eric256 - I don't have any time for it either but you would be surprised how a lot of people contributing a little bit adds up | 18:54 | |
besides - even if you don't get into the Haskell side of the house (I haven't) - you still get to learn p6 | 18:55 | ||
kolibrie | and hang out with uber-cool folks | ||
Limbic_Region | imagine the XP you will get when everyone starts using it and you are able to answer questions faster and better than the p5 experts | ||
eric256 | very true. i looked into haskell a bit but i think i'll stick to learning p6 | ||
Limbic_Region never thought he would resort to using XP as a marketing strategy | |||
eric256 | lol | 18:56 | |
okay. i stumbled on something.... say "hello" & "wow"; prints each on its own line... new magical meaning of &? | 18:57 | ||
pmichaud | & is a junction | ||
eric256 | hmmm. so it causes say to be called twice? once for each element in the junction? | 18:58 | |
pmichaud | but it should probably generate a "cannot print junction" error and not print both | ||
at least, that's what Damian claims | |||
Limbic_Region feels that it shouldn't unless you ask it to | |||
pmichaud | but yes, a junction would be a scalar that holds multiple values and a relationship among them simultaneously | ||
Limbic_Region | IOW - provide for a short cut to for all( stuff ) { say } | 18:59 | |
but don't make it just be say all( stuff ) | |||
hmmm - I have convinced myself I don't like that idea | |||
Limbic_Region shuts up now and leaves the design to the experts | 19:00 | ||
eric256 | which idea? so is this a bug or feature at this point? lol | ||
svnbot6 | r3115 (iblech) -- Added Makefile.old to the svn:ignore of ext/Test-Builder. | ||
eric256 | or undefined as yet? | ||
pmichaud | I haven't fully followed the meaning of for all ( stuff ) { say } yet | ||
integral | reify { say reflect "hello & wow" } maybe | ||
autrijus | eric256: it's undefined. | 19:01 | |
eric256 | hmm i. say("this" | "that") also prints both which doesn't seem right | ||
pmichaud | okay, just got for all(stuff) { ... } from S03 | ||
Limbic_Region | pmichaud - I am kind of frustrated with the way junctions are currently spec'd so I don't know myself | ||
pmichaud | eric256: are you specifically interested in junctions? Or are you trying to test && and || ? | 19:02 | |
autrijus | eric256: so, foo("this" | "that") actually means | ||
foo("this") | foo("that") | |||
pmichaud | say( "this" | "that" ) ==> say any("this", "that" ) | ||
autrijus | so foo will be called twice no matter what juctive combinator you use | ||
junctive, even | |||
pmichaud | as long as foo accepts junctive scalars | ||
autrijus | that's right. | 19:03 | |
eric256 | autrijus: ohhh. pmichaud i just stumbled on the behavior by accident. i mean ~...don't ask how i hit the & lol | ||
autrijus | :D | ||
pmichaud | in particular, it doesn't do the autothreading if foo(...) accepts a list | ||
autrijus | hm? where is that said? | 19:04 | |
pmichaud | S09 | ||
"In any scalar context not expecting a junction of values, a junction produces automatic parallelization of the algorithm." | |||
autrijus | oh. you mean "accepts a list" as in "imposing a plural context" | ||
Limbic_Region still wants to be able to do all( any(@foo) eq any(@bar)) and have the result be all the matches and not a boolean true/false | |||
pmichaud | autrijus: right | ||
autrijus | that's right then | ||
PerlJam | pm: btw, did you implement & in PGE? | 19:05 | |
pmichaud | pj: not yet | ||
eric256 has to goto lunch now before his head explodes or possibly implodes | |||
pmichaud | limbic: so, define the special eq operator I discussed :-) | ||
autrijus | so will == be special as well? | 19:06 | |
~~? =:=? curious minds wants to know! :) | |||
pmichaud | i.e., define an eq operator that returns the equivalent value instead of a boolean true/false, and you can get any(@foo) myeq @bar | ||
Limbic_Region | pmichaud - and as I said, I don't necessarily need to see it in the core but it should be readily available in a generic form as one of the first p6 modules | 19:07 | |
I just don't have the appropriate fu yet | |||
autrijus | use Junc::Util;; | ||
pmichaud | Oh, I suspect it'll end up being use Sets; :-) | ||
Limbic_Region | either Sets or Junc::Util is fine by me | 19:08 | |
grrr - real $work | 19:09 | ||
Limbic_Region wanders off | |||
revdiablo | ok, I really need to build parrot now. | 19:11 | |
integral | it builds refreshingly faster than pugs ;-) | 19:12 | |
revdiablo | I wonder if dh_make_perl can handle it nicely | ||
... or at all | |||
Limbic_Region | looks like volunteers for finishing S29 are being asked for autrijus | 19:16 | |
autrijus | pmichaud: ping | ||
Limbic_Region | eric256 - perfect opportunity to plunge in head first | ||
autrijus | if 'localhost:80' ~~ /^(.+)\:(.+)$/ { | ||
my $socket = connect($0, $1); | |||
} | |||
pmichaud: assume that $1 is evaluated in Int context. | |||
pmichaud: what does it evaluate to? 80? 0? | |||
pmichaud | 1 | 19:17 | |
autrijus | right, 1. | ||
but hey, isn't that just killing one of the idioms? | |||
pmichaud | use $1 | ||
er | |||
use ~$1 | |||
autrijus | and why is it 1 when it has no submatches? | ||
pmichaud | a match object returns 1 if it successfully matched | 19:18 | |
revdiablo | argh, dh-make-perl is looking for modules, not just any CPAN distribution | ||
autrijus | should it not be 0 (as in, no submatches) | ||
er, I thought the numeric context stands for number of submatches | |||
pmichaud | no, I think it's going to be the number of successful matches | ||
autrijus | or is that for quantified capture only? | ||
ah ok. | |||
so if (xx)+ matches 3 times | |||
pmichaud | it's always 1, unless :g is specified in which case it may increase | ||
autrijus | $0 would numifiy to 3? | ||
pmichaud | nope | 19:19 | |
autrijus | still 1? | ||
pmichaud | as far as I know -- that's what Damian's post says | ||
to get 3 one would typically use @{$0} | |||
or maybe +@{$0} | |||
autrijus | ok | 19:20 | |
pmichaud notes that he didn't write the spec (or have much hand in it) -- he just implements it | |||
hmmm, how do I explain the difference to Aaron (on p6l)? | 19:21 | ||
autrijus | ooh S29 pumpking wanted on p6l | 19:23 | |
pmichaud: thanks for the explanation -- so my understanding was right -- but I think that's very inconvenient | |||
sent to p6l for further deliberation | 19:24 | ||
pmichaud | it may indeed be inconvenient, I don't know that anyone had come across that particular issue yet | ||
autrijus | it broke quite a few of our tests :) | ||
elmex | p6 tends to become inconventient in not so few places | ||
autrijus | elmex: hm? | 19:25 | |
pmichaud | it may be that we decide that match objects in numeric context become the numified version of the string value | ||
autrijus | that would be nice. | ||
pmichaud | that's probably more important and useful than having it be the number of successful matches | ||
which we can always get via a method on the match object | |||
autrijus | yeah. | ||
yup. | |||
.matches, that is. | |||
Limbic_Region | autrijus - [15:16] <Limbic_Region> looks like volunteers for finishing S29 are being asked for autrijus | 19:26 | |
autrijus | oh. didn't see that :) | ||
Limbic_Region | I followed it up with | ||
[15:16] <Limbic_Region> eric256 - perfect opportunity to plunge in head first | 19:27 | ||
autrijus | right! | ||
Limbic_Region | I didn't get a reply though | ||
Limbic_Region might have scared him | |||
autrijus hopes not | |||
PerlJam | autrijus: did you see larry's reply regarding split /(..)*/, 1234567890 ? | 19:30 | |
autrijus | PerlJam: yes, implemented as such. | ||
committing | |||
PerlJam | magic! | ||
autrijus | tests welcome | ||
PerlJam | will do | ||
autrijus | pmichaud: | 19:32 | |
svnbot6 | r3116 (ninereasons) -- skip a segfaulting test | ||
PerlJam | Hrm. Is the first arg to split always a RE in perl6? | ||
Limbic_Region | PerlJam - unless it is something else ;P | ||
autrijus | hm, nvm, it's my fault :) | ||
pmichaud | autrijus: glad to help :) | ||
autrijus | :D | ||
I forgot that (..)* always matches. | 19:33 | ||
PerlJam | Limbic_Region: in perl5, it's always a regular expression even if you do split "foo+bar",$string (i.e. that + is a quantifier not a literal +) | 19:34 | |
Is perl6 the same? | |||
elmex | why does (..)* always match? | ||
PerlJam | elmex: * means zero or more | ||
elmex: you can always match zero times | |||
elmex | PerlJam: hm.... | 19:35 | |
k | |||
autrijus | anyone have parrot 0.2.0-release installed? | 19:39 | |
svnbot6 | r3117 (bsmith) -- Added export lists to Pugs.AST.Internals, Pugs.Eval and Pugs.Lexer. | ||
Limbic_Region | PerlJam - I was being silly^h^h^h^h^hunhelpful | ||
integral | hmm, pugs uses the same AST structure to compile and run the code? I mean there's always Pads with VRefs attached, even at just compile time? | 19:40 | |
autrijus | integral: yes. | ||
the notion of "compile time" in perl is weird | 19:41 | ||
the compiler itself is a perl runtime | |||
integral | hmm, it's awkward | ||
autrijus | it is. | ||
it's also fun. | |||
integral | it looks like it's the main reason AST.Internals is so big too | ||
autrijus | it's like how TH2 let you run IO in the Q stage. | ||
integral | hmm | 19:42 | |
autrijus | it's the same idea | ||
integral | But then when the Q bit has run, you're just left with a static AST | ||
autrijus | that is right | ||
the static AST is then fed to codegen | |||
integral | that's the bit that perl doesn't have then? | ||
autrijus | perl5 by default doesn't do that | 19:43 | |
it just walks the tree in memory, like pugs does | |||
but perl6 will codegen to PIR | |||
by default | |||
integral | hmm, another idea: the IVar uses these ScalarClass things, maybe something similar for Var(?) ? | ||
autrijus | hm? | 19:44 | |
integral | and in walking the tree it hangs pads etc off the same tree, rather than another? | ||
autrijus | where is this "another"? | 19:45 | |
svnbot6 | r3118 (autrijus) -- * sync pge | ||
r3119 (autrijus) -- * split// now attaches the submatches themselves to the | |||
r3119 (autrijus) -- resulting list. | |||
autrijus | the compiler and runtime shares the same tree that is envExp | ||
the parser too | |||
integral | ok, but do they have to? | ||
autrijus | not sure what the gain would be if they don't | 19:46 | |
but I think theoretically yes | |||
integral | well it means that the Exp tree wouldn't contain Pads, surely? | ||
hmm, | 19:47 | ||
autrijus | you still need the Pad to close the closures over, no? | ||
integral | but you don't have closures until you run code... | ||
autrijus | ...which is what the compiler has to do | ||
consider: | |||
my $x; BEGIN { $x = 3 }; say $x | 19:48 | ||
here the BEGIN{} happens at parsetime | |||
even before say is parsed | |||
integral | hrm, I see now | ||
autrijus | we're dealing with a clearly insane language :) | ||
pmichaud | created by clearly insane people. Nice, that. | ||
:) | |||
autrijus | :) | ||
integral | hmm, but when it comes to separate compilation the value of $x is going to be serialised anyway | ||
autrijus | sure | ||
so that's why I say you can use two Exp | 19:49 | ||
but the first one (the compile time one) | |||
still needs its own pads | |||
and all | |||
Odin-LAP | autrijus, pmichaud: Any non-perler could've told you that several years ago. | ||
autrijus | it needs to be a full environment | ||
Odin-LAP | (re: sanity) | ||
autrijus | that's right. | ||
integral | hang on, what does: sub foo { my $x; BEGIN { $x = 3 }; say $x } do? | ||
autrijus | it's the same as | 19:50 | |
sub foo { my $x ::= 3; say $x } | |||
er, no | |||
it's not the same | |||
Limbic_Region throws in a state() or two just to make it crazier | |||
autrijus | what it does is that it creates a Pad for foo with $x in it | ||
that pad has a value of 3 on entry | |||
integral | at the moment sub foo { my $x; BEGIN { $x = 3 }; say $x } foo; foo; foo; prints "3\n\n\n" | ||
_metaperl | Limbic_Region, what is state()? | 19:51 | |
autrijus | fortunately, this we can check with p5. | ||
Limbic_Region | like static in C | ||
only gets initialized once | |||
autrijus | $ perl -le 'sub foo { my $x; BEGIN { $x = 3 }; print $x } foo; foo; foo;' | ||
3 | |||
\n\n\n | |||
same behaviour. | |||
Limbic_Region | let me see if I can find the exmple | ||
autrijus | i.e. the pad with 3 on entry is scratched on reentrance. | ||
integral | personally I say this is weird. It creates a new pad the other two times, but not the first | ||
autrijus | to not scratch it, you use state() | ||
kolibrie | _metaperl: like my(), except that it is still there the next time the block is entered | 19:52 | |
Limbic_Region | _metaperl - see svn.openfoundry.org/pugs/examples/cashiers.p6 | ||
autrijus | integral: line 287 in Eval does that. | ||
the reduction rule for | |||
reduce (Pad SMy lex exp) = do | |||
is clearly doing just that | |||
_metaperl | i see. thanks kolibrie and Limbic_Region | ||
integral | ugg, I really don't like this bit of perl | ||
autrijus | integral: I agree that is weird. I also think it's useful. | ||
perl's idea of a lexical scope is much more.. dynamic | 19:53 | ||
(it's also much more error prone.) | |||
integral | wouldn't it be an idea to solve then? ;-) | ||
hmm, is this behaviour already spec'ed? | |||
autrijus | I'm not sure on how to "solve" this once you allow BEGIN{}. | ||
integral: I think it's supposed to be just like p5 in this regard | |||
integral | I'd say that the $x wasn't visibile to the BEGIN | ||
autrijus | but no, it's not in any of synopsis | ||
integral | (because it doesn't exist until you enter the lexical scope of the sub) | 19:54 | |
autrijus | I agree it's far saner, but also note that perl's use Module; is specced as | ||
BEGIN { require Module; } | |||
and it needs to see its lexical scope even if inside a named subroutine | |||
in order for pragma modules to work | 19:55 | ||
viewing from any angle, it's a huge hack... but taken together it makes an eerie kind of sense. | |||
integral | hmm | ||
autrijus | it's one of those Autostereogram things | ||
wolverian | p6l++ # 22 new posts to read | 19:56 | |
integral | hrm, one might think that my $x if 0 makes sense too :-/ | ||
pmichaud | wolverian: the number will only continue to increase for some time, methinks :-) | ||
I've got a couple of nearly-warnocked posts still outstanding :) | 19:57 | ||
autrijus | pmichaud: I implemented your suggestion in pugs for now | ||
it's saner than the kluge I use | |||
integral | would p6l be the right place to ask if this is right? | ||
autrijus | integral: yes. | ||
pmichaud | anytime there's a question about what the language *should* do, it generally belongs on p6l | ||
autrijus | integral: and hey, if you can get @Larry to agree that closure entrance is not created during BEGIN time, I'd be surprised -- but it makes writing compilers much easier | 19:58 | |
;) | |||
pmichaud | I'm pretty sure $Larry already knows the answer to this puzzle | ||
integral modifies his view slightly: $x should be visible, but as some kind of "prototype" variable, that you can't really assign to | 19:59 | ||
autrijus | mmm single-assign perl6 | ||
j/k | |||
integral: but if $x is visible, you can also rebind it | 20:00 | ||
and it will also kill the pad | |||
unless you mandate that the pad is read-only during BEGIN time | |||
but then, the entire module is inside a BEGIN{} block | |||
when use'd | |||
integral | hmm | ||
svnbot6 | r3120 (autrijus) -- * implement pmichaud's suggestion of numifiing | 20:01 | |
r3120 (autrijus) -- match objects using its string value. | |||
Limbic_Region | just change used modules to a sourcefilter | ||
autrijus | cf. "Variable will not stay shared" fiasco | ||
Corion | bbl (firefox upgrade) | ||
pmichaud | autrijus: if p6l comes back and agrees with my suggestion, then it'll end up being the same in PGE itself. FWIW. | ||
eric256 | what method should be used for defaulting class properties? is that what the BUILD method is for? and if i define a build method will i loose the ability to pass properties as part of .new ? | 20:02 | |
autrijus | pmichaud: sure, cool | ||
eric256 | s/properity/attribute/ i guess | ||
autrijus | eric256: see Test::Builder :) | ||
ext/Test-Builder/ | |||
note that pugs doesn't yet run it (but hopefully soon) | 20:03 | ||
once pugs run it, though, it will be the reference of OO semantics for some time. | |||
Limbic_Region | chromatic wrote that right? | ||
autrijus | right, with help from dconway and luqui | 20:04 | |
iirc | |||
Limbic_Region | grrr - I want to know who broke the Monastery | ||
_metaperl | ?game | 20:05 | |
Limbic_Region | the bot left _metaperl | ||
_metaperl | oh... it was a lot of fun while it lasted | ||
autrijus | you can run it too ;) | ||
Limbic_Region | probably needs to /msg by default | ||
or at least remember who started what game | 20:06 | ||
autrijus - out of curiosity, is there a way to determine what rev you are on straight from the pugs executable? | 20:07 | ||
pugs -V doesn't have it | |||
eric256 | reading its source doesn't seem to help me. i can tell how to default method parameters...but not class attributes....unless making a BUILD methods with the right parameters defaulted is what i need...which i guess it kind of is. | ||
integral | Limbic_Region: ./pugs -V:pugs_revision | ||
Limbic_Region | it always says 0 | ||
integral | oh, you're on svk? | ||
autrijus | eric256: it is. you can also use | 20:08 | |
has $.foo = 4; | |||
which, although legal, is not yet supported in pugs | |||
integral | someone should fix util/version_h.pl so it groks SVK too | ||
Limbic_Region | integral - I am getting binary Win32 builds from Jonathan | ||
www.jwcs.net/~jonathan/perl6/ | |||
integral | hmm, he mustn't be using svn I suppose | ||
eric256 | okay. so i'll just wait on that then ;) | 20:09 | |
pmichaud | eric256: did you look at S12? | ||
All classes inherit a default C<new> constructor from C<Object>. | |||
It expects all arguments to be named parameters initializing attributes | |||
of the same name. You may write your own C<new> to override the | |||
default, or write constructors with any other name you like. | |||
Limbic_Region | oh well - at least he does daily builds - I can't be more than what - say 60 or 70 revisions behind each morning | ||
autrijus | so, if anyone is using parrot 0.2.0-release | 20:12 | |
please try pge with trunk | |||
eric256 | crap. i didn't read down it far enough. | ||
autrijus | and see if you can still match anything | ||
i.e. if it just curls up and die :) | |||
pmichaud | the latest versions of pge won't run with parrot 0.2.0-release | 20:13 | |
0.2.0 doesn't have the find_cclass and find_not_cclass ops | |||
autrijus | oh. ok. aw. | ||
pmichaud | those were just added yesterday | ||
autrijus ponders what to do | |||
PerlJam | quick! Release parrot 0.2.1 | 20:14 | |
autrijus | demand trunk parrot? :) | ||
PerlJam: nah, parrot's release schedule is up to 4x slower than ours | |||
PerlJam | 4x? I think it's much slower than that :) | ||
autrijus | it's now monthly. | ||
chip++ | |||
Limbic_Region | 1xmonth versus 1xweek | ||
pmichaud | autrijus: well, I can't imagine anything in pge that will require more from parrot. It might be worthwhile to get a pugs-parrot release | 20:15 | |
i.e., just build the equivalent of a release for distribution with pugs until the next official parrot release | |||
it ought to be a one-time thing | |||
autrijus | pmichaud: mayyybe. | ||
Corion | Hmmm. While browsing the tests, I found # FIXME tests that were commented out. Should these be converted into skip() tests, so we find them easier? Or is grep -l FIXME Good Enough? | ||
autrijus | need to talk with leo about that | ||
Corion | I've grown fond of the HTML view of things | ||
pmichaud | I don't believe I'm going to need anything new from parrot to fill out PGE | ||
but I definitely needed find_cclass and find_not_cclass | 20:16 | ||
PerlJam | pmichaud: famous last words ;) | ||
pmichaud | and they just didn't get added in time for 0.2.0 | ||
_metaperl | is PGE supposed to add PCRE for any language compiling to Parrot? | ||
pmichaud | _metaperl: that's my vision | ||
Limbic_Region | P6CRE right | ||
PerlJam | PGE adds PGE for any language compiling to parrot :-) | ||
pmichaud | yeah, it's more than just regular expressions :-) | 20:17 | |
Limbic_Region | right | ||
autrijus | actually we have Inline::Parrot :) | 20:18 | |
in CPAN | |||
so maybe Regexp::PGE? | |||
or call it... *gasp* Perl6::Rules | |||
pmichaud | heh | ||
Limbic_Region can't imagine an anarchist wanting to follow "the rules" | 20:20 | ||
pmichaud | it's a verb, not a noun :-) | ||
autrijus | nah. "rules" as in "anarchism rules" | ||
right. | |||
boogie | autrijus: ghc compiled (today's 6.4 snapshot). just another bug | 20:22 | |
svnbot6 | r3121 (autrijus) -- * revert last change for now as it breaks parrot 0.2.0 | ||
r3122 (bsmith) -- Now tries to use the svk "Mirrored from" revision number if it's not a svn | |||
r3122 (bsmith) -- checkout. | |||
boogie | Linking ... | ||
/usr/local/lib/ghc-6.4.20050506/libHSrts_thr.a(Schedule.thr_o): In function `schedule': | |||
Schedule.thr_o(.text+0x1a7): undefined reference to `awaitEvent' | |||
collect2: ld returned 1 exit status | |||
boogie going to bed. it was enough for him today... | 20:24 | ||
autrijus | boogie: link without threads | ||
you can fix it in Makefile.PL | |||
that should work | |||
i.e. remove -threads in Makefile | |||
svnbot6 | r3123 (corion) -- Changed a test from ok(eval(...)) to eval_ok() | 20:28 | |
PerlJam | pm: I was just looking at the characater class stuff in P6Rules ... Is there some reason you didn't make the charclass and charmatch stuff part of the constructor for PGE::Exp::CharClass? | ||
Corion | I'm moving stuff out of t/pugsbugs/ if it now works ;) | 20:29 | |
autrijus | Corion++ | ||
Limbic_Region | Corion plus plus | ||
autrijus | Corion: thoughts on championing S29? | ||
Corion: we can all maintain it under docs/S29Draft.pod | |||
pmichaud | pj: yes | ||
Corion | "championing" ? Like, taking it over? | ||
pmichaud | there's not any constructor methods for the subclass, only for the base class | ||
autrijus | Corion: yeah, www.nntp.perl.org/group/perl.perl6....uage/21097 | ||
Limbic_Region | Rod asked for volunteers | ||
Corion | Hmmm - I don't have much time, resp. want-need to spend it on other stuff too ... But I can try, wiki-style :) | 20:30 | |
pmichaud | more to the point, at present in parrot there's no way to get a subclass to be able to call a superclass' method | ||
autrijus | Corion: I think maintaining it under docs/S29Draft.pod is a good idea, but we still need an editor :) | ||
Limbic_Region notes the time and heads homewards | |||
autrijus | pmichaud: uh, what? | ||
Corion | autrijus: I'm good at cleaning up stuff ;) | ||
autrijus | pmichaud: you mean like ->SUPER:: ? | ||
PerlJam | pm: Oh I see. So you'd have to duplicate all of the logic were you to do that? | ||
pmichaud | pj: right | ||
boogie | autrijus: you mean that '-threaded' should go to ghc, or should I remove it? :) | ||
autrijus | boogie: remove it will likely solve the link error | 20:31 | |
pmichaud | autrijus: what is ->SUPER:: ? | 20:32 | |
autrijus | pmichaud: it's this $self->SUPER::method() | ||
I was not sure what you're talking about that parrot doesn't do | |||
PerlJam | If I can keep the wife and kids happy without my attention, I may add character class support to Glob.pir tonight. Otherwise it'll have to be on the weekend. | ||
pmichaud | oh, you mean from perl. In Parrot, as far as I know there's not a way for a subclass to dispatch to an overridden method in the superclas | ||
s | |||
Corion | btw, is :todo now invalid? I got an error in a commented-out line which I could fix (resp. change into another error) by making it into "todo => 1" | 20:33 | |
autrijus | huh? | ||
pmichaud | pj: okay, just be aware that the interface/attributes for the ::CharClass object are likely to change | ||
autrijus | Corion: it should be ok. weird -- but I'm doing $work, no time to investigate yet | ||
Corion | np | ||
pmichaud | autrijus: www.nntp.perl.org/group/perl.perl6....nals/29323 | 20:34 | |
svnbot6 | r3124 (ninereasons) -- todo<bug> a failing test | ||
r3125 (corion) -- Pugsbugs cleanup: Move now working tests to their resp. directories, change parsefailing tests to new (but still failing) valid syntax | |||
PerlJam | pm: sure. But the method that's there now works right? | ||
autrijus | pmichaud: thanks! | ||
pmichaud | pj : yes | ||
PerlJam | good enough for me :) | ||
pmichaud | autrijus: super class method calls are certainly to be added in Parrot -- afaik they aren't there yet | ||
there's certainly nothing in the docs about them, and when I asked leo about them last week they weren't available yet and leo is looking for comments | 20:35 | ||
PerlJam | you know, I asked the dbdi-dev mailing list if they were still alive and I bet the ability to call super's methods is one of the features they're missing (and thus partly why the list is in hibernation) | 20:36 | |
pmichaud | yes, I was surprised by it as well. But at present I've just worked around it in PGE | ||
autrijus | ok... in that case I think we don't need to create a special parrot-pge-pugs snapshot :) | ||
we'll just demand people to use parrot trunk ;) | 20:37 | ||
because codegen won't work reasonably on 0.2.0-release as well | |||
without short attribute names, etc | |||
PerlJam | autrijus: at pugs' rate of development that's not an unreasonable demand | ||
autrijus | true :) | 20:38 | |
nothingmuch | lambdacamels: how would you name an object that has arbitrary fields with accessors, can inherit data fields from others like it, and push data fields upwards to those it inherits from? | 20:39 | |
svnbot6 | r3126 (corion) -- More tests moved out of t/pugsbugs/ | ||
autrijus | "push data field upwards"? | 20:40 | |
Corion | nothingmuch: "generic" ? | ||
nothingmuch | Corion: eh? | ||
autrijus | "classless"? | ||
Corion | nothingmuch: Your description could be all or nothing :) | ||
nothingmuch | think of it as a hash | ||
Corion | "prototyped" or "hierarchical" could be good names as well | ||
nothingmuch | where you have all the keys from the hashes you derive from | 20:41 | |
Corion | (mostly synonymous with "classless") | ||
nothingmuch: Ah. "classless" it is. Like in JavaScript. | |||
integral | (Self or Class::Prototyped) | ||
nothingmuch | and you can also push your own keys upwards to your parents | ||
wait wait wait | |||
Corion | nothingmuch: That's an ugly idea. | ||
nothingmuch: You don't want propagation in both directions. | |||
(at least I don't want that) | |||
nothingmuch | one is inheritence, and defaultness | ||
this is not an object system | |||
Corion: yes I do | 20:42 | ||
Corion | because if you push values upstream, they propagate downstream through the whole tree again | ||
nothingmuch | that's exactly the point | ||
Corion | Ugh. | ||
nothingmuch | =) | ||
nevermind, it works | |||
Corion | Maybe you have a use case for it, but why not simply modify the parent. | ||
nothingmuch | i just need a name | ||
because the object modifying the child does not get to decide whether the parent sees it's changes | |||
it really is simply modifying the parent, except that it's in two steps | 20:43 | ||
autrijus | ok, I've decided: pugs will no longer bundle PGE; people who want rules need parrot trunk at all times; all PGE checkins happen at parrot tree. | ||
Corion | autrijus: One day, Pugs and Parrot should be one bundle ... That makes it easier for lazy people like me ;) | ||
autrijus | Corion: that day may be sooner than you think :) | ||
(and ponie too) | 20:44 | ||
nothingmuch | so! anybody got a nice name? Hierarchal is too long to type, methinks. It's not classes. Generic and Prototyped don't mean anything to me | ||
integral | ponie now uses svn:external thingies | ||
autrijus | yup, I asked for that :) | ||
jhorwitz | autrijus: trying to return exit code from system() but getting a type error. can you take a real quick look at a paste? probably really stupid... | ||
autrijus | sure. | 20:45 | |
eric256 | are junctions working? because my $choice; until ($choice == 'a' | 'b' | 'c') {} always gets skipped | ||
pasteling | "jhorwitz" at 216.52.77.2 pasted "for autrijus -- system() type error" (24 lines, 909B) at sial.org/pbot/10095 | ||
Corion | nothingmuch: I think there was some Config:: module that does Just What you need recently | 20:46 | |
eric256 | nm i;'m dumb | ||
autrijus | jhorwitz: that reads "liftIO" | ||
rv <- liftIO $ system cmd | |||
nothingmuch | Corion: we've looked at a whole lot of these, around two weeks ago... is it that new? | ||
eric256 | string eq not ==....so fucused on all the new stuff | ||
autrijus | it's a great way to ensure that this won't happen in an atomic{} block :) | 20:47 | |
Corion | nothingmuch: Hmmm. Around last week should have been it, yes. | ||
jhorwitz | autrijus: will try that. need to learn all these new things... :) | ||
autrijus | jhorwitz: you're in the Eval monad; to do IO things in an Eval monad, you need to lift it, that's all | ||
nothingmuch | search.cpan.org/~mgraham/Config-Con...Context.pm ? | ||
autrijus | also see liftSTM elsewhere for in-memory operations | ||
Corion | autrijus: Should I send a mail to p6l regarding S29 or do we simply take over? I don't want to subscribe to p6l as I [dw]on't read it. | 20:49 | |
nothingmuch | Corion: ? | ||
jhorwitz | autrijus: that did the trick. getting another error in the return, but i think i can handle it. :) | ||
autrijus | cool :) | 20:50 | |
(effect typing & dependent typing)++ # damn good idea | 20:51 | ||
Corion: er. sure, send a mail to rod, ccing p6l, about the plan | |||
Corion | nothingmuch: Aaah, I now get it - that URL was to me ;) Yes, that's the one I thought about I think. | ||
nothingmuch: Maybe "Templated" or something like that is also a good name for your stuff. | |||
nothingmuch | Corion: in that case, that thing is cool, but more than what we need for some things, and doesn't really work well with this hierarchal model progressing | 20:52 | |
the tree changes over time | |||
jhorwitz | autrijus: maybe a BOF at YAPC for those of us not going to the hackathon? | 20:53 | |
autrijus | jhorwitz: sure -- talk to rdice, not me :) | ||
I'm fine with BOFs | |||
I'll also stay around in the city for a while after the conf | 20:54 | ||
so if you want even more hacking, I'm fine with that too | |||
nothingmuch 's flight is late at night the day after YAPC ends | |||
so I can be available too | |||
autrijus | cool | 20:55 | |
I hear this year's going to be 500+ people | |||
nothingmuch | is that a lot or a little? | ||
ingy | autrijus: good job with release | ||
autrijus | nothingmuch: that is huge, for a yapc | ||
ingy: thanks :) | |||
nothingmuch | really? nice to know =) | 20:56 | |
autrijus | ingy: I want the io() primitive, seriously :) | ||
nothingmuch | YAPC::Israel averaged around 110 people | ||
autrijus | (along with everything that comes with it) | ||
ingy | I checked Perl6::Bible and seems up to date | ||
autrijus: what is the status of io() primitive? | |||
autrijus | ingy: it's OK'ed but not implemented yet. | ||
ingy | I was going to write about IO::All to p6l | ||
autrijus | ingy: first we need to write it into S29. | ||
which require a new champion for s29 | 20:57 | ||
pmichaud | and it needs p6l's blessing | ||
autrijus | pmichaud: Larry blessed it a while ago | ||
ingy | just to clarify my thoughts | ||
autrijus | except the < and > bits | ||
(replaced with <== and ==>) | |||
ingy | right | ||
I need to reread and make some points to the list | |||
pmichaud | autrijus: ah, I must've missed that. thanks. Then yes, we just need an S29 champion. I'd do it but prefer to spend my energies elsewhere -- another volunteer would be good | ||
autrijus | ingy++ | ||
pmichaud: exactly me thoughts :) | 20:58 | ||
s/me/my/ | |||
PerlJam hears Queen playing in the background | |||
must be my imagination ... ;) | 20:59 | ||
pmichaud | "where are the champions...?" | ||
Corion | Oh. And I just volunteered for S29, and the mail just went out ... | ||
pmichaud | "no time for losers... cuz we need a champion... yay!" | ||
PerlJam | Corion++ | ||
pmichaud | corion++ | ||
Corion | While I'm not really fond of io() | ||
PerlJam | Corion: why not? | 21:00 | |
pmichaud | corion: I can request commit privs for you to the perl6 repository | ||
so you can maintain s29.pod directly in the repository | |||
Corion | PerlJam: Perl5 open "|rm -rf" was a bad idea, and so is much of IO::All | ||
pmichaud: I thought S29 was in the Pugs repository? | |||
pmichaud | corion: pugs has been maintaining a separate draft for the time being | 21:01 | |
ingy | autrijus: I can write io() into S29 | ||
pmichaud | but it properly belongs in perl6/doc/trunk/syn | ||
ingy | or give it a shot at least | ||
Corion | (as the default. It's convenient if you know-what-you're-doing, but as the default, users don't know that) | ||
ingy is a champion | |||
pmichaud | I offerred commit access to rod, but he preferred to maintain it on his own site rather than learn svn | ||
or something like that | |||
Corion | pmichaud: Hmmm. Oh well. So I'll have to get yet-another-login/password ... | ||
as long as it's svn that's OK. | |||
pmichaud | corion: you're welcome to maintain it wherever you wish | 21:02 | |
Corion | maybe I should install svk locally | ||
ingy | pmichaud: I'll email Rod about it | ||
PerlJam | Corion: It's not a bad idea, just a tool to be used with care. At least in perl6 open() won't be that tool anymore. | ||
pmichaud | ingy: well, if corion will take over S29 then it all works out I think :) | ||
Corion | PerlJam: ??? If instead of open() you now say io(), people will use that as a backdoor | ||
ingy | oh ok. i missed that | 21:03 | |
Corion | PerlJam: If io() starts a webserver, that's a huge security hole. the file/directory traversal part of io() is cool, the rest is a bad idea. | ||
ingy: Feel free to take S29 instead of me - I'm not really sure I should be doing this :) | |||
ingy: It would also get io() much more power :) | |||
PerlJam | Corion: perl's job is to provide options. It's the community's job to come up with best practices or other means of preventing people from shooting themselves in the foot. | ||
ingy | Corion: I'll give io() a first draft | ||
I don't want all of S29 btw :p | 21:04 | ||
Corion | PerlJam: It took Perl5 up to 5.6.x to get the three-arg-open(). I don't want this problem in Perl6. | ||
meppl | guten abend | ||
Corion | ingy: Bah ;) | ||
pmichaud | *nobody* wants S29 :-) | ||
what we really need is someone to champion it and farm out specs to others | |||
or coordinate patches | |||
PerlJam | meppl: guten tag :) | 21:05 | |
pmichaud | I'll be glad to coordinate patches to S29, I just don't want to be writing the contents | ||
ingy | pmichaud: an S29 Pumpking! | ||
pmichaud | actually, I'll coordinate patches to any design document :-) | ||
Corion | PerlJam: io() opens a giant load of security holes if it opens server ports. Client ports are convenient, but not really necessary either in the sense of DOS attacks. | ||
meppl | nett . | ||
ingy | a dubious title indeed :) | ||
Corion | ingy: If we have persons in charge of the ~~ operator, we can also have Pumpkings in charge of S29 | 21:06 | |
ingy | heh | ||
ajs | I can take S29... what's the worst that can happen, right? ;-) | ||
pmichaud | well, if Rod is stepping down as S29 coordinator, and if there's no immediate replacement, I'm probably going to just take the existing S29 and put it in the perl6/docs repo | ||
ajs | pmichaud can tell me where I get it wrong :) | 21:07 | |
pmichaud | and I'll take patches from there. It would help me to see them all as they come in :) | ||
ingy | lunch & | ||
meppl | guten abend perljam | ||
so | |||
good evening perljam | |||
autrijus | how about this -- ajs collects suggestions and new checkins | ||
and hand them to pmichaud for perl6/docs/ | 21:08 | ||
once it hits there, it's considered to be the current consensus :) | |||
pmichaud | that's perfect | ||
others can send me patches directly, and I'll either forward them to ajs or check them in directly as appropriate | |||
autrijus | cool | ||
pmichaud | but ajs can be the point person for it :) | ||
autrijus | and pmichaud can ensure its sanity | 21:09 | |
(or lack thereof) | |||
Corion feels relieved :))) | |||
pmichaud | or at least point out the seemingly insane parts | ||
autrijus | Corion: :) | ||
pmichaud | corion: you're not off the hook, you still have to submit patches :) | ||
autrijus | but at least he won't feel compelled to read the p6l firehose :) | ||
pmichaud | indeed. All of the lists have been quite a firehose lately, and I suspect it will get bigger throughout the summer | 21:10 | |
Corion | indeed :) | ||
I can sit back and snipe at everybody :) | 21:11 | ||
PerlJam | just wait until we have a "real" perl6 compiler | ||
"pugs says this, but perl6 says this. Who's correct?" | |||
ajs | pugs was here first :) | ||
Corion | PerlJam: I don't see any "real perl6 compiler" in the near future | ||
ajs | or does the homesteading thing not work :-) | ||
PerlJam | Corion: I do. | 21:12 | |
Odin-LAP | Hmm. | 21:13 | |
Corion | PerlJam: Once the run time library is native (to the "real" Perl6 compiler) that maybe starts to happen, but writing a (cross-platform, native) runtime library is hard even if you steal from Perl6 | ||
err - steal from Perl5 | |||
Odin-LAP | What is really needed is a way to transport pugs from Haskell to Perl6... | ||
autrijus | Corion: don't underestimate the parrotfolks :) | ||
PerlJam | Corion: pm has said there will be an alpha perl6 compiler before the end of the third quarter this year. I think he's a little optimistic, but I think than an alpha perl6 compiler is defeinitely doable this year. | ||
Odin-LAP | And essentially turn it into the "real" compiler... | ||
Corion | autrijus: Yeah, maybe I underestimate them | ||
autrijus | I see three bootstrapping routes from here; the good thing is, all three routes complement each other | 21:14 | |
and can work in a concert | |||
Corion | Heh. 1 unexpected success in r3126 - datenzoo.de/pugs/win2k.html | ||
wolverian | autrijus: could you explain them? :) | ||
autrijus | Redundant Array of Insane Hackers | ||
PerlJam | autrijus: 3? which are they? | ||
autrijus | PerlJam: #1 is writing a PugsAST/PIR backend for Jhc/GHC, so we can compile Pugs itself to P6/PIR | 21:16 | |
(and from there, use Pugs's Perl6->Parrot codegen) | |||
pmichaud | pj: I'm more optimistic about it than ever | 21:17 | |
not only do I think we'll have a parrot p6 compiler by Q3 this year, I'm really hoping for OSCON | |||
autrijus | #2 is to use Pugs's Perl6->Parrot codegen monad and AST, but instead of compiling haskell to pir/p6, we translate the generating parts by hand into pir/p6. | 21:18 | |
this assumes that the parser is already in p6 rules. | 21:19 | ||
pmichaud | and of course, there's the pure p6/parrot bootstrap, which is the direction I'm still heading (no reflection on pugs) | 21:20 | |
autrijus | and also that we can compile the translated p6 code to pir | ||
yes. #3 is writing the codegen and ast transformer in perl6. | |||
or writing them in pir, and backtranslate to p. | |||
or writing them in pir, and backtranslate to perl6. | |||
wolverian | did you just try to tab-complete 'perl6'? :) | ||
autrijus | no :) | ||
Juerd | 20:51 < autrijus> $foo .= chomp; | 21:21 | |
20:51 < autrijus> if you want destructive chomp | |||
20:51 < autrijus> iirc it's been proposed by Juerd. | |||
svnbot6 | r3127 (corion) -- Match capture variables $1 ... now reset after a failed match. Also promoted a hardfail() to eval_ok() | ||
r3126 (corion) -- More tests moved out of t/pugsbugs/ | |||
Juerd | Yes, but there was no discussion about non-method chomp | ||
autrijus | pmichaud: there needs to be a "lifting" stage anyway... if you write parser, codegen etc in PIR, there still needs to be a PIR->Perl6 compiler or hand translation | ||
that is not entirely different from Haskell->Perl6 :) | |||
pmichaud | hand translation, likely | 21:22 | |
Juerd | .= has been blessed, but as far as I know, there has been no specific ruling on the consistency of non-.= methods | ||
autrijus | yeah. and whenever there's hand translation, there's potential difference in semantics | ||
Juerd | I want them to consistently not-mutate, though. | ||
pmichaud | but yes, there's a lifting stage no matter what | ||
autrijus | and that's where our 7000 tests come into play :) | ||
PerlJam | autrijus: And which of the 3 will you be working on? :) | 21:23 | |
autrijus | PerlJam: likely all 3 | ||
PerlJam | I think #2 probably has the best chance | ||
Juerd | 7000 already | ||
autrijus | PerlJam: the beauty is that they can _all_ work at th same time :) | ||
PerlJam | unless pm takes that as a challenge and steps up #3 just to spite me :) | ||
Juerd | Are there statistics about the number of tests, over time? | 21:24 | |
I wonder if there's some moore-like law to be found :) | |||
autrijus | if all three works, we get, a parrot-native haskell compiler, a codegen that can compile perl6 to PIR, C#, C-- | ||
Juerd | "the number of tests doubles every $x days" | ||
pmichaud | pj: I did say that I already have a bottom-up parser in PIR :) | ||
right now I'm working on the operation subroutine specs | |||
autrijus | and crazy two-way round tripping between various ASTs | ||
well, not that crazy | 21:25 | ||
scheme people had that, like, forever | |||
Corion | round-tripping is important for compiler regression testing - if the second round of round-trips changes anything, you've got bugs. | ||
autrijus | but it'd be new to perl :) | ||
pmichaud | so far I'm able to handle prefix:, infix:, postfix:, postcircumfix:, circumfix:, and term: into the parser | ||
I'm basically missing the metas and coerce: | |||
ajs | autrijus: Has CL gotten past that stage yet? ;-) | 21:26 | |
autrijus | ajs: sadly I know nothing about CL :) | ||
svnbot6 | r3127 (corion) -- Match capture variables $1 ... now reset after a failed match. Also promoted a hardfail() to eval_ok() | ||
ajs works in a CL shop, but not a CL guy... it's on the list | |||
autrijus | PerlJam: also, re: which parts will I be working on... I'll use whatever that works :) | 21:27 | |
Juerd | pmichaud: Does statement: fit in that list, or is it parsed more sub-like? | ||
pmichaud | I'm planning that statement: will be handled top-down | ||
statement: and statement-modifier: are likely to be the interface between the top-down and bottom-up parsing regimes | |||
autrijus | PerlJam: however, I don't see codegen and reduction logic going away from Haskell to PIR or P6 any time soon | 21:28 | |
pmichaud | autrijus: unfortunately, I can never be sure what "not soon" means when you say it :-) | ||
autrijus | PerlJam: the correctness guarantee offered by GADT is not easily replaced -- not until we make sure P6 offers something like that :) | ||
ajs | pmichaud: where do I get my hands on the current state of S29? | 21:29 | |
Corion | We simply port GHC to Perl6 | ||
autrijus | Corion: that's #1 :) | ||
pmichaud: it means, I think, at least a couple months | |||
pmichaud | well, I'll answer with a reverse-question -- what's the status of the S29 that's living in the pugs repo? | ||
wolverian | maybe someone should ask about perl6's equivalent of GADTs on p6l. | 21:30 | |
pmichaud | Rod's latest draft is in www.rodadams.net/Perl/S29.pod | ||
wolverian | (someone that understands them, that is. which is not me.) | ||
autrijus | pmichaud: no difference. | 21:31 | |
eric256 has nearly completed an OO mini RPG for pugs. ;) | |||
autrijus | well, three empty newlines :) | ||
eric256: oh. wow! | |||
21:32
knotty_ is now known as knotty
|
|||
pmichaud | well, ajs, if they're both the same, then you can use either one for now. Just send me one when you're ready and I'll replace it in the syn tree | 21:32 | |
and we'll call it official then | |||
autrijus | fwiw, I don't think I like the idea of Pugs and Perl6 having different semantics, really :) | 21:36 | |
I'd much rather to share all of <grammar codegen ast> :) | |||
and simply solve intermediate technical problems that prevents sharing, by eg. embedding and extending | 21:37 | ||
pmichaud | I don't think Pugs and Perl6 should have different semantics either, and yes, we can share wherever we can :) | ||
autrijus | and where translation absolutely must happen, write compiler instead of translate by hand :) | 21:38 | |
(because hand-translation lose semantics) | |||
but that's just my preference. :) | |||
PerlJam | automate automate automate | ||
pmichaud | we just want to make sure we don't end up with a piece that we only have in a compiled form with no way to rebuild it | 21:39 | |
autrijus | right. and we do that by keeping the master source is the current most readable/writable form | ||
Juerd | Aw, so I can't go and write bytecode by hand? :( | ||
autrijus | and compile it down to other representations as needed :) | ||
pmichaud | exactly | 21:40 | |
autrijus | from that POV, P6 should be the master source (provided no semantic is lost) | ||
PerlJam | autrijus: so ... the source will be in XML? :> | ||
autrijus | PerlJam: no, in EBCDIC UTF-9 | ||
encoded as aperiodic Wang tiling patterns | 21:41 | ||
eric256 | does map still work the same or do i need to go relearn map? ;) | 21:44 | |
autrijus | not exactly the same | ||
map foo($_), @bar; # no longer works | |||
need to write | |||
map { foo($_) } @bar | |||
or | |||
@bar.map:{ foo($_) } | |||
in other words, implicit closure form is verboten | |||
ajs | pmichaud: the only difference between those two versions is the one in the repository has a "=for review" around line 143 | 21:47 | |
integral wonders what uses Show Pad | 21:50 | ||
eric256 | hehe i started with junctions and a given but they have been refactored out. lol ;( | 21:51 | |
map seems to be flattening into a string.... | 21:53 | ||
autrijus | integral: the compiler used to use that, but no longer | 21:59 | |
integral: so it's there just so Env can be Show sensibly | |||
integral: feel free to raze it! | |||
integral | YAY! | ||
autrijus | found a spot to attack finally? :) | ||
integral | just a few bits, unfortunately | 22:00 | |
it's seeing the structure that's hard | |||
clkao | *yawn* | 22:03 | |
pmichaud | ajs: (sorry for delay) -- okay, I'll just copy S29.pod into the repository then -- will have to do it a bit later | ||
eric256 | if i do $person.weapons{'a'} = Weapon.new(:name("sword"), :power(5) ); | 22:05 | |
how would i then access that ? $person.weapons{'a'} right? | |||
autrijus | I imagine so, yes | 22:07 | |
pmichaud | ummm, wouldn't you want %person.weapons{'a'} there ? | ||
autrijus | see Set.pm for a working example | ||
hm? | |||
sigil is invariant, no? | |||
$person is the object | |||
$person.weapons is the accessor | |||
pmichaud | ah, okay, I was misreading it | 22:08 | |
eric256 | so then i have | ||
$self.weapons.keys.map:{ "\t" ~ $_ ~ "-attack with " ~ $self.weapons{$_}.name ~ "\n"}; | |||
autrijus | oh btw. | ||
you can write | |||
eric256 | but the $self.weapons{$_}.name doesn't like me at all. | ||
autrijus | "\t$_-attack with $self.weapons{$_}.name\n" | ||
eric256: check in your code under examples/ so we can see you? | 22:09 | ||
eric256: your email please -- I'll make you a committer :) | |||
pmichaud | what is .name there? | ||
does it need to be .name() ? | |||
eric256 | [email@hidden.address] | ||
autrijus | .name() yes. | ||
eric256 | .name is an attribute of the Weapon class | ||
autrijus | inside strings, that is | ||
eric256 | ohhh | ||
autrijus | outside strings, I think .name should still work, no? | 22:10 | |
pmichaud | outside strings .name should work, yes | ||
method accessors inside strings always require after the last one | |||
eric256 | *** Error: No compatible subroutine found: "&name": | ||
pmichaud | s/require/require ()/ | ||
eric256 | and if i put it all in the string i get "s-attack with <obj:Person>.weaponss.name" | ||
autrijus | oh. hm | 22:11 | |
try | |||
clkao | 6.2.3 coming out? | ||
autrijus | .weapons(){$_} | ||
clkao: already | |||
clkao | autrijus++ | ||
autrijus++ # while i was partying | |||
autrijus | eric256: ah. I see why. | ||
our MMD was not dealing with untyped Hash | 22:12 | ||
so you probably need to say | |||
my $weapon = $.weapons{$_}; | |||
... $weapon.name ... | |||
btw, $self.weapons can be written as $.weapons | |||
or, even better | |||
my Weapon $weapon = $.weapons{$_}; | |||
$weapon.name; | 22:13 | ||
that's a bug... but you can't yet specify | |||
has Weapon %.weapons; | |||
Juerd | Even better: s/=/:=/ :) | ||
autrijus | well it can, but wouldn't work | ||
yeah, := too | |||
hierarchical types gives me headaches | |||
so will probably need to wait a while | |||
a while being a few weeks | |||
eric256 | i'm now completly lost. ;) | ||
Juerd | There's enough to do to take weeks | ||
eric256 | i'll rewrite then to not use a map and use some temp variables? | 22:14 | |
autrijus | something like that. | ||
commit the code? :) | |||
(invitation has been sent to your gmail account) | 22:15 | ||
as examples/some_rpg_game_name_here/ or examples/games/some_rpg_game_name_here/ | |||
eric256 waits for invite | |||
Juerd | 101 days | 22:16 | |
101 people in AUTHORS | |||
autrijus | cool | ||
Juerd | Yea | ||
eric256 | can i commit thru SVN? | 22:17 | |
autrijus | yes | ||
just "svn ci" | 22:18 | ||
you may need to "svn add" first | |||
welcome aboard, btw :) | |||
eric256 crosses his fingers and hopes | |||
added as wizard.p6 in examples/games | 22:19 | ||
autrijus | nice! | ||
eric256 | of course this is the now broken version. ;) | ||
autrijus | that's fine. I'll boot to freebsd now to haxx0r on that | ||
brb. | |||
pmichaud | well, all, gotta run for a while. bbt | ||
eric256 has to run for a while... later | 22:22 | ||
svnbot6 | r3128 (eric256) -- Wizard RPG game based sort of on the one from Perl Monks | ||
stevan | I just had a MetaModel "ah-ha" moment :) | 22:32 | |
I will try and record it later | |||
mugwump: ping me when you wake up | |||
mugwump | ok | 22:33 | |
I'll let you know... still haven't had my morning coffee yet | |||
22:33
sbkhh is now known as Odin-
|
|||
mugwump | autrijus++ # fixing Set.pm | 22:33 | |
autrijus | eric256: fixed. | 22:37 | |
it uncovered two bugs: | |||
svnbot6 | r3129 (autrijus) -- * wizard.p6 runs. | ||
r3128 (eric256) -- Wizard RPG game based sort of on the one from Perl Monks | |||
autrijus | 1. "$obj.method() foo" will eat the space between ) and f | ||
2. "when (1|2) { ... }" doesn't work. | 22:38 | ||
i.e. always match fails against junctions | |||
tests welcome for both of them. | |||
autrijus killed the Army of Frogs multiple times | |||
crysflame | heh! gotos dont kill people, stupid programmers do | 22:39 | |
seen elsewhere | |||
jabbot | crysflame: I havn't seen elsewhere , crysflame | ||
crysflame | oh | ||
this is #perl6. | |||
crysflame curses yet again and switches two windows leftward. | |||
cognominal | my @a = << %ENV<PATH> >> # can someone explain? | 22:41 | |
I would expext it to be an array containing the current PATH | 22:42 | ||
mnic | I really don't like the trinary operator in 6. I mean, why must say '??' and '::'. Larry's explanation doesn't satify me. | ||
autrijus | mnic: hm? || and // etc shortcuts | ||
svnbot6 | r3129 (autrijus) -- * wizard.p6 runs. | ||
r3130 (autrijus) -- * minor fixups | |||
autrijus | i.e. they may cause its operand to not evaluate | 22:43 | |
unlike almost all other operators | |||
clkao | tha really looks like lots of autrijus-- | ||
obra | autrijus: we missed you today | ||
autrijus | obra: :) | ||
clkao | the bot needs ot make author++ | ||
autrijus | you had fun? | ||
clkao: sure, fix it? it's in examples/network/svnbot.p6 | |||
you are, incidentally, a committer now. | 22:44 | ||
Welcome aboard :) | |||
mnic: but anyway. ?? and :: looks like || and // to denote short circuiting | 22:45 | ||
mnic | ok | ||
autrijus | and frees ? for boolification and : for adverbs | ||
so I think that's a win | |||
$person.weapons<a> = Weapon.new(:name<sword>, :power(5) ); | |||
that looks quite neat thanks to the : :) | |||
mnic | okay, i will look into it more. | 22:46 | |
I just use stuff like this all the time: my $var = ($a == 10) ? $a : $b; | 22:47 | ||
And I don't like changing that to: my $var = ($a == 10) ?? $a :: $b; | |||
mugwump | where are adverbs described? | ||
autrijus | mugwump: all over the place | ||
there's adverbial pairs, adverbial blocks, adverbial parameters | 22:48 | ||
and more | |||
cognominal | I don't see Pair as a native type in S06.pod. Is this a shortcoming? | ||
also, I am surprised to see | |||
pugs> ref (a => 'b') | 22:49 | ||
::Scalar | |||
I would expect ::Pair as a result | |||
knewt | jesus. 42 commits since i last synced up to trunk. (although some of those will be from when mainline was down, so i will have seen them on the fallback) | 22:50 | |
autrijus | 42 is normal :) | ||
knewt | sorry. 142 | ||
autrijus | cognominal: literals are flattened, I think | ||
aw. | |||
pugs> my $x = :a<b>; $x.ref | |||
::Pair | |||
Shillo | Hullo! | ||
knewt | autrijus: 142, not 42 *g* | ||
autrijus | cognominal: but I'm not exactly sure. | ||
clkao | why is svnbot so slow | 22:51 | |
to get on irc | |||
autrijus | clkao: sleep 300 | ||
also you need to pass it various parameters | |||
clkao | have to invite | 22:52 | |
i have no op! | |||
22:52
ChanServ sets mode: +o autrijus,
autrijus sets mode: +o clkao
|
|||
clkao | doesn't work! | 22:52 | |
autrijus | what's the bot name? | 22:53 | |
clkao | svntest | ||
autrijus | it worksforme. | 22:54 | |
clkao | eek | ||
autrijus | the log reads | ||
Ā» Got an invitation from "autrijus!~autrijus@220-132-132-105.HINET-IP.hinet.net" to join channel "#perl6". | |||
Ā» Joined channel "#perl6". | |||
clkao | i don't get that log | 22:55 | |
commit something! | 22:57 | ||
autrijus | ... | ||
svnbot6 | r3131 (clkao) -- for svnbot.p6: | 22:59 | |
r3131 (clkao) -- * Increase karma for author that commits. | |||
r3131 (clkao) -- * Accept additional repository ARGV so you dont need a svn wc. | |||
r3132 (autrijus) -- * reformat VICTUALS a bit | |||
clkao | oh it's per-line! | 23:00 | |
karma autrijus | |||
svntest | r3131 (clkao++) -- for svnbot.p6: | ||
r3131 (clkao++) -- * Increase karma for author that commits. | |||
r3131 (clkao++) -- * Accept additional repository ARGV so you dont need a svn wc. | |||
r3132 (autrijus++) -- * reformat VICTUALS a bit | |||
jabbot | clkao: autrijus has karma of 145 | ||
clkao grins | 23:01 | ||
and i don't need svn wc to run that. | |||
obra | clever | 23:02 | |
clkao | obra++ # autrijusized | 23:03 | |
autrijus | clkao++ # writing p6! | ||
now let's just get svn.perl.org/ponie/trunk/ going a bit | |||
and the entire svk can be converted bit by bit to p6! | |||
clkao giggles | |||
obra | autrijus: we were discussing it with nichloas | ||
clkao | if you can do the io layer crap | ||
obra | one of the issues is the lack of support for svn:externals in svk right now | 23:04 | |
autrijus | clkao: the support is there already ParrotIOLayer | ||
clkao | we'll sort out proper way for him to do venodr branch | ||
autrijus: but in perl6 land i need! | |||
if you can demostrate perlio::via::dynamic | |||
autrijus | clkao: right... write tests ;) | ||
clkao | but if shouldn't require that magic for that | ||
which synopsis is for that? | 23:05 | ||
"it's like perl... but less hateful!" | |||
autrijus | clkao: perlio? I think it ties to the io() primitive | ||
clkao: Larry ok'ed IO::All in core | 23:06 | ||
clkao | (!) | ||
autrijus | clkao: so work with ingy to get that section written | ||
clkao | but layers? | ||
i refuse to | |||
autrijus | IO::All has layers | ||
clkao | that will keep reminding me storable in cookie | ||
autrijus | but hey, just design it the way you see fit | ||
clkao | so there's no explicit synopsis for layered io yet? | 23:07 | |
autrijus | $handle.layers.push(':utf8'); | ||
clkao | oh. | ||
autrijus | clkao: svn.perl.org/perl6/doc/trunk/plans/...n_docs.pod | ||
it's on the list next to threading | |||
so pretty high priority | |||
clkao | as in to be documented? | 23:08 | |
autrijus | yeah | ||
or as in to be OK'ed | |||
clkao | alright. so it's wild land | ||
autrijus | when presented with sane designs | ||
it is :) | |||
autrijus notes that PerlIO is also a wild land thing | 23:09 | ||
it's less than 3 years old :) | |||
(the layers as we know it) | |||
clkao | grr | ||
autrijus | but really, read pdd01 :) | 23:10 | |
in particular, in parrot you have | 23:11 | ||
$P0 = open "svk.elixus.org/", "<:utf8" | |||
clkao | YUCK! | 23:12 | |
that in parrot? | |||
do you mean that the vm speaks http? | |||
WTF | |||
autrijus | the vm speaks URI. | ||
how it is handled depends on scheme registers. | |||
clkao | and how does it callback? | ||
phew | |||
ok | |||
autrijus | registered scheme handlers, that is. | ||
misc | autrijus: it could potentially use "open irc://..." :) | 23:13 | |
autrijus | yes :) | ||
clkao | ok i need to do something interesting tomorrow or i'll die | 23:14 | |
obra | clkao: we'll find things | ||
clkao | good | ||
rindolf | Does anyone here has op on #perl? | 23:21 | |
23:21
autrijus sets mode: -o autrijus
|
|||
rindolf | autrijus: here? | 23:21 | |
autrijus | rindolf: yes? | ||
I'm not #perl op. | |||
rindolf | autrijus: that's OK. | 23:22 | |
autrijus: someone was spamming #perl. | |||
eric256 | 10autrijus01: did i see you say that you fixed the issue with my code ;) your amazing! ;) | 23:23 | |
rindolf | He no longer does. | ||
revdiablo | anybody know what CEST timezone is in relation to GMT? | ||
+2 hours? | 23:25 | ||
mugwump | isn't CEST a junction of timezones? | ||
revdiablo | listed as Central European Summer Time | 23:26 | |
www.timeanddate.com/library/abbrevi...timezones/ | |||
I just googled it :) | |||
mugwump | TZ=CET date | ||
eric256 begines to recompile ;) guess i should make some tests for that case ehh? | 23:27 | ||
autrijus | eric256: the fix is just in the .p6 -- no need to recompile :) | 23:28 | |
also, if compilation is slow, "make unoptimised" will help | |||
eric256 | cool. ohh i thought you fixed the code. so the bug is still there. you just bypassed it in the .p6. thanks! | 23:29 | |
autrijus | yup :) | ||
eric256 | if/else works in a given? | 23:30 | |
autrijus | now would be an excellent time to commit into t/ :) | ||
sure, given is not special | |||
given just sets $_ | |||
and set scope for when exit | |||
that's all it does | |||
so you can use it freely without when{} | |||
eric256 | ohh. didn't know that.. cool. | 23:31 | |
mugwump | ah, no, it's all<CDT CST EDT EST> that are junction timezones | ||
ie, CDT refers to one<+10:30 -5:00>, CST to one<+9:30 -6:00>, etc | 23:33 | ||
svnbot6 | r3133 (revdiablo) -- fixed debian/changelog datestamp lines to conform to parsechangelog's regular expression | ||
svntest | r3133 (revdiablo++) -- fixed debian/changelog datestamp lines to conform to parsechangelog's regular expression | ||
mugwump | svntest, svnbot6, duke it out | 23:34 | |
eric256 | so when is different than if how? | ||
revdiablo | the only difference is svntest increments the karma for each commit? | 23:36 | |
autrijus | revdiablo: svnbot6 will do that after a restart | 23:37 | |
eric256: when topicalises $_ | |||
when 3 { ... $_ is now 3 ... } | |||
if 3 { ... always true ... } | |||
er sorry | |||
I thought given {} | |||
when {} is smart match against $_. | |||
when FOO { ... } | |||
is like | |||
if ($_ ~~ FOO) { ... } | |||
eric256 | lol. okay. so you can use it outside of given blocks. the two just work together to make a pretty case like statment | 23:38 | |
autrijus | yes. | ||
I'll bbl | |||
& | |||
ninereasons | stevan, should all the 'force_todo' s be changed to per-line :todo<reasons> ? | 23:39 | |
mugwump | I think so, ninereasons | 23:42 | |
ninereasons | me too, mugwump. I think I'll go do some of that. | 23:43 | |
eric256 | okay so i'm righting a test that i know it fails right now... where should i put it? or how should i mark it? | 23:44 | |
mugwump | ninereasons: eg, commit 3083 does that | ||
also r2762 | 23:45 | ||
(searchable commit messages)++ | |||
eric256, you meen "writing", presumably, "righting" would be "to make right", or correct | 23:46 | ||
put :todo<feature>, :todo<bug>, etc at the end of the is()/ok()/... arguments | 23:47 | ||
eric256 | yes writing...it's like 80 degrees at my desk ;) | ||
ok($pass == 1, 'when', :todo <bug>); | 23:48 | ||
mugwump | jabbot, (80 - 32) * 5 / 9 | ||
jabbot | mugwump: But your desk. | ||
eric256 | liek that? | ||
mugwump | looks right to me, though I'd write that as | 23:49 | |
is($pass, 1, "when", :todo<bug>); | |||
revdiablo | how do I get pugs to build with embedded parrot? I have to tell pugs where parrot is, or something? | 23:50 | |
eric256 | i was then doing 'pugs junction_any_pick.t' to run it but it yells at me. is there some other way i can run the test to make sure it behaves? | 23:51 | |
mugwump | eval_ok() is the normal way for correct code which doesn't parse yet | ||
eric256 | but it is the :todo part that is not parseing yet. | 23:52 | |
mugwump | um... :todo<> definitely works :) | ||
eric256 | *** Error: No compatible subroutine found: "&todo": NonTerm (MkPos "junction_any_pick.t" 55 23 55 33) at junction_any_pi | 23:53 | |
ck.t line 55, column 1-34 | |||
runs fine without the :todo <bug> part | |||
mugwump | drop the space? | ||
eric256 | aha! | ||
mugwump | this is Perl, it's only whitespace insensitive when the whitespace doesn't make the code look different ;) | 23:54 | |
autrijus | revdiablo: yes. read README and run Makefile.PL? :) | ||
eric256 | thanks...now to find a better file to house this test in...any_pick is not right | ||
obra | autrijus: did you hack SetupSessionCookie to deal with chinese rtnames? | 23:55 | |
autrijus | revdiablo: set PUGS_EMBED env to 'parrot' and PARROT_PATH to source of a completed parrot build dir | ||
obra: no, I outlawed them | |||
eric256 | [autrijus] any idea where a good home for the when test would be? | 23:56 | |
autrijus | not sure if I merged back though; although a good utf8-happy cookie is generally useful | ||
eric256: I don't know, improvise! | |||
merge into t/statements/given.t perhaps | |||
but other ways are fine too | |||
just improvise :) | |||
eric256 | i just don't want to tick someone off. ;) i figure i would right some test cases for junctions/given and just didn't know where to stick it. so i guess i'll hunt around and stick it where i want! (: | 23:57 | |
mugwump | if someone doesn't like it they can just move it | 23:58 | |
autrijus | right. | 23:59 | |
think wikipedia. it's impossible to accidentally tick other people off... |