»ö« | 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.
00:04 REPLeffect left 00:07 snarkyboojum joined, pmurias left
bkeeler This place sure is quiet on the weekend 00:23
00:24 REPLeffect joined
lue hello! 00:25
00:25 xabbu42 joined
colomon personally, I am beat. 00:26
bkeeler Just trying to wrap my head around the iterator code
lue It seems the weekends/afternoons are low points. Exactly the times I can get on. :(
bkeeler How did you house showing go? 00:27
colomon We got no feedback. 00:28
but the house didn't burn down or anything. :)
bkeeler Always a plus
lue \o/ 00:29
colomon sitting here, zombified, watching the olympics and dazedly websurfing.
bkeeler Sucks that you can't be there when they show it
lue Did you count all your valuables? Check the safe? Pat them down as they left? :) 00:30
colomon probably just as well, I'd probably say something stupid to potential buyers.
I think I saw the mp3 player was still there. and obviously they didn't steal the wireless router.
00:30 REPLeffect left
bkeeler I've only sold one house, my dads, and it was such an easy sale 00:30
Sold it to the Salvation Army
lue How is that obvious? Are the wireless... wires missing? 00:31
bkeeler They snapped it up, paid cash full price offer
colomon well, I'm talking to you somehow, and there is no ethernet cable attached to this computer.
bkeeler: wow, that's awesome.
lue bkeeler: that's when you cough and say there was a misprint. Then jack the price one 0 :) 00:32
bkeeler Kind wish I'd waited though, I'd have got about $30-40K more if I'd waited 2 or 3 years
colomon but you never know. If I'd sold three years ago, I'd have made money on the house, rather than losing $40k or more on it. 00:33
bkeeler ouch
lue If anyone knew for sure, they'd know so much else that they wouldn't find the right information in time
bkeeler Indeed, you never know, and it's not like I was in a position to be taking over the mortgage at the time anyway 00:34
colomon I've already grown accustomed to that hit. Now I only worry about how much worse it can get before we get rid of it.
lue Pick up toothbrush... no no no no! Toothbrush first! Ack! Now there's toothpaste everywhere! Pick up toothbrush!!!
Flex your fingers... Awww! Not the hand holding the 'paste! The other hand!
bkeeler I bought my house at just the wrong time too, I feel your pain 00:35
The Portland market is by no means as bad as some, but I'm sure I'm at least a little in the hole
At least I can still afford the mortgage. Didn't get sucked by those ARMs 00:36
lue I prefer Intel myself... (oh wait, not that kind of ARM) :D 00:37
bkeeler alpha: say grep { $_ % 2 == 0 }, 1..7; 00:39
p6eval alpha 30e0ed: OUTPUT«246␤»
bkeeler master: say grep { $_ % 2 == 0 }, 1..7;
Hmm 00:40
p6eval also takes the weekend off it seems
lue master: isn't valid. 00:41
bkeeler Oh right
rakudo: say grep { $_ % 2 == 0 }, 1..7;
p6eval rakudo 68bb56: OUTPUT«246␤»
bkeeler Oh interesting 00:42
My copy gets it wrong
colomon how so?
lue is your copy revision 68bb56 ?
bkeeler It outputs 111
colomon that's really weird. 00:43
bkeeler I'm up to date wrt to github
I must have messed something up in my working copy
colomon works with my local up-to-date copy. 00:44
bkeeler Oh, I know what I did
It's related to what I was hacking on last night at 5am 00:45
Was trying to make &take be a proper listop. I see grep is implemented with gather
00:45 BinGOs joined
colomon ah, yes. 00:46
rakudo: my @a = 1...*; say @a[0]; say @a[1];
p6eval rakudo 68bb56: ( no output ) 00:47
bkeeler Problem is gather and the iterator infrastructure in general don't deal nicely with parcels yet
colomon ENOTENOUGHLAZINESS
rakudo: my @a = 1...*; say @a.batch(10).perl
p6eval rakudo 68bb56: ( no output ) 00:48
00:48 REPLeffect joined
bkeeler Is ... implemented with gather? 00:48
colomon believe so.
rakudo: say (1...*).WHAT 00:49
bkeeler makes sense
p6eval rakudo 68bb56: OUTPUT«GatherIterator()␤»
colomon I think the @a = 1...* is what is not working. Must have been part of the laziness pmichaud temporarily disabled last week. 00:50
00:50 lestrrat is now known as lest_away
bkeeler Yeah, array assignment is eager by the looks of it 00:51
colomon It's not supposed to be. Pretty sure it wasn't in ng two weeks ago. :) 00:53
00:55 REPLeffect left, REPLeffect joined
bkeeler The laziness logic is still there in Seq,!fill, but Array is not using it, it seems 00:56
00:58 lue left 01:02 lue joined, xabbu42 left
lue woah. What just happened? I'm dizzy... 01:02
colomon bkeeler: I'm sure pmichaud will get it sorted out sometime soon. 01:04
rakudo: say (1...10).batch(10).perl.say
p6eval rakudo 68bb56: OUTPUT«(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)␤1␤»
colomon rakudo: say (1...*).batch(10).perl.say
p6eval rakudo 68bb56: OUTPUT«(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)␤1␤»
bkeeler most likely
colomon does make me ponder even more rewriting of the series tests, as right now they are dependent on array assignment as well. 01:05
bkeeler As I said, I was playing around with take, make it send up parcels instead of scalars, the way it's specced to 01:06
Problem is the parcels don't get flattened when they're supposed to
lue (thinking to myself) Maybe a NYS error isn't accurate. Not Yet *Fully* Specced (NYFS) ? 01:10
bkeeler rakudo: say map { $_, $_ * 2 }, 1..5 01:11
p6eval rakudo 68bb56: OUTPUT«22222␤»
bkeeler Aha!
map gets it wrong
alpha: say map { $_, $_ * 2 }, 1..5 01:12
p6eval alpha 30e0ed: OUTPUT«12243648510␤»
01:12 literal left
bkeeler And map is *not* implemented with gather/take though perhaps it should be 01:13
colomon I believe the idea is that map is so fundamental it benefits from being at the lowest possible level. 01:14
bkeeler I suppose so
At any rate, fix the parcel flattening for map and my take modification should be fixed as well
lue Heh, the past few days I read nothing but major errors on this IRC 01:15
01:15 literal joined
lue I want to fix something, but it's like being given a vetran's WoW account and told "Go ahead." 01:15
bkeeler It looks like the iterator logic in List.pir handles flattening
colomon lue: a really good first step is working on tests. 01:16
there is a LOT of room for better tests.
and they are really handy for implementing the language.
01:16 avar left
lue I'll (try to) look up how to write tests then. (Of course, if you would point me in the right direction... :D ) 01:17
bkeeler Do a "make testable" and it will check out the spec tests from pugs SVN
01:18 literal left
colomon I don't know that there is a guide somewhere. 01:18
bkeeler Then run utils/test_summary.pl, or just make spectest
colomon I bought the Perl testing book when I started working on it, but it was relatively little help.
bkeeler Dive into the t/spec directory and start poking around
01:19 jferrero left
colomon usually I complain about under-tested features two or three times a week. :) 01:19
bkeeler pugs commit bits are given out fairly liberally I believe
though I still don't have one :)
lue /o\ the voices! to meny voises /o\
01:21 snarkyboojum left
lue will try to compile rakudo in an actual tty terminal (instead of Konsole) and maybe it'll compile faster (if needed) 01:21
01:21 synth joined
bkeeler Shouldn't make all that much difference 01:22
use make -j 4 though, especially if you have more than one core
lue I do not have more than one core. I barely have a 1GHz core (if that)
bkeeler Ah 01:23
lue 384MiB RAM, 768 swap space
bkeeler Yikes
01:23 lest_away is now known as lestrrat
bkeeler a netbook, or just something really old? 01:23
colomon oh yes, I don't know how to give pugs commit bits (though I'm sure I have permission to do it), but if you ask around you'll quickly get some.
lue Would -Ofun do anything :)
colomon I've seen TimToady hand out a bunch...
lue PowerBook PPC G3 (circa '99) 01:24
bkeeler Ah
Yeah, your best bet is sshing to a real box
01:25 literal joined
colomon If you're serious about helping, someone (definitely not me) can probably get you a shell account on one of the perl development boxes. 01:25
bkeeler I'm spoiled I guess, sitting here at a Mac Pro quad core with 16G ram ;)
01:25 Chillance left
lue remotely, or switch o'er to a tty window using fancy key combos? (I'd have to do the latter, unless there's a willing candidate...) 01:25
01:26 crythias left
lue I could get upto 1GiB of RAM (buying stuff) and a G4 processor 01:26
bkeeler I have a server in a colo that's not doing all that much, I guess I could give you a shell account on it if you like 01:27
I've built rakduo there before, so it's got all the tools installed
01:27 avar joined
lue I actually have parts from a PowerBook G4, but then I'd have to solder... (You can buy a G4 replacement for this computer and just pop it in however) 01:27
01:28 literal left
lue I've actually switched out the ~12GiB hd with the G4's 40GiB already :D 01:28
01:28 literal joined
colomon Oooo, my best Mac is this MacBook Pro. quad core and 16 gigs sounds very nice.... 01:28
lue bkeeler: I'll think about it for a moment, let me see if any of my for ttys won't help (you never know) 01:29
s/for/four/
bkeeler It might help if you shut down KDE and X altogether, given how little ram you have
01:29 crythias joined
lue Maybe, if I had IRC communication methods thru terminal (never bothered to look, but I wouldn't mind) :) 01:31
bkeeler One of the old school IRC clients should be fine
BitchX is a decent one I recall 01:32
01:33 snarkyboojum joined
snarkyboojum surely some tests to expose the recent range errors wouldn't go astray? 01:33
lue some tests that autofix bugs would be nice too :) 01:34
01:35 wolf2k_ubuntu joined
lue is trying desperately to find the tty switching command (can never remember) 01:36
found it! turns out, fedora runs on tty1 (weird) 01:38
colomon snarkyboojum: actually, we are now having a spec debate over what exactly range should do in those cases. 01:39
snarkyboojum yep - but some tests once that's determined would be good? 01:40
colomon oh yeah, for sure.
lichtkind good night
snarkyboojum sweet
colomon lichtkind: o/
01:40 lichtkind left
snarkyboojum or even now.. so someone is forced to update them :) 01:40
lue o/ litchkind
snarkyboojum: string ranges are horribly underdetailed. :/ (I vote the whole of unicode, or whatever's laziest \o ) 01:41
snarkyboojum the specs are juicy aren't they :) 01:54
rakudo: say ^10
p6eval rakudo 68bb56: OUTPUT«0123456789␤»
lue thanks to you guys, I actually (somewhat) feel like wanting to kill X for the first time ever!
snarkyboojum rakudo: say ^'Z'
p6eval rakudo 68bb56: ( no output )
snarkyboojum rakudo: say (^'Z').iterator.batch(50) 01:55
p6eval rakudo 68bb56: OUTPUT«012345678910111213141516171819202122232425262728293031323334353637383940414243444546474849␤»
lue /o\ ō.–
colomon that's the range 0..^'Z'
snarkyboojum yep
Z is supposed to be cooerced to the left type? 01:56
colomon I'm not sure.
It would be in S03 (operators), the Range section.
snarkyboojum "For ranges with other non-numeric types on the right, the right argument is coerced to the type of the left argument and treated as numeric."
yeah
I need to read these spec in more detail (what great bedtime reading) :) 01:57
bkeeler Speaking of Ranges, I need to go clean mine, along with the rest of the kitchen. Can't put it off any longer...
colomon Hmmm.... I don't have a clue how to do that.
bkeeler cd kitchen; make clean
laters... 01:58
snarkyboojum Range.GrabAndClean
colomon no, no, no, the type coercion. I can clean a kitchen.
snarkyboojum heh
colomon ack, I need to delete that damned function before it haunts Rakudo forever....
snarkyboojum :P (I should stop typing it eh) 01:59
lue ah, the wonders of P6 (let's hope to [deity of your choice] that no normal user ever has to see it...) 02:01
snarkyboojum I watched a vid of jnthn dumping the AST to stdout when he was running perl6 code before, but can't find the vid.. how do you get into the guts of what the compiler is doing when it's running stuff? (excuse the vagueness of the question) 02:03
is that what --dumper and --trace is all about? 02:05
colomon That I don't know.
colomon knows distressingly little, actually....
dalek kudo/master: 14f803a | (Solomon Foster)++ | src/core/Iterator.pm:
Get rid of GrabAndSay, not spec and it is easily done now with batch($n) and say.
02:06
02:07 nihiliad left, yinyin joined
lue Looks like ERC (Emacs) might be right for me :) 02:09
02:13 nihiliad joined 02:18 nihiliad left 02:19 JimmyZ joined
lue hello? (I hate silence) 02:21
colomon is drinking the last of his Talisker with his dad.
TimToady e
lue oi!
You missed a rousing discussion about my old laptop, TimToady!
colomon i
lue e 02:24
JimmyZ yo 02:25
bkeeler Mmmm.. talisker 02:30
colomon bkeeler: my favorite. 02:31
bkeeler It's good one 02:32
Well, kitchen's clean. Now when the dishwasher's done, it'll be time to assemble 3 or 4 trays of lasanga for the freezer 02:34
I need bigger freezer though...
colomon Mmmmmmm...... 02:36
errr... why isn't rat.t parsing?! 02:38
lue it's a rat. :)
02:42 nihiliad joined 02:46 wknight8111 left, simcop2387 joined
bkeeler Seems to be the for block after # Give the arithmetic operators a workout 02:48
Remove that and it parses
colomon ooo, good analysis.
lue wow. There is a real difference between the Konsole font and a real tty's font. 02:49
colomon PerlJam must have broken something with his for changes yesterday.
02:50 nihiliad left
bkeeler Yeah, it's wanting to make the for a postfix for the preceding block 02:51
A semi after the block fixes it
02:52 ggoebel left
colomon bkeeler++ 02:52
I'm trying to track down which commit caused the problem.
TimToady er, that's not a fix :)
bkeeler rakudo: { 1; } for (1, 2)
p6eval rakudo 14f803: ( no output )
bkeeler Indeed not
colomon TimToady: I'm sure he meant in the "makes it go away" sense. :) 02:53
bkeeler I did yes ;)
rakudo: { 1; } for (1, 2) { say "hi" }
p6eval rakudo 14f803: OUTPUT«Confused at line 11, near "{ 1; } for"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
colomon It's good analysis.
TimToady std: { 1; } for (1, 2) { say "hi" }
p6eval std 29796: OUTPUT«===SORRY!===␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/oXJ6yRpMfJ line 1:␤------> { 1; } for (1, 2) ⏏{ say "hi" }␤ expecting any of:␤ bracketed infix␤ infix or
..meta-infix␤FAILED …
bkeeler Ah, because of the lack of a newline
TimToady you can use ␤ on input as well as output 02:54
std: { 1; }␤for (1, 2) { say "hi" }
p6eval std 29796: OUTPUT«ok 00:01 108m␤»
bkeeler rakudo: { 1; } ␤ for (1, 2) { say "hi" } 02:55
p6eval rakudo 14f803: OUTPUT«Confused at line 11, near "{ 1; } \n f"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
TimToady rakudo doesn't do STD's end-of-block semantics yet
lue is that funky symbol supposed to say NL ? (I assume it, but to be sure) 02:56
bkeeler lue: yeah, it's kinda hard to read here too
What's the bot that ord's unicode characters? .u? 02:57
.u ␤
phenny U+2424 SYMBOL FOR NEWLINE (␤)
bkeeler Ah there he is
02:57 quietfanatic left
bkeeler How the heck do I type one of those on a mac keyboard anyway? I had a copy and paste yours 02:57
02:57 hudnix joined
lue press enter :) (to get the NL thing, IDK) 02:58
colomon I can confirm that ec47f33ef2201e2c0ea588141f5750dc74da2b02 does not have the problem. 03:00
I'm guess the next patch caused it....
TimToady well, under gnome you can do CTRL-SHIFT-u2424 03:02
lue high-pitched mocking voice: "well, under gnome you can do CTRL-SHIFT-u2424" I use KDE, and that's what Linus Torvalds uses! 03:04
TimToady we all have our faults
colomon PerlJam's e90453678f18304d9846847af857e5f33c780858 is the source of the problem. 03:05
TimToady though California has more faults than most
lue TimToady: Pun++
arlinius in more ways than one
colomon (PerlJam here is perlpilot on github, right?)
TimToady much of world culture is now our fault
snarkyboojum or duff? 03:06
ignore me 03:07
bkeeler ␤ Aha!
Figured it out
lue I wants to type it in KDE (now to bug Karl D. Edenworth with a unicode feature request) 03:08
arlinius lue: if you use emacs, you can bind a key to ucs-insert 03:09
TimToady or if you use an imput method, there's usually a way to do unicode too 03:10
03:10 nihiliad joined
TimToady like scim or ibus 03:11
bkeeler Hmm, only thing is selecting the "Unicode Hex Input" keybord layout I lose the ability to easily type accented characters without knowing the hex code
TimToady I wouldn't do it with a keyboard layout 03:12
bkeeler   That's just how mac os does things, AFAICT
TimToady I blame Steve 03:13
bkeeler Yep. Another Californian at that
TimToady to a fault
bkeeler I shudder to think how macs would be if he were a Texan though 03:14
lue oh no! don't say that! 03:15
TimToady 'course, with an input method, I'm always switching into 日本語 mode by accident... 03:17
03:20 bbkr joined
lue You know japanese? (I thought you just looked up a couple words on occasion...) 03:20
03:20 drbean_ joined
colomon TimToady: How do you give out commit bits for pugs? lue and bkeeler need them... 03:21
03:22 mikehh left
TimToady there's a page at commitbit.pugscode.org/admin/project/Pugs/people for that. not sure if you have to be an admin to do it though 03:22
anyway, anyone who wants a commit bit, msg me your email and preferred svn nick 03:23
colomon Ah, I thought anyone who had one could give one out.
TimToady you can try, but right now you're listed as "author"
I don't know how it really works
03:24 cotto joined
lue I'll be back later, after homework. Then I'll log out, kill X, and start on working on Rakudo! 03:24
colomon I somehow remembered the password, and now I'm at a page saying "Add a new committer"...
03:28 justatheory joined
lue The commit bit is only useful for pugs (its tests), right? (one more q before I _have_ to go) 03:33
colomon lue: yes.
lue thank you. That is all. G'bye for the moment!
colomon there are a bunch of projects stored in the pugs repo, actually.
but not rakudo.
must sleep soon myself.
TimToady tests and specs 03:36
and all the other projects under its directory, like STD
03:39 lestrrat is now known as lest_away
lue hello? I'm back 04:05
04:05 hudnix left
lue TimToady, if you're here, I'll msg you what you need to give me a commit bit 04:07
TimToady what if I'm not here?
lue dang it. I was hoping you're here. :) 04:09
TimToady well, we can pretend
04:14 quietfanatic joined
TimToady lue: and to answer your earlier questions, I know a fair amount of Japanese, but I wouldn't call myself anything like fluent yet 04:23
lue Now, is there anything specific to checking out/in pugs tests? Or just typical svn stuff? 04:24
TimToady just normal svn
lue alrighty. (I'm assuming it doesn't matter WHERE I put the pugs code)
TimToady if you add a file run util/add-svn-props on it 04:25
no, doesn't matter
~pugs works fine
er, ~/pugs
lue so....much.....of......the pugs.....source code! 04:30
TimToady it's not all pugs 04:32
most of it isn't pugs, in fact
you're also getting mildew, smop, elf, etc 04:33
lue takes....so....much.....more time.....than....should be required!
oh. It's done :)
So, if I type in checkin, it only checks in what I changed (please say yes) 04:35
I'm new to all this "working on open-source projects with other people" thing
TimToady yes 04:36
remember that this is a revision control system, so if you booboo we can always back it out
so we go on forgiveness rather than permission around here 04:37
lue alright. (Just a like a quick — er, wiki) 04:38
I'll be right back. I'm going to kill X. 04:39
04:39 lue left 04:45 patspam joined 04:46 lue joined
lue hello? 04:46
04:46 JimmyZ left
lue TimToady: are you there now? (You weren't before) 04:47
04:48 Trashlord joined
TimToady I come and go 04:49
(we're watching Olympics at the same time)
lue Ah. I'm hearing it from the other room 04:51
TimToady well, we're still watching yesterday's on the Tivo :)
cross-country pursuit at the moment
04:52 gfx joined
TimToady so I also work on my Chinese characters in the gaps 04:52
lue I saw Shaun White the other day. His `new trick' wasn't that impressive. (then again, I'm not much for sports) 04:53
04:55 lest_away is now known as lestrrat
TimToady it was the last half-twist that was impressive, I guess 04:55
he didn't exactly nail it, though 04:56
.u 𠥥 04:58
phenny U+20965 CJK UNIFIED IDEOGRAPH-20965 (𠥥)
TimToady that's the character I'm on currently :)
lue oh hell. This computer restarts X when I kill it >:(
(this terminal won't show me it :/)
TimToady mine either, but it might show up in the log
yes, it does 04:59
it's a box with two birdies inside it :)
lue now it's on tty7
TimToady I'm about 65% through labeling all the characters---only about 42000 to go... 05:01
lue is seeing how to kill X & KDE to save resources... 05:02
s1n misses perl 05:09
ugh so tired of java, everything perl can do, java can do with 100 times as much code
lue \o/ I guess
bkeeler You probably want to change your init level 05:11
Do you have a /etc/inittab file, lue?
Not sure what Fedora uses these days, a lot of Linuxen have moved away from init
05:12 REPLeffect left
s1n iirc redhat still uses init 05:12
that and their sysconfig stuff
bkeeler If so, ditching X is probably something as simple as init 3, or telinit 3 or something
Runlevel 3 is multiuser, no X. multiuser with X is 5 if I recall, which I probably don't. It'll tell you in /etc/inittab anyway 05:13
05:16 snarkyboojum left, snarkyboojum joined
lue How do I hit runlevel 3 05:17
bkeeler It used to be as easy as typing 'init 3'. Some systems have a 'telinit' command that does the same thing 05:18
s1n init 3 from a virtual terminal
bkeeler Or maybe initctl or something
s1n doing it from within X might have a funny effect, depending on your system
lue ooh, init 3 did something. 05:19
hoorah! \o/
bkeeler fedorasolved.org/post-install-solutions/runlevel
They recommend telinit
lue o well. Too late :D
should I init 5 then telinit 3, or just leave it? 05:20
bkeeler Nah, should be fine
If it was going to do something bad we wouldn't be talking right now 05:21
s1n it's fine, it's not a permanent change
lue yeah, your probab
s1n lol
05:23 patspam left
lue no busy LED yet... (wow, X must have been a resource hog) 05:31
bkeeler KDE more so
lue I happened to use both at the same time :/ 05:32
bkeeler That's the usual arrangement hehe
Some say gnome is a bit leaner, but really probably wouldn't make that much difference
lue But Linus Torvalds uses KDE (not what made my decision, but still...) 05:34
bkeeler heh
Supposedly Richard Stallman uses no X-based stuff whatsoever, so you can take comfort in emulating him now 05:35
lue (saw an XKCD comic about him once :D ) 05:36
bkeeler When I lived in Alaska my roommate at the time invited him up to speak at the university and put him up in the house for a couple of days, so I got to bask briefly in the legendary Stallman aroma 05:37
lue :O :O :O :O :O O.O O.O O.O O.o O.o 05:38
My shocks are so much, it scared bkeeler, apparently 05:43
bkeeler I'm not that easily shocked
lue No, 05:45
MY shocks scared you
I wouldn't mind going Xless for good _too_ much, but there are all the PNGs and GIFs and... 05:47
bkeeler not to mention firefox 05:48
lue OH YES! I forgot about that! (there is lynx, however, but...)
05:48 nihiliad left
lue is compiling in record time! Xless is awesome! 05:48
05:49 scp1 joined, am0c joined
lue I think I'll go back to runlevel 5 when all the compiling is over. That's all I need init 3 for really 05:57
lue watching olympics while waiting & 05:58
06:06 crythias left 06:10 justatheory left 06:18 JimmyZ joined
lue helooooo 06:22
JimmyZ o'hai 06:25
lue hey (still watching TV while waiting) 06:35
afk (again)
06:43 kaare joined 06:44 kaare is now known as Guest30383
lue I'll finish up here tomorrow. Cheers! 07:01
07:01 lue left 07:20 wolf2k_ubuntu left 07:22 Su-Shee joined
Su-Shee good morning 07:24
07:28 ihrd joined 07:36 ihrd left 07:43 Speedy2 joined
Speedy2 www.search2.net 07:43
07:44 Speedy2 left 07:45 JimmyZ left 07:51 iblechbot joined 07:57 ihrd joined 07:58 xinming joined 07:59 supernovus joined 08:03 ihrd left
supernovus A hopefully simple question. I am working on a little project that uses plugins defined in a config file. The original version was written in Perl 5 and uses YAML for it's config, and so when it see's plugin: [ First, Second ] it loads Namespace::Plugins::First, etc. using a 'require $plugin'; But, when I try this method in Perl 6, it tells me nice things like: Can't find ./lib/Websight::Dispatch in @*INC 08:03
spinclad Interoperation of Rakudo with Perl 5 is rudimentary at best, as yet. (1) Is Websight::Dispatch a Perl 5 module, or ported to Perl 6? (2) Same question for the plugins. (3) Do you have them in @*INC? 08:10
supernovus It is ported to Perl 6. I'm writing it all from scratch, just loosely based on my old system that was in Perl 5. 08:11
I'm not actually using any Perl 5 code or libraries in the new implementation.
spinclad ah, so it's just @*INC to track down. 08:12
rakudo: say @*INC
p6eval rakudo 14f803: ( no output )
spinclad rakudo: say @*INC.perl
p6eval rakudo 14f803: OUTPUT«undef␤»
spinclad rakudo: use Foo
p6eval rakudo 14f803: OUTPUT«"load_bytecode" couldn't find file 'Foo.pir'␤current instr.: '!use' pc 345482 (src/gen/core.pir:47172)␤»
supernovus I think the problem is that because $plugins is a variable, the require statement is looking for a a literal file called Websight::Dispatch rather than turning that into Website/Dispatch.pm 08:13
spinclad so it's consistent in p6eval's jail, at least
mmm... i'd have to look at how require is parse, i don't know if interpolation is implemented 08:15
*parsed
if you say use Websight::Dispatch rather than use Websight::$foo , is it any better? 08:16
or require 08:17
(as a test) 08:18
supernovus Yeah, I've already tested that. use and require work fine if the namespace is a non-variable (in January's release, the new master has a few regressions with use and require.) 08:19
Now I seem to have gotten past that part (by converting the plugin name into a plugin path), and it's the $plugin.new() call that is dying horridly. I've tried my $instance = eval("$plugin.new()"); but alas, no such luck. I know, I'm asking for some dark magick. :-) 08:21
08:23 masak joined
spinclad lolitsmasak \o/ 08:23
masak good Monday morning, #perl6!
\o/
frettled morning-thing!
08:23 frettled sets mode: +o masak
masak nothing like a kanelbulle in the morning. 08:23
frettled :) 08:25
08:25 snarkyboojum left
Trashlord sup 08:26
masak y0 08:27
08:27 yinyin left
spinclad Dude 08:27
08:27 yinyin joined
frettled Rock on! 08:27
Rock off!
Somehow I don't think that will be quiet as catchy as «wax on, wax off!» 08:28
s/quiet/quite/
Good morning, fingers, I can tell that you wanted to sleep a bit longer, but now we've got to work, my sweeties.
spinclad 'but does it follow the wax on, wax off protocol?
'
'or the clear to rock / ready to rock one?' 08:30
masak is irclog.perlgeek.de unresponsive for anyone else this morning?
(it is for me)
spinclad fine here 08:32
masak strange. 08:33
08:33 [particle] joined
masak hm, seems there's a bug in Chrome somewhere rather than in irclog.perlgeek.de. or maybe both. 08:37
supernovus: you still there? I think you'll have to nopaste some code for me/us to help you. I have a slight suspicion that you're doing something wrong or NYI with module names in strings... 08:42
frettled, bkeeler: I must say I truly enjoyed your match of Mornington Crescent this weekend. it's always nice to see two good players have a go at it. 08:43
spinclad :to(bed) & 08:46
moritz_ good morning 08:51
masak morning, moritz_ 08:52
supernovus masak: You probably don't want to see the code to this... it's very evil. :-) I worked around the issues I was having, using something like "my $plug = eval("$class.new()"); which did work after I figured out that I had a typo in the class I was loading... 08:58
masak supernovus: ok. 09:00
supernovus: (and generally, I don't think you'll be able to shock me with code evilness. I'm just finishing up a project where I emulate goto statements in generated code. :-P) 09:02
supernovus Heh, well then. I'm porting the CMS that runs my website from Perl 5 to Perl 6. Or at least that was the original theory, just adding some new functionality while I'm at it. Oh, and writing a parser for something that sort of looks like YAML, but isn't really... 09:05
I can tell it's 01:00 in my time zone... my eyes are beginning to glaze over. Probably best to give the code a break and go to bed. 09:06
moritz_ good night 09:08
masak supernovus: I salute your efforts. sounds like we have a lot of goals in common. 09:09
supernovus Masak: indeed, I'll send a tweet when I post the source to github. Anyway, Good Night everyone, I'm off to bed. 09:13
masak Good Knight.
09:14 supernovus left 09:16 gfx left
masak moritz_: good analysis on 'when True' and 'when some_function($_)'. I'm on the fence about the whole issue. feels like people will be surprised either way. (i.e. whether 'when True' always matches or only matches against the Bool anum value True.) 09:24
moritz_ masak: one thing I forgot: if we change $a ~~ $bool to means (?$a) === $bool, do we have a value that's always false if smart-matched against? 09:26
(except for a regex which never matches, which feels kind of... bloated)
masak !* 09:27
moritz_ doesn't work as currently specced
masak just thinking out loud :)
moritz_ alpha: say (!*).(False).perl
p6eval alpha 30e0ed: OUTPUT«Bool::True␤» 09:28
09:28 moritz_ sets mode: +v p6eval
masak by the way, what's the use case for a value that never matches anything? 09:28
frettled masak: thank you (M.C.) :)
masak is that for code that you never want to execute? :)
moritz_ masak: I was thinking of a function that might return that for smart-matching
something like given $obj { when coerce_to_smartmatchy some_function($_) { ... } } 09:29
where prefix:<coerce_to_smartmatchy> would turn True into * and False into someting that never matches 09:30
masak ah, of course.
moritz_ of course.
:-)
masak I'm not sure True and False should have this role at all.
we need something like Accept and Reject for that. 09:31
09:31 lestrrat is now known as lest_away
moritz_ only if we change the semantics of ~~ Bool 09:34
masak right. 09:35
well, here's the core of the issue as far as I'm concerned. I've come to see infix:<~~> as a sort of "compare with DWIMmy semantics". do 'eq' for Str, '==' for Numeric, type comparison for classes/roles/subtypes, and enum comparison for enums. 09:38
that all holds, but there's a big exception when matching against Bools.
the question is whether or not the exception pulls its own weight.
Bools are already special in a way, in that they're used implicitly by if, while and their negations. 09:40
and by various other things which coerce to Bool, I guess, such as subtype thunks.
09:49 xabbu42 joined 09:51 snarkyboojum joined 09:52 snarkyboojum left, snarkyboojum joined 10:00 yinyin left 10:07 scp1 left, scp1 joined 10:18 payload left
jnthn o/ 10:23
10:24 scp1 left 10:26 orafu joined
masak \o 10:26
m-locks oi
jnthn had lovely weekend in Vienna :-) 10:27
10:27 jferrero joined
jnthn Even if I was woken up at 7am for a sword fight. :-) 10:27
10:27 dakkar joined
masak jnthn: I hate when that happens. Luckily my rival was even more bleary-eyed than I was, so I lived to see another day. 10:35
jnthn masak: Luckily mine was 3 years old and the sword was made of foam. :-) 10:37
masak huh. never been in that situation. 10:38
I have, however, had a layover in Vienna.
10:43 payload joined
masak strange question on p6u. I don't really understand the context. is 'make spectest_smolder' a Pugs make target? 10:45
10:50 Trashlord left
frettled Well, if you should have some time for non-Perl 6 things, such as role-playing games, I rather like Legend of the Five Rings (AKA _L5R_). Japanese-style, mythological setting. This digression was sponsored by Kansai Denki. 10:51
10:52 payload left
m-locks whats with that japan 10:52
masak m-locks: they're exceptionally positive about Perl 6, for one thing. :) 10:53
m-locks nice to know 10:56
so are they gonna finish the 1.0 release soon? 10:57
masak m-locks: what do you mean? 10:59
the 1.0 version of Japan?
I don't think countries have releases.
(though if any country did, it would be Japan, I guess.) 11:00
m-locks: Perl 1.0 was released 22 years, 2 months and 4 days ago. 11:01
m-locks no but if they're positive i assume they are excited and doing all the things they can to get a working implementation 11:02
i was referring to rakudo
masak Rakudo doesn't have numbered versions. at least not yet. 11:03
there's a "Rakudo Star" or "Rakudo *" on the horizon, though.
jnthn I'm doubtful that Rakudo will adopt an x.x style version number scheme.
People tend to read a lot more into such things than is really helpful. 11:04
masak agreed, that would be insane. Rakudo 1.1, Rakudo 2.2, Rakudo 3.3... :)
jnthn masak: :-P
snarkyboojum Rakudo *.* :O
jnthn lol
masak snarkyboojum: the DOS version :P 11:05
snarkyboojum heh
m-locks creating a grammar to express all rakudo versions
jnthn Maybe we should just keep adding a * for each production release.
;-)
masak Rakudo Production Release... Whatever!
jnthn Whatever a "production release" is.
masak a production release is one that jnthn and pmichaud has stamped with a magic rubber stamp with the text "can be safely used in submarines, airplanes and nuclear power plants" on it. 11:08
jnthn has used Rakudo on an airplane. 11:09
masak alternately, a production release is a release made with the RT ticket count below 50 :)
jnthn It was running on my laptop. :-)
masak jnthn: it's the stamp that counts, not the actual use. :)
jnthn oh
:-) 11:10
Silly me. It's all about things being stamped.
:-)
masak exactly.
"TODO: procure magic rubber stamp."
11:13 Exodist joined 11:46 athaba joined 11:48 ggoebel joined 11:49 meppl joined, ggoebel left
colomon o/ 11:50
moritz_ \o
11:50 lichtkind joined 11:51 mikehh joined
lichtkind jnthn: moin 11:53
moritz_ lichtkind: you pinged me? 11:54
lichtkind moritz_: yes i just wanted to show you www.perlfoundation.org/perl6/index....oritz_lenz 11:57
moritz_: feel free to correct it or tell me
moritz_ seems accurate to me 11:58
moritz_ is not used to other writing about him
colomon You're the chief maintainer of the test suite?!?
(Why does no one tell me these things?) 11:59
moritz_ colomon: there's no such job description, but I've filled that position for the last 1.5 years or so
colomon: although I feel that you're taking over
jnthn lichtkind: oh hai...I saw you pinged me, but when I tried to pong you weren't here. :-) 12:00
colomon dear heavens, no, please!
lichtkind colomon: if you tell me everything about you, its also easier for enybody to know :)
jnthn: yes i wanted also you to check you mini biography :) 12:02
jnthn: www.perlfoundation.org/perl6/index....orthington
colomon Seriously, I've poked around a lot in S03 and S32, but that's it for the test suite for me so far.
And if you'd ask me to tell you what position moritz_++ has, I wouldn't have had any idea what to say, other than that he is awesomely useful to have around. :) 12:04
jnthn lichtkind: Huh...biography of me that doesn't mention beer? :)
lichtkind: Anyways, it's fine, though very shortly will be out of date. :-)
lichtkind jnthn: i was temted but if its right with you i will include beer
jnthn: what whould i add? 12:05
colomon: doing stuff is not the same as position :)
moritz_ "Jonathan is the only known Perl 6 hacker who managed to mention beer in every single presentation about Perl 6"
lichtkind: in Perl 6 land it is 12:06
lichtkind jnthn: English Perl hacker, who currently loves Beer and lives therefore in Bratislava, ??
jnthn lichtkind: But next month I move from Slovakia to Sweden. 12:07
lichtkind uhhh
bkeeler We just need to find a brewery to sponsor a grant with beer
lichtkind interesting
jnthn Just say that I generally can be found living in European countries that start with "S". :-)
lichtkind: Yes, taking up some new worky stuff there.
Not full time though...so still time for Rakudo too. \o/ 12:08
lichtkind o/ 12:09
Su-Shee jnthn: you're moving to spain? ;)
lichtkind jnthn: www.perlfoundation.org/perl6/index....orthington rewritten a bit 12:11
snarkyboojum typo at 'developement' 12:12
moritz_ Su-Shee: I thought it was switzerland
t/spec/S32-str/uc.rakudo dies here 12:14
rat.t too
jnthn Su-Shee: I did live in Spain for six months once. ;-) 12:15
Mmm...Switzerland. :-)
Not lived there. Yet. :-)
lichtkind Su-Shee: whant you page too? :) 12:16
12:16 payload joined
Su-Shee lichtkind: I want what? :) 12:16
lichtkind Su-Shee: tpf wiki
mikehh moritz: I get the same results - spectest_smolder #32234
Su-Shee lichtkind: not necessary, I don't care much for that stuff. 12:17
dalek kudo/master: 7fe9e3e | moritz++ | t/spectest.data:
re-enable test for statement-modifying for-loop, and add a new test file which we have never passed before
mikehh moritz_: I get the same results - spectest_smolder #32234
missed the underscore :-} 12:18
moritz_ rat.t is a parse error 12:20
colomon we worked that out last night. 12:24
12:24 ggoebel joined
colomon commit e90453678f18304d9846847af857e5f33c780858 broke parsing of blocks (with no trailing semicolon) before for statements. 12:25
I don't know how to fix the grammar to get around that.
bkeeler++ # for figuring out the details of how the parse was broken
12:26 ggoebel left
moritz_ ah, so I don't need to bisect. Good :-) 12:27
colomon Instead of reversing that commit, I decided to wait for wiser heads to wake up. ;) 12:28
donsbot.wordpress.com/2010/02/21/sm...m-codegen/
12:38 ignacio_ joined 12:40 pmurias joined 12:45 meppl left
takadonet morning all 12:47
colomon O/
colomon is apparently getting a big head. 12:48
masak takadonet: \o 12:49
12:50 hsb joined 12:57 uniejo joined 12:58 uniejo left 12:59 ignacio_ left 13:02 uniejo_ joined 13:03 ignacio_ joined, uniejo_ left 13:04 uniejo joined
pmichaud good morning, #perl6 13:06
mathw it's pmichaud!
colomon o/ 13:07
takadonet morning pmichaud
masak lolitspmichaud! 13:09
13:09 iblechbot left
jnthn yayitspmichaud! 13:11
pmichaud \o 13:12
mathw I think everyone's happy to see you
jnthn
.oO( If there's something strange, wrong in your grammar, who do you call? pmichaud! )
13:13
13:13 ruoso joined
pmichaud It's just because I always did well in grammar school :) 13:14
jnthn ;-)
masak .oO( Grammar 201: Longest-Token Matching ) 13:15
lichtkind masak: cheers :) 13:20
pmichaud: please say if there is something incorrect www.perlfoundation.org/perl6/index.cgi?nqp
masak pmichaud: I have now seen how <after> is implemented in PGE. it basically does $target.substr(0, $pos) ~~ / [$after-pattern] $/. very hackish. :)
lichtkind: moin, enlightened child. 13:21
lichtkind :)
colomon pmichaud: speaking of grammar....
colomon: commit e90453678f18304d9846847af857e5f33c780858 broke parsing of blocks (with no trailing semicolon) before for statements.
[07:25am] colomon: I don't know how to fix the grammar to get around that.
[07:25am] colomon: bkeeler++ # for figuring out the details of how the parse was broken
pmichaud masak: yes, <after> was always a hack. But until STD.pm, it was the only working implementation of <after> anywhere :) :) 13:22
colomon: I'll look at it as soon as I return (kid to school... back in ~15)
colomon danke 13:23
pmichaud do we have a quick example of a broken parse?
(afk, brb)
masak pmichaud: I'm not criticizing. mostly wanted to praise your pragmatism. :P
13:24 ruoso left
colomon pmichaud: rat.t is a long example... 13:27
(sorry, suffering small child interference at the moment)
13:41 SmokeMachine joined 13:44 ruoso joined
masak colomon: rat.rakudo runs here. 13:46
colomon masak: really?! 13:47
masak yep.
pmichaud I get the parsefail, yes.
lisppaste3 colomon pasted "simple failing example" at paste.lisp.org/display/95414 13:48
masak I just built Rakudo 3704a2 on Parrot r44294, and it runs fine here.
pmichaud masak: current head seems to be 7fe9e3e
masak oh :/
that's the reason it works here, then. :)
colomon if you add a semicolon after the first block, the simple example parses and runs. 13:49
pmichaud yes, it's the standard problem of not detecting a close curly as statement end 13:50
masak I've experienced similar parsefails before.
specifically, when redefining postcircumfix:<{ }>
pmichaud since it doesn't detect the statement end, it sees the 'for' as a statement modifier and gets all confused. 13:51
colomon pmichaud: yup, I understood the issue once bkeeler++ tracked it down, just didn't have a clue how to fix it (other than just reverting the patch that enabled statement for).
pmichaud I'm a little surprised it's broken.. I could've sworn that I had this working (in ng). 13:52
colomon afk # need to shovel out the driveway...
pmichaud starts looking at the file history to see what's happening 13:53
guess I didn't. Maybe I fixed it in nqp-rx. 13:54
hmmm, not fixed there, either. 13:55
13:58 ignacio_ left 14:02 hanekomu joined 14:03 ignacio_ joined
pmichaud prototypes a fix in nqp -- faster to do it there. :) 14:04
lichtkind pmichaud: feel free to edit www.perlfoundation.org/perl6/index....ck_michaud 14:05
masak the perlfoundation wiki has LTA CSS. the boxes on the right overlap the article text. :/ 14:12
at least on Chrome. 14:13
lichtkind: there's a dangling double quote on the last line of the pmichaud article. 14:14
lichtkind: also, the T in PCT stands for 'Toolkit'. 14:15
lichtkind masak: thanks done
masak third, the punctuation in the second sentence makes it seem as if PGE were all of the things mentioned in that sentence (grammar engine, compiler, pumpking) 14:17
14:18 hanekomu left 14:19 kensanata joined 14:20 ruoso left
lichtkind masak: in german that is different :) 14:21
m-locks chrome seems to display some web pages wrong 14:22
masak needs some polish :) 14:23
lichtkind masak: done- great joke
masak not as funny as www.youtube.com/watch?v=8gpjk_MaCGM
lichtkind masak: im only partian fan of monty python 14:25
only the monty part :)
14:35 ruoso joined 14:38 ignacio_ left
dalek p-rx: 216bacc | pmichaud++ | build/PARROT_REVISION:
Bump PARROT_REVISION.
14:43
p-rx: 3a51f6c | pmichaud++ | (2 files):
Fix statement_modifier on line after close curly bug.
14:49 synth left 14:51 hudnix joined 14:52 PZt joined 14:55 iblechbot joined
pmichaud std: { say 'hello' } for 1,2,3 { .say } 14:55
p6eval std 29797: OUTPUT«===SORRY!===␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/CGWhlGJk6c line 1:␤------> { say 'hello' } for 1,2,3 ⏏{ .say }␤ expecting any of:␤ bracketed infix␤ infix or 14:56
..meta-infix␤FAI…
14:56 quietfanatic left
dalek kudo/master: eacccf9 | masak++ | docs/metamodel.pod:
[docs/metamodel.pod] fixed small typo
14:58
15:06 Guest30383 left, ignacio_ joined
masak jnthn: ping. 15:07
15:07 Trashlord joined
pmichaud I have a fix for the statement modifier bug -- spectesting now. 15:07
lichtkind pmichaud : thanks 15:17
pmichaud std: say for 1;
p6eval std 29797: OUTPUT«Potential difficulties:␤ Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument at /tmp/o6d5YCs4us line 1:␤------> say⏏ for 1;␤ok 00:01 105m␤»
jnthn masak: pong 15:18
pmichaud std: xyz for 1;
p6eval std 29797: OUTPUT«Undeclared routine:␤ 'xyz' used at line 1␤ok 00:01 105m␤»
15:18 Trashlord left
jnthn masak: grr...native speakers suck. :-) 15:19
masak :)
how so?
jnthn: small metamodel question. how do multimethods square with .^add_method?
jnthn masak: OK, this one does. :-) 15:20
masak: It doesn't know about them.
masak: You add something ~~ Multi
mikehh I got a patch to get rakudo to build on parrot with g++ ver 4.4.1 - nopaste.snit.ch/19736 15:21
masak jnthn: hm. posit Child is Parent, each having at least one multi method foo.
jnthn: will all the multi variants of Child and Parent be visible from Child?
dalek kudo/master: 5afabfa | pmichaud++ | src/Perl6/Grammar.pm:
Fix bug with close-curly not terminating statement before apparent
kudo/master: dcc84e6 | pmichaud++ | docs/metamodel.pod:
Merge branch 'master' of [email@hidden.address]
jnthn Define "visible"
masak jnthn: participating in multi dispatch without any explicit trickery. 15:22
jnthn If a valid candidate exists in Child, then we call it.
Otherwise, we continue up to Parent and look for candidates there.
masak ok. 15:23
so a very wide match within Child will override a very narrow match in Parent?
15:23 athaba left
jnthn Correct. 15:23
masak understood. thanks.
jnthn In fact
There's nothing to say that if Parent's foo is a multi, then Child's also has to be. 15:24
pmichaud anyone want to evaluate a test with me? In for.t, I have disagreements with the tests for RT #61494
15:24 PacoLinux joined
masak jnthn: so now it seems to me that multis are perfectly orthogonal to inheritance. 15:24
pmichaud I also disagree with test #7
15:24 athaba joined
pmichaud my $a = 0; 15:24
{ $a++ } for 1..3;
is $a, 0, 'the closure was never called';
jnthn masak: My slightly tired brain thinks that sounds fair. :-) 15:25
masak jnthn: :)
15:25 xabbu42 left
jnthn pmichaud: Do you expect: 15:26
$a++ for 1..3;
{ $a++ } for 1..3;
To have different semantics?
masak I think a comment in that file says there was a p6l thread where TimToady said they do.
pmichaud that might be a different question. But I do expect the code in the curlies to be executed.
jnthn pmichaud: I think I don't in that...
pmichaud Because S04 has: 15:27
{ say OUTER::<$_>, $_ } for 1,2,3; # 421,422,423
jnthn for 1..3 { { $a++ } } # will be exeucted
for 1..3 { $a++ } # like this
pmichaud S04 also has
@names = ({ "$^name.$^num" } for 'a'..'zzz' X 1..100); 15:28
and even
# Not an error: Equivalent to "for 1..10 -> $x { say $x }"
{ say $^x } for 1..10;
masak www.nntp.perl.org/group/perl.perl6....26071.html
pmichaud hmmmmm
I think the synopsis must be correct here, and the p6l message must be fossil. 15:29
...but checking.
jnthn -> $i { say $i } for 1..3;
masak linked from line 57 in t/spec/S04-statement-modifiers/for.t
jnthn That one may well produce a closure and not call it.
15:29 jackyf joined
jnthn iiuc then 15:29
{ say 1; { say 2 }; -> $x { say 3 }; } # 1, 2 15:30
well, 1\n2\n...but not 3.
pmichaud jnthn: S04 has:
@names = (-> $name, $num { "$name.$num" } for 'a'..'zzz' X 1..100);
so that seems to argue against the -> forms producing closures. 15:31
jnthn Ah.
15:31 REPLeffect joined
pmichaud starts checking 'svn blame' 15:31
masak waitwait... that assignment binds looser than the statement modifier? o.O
pmichaud the statement modifier is in parens 15:32
it's inside the parens along with the lambda block
so it's modifying the lambda block, not the assignment.
masak oh. 15:33
sorry, I'm a bit distracted :)
pmichaud 23854 larry @names = (-> $name, $num { "$name.$num" } for 'a'..'zzz' X 1..100);
r23854 | larry | 2007-05-28 14:14:12 -0500 (Mon, 28 May 2007) | 2 lines
I'm guessing the r23854 commit (May 2007) supersedes the Sep 2006 p6l posting. :) 15:34
15:34 synth joined
jnthn wfm 15:34
pmichaud okay, how about the RT #61494 tests? 15:35
(line 81)
15:35 payload left
jnthn The one with the XXX note? 15:37
pmichaud yes
jnthn That looks...dubious. 15:38
pmichaud I don't think this test belongs in for.t
the problem here is (was) with the parsing of 'say', not with the for modifier.
jnthn Yes, S16-io/bare-say.t or something like that (name from memory) would be more suitable. 15:39
pmichaud I'll move it.
thanks.
jnthn np
t/spec/S16-io/bare-say.t 15:40
15:41 iblechbot left
lichtkind how about also a chat bot for wiki changes? 15:42
masak depends on its chattiness.
lichtkind: are you feeling that your work is not getting enough attention? :) 15:43
moritz_ lichtkind: dalek has an rss parser. If the wiki export an RSS feed of changes, it should be rather easy to do
lichtkind masak: no it would generate overall more attention to the wiki
moritz_ lichtkind: ask Infinoid for the details, and see github.com/Infinoid/dalek-plugins for details
lichtkind moritz_: thanks will later look into that
moritz_: seems to be written in p5 :) 15:44
jnthn Feel free to write a Perl 6 one. :-) 15:45
lichtkind jnthn: ask one of my clones
pmichaud $lichtkind.clone.say("Feel free to write a Perl 6 one. :-)") 15:46
lichtkind hahha
masak: i noticed that since i make more noise there where much more edits from other people 15:47
ceeya
15:47 iblechbot joined
masak that's true, noise sometimes leads to more people helping. 15:48
jnthn turns up his music
pmichaud PLZTURNOFFPOLKAMUSICKTHXBYE 15:49
15:49 Psyche^ joined 15:50 nihiliad joined
jnthn lol! 15:50
pmichaud: Regionally realistic, but not what I tend to be found listening to. :-)
15:53 justatheory joined, Patterner left, Psyche^ is now known as Patterner
masak jnthn: once you move up here, pmichaud can guess folkmusik with nyckelharpa instead :P 15:56
15:59 Trashlord joined 16:01 Trashlord left, Trashlord joined
jnthn looks up nyckelharpa 16:05
ooh, that's a curious thingy.
masak :)
it's basically a medieval synthesizer. 16:06
jnthn lol!
You should add that to the Wikipedia page. :-)
masak heh :) 16:07
pmichaud hmmm... pugs commits aren't showing up here? 16:08
moritz_ no pugs_svn running atm 16:09
can anybody look up what its host mask was?
pmichaud longs for git.
masak how long is it since we switched to git? a year? 16:10
already everyone is hooked :)
s/we/Rakudo/
pmichaud 13 months, now 16:11
yes, even some of the parrot folks who were steadfastly against git are starting to say "gee.... maybe we should...."
moritz_ Thu Jan 29 15:04:36 2009 +0000 was the last svn commit
pmichaud jnthn: is there a strong reason that Method.new takes a symbolic name ("!sig_setup...") instead of a block PMC as an argument? 16:16
I guess it's to keep the :outer 16:18
16:18 pyrimidine joined
jnthn pmichaud: It's to keep the outer. 16:19
pmichaud okay. I think I'll replace that with block references.
jnthn I'm willing to consider it a code smell
pmichaud but maybe this is another place where it makes sense to have an explicit :outer attribute :) 16:20
so far I'm still a bit against that approach, though. reference tends to make more sense.
16:21 payload joined
jnthn If we can keep the outers straight and have a way to reference a block, that's fine by me. 16:21
$block.reference() # makes a PAST node of some kind that is a reference to the block 16:22
pmichaud sure, reference a block is with PAST::Val(:scope<register>, :value($block))
(er, .new(...) )
that already exists :)
jnthn PAST::Val has a .scope
?
pmichaud oh, I have that wrong.
ummmmmmm
I'll have to look at alpha to see what it was :) 16:23
might be PAST::Var then
oh, it's just PAST::Val.new( :value($block) ) 16:24
16:28 synth left
pmichaud hmmmm 16:28
create_code_object(PAST::Op.new( :pirop('newclosure PP'), $block ), 'Method', 0, $lazy_name);
that looks problematic also. newclosure creates a clone. 16:29
oh, maybe it's okay. 16:30
jnthn Probably for the benefit of para-roles. 16:32
pmichaud: Ordinary classes almost certainly don't need it.
pmichaud it's in the thunking logic for attribute initializers 16:33
jnthn oh! 16:39
Isn't there a comment saying why? :-) 16:40
Oh, maybe there was in Alpha...
yes 16:41
# Need to not just build the closure, but new_closure it; otherwise, we
# run into trouble if our initialization value involves a parameter from
# a parametric role.
pmichaud right... but newclosure might bring about other issues
anyway, I'm leaving that alone for now 16:42
(i.e., until we observer a problem)
*observe
jnthn We had it that way in alpha for the best part of a year, iirc. :-)
So fingers crossed. :-)
pmichaud if there's a problem, it will come about from people attempting to access lexicals or package vars from within an attribute initializer 16:43
okay, I've switched lazy sigs to be referenced-based instead of namespace-lookup-based ... spectesting now.
16:50 meppl joined 16:51 cotto_work joined
pmichaud I don't quite understand the comment at Actions.pm:1016 16:52
# Added via meta-class; needn't add anything.
$past := PAST::Stmts.new();
oh, I think I see what's happening.
The real method is being installed into $table{$name}
er, %table{$name}
I think I can switch that. 16:53
jnthn Yes, you've got it. 16:56
pmichaud I'm switching it so that it still returns the actual method object, and installs a reference into $table{$name} 16:57
jnthn +1 16:59
17:01 uniejo left
pmichaud building, testing, crossing fingers 17:01
sjn crosses fingers too 17:02
17:02 uniejo joined
sjn btw, quite a few people @ FOSDEM wanted to know about Rakudo 17:03
masak \o/
sjn and a few were very happy to hear about how much has been done and about Rakudo Star
pmichaud excellent 17:04
wish I could've gone to FOSDEM. I was there in 2008 and it was a great conference. 17:05
sjn it was very nice to look at the faces after I told them "Perl 6 not released? No.. There's been more than 20 monthly releases already, and in Q2 you'll get the first one meant for general usage." :)
they look mostly like this: 8-o
looked*
:)
pmichaud excellent. sjn++
sjn followed by this: 8-) 17:06
pmichaud (sigh) maybe it's time for me to switch isps.... 17:07
pmichaud@orange:~$ nslookup www.google.com
;; connection timed out; no servers could be reached
jnthn: where do the entries in %table get used? 17:09
jnthn pmichaud: src/Perl6/[Package|Role].pm 17:17
17:18 masak left 17:24 cotto_w0rk joined
jnthn pmichaud: Essentially, we make an instance of one of those per package. 17:24
pmichaud: So there's a single data structure that has information at compile time on what's making up the class etc. 17:25
pmichaud: And it also knows how to produce the AST, which is mostly a bunch of meta-method calls.
pmichaud right. any particular pieces of that that are likely to depend on having PAST::Block nodes?
because what I'm sending now are PAST::Val
jnthn pmichaud: nope 17:26
pmichaud: They just emit the node straight into the PAST tree that does the call to the meta-class. 17:27
pmichaud hmmm. I get a codegen failure.
17:27 cotto_work left
pmichaud let me reset and try again. 17:27
jnthn oh?
oddness
What's the failure?
pmichaud something is outputting "Capture" into core.pir 17:28
jnthn ew
pmichaud which makes me think a node is being stringified somewhere that shouldn't be.
jnthn Would putting a PAST::Val inside a PAST::Op with pasttype callmethod cause a problem?
pmichaud nope
jnthn OK
pmichaud PAST::Val is constant :-)
and in this case, it just becomes a register 17:29
jnthn Sure
pmichaud (a PMC register)
jnthn That's the only slightly interesting thing we do.
Other than that it's just emitting it.
As in, sticking the node you pass in into a PAST tree.
pmichaud right
I'll try it again, look more closely at the codegen 17:30
jnthn OK 17:32
17:33 gbacon joined
pmichaud assign $P114, Capture[0x2e68850] 17:33
yeah, it's the funky thing going on with the PAST::Op, I guess. 17:34
jnthn ah, Ihate
pmichaud $P113 = new ["Perl6MultiSub"]
new $P114, "PAST;Op"
assign $P114, Capture[0x2e68850]
$P115 = $P113."set_candidates"($P114)
meta."add_method"(obj, "Str", $P115)
jnthn it when that happens...
oh
eww
So only a problem for multis?
17:35 nbrown joined
pmichaud oh, wait 17:37
create_code_object returns a PAST::Block? or something else?
pmichaud checks
jnthn PAST::Op
pmichaud that's the issue
okay
jnthn It takes a PAST::Block as one of it's parameters
Basically, it wraps the Parrot sub up in a higher level code object. 17:38
pmichaud right, I ended up taking the reference to the PAST::Op instead of the block
jnthn oh!
You probably wnat to pass the reference into create_code_object :-)
pmichaud sooooo.....
jnthn oh, but hmm
pmichaud the question really becomes, what gets returned by method_def ? 17:39
at the moment, the problem line is
jnthn starts to see the problem... :-/
pmichaud $past := PAST::Stmts.new();
because we really need to return the block, or something containing the block
jnthn Return whatever create_code_object returns.
IIRC, it doesn't matter if you call create_code_object twice on the same Parrot sub. 17:40
In .new, I'm pretty sure it recognizes if the Parrot sub already has an attached wrapper.
And just returns that.
pmichaud more to the point, I don't think we want %table{$name} to be handling the code gen for the block itself. as in, ever.
17:41 payload left
jnthn Well, it's "not" now in a sense. 17:41
As in
It doesn't care much about what it's given.
17:41 pmurias left
pmichaud but in the code it generates, are the various method calls expecting to have the actual Method object or the underlying block ? 17:42
jnthn Method object.
pmichaud right, that's a problem.
jnthn ?
17:42 payload joined
jnthn I don't want [package|role].pm having to know about doing the wrapping. 17:42
pmichaud I agree 17:43
jnthn And at the moment they don't.
(Yes, it just so happens that the current impl has the actual PAST node for the block and the wrapping passed in. But it doesn't have to be that way.)
I'm guessing I'm kinda missing your point somewhere, I'm just not quite sure where yet. :-) 17:44
pmichaud I'm just trying to decide what should get the reference.
I guess it's okay for the Method object to get the reference -- in that case, the method_def would "make $past" on the unwrapped block
*would have to 17:45
jnthn I'm not sure that will end well. :-/
Well
It maybe doesn't matter for has-scoped methods.
But for my and our scoped ones (which granted we don't handle yet), the lexpad symbol and/or pcakge symbol should point to the wrapped thingy. 17:46
pmichaud that's no problem, that's what happens I think 17:47
basically, %table{$name} always sees the result of create_code_object
jnthn Yes
pmichaud it's just that the Method object created for create_code_object gets a reference to the Parrot sub
jnthn Right 17:48
pmichaud while the Parrot sub itself (unwrapped) is used as the .ast value of method_def
so that it will be scoped properly
jnthn That would probably work as an improvement on current situation.
pmichaud at runtime, the Method object ends up being exactly the same as it is now
jnthn Yes.
But the outers are pointed correctly.
pmichaud okay, trying that
jnthn I think that'll work.
Be careful not to break anonymous methods. 17:49
pmichaud they're in a separate 'if' section, shouldn't matter
anonymous methods don't end up in that special %table anyway, I don't think.
jnthn Correct.
17:49 IllvilJa left
jnthn Was just a heads up that they *should* return the wrapping code. 17:50
pmichaud correct, they still will.
pyrimidine just a quick question, is PERL6LIB working on master?
pmichaud pyrimidine: not yet. 17:51
pyrimidine ok, just checking
17:51 stephenlb joined 17:57 xabbu42 joined 18:00 quietfanatic joined, dakkar left, payload left, ignacio_ left 18:04 ignacio_ joined
pmichaud > class A { my $x = 'xyz'; method xyz() { say $x; } }; A.new.xyz; 18:04
xyz
lambdabot <no location info>: parse error on input `class'
pmichaud \o/
lambdabot: i hate you 18:05
making spectest now
18:06 lambdabot was kicked by jnthn (lambdabot))
jnthn Hate removed. 18:06
moritz_ didn't I kickban lambdabot back in the days?
jnthn moritz_: I think so
moritz_: I don't remember lambdabot being around much at all of late.
So was kinda surprised to see it again now.
pmichaud: Nice work!
(Well, if the spectests pass anyway. :-P) 18:07
pmichaud so far so good
jnthn S14-role will be the acid test. :-/
PerlJam good day all
pmichaud PerlJam: is it?
PerlJam so far it seems so. 18:08
jnthn PerlJam: Akshually I liked yesterday better.
PerlJam besides I'm wishing everyone a good day rather than making a statement about today :)
pmichaud S14-roles all passed.
jnthn pmichaud: Hmm.
OK.
pmichaud let me double-check the codegen 18:09
jnthn parameterized-type.t
Is probably the budgie in the cage.
If that passes, you're probably in the clear.
pmichaud it passed 18:10
18:10 cotto_working joined
jnthn OK, wfm then. \o/ 18:10
18:10 cdarroch joined, cdarroch left, cdarroch joined
pmichaud and yes, we get correct codegen (looking at generated PIR) 18:11
18:11 ShaneC joined
pmichaud the block now has the correct :outer 18:11
jnthn Excellent.
pmichaud I'll commit what I have, then remove the pir:: hacks that we were using for !to-radians and make sure it still works 18:12
colomon \o/
pmichaud or I'll let colomon++ do it :)
(need lunch here)
colomon stirring tapioca here...
pmichaud absolutely loves his new google phone.
18:13 cotto_w0rk left
pmichaud (which isn't so new anymore, I guess) 18:13
colomon is that the nexus?
pmichaud yes
ordered one in the first hour the site went live :)
jnthn Is that the Google Phone equivalent of lining up outside the Apple Store? :-) 18:14
18:14 xomas joined
pmichaud jnthn: yes, I think so. 18:14
I was watching the Google press conference online, someone blogged "hey, the store is up!", and mine was ordered within just a few minutes :) 18:15
jnthn :-)
Does it run Rakudo yet?
;-)
pmichaud via a ssh window, yes :)
colomon I haven't quite understood why people seem to prefer it to the Droid?
pmichaud the droid I saw seemed clunky next to my phone
colomon Ah. Clunky might be for me. ;) 18:17
pmichaud yes, I'm definitely a fan of "thin", "small", and "elegant".
colomon mostly I'm concerned about cell providers... it's not clear to me that anyone other than Verizon (who we're on) does an acceptable job with northern Michigan.
afk # letting out parents' dog
18:17 am0c left
pmichaud yeah, it was nice that I was already on T-Mobile, so that wasn't a concern for me :) 18:18
lichtkind pmichaud: even in german is T-mobile is a konzern :) 18:19
blog.rfc2324.org/
pmichaud pushed class lexicals fix 18:21
okay, lunchtime
colomon \o/
lichtkind pmichaud: bon appetit 18:22
jnthn: www.perlfoundation.org/perl6/index....akudo_star 18:23
TimToady lichtkind: I would prefer that my entry not speculate about Turing awards 18:24
dalek kudo/master: a3a650e | pmichaud++ | src/ (2 files):
Change lazy signature setup so that it uses block references instead
18:25
kudo/master: d98b492 | pmichaud++ | src/Perl6/Actions.pm:
Refactor method creation a bit, making sure that

to the underlying Parrot sub, so that the PAST::Block for the sub itself can be nested within the class/package/role main block. This resolves the problem with methods being unable to access lexical and package-scoped variables in class definitions.
lichtkind TimToady: this sentence i copied from former material, since im no native speaker im reluctant with english jokes, but its your page, i remove it
lichtkind TimToady: your also author of viv? 18:26
18:27 hercynium joined
TimToady yes 18:27
jnthn lichtkind: s/March/April/
TimToady but it's not a major thing, really
jnthn s/His/It's/ 18:28
lichtkind TimToady: thanks change is done
TimToady it's only in 2nd spot on the perl6.org page because I didn't want to pick one of the other things :)
lichtkind TimToady: it might compared to std but in the wiki we try to explain also also hillarious perl 6 terms 18:29
jnthn: thanks
jnthn: any more specific date?
TimToady also, viv isn't done yet, considering it's supposed to translate vi to v
and replace gimme5 18:30
jnthn lichtkind: no :-)
TimToady people keep distracting me with shiny spec issues :)
lichtkind :) 18:31
jnthn
.oO( is it the spec that's shiny, or the issues :-) )
lichtkind TimToady: i wasnt aware of thing like v and vi
PerlJam wishes he could go to a TED event at least once
lichtkind PerlJam: most TED speaches i saw sucked badly 18:33
jnthn: done 18:34
PerlJam Then I've been lucky in cherry-picking the good ones.
lichtkind PerlJam: most propably we have different taste :)
18:41 synth joined 18:43 payload joined 18:44 ggoebel joined 18:48 payload left 18:49 bionoid joined 18:50 bionoid left 18:51 justatheory left 18:56 |Jedai| joined
mdxi there are some interesting speeches, but i can't help but think that the people in teh room during those speeches are the same people who were OMG SO SURE that the Segway was about to magically turn all urban sprawl, everywhere, into gleaming arcologies 18:57
18:57 payload joined
colomon pmichaud: Huh. Still getting Null PMC access in can() with sin. Must check new code. 18:58
19:08 rgrau joined 19:14 kensanata left 19:17 Chillance joined 19:18 justatheory joined 19:19 andy1 joined
colomon pmichaud: Yup. I 19:23
I'm getting pretty much the same results as before the patch.
19:37 xomas left, payload left, cotto_w0rk joined 19:40 payload joined, cotto_working left
pmichaud colomon: looking 19:45
19:47 cotto_w0rk left, telmich joined
telmich hello 19:47
PerlJam greetings telmich
telmich I'm wondering whether choosing perl6 as a language to learn for a software devepment learning project 19:48
is a good idea or not. how far is perl6 usable?
moritz_ telmich: it's not yet production ready
telmich: do you know other programming languages already? 19:49
PerlJam moritz_: in some sense we should stop telling people that, so that they'll try to use it anyway :)
telmich moritz_: lot shell, some perl, more c
moritz_ PerlJam: in some sense we shouldn't try to disappoint people
telmich I'm want to learn a new language within this project and also having a look at ruby currently 19:50
moritz_ what kind of project?
PerlJam telmich: ruby is an excellent language to learn. Very perlian in feel, but with syntax more like python
telmich well, the idea is to learn the theory of software development
and we're pretty free to chose the language
PerlJam telmich: oh, if you just want theory, you don't even *need* a programming language :;) 19:51
er, ;)
telmich well, at the end there must be something we can refactor ;-)
TimToady ruby will tend to trick you into software development via monkey patching though...
telmich TimToady: well, any other good pointer to a usable (object orientated! it's still in) programming language?
PerlJam telmich: smalltalk 19:52
telmich I was also considering python, but the interpreter is imho too buggy
TimToady if you consider python too buggy, stay away from rakudo for now. :)
telmich PerlJam: sonuds interesting
TimToady: ok :-) 19:53
TimToady on the other hand, python has *design* bugs which aren't in Perl 6 :)
PerlJam telmich: Haskell is object oriented if you cock your head to one side and squint a little bit.
telmich PerlJam: hmm, haskell is missing i/o in normal cases, afaik 19:54
PerlJam telmich: depending on what lessons your willing to learn, PHP 6 is object oriented too :)
TimToady yeah, well, you have to see monads as objects, objects are all about state
PerlJam s/you/you're/ 19:55
telmich: you can still do IO with Haskell. It's just ... different.
19:55 masak joined
colomon pmichaud: thanks. 19:56
telmich PerlJam: I guess php6 is a major bug upgrade of php4, isn't it? 19:57
PerlJam telmich: definitely.
pmichaud colomon: it seems to be working for me. 19:58
colomon how did you do it?
pmichaud I'll check in my change to sin.t momentarily.
PerlJam telmich: but, there are many design errors on PHP due to their apparent language-design-by-brownian-motion 19:59
pmichaud committed.
PerlJam s/on/in/
pmichaud r29800 20:00
20:00 jferrero left
PerlJam telmich: But it's "good enough" and that's all that matters to most people 20:00
telmich PerlJam: well, I think a bit different, which is perhaps the reason why I got in here.
20:01 synth left
telmich Still, perl6 somehow sounds like hurd and grub2 (though grub2 _HAS_ a release...) 20:01
colomon pmichaud: git pull is claiming I'm already up-to-date....
PerlJam telmich: Perl 6 has a release every month
telmich: it's just called "Rakudo"
20:01 cotto_work joined
moritz_ telmich: but it's better than Duke Nuke Forever (which has stalled in development) 20:01
telmich hehe 20:02
that one needed to come :-)
pmichaud colomon: what does line 1018 of src/Perl6/Actions.pm look like?
or, what's the result of "git log -1"?
colomon: note, all I did was change the spectest -- I didn't change anything in master since before lunch 20:03
20:04 pugssvn joined
telmich thanks for you advice so far, I'll come back and look again in some time! 20:06
20:07 telmich left
colomon pmichaud: oh! 20:08
There should be parallel changes in the spectest and in Any-num.t. 20:09
20:09 synth joined
colomon pmichaud: latest commit is d98b4925c260c6a44cd7985883473afe719e36fc by you 20:11
colomon actually feel asleep and started dreaming in his office chair while pmichaud was trying to talk to him ten minutes ago. sigh.... 20:12
line 1018 of Actions.pm is # $past := PAST::Stmts.new(); 20:17
20:17 ignacio__ joined 20:18 ignacio_ left
pmichaud colomon: okay, you have the most up-to-date version 20:21
and yes, I see the null pmc when trying the straightforward change to src/core/Any-num.pm
colomon so it's not just my machine.
but the change in sin.t works?
pmichaud yes.
I think it has to do with the fact that we're in core 20:22
colomon ah.
pmichaud class initialization gets a little weird there.
colomon makes sense.
well, getting sin.t fixed is probably a more important first step anyway. 20:23
20:23 jackyf left
lichtkind pmichaud: am i right that rakudo #26 is already ng? 20:24
pmichaud lichtkind: yes.
lichtkind pmichaud++ great
pmichaud colomon: yes, I suspect we need to fix the other *.t files also?
colomon pmichaud: I'll be happy to get that if sin.t works for me. 20:25
It'll be a very quick fix.
but I might not be able to get it tested and checked in before an upcoming whistle lesson.
:)
pmichaud no rush from this end, other than I'd like to get the pir:: out of the test files asap 20:26
but it doesn't have to happen "immediately"
colomon It really is trivial to change... I've already got it done, just need the testing of the change now. 20:28
But I'm excepting to get pinged from Newfoundland in about one minute. :) 20:29
20:29 cotto_work left
lichtkind ruoso: ping 20:34
20:37 masak left 20:38 jferrero joined 20:42 cotto_work joined 20:46 kaare joined 20:47 kaare is now known as Guest60183 20:51 Trashlord left
pmichaud colomon: I'm not quite sure why things aren't able to be fixed in Any-num.pm yet, but I'll keep looking into it. I'm sure it has to do with the order in which things initialize inside of the core setting. 20:51
my main concern at this point was to get lexicals working in user-defined classes, and in the tests 20:53
(and eliminate the pir:: from the test files)
so that's been accomplished :)
afk for a bit
20:56 hercynium left 21:01 ash_ joined
ruoso lichtkind, pong 21:02
21:04 uniejo left
lichtkind ruoso: grat please add to www.perlfoundation.org/perl6/index....niel_ruoso or tell me 21:05
21:06 ignacio__ left
ruoso lichtkind, I added a link to my linkedin and ohloh profiles ;) 21:14
lichtkind ruoso: thanks, hope you seen we massivelyrevamped the wiki :) 21:15
ruoso looking
colomon pmichaud: right, getting it out of the tests is most important. 21:22
pugssvn r29801 | colomon++ | [t/spec] Remove the pir:: optimization hack from the trig tests now that our variable declarations work okay in user classes. 21:23
21:23 colomon left, colomon joined
colomon Don't know how I managed to log myself out there. 21:24
21:27 stephenlb left
ash_ rakudo: class Foo { }; my $a = Foo.new; my $b = Foo.new; say $a ~~ $b; 21:28
p6eval rakudo d98b49: OUTPUT«Method 'ACCEPTS' not found for invocant of class 'Foo'␤current instr.: 'infix:<~~>' pc 212643 (src/gen/perl6-actions.pir:15669)␤» 21:29
ash_ how would you compare a class you made?
would you need to override ~~ or == or eq or something? 21:30
lichtkind pmichaud: since im mention you there you should have seen this: www.perlfoundation.org/perl6/index....akudo_star 21:31
TimToady ash_: depends on how you want to compare
jnthn ash_: For smartmatch you implement an ACCEPTS method in your class. 21:33
$a ~~ $b calls $b.ACCEPTS($a)
ash_ so, if you want ~~ to work you only need to make an ACCEPTS? 21:34
21:34 hercynium joined
jnthn Yes. 21:35
See some of the built-in types in src/core/ in Rakudo for some examples.
ash_ thanks, will do 21:37
ruoso TimToady, would you mind dropping the Instant->Numeric conversion ?
er... s/conversion/coercion/
ruoso just sent an email with the reasoning about it 21:38
21:39 jferrero left
colomon Wouldn't you normally want to override cmp for a class, unless your class was specifically stringy or numeric? 21:41
21:43 alester joined
ash_ cmp or eqv? 21:44
21:44 ruoso left
colomon depends on what kind of comparison you want to do, I guess. 21:44
ash_ so... there is ==, ===, eq, eqv, cmp, ~~, umm... any others? just curious 21:45
colomon well, cmp fits in with <=> and leg
It's not exactly an equals operator, though it can do that. 21:46
21:47 SmokeMachine left
ash_ is True ~~ False really supposed to be true? 21:48
pmichaud no, it's False
but False ~~ True is true :-)
rakudo: say True ~~ False;
p6eval rakudo d98b49: OUTPUT«0␤»
colomon :\
ash_ ah, that's what i meant i guess
pmichaud rakudo: say False ~~ True
p6eval rakudo d98b49: OUTPUT«1␤»
ash_ is that doing True.ACCEPTS(False)? or which kind of smartmatch does that do? 21:50
jnthn (True.ACCEPTS(False)) yes 21:52
But Bool's ACCEPTS is just defined as method ACCEPTS() { self }
ash_ is that how it should be? 21:53
just seems like a confusing definition 21:55
TimToady the assumption is that anything returning boolean has tested $_ somehow
21:55 pmurias joined
TimToady and "True" is the test that overrides whatever was in $_ :) 21:56
21:56 jferrero joined
TimToady however, since we've invented that * matches everything, there's less need for that 21:56
quietfanatic rakudo: say False ~~ 1 21:57
p6eval rakudo d98b49: OUTPUT«0␤»
TimToady so maybe we could put a warning if the right side is True
quietfanatic rakudo: say True ~~ 1
p6eval rakudo d98b49: OUTPUT«1␤»
TimToady or can be determined not to have tested $_
ash_ so like given $a { when * { } } vs given $a { when True { } }; it used to be when True, so it matched itself against anything basically? 21:58
TimToady yes
pmichaud I figured the purpose of the existing match is more like: 22:00
given $person { when .age > 35 { ... }; when .age > 40 { ... }
TimToady yes, that tests $_ 22:01
pmichaud hmmmmm
detecting that might be tricky, though.
TimToady which is much more useful than matching the left side against Bool
pmichaud right
(I'm arguing in favor of the current spec)
it seems more logical to special-case the situation of where infix:<~~> ends up with a true value as its rhs 22:03
when function-returning-true() { ... } # no warning 22:04
if xyz ~~ True { ... } # warns
ash_ could Bool.ACCEPTS(False) { self === True } ?
pmichaud if $xyz ~~ function-returning-true() { ... } # also warns
ash_: note that the result of 70 > 35 is "True" :-) 22:05
TimToady what if it function-returning-true see CALLER::<$_>?
*sees
pmichaud TimToady: I'm advocating that we don't worry about whether we "see $_"
s/advocating/suggesting/
Bool.ACCEPTS($x) { self } 22:06
and
infix:<~~>($topic, Bool) { warn ... }
TimToady that would warn if you say when $_ == 42 22:07
pmichaud oh, does when call infix:<~~> ? 22:08
I think we have it calling accepts
TimToady yes
pmichaud but I could be wrong about that
TimToady well, they're both special syntax that calls ACCEPTS
there is no ~~ operator, really...
is how I've been thinking of it
pmichaud okay, then I was posing a possible difference in the operator
s/operator/syntax
TimToady doesn't help with when True 22:09
pmichaud my thinking was that 'when' never warns, while '~~' warns.
TimToady I think the target of either can be analyzed syntactically for things that obviously want a warning, like True
pmichaud so when True would end up being True.ACCEPTS($_) which wouldn't warn
TimToady I think that's just as like to confuse people as ~~ True 22:10
*likely
pmichaud I'm thinking of the case where someone does
if $x ~~ $y { say "x matches y" }
and $y ends up happening to be a Bool true or false
we can't detect that syntactically 22:11
TimToady well, that's the grep True, ... case
possibly detectable for a parameter prototyped as as Matcher 22:12
lemme stew on that a little longer 22:13
pmichaud sure
I see the problem with the other side as well now, also.
22:19 cdarroch left 22:21 payload left
dalek kudo/master: b9b10eb | pmichaud++ | build/Makefile.in:
Add some dependencies to the t/*/*.t targets.
22:23
22:29 wknight8111 joined, mssm joined 22:30 Su-Shee left 22:40 iblechbot left 22:44 ggoebel left
colomon TimToady: pir:: removed from spectests, thanks to pmichaud++'s patch that got "our @a" working in class definitions. 22:45
22:47 cotto_work left 22:50 pyrimidine left 22:53 samlh joined 22:55 IllvilJa joined 22:58 eternaleye joined 22:59 cotto_work joined 23:01 wanradt_ joined 23:02 Guest60183 left 23:07 stephenlb joined 23:13 athaba left 23:17 payload joined 23:21 snarkyboojum left 23:23 xabbu joined 23:24 xabbu is now known as Guest42753, payload left, payload joined 23:25 Guest42753 left 23:29 xabbu42 left 23:30 snarkyboojum joined 23:34 lest_away is now known as lestrrat 23:37 wanradt_ left 23:45 ggoebel joined 23:48 pmurias left 23:54 wanradt joined 23:57 nihiliad left