»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:02 donaldh joined 00:03 pjcj_ is now known as pjcj 00:04 donaldh left 00:08 felliott left 00:10 felliott joined 00:11 felliott_ joined, felliott left, felliott_ is now known as felliott, phenny joined 00:14 sji left 00:15 felliott left 00:17 donri joined
donri why does ([+]0,1...*)[10] hang? 00:18
benabik donri: Because ([+]0,1...*) asks for the sum of all numbers between 0 and infinity. 00:19
donri well i get why but is that per spec or just rakudo not fully lazy?
00:19 cosimo_ joined, cosimo_ left
jnthn You're asking it to add up the numbers to infinity. 00:20
It's not a bug - it's just doing what you asked. ;)
benabik Did you mean ([\+]0,1...*)[10] ?
jnthn The index is kinda useless there
As what you get back is a single item, not a list.
Did you mean what benabik said, or maybe [+] (0,1...*)[10]
donri benabik: yes, but i didn't know that syntax :)
what's that mean 00:21
00:22 felliott joined
jnthn [\+] is trinagle operator - produces all the intermediate arrays 00:22
benabik Produces an array of intermediate values.
donri also [+](0,1...*)[0...10] 00:23
benabik rakudo: ([\+]0,1...*)[0..10]
p6eval rakudo 6f9116: ( no output )
jnthn ah, yes, that's more useful :)
rakudo: (([\+]0,1...*)[0..10]).perl.say
p6eval rakudo 6f9116: OUTPUT«(0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55)␤»
donri rakudo: (0,1,&infix:<+>..*)[10] 00:24
p6eval rakudo 6f9116: OUTPUT«Method 'succ' not found for invocant of class 'Perl6MultiSub'␤ in 'RangeIter::reify' at line 4926:CORE.setting␤ in 'List::at_pos' at line 1␤ in 'Any::postcircumfix:<[ ]>' at line 1790:CORE.setting␤ in 'Parcel::at_pos' at line 1␤ in 'Any::postcircumfix:<[ ]>' at line
..1790:CORE.…
donri rakudo: (0,1,&infix:<+>...*)[10]
p6eval rakudo 6f9116: ( no output )
donri rakudo: (0,1,&infix:<+>...*)[10].say 00:25
p6eval rakudo 6f9116: OUTPUT«55␤»
benabik I always forget that p6eval isn't a REPL.
jnthn We did have it auto-print once, but I think it causes some other issues
benabik Would be handy if it had something like ruby's p: sub p($_) { .perl.say } 00:28
00:29 whiteknight joined
benabik Or some other low precedence way of adding .perl.say 00:30
00:32 stifynsemons left
dalek p/match-nom: 94e55ed | jonathan++ | src/pmc/rakudoobject.pmc:
Work around Parrot's nuts keys implementation. This means the getting/setting keys in the capture bit now seems to work well, which gets us to the next error, which is just that NQPCapture needs some more implementation effort (exists). Also will need to make those v-tables overridable.
00:32
jnthn OK, enough for me tonight. 00:35
Gotta drag myself into $office at a reasonable time in the morning.
sleep &
donri rakudo: [\+]0,1...* 00:39
p6eval rakudo 6f9116: ( no output )
donri rakudo: say [\+]0,1...*
p6eval rakudo 6f9116: 00:40
..OUTPUT«(timeout)128364555667891105120136153171190210231253276300325351378406435465496528561595630666703741780820861903946990103510811128117612251275132613781431148515401596165317111770183018911953201620802145221122782346241524852556262827012775285029263003308131603240332134033486357036553…
donri lol
00:44 donri left 00:45 Limbic_Region joined 00:48 vmspb left 01:03 saaki left 01:09 Rotwang left
sorear good * #perl6 01:29
01:30 _jaldhar_ joined 01:34 stkowski left 01:38 _jaldhar_ is now known as jaldhar 01:48 plobsing joined 01:49 shortcircuit joined 01:52 jasonmay joined 01:57 cosimo left 02:05 noganex left, noganex joined 02:07 cdarroch left, am0c joined, florz left 02:09 satyavvd joined 02:17 stifynsemons joined 02:29 kst` is now known as kst 02:36 stifynsemons left 02:37 whiteknight left 02:42 Guest40998 joined 02:43 Guest40998 left 02:55 lateau joined
diakopter * 02:55
phenny diakopter: 15 Feb 09:55Z <moritz_> tell diakopter that I "git stash"ed some changes to evalbot, because I needed to pull and didn't know what to do with them - fell free to 'git stash apply' + commit, or let them rot
03:04 satyavvd left, cosimo joined
sorear hi diakopter 03:06
03:10 benabik left 03:13 cosimo left, Limbic_Region left, cosimo joined 03:14 stifynsemons joined 03:25 lakshman left 03:26 shabble_ left 03:29 shabble joined, shabble left, shabble joined 03:33 woosley joined 03:40 agentzh joined 04:01 benabik joined 04:16 satyavvd joined 04:19 mtk left 04:22 colomon joined 04:23 Su-Shee_ joined 04:26 mberends joined 04:27 Su-Shee left, drbean left 04:28 drbean joined 04:33 stepnem left 04:35 satyavvd left 04:36 meraxes left 04:37 stepnem joined 04:43 nadim__ left 04:44 nadim__ joined, mberends left 04:46 mberends joined 04:52 _twitch joined 04:59 felliott left 05:00 felliott joined 05:02 felliott left 05:12 cosimo left 05:21 colomon_ joined, colomon left, colomon_ is now known as colomon
sorear Why are so many spectest files so long and complicated? :/ 05:23
05:26 gimix joined
dalek ast: d88e9eb | sorear++ | S03-operators/binding-scalars.t:
Fudge S03/binding-scalars for niecza
05:28
ast: 8b6f98d | sorear++ | S03-operators/bit.t:
Fudge S03/bit for niecza
ast: 39ead4f | sorear++ | S03-smartmatch/any-str.t:
Fudge S03-smartmatch/any-str for niecza
05:29 colomon left 05:31 lue left 05:32 lue joined
[Coke] sorear: I had similar trouble dealing with tcl's official test suite, and I didn't have the luxury of fudging. I feel your pain. 05:34
05:36 simcop2387 left 05:38 woosley1 joined 05:39 woosley left 05:41 mberends left
sorear [Coke]: the worst part is that they incidentally test other things 05:41
[Coke] aye. 05:42
sorear quite a few tests assume a working numerics hierarchy
[Coke] making it so that you have to run most everything to test anything. sucks.
sorear in niecza it currently flattens to Num 05:43
05:50 simcop2387 joined 06:05 sftp left 06:07 simcop2387 left 06:12 simcop2387 joined 06:17 justatheory left 06:25 kaare_ joined, lue left 06:26 shi joined 06:29 Khisanth left 06:30 Khisanth joined 06:35 gbacon_ left 06:37 gbacon_ joined
dalek ast: 5d02383 | sorear++ | S04-declarations/state.t:
Fudge S04-declarations/state for niecza
06:44
ast: 2c2bce7 | sorear++ | S04-statement-modifiers/ (2 files):
Fudge S04/for and given for niecza
ast: b349634 | sorear++ | S04-statement-modifiers/if.t:
Fudge postfix if for niecza
ecza: 3e24c39 | sorear++ | / (2 files):
Add new test files and TODOs for today
06:45
sorear -> sleep
06:47 zostay left 06:49 stifynsemons left 06:55 Mowah joined 06:57 wtw joined 07:03 envi joined 07:04 cjk101010 joined 07:24 mfollett joined
mfollett What's the easiest way for me to make a GET web request in Rakudo * 2011-01? 07:25
07:29 mfollett left 07:37 mberends_ joined, mberends joined 07:38 mberends left, mberends_ left, mberends joined, mberends_ joined, mberends_ left 07:49 Su-Shee_ is now known as Su-Shee 07:50 daxim joined 08:01 fith left 08:08 fith joined 08:13 Layla_91 joined 08:16 stepnem left
diakopter phenny: tell TimToady maybe Perl 6 can make it into Vol5 of TAoCP (Scanning/Parsing) ;) he says done by 2020 08:21
phenny diakopter: I'll pass that on when TimToady is around.
08:24 vampirelove_294 joined
jnthn morning, #perl6 08:24
08:25 woosley1 left
Layla_91 jnthn: yaw! =) 08:25
jnthn Layla_91! \o/
vampirelove_294 sup
jnthn Privet! # Don't have Russian mapped on this keyboard :) 08:26
08:26 vampirelove_294 left
Layla_91 jnthn: prevet! I don't have one too.. but my english is getting better though :D 08:27
08:27 bacek left
jnthn Layla_91: Your English seems quite nice. :) 08:28
Layla_91 jnthn: erm.. I still can't say "w" properly.. comes out like v... I was told so :( 08:29
jnthn Aww...
jnthn has had trouble with various sounds in other languages 08:31
When I was in Spain, I couldn't pronounce the "r" correctly.
Layla_91 I fixed the r thing when I was at school =) 08:32
08:32 K-LineMeAssholes joined
K-LineMeAssholes +aloha +dalek +ilogger2 +IRSeekBot +p6eval 16WAAGL8K _ilbot _sri _twitch aesop agentzh aindilis Alias allbery_b am0c amkrankr1leuen apejens araujo arlinius arnsholt arthur-_ ascent_ ashleydev avuserow awwaiid bacek_at_work baest barika bartolin bbkr benabik betterworld BinGOs breinbaas broquaint Bucciarati c1sung_ charsbr__ chitragupt cibs cjk101010 cjk101012 clkao cls_bsd cognominal coldhead cookys_ cotto cotto_work cschimm1 08:33
am0c it's a kicktime
Layla_91 what was that?
K-LineMeAssholes KLINE TIME 08:34
08:34 ChanServ sets mode: +o moritz_
K-LineMeAssholes k-line please 08:34
08:34 moritz_ sets mode: +b *!*46b3bb15@*.70.179.187.21, K-LineMeAssholes was kicked by moritz_ (K-LineMeAssholes))
jnthn ...wow, some people do the most pointless things... 08:34
Layla_91 :-\ 08:35
moritz_ saved the day! ^_^
jnthn Layla_91: I suspect you'll pick the w up more if you hear it enough
08:35 moritz_ sets mode: -o moritz_ 08:36 charsbr__ left 08:37 fhelmberger joined
Layla_91 jnthn: mm.. the problem in my opinion is that the languages are so different.. Like a client I have from China.. she sent me a video about the alphabet.. it was so long! I thought russian alphabet was the longest! :S 08:37
08:39 knewt2 joined 08:40 bhwu joined 08:42 charsbr__ joined
jnthn Layla_91: Russian alphabet is quite OK to learn...especially because uppercase and lowercase letters tend to be identical (apart from size difference of course :-)). 08:48
daxim gives jnthn a cockchafer ж 08:54
jnthn .u ж 08:56
phenny U+0436 CYRILLIC SMALL LETTER ZHE (ж)
jnthn :)
Layla_91 jnthn: yes it is so easy, also spiritual and romantic language.. you must learn it~ :-| 08:59
jnthn: :D
coldhead to read dostoevsky in russian would be nice 09:00
dalek p/match-nom: 3a80453 | moritz++ | src/ (2 files):
try to implement exists_keyed* vtable overrides by adopted copy & paste
Layla_91 coldhead: I started with Chekhov when I was in school.. I liked his style.. 09:01
jnthn Layla_91: Yes, I'm learning. I love it. :) 09:02
Layla_91: But still...long way to go.
I spent 2 years studying Slovak when I lived there and still wasn't very good by the time I left. 09:03
09:04 stepnem joined
daxim you recognise this: пиво 09:07
jnthn Of course :)
Important word! 09:08
daxim this is a good place for a sixer to attach a comment to the question how perl6 currently handles multi-line comments, perhaps with a link to the appropriate standards document: stackoverflow.com/q/5012838
Layla_91 jnthn: пиво... mmm.. you must have russian roots in family to like it that much.. it is so common like water in Russia :D 09:09
Lunch time! bye! o/ 09:10
jnthn The Russian supermarkets are great. They have a section for пиво, a section for вино...and then one for alcohol ;) 09:11
Layla_91: Enjoy! bye! o/
09:12 Layla_91 left
tadzik phenny: "пиво"? 09:13
phenny tadzik: "beer" (mk to en, translate.google.com)
tadzik phenny: "вино"?
phenny tadzik: "wine" (bg to en, translate.google.com)
tadzik nubo, Buho :) 09:14
jdhore I just realized something interesting...I'm rather surprised that Larry wasn't in (or even mentioned in) Revolution OS. 09:19
09:20 jonnie left 09:21 neroxx joined
moritz_ jnthn: upon further reflection, I noticed that I don't quite understand object creation/initialization 09:22
.bless takes a hash of attributes
does it try to recursively initialize that in self and base classes? 09:23
or does it call .BUILDALL, which does that?
09:31 bacek joined 09:32 f00li5h joined
jnthn It calls BUILDALL, which calls each BUILD method in trun. 09:36
*turn
moritz_ but which step does the actual attribute initialization?
jnthn BUILD is the only thing that actually touches the attributes 09:37
moritz_ but... BUILD is a submethod, and there's not a BUILD submethod automatically in each class 09:39
jnthn Yes, the Mu.BUILD is...special.
I fear more special than we've been treating it in Rakudo so far 09:40
jnthn realizes that we may have been getting away with a few things...
moritz_ so... 09:41
BUILDALL looks into each class for the presence of a BUILD submethod
if it's there, it calls it
if not, it calls Mu.BUILD with some magic pretending to be in the current class, not in Mu? 09:42
jnthn Yes, it's that "magic" that is confusing me at the moment. 09:43
I think the Rakudo version depends on attribute access being "broken" and not needing to be qualified with a class name
moritz_: I need to think about it a little more, but I need to do some $dayjob bits at the moment. 09:45
09:47 wtw left
moritz_ ok 09:48
09:48 dakkar joined 09:51 wtw joined 09:58 am0c^ joined, am0c left
dalek p: 99575b9 | moritz++ | / (2 files):
implement NQPMu.{new,BUILDALL,MAGIC_BUILD}. Tests.

The latter is a hack to get attribute initialization working in classes that don't define their own BUILD submethod.
Lack automatic BUILD calling.
10:02
10:13 mkramer joined
moritz_ nqp: my @a; say(@a[0]) 10:39
p6eval nqp: OUTPUT«␤»
moritz_ nqp: my @a; say(pir::typeof(@a[0]))
p6eval nqp: OUTPUT«Undef␤»
10:48 icwiener joined, masak joined
masak good noon, #perl6 10:55
moritz_ oh hai masak 10:56
mberends o/ 11:03
masak Layla_91: A video about the Chinese alphabet? were you joking, or was your client joking? Chinese doesn't really have an alphabet as such. not in the sense of "totally ordered set of symbols approximately on the level of phonemes", at least. 11:05
11:05 lateau left 11:08 coldhead left, am0c^ left
masak moritz_, jnthn: I'm interested in object creation/initialization too. is downcasting on the table? that would be nice. 11:08
moritz_ masak: did you see my last nqp commit? 11:09
masak no; looking.
moritz_ it's a bit hacky, and n downcasting happens 11:10
masak MAGIC_BUILD...
11:10 dju joined, dju left, dju joined
masak I guess it's easier to *talk* about downcasting now that jnthn has evolved the thinking about reprs. 11:11
when we downcast, we probably need to switch out the repr, right?
moritz_ right 11:12
masak that's how I see it working, anyway: in downcasting from A to B: the object $a first gets a new repr with the B attributes, than B.BUILD is run on it.
generalizing for a chain of several children, the repr only needs to be swapped out once at the beginning to the intended type. 11:14
moritz_ sounds right 11:16
masak ah, .BUILD_MAGIC is the method prying open Pandora's box. ;) 11:17
does nqp not have submethods yet?
moritz_ don't think so 11:23
which is why I didn't implement BUILD support
diakopter ooooo it's bedtime 11:25
masak 'night, kopter. 11:26
jnthn Casting isn't really about changing the object. It's just about changing the way you look at it.
diakopter: sleep well o/
masak jnthn: are you implying that downcasting shouldn't work if the object isn't already "really" a B? 11:27
jnthn Well, we don't really do casting at all in Perl 6, in the sense you do it in Java 11:28
I think you're talking about re-blessing.
masak right. I am.
downblessing :)
jnthn C/Java/C# all confuse things a bit by using the same syntax for casts and coercions.
(float)some_int # coercion, actual representation change...though not in-place 11:29
(Child)SomethingWeOnlyKnowAsTheParent # cast - doesn't change the object, just checks it really is a Child
moritz_ is tha why C++ has dynamic_cast? 11:34
11:36 shi left 11:39 shi joined 11:47 am0c joined 11:48 colomon joined
jnthn moritz_: I don't know C++ well enough to say 11:50
masak www.parashift.com/c++-faq-lite/smal...l#faq-30.3 11:52
colomon dynamic_cast is "we have a child, cast to it." 11:53
or I guess, "if you have a child, cast to it."
or as you say, "just checks it really is a Child" 11:55
11:55 agentzh left
colomon it's the one the OO fanatics say you should never use, but in practice is really freaking useful. :) 11:55
dalek ast: 7bfcd8e | (Solomon Foster)++ | S32-num/gcd.t:
Add simple tests for gcd.
12:27
12:32 Chat8951 joined 12:33 Chat8951 left
masak I'm listening to www.infoq.com/presentations/TDD-in-...Greg-Young -- it's quite related to PRE/POST and similar things. Greg just mentioned a special type of block that (dynamically) lifts the PRE/POST invariants. 12:43
this would solve an issue that moritz_++ raised once -- that there must conceivably be some situations where we can't fulfill all the per-class pre/postconditions.
12:46 ymasory joined, ymasory left 12:48 colomon_ joined, colomon left, colomon_ is now known as colomon
takadonet morning all 12:54
colomon o/
masak \o 12:55
jnthn o/ 12:56
jnthn eated too much lunch and is sleepy now
12:57 mtk joined
arnsholt ETOOMANYNOMS 13:02
=)
masak POST { @.nom <= $NOM_LIMIT } 13:04
dalek kudo: b076174 | colomon++ | src/core/Rat.pm:
Switch calls to pir::gcd_iii to just gcd.
13:17
kudo: 67dfab4 | colomon++ | src/core/Int.pm:
Add Int.gcd and a proto for a sub version.
kudo: 4f5299c | colomon++ | t/spectest.data:
Add S-32num/gcd.t.
jnthn wonders how much trouble our protos are going to get us into during the nom branch :) 13:18
colomon I need to get into nom and lend a hand. 13:19
masak jnthn: are we going to run into the "have to declare a proto everywhere there's a multi" restriction?
jnthn masak: We'll declare them all in the setting. 13:20
masak: I'm planning to implement the auto-generation before we merge the branch though.
masak oh, ok.
that's for the subroutines case, I presume.
colomon auto-generation in the sense that users don't have to declare protos?
jnthn colomon: Right, as per spec 13:21
colomon \o/
13:21 MayDaniel joined
jnthn masak: Yeah. The method case is easier. 13:21
masak ooh, as per spec?
masak didn't know that
jnthn The spec talks about proto gen, I think.
masak the method case is... easier? I thought MI made it kinda tricky.
jnthn I'm sure that went in during the multi changes from earlier.
masak I'd like a reference to that part of the spec at some point. 13:22
not necessarily now :)
jnthn S06
colomon I'm very happy about that. :)
jnthn :P
MI is not a problem for the meta-model implementor.
But users can get themselves in a tangle with it
But it's no worse than the "usual" tangle multiple inheritance gets you into.
colomon masak: I have such weird mixed feelings about p4.
masak colomon: let's hear it. 13:23
jnthn: C is A is B, D is A is B. C and D both define multi .foo: where does the proto go? 13:24
colomon masak: It's an uneasy blend between pride at having one of the best performers and shame that I didn't notice any of the better ways of doing things that were staring me in the face. 13:25
masak colomon: oh, nothing worse than that? then I'm not too worried. 13:26
jnthn masak: C will get a proto auto-generated in it. D will get a proto auto-generated in it.
masak colomon: that basically just means that my cunning plan worked for p4 :)
jnthn masak: If you declare a multi in a class and there's no proto in the MRO matching that name, the proto gets created in that class.
The meta-object doesn't go monkey-patching others. 13:27
masak colomon: in some sense working code is what counts here. recall that the *only* contestant who got p4 right got so involved in it that he (1) missed the deadline, and (2) didn't complete all of the other tasks.
colomon: the contest is explicitly set up to reward people who can manage the constraints enought to produce five good-enough solutions, not 1..5 perfect solutions. 13:28
jnthn: oh, good.
jnthn: that's very sane.
masak is happi
colomon masak: like not noticing that two runs of the same length cancelled each other out. I mean, a bunch of the stuff I wrote more or less assumed that, but I never formally thought it out and generalized it. Applying the insight would have been a five-minute patch that would have noticeably strengthened my code. 13:29
masak colomon: yes, I wouldn't say your code is too strong on the theoretical side... but it gets the job done, for large values of $N.
colomon masak: I was using the code to develop the theory, rather than the other way around. :) 13:30
colomon never imagined 56 would be considered a large value of $N; just assumed that would be in the 100s. 13:31
masak no, 56 isn't a particularly large value of $N. I just stopped looking when I had found some flaw in all of the submitted algorithms. 13:32
13:36 MayDaniel left
masak as I write in the blog post, the interesting thing is analyzing the p4 submissions from the point of view that they all miss the theory-based solution. 13:38
there are traces of similar "traps" in the other problems. for example, p1-fox misses the fact that a greedy algorithm doesn't always find the best answer. 13:39
13:47 awoodland joined, colomon left 13:49 _sri left, _sri joined
moritz_ ... which you mentioned in the problem description, iirc 13:52
13:58 slavik1 joined
daxim stackoverflow.com/questions/5017095...rl6-rakudo 14:02
takadonet looks at masak and moritz_ 14:03
masak moritz_: I don't think I did. I did hint at it being cumbersome to iterate through the whole permutation space, though.
14:03 Nehru joined
masak getting the terminal size? that would have to be something specific to the window manager, I suppose. 14:04
or specific to something.
14:04 Nehru left
masak looking at CPAN's Term::ReadKey, it seems it's iterating over a number of common platforms, doing platform-specific things for each. 14:05
Tene masak: window manager doesn't have anything to do with it... many terminals don't have an associated window manager at all. 14:09
running over ssh, running on the linux VT, etc.
masak true. I was speaking out of a state of confusion... :) 14:10
I meant "environment".
Tene 'k 14:11
Tene finally goes to bed, six hours late.
flussence That p5 ReadKey code looks... scary. 14:18
14:19 plainhao joined 14:24 ab5tract joined 14:29 kaare_ left
takadonet flussence: don't look at Text-Tabs-Wraps code 14:30
14:30 donri joined
flussence haha :) 14:30
donri What's the colon in grep:block etc? 14:31
flussence grep:* means the same thing as grep(*)
14:32 colomon joined
donri doesn't grep * too 14:32
14:34 colomon left
flussence actually I'm slightly wrong 14:35
from reading the spec, it seems like a colon does the same as p5's indirect object syntax
donri i don't speak perl5 :$ 14:36
flussence basically it works for that example above but it has evil side effects 14:38
donri what example?
flussence grep:*
donri i just joined
but why and when is : needed? 14:39
flussence see perlcabal.org/syn/S03.html#Comma_op...precedence
donri i did, not much wiser ;)
14:40 tzhs joined
flussence well, take the "push @array: 1,2,3" from there - 14:41
PerlJam donri: do you understand OOP and what "invocant" means?
flussence that's the same as writing [email@hidden.address] 1,2,3"
masak no.
@array.push 1,2,3 is a TTIAR error. 14:42
has to be @array.push: 1,2,3
flussence right.
masak the way I see it, the colon actually fills two different purposes here.
one is the indirect object notation a la Perl 5: push @array: 1,2,3'
flussence (the more I read this the more it confuses me)
masak the other is the "the rest of the expression is arguments" use: @array.push: 1,2,3 14:43
huf what else could it be?
or is this as an alternative to 9)?
()
masak yes.
donri So like Haskell $ 14:44
PerlJam: Not sure about invocant
14:45 ymasory joined, xinming left
flussence donri: do you know javascript? it's the same as func.apply(invocant) there 14:45
lets you change the value of "self" 14:46
donri Why is that needed for grep and whatnot? 14:47
flussence it's not
14:47 TH14 joined
flussence it's just there if you want to write it that way 14:47
14:47 xinming joined
masak donri: the invocant in a method is the object that gets bound to the 'self' keyword. 14:48
TH14 hi
masak TH14: hi!
TH14: welcome to our humble adobe :) 14:49
PerlJam adobe?
I assume that was intentional, but you never can tell around here.
masak a brick building.
TH14 thanks - heavy stuff, what?
masak TH14: Perl 6? you bet.
TH14 need further education for this place...... 14:50
PerlJam Perl 6 is heavy so that your code can be light
masak Perl 6 is heavy because we build it out of sun-dried bricks.
TH14 great 14:51
masak TH14: how did you find #perl6?
TH14 just searched - it was top of the list 14:52
donri an example of grep with and without :?
moritz_ \o/ our search engine optimization seems to work, at least partly :-)
masak we're top-of-the-list? \o/
moritz_ rakudo: say <a b c>.grep: 'b'
p6eval rakudo 6f9116: OUTPUT«b␤»
moritz_ rakudo: say <a b c>.grep('b') 14:53
PerlJam donri: @numbers.grep(* > 3)
p6eval rakudo 6f9116: OUTPUT«b␤»
donri ok but an example that differs because of the use-or-not of :?
rakudo: say <a b c>.grep 'b'
p6eval rakudo 6f9116: OUTPUT«===SORRY!===␤Confused at line 22, near "say <a b c"␤»
masak donri: Two Terms In A Row. 14:54
donri rakudo: say <a b c>.grep * eq 'b'
p6eval rakudo 6f9116: OUTPUT«No candidates found to invoke for method 'grep' on object of type 'Parcel'; available candidates have signatures:␤:(Mu : Mu $test;; *%_)␤␤ in main program body at line 22:/tmp/hGf1bC2f8y␤»
14:54 TH14 left
masak std: say <a b c>.grep 'b' 14:54
p6eval std 625303c: OUTPUT«===SORRY!===␤Two terms in a row (method call requires colon or parens to take arguments) at /tmp/Gv50IrCgog line 1:␤------> say <a b c>.grep ⏏'b'␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤ statement modifier
..loop␤Parse failed␤F…
donri so it's just a disambiguation thing
masak in a sense, yes.
moritz_ it's just syntax.
flussence or an ambiguation thing :)
masak TTIAR goes quite deep in Perl 6.
donri ok :)
ttiar?
masak donri: Two Terms In A Row. 14:55
it makes the parser sane in a certain way that's good for error messages. :)
donri \o/ 14:57
and humans, perhaps 14:58
masak once you get used to the idea, yes.
14:59 meraxes joined 15:04 mfollett joined
masak customers like TH14 interest me. he seemed to want something, but we never found out what. 15:05
15:14 kaare_ joined 15:18 dakkar left 15:20 dakkar joined 15:29 dakkar left 15:32 dakkar joined 15:33 wtw left 15:37 fhelmberger left 15:38 mberends left 15:45 mfollett left, mfollett joined 15:49 dakkar left 15:50 dakkar joined, cjk101010 left 15:54 am0c left
sorear good * #perl6 15:57
moritz_ \o 16:02
16:04 neroxx left 16:08 justatheory joined 16:11 MayDaniel joined 16:16 risou joined 16:27 tzhs left 16:30 ab5tract left 16:35 kjeldahl joined 16:39 dakkar left 16:44 perlpilot joined 16:45 neroxx joined
mfollett So, what's the easiest way for me to make a GET request at the moment, there isn't anything like LWP::Simple, is there? 16:53
masak mfollett: well, there's IO::Socket. 16:54
16:56 risou_ joined
moritz_ mfollett: there's an LWP::Simple 16:57
mfollett: see modules.perl6.org
sorear hi masak 16:58
mfollett moritz_:Thanks, that'll be what I go with, I was just checking if there was anything closer atm.
sorear so if I add new test files to roast, will I break rakudo?
masak hi sorear. 16:59
moritz_ sorear: nope; rakudo whitelists
16:59 risou left
perlpilot if you break rakudo, that's indicative of a problem :) 16:59
moritz_ sorear: btw I saw your recent remark that many test files are big and complicated... feel free to split them up if you find a good classification by topic
dalek ast: 821cdb0 | sorear++ | S04-statements/ (2 files):
Fudge for_with_only_one_item, gather for niecza
ast: b877a11 | sorear++ | S04-statements/next.t:
Fudge S04/next for niecza
ast: 6ca5980 | sorear++ | S04-statements/no-implicit-block.t:
Fudge S04/no-implicit-block for niecza
ast: 15b1f27 | sorear++ | S04-statements/while.t:
Fudge S04/while for niecza
masak also, reducing test files' dependence on more advanced features can only be a good thing. 17:00
sorear niecza is now running >1/2 of 31 test files in S02-S04 17:01
masak wow!
sorear time for S05. I hope there are lots of LTM tests ;)
17:01 sftp joined
moritz_ sorear: notreally. I tried to write some, but it's hard when you can't run them (that was before niecza came along) 17:01
t/spec/S05-metasyntax/longest-alternative.t 17:02
17:02 mtk left
sorear looks S05-capture/alias.t line 17 and sighs 17:02
17:02 alester joined 17:03 dakkar joined
sorear I guess I could collapse it onto one line then add a #?niecza emit # 17:04
moritz_ sorear: such relicts from pre-fudge times can safely be removed
sorear oh.\
dalek ast: c2b89fe | moritz++ | S05- (4 files):
[S05] remove some pre-fudge relicts noted by sorear++
17:06
moritz_ sorear: also roast probably reflects the old thinking rw (foo)? captures being arrays... feel free to change that 17:08
if you break rakudo along the way, I'll just fudge it 17:09
masak sorear++ # targetting the spectests
sorear masak: I've decided that they're a good proxy for darkpan code support 17:10
hehehe. alias.t uses "regex two {..}" at top level :/
17:10 cotto left
dalek ast: ecfd67a | moritz++ | S05- (6 files):
remove more pre-fudge cruft
17:10
17:11 mtk joined
masak sorear: maybe Rakudo doesn't spectest.data it, then. 17:14
because Rakudo doesn't support that anymore either.
moritz_ karma sorear 17:15
aloha sorear has karma of 809.
sorear I suspect I'll be turning a lot of the Niecza LTM tests into spectests later
masak sounds great.
moritz_ sorear: that would be greatly appreciated
sorear: also note for later that IO tests assume that the relative path to them is t/spec/S\d\d-whatever/testfile.t 17:16
so the current approach with ../roast/S\d\d-whatever/testfile.t will reach its limit at some point
dalek ast: 0a53d82 | sorear++ | S05-grammar/protoregex.t:
Fudge S05-grammar/protoregex.t for niecza
17:17
sorear stupid restrictions niecza has that the spectests don't bother to work around, like '::' not being allowed in class names ...
moritz_ sorear: I remember explicitly adding class names containing ::, because they were so unreliable in rakudo that I felt I needed to them along the way 17:19
which, in hindsight, is stupid
i should just have written separate tests for them
but I was lazy :-
flussence recalls having to rewrite a bunch of code because X::Y::Z and X::Y::Z2 clashed in rakudo... 17:22
jnthn o/
sorear the problem with the spectests is that we don't really know yet what the "least common denominator" of Perl 6 is 17:24
it's probably close to NQP though
moritz_ \o jnthn
sorear: agreed
sorear wonders about adding tests that only work semi-by-accident 17:26
dalek ecza: a5f68a0 | sorear++ | / (2 files):
Update whitelist and TODO
17:27
sorear out
jnthn moritz_: I saw you patched nqp some more...didn't peek yet :)
moritz_ jnthn: no visible progress in the match-nom branch... but I did add .bless and BUILDALL in master... it's a bit hacky 17:29
see for yourself when you have time :-)
jnthn moritz_: OK, should ahve some later on today :) 17:30
17:34 leprevost joined
moritz_ and if it appears wrong to you... feel free to rip it out, I'm not very attached to the code 17:34
17:34 leprevost_ joined, leprevost left, leprevost_ left, leprevost joined, noganex_ joined 17:35 leprevost left, leprevost_ joined 17:36 leprevost_ left, leprevost joined, MayDaniel_ joined
bbkr MiniDBI returns "Null PMC access in get_string()" in line 106 of NativeCall.pm6 on 2011.01 star release. is it known bug? 17:37
17:38 cdarroch joined, cdarroch left, cdarroch joined, noganex left
jnthn bbkr: First time I've heard it. 17:39
17:39 MayDaniel left, noganex joined 17:40 noganex_ left 17:42 daxim left
donri I don't get it, is Sprixel supposed to be fully Perl 6 or not? 17:55
diakopter? 17:58
[Coke] wonders if he can test partcl-nqp against nom. 17:59
18:01 Lorn_ left 18:02 shi left
donri sorear? 18:03
18:03 dakkar left
[Coke] Dr. Scott? 18:04
18:06 shi joined
flussence rakudo: use Test; plan 1; eval_lives_ok { 1 } 18:10
p6eval rakudo 6f9116: OUTPUT«1..1␤get_attr_str() not implemented in class 'Sub'␤ in main program body at line 7461␤»
flussence :(
tadzik o/ 18:14
dalek p: 15ba2db | moritz++ | src/NQP/Grammar.pm:
allow <*> in proto regex body
18:22
18:27 mfollett left 18:28 mfollett joined 18:31 mberends joined, awoodland left 18:37 mberends left 18:38 leprevost left, frodwith left 18:39 frodwith joined 18:40 Su-Shee_ joined 18:43 Su-Shee left, cjk101010 joined 18:44 Su-Shee_ is now known as Su-Shee 18:47 fhelmberger joined
masak rakudo: use Test; plan 1; eval_lives_ok { 1 }; "42" 18:50
p6eval rakudo 6f9116: OUTPUT«1..1␤get_attr_str() not implemented in class 'Sub'␤ in main program body at line 7461␤»
18:50 colomon joined
jnthn ...huh? 18:50
rakudo: use Test; plan 1; eval_lives_ok { 1 }; 18:51
p6eval rakudo 6f9116: OUTPUT«1..1␤get_attr_str() not implemented in class 'Sub'␤ in main program body at line 7461␤»
jnthn rakudo: use Test; eval_lives_ok { 1 };
p6eval rakudo 6f9116: OUTPUT«get_attr_str() not implemented in class 'Sub'␤ in main program body at line 7461␤»
masak flussence++ exposed this error a while back.
jnthn ah, ok
masak haven't seen it before.
jnthn masak files rakudobug
;)
masak tries locally first 18:53
whoa. failed Parrot assertion. 18:55
bacek_at_work: seems we're not quite finished yet... :)
masak gets a more orthodox build
flussence found that while I was trying to fix up a few commented out T-T-W tests... took me a while to figure out what was wrong :) 18:59
masak how come it hasn't been found earlier? there has to be a number of those in the spectest suite. 19:02
19:06 risou_ left
flussence I'm not getting any more failures than usual either... smolder.parrot.org/app/projects/rep...tails/9752 19:07
the only commits since then have been the gcd changes, that shouldn't affect anything like this 19:08
masak that's why I want to try it locally before I submit a rakudobug.
it seems very unlikely that this happens outside of p6eval. 19:09
flussence eval_lives_ok with a *string* works.
masak o.O
flussence and apparently, roast doesn't have *any* of the other type... 19:10
masak ok, yo me interested now.
19:10 vmspb joined
masak s/yo/you've got/ 19:10
19:10 donaldh joined
flussence (Test.pm needs more tests!) 19:10
masak this is getting to sound like a rakudobug after all.
19:19 cjk101010 left 19:21 masak left, masak joined 19:22 mfollett left 19:23 plobsing left
flussence cheats and uses git-bisect on it 19:26
donri How is that cheating :D 19:28
19:28 mfollett joined, mfollett left
flussence makes it look like I'm doing work, when I'm not :) 19:28
19:28 mfollett joined 19:31 donaldh left, spq joined
donri flussence: isn't that the holy grail of computing? 19:32
bacek ~~ 19:33
masak, can you try bleeding edge gen_gc2? I shaved few more yaks.
masak bacek: ok. 19:34
19:38 jasonmay left
flussence well, this is awkward... 19:39
I'm going backwards through the monthly releases and even 2010.11 has this error
19:39 ymasory left
flussence oh. I'm an idiot. 19:40
I should be using lives_ok for a closure.
19:40 jasonmay joined
jnthn flussence: Do you know it's a regression? 19:41
It's possible was just done wrong in the first place.
flussence eval_lives_ok only has Str signatures, lives_ok has Callables 19:42
jnthn Yes, but eval_lives_ok shoudln't die with that particular error.
Even if it is passed a closure
flussence rakudo: sub a(Str $b) { return }; a({ 1 }); 19:43
p6eval rakudo 6f9116: OUTPUT«Nominal type check failed for parameter '$b'; expected Str but got Block instead␤ in 'a' at line 1:/tmp/kbAjjf5Arb␤ in main program body at line 22:/tmp/kbAjjf5Arb␤»
flussence rakudo: multi sub a(Str $b) { return }; a({ 1 });
tadzik isn't that a matter of adding a type check to a signature?
p6eval rakudo 6f9116: OUTPUT«No applicable candidates found to dispatch to for 'a'. Available candidates are:␤:(Str $b)␤␤ in main program body at line 22:/tmp/uaSHZI9Bd4␤»
flussence rakudo: multi sub a(Str $b) { return }; a { 1 }; 19:44
p6eval rakudo 6f9116: OUTPUT«No applicable candidates found to dispatch to for 'a'. Available candidates are:␤:(Str $b)␤␤ in main program body at line 22:/tmp/USDUX5UIDH␤»
flussence hmm
jnthn tadzik: I think eval is still implemented in PIR 19:45
flussence rakudo: multi sub a(Str $b) { return }; a { 'string' };
19:45 Mowah left
p6eval rakudo 6f9116: OUTPUT«No applicable candidates found to dispatch to for 'a'. Available candidates are:␤:(Str $b)␤␤ in main program body at line 22:/tmp/Z04ByfzRp2␤» 19:45
flussence can't imagine what the difference between that and the code in Test.pm is...
jnthn flussence: It may be eval's fault
rakudo: eval { 1 }
p6eval rakudo 6f9116: OUTPUT«Nominal type check failed for parameter '$code'; expected Str but got Block instead␤ in 'eval' at line 1192:CORE.setting␤ in main program body at line 22:/tmp/fzZuNuYzY0␤» 19:46
jnthn Oh, maybe not.
rakudo: eval ~({ 1 })
p6eval rakudo 6f9116: ( no output )
jnthn HM
Oddness.
[Coke] rakudo: say eval ~({ 1 }) 19:47
p6eval rakudo 6f9116: ( no output )
masak rakudo: say ~{ 1 }
p6eval rakudo 6f9116: OUTPUT«_block124␤»
masak that's what you're eval-ing.
not a valid Perl 6 snippet. 19:48
bacek masak, sorry, can you pull gen_gc2 again. I committed it with limitation of heap to 1 MB :) 19:50
masak ok. 19:51
19:55 jasonmay left, fith left, TiMBuS left
flussence ok, I got something possibly useful - 20:01
module A; multi sub explode(Str $a) is export {};
that has the get_attr_str error
masak flussence++ 20:02
flussence without the "multi" it gives a correct error
jnthn oh
is export is maybe to blaim then
*blame
masak blejn.
tadzik blejm
phenny: "winić"? 20:03
phenny tadzik: "blame" (pl to en, translate.google.com)
masak phenny: "skylla"?
phenny masak: "blame" (sv to en, translate.google.com)
tadzik also, "to wine" (verb)
masak tadzik: heh :)
20:03 leprevost joined
jnthn ...whine? :) 20:03
masak tadzik: looking at the verb, I can see why... :)
tadzik that's after too much wine
jnthn or...actually too wine? :)
:)
*to
tadzik yes, too wine :) 20:04
masak in vino whinitas.
tadzik seen mberends 20:05
aloha mberends was last seen in #perl6 1 hours 33 mins ago joining the channel.
tadzik I'm curious about this NLPW talk of his
jnthn Me too. :)
masak three
tadzik especially since no talks are accepted yet :)
jnthn Then I know what not to submit :)
masak ooh, is there a deadline? 20:06
jnthn Don't remember seeing one :)
But in reality, probably. :)
It's all short talks.
15 mins or 5 mins.
tadzik 13 submitted, 0 accepted. That'll be a BOARING party :) 20:07
jnthn will submit some
:)
masak URL?
tadzik www.perlworkshop.nl/nlpw2011/talks 20:08
masak dziekuje
tadzik proszę
:]
masak [: 20:09
tadzik Tack -- is it spelled as if it was english? 20:10
jnthn Yes
tadzik phenny: "Cam ôn"?
phenny tadzik: "Thank you" (vi to en, translate.google.com)
masak tadzik: yes, but the 'a' is darker.
tadzik oh, Cam on! 20:11
masak: darker?
masak tadzik: more like 'ah' than 'ei'.
jnthn Yeah, 'cus they don't have much sun in Sweden
masak that's why.
tadzik tack as in tackle?
jnthn Yeah
tadzik it's like a polish "yes" 20:12
jnthn *nod*
Spelt "tak"?
masak even the 'a' in 'tackle' is too open/light.
tadzik jnthn: tak :) 20:13
masak the 'aaaa' you make at the dentist when he tells you to open wide. that's the vowel we have in Sweden.
jnthn masak: I suspect if we're approximating based on English words, it's as close as we'll get. :)
masak: But I agree it's actually a bit different. :)
donri Are you all Perl fivers as well?
masak the Swedish 'a' is actually fairly close to the Hungarian 'a'. but not identical.
donri: I'm more of a fiver wannabe than a real fiver. many here have at least some experience with Perl 5. some, a lot. 20:14
jnthn tadzik: Does it mean "so" in Polish also?
masak jnthn: I believe so.
tadzik jnthn: what kind of so? Like „so, whatcha doing tonight”?
masak jnthn: kak <-> tak?
tadzik that'd be "więc"
20:14 fith joined, TiMBuS joined, jasonmay joined
masak oh. 20:14
masak newie :) 20:15
wow, that works both in Polish and English. kinda. 20:16
20:17 kjeldahl left
jnthn masak: Wait, kak as in? Russian "как"? 20:18
masak jnthn: yes, I thought that was the parallel you were asking about.
jnthn masak: No, was thinking of "tak" in Slovak.
masak oh, ok.
jnthn ru как => sk ako, generally, I think. 20:19
donri masak: I guess I'm wondering how uncommon serious interest in Perl 6 is among people with little interest in 5
Like myself
Tene donri: certainly not unusual. 20:20
perlpilot donri: why do you have little interest in Perl 5 yet some interest in Perl 6?
masak donri: difficult to say. I think it's easier for Perl 5 people to appreciate the potential of Perl 6. but that doesn't mean that there are exclusively fivers here either.
donri: speaking for myself, my interest in Perl 5 has been growing steadily along with my involvement in Perl 6. 20:21
donri perlpilot: Not sure I can give you a good answer, to me, Perl 5 feels "wrong" and 6 "right"
Elegance or something 20:22
perlpilot masak: do you make heavy use of the 6isms that have made it into perl 5?
masak perlpilot: not really, no.
perlpilot: I use 'say'.
perlpilot: I don't lean heavily on 'given'/'when', smartmatching, or // in Perl 5.
perlpilot interesting
donri Not to bash Perl 5, it's not crap just not something that interests me much
Tene perlpilot: we make heavy use of 6isms in new Perl 5 code produced at my office. 20:23
Along with MooseX::Declare, etc.
masak donri: I use Perl 5 when I need a combination of ease, stability, and speed that Perl 6 doesn't provide yet.
20:23 coldhead joined
perlpilot masak: I didn't use the 6isms much (except say) until recently. Now I find that I think to use them more in my Perl 5 code all the time 20:24
tadzik masak: have you seen perl5i?
masak oh, I use Moose. not Moose::Declare so much.
tadzik: yes. not a lot, but I've seen it.
tadzik: I'd like to do something like that myself one day, but direct the codebase more towards Perl 6.
perlpilot (Tene's office)++ :)
donri Python is my primary language at the moment 20:25
tadzik I've recently written some baby python :)
masak donri: interested question? how does Perl 6 "feel" as compared to Python, from your perspective?
s/\?/:/ 20:26
perlpilot donri: python is nice. I tend to get the feeling that I *have* to type too much sometimes though.
donri More "Pythonic" than Perl 5 if that's what you mean
perlpilot Not as much as when I try coding in Java thuogh
er, though
donri Python is somewhat a "boring" language, which at times is its strength
but it's not as theoretically interesting as Perl 6
masak donri: I think I know what you mean. 20:27
Tene perlpilot: We're hiring.
tadzik I don't really like the "exceptions everywhere" approach. Like, no such key in hash? Exception. And so on
donri perlpilot: entering code is easy, reading code less so, and code size and readability doesn't always or fully correlate 20:28
20:28 kjeldahl joined
donri But so far the Perl 6 sugars are sensible and readable to me 20:29
perlpilot donri readability and understandability don't correlate all the time either :)
donri tadzik: dict.get()
lets you fallback on a default too 20:30
tadzik donri: what'd be: $foo = $bar<baz> // "no data";?
donri don't know what that does
20:30 fhelmberger left
masak donri: // is the 'default' operator. 20:30
donri: if the lhs is undefined, it picks the rhs. 20:31
donri foo = bar.get('baz', 'no data')
tadzik not bad
masak prefers the Perl 6 solution, which solves a broader problem
tadzik github.com/tadzik/mpdclient/blob/m...de/main.py -- my stupid python. Everywhere I felt like "there must be a Python way for this"
perlpilot yikes 20:32
donri I fear that all these undefineds might be a pain for debugging etc
but use fatal; or something turns them into exceptions?
masak something like that.
donri: generally, Perl 6 is a bit stricter already than Perl 5. 20:33
Perl 5 is famously laissez-faire.
donri dict.get() defaults to None for missing keys BTW 20:34
so you could do it more perlesque: foo = bar.get('baz') or 'no data'
masak nice. 20:35
rakudo: my %h; say %h<not_there>.WHAT
p6eval rakudo 6f9116: OUTPUT«Any()␤»
masak I'm guessing that 'Any' value is the value type of the hash.
donri What's an Any() and why not undefined?
masak Any is undefined.
in Perl 6 'undefined' is a property on objects, not an object in itself. 20:36
20:36 molecules joined
masak bacek_at_work: nah, we're back at failing on Test.pm now. 20:36
donri how meta
masak bacek_at_work: want me to submit a Parrotbug?
donri: it was one of those things that just evolved out of other concerns. 20:37
20:37 MayDaniel_ left
masak donri: in a typed system with type objects as in Perl 6, there's no real room for an 'undefined' object. just use the type objects. 20:37
rakudo: class Dog {}; say Dog.defined; my Dog $d .= new; say $d.defined
p6eval rakudo 6f9116: OUTPUT«Bool::False␤Bool::True␤»
perlpilot wonders why Guido didn't make dict[key] work like dict.get(key) WRT defaulting to None 20:38
donri: Is monkey patching possible in python (I haven't programmed in it since the 1.5 days or so)? If it is possible, does it happen with wild abandon as in ruby-land? 20:39
masak I think even the Rubyists are coming around to the perils of monkey patching nowadays. 20:40
perlpilot masak: yes ... slowly.
It's hard to correct cultural mistakes 20:41
masak *nod*
tadzik heh. Now compiling PyQt. -Dprotected=public looks funny :)
molecules rakudo: my $string=''; my $fh = open \$string; 20:42
p6eval rakudo 6f9116: OUTPUT«Operation not permitted in safe mode␤ in 'Safe::forbidden' at line 2:/tmp/EjBG8xSS2S␤ in main program body at line 22:/tmp/EjBG8xSS2S␤»
donri perlpilot: possible but not with builtins, and mostly avoided. you can make your own dict type though. also there's defaultdict which returns the result of a callable for missing keys
perlpilot molecules: I guess you want to know if you can do IO on scalars like in Perl 5 ?
molecules Yes.
perlpilot molecules: Doubtful.
Tene I'm very pleased by the look of ruby's new lexically-scoped class augmentation. 20:43
molecules Doubtful ever or simply doubtful now?
perlpilot molecules: just now. IO still needs some work.
molecules perlpilot: Thanks!
Tene It whould be fairly easy to implement as a lexical augmentation to the dispatcher in Perl 6, but I'd still like to see something like that specced for Perl 6.
masak I'd love to see overridable dispatchers. 20:44
tadzik at this moment, jnthn should jump out of the box and say "fixed in 6model!" 20:46
perlpilot heh
donri how complete is pynie?
masak good question.
perlpilot donri: that's a parrot project. Nothing to do with Perl 6
tadzik incomplete. Compiles, doesn't work
donri: poke lucian on #parrot@irc.perl.org
donri perlpilot: other than parrot having much to do with perl 6? ;)
jnthn 6MODEL WILL EVEN BRING WORLD PEACE!!!11!! 20:47
perlpilot jnthn++
jnthn er, it actually is a big step towards custom dispatchers. :)
masak \o/
jnthn Especially given that it doesn't have any notion of a non-custom dispatcher... :)
masak screw world peace -- I want to override my default dispatcher. 20:48
donri 6model?
masak donri: the Next Big Thing around here.
jnthn BEGIN { %*HOW<class> := MyMetaClassWithCustomDispatcher; } # there, done
masak well, except for Niecza.
jnthn: neat! 20:49
tadzik yeah, this is the reason everyone sits doing nothing, for "6model will fix everything anyway" :)
donri what's it for/do?
tadzik donri: it's the new metamodel for Rakudo, and possibly anything else
masak jnthn: what about class hierarchies with heterogenous metaclasses/dispatchers?
jnthn masak: It's close anyway. :) But I guess we'll also want a non-escape-hatch way.
masak yeah.
jnthn masak: Normal subclassing and composition rules apply. 20:50
Tene jnthn: could I insert my own method dispatcher for a given lexical block?
jnthn If your subclass of another meta-class implements its own find_method and publish_method_cache, then you just win by inheritance.
Tene: Erm.
Tene: That's...less trivial. 20:51
20:51 rdesfo joined
Tene jnthn: When I asked TimToady about lexically-scoped class augmentation, his answer was that libraries to provide that should be implemented by users through lexically-scoped wrapping of the method dispatcher. 20:52
That's the context I'm asking about, at least.
jnthn Tene: The main issue is that wrappers aren't lexically scoped...at least, .wrap ones ain't. 20:53
Tene I don't know that he actually said "wrap"
jnthn Ah, OK
Tene He just indicated that a lexical block should be able to have a different method dispatcher, and that that dispatcher certainly could redispatch to the outer dispatcher if it wanted to. 20:54
a more-trivial example than augmentation would be a dispatcher that logged all method calls, for example. 20:55
Not that that would be very useful, just that would be sufficient to implement the other.
jnthn Thinking about it, I suspect this kind of thing is much easier at a macro-ish level than a runtime-ish level. 20:56
dalek p-rx: 3090e41 | moritz++ | src/NQP/Grammar.pm:
allow <*> as proto regex body
Tene Could be. 20:57
masak bacek, bacek_at_work: gist.github.com/830206 21:05
bacek_at_work masak, sigh... Is it bleeding edge gen_gc2? 21:06
masak, (hm. no. You can't have this assert if you didn't configure it with -DPARROT_GC_VALIDATE) 21:07
21:07 plobsing joined
jnthn Parrot_Perl6MultiSub_mark is near the top of the bt 21:07
bacek_at_work masak, what git describe --tags says?
masak bacek_at_work: I pulled the latest gen_gc2 and built Parrot, then Rakudo.
bacek_at_work mmm... 21:08
masak RELEASE_3_0_0-985-ga133c63
two commits behind, apparently.
bacek_at_work Unlikely that these 2 functions are invoked from rakudo. 21:09
tadzik Rakudo builds longer than bacek needs to commit :)
21:10 plainhao left, jferrero joined
bacek_at_work masak, ah-ha... 21:10
masak ah-ha?
bacek_at_work no. I've got write barrier in this place. False alarm 21:11
Did moritz_ committed my latest patch? 21:12
21:12 yarp joined
moritz_ bacek_at_work: yes, as commit 76cd24a19f533346c25f8ff9d0c52f28cf02fe98 21:13
bacek_at_work moritz_, yes, found it.
moritz_ at least that's the latest I know of 21:14
bacek_at_work moritz_, that's the one
jdhore yahooooo, A Hot Fuzz fan, eh?
bacek_at_work masak, is it debug or optimized build? 21:21
masak, nm. I did reproduce it. 21:22
masak debug.
I don't do optimized builds.
tadzik masak is waiting for Parrot to be fast w/o cheating :) 21:23
masak not sure I think --optimize is necessarily cheating. 21:26
but I value lack of segfaults more than I value speed.
tadzik nah, just joking around
21:27 icwiener left
masak yes, I understand. :) 21:27
tadzik ;)
21:32 kjeldahl left 21:34 jaldhar left, jaldhar joined 21:38 molecules left, yarp left 21:39 pigdude joined
mfollett What would cause IO::Socket::INET to fail with "IO::Socket::INET Couldn't create socket."? I tried to open a socket with $socket.open('127.0.0.1', 8000); with netcat listening on 8000 and I keep getting that failure. For sanity I tested and can connect to 127.0.0.1:80 with telnet. 21:42
Using January's Rakudo * on OS X
I'm guessing it might have something to do with this PIR "sock = root_new ['parrot';'Socket']", but I'm not familiar enough to know what's going on. 21:44
21:55 mfollett left
bacek_at_work masak, can you try again? 21:56
masak, bleeding edge of course :)
perlpilot blah
perlpilot really wishes mfollett hadn't just left :( 21:57
jnthn heh, I was just trying to find out where the error came from
Not from INET.pm itself, it seems
21:57 donaldh joined
masak bacek_at_work: ok. 21:58
dukeleto questions about Parrot sockets? 22:00
dukeleto hacked on that stuff recently
22:01 mfollett joined 22:02 mrg_ joined
mrg_ hi 22:02
22:02 mrg_ is now known as zenog 22:03 stkowski joined
perlpilot mfollett: See github.com/rakudo/rakudo/commit/ef...31984fdc5d 22:03
dalek kudo: ef3f3fa | perlpilot++ | src/core/IO/Socket/INET.pm:
Set the default protocol family to be INET
perlpilot dalek: you're too slow! 22:04
22:08 rdesfo_ joined 22:10 rdesfo left 22:14 woosley joined 22:19 saaki joined 22:20 shi left
zenog colomon: I now have a PDL port of my IO and computation intensive Perl 6 benchmark: about 2 minutes vs. 1 hour 22:21
22:22 shi joined
jnthn zenog: Willing to share the Perl 6 code (if you didn't already)? 22:22
zenog: I'm working on a bunch of stuff that may make PDL-ish situations a bunch more optimal.
22:23 mfollett left
zenog jnthn: I have an update of the code (may still not be optimal) 22:23
jnthn: Shall I just put it on nopaste, or do you want to have it somewhere in a repository?
jnthn zenog: nopaste is fine 22:25
zenog jnthn: What I forgot to say: The ~1 hour was only for reading in the data, no computation yet.
jnthn: So there is room for improvement.
jnthn zenog: Oh. 22:26
zenog: And the 2 minutes included IO and computation?
zenog jnthn: Yes. In C#/Java the same stuff takes about 5 sec.
jnthn: Just for perspective, of course I do not expect such a performance from a dynamic language.
jnthn zenog: Yeah, but Rakudo really needs to do better. :) 22:27
zenog jnthn: Perl 6 version here nopaste.info/4acc6ff2ad.html
jnthn: Perl 5/PDL version here nopaste.info/b51fcdeae2.html 22:28
The Perl 5 version converges, which is nice.
The Perl 6 version is still buggy when it comes to the result of the computation. I am not sure whether it is a Rakudo bug, some strange numerical effects, or my bad understanding of Perl 6 that cause the bugs ;-) 22:29
22:30 pigdude left
zenog But you can use it for IO benchmarking anyway, no matter whether the computation is correct ;-) 22:30
jnthn OK :) 22:31
22:32 perlpilot left
zenog I started with this stuff during FOSDEM, just out of curiosity, then annoyed some people on the channel with it who showed me some obvious mistakes, e.g. colomon++; then chromatic's blog post made me come back to the channel: www.modernperlbooks.com/mt/2011/02/...marks.html 22:33
22:34 mrg_ joined 22:35 mrg_ is now known as zenog_
masak chromatic++ 22:37
22:37 zenog left, woosley left 22:41 TH14 joined
masak TH14: welcome back. 22:42
TH14 hey thanks for that
masak you're welcome. at #perl6, we value our customers, and hope that you will have a pleasant stay. 22:44
if there's anything you're wondering about, please don't hesitate to contact our corteous and professional staff.
22:44 TH14 left
masak ...or not. 22:44
Tene masak: you didn't mention in here if your test against parrot branch after bacek updates was successful or not. 22:45
sbp he was disappointed that you misspelled courteous
masak Tene: still building gen/core
Tene o.O
masak sbp: I thought it looked wonky.
Tene slooooooow
masak Tene: my VM doesn't have very much RAM.
Tene it's been almost an hour! 22:46
:(
masak yeah, I haven't been too quick about it, either.
jnthn Isn't this a build that's augmented with a bunch of debug/trace stuff?
donaldh Tene: rakudo build with gms_gc ?
Tene donaldh: that's what he's doing, yeah
donaldh I have a failed build after bacek's last commit 22:47
took a while mind.
Tene donaldh: reported to bacek?
donaldh only just finished
How does bacek like his reports?
22:47 plobsing left
jnthn Well done, with a side of fries 22:48
Tene donaldh: dunno; I've never noticed him mentioning a preference
donaldh: you could certainly start with posting the output in a pastebin and sending him a message here or in #parrot
donaldh :D
masak I think both gists and parrot/trac tickets work.
Tene donaldh: email probably wouldn't be bad either.
jnthn afk for a bit
masak bonus points for doing gdb on the thing that blows up.
donaldh It's a failed assertion !PObj_on_free_list_TEST 22:49
So gdb won't be much help :-/ 22:50
masak oh, ok :/
22:50 zenog_ left
donaldh I imagine the damage is done some time earlier. 22:50
22:51 starcoder left 22:56 starcoder joined
masak rakudo: use Test; plan 1; eval_lives_ok { 1 } 22:58
p6eval rakudo 6f9116: OUTPUT«1..1␤get_attr_str() not implemented in class 'Sub'␤ in main program body at line 7461␤»
masak now confirmed locally, too.
masak submits rakudobug
bacek_at_work: things work much better now. closing parrot trac ticket.
23:01 alester left
bacek_at_work masak, good. I still have feelings that there is some yaks to shave. 23:05
masak bacek_at_work: you're not alone in that feeling :P
bacek_at_work: running spectests now to see if something falls out.
bacek_at_work masak, S02-builtin_data_types/instants-and-durations.t can fail due floating point rounding. 23:07
masak, same as with parrot master 23:08
masak, can you also try configure parrot with --optimize --ccflags="-DPARROT_GC_VALIDATE"? It can reveal more yaks.
23:09 stkowski left
masak bacek_at_work: may I ask to postpone this task until tomorrow? building takes some time here, and it is getting near my bedtime. :) 23:09
23:10 shi left
bacek_at_work masak, of course :) 23:10
masak I shan't forget you :)
23:15 jasonmay left 23:18 ponpon left 23:20 ponbiki joined, plobsing joined 23:22 whiteknight joined 23:24 jasonmay joined 23:30 envi left 23:34 pmurias joined
pmurias sorear: hi 23:34
dalek ecza: 1d616cd | pmurias++ | cl-backend/ (2 files):
[cl-backend] foreign stash entries are for now filled in with dummy
23:36
ecza: e8b62fe | pmurias++ | / (2 files):
[cl-backend] support sub foo($) {...}
ecza: 58cb2b5 | pmurias++ | / (2 files):
[cl-backend] implemented indirect method calls - $foo."$bar"(...) works
23:40 chitragupt left 23:41 chitragupt joined 23:44 pmurias left
colomon phenny: tell zenog I certainly wasn't annoyed with his program. I just ran out of tuits to look at the longer version.... 23:52
phenny colomon: I'll pass that on when zenog is around.
23:54 mfollett joined