»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by diakopter on 25 January 2010.
jnthn Didn't get to sorting out match-y stuff tonight...but other bits were nice to have. :-) 00:06
arnsholt Question: Where does the implementation of gather/take live in Rakudo? (ng branch) 00:07
jnthn arnsholt: See src/cheats/gatheriterator.pir 00:09
and src/builtins/control.pir for take
arnsholt Cheers! I've hacked together a simple version in Ruby, but I'd rather like to see how you clever people have done it =) 00:11
jnthn -> rest 00:31
Tene arnsholt: you might like the version in rakudo master better 00:32
arnsholt: in src/builtins/control.pir for both of them.
arnsholt Tene: Thanks. And you're probably right 00:33
arnsholt The ng one is lazy, and implemented with coroutines. Which kinda makes me go cross-eyed. My Ruby hack just uses dynamic scope 00:33
Tene does ruby have resumable exceptions? 00:34
that's the core of rakudo's implementation 00:35
arnsholt I honestly have no idea. But I don't think so
And that feature is ludicrously devious and useful
Tene blade.nagaokaut.ac.jp/cgi-bin/scat....talk/96526 00:36
mentions an implementation
arnsholt Hmm. Interesting 00:37
Tene hmm...
arnsholt ATM I just use an accumulator variable with dynamic scope
arnsholt Coming from a bout of Lisp programming, it seemed like the obvious choice. Only drawback is that it makes the accumulator available for fiddling from client code 00:38
Which might cause problems
mberends curious differences between 32-bit and 64-bit spectest results: 00:42
"pass","fail","todo","skip","plan","spec"
mberends 3310, 17, 77, 301, 3705, 15914 # 32-bit 00:42
3110, 19, 77, 301, 3497, 15706 # 64-bit 00:43
will pinpoint the diff after real sleep(3600 * Whatever); 00:45
frettled phenny: tell mberends mberends++ for the stats 00:50
phenny frettled: I'll pass that on when mberends is around.
frettled PerlJam: I went ahead and blogged about exponent notation, maybe one of the three people reading my blog have some useful input. :) 00:51
diakopter . 01:18
sjohnson hi 01:19
pugs_svn r29685 | lwall++ | [p5arrow.t] deleted 01:33
patspam strolls past and throws some coins into the Perl6 People Are My Heroes tin 03:08
mugwump t/spec/S02-literals/quoting-unicode.rakudo ..................... Dubious, test r 03:08
30e0ed39521 03:09
eternaleye mugwump: Is this on the master or ng branch? Most of the current development is occurring on ng, master's been pretty quiet lately 03:10
mugwump that's master 03:11
parrot r43487
(ie head really)
er, ok not head 03:12
colomon okay, what the heck is wrong with abs? 03:37
ng: 5.abs.WHAT.say
p6eval ng 2d8d82: OUTPUT«Num()␤» 03:38
colomon pmichaud, jnthn: can you guys think of any reason that calling .abs on an Int would dispatch to Any.abs rather than Int.abs? 03:45
If I call .abs on a Rat or a Num it goes to Rat.abs or Num.abs. 03:46
TimToady hmm 03:47
ng: say Int ~~ Num
p6eval ng 2d8d82: OUTPUT«1␤»
TimToady well, that's wrong, I think
though I don't know if it's related
colomon agreed on both parts. 03:48
TimToady but you might figure out what sets that and break it to see what happens
ng: say Int ~~ Numeric 03:49
p6eval ng 2d8d82: OUTPUT«sh: ./perl6: No such file or directory␤»
colomon ng doesn't have Numeric yet.
TimToady looks like someone needs to implement transactional make snapshots too... 03:50
colomon that would be lovely, for sure. 03:51
hmm, I really don't see how Int gets to be Num, unless it's happening a parrot level. 03:54
Int is parrot;Integer and Any, Num is parrot;Float and Any.
hmmm... 03:57
ng: 50.sign.WHAT
p6eval ng 2d8d82: ( no output )
colomon ng: 50.sign.WHAT.say
p6eval ng 2d8d82: OUTPUT«Int()␤»
TimToady ng: (50*1).WHAT.say 03:58
p6eval ng 2d8d82: OUTPUT«Int()␤»
colomon is having trouble concentrating on weird ng behavior when he's just learned there will be three Newfoundland groups performing in on his side of Ontario this August... 04:10
oh, hey, sign always returns an Int. need to insert more debugging says... 04:11
nope, it does dispatch to Int.sign. 04:13
colomon afk, time for bed 04:38
flip214 Hi everyone 07:33
mberends hi flip214 07:34
phenny mberends: 00:50Z <frettled> tell mberends mberends++ for the stats
mberends :-) working on more stats
mberends do try this at home: git log | perl -ne'/Author: (.+) </;$a{$1}++;END{print "$a{$_} $_\n" for sort{$a{$b}<=>$a{$a}} keys %a}' 07:35
pugs committers 2005-2007: svn log | perl -ne'/^r\d+ \| .+ \| (\d{4})-\d{2}-\d{2}/;if ($1>=2005 and $1<=2007){/\| (.+) \|.+\|/ and $a{$1}++};END{print "$a{$_} $_\n" for sort{$a{$b}<=>$a{$a}} keys %a}' 07:41
flip214 Learning Common Lisp currently I see increasingly that the P6 and CL are very, very similar, if you look deep enough 07:42
avar mberends: git log --pretty="format:%an" --abbrev-commit | sort | uniq -c | sort -nr 07:46
mberends avar: thanks, I can use that in some procrastination that I'm considering 07:48
moritz_ good morning 08:50
mberends good morning moritz_ 08:51
moritz_ Su-Shee: aye; it's what taught me proper object orientation 08:55
Su-Shee moritz_: I've read around a little yesterday and it's really eceptionally clear and realistic. I love it. 09:03
Su-Shee moritz_: and without metaphors ;) 09:03
moritz_ Su-Shee: and useful examples (at least some of them) 09:14
I remember an example design of a undo/redo functionality for a text editor
Su-Shee moritz_: seems like the man should update after 13 years for a new edition ;) 09:16
moritz_ aye 09:17
Eiffel got some nice new features in the mean time too
Su-Shee I've never considered this book due to Eiffel.. 09:21
Su-Shee though it's really often recommended. 09:21
moritz_ aye; but it would be nice to see what Mr. Meyer has to say to Actors 09:23
(which are kinda like closures, or not... not sure)
Su-Shee send fanmail :) 09:25
this year, the bible of electronics comes in a new edition. people waited for since end of the 80ies :) 09:26
mathw Good localtime, #perl6 09:31
frettled indeed it is 09:43
mathw well it's not really 09:46
I've got a headache and my legs hurt
but I hope it's good for everyone else
frettled We can pretend.
mathw we can 09:47
there are many ways in which it could be worse
but this headache is of the irritating, axe through the head kind
moritz_ ng: say 2.5*1050 10:10
p6eval ng 2d8d82: OUTPUT«2625␤»
jnthn good morning, most of you 10:16
bad morning, mathw
;-) 10:17
moritz_ can't type anymore 10:19
on my laptop I have German keyboard layout
and now somebody provided me with an external keyboard, also German layout
and I try to use it as if it where US layout all the time
mathw o/ jnthn
moritz_: strange 10:20
moritz_ because for the last year whenever I had an external keyboard, it was always US layout
and I seem to have internalized $external.layout eq 'US'
masak oh hai, #perl6 10:24
phenny masak: 10 Feb 21:27Z <TimToady> tell masak Positive lookaheads must be compiled at compile time, or they cannot participate in LTM as specced, and as STD implements.
masak TimToady: I'll remember that when I start trying to grok LTM :) 10:25
jnthn lolitsmasak
frettled moritz_: Change the keyboard layout to US, then :D
masak jnthn: lol! I'm up late, I'm disoriented, and I'm aching all over... :) 10:26
mathw Saluton masak 10:27
masak mathw: bonan matenon mathw.
mathw: you see? you can already say 'hello'! :)
mathw That's, umm... not particularly difficult 10:28
but now I know how to say good morning
masak :)
did you get the run-down as to why all those are in the accusative yet?
mathw I have no idea why they're in the accusative. Should we take this away from #perl6? 10:30
masak actually, I'm going for lunch :/
gladly later.
mathw lunch? already?
masak yeah :/
masak 's days are so compressed nowadays
moritz_ sounds like breakfast in masaktime 10:31
masak just had breakfast :/
frettled dessert! 10:32
jnthn masak: I managed up late and then used coffee to fix the disoriented bit. :-) 10:33
mathw I managed to get to work just about on time 10:37
And have utilised paracetemol to attempt to regain the ability to think
colomon morning! 11:16
jnthn oh hai, colomon 11:17
colomon What are we going to do today, Brain? 11:18
jnthn Drink coffee...attempt to think. :-) 11:23
colomon :) 11:24
so on abs -- I am completely stumped. 11:26
jnthn abs?
colomon Int.abs never gets called.
If you say 5.abs, it calls Any.abs 11:27
(5/1).abs ==> Rat.abs
5.Num.abs ==> Num.abs 11:28
colomon it's like the dispatch issue, only not. 11:29
jnthn Odd. 11:32
ng: say 5 ~~ Int 11:33
p6eval ng 2d8d82: OUTPUT«1␤»
jnthn ng: say Int ~~ Any
p6eval ng 2d8d82: OUTPUT«1␤»
jnthn ng: say Any ~~ Int
p6eval ng 2d8d82: OUTPUT«0␤»
jnthn say 5 ~~ Any
ng: say 5 ~~ Any
p6eval ng 2d8d82: OUTPUT«1␤»
jnthn Well, those all check out. :-/ 11:33
ng: say 5.abs 11:34
p6eval ng 2d8d82: OUTPUT«5␤»
colomon ng: say 5.abs.WHAT
p6eval ng 2d8d82: OUTPUT«Num()␤»
jnthn :-/ 11:35
ng: say 5.Int.abs.WHAT
p6eval ng 2d8d82: OUTPUT«Num()␤»
colomon I added a lot of says to my code to track things.
colomon but they don't make any sense that I can see. 11:38
oh, wait 11:39
heh. if my new idea is right, we might have a very subtle bug here.... 11:40
ah, nope, that wasn't it 11:41
TimToady suggested it might have some to do with why Int ~~ Num. how does that work, anyway? 11:42
colomon Is there a way to track what dispatch is doing? 11:46
jnthn Hmm...the Int ~~ Num thing was a hack for days gone by when it was meant to be that way. 11:47
I suspect it's in Int.pir
Track dispatch - only if you get your C debugger out. :-/
colomon ick 11:48
jnthn Yeah. It's easy to get lost in the interplay between method dispatch and multi-dispatch too. 11:49
I'll have a look later on. 11:50
colomon thanks.
quester_ pugs: my $x=0 but True; say $x; say ~$x; say ?$x; 11:52
p6eval pugs: OUTPUT«*** Cannot cast from VBool True to Pugs.AST.Types.VCode (VCode)␤ at Prelude.pm line 541, column 5-16␤»
quester_ rakudo: my $x=0 but True; say $x; say ~$x; say ?$x;
p6eval rakudo 1d4928: OUTPUT«The but operator can only be used with a role or enum value on the right hand side␤in Main (file <unknown>, line <unknown>)␤» 11:53
quester_ ng: my $x=0 but True; say $x; say ~$x; say ?$x;
p6eval ng 2d8d82: OUTPUT«No applicable candidates found to dispatch to for 'infix:<does>'␤current instr.: 'infix:<but>' pc 209298 (src/gen/core.pir:1997)␤»
quester_ ng: my $x=0 but Bool::True; say $x; say ~$x; say ?$x;
p6eval ng 2d8d82: OUTPUT«No applicable candidates found to dispatch to for 'infix:<does>'␤current instr.: 'infix:<but>' pc 209298 (src/gen/core.pir:1997)␤»
quester_ ng: my $x=0 but 0 but role { method Bool() { return True } }; say $x; say ~$x; say ?$x; 11:54
p6eval ng 2d8d82: OUTPUT«No applicable candidates found to dispatch to for 'infix:<does>'␤current instr.: 'infix:<but>' pc 209298 (src/gen/core.pir:1997)␤»
quester_ pugs: my $x=0 but 0 but role { method Bool() { return True } }; say $x; say ~$x; say ?$x;
p6eval pugs: OUTPUT«*** Cannot cast from VInt 0 to Pugs.AST.Types.VCode (VCode)␤ at Prelude.pm line 541, column 5-16␤»
masak quester_: looking for anything in particular? 12:17
quester_ masak:no, I was just musing on the Perl5 "0 but true" idiom and decided to Google it. I was wondering if my local copy of Rakudo was broken when it barfed on $x=0 but True;. It looks like it's just not implemented fully yet, I think. 12:31
masak that's correct. 12:32
I think it was at some time.
but it was fraught with problems like infinite loops.
quester_ Ah, so. Thank you. 12:34
jnthn I'm not sure it was ever really implemented. :-)
The infinite loop was just a very bad way of saying so. :-) 12:35
masak what jnthn said :)
jnthn We can probably have anonymous roles quite easily in ng, fwiw. 12:38
Though it'll likely be master before I get to those.
masak I'll have a look at them if I find the time. 12:39
quester_ Yes, Perl6 seems to have quite a few features whose implementation was left as an exercise for the student... Thanks, jnthn and masak, and good night. 12:40
masak g'night.
jnthn
.oO( I'm not a student, can I still implement them? )
12:44
colomon jnthn: Are we all not students of TimToady? ;) 12:45
jnthn :-)
masak TimToady is a teacher? that would explain why he looks so stern when I show up here without my homework... 12:46
takadonet morning everyone 12:58
masak takadonet: \o 13:03
colomon o/ 13:04
pmichaud good morning, #perl6 13:05
moritz_ good morning pmichaud
takadonet morning pmichaud 13:06
masak morning, pmichaud. 13:12
jnthn morning, pmichaud 13:17
mathw masak! 13:36
masak la mathw!
jnthn la? :-) 13:41
masak jnthn: means 'the'. as in 'Die Bart, Die' :P 13:42
jnthn masak: I figured, but in Spanish and French it is the feminine "the" :-P
masak jnthn: oh! heh. 13:43
jnthn: I remember having to get used to that myself.
jnthn: Esperanto has only one definite article.
jnthn masak: oh, cool :-) 13:44
That makes life...easier.
Of course, dropping articles altogether works too. :-) 13:45
masak yep.
jnthn Talking of article-free languages... 13:49
jnthn -> Slovak class
pmichaud for osd, do we just submit talks via the act site or also to the osd organizers? 13:50
jnthn pmichaud: also to osd
pmichaud okay, sending
jnthn pmichaud: one of jonasbn's emails had the address.
pmichaud I have the addr :-) 13:50
jnthn \o.
er, \o/
pmichaud conferences.yapceurope.org/hack2010dk/talk/2574 # my current talk abstract -- suggestions on improvements or other area of focus welcomed 13:53
takadonet I get a 404 pmichaud
pmichaud okay, I'll nopaste it. 13:54
nopaste.snit.ch/19558 13:55
moritz_ nice and short 13:57
masak "Perl 6 arrives"? -- that's... brave :) 13:58
maybe that's what Rakudo needs, though. 13:59
jnthn pmichaud: Looks good. 14:00
jnthn afk for a bit
pmichaud I can tone down "Perl 6 arrives" if needed. It's just what shows up on a busy 7am morning.
PerlJam good morning 14:01
pmichaud: no way! the world needs more bravery. :) 14:02
masak is on the fence about 'arrives'
pmichaud: your call :)
PerlJam so ... is Rakudo Star an "implementation of Perl 6" or a "distribution of a Perl 6 implementation" (or does it matter?)
I mean, people don't typically talk about RedHat, Debian, Gentoo, etc. as "linux implementations" as much as "linux distributions" 14:03
moritz_ that's because they ship the same kernel, more or less 14:04
PerlJam moritz_: Perl 6's kernel is STD :)
(more or less) 14:05
moritz_ not really
PerlJam Maybe I'm just weird but I think the semantic details of STD are more important to Perl 6 than the vagaries of a particular implementation. 14:07
masak PerlJam: I see what you mean. 14:08
pmurias PerlJam: rakudo does not use STD? 14:09
masak guess it depends on whether the implementations will use STD.pm wholesale, or whether they'll modify it somehow, as Rakudo ng is doing now.
PerlJam pmurias: sure it does ... more or less :)
moritz_ it doesn't actually use it
PerlJam STD is the platonic ideal that all implementations share. 14:10
masak there's that meme again! :)
masak it just struck me: Perl 5 and Perl 6 are 'the same language' in much the same way US English and British English are the same language. 14:15
i.e. a fair bit or not very much at all, depending on your perspective. 14:16
but never 0% or 100% the same.
Trashlord how's it going 14:19
masak Trashlord: welcome back! over here, it's going fine, thanks. 14:20
Trashlord I'm just reading through an open book called Perl 6 Programming, in wikibooks. Just found out about lazy lists and junctions, really awesome 14:21
pmichaud I still claim that STD and Rakudo are converging to a common ideal.
as opposed to claiming that STD is the ideal that Rakudo should adopt. 14:22
masak pmichaud++ # that's a nive way to view it, yes
that's the whirlpool part, when reality influences the ideals, and not just the other (pure) way around. :) 14:23
PerlJam pmichaud: STD is just a convienent moniker for the platonic ideal that STD.pm strives for :)
pmichaud: that STD.pm and Rakudo strive for
pmichaud PerlJam: fair enough. But when people say "Rakudo does not use STD?" it bugs me a bit. :)
I could just as easily say "smop doesn't use PGE?" 14:24
Trashlord hey, are sockets implemented in Perl 6?
masak Trashlord: yes.
Trashlord excellent
masak Trashlord: Web.pm can use them to establish a Perl 6-only web server.
PerlJam Trashlord: do you mean "are sockets specced in Perl 6?" or do you mean "are sockets implemented in Rakudo?" or ??? :-)
Trashlord PerlJam: I mean in rakudo 14:25
masak '...implemented in some Perl 6 implementation...' :)
Trashlord yeah, I guess I should start calling it rakudo, since that's what I use, heh
masak depends what you're referring to :P
Trashlord is there something like IO::Socket from Perl 5? 14:26
colomon pmichaud: I like "Perl 6 arrives". Helps make a point and spur us on.
pmichaud I think I agree -- time for some boldness. If there's some friction, let's at least do it with emphasis. :-) 14:27
masak Trashlord: github.com/rakudo/rakudo/blob/maste.../Socket.pm
Trashlord awesome, thanks
masak cavear user.
erm, s/cavear/caveat/ 14:28
arnsholt caveat auctor perhaps?
pmichaud utilitor, I thought. :-)
PerlJam caveat auctor would be a warning from masak to himself. 14:29
arnsholt I'm not sure if that's a Latin verb
Just a moment. I'll check the OLD here in the library
masak caveat to-whom-it-might-concern :)
PerlJam caveat lector works in general 14:30
pmurias pmichaud: by STD 14:31
pmichaud jnthn/mberends/others: after consulting with jonasbn, I think I'll head directly to CPH instead of trying to make it to Dutch Perl Workshop.
masak did I understand correctly that jnthn and mberends will show up on the Friday? 14:32
pmichaud Dutch Perl Workshop is on Friday. 14:32
masak aha.
mberends pmichaud: ok, look forward to seeing you there - on Saturday morning :)
pmichaud they will make it to CPH on Saturday early.
masak right. I misread mberends++'s last message to p6ws. 14:33
pmurias pmichaud: how does STD need to converge with rakudo? the issues i'm aware of is that the implemenation of STD is too slow and there are bugs lurking in the produced AST
masak he's planning to do his talk from Friday again in Copenhagen. now I get it. :)
pmichaud pmurias: STD is focused almost exclusively on "how does one parse perl 6", but not necessarily "how does one build an ast/translate a program." The two are not always the same. 14:34
pmurias: there are several places where things we've done in Rakudo and NQP have fed back in to become significant changes to STD 14:35
one of the biggest is the <O(...)> approach to handling operator precedence instead of STD's previous %additive mechanism for doing so 14:36
NQP also prompted the elimination of the <noun> subrule.
There are also places where rakudo and nqp are likely to influence the handling of language braids. 14:37
PerlJam pmurias: STD doesn't *need* to converge with Rakudo, it *wants* to. :-) 14:40
masak even the implementation of GGE has influenced STD.pm :) 14:42
(ever so slightly) 14:43
Trashlord masak: you're the author of proto? 14:44
masak the first of quite a few, yes.
Trashlord cool
masak :)
Trashlord I was just wondering about a nice way to install modules (so I can get IO/Socket.pm), and found it 14:45
masak right. IO::Socket actually comes with Rakudo itself.
Trashlord oh
masak so if you have Rakudo, you already have IO::Socket
Trashlord didn't know that, heh
so everything I see in rakudo's directory in github, comes with it? 14:46
masak aye.
Trashlord awesome
masak that generalizes to all github projects, by the way. :)
moritz_ well, not everything in every github project is actually installed 14:47
masak true. but it's downloaded.
which was what I took Trashlord's 'comes with it' to mean.
pugs_svn r29686 | pmurias++ | [mildew] dominace frontiers are calculated 14:49
masak 'dominace frontiers'? 14:51
moritz_ sounds scary :-) 14:52
masak sounds like the borders of Italian opera or something.
"And now, the weather. A dominace frontier is entering Europe from the south..." 14:53
pmurias masak: they are needed for calculating where to insert phi functions while converting to SSA 14:57
masak pmurias: excellent. what's a phi function, and what's SSA? 14:58
pmurias en.wikipedia.org/wiki/SSA 14:59
masak gives me a disambiguation page. 15:02
so now I know it can mean a lot of things. 15:03
moritz_ single static assignment, I guess
pmurias yes 15:04
masak wow, what an amazing coincidence. I have use of this in my $WORK today.
cool.
pmurias masak: how do you use SSA at work? 15:05
masak I don't yet, but the model it implies might be of use to me.
masak basically, I'm introducing value tracing into an existing statistics program. 15:06
right now, I'm prototyping the eventual software with Perl 6. this makes me happy :) 15:07
moritz_ is hunting an ugly race condition in his (Perl-non6) program 15:09
Su-Shee hunts ugly perl-non6 programs. 15:11
masak maybe that's what we should call Perl 5... Non6 :) 15:13
the Perl 5 crowd will be overjoyed.
masak SF++ strikes again! lastofthecarelessmen.blogspot.com/2...-post.html 15:30
TimToady Perl 5 is...non-plus-plussed 15:35
masak undoubleplusgood.
TimToady
.oO(Is that gnuspeak?)
15:42
Su-Shee I think 1984 re-translated. :) 15:43
jnthn back 15:46
TimToady re "arrives", you can arrive before you're grown up, like say, Shirley Temple. 16:05
jnthn
.oO( who? )
16:07
moritz_ arrived at school very often before I was grown up 16:08
Su-Shee jnthn: the prototype of a child star(let).
masak <backseat>are we there yet?</backseat>
Su-Shee very often did not arrive at school before I was grown up. ;) 16:09
cl58 does anyone know if moritz_ ever plans on coming back? 16:35
phenny cl58: 10 Feb 08:53Z <moritz_> tell cl58 it seems we don't share much common uptime these days - feel free to /msg me, or send an email to [email@hidden.address]
cl58 what time zone is he in?
moritz_ cl58: I'm here nearly every day 16:36
UTC+1
cl58 moritz_: your set to away right now, JSYK :D
moritz_ cl58: away messages can be deceiving
but indeed I have to run now
cl58 i'll e-mail you, if that's okay 16:37
moritz_ sure
cl58 thanks
moritz_ afk
moritz_ actually I missed the bus, so I'll be online for 15 more minutes or so 16:44
Juerd \o/ 16:46
cl58 moritz_: should i tell you here or via email then?
Juerd Good to have you here :)
moritz_ cl58: whatever you prefer
cl58 moritz_: i'll e-mail you 16:47
thanks
again
pmurias ruoso: hi 17:37
pugs_svn r29687 | pmurias++ | [mildew] register aliveness is aproximated 17:52
pugs_svn r29688 | pmurias++ | [mildew] using Hash::Util::FieldHash::idhash instead of using refaddr 17:52
r29688 | during the conversion to SSA
pugs_svn r29689 | lwall++ | [t/spec/S01-perl-5-integration] replace various old usages of perl5: with :from<perl5> 19:11
pugs_svn r29690 | lwall++ | [STD] also add shortname alias on adverbialized names 19:15
itz is ng the master branch yet? 20:05
jnthn itz: Not yet, within days I suspect.
PerlJam itz: almost.
colomon there was a rumor ng would become master today, as I recall... ;) 20:12
PerlJam no rumor. pmichaud said as much yesterday. 20:13
TimToady you're listening to the wrong mongers :P
pmichaud colomon: yes, that rumor is still present. :) 20:14
colomon I'm pretty sure Wikipedia would insist that hearing it straight from the horse's mouth was just hearsay... ;) 20:14
PerlJam pmichaud: you've got about 10 hours localtime ;)
pmichaud PerlJam: yes, I know. Things around here have been a bit dicey since yesterday morning. :-| 20:15
TimToady the best way to predict the present is to have created it...
PerlJam heh, "predict the present" 20:16
pmichaud predicting the present isn't what it used to be.
TimToady everyone who is present is tense 20:17
[particle] does this mean we officially enter the third 80% today? 20:51
PerlJam third 80%?!? 20:52
colomon might be the fourth... 20:53
jnthn Yeahbut how many more 80%s are there to go? :-) 20:54
PerlJam the good news is that each 80% is smaller than the last 20:55
PerlJam (the bad news is that you can't know how many 80% there are to go, so there appears to be an infinite number of them) 20:55
[particle] fortunately, we're evaluating that lazily 21:02
PerlJam well, that's the other good news 21:04
TimToady as long as each 80% is smaller, we're converging on a solution...though that gives new meaning to "Hundred Year Language"...
pugs_svn r29691 | lwall++ | [STD] refrain from trying to add a &foo:($sig) shortname twice 21:06
jnthn TimToady: Is that "try to detect duplicate subs with the same signature"? 21:09
[particle] perl 5 is already on it's a way to becoming a "hundred year language"
PerlJam [particle]: it's not even 1/5 of the way there yet.
[particle] the first 20 years take 80% of the time. the next 80 years should fly by. 21:10
PerlJam wonders from when you start counting Perl 6's birth?
so far it looks like about a 10 year gestation period. 21:11
Perl 6 should live a *really* long time.
(well, unless we humans accidentally eradicate ourselves) 21:12
[particle] don't assume it'll be us, or by accident.
PerlJam I'm just going with a likely scenario. 21:13
There are other possibilities.
cognominal Is there code one hundred old but Lovelace's stuff for the difference engine?
jnthn ng: my $x; $x //= 42; say $x 21:17
p6eval ng 2d8d82: OUTPUT«Null PMC access in invoke()␤current instr.: '!assign_metaop' pc 15138 (src/builtins/Junction.pir:147)␤»
jnthn FAIL.
ng: my $x; say $x // 42;
p6eval ng 2d8d82: OUTPUT«42␤»
jnthn ng: my $x = Mu; $x //= 42; say $x 21:18
p6eval ng 2d8d82: OUTPUT«sh: ./perl6: No such file or directory␤»
PerlJam ng: my $x; say $x.defined
p6eval ng 2d8d82: OUTPUT«sh: ./perl6: No such file or directory␤»
jnthn grrrrrr
PerlJam who has access to whatever process builds perl6 for p6eval? 21:19
jnthn Hmm. Should //= short circuit? 21:21
PerlJam ng: my $x; say $x.defined 21:22
p6eval ng 51583c: OUTPUT«0␤» 21:23
jnthn eh well, guess we need the non-sc version of the op for reductions anyways.
PerlJam: I found the probby
[particle] if i say $undefined-thing //= $another-undefined-thing; i want to set it to $another-undefined-thing always.
jnthn Yes, I know that bit. :-) 21:24
My question was if it evaluated what's to the RHS of //= 21:25
in the case that the LHS is defined
in juse // it does not.
Juerd I would expect //= to short circuit. 21:27
jnthn yeah, I fear folks will 21:28
ah well, non-short-circuiting version for now, and can figure out the short-circuit later on. :-)
We need to define the multi for [//] @foo anyways, I guess.
Juerd reads it as a conditional assignment
jnthn *nod* 21:29
Juerd And there I don't expect evaluation if the condition is not met :)
jnthn I agree it should be, I've just too much of a headache to do it perfectly tonight. :-)
Juerd Heh
jnthn And the imperfect way lets us pass the not-related-to-that test, and I'm sure other tests will call us out on the right semantics later. :-)
jnthn dalek: You're being very quite about my commits. :-P 21:31
Juerd quite or quiet? 21:32
jnthn quiet. :-P 21:33
oh 21:34
They ain't shown up on github yet either though.
colomon stealth mode.
I had that happen yesterday, actually.
PerlJam jnthn: maybe you didn't really push. It was all your imagination.
colomon I got new stuff when I pulled just now. 21:35
Add the multi for infix:<//> so meta-ops using it can work
etc.
jnthn PerlJam: My headache isn't from drinking borovicka. :-P
colomon: ok, cool
I didn't somehow find a new way to screw up with git then. :-) 21:36
colomon: Well, I only won back 2 test files so far today.
16 tests.
Drop in the ocean. :-)
colomon I've been distracted, alas.
but then, there's still a lot of day left here, too.
jnthn Yeah, your days finish later than mine. Odd. 21:37
:-)
masak oh hai again. 21:38
jnthn: ping
jnthn hides - masak usually brings bugs 21:39
masak: OH HAI!
:-)
masak no bugs. promise. :)
jnthn :-O
masak gist.github.com/301987 # first attempt (failed) at anon enum
after I add this patch, ng still insists that &enum is a sub that it cannot find. 21:40
I yelled at it but that didn't seem to help at all.
jnthn masak: Tried kicking it too? 21:41
dalek kudo/ng: 5817a4e | jonathan++ | src/core/operators.pm:
Add &hash sub.
kudo/ng: d125a59 | jonathan++ | src/Perl6/Actions.pm:
Correctiong to block vs hash detection.
kudo/ng: 51583cb | jonathan++ | t/spectest.data:
We now pass S06-signature/scalar-type.t again.
kudo/ng: b7e4b08 | jonathan++ | src/core/operators.pm:
Add the multi for infix:<//> so meta-ops using it can work; we need to re-visit //= at some point though since it's special.
jnthn lolicomitted
PerlJam masak: then you need to jump up and down and yell some more
masak jnthn: no, didn't think of that. hold on. 21:42
jnthn masak: Hmm. Nothing immediately jumps out to me as wrong with it though.
masak: oh wait
PerlJam masak: what did your test code look like?
jnthn method term:sym<type_declarator>($/) { make $<type_declarator>.ast; }
You did that in actions.pm
masak PerlJam: ./perl6 -e 'enum <a b c>'
jnthn Did you add to Grammar.pm a similar thingy?
masak jnthn: the diff you see is what I added. 21:43
what similar thingy?
jnthn Grammar.pm needs a line lajk:
masak oh!
jnthn token term:sym<type_declarator> { <type_declarator> }
masak ah. yes.
I will go back to off-line and attempt that. thanks for the tip.
jnthn masak: But looks like a good start. :-) 21:44
masak \o/
jnthn I very much suspect that's what's missing.
masak woot.
masak takes the opportunity to pull
this whole Internet phenomenon is great, but it can be very distracting. 21:45
PerlJam masak: quick! Look at this shiny thing! 21:46
masak: now look at this other shiny thing!
masak PerlJam: I usually put my shiny things in tabs and come back to them months later.
jnthn Doesn't the shininess wear off after that?
colomon I have an entire browser window of tabs waiting for me to get back to it...
jnthn: that just makes it easier to quickly delete them and get on with life. :) 21:47
jnthn++: those 16 tests pushed the count on make spectest to over 3700 tests for me, \o/
jnthn Nice!
masak jnthn: for most things the shininess does wear off, yes. 21:48
catcherall later. 21:49
jnthn o/ 21:49
er
jnthn S03-operators/basic-types.t appears to (a) have little to do with operators and (b) be full of it. 21:50
my $a;
isa_ok($a, Any, 'it is an Any type');
$a is Mu by default, iirc, not any.
pugs_svn r29692 | jnthn++ | [t/spec] One little test pays a visit to the Latest Spec doctor. 21:54
colomon jnthn: if we got my @pop be like my @pop = (), we could get back pop.t... 22:05
or if we changed the test, but that feels like cheating. 22:06
colomon ng: my @pop = (); say @pop.pop() ~~ Failure 22:07
p6eval ng 54dabc: OUTPUT«1␤»
jnthn colomon: I think that's one of the things pmichaud will be doing in the array fixes. 22:10
colomon: BTW, just got us 18 more :-)
dalek kudo/ng: 7085c8d | jonathan++ | src/c (2 files):
Move == and != from PIR cheats into operators.pm.
kudo/ng: 11e77a1 | jonathan++ | t/spectest.data:
S03-operators/basic-types.t passes again.
colomon I just discovered the Failure work from a few days ago fixes a bunch of skips in pop.t. 22:11
\o/ 22:12
jnthn Oh, cool
colomon: Does the pop.t hard or soft-fail? 22:13
pugs_svn r29693 | colomon++ | [t/spec] Unfudge tests that work now.
jnthn (that is, the my @a; thing...)
colomon Null PMC fail
jnthn ah, ok 22:14
Hmm
method keys() {
self.iterator.map({ $^pair.key })
}
%hash.keys.sort # fails with no method sort on MapIterator
Should map be returning directly a MapIterator or a List (or something else) containing it? 22:15
colomon I think it directly returns a MapIterator.
I think we just don't have sort yet.
on iterator, anyway. 22:16
jnthn ok
colomon err... on anything?
ng: (1..10).batch(10).sort 22:17
p6eval ng 54dabc: OUTPUT«Method 'batch' not found for invocant of class 'Range'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
jnthn ng: my @a = 4,3,7,1; @a.sort
p6eval ng 54dabc: OUTPUT«Method 'sort' not found for invocant of class 'Array'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
colomon yeah, there's no sort at all in ng.
jnthn Hmm
OK
That sorts out why it's failing then :-)
jnthn doesn't have the concentration to take on the scary that is S06-multi/type-based.t today, but S06-multi/value-based.t looks more do-able. :-) 22:18
colomon I think we'll actually get back a decent number of tests when we fix my @a. 22:23
jnthn Getting back test files is feeling increasingly easier. 22:26
colomon :)
dalek kudo/ng: 53b16d2 | jonathan++ | src/Perl6/ (2 files):
Support multi foo(1) { } again, along with taking the type of the literal for the multi-dispatch sortable nominal type.
22:39
kudo/ng: 1a9e769 | jonathan++ | t/spectest.data:
S06-multi/value-based.t passes again.
jnthn ng: say "foo \$x" 22:48
p6eval ng 11e77a: OUTPUT«sh: ./perl6: No such file or directory␤»
jnthn ng: say "foo \$x" 22:49
p6eval ng 11e77a: OUTPUT«sh: ./perl6: No such file or directory␤»
jnthn ng: say "foo \$x"
p6eval ng 11e77a: OUTPUT«sh: ./perl6: No such file or directory␤»
jnthn meh
anyway, locally it tries to find $x 22:50
TimToady std: say "foo \$x" 22:51
p6eval std 29693: OUTPUT«ok 00:01 107m␤»
jnthn Yeah
Some bug in quote parsing I guess.
pugs_svn r29694 | lwall++ | [RE.pm] fix fossil file 22:54
RandalSchwartz what's the simplest description of rakudo... I'm looking for the two-paragraph version 23:15
Rakudo uses the Parrot engine to run a translation of Perl6 via [what]
how would you describe the pieces that translate perl6 into PIR?
crickets? :) 23:16
jnthn RandalSchwartz: It uses a Perl 6 grammar to do the parsing, building an AST in the process, and then that gets translated down to PIR. 23:20
RandalSchwartz Still using the Parrot Compiler Toolkit?
jnthn Yes.
RandalSchwartz ok
I'm googling for all this stuff 23:21
finding old pages, not sure how relevant everythig is :)
jnthn Things move/change/advance fairly quickly too, which doesn't help. :-)
RandalSchwartz Yeah - I'm getting that 23:21
so of course, my article will also be out of date when I publish :)
pugs_svn r29695 | lwall++ | [STD] duh, carp about longname collisions, not shortname 23:25
TimToady RandalSchwartz: most of the info hanging off of perl6.org is fairly recent 23:27
jnthn -> rest 23:31
pmurias perl6: sub foo($a,$b) {$a+$b};&bar := &foo.assuming(1);say bar(4); 23:52
p6eval rakudo 1d4928: OUTPUT«5␤» 23:53
..pugs: OUTPUT«*** ␤ Unexpected " :="␤ expecting "::" or signature value␤ Variable "&bar" requires predeclaration or explicit package name␤ at /tmp/dYf2BXpqIL line 1, column 28␤»
..elf 29695: OUTPUT«/home/p6eval/pugs/misc/STD_red/match.rb:141:in `block in to_dump0': undefined method `to_dump0' for true:TrueClass (NoMethodError)␤ from /home/p6eval/pugs/misc/STD_red/match.rb:140:in `each'␤ from /home/p6eval/pugs/misc/STD_red/match.rb:140:in `map'␤ from
../home/p6eval/pugs/misc/STD…