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...