Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-09-06

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:04 zwut00 left #perl6
00:10 pernatiy joined #perl6
00:12 Psyche^ joined #perl6
00:14 pernatiy joined #perl6
00:27 TimK1 joined #perl6
00:46 slavik joined #perl6
00:48 FROGGS joined #perl6
00:54 Mouq rn: my $thing = "mod?"; my $c := \$thing; (<->$v{$v~="!"; $thing.say})($c)
00:54 camelia rakudo a426d5: OUTPUT«Cannot modify an immutable value␤  in block  at src/gen/CORE.setting:15639␤  in block  at /tmp/2KMWqwpYsL:1␤␤»
00:54 camelia ..niecza v24-95-ga6d4c5f: OUTPUT«Unhandled exception: Binding '$v' in 'ANON', cannot bind read-only value to is rw parameter␤  at /tmp/NIVk0sHs2m line 0 (ANON @ 1) ␤  at /tmp/NIVk0sHs2m line 1 (mainline @ 6) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4583 (ANON @ 3) ␤  at /home/p6eva…
00:58 Mouq (This *is* spec, it just seems weird)
01:04 FROGGS joined #perl6
01:04 dayangkun joined #perl6
01:08 pernatiy joined #perl6
01:11 btyler joined #perl6
01:15 TimK1 left #perl6
01:23 btyler joined #perl6
01:38 FROGGS_ joined #perl6
02:39 Mouq joined #perl6
02:47 FROGGS joined #perl6
02:49 lelf` joined #perl6
03:02 raiph joined #perl6
03:12 colomon not ok 130 - 21st is '2'
03:12 colomon #      got: 'Set<-1818665613094757869>'
03:12 colomon # expected: '2'
03:12 colomon sigh
03:13 abnorman joined #perl6
03:28 preflex_ joined #perl6
03:38 ggoebel joined #perl6
04:05 FROGGS joined #perl6
04:06 btyler joined #perl6
04:16 SamuraiJack joined #perl6
04:19 dalek roast: 9f27c56 | (David Warring)++ | S29-conversions/ord_and_chr.t:
04:19 dalek roast: corrected and unfudged grapheme test
04:19 dalek roast: review: https://github.com/perl6/roast/commit/9f27c56316
04:37 daniel-s_ joined #perl6
04:44 FROGGS joined #perl6
04:57 raiph joined #perl6
05:04 FROGGS joined #perl6
05:15 panchiniak_ joined #perl6
05:16 dalek roast: 1d8f051 | (David Warring)++ | S32-str/sprintf.t:
05:16 dalek roast: fixed 'Inf' skip
05:16 dalek roast: review: https://github.com/perl6/roast/commit/1d8f051701
05:16 hummeleBop joined #perl6
05:24 FROGGS joined #perl6
05:35 agre joined #perl6
05:48 domidumont joined #perl6
05:54 domidumont joined #perl6
06:15 FROGGS joined #perl6
06:37 rindolf joined #perl6
06:40 FROGGS[mobile] joined #perl6
06:46 panchiniak_ joined #perl6
06:48 FROGGS joined #perl6
06:50 domidumont joined #perl6
06:52 pecastro_ joined #perl6
06:54 denis_boyun joined #perl6
07:00 denisboyun joined #perl6
07:02 dalek v5: f8375e9 | (Tobias Leich)++ | / (2 files):
07:02 dalek v5: implement (un)pack directive "X"
07:02 dalek v5:
07:02 dalek v5: To make this happen both functions do not modify the args they are working on.
07:02 dalek v5: They just keep and move a position. This allows going back when hitting "X".
07:02 dalek v5: review: https://github.com/rakudo-p5/v5/commit/f8375e91bb
07:05 kaleem joined #perl6
07:07 Noon33 joined #perl6
07:09 zakharyas joined #perl6
07:10 dmol joined #perl6
07:28 iSlug joined #perl6
07:36 daxim joined #perl6
07:40 hoelzro tadzik: thanks!
07:40 hoelzro I intend to do something similar post-workshop for Rakudo =)
07:42 jlaire left #perl6
07:47 pernatiy_ joined #perl6
07:54 xenoterracide joined #perl6
08:01 iravan joined #perl6
08:03 fhelmberger joined #perl6
08:06 daxim_ joined #perl6
08:22 FROGGS joined #perl6
08:29 masak good antenoon, #perl6
08:30 jnthn o/ masak
08:33 lizmat_ joined #perl6
08:33 diakopter lizmat_: o/
08:35 FROGGS hi everyone
08:38 agre joined #perl6
08:48 moritz hi
08:52 tadzik hoelzro: sounds awesome :)
08:55 donaldh joined #perl6
08:57 hummeleBop joined #perl6
09:02 rindolf joined #perl6
09:07 panchiniak_ left #perl6
09:12 rindolf joined #perl6
09:29 lizmat_ good *, #perl6!
09:29 FROGGS hi lizmat
09:30 lizmat masak, TimToady: if we would give Set and Bag its own .WHICH method, that would be a hash of its keys, would that solve your issue?
09:30 rindolf joined #perl6
09:30 lizmat and jnthn: or would that mess up things considerably on a lower vm level ?
09:31 lizmat in other words: can objects provide their own .WHICH if necessary ?
09:31 xinming joined #perl6
09:33 moritz lizmat: yes, and they should, if they are considered value types
09:40 rindolf joined #perl6
09:51 cognominal joined #perl6
09:57 dmol joined #perl6
10:05 rindolf joined #perl6
10:07 jnap joined #perl6
10:11 lizmat $ perl6 -e 'set(set(),set()).say'
10:11 lizmat set(set())
10:12 moritz \o/
10:13 lizmat Q: if I have a method WHICH in Set.pm, how can subclasses of Set use the "original" .WHICH ?
10:15 lizmat A: make WHICH a submethod ?
10:18 jnthn lizmat: Why'd you want subclasses not to inherit it, ooc?
10:19 lizmat because I made KeySet a subclass of Set
10:19 jnthn Feels odd that a parent class is a value type but a subclass not
10:20 jnthn Barbara would have a disappoint, no? :)
10:20 lizmat sorry, don't get the reference  :-)
10:20 lizmat well, maybe KeySet/Set need to be moved around, that's quite possible
10:21 jnthn lizmat: As in, Liskov :)
10:23 xinming joined #perl6
10:23 denis_boyun joined #perl6
10:24 lizmat I guess they need to be moved around then  :-)
10:27 denis_boyun__ joined #perl6
10:28 colomon Isn't having the subclass be the modifiable one the right way to do it for Liskov?  Certainly you couldn't have Set derive from KeySet without violating Liskov...
10:29 moritz it's better than the other way round :-)
10:29 dalek rakudo/nom: 7bd19cf | (Elizabeth Mattijsen)++ | src/core/KeyBag.pm:
10:29 dalek rakudo/nom: There is no keybag() specced
10:29 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7bd19cf118
10:29 moritz and iirc we do it all the time in p6
10:30 jnthn Aye, it's more that having a parent class act like a value tyep and a subclass not feels wrong
10:30 jnthn we dont' pretend EnumMap and List are value types.
10:30 lizmat so we let KeySet be a subclass of Set
10:30 jnthn Does inheritance make sense here?
10:31 lizmat have you looked at the code in KeySet?  it's only delete, at_key and KeySet and Set
10:31 jnthn Was it actually made explicit that Set should have value semantics too?
10:31 lizmat the rest is inherited
10:31 lizmat that's what I gathered from the discussion between masak and TimToady in the backlog
10:32 jnthn oh, when I scanned it I didn't immediately see that
10:33 jnthn and re-reading it it's still not entirely clear to me :)
10:34 dalek rakudo/nom: 044bd5b | (Elizabeth Mattijsen)++ | src/core/KeySet.pm:
10:34 dalek rakudo/nom: Need to override Set/KeySet
10:34 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/044bd5b32d
10:34 jnthn Anyway, can always make it a submethod for now but it feels weird
10:35 jnthn I can already see the RTs. "Why does a Set lose value semantics when I mix in to it?" :)
10:35 lizmat well, yes, it's not entirely clear to me, but I suggest I will be correct if I got it wrong
10:35 lizmat and rip out the extra code
10:39 colomon While I admit that I don't see major problems deriving KeySet from Set, wouldn't the more perl6y way of factoring out the common code be a shared role?
10:39 jnthn colomon: Potentially
10:39 lizmat well, that would always be an option
10:39 lizmat before I started this, KeySet was more or less a copy-paste from Set
10:40 lizmat and KeyBag was a copy/paste from Bag
10:40 colomon right
10:40 lizmat which meant a lot of code duplication
10:40 jnthn Using roles over inheritnace in CORE.setting provides a good, uh, role model for others. :)
10:40 colomon :p
10:41 colomon there already is a Baggy role, we just don't do any useful factoring with ti.
10:41 colomon *it
10:41 jnthn r: class Trousers is Baggy { }
10:41 camelia rakudo a426d5:  ( no output )
10:41 jnthn :D
10:41 lizmat maybe we need a Setty role
10:42 jnthn .oO( And a Getty role to go with it? )
10:42 lizmat please don't mention the unmentionable  ;-)
10:42 colomon I certainly don't know of a good reason we have Baggy but not Setty
10:43 colomon (it's spec, as I recall)
10:43 colomon Though that suggests to me that this isn't just an implementation detail.
10:44 colomon it's a spec issue: how do you declare an argument can be a Set or a KeySet?
10:44 colomon for Bag or KeyBag, the answer is Baggy
10:44 colomon for Set, it's … ?
10:45 lizmat there is no spec for Baggy or Setty, afaik
10:45 lizmat perl6:specs liz$ ack Baggy
10:45 lizmat perl6:specs liz$ ack Setty
10:46 FROGGS ack
10:48 kaleem joined #perl6
10:50 * masak .oO( if you need to advise someone not to mention something unmentionable, at least one of us has a wrong definition of "unmentionable"... )
10:55 lizmat ok, I will refactor Bag/Set to Baggy/Setty roles
10:55 lizmat after doing some errands
10:59 SamuraiJack_ joined #perl6
11:04 pmurias joined #perl6
11:04 pmurias what does the string ab\x005ccd mean?
11:06 brrt joined #perl6
11:06 moritz nr: say "ab\x005ccd"
11:06 camelia rakudo a426d5, niecza v24-95-ga6d4c5f: OUTPUT«ab峍␤»
11:06 moritz nr: say "ab\x005ccd".chars
11:06 camelia rakudo a426d5, niecza v24-95-ga6d4c5f: OUTPUT«3␤»
11:06 moritz pmurias: seems it's the same as "ab\x{5CCD}"
11:06 moritz .u 峍
11:07 yoleaux No characters found
11:07 pmurias hmm, it's seems to be converted to \ by nqp/t/qregex/01-qregex.t
11:09 moritz that one might well do something special with it
11:10 pmurias nqp: say("\x{005c}")
11:10 camelia nqp: OUTPUT«Unrecognized backslash sequence: '\x' at line 2, near "\\x{005c}\")"␤current instr.: 'panic' pc 14693 (src/stage2/gen/NQPHLL.pir:5223) (src/stage2/gen/NQPHLL.nqp:279)␤»
11:10 pmurias nr: say("\x{005c}")
11:10 camelia rakudo a426d5: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Unrecognized backslash sequence: '\x'â�¤at /tmp/lNY_RwpkGC:1â�¤------> [32msay("\[33mâ��[31mx{005c}")[0mâ�¤Confusedâ�¤at /tmp/lNY_RwpkGC:1â�¤------> [32msay("\x{005[33mâ��[31mc}")[0mâ�¤    expecting any of:â�¤        whitespaceâ�¤Other potential …
11:10 camelia ..niecza v24-95-ga6d4c5f: OUTPUT«[31m===[0mSORRY![3​1m===[0mâ�¤â�¤Unrecognized backslash sequence: '\x' at /tmp/44nrprrwAZ line 1:â�¤------> [32msay("\x[33mâ��[31m{005c}")[0mâ�¤â�¤Use of uninitialized value in string contextâ�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 1355 (warn @ 5) â�¤â€¦
11:11 pmurias is there a way to encode a character by hex in nqp?
11:12 moritz oh, I think it's \c[...] in Perl 6, it was \x{...} in p5
11:13 moritz oh, \c for decimal, \x for hex
11:13 moritz nr: say "\x[005c]"
11:13 camelia rakudo a426d5, niecza v24-95-ga6d4c5f: OUTPUT«\␤»
11:13 moritz nqp: say("\x[005c]")
11:13 camelia nqp: OUTPUT«\␤»
11:14 pmurias thanks
11:21 benabik joined #perl6
11:28 kaleem joined #perl6
11:39 cogno joined #perl6
11:45 spider-mario joined #perl6
11:53 timotimo the "perl6 is dead, long live perl5" talk just landed on youtube
11:55 * tadzik is waiting for LT day 2, so he can see himself shouting
11:55 timotimo shout, shout, let it all out
11:56 timotimo these are the perls i can't do without~
11:56 tadzik haha
11:56 tadzik I'm talking to you, haha
11:56 moritz timotimo: that talk didn't touch Perl 6 very much
11:57 tadzik putting 6 or 7 in a talk name is like saying "cloud" or "webscale" or "nosql"
11:57 timotimo do you know the chrome plugin that replaces "the cloud" with "my butt" everywhere?
11:57 jnthn yes :)
11:58 tadzik haha
11:58 jnthn "Store your data in my butt!"
11:58 tadzik I made one of those a year back
11:58 timotimo your data is absolutely secure, because we store it in my butt
11:58 tadzik we had this Amber Gold company, which promised people a lot of money and then went donw
11:58 jnthn My butt can scale to all your needs
11:58 tadzik and the entire media was after it, basically repeating the message "people are naive" over and over
11:58 timotimo oh my
11:59 tadzik so I wrote a plugin to replace it all with Alpen Gold, a chocolate brand
11:59 tadzik made reading news so much better
11:59 jnthn haha
11:59 timotimo this "log how data is being touched" is kind of cute
12:00 timotimo should be pretty easy to do with perl6, too, right?
12:00 tadzik once again, chocolate fixes everything. Lessons learned, ms Troi
12:00 timotimo override hash, for example, and log all changes through the postcircumfixes?
12:00 tadzik with callers
12:00 tadzik aww yiss
12:01 FROGGS jnthn: as on your request: http://www.youtube.com/watch?v=fbGkxcY7YFU
12:01 FROGGS :P
12:02 tadzik in the cloud!
12:04 tadzik aaaaand I need eyebleach
12:04 tadzik http://eyebleach.com/ NSFW
12:05 timotimo http://kidbleach.info/ - NNSFW
12:06 FROGGS *g*
12:08 timotimo FROGGS: is TIE something that could be done with v5 without you going absolutely insane?
12:08 FROGGS timotimo: no idea yet
12:08 dalek rakudo-js: e6af0d6 | (Pawel Murias)++ | / (2 files):
12:08 dalek rakudo-js: Pass rx_charclass.
12:08 dalek rakudo-js:
12:08 dalek rakudo-js: Implement enumcharlist and conj rxsubtypes.
12:08 dalek rakudo-js: review: https://github.com/pmurias/​rakudo-js/commit/e6af0d607d
12:08 timotimo pmurias: yay for sane regexes on javascript! ;)
12:09 FROGGS timotimo: I never used it in Perl 5, so I'm not sure what it does and how I can fake it
12:09 tadzik I think I'll add rakudo-js to rakudobrew
12:09 FROGGS tadzik++
12:09 timotimo it's currently only nqp-js at the moment :(
12:10 tadzik doesn't matter, still amazing
12:10 tadzik actually, mario can wait for tomorrow. Today's the day to give rakudobrew more love
12:10 kivutar joined #perl6
12:10 colomon rakudobrew?
12:10 * colomon goes to github...
12:11 pmurias timotimo: they are not entirely sane yet ;) , 3 qregex tests left
12:11 timotimo mario == playing mario music on your awesome piano?
12:11 tadzik timotimo: no, but that's a good idea too :)
12:11 timotimo :D
12:11 tadzik timotimo: I started writing games recently
12:11 timotimo oh, neato
12:11 tadzik mario is very far from done, but asteroids are neat and playable
12:11 pmurias in p6?
12:11 timotimo from my last stay at my parent's house i brought home an "antique" yamaha electronic keyboard
12:11 tadzik no, in C
12:12 timotimo i'm hoping i'll be able to learn a few nice tunes. i've had my eyes on the "crashed frigate orpheon" from metroid prime for a long time
12:12 tadzik I started mario in C++ though
12:12 tadzik timotimo: as far as I know, yamahas are practically indestructible
12:12 FROGGS tadzik: you used box2d?
12:12 tadzik mine is also yamaha
12:12 tadzik FROGGS: no, I'm writing everything myself
12:12 FROGGS k
12:14 timotimo there really was very not much perl6 in that talk :|
12:14 tadzik I'll probably use it for something later, to see how many things I got totally wrong :)
12:14 timotimo so i conclude: the rumors of perl6's death are vastly overstated ... or something
12:16 colomon r: my $s = set 2; say $s.Str
12:16 timotimo also, no hint whatsoever that perl6 is sucking up lots of perl community creativity and stuff
12:16 camelia rakudo 044bd5: OUTPUT«Set<-796884995>␤»
12:16 colomon r: my $s = set 2; say $s
12:16 camelia rakudo 044bd5: OUTPUT«set(2)␤»
12:17 colomon r: my $s = set 2; my $t = set 2; say $s.Str; say $t.Str
12:17 camelia rakudo 044bd5: OUTPUT«Set<-2068370265>␤Set<-2073328463>␤»
12:17 colomon :(
12:18 tadzik hmm
12:18 tadzik or maybe rakudobrew should really be a plenv plugin
12:23 * colomon has somehow completely broken one of the ABC test files in Rakudo.  (It still works fine in Niecza.)
12:23 tadzik did github remove the messaging feature?
12:23 timotimo long time ago
12:24 tadzik bah
12:25 FROGGS joined #perl6
12:26 tadzik now the only thing that comes to my mind when I want to communicate with the author is to open an issue in his repo
12:26 timotimo i don't like it, either
12:27 tadzik I think I'll do just that
12:28 colomon this bug is quite purplexing
12:28 colomon perplexing
12:28 pmurias why did they remove the messaging feature? random ui changes?
12:28 colomon Purple Xing
12:30 benabik joined #perl6
12:30 colomon add three lines of comments, code no longer compiles
12:30 colomon well, no longer runs
12:30 colomon no error message
12:31 pmurias tadzik: re mario/asteroids you should combine the games together so that every time you collide with an asteroid you crashland on it and you have to beat a mario level to survive ;)
12:31 tadzik :D
12:31 tadzik that's a cool idea :)
12:35 timotimo tadzik: yamahas are especially not destructible by putting it into a corner and waiting 15 years
12:35 tadzik :)
12:35 timotimo i think the device itself is about 20 years old
12:35 tadzik which you can't really say about analog pianos
12:36 timotimo yeah
12:36 tadzik there's one in my family home, it's standing between a radiator and a fireplace
12:36 timotimo oh god
12:36 tadzik it's not the best place to put a piano in
12:36 timotimo not at all
12:36 timotimo my parents have one as well, which never got near enough play time sadly (i'm a bit to blame for that as well)
12:37 tadzik it's something that comes with time, I think
12:37 tadzik I was learning piano for 6 years when I was in primary/secondary school
12:37 tadzik after those 6 years, I was tired, didn't like it anymore and gave up on it
12:37 tadzik it's only now, what is it...
12:37 tadzik 8 years later?
12:37 tadzik when I started appreciating it
12:38 timotimo i conclude you're at least 14 years old
12:38 tadzik unless I miscalculed something, yes :)
12:39 tadzik I started playing when I was 9 or 10
12:39 PacoLinux joined #perl6
12:39 tadzik so I did miscalcule something
12:39 tadzik 14 + any(9,10) is not quite 22
12:41 rindolf joined #perl6
12:41 moritz and you are not quite in kansas :-)
12:42 tadzik I feel like I'm missing some reference :)
12:42 moritz wizard of oz
12:43 tadzik oh. I never actually read it, I think
12:47 moritz just watch the movie :-)
12:47 tadzik heh :)
12:47 tadzik I think I fell asleep last time I tried
12:47 tadzik but it was late, to my defense
12:49 mathw o/
12:49 tadzik \o
12:50 tadzik mathw, mathw
12:50 tadzik you have a t430, right?
12:51 mathw yup
12:51 tadzik do you have an idea where I could get a spare S key?
12:52 mathw umm
12:52 mathw no
12:52 tadzik dang
12:52 mathw how did you manage to need a spare S key already/
12:53 tadzik it broke
12:53 tadzik the mechanism, probably
12:53 tadzik but it keeps "jumping off
12:53 tadzik "
12:53 cogno joined #perl6
12:53 jnap joined #perl6
12:53 moritz tadzik is good at breaking key(board)s, it seems :-)
12:53 tadzik apparently, yes :)
12:53 tadzik I'm apparently a hard-hitter
12:54 tadzik those thinkpad keyboards are hardly durable
12:54 masak rn: multi perms([]) { [] }; multi perms(@ [$h, *@t]) { my @tp = perms @t; @tp.map({ (0..@t).map: -> $i { insert_before $h, $i, $_ } }) }; sub insert_before($e, $i, @l) { [@l[^$i], $e, @l[$i..*]] }; say .join for perms <1 2 3>
12:54 mathw hmm
12:54 mathw that's not good :( sorry I can't help
12:54 mathw I need my S key
12:54 camelia rakudo 044bd5: OUTPUT«123␤213␤231␤132␤312␤321␤»
12:54 camelia ..niecza v24-95-ga6d4c5f: OUTPUT«(timeout)»
12:54 tadzik heh :)
12:54 masak \o/
12:54 * masak wonders what's up with Niecza
12:54 mathw It's handy when I'm typing things explaining about aikido techniques like shomen uchi shomen irimi nage, which wouldn't be the same at all without the 's'.
12:55 mathw masak: timeout? hmm. That does look a bit wrong
12:55 masak mathw: yes, I'm pretty sure the correct answer is what Rakudo printed, not a timeout.
12:56 mathw :)
12:58 tadzik ahahaha. On ebay, a single key costs $10
12:58 mathw you would expect the control flow to be the same for both
13:01 mathw tadzik: hurrah for ebay
13:01 kbaker joined #perl6
13:02 hummeleBop1 joined #perl6
13:05 btyler joined #perl6
13:07 dalek rakudo-js: 5677621 | (Pawel Murias)++ | / (3 files):
13:07 dalek rakudo-js: Pass rx_backtrack.t
13:07 dalek rakudo-js:
13:07 dalek rakudo-js: Implement rxsubtype alt, nqp::nfarunalt.
13:07 dalek rakudo-js: review: https://github.com/pmurias/​rakudo-js/commit/56776217be
13:07 ajr joined #perl6
13:09 masak plan for today: finish up some t3 after-work. start in on t4 reviews.
13:10 * colomon is completely mystified by the ABC thing -- went from utter failure to complete passing under Rakudo with no significant change to the code.  But it still seems to fail under Rakudo on his Linux box.
13:12 lelf`` joined #perl6
13:17 lowpro30 joined #perl6
13:18 ajr joined #perl6
13:19 PacoLinux joined #perl6
13:20 GlitchMr joined #perl6
13:21 masak std: my $n = 1; my $p = 2; say "$n->$p"
13:22 camelia std 27326bc: OUTPUT«[31m===[0mSORRY![31m===[0m�Unsupported use of -> as postfix; in Perl 6 please use either . to call a method, or whitespace to delimit a pointy block at /tmp/fuGNoL_DCZ line 1:�------> [32mmy $n = 1; my $p = 2; say "$n->[33m�[31m$p"[0m�Parse failed�FAILED 00:0…
13:22 timotimo hm, that's kinda unhelpful, isn't it?
13:22 masak TimToady: I'm thinking whether these types of errors shouldn't be suppressed in string interpolations.
13:22 masak TimToady: so that '->' simply means "interpolation ends here".
13:23 masak std: my $n = 1; my $p = 2; say "$n\->$p"
13:23 camelia std 27326bc: OUTPUT«ok 00:00 43m␤»
13:23 masak workaround so far.
13:23 moritz std: my $n = 1; my $p = 2; say "{$n}->$p"
13:23 camelia std 27326bc: OUTPUT«ok 00:00 43m␤»
13:24 xinming joined #perl6
13:31 flussence +1 for not doing that
13:31 flussence inside strings is the wrong place to be strict
13:33 tadzik mathw: ha, victory! http://imgur.com/MBne7UM
13:33 tadzik apparently the mechanism is intact, only the keycap is broken
13:33 timotimo that's a weird place to put it :)
13:33 * donaldh is bisecting 5 lines of code to identify the cause of: Cannot call Numeric; no signatures match
13:33 * timotimo got a new keyboard the day before yesterday
13:34 colomon panda install ABC fails, but latest ABC source proved manually works just fine.  :\
13:34 tadzik colomon: precomp?
13:34 timotimo donaldh: are you in a place where you can --ll-exception and get a better traceback?
13:34 colomon donaldh: what do the 5 lines look like?
13:34 colomon tadzik: maybe?  It's failing in the testing stage, though.
13:34 tadzik timotimo: you have to get your priorities straight :P
13:34 tadzik colomon: yeah, it sometimes is so
13:34 timotimo tadzik: huh?
13:35 tadzik timotimo: print screen is way more important than an s :)
13:35 masak tadzik: but, but... how will you now print your screen? :P
13:35 timotimo hehe
13:35 tadzik masak: easy. Let me show you...
13:35 timotimo anyway. the new keyboard in my thinkpad makes it feel like i have a new thinkpad! :D
13:35 donaldh it's this line: while $res.elems < $bufsize && $buf.elems
13:36 colomon tadzik: and now panda installs it without issues.  :\
13:36 timotimo so $bufsize is something that can't numeric?
13:36 donaldh comment out the && $buf.elems and CORE.setting compiles.
13:36 tadzik masak: http://imgur.com/CIXGP9f tada!
13:36 tadzik colomon: oh
13:36 colomon tadzik: no changes whatsoever.
13:36 tadzik donaldh: is buf actually a perl6 object?
13:36 timotimo i'm hoping the difference isn't in while ($res.elems < $bufsize) && $buf.evems
13:37 colomon tadzik: I don't think panda is to blame.
13:37 tadzik *relief* :)
13:37 colomon tadzik: I think there's something wonky going on in Rakudo.
13:37 donaldh whole block (oh 6 lines) :         my $res = buf8.new();
13:37 donaldh repeat {
13:37 timotimo tadzik: now you're just messing with up
13:37 timotimo us
13:37 donaldh my $buf := buf8.new();
13:37 masak tadzik: :D
13:37 donaldh nqp::readfh($!PIO, $buf, nqp::unbox_i($bufsize - $res.elems));
13:37 donaldh $res ~= $buf;
13:37 donaldh } while $res.elems < $bufsize && $buf.elems;
13:38 tadzik well, the S doesn't work in the new place either
13:38 masak I guessed so.
13:38 colomon donaldh: check $bufsize.WHAT ?
13:39 donaldh colomon:     method read(IO::Socket:D: Cool $bufsize as Int) {
13:39 colomon "as Int" works?
13:40 donaldh Like I said, this is accepted :         } while $res.elems < $bufsize; # && $buf.elems;
13:40 colomon oh
13:40 donaldh i.e comment the && $buf.elems
13:40 colomon r: say 1 < True
13:40 timotimo so is it doing $res.elems < ($bufsize && $buf.elems)?
13:40 camelia rakudo 044bd5: OUTPUT«False␤»
13:40 colomon timotimo: nope, that would be okay too
13:40 timotimo mhm
13:41 colomon seems like there must be something funky happening in $buf.elems?
13:41 colomon just say $buf.elems before the while statement?
13:41 btyler joined #perl6
13:42 colomon r: say (1 && 45).WHAT
13:42 camelia rakudo 044bd5: OUTPUT«(Int)␤»
13:42 lowpro30_ joined #perl6
13:43 dalek panda: 8674991 | (Donald Hunter)++ | / (6 files):
13:43 dalek panda: Add support for building and installing jars for JVM.
13:43 dalek panda: review: https://github.com/tadzik/panda/commit/867499134e
13:43 dalek panda: 4547e96 | tadzik++ | / (6 files):
13:43 dalek panda: Merge pull request #55 from donaldh/jvm-support
13:43 synopsebot Link: https://rt.perl.org/rt3//Pu​blic/Bug/Display.html?id=55
13:43 dalek panda:
13:43 dalek panda: Add support for building and installing jars for JVM.
13:43 dalek panda: review: https://github.com/tadzik/panda/commit/4547e9616c
13:43 timotimo something with huge legs just landed outside my window and i only see a small part of its body o_O
13:45 mathw tadzik: hahaha, nice one
13:45 tadzik finally some use for this big print screen key
13:47 donaldh r: https://gist.github.com/do​naldh/4ada7d00c4d64a4efc15
13:47 camelia rakudo 044bd5: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/EgCTAur_Weâ�¤Two terms in a rowâ�¤at /tmp/EgCTAur_We:1â�¤------> [32mhttps[33mâ��[31m://gist.githu​b.com/donaldh/4ada7d00c4d64[0mâ�¤    expecting any of:â�¤        argument listâ�¤        postfixâ�¤        infix stopperâ�¤â€¦
13:48 donaldh I thought camelia could handle gists ?
13:49 arnsholt They changed the URL schema a while back. Might be that camelia wasn't updated
13:50 timotimo i think it can only handle public gists
13:50 donaldh hmmm. Moritz used it yesterday
13:50 timotimo which doesn't really make sense to me
13:51 donaldh oh.
13:51 dalek Perlito: e4182ba | (Flavio S. Glock)++ | TODO-perlito5:
13:51 dalek Perlito: Perlito5 - TODO update
13:51 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/e4182ba4de
13:51 * timotimo dislikes spamming his list of gists with such small thingies
13:51 pmurias maybe the build system broke?
13:52 pmurias sorry, incorrectly scrolled window
13:52 donaldh I put the block in a separate file and:  Variable '$buf' is not declared
13:52 donaldh which is nice 'n' self explanatory :D
13:59 donaldh only one INET test to go on JVM … Failed 1/41 subtests
14:01 cognominal__ joined #perl6
14:02 shinobicl_ joined #perl6
14:07 thou joined #perl6
14:09 logie joined #perl6
14:15 PacoAir joined #perl6
14:16 colomon r: { my $buf = 1; } while $buf; say "eh?"
14:16 camelia rakudo 044bd5: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/7heceTg4Esâ�¤Variable '$buf' is not declaredâ�¤at /tmp/7heceTg4Es:1â�¤------> [32m{ my $buf = 1; } while $buf[33mâ��[31m; say "eh?"[0mâ�¤    expecting any of:â�¤        postfixâ�¤Â»
14:16 colomon r: { my $buf = 1; } while $buf.elems; say "eh?"
14:16 camelia rakudo 044bd5: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/auMVABUy1câ�¤Variable '$buf' is not declaredâ�¤at /tmp/auMVABUy1c:1â�¤------> [32m{ my $buf = 1; } while $buf.elems[33mâ��[31m; say "eh?"[0mâ�¤    expecting any of:â�¤        method argumentsâ�¤Â»
14:17 colomon r: repeat { my $buf = 1; } while $buf.elems; say "eh?"
14:17 camelia rakudo 044bd5: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/b7fDQHNolFâ�¤Variable '$buf' is not declaredâ�¤at /tmp/b7fDQHNolF:1â�¤------> [32mrepeat { my $buf = 1; } while $buf.elems[33mâ��[31m; say "eh?"[0mâ�¤    expecting any of:â�¤        method argumentsâ�¤Â»
14:17 timotimo donaldh++ :)
14:18 colomon donaldh: huh.  why didn't the original block get that error?
14:18 tadzik maybe it was declared somewhere in the outer scope
14:18 lizmat r: my role Foo { ... }; class A does Foo {}  # seems we can't compose with a stubbed role
14:18 camelia rakudo 044bd5: OUTPUT«===SORRY!===␤None of the parametric role variants for 'Foo' matched the arguments supplied.␤Null PMC access in get_pmc_keyed()␤»
14:20 lizmat afk again&
14:21 FROGGS joined #perl6
14:32 * masak submits rakudobug
14:33 FROGGS masak: I'm gisting a nqp::(un)pack proposal now...
14:34 donaldh colomon: Errors always seem to be extremely obscure when compiling the CORE.setting
14:36 jnap1 joined #perl6
14:38 spider-mario joined #perl6
14:53 dmol joined #perl6
14:53 pmurias FROGGS: is nqp::(un)pack a bottleneck?
14:54 FROGGS pmurias: there is no such thing yet, so no, no bottle neck :o)
14:54 raiph joined #perl6
14:54 pmurias why do we need that?
14:55 FROGGS pmurias: rakudo's (un)pack can only just a bit atm, and I need a Perl 5 compatible pack/unpack for v5
14:56 pmurias you should have your own setting for v5
14:56 FROGGS so, I propose to have a single (un)pack in nqp
14:56 pmurias rather then pushing stuff into nqp
14:56 FROGGS pmurias: we did the same for sprintf, and it was the best thing would could do
14:57 FROGGS pmurias: the other way would be to make rakudo's (un)pack complete, and use it from v5, which would the be slower for both, rakudo and v5
14:58 pmurias what I mean is you should have your own p5 stuff rather then using rakudo's things
14:59 btyler joined #perl6
14:59 FROGGS pmurias: why?
15:00 FROGGS just for the sake of ode duplication?
15:00 FROGGS code*
15:00 pmurias don't some of the p5 core functions behave slightly differently?
15:01 FROGGS pmurias: sure, and exactle these *some function* I reimplement in v5
15:02 btyler_ joined #perl6
15:02 FROGGS but I'll never just copy over code unmodified when I dont have to
15:04 pmurias something like substr("xxxyyyz",-4,-1) won't work using the Perl6 substr
15:05 GlitchMr pmurias, *-4, and *-1.
15:05 GlitchMr You have to specificially mark you want from the end.
15:05 GlitchMr In fact:
15:05 GlitchMr rn:  substr("xxxyyyz",-4,-1)
15:05 camelia rakudo 044bd5: OUTPUT«Start argument to substr out of range. Is: -4, should be in 0..Inf; use *-4 if you want to index relative to the end␤current instr.: 'throw' pc 388877 (src/gen/CORE.setting.pir:164759) (src/gen/CORE.setting:10164)␤called from Sub 'sink' pc 424937 (src/gen/CORE.sett…
15:05 camelia ..niecza v24-95-ga6d4c5f:  ( no output )
15:06 GlitchMr Rakudo says what you should do instead.
15:07 pmurias GlitchMr: I'm pointing out that perl5 code can't use the Perl 6 substr, not trying to do that
15:07 GlitchMr But I guess in Perl 5 mode, instead of warning, it could rerun the function with correct arguments.
15:07 GlitchMr Perl 5 mode is already sort of difficult.
15:07 FROGGS pmurias: for this one it would pass the whatever implicitly
15:07 FROGGS "would", because NYI
15:07 GlitchMr How would you represent *-1.
15:08 FROGGS well, I would produce the same ast as *-1 does
15:08 GlitchMr And please, something like Perl6::substr "xxxyyyz", sub { shift - 4 }, sub { shift - 1 } would be annoying.
15:09 FROGGS hmm?
15:09 GlitchMr *-1 is sub($arg) { $arg - 1 }
15:10 GlitchMr But then, I guess the issue exists only when calling Perl 6 APIs from Perl 5.
15:10 GlitchMr In Perl 5, you could simply use Perl 5 substr(), which will copy behavior of Perl 5 substr().
15:10 FROGGS well, the common case is that you dont call Perl6's substr from v5
15:10 GlitchMr As long it's possible, it sounds fine.
15:11 GlitchMr And in this case, it would be possible using subroutines.
15:11 FROGGS I mean, you can call methods on a string in v5 for example
15:11 GlitchMr Yes.
15:11 GlitchMr I wonder, if you can, Perl 5 string should be instance of Callable.
15:12 GlitchMr When being in Perl 6 code.
15:12 FROGGS there is nothing like a Perl 5 string
15:12 FROGGS it is just Str
15:12 GlitchMr Well, Perl 5 SV.
15:13 FROGGS I guess you are talking about diakopter++ 's plan
15:14 btyler joined #perl6
15:14 denis_boyun joined #perl6
15:15 GlitchMr Perhaps something like Perl5::Scalar?
15:15 GlitchMr Except Scalar is too generic.
15:15 GlitchMr Because it also includes references.
15:15 GlitchMr Also, it would be great if Perl 5 datatypes would work well with Perl 6.
15:15 GlitchMr Even something like Perl5::Glob.
15:16 GlitchMr And you could use Str methods, even if only on Perl 6 side.
15:17 GlitchMr But there is no problem with that, there is already Cool role.
15:17 FROGGS I'm not sure I need a Perl5::Scalar or some such, but my plan is to get something in place to handle Typeglobs, so we'll see
15:19 FROGGS GlitchMr: there is no perl 5 datatype yet, so if you declare a variable/package in v5, you can use it in Perl 6 land, because it is a Perl 6 type
15:21 skids joined #perl6
15:22 TimToady people keep acting like this identity/.WHICH thing of Sets vs KeySets is unspecced.  please see http://perlcabal.org/syn/S02.html#Immutable_types and http://perlcabal.org/syn/S02.html#Mutable_types
15:26 [particle] joined #perl6
15:31 REPLeffect joined #perl6
15:31 GlitchMr rn: say now - now
15:31 camelia niecza v24-95-ga6d4c5f: OUTPUT«-0.00014805793762207031␤»
15:31 camelia ..rakudo 044bd5: OUTPUT«-0.01350395␤»
15:32 GlitchMr 0.01 seconds for simple substraction?
15:32 GlitchMr subtraction*
15:32 TimToady or noise
15:32 jnthn Highly doubt it's the subtraction.
15:32 TimToady rn: say now - now
15:33 camelia rakudo 044bd5: OUTPUT«-0.01257903␤»
15:33 camelia ..niecza v24-95-ga6d4c5f: OUTPUT«-0.00014805793762207031␤»
15:33 TimToady but seems pretty consistent
15:33 jnthn r: say now.WHAT
15:33 camelia rakudo 044bd5: OUTPUT«(Instant)␤»
15:33 TimToady maybe now is very slow on rakudo
15:33 FROGGS TimToady: how do you think about pack/unpack/sprintf? should they be as Perl5-ish as possible? (without loosing sanity)
15:33 GlitchMr rn: my $now = now; my $now2 = now; say $now - $now2;
15:33 camelia rakudo 044bd5: OUTPUT«-0.0227672␤»
15:33 camelia ..niecza v24-95-ga6d4c5f: OUTPUT«-0.00016498565673828125␤»
15:33 FROGGS TimToady: or do you have something else in mind?
15:33 GlitchMr rn: my $now = now; my $now2 = now; say $now - $now2;
15:33 camelia niecza v24-95-ga6d4c5f: OUTPUT«-0.00015687942504882813␤»
15:33 camelia ..rakudo 044bd5: OUTPUT«-0.02065817␤»
15:34 GlitchMr It's even slower without subtraction.
15:34 jnthn now does from-posix, which is a bunch of untyped code searching through the tai leap second stuff
15:34 shinobicl_ joined #perl6
15:35 TimToady FROGGS: eventually I'd like to treat pack/unpack templates as a sort of assembly language, and compile a struct definition down to it for serializing, and then we'd have a more standard way to define eqv
15:35 TimToady so anything that's not inconsistent with that is fine
15:38 FROGGS hmmm, I fear I can't imagine what you meant by the first line
15:38 TimToady other than that, the whole point of pack/unpack is sort of serial violation the type system, so I'm not sure how you'd define "insane" there :)
15:39 TimToady but I'm okay with supporting most of what P5 does
15:39 FROGGS by (in)sanity I mean the way we factor the support of int sizes
15:40 TimToady well, int sizes are a storage type, so unpack doesn't have to return anything other than Int
15:40 FROGGS I guess a fixed width perl directive/letter would be fine
15:40 FROGGS yeah, but when you pack something you need to know how many bytes it should take
15:41 TimToady and that's where it'd be nice to be able to turn a class repr into a pack format
15:42 TimToady pack formats and struct defs are roughly isomorphic on this level
15:42 TimToady so it'd be nice not to have to duplicate that info
15:43 pernatiy joined #perl6
15:43 dalek rakudo/nom: 9b49d83 | jnthn++ | src/core/tai-utc.pm:
15:43 dalek rakudo/nom: Force leap-second data to be a constant Parcel.
15:43 dalek rakudo/nom:
15:43 dalek rakudo/nom: Should save a little bit of time, since now it's just a constant
15:43 dalek rakudo/nom: table lookup.
15:43 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9b49d838cd
15:43 donaldh I've just noticed that IO::Socket.recv is not specced
15:43 TimToady I think of the pack format as the "assembly language" end of it
15:44 donaldh Is recv a spec omission, or should it be removed from rakudo?
15:44 TimToady jnthn: sure would be nice if they abolished leap seconds for a century or so...
15:44 * donaldh is busy fixing binary recv on JVM, so is interested if its worth his while
15:45 jnthn TimToady: I'm not entirely sure I see the point of them... :)
15:47 masak today as I was using the sprintf format, I thought "why the heck is this a string language?"
15:48 jnthn masak: The 1790s... :P
15:48 jnthn um
15:48 masak :P
15:48 jnthn 1970s :)
15:48 masak yeah, those bloody Jacquard looms ruined everything for centuries to come :P
15:49 TimToady masak: well, at least if it's a constant, we could compile it to something assemblyisher.
15:49 * masak .oO( sprintf "%s %s %s", "HOME", "SWEET", "HOME" )
15:49 TimToady but yeah, you want recursive definition like a struct can do
15:49 TimToady gee, you really want an inside-out grammar...
15:49 masak TimToady: my point isn't exactly to get rid of the string format. but *only* having a string format feels wrong.
15:50 masak TimToady: especially when you start constructing things -- then you want something akin to prepared SQL statements. at the very least.
15:50 TimToady yes, strings can be a chokepoint
15:50 FROGGS masak: the other day I was thinking: we have cryptic regexes and beautiful-full-blown grammars, why can't we have both for sprintf/pack/unpack
15:50 masak TimToady: "we could compile it to something" feels like a patch on something broken, rather than a re-think.
15:50 TimToady strings are more for the convenience of programmers
15:50 masak FROGGS: yes, that's the path we should be heading.
15:50 TimToady .oO(Programming as an Activity)
15:50 FROGGS so, a string that is almost not readable and something more verbose
15:51 masak TimToady: well, it's hiding what should be a more first-class citizen inside of strings, just like Perl 6 stopped doing with regexes.
15:51 masak TimToady: the symptoms are there: you can compile the program with a faulty sprintf format, for example.
15:51 FROGGS masak: so to have both then? because only having the verbose thing would make some ppl cry I think
15:51 FROGGS (or scream and rant)
15:51 pmurias FROGGS: it should be possible to do unpacking with grammars
15:51 TimToady sure--I'm also sure we could replace it with something quite verbose and impenetrable to newbies
15:52 masak TimToady: there's no checking between the format string and the number and types of the other arguments.
15:52 jnthn masak: Still, worse is better... :P
15:52 masak yes, we should probably have two local maxima -- one "good ol' sprintf", and one we actually like :)
15:52 FROGGS pmurias: yes, that is what grammars usually do basically - pack and sprintf with grammars is the interesting part
15:52 TimToady and we already have an implementation of the other from jnthn++
15:53 TimToady masak: we've already refactored sprintf into individual .fmt calls, which is one bit of it
15:53 jnthn Huh? What'd I do? :P
15:54 TimToady generative grammars
15:54 jnthn Oh
15:54 pmurias FROGGS: generalizing pack and sprintf seems like a templating engine
15:55 jnthn Yes, I'm still not sure if that code is an example of genius or insanity :P
15:55 TimToady so pack can take either a string argument and "eval" it, or some other type that can be traversed to do the same thing, and more
15:55 FROGGS but the structure one has to supply for generative grammars is almost not writeable by hand
15:55 FROGGS so we need some kind of class/method thing like grammars, that is what the h4ck0rs are used to
15:57 TimToady I know, let's just write Perl 6 using S-EXPRs...
15:57 diakopter /o\
15:58 diakopter masak: I seem to recall that stubbed role thing being reported before
16:00 thou joined #perl6
16:00 * TimToady is now imagining a grammar containing % sprintf directives, and having PTSD flashbacks to scanf
16:00 FROGGS hehe
16:01 FROGGS are there languages outside that have something we can steal from?
16:01 * FROGGS only knows crappy languages like PHP
16:01 TimToady you mean, without introducing S-EXPRs?  :)
16:01 pmurias FROGGS: for parsing or generating?
16:01 FROGGS generation of strings/bufs
16:01 pmurias template toolkit?
16:01 FROGGS taking an array of args
16:02 FROGGS I'll look into it after dinner
16:02 pmurias or the bazillilon of other template engines on cpan
16:02 pmurias but it would be best if something like that doesn't get put into the setting (stays a module)
16:03 TimToady pmurias: unless it becomes the underlying engine for pack, sprintf, and class serialization :)
16:04 pmurias we now need an excuse to put an ORM into the core ;)
16:05 masak diakopter: quite possibly. if you find the old one, we'll merge.
16:05 jnthn .oO( tbh, I'd just merge the tickets... )
16:06 masak or that.
16:06 jnthn I'm seeing if I can get it to report something more useful at the moment :)
16:07 jnthn ...apparently not on first attempt :/
16:09 jnthn r: proto foo() { * }; foo()
16:09 camelia rakudo 044bd5: OUTPUT«===SORRY!===␤Null PMC access in get_pmc_keyed()␤»
16:09 jnthn aha
16:09 jnthn That's the underlying reason for the NPMCA
16:10 jnthn hmm
16:11 hummeleBop joined #perl6
16:11 diakopter wut. there are a lot of tickets.
16:14 * diakopter feels proud to be mentioned in 179 tickets
16:14 jnthn r: say nqp::isconcrete(nqp::null())
16:14 camelia rakudo 9b49d8: OUTPUT«1␤»
16:15 diakopter oh. out of 3,260'
16:15 diakopter O_O
16:15 jnthn Ah...and on JVM that gives 0.
16:15 diakopter masak: weeuh.
16:15 diakopter weeuhd.
16:16 diakopter I promise I've reported that one before to masakbat
16:16 diakopter bot, even
16:16 * diakopter goes to see if clogsearch is working
16:17 diakopter speaking of... masak I consider this a reportable bug http://irclog.perlgeek.de/​perl6/2013-08-29#i_7515217
16:18 * masak looks
16:18 jnthn grrr
16:18 jnthn Creating library nqp_dyncall_ops.lib and object nqp_dyncall_ops.exp
16:18 jnthn CStr.obj : error LNK2001: unresolved external symbol Parrot_str_new_from_cstring
16:18 jnthn nqp_dyncall_ops.dll : fatal error LNK1120: 1 unresolved externals
16:18 jnthn Latest NQP doesn't seem to want to build on Windows?
16:18 timotimo i don't have access to mail right now, could somebody please file this? http://irclog.perlgeek.de/​perl6/2013-09-04#i_7539373
16:18 diakopter masak: 16,590 tickets in the perl5 queue..
16:19 masak hrm. I suggest someone who has JVM's rakudo built already reproduce http://irclog.perlgeek.de/​perl6/2013-08-29#i_7515217 locally and then report it.
16:19 masak diakopter: something to aspire to ;)
16:19 diakopter well theirs is 14 years old..
16:20 pmurias jnthn: the iscclass op can be called with negative arguments?
16:21 masak diakopter: do we have more bugs created per time unit than the perl5 queue?
16:21 masak s/bugs/tickets/
16:21 jnthn pmurias: Which argument? :)
16:21 diakopter well, ours is 10 years old..
16:21 diakopter so, noe hardly
16:21 diakopter not hardly
16:22 denis_boyun joined #perl6
16:22 jnthn pmurias: on JVM, iscclass does:
16:22 jnthn if (offset < 0 || offset >= target.length())
16:22 jnthn return 0;
16:23 lowpro30 joined #perl6
16:23 TimToady Q: Is Perl 6 sucking up all the developer time from Perl 5?  A: No, it's Perl 5 that is sucking up more than its fair share...
16:23 timotimo huh?
16:23 diakopter at yapc::eu that question was posed
16:24 timotimo whose answer is that?
16:24 diakopter TimToady's tongue-in-teeth anwer
16:24 diakopter answer
16:24 jnthn Oh ffs. Parrot_str_new_from_cstring is not actually marked as PARROT_EXPORT, meaning if you use it from Windows it'll fail...
16:24 timotimo ah
16:24 timotimo jnthn: another big "fuck you" to windows users :P
16:24 diakopter ... I'm sure it wasn't meant to be that.
16:24 jnthn Despite this, it's implementing in src/string/api.c.
16:24 TimToady if they'd just redesign Perl 5 it'd be much easier to maintain... :P
16:25 jnthn *implemented...
16:25 domidumont joined #perl6
16:26 diakopter TimToady: yeah, definitely
16:26 TimToady Q: Is Perl 6 sucking up all the developer time from Perl 5?  A: No, it's Perl 5 that is sucking developer time from Perl 5...
16:26 TimToady more what I meant
16:27 TimToady I realize the other could be misread
16:28 TimToady not trying to complain about p5 sucking resources from p6, since maintaining p5 was always part of the p6 design
16:29 perigrin I'm pretty sure the keynote I saw last night pointed out that both p5 and p6 keep on sucking in their own ways.
16:30 dalek nqp: c97065d | jnthn++ | src/vm/parrot/6model/reprs/CStr.c:
16:30 dalek nqp: Fix busted build on Parrot/Windows.
16:30 dalek nqp: review: https://github.com/perl6/nqp/commit/c97065d3bd
16:32 diakopter perigrin: which one? :)
16:32 diakopter TimToady: while they're at it, they should add more features to Perl 5.. that'll help with maintainability
16:34 perigrin diakopter: TimToady's from Kiev.
16:34 diakopter oh heh.. I watched Stevan's last night
16:35 perigrin his Detroit of Languages?
16:35 diakopter yes
16:35 * perigrin just saw it the once live in Austin
16:35 diakopter since I saw essentially zero talks in Austin
16:35 perigrin you were an organizer
16:35 perigrin you don't get to see talks when you do that :)
16:36 diakopter also according to my talk feedback, I looked and spoke like a zombie
16:37 TimToady yes, but you're *our* zombie
16:37 moritz "Perl 6 isn't dead, but its developers are zombies!"
16:38 pmurias jnthn: one thing I don't understand is how \n matches \n\r in regexes
16:38 pmurias \r\n is explicitly check for
16:38 diakopter that's a regex thing..
16:38 Fatalnix because regex is boss
16:38 Fatalnix ^^
16:38 pmurias Fatalnix--
16:39 Fatalnix lol
16:39 pmurias diakopter: I don't understand how the implementation of that works
16:39 diakopter like a capturing group I thought'
16:40 diakopter fyi the yapc::na day 1 talks from rooms 1.110 and 2.102 were corrupted; they make take some work to recomposit
16:40 TimToady \n just represents an alternation of various things that are matched by LTM
16:40 TimToady (in theory--don't know how rakudo does it)
16:41 jnthn pmurias: Do you mean \r\n ?
16:41 pmurias no \n\r
16:41 jnthn pmurias: Guess what TimToady said on LTM perhaps. But in the code-gen, I think cclass for 'n' handles it specially
16:41 jnthn Um...
16:42 pmurias jnthn: \r\n is explicitly checked
16:42 perigrin diakopter: in Madison my favorite feedback to my talk was "Dude needs a nap."
16:42 jnthn r: say ("a\n\r" ~~ /a\n/).Str.perl
16:42 camelia rakudo 9b49d8: OUTPUT«"a\n"␤»
16:42 jnthn pmurias: Simple answer: it doesn't match \n\r.
16:42 TimToady nobody uses \n\r, so there's no point in checking it
16:42 GlitchMr r: say ("a\n\r" ~~ /^a\n$/).Str.perl
16:42 camelia rakudo 9b49d8: OUTPUT«""␤»
16:42 jnthn Which is what I'd have thought :)
16:42 GlitchMr r: say ("a\r\n" ~~ /^a\n$/).Str.perl
16:42 camelia rakudo 9b49d8: OUTPUT«"a\r\n"␤»
16:42 diakopter well it probably does in javascript
16:43 FROGGS well, one \n should match either a \n, a \r or a \r\n
16:43 GlitchMr Well, \n\r is newline in certain OS.
16:43 jnthn TimToady: Was gonna say, is there some REALLY weird platform I never encountered... :)
16:43 GlitchMr But nobody uses those platforms.
16:43 jnthn GlitchMr: Which one?
16:43 diakopter GlitchMr: old old mac
16:43 FROGGS GlitchMr: which?
16:43 TimToady only becuase \n and \r have their meanings reversed!
16:43 TimToady it's still CRLF
16:43 GlitchMr jnthn, BBC Micro or Risc OS.
16:44 GlitchMr But Risc OS already moved to \n.
16:44 GlitchMr So it doesn't count.
16:44 jnthn Wow, BBC Micro was first machine I programmed on, but I never knew that about it :)
16:44 pmurias jnthn: https://github.com/perl6/nqp/blob​/master/t/qregex/rx_metachars#L48
16:44 FROGGS jnthn: you just dont love the hardware you are hacking on :o)
16:44 GlitchMr c \n dabc\n\rdefnlogical newline matches \n\r
16:44 GlitchMr Interesting.
16:45 FROGGS weird
16:45 diakopter oh yeah, old old mac was \r
16:45 GlitchMr QNX (before POSIX) used \x1E (record separator).
16:46 GlitchMr But other than that, I cannot think of other strange newlines (and well, \r was rather common, not only on old Mac OS)
16:46 TimToady the point of \n is to match something that might come in from such a system via, say, NFS
16:46 TimToady I doubt we need to worry very hard about that...
16:46 FROGGS as long as \n does not match \n\n we are fine
16:47 GlitchMr Commondore 8-bit, Acorn BBC, ZX Spectrum, TRS-80, Apple II all simply used \r.
16:47 jnthn pmurias: Isn't it marked TODO? :)
16:47 GlitchMr In C, \n can be anything, provided it's one character.
16:47 TimToady GlitchMr: but what actual character did that mean?
16:47 GlitchMr \r? CR
16:47 TimToady not on mac
16:48 GlitchMr Mac OS X uses \n, but I'm talking about classic Mac OS.
16:48 TimToady mac had \r meaning LF and \n meaning CR
16:48 timotimo i like that on my unix i can get a do-over on the current line when i print just \r
16:48 GlitchMr When I type \r, I refer to CR, when I type \n, I refer to LF.
16:48 GlitchMr But perhaps I should make it less confusing.
16:48 TimToady but the OS confused them for you
16:48 FROGGS timotimo: that reminds me that we need $|++ in Perl 6 :P
16:48 GlitchMr Well, C standard allows \n to be anything.
16:48 pmurias jnthn: on pugs?
16:49 timotimo FROGGS: i don't know p5; what does that mean?
16:49 GlitchMr (provided it's one character)
16:49 diakopter timotimo: don't buffer stdout as much
16:49 timotimo oh yeah, it would be cool to have something simple to do that
16:50 timotimo doesn't have to be a special var, though
16:50 diakopter (or is it all writer handles?)
16:50 pmurias nqp: say(("abc\r\ndef" ~~ /c\nd/)."!dump_str"('mob'));
16:50 camelia nqp: OUTPUT«mob: c\r\nd @ 2␤␤»
16:50 pmurias nqp-jvm: say(("abc\r\ndef" ~~ /c\nd/)."!dump_str"('mob'));
16:50 diakopter std: $|++
16:50 camelia nqp-jvm: OUTPUT«mob:  @ 8␤␤»
16:50 camelia std 27326bc: OUTPUT«[31m===[0mSORRY![31m===[0m�Unsupported use of $| variable; in Perl 6 please use :autoflush on open at /tmp/tmEXcDUo0p line 1:�------> [32m$|[33m�[31m++[0m�Parse failed�FAILED 00:00 41m�»
16:51 jnthn pmurias: That's \r\n
16:51 jnthn nqp: say(("abc\n\rdef" ~~ /c\nd/)."!dump_str"('mob'));
16:51 camelia nqp: OUTPUT«mob:  @ 8␤␤»
16:51 TimToady please say CRLF if you mean that, since \r\n is ambiguous
16:51 benabik joined #perl6
16:51 jnthn hmm...
16:51 TimToady (historically, at least)
16:51 jnthn OK, I have no idea how it matches :)
16:51 jnthn nqp-jvm: say(("abc\n\rdef" ~~ /c\nd/)."!dump_str"('mob'));
16:51 camelia nqp-jvm: OUTPUT«mob:  @ 8␤␤»
16:52 TimToady spec doesn't say you have to match LFCR, unless TR16 mandates it
16:52 TimToady so the test might be overreaching
16:52 diakopter who's snoopy? http://stackoverflow.com/questions/18561179/exampl​e-of-perl-6-grammar-with-operator-precedence-rules
16:52 TimToady er, TR18
16:53 GlitchMr Perhaps \r, and \n should use JavaScript meanings.
16:53 GlitchMr That is, \x0A and \x0D.
16:54 GlitchMr Well, \x0D and \x0A.
16:54 TimToady whew!
16:54 TimToady that's what they mean in *strings*, but not in regex
16:54 dalek nqp: 5074d23 | jnthn++ | src/vm/parrot/ops/nqp.ops:
16:54 dalek nqp: Make nqp::isconcrete false on null.
16:54 dalek nqp:
16:54 dalek nqp: Brings Parrot impl in line with JVM impl.
16:54 dalek nqp: review: https://github.com/perl6/nqp/commit/5074d2335e
16:54 TimToady in regex \n matches LF, but also other things
16:55 jnthn That gets rid of that null PMC access... :)
16:55 GlitchMr I actually wonder how well JavaScript works on EBCDIC.
16:55 TimToady TR18 only mandates recognition of CRLF, not LFCR, so the test is in error
16:55 GlitchMr The specification seems to assume ASCII.
16:55 pmurias jnthn: re matching so it's seem it doesn't actually match, just the test harness is incorrect
16:55 jnthn pmurias: oh!
16:56 jnthn pmurias: Well. That explains it :)
16:56 TimToady http://www.unicode.org/rep​orts/tr18/#Line_Boundaries
16:56 GlitchMr But I assume it makes sense for ECMAScript, considering that it's standard for the web, so they had to decide on encoding.
16:57 pmurias nqp: say(("abc\n\rdef" ~~ /c\nd/)."!dump_str"('mob'));say(("abc\r\ndef" ~~ /c\nd/)."!dump_str"('mob'));
16:57 camelia nqp: OUTPUT«mob:  @ 8␤␤mob: c\r\nd @ 2␤␤»
16:58 TimToady that looks correctish to me
16:59 TimToady if there's any systems that actually use LFCR (as opposed to mixing up the definitions of \r and \n), I think we can safely ignore them
17:00 jnthn lizmat: 47-48 of keyset.t and a bunch of set.t fail for me on Rakudo on Parrot on Windows. Known?
17:00 pmurias silly me
17:00 pmurias just the test description was incorrect :/
17:01 diakopter moritz: fudger feature request: annotate the test files with test numbers..
17:01 pmurias and I overlooked the actual n/y flag :(
17:01 diakopter (if it doesn't already!)
17:01 dalek rakudo/nom: e4b20f9 | jnthn++ | t/spectest.data:
17:01 dalek rakudo/nom: This test needs ICU on Parrot.
17:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e4b20f960b
17:02 moritz diakopter: it doesn't
17:03 moritz diakopter: but I don't patch fudge. I've tried a few times, and it's still opaque to me how the code works
17:03 dalek nqp: 7121946 | (Pawel Murias)++ | t/qregex/rx_metachars:
17:03 dalek nqp: Fix test description.
17:03 dalek nqp: review: https://github.com/perl6/nqp/commit/7121946dd3
17:03 diakopter moritz: oh, I thought you maintained it :)
17:03 diakopter Mr Test Suite
17:03 TimToady pmurias++
17:04 moritz diakopter: but it's not a test :-)
17:04 jnthn pmurias: oh, heh!!
17:04 jnthn I missed that too
17:04 TimToady Lesson: don't put comments
17:04 diakopter self-documenting code is better
17:05 diakopter attempted redundancy just breeds inconsistencies
17:05 TimToady you can say that again
17:05 TimToady or maybe you can't
17:11 agre joined #perl6
17:15 panchiniak joined #perl6
17:24 kaare_ joined #perl6
17:25 dalek std: 7c17586 | larry++ | STD.pm6:
17:25 dalek std: Don't look for -> during interpolation, masak++
17:25 dalek std: review: https://github.com/perl6/std/commit/7c1758644c
17:29 zwut00 joined #perl6
17:47 berekuk joined #perl6
17:53 moritz mlenz@mlenz-workstation:~/p6/rakudo$ ./perl6 -Ilib  --doc lib/Test.pm
17:53 moritz ===SORRY!===
17:53 moritz Odd number of elements found where hash expected
17:53 moritz is that due to local patches, or can somebody else reproduce that?
18:02 jnthn moritz: Locally, both of Parrot and JVM.
18:04 panchiniak left #perl6
18:06 skids std: my sub a ($a where { $_ == 1 } --> Str) { 1; }; a(1)
18:06 camelia std 7c17586: OUTPUT«Potential difficulties:â�¤  $a is declared but not used at /tmp/vfBBQqkCT3 line 1:â�¤------> [32mmy sub a ([33mâ��[31m$a where { $_ == 1 } --> Str) { 1; }; a([0mâ�¤ok 00:00 48mâ�¤Â»
18:06 skids std: my sub a ($a where { $_ == 1 } --> Str) { $a; }; a(1)
18:06 camelia std 7c17586: OUTPUT«ok 00:00 48m␤»
18:07 skids r: my sub a ($a where { $_ == 1 } --> Str) { $a; }; a(1)
18:07 camelia rakudo e4b20f: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/slNNQ1gJzvâ�¤Missing blockâ�¤at /tmp/slNNQ1gJzv:1â�¤------> [32mmy sub a ($a where { $_ == 1 } --> Str[33mâ��[31m) { $a; }; a(1)[0mâ�¤    expecting any of:â�¤        postfixâ�¤        statement endâ�¤        statement m…
18:07 skids r: my sub a ($a where { $_ == 1 }, --> Str) { $a; }; a(1)
18:07 camelia rakudo e4b20f: OUTPUT«Type check failed for return value; expected 'Str' but got 'Int'␤  in sub a at /tmp/hliU7pYUJN:1␤  in block  at /tmp/hliU7pYUJN:1␤␤»
18:08 TimToady eep, shouldn't need that comma
18:08 jnthn Wonder whe we do...
18:08 TimToady std probably thinks it's illegal, in fact
18:09 TimToady std: my sub a ($a where { $_ == 1 }, --> Str) { $a; }; a(1)
18:09 camelia std 7c17586: OUTPUT«ok 00:00 48m␤»
18:09 TimToady well, maybe not
18:09 donaldh is it okay to bump up the timeouts in the IO-Socket-INET tests for all, or should I special case larger timeouts for JVM ?
18:09 jnthn TimToady: It's same reason that method foo(Blah $x:) { } parses.
18:10 dalek rakudo/nom: 5becd4f | (Dagur Valberg Johannsson)++ | src/core/Buf.pm:
18:10 dalek rakudo/nom: Made Buf.subbuf act more like Str.substr
18:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5becd4f8b4
18:10 dalek rakudo/nom: a2a06e4 | moritz++ | src/core/Buf.pm:
18:10 dalek rakudo/nom: Merge branch 'Buf-subbuf' of https://github.com/dagurval/rakudo into nom
18:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a2a06e4545
18:12 donaldh hallelujah - t/spec/S32-io/IO-Socket-INET.t ........... ok
18:13 jnthn .oO( It's raining net... )
18:13 jnthn donaldh++
18:13 donaldh just need to regression test on parrot and it should be ready.
18:13 jnthn donaldh: It's probably OK to bump them for all...
18:13 donaldh *just*
18:13 jnthn TimToady: I don't immediatley see why it won't parse with the comma...
18:13 donaldh jnthn: thx, that's simpler than parameterising the shell scripts.
18:16 * lizmat is back and read the backlog
18:16 lizmat jnthn: didn't know about the test failures
18:17 lizmat TimToady: loud and clear about .WHICH
18:17 jnthn lizmat: OK, lemme know if you don't get 'em, in which case they'd be Windows specific...
18:18 lizmat moritz: the problem with --doc lib/Test.pm is caused by bag()
18:19 lizmat r: bag <D X L>
18:19 camelia rakudo e4b20f:  ( no output )
18:19 lizmat hmmm… maybe not ?
18:19 lizmat oops, no, it is caused by:
18:19 lizmat r: my %h = bag()
18:19 camelia rakudo e4b20f: OUTPUT«Odd number of elements found where hash expected␤  in method STORE at src/gen/CORE.setting:8372␤  in block  at /tmp/3xgCyH5ZZ7:1␤␤»
18:19 lizmat r: my %h := bag()   # works
18:19 camelia rakudo e4b20f:  ( no output )
18:20 lizmat because of the non-flattening of bags, my %h = bag() is wrong, because it will not flatten into the hash, therefore is only one value, therefore fails
18:20 jnthn TimToady: oh...maybe I do...
18:21 jnthn TimToady: We parsed the post_constraint after where with chaining prec, not item assignment...seeing if fixing that helps :)
18:22 panchiniak joined #perl6
18:22 jnap joined #perl6
18:22 dalek rakudo/nom: b9762d7 | (Elizabeth Mattijsen)++ | lib/Pod/To/Text.pm:
18:22 dalek rakudo/nom: Fix to handle changed behaviour of bag()
18:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b9762d70c5
18:23 lizmat moritz: the problem you saw, should be fixed now
18:27 TimToady jnthn: sounds to more like --> is missing as a terminator
18:27 TimToady *to me
18:27 dalek evalbot: fc2b25b | thundergnat++ | lib/EvalbotExecuter.pm:
18:27 dalek evalbot: Modify evalbot to accept hex gist id numbers rather than decimal.
18:27 dalek evalbot:
18:27 dalek evalbot: Apparently Github has begun to assign hexadecimal gist ids. They used to be decimal.
18:27 dalek evalbot: review: https://github.com/perl6/evalbot/commit/fc2b25b9d9
18:27 TimToady oh wait, confusing with ==>
18:27 TimToady nm
18:28 TimToady oh, --> is a terminator in STD
18:28 jnthn TimToady: Well, the things I just tweaked in the grammar didn't help, though I guess they are needed anyway... :)
18:28 BabsSeed Hi
18:28 TimToady o/
18:28 jnthn Oddly, it claims it parse-failed after the --> Str
18:29 BabsSeed \o
18:29 TimToady well, -- can be infix followed by prefix
18:29 jnthn TimToady: ooh, yes, mebbe we need the terminator :)
18:29 TimToady or - followed by ->
18:29 jnthn TimToady: lemme try
18:30 SamuraiJack__ joined #perl6
18:31 jnthn Yeah, I thought that's what might be going on and why I suspect the prec correction may do it
18:31 jnthn But I guess istem assignment will parse a -
18:31 jnthn whoa, I can't type...
18:31 TimToady butt wee gnu that all ready
18:32 lizmat cloud?
18:32 TimToady yes, cloud
18:32 jnthn eww...butt wee
18:33 dagurval moritz: thanks for doing the merge!
18:33 dagurval moritz++
18:37 lizmat jnthn: seeing errors as well
18:38 jnthn TimToady: It was the terminator
18:38 masak BabsSeed: hi
18:39 TimToady Back I'll be!  --Yodderminator
18:40 masak "La vista, baby, hasta."
18:47 agre_ joined #perl6
18:56 dalek roast: 1fc796c | (Elizabeth Mattijsen)++ | S0 (2 files):
18:56 dalek roast: Temporary fudge for Set tests, while refactoring work continures
18:56 dalek roast: review: https://github.com/perl6/roast/commit/1fc796ce3e
18:57 lizmat I so love the view of TODO's passing, alas not right now  :-(
18:57 FROGGS :o(
18:59 kivutar joined #perl6
19:01 moritz speaking of passing TODOs
19:01 moritz is there a reason not to unfudge S32-io/other.t for rakudo?
19:02 lizmat unfudge++
19:03 dagurval r: my Int $a = 1 | 2 # bug or LTA error?
19:03 camelia rakudo e4b20f: OUTPUT«Type check failed in assignment to '$a'; expected 'Int' but got 'Int'␤  in sub thread_junction at src/gen/CORE.setting:2902␤  in method AUTOTHREAD at src/gen/CORE.setting:2930␤  in sub AUTOTHREAD at src/gen/CORE.setting:2964␤  in block  at /tmp/kYQivCMVhd:1␤␤»…
19:03 lizmat *and* ?
19:05 colomon LTA error
19:05 TimToady LTA anyway
19:05 TimToady you'd have to say my Junction $a to get the other to work
19:05 TimToady this is construed as a feature
19:06 dalek rakudo/nom: b03eced | (Elizabeth Mattijsen)++ | src/core/stubs.pm:
19:06 dalek rakudo/nom: Remove superfluous stub (already stubbed in core_prologue)
19:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b03eced72b
19:08 pecastro joined #perl6
19:15 kbaker joined #perl6
19:16 jnthn I'm guessing the exception type for that error somewhere has an Any where it wants a Mu...
19:17 Lorn joined #perl6
19:21 gabriel joined #perl6
19:22 simcop2387 joined #perl6
19:23 sunnavy joined #perl6
19:23 abnorman joined #perl6
19:24 geekosaur joined #perl6
19:32 btyler joined #perl6
19:34 lizmat r: role A { has $!a }; class B does A { method a { $!a } }  #rakudobug, NYI or misunderstanding of S14:100 ?
19:34 synopsebot Link: http://perlcabal.org/syn/S14.html#line_100
19:34 camelia rakudo b03ece: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/LX2j4tHbnLâ�¤Attribute $!a not declared in class Bâ�¤at /tmp/LX2j4tHbnL:1â�¤------> [32ms $!a }; class B does A { method a { $!a[33mâ��[31m } }  #rakudobug, NYI or misunderstandin[0mâ�¤Â»
19:37 TimToady r: role A { has $!a }; class B does A { method b { $!a } }
19:37 camelia rakudo b03ece: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/nZnIhREsbs�Attribute $!a not declared in class B�at /tmp/nZnIhREsbs:1�------> [32ms $!a }; class B does A { method b { $!a[33m�[31m } }[0m�»
19:38 colomon n: role A { has $!a }; class B does A { method b { $!a } }
19:38 camelia niecza v24-95-ga6d4c5f:  ( no output )
19:40 TimToady r: role A { has $.a }; class B does A { method b { $!a } }
19:40 camelia rakudo b03ece: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/8AfaCkCk52�Attribute $!a not declared in class B�at /tmp/8AfaCkCk52:1�------> [32ms $.a }; class B does A { method b { $!a[33m�[31m } }[0m�»
19:42 TimToady well, in any case, a bug according to S14:100
19:42 synopsebot Link: http://perlcabal.org/syn/S14.html#line_100
19:44 jnthn TimToady: We're doing it that way around, so composing two roles that happen to have a private attribute of the same name will cause a collision?
19:45 * jnthn can call it both ways and kinda allows neither at the moment. :)
19:45 jnthn So I can fix it in either direction without breaking previously working code :)
19:45 TimToady what private attribute a role declares is part of its public interface, as far as the class is concerned
19:46 jnthn OK
19:46 jnthn The main challenge implementation wise is that in:
19:47 jnthn role R { has $!a; }; class Foo does R { method m() { $!a } }
19:47 jnthn Today we don't incorporate the role until the closing curly of the class
19:47 jnthn e.g. composition time
19:47 jnthn Which is how it has to be for a long list of reasons :)
19:47 jnthn And if it's a parametric role we don't actually pick the variant until then either
19:47 TimToady so I guess we'd have to defer complaining about bogus attributes till then
19:47 jnthn Which leads me to wonder about stuff like:
19:48 jnthn role R { has $!a; }; class Foo { method m() { $!a }; does R; } # OK, or must be an error?
19:48 jnthn Yes, I'm fine with that, just want to check out the corner cases :)
19:48 TimToady if it's checked at compose time, should be OK
19:48 jnthn We normally complain about unused vars at the point of use; we'll just need to treat attributes a bit differently.
19:49 TimToady thing is, $!a is scoped to the class, and we're kinda treating it lexically at the moment
19:49 jnthn Right.
19:49 TimToady it sounds saner, if a bit of a bother :)
19:49 * TimToady is starting to sound English...
19:50 jnthn Well, if my example above is allowed, it's not so bad :)
19:50 jnthn Though we probably wanna keep the cursors around.
19:50 jnthn So we can emit nice undeclared attributes errors.
19:50 TimToady right, but we do that trick other places too :)
19:51 TimToady in that sense they're kinda like continuations
19:51 jnthn std: role Foo { has $!a }; class C does Foo { method m() { $!a } } # curious
19:51 camelia std 7c17586: OUTPUT«ok 00:00 44m␤»
19:51 jnthn std: role Foo { has $!a }; class C does Foo { method m() { $!x } } # curious
19:51 camelia std 7c17586: OUTPUT«ok 00:00 44m␤»
19:51 jnthn OK, STD simply don't check 'em :)
19:51 TimToady nope
19:51 jnthn (which makes sense given it's a MOP question...)
19:51 TimToady std: $!foo
19:51 camelia std 7c17586: OUTPUT«[31m===[0mSORRY![31m===[0m�Variable $!foo used where no 'self' is available at /tmp/ki_L1YAKD3 line 1:�------> [32m<BOL>[33m�[31m$!foo[0m�Check failed�FAILED 00:00 41m�»
19:51 jnthn r: $!foo # think we do that one
19:51 TimToady well, it wants that much anyway...
19:51 camelia rakudo b03ece: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/vp8MIWhgBU�Variable $!foo used where no 'self' is available�at /tmp/vp8MIWhgBU:1�------> [32m$!foo[33m�[31m # think we do that one[0m�»
19:51 moritz std: class A { method m() { $!foo } }
19:51 camelia std 7c17586: OUTPUT«ok 00:00 44m␤»
19:52 jnthn OK, I'll put it on my todo list. :)
19:52 TimToady that's like, really short, right?
19:52 TimToady when measured in miles, I mean...
19:52 jnthn Especially when measured in Swedish miles...
19:53 TimToady are those anything like Swedish coffee?
19:53 * TimToady always wondered which mountains in Sweden the "mountain grown" Swedish coffee came from
19:54 lizmat meanwhile, I'll use the old nqp::getattr(self, Bag, '%!elems') trick to get things working now
19:54 xenoterracide joined #perl6
19:54 jnthn Well, if Swedish coffee is longer than everybody elses... :)
19:55 jnthn lizmat: aye, that works as a workaround...
20:02 arlinius joined #perl6
20:02 abnorman joined #perl6
20:02 zwut00 left #perl6
20:08 lowpro30 joined #perl6
20:09 ajr joined #perl6
20:11 PacoLinux joined #perl6
20:20 panchiniak joined #perl6
20:32 abnorman joined #perl6
20:33 nebuchadnezzar joined #perl6
20:50 pmurias joined #perl6
20:51 lizmat r: my $a="a"; say "$a(foo)"  # is it intentional that scalar interpolation also eats the () and executes what's inbetween ?
20:51 camelia rakudo b03ece: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/pgvpwnUfg6â�¤Undeclared routine:â�¤    foo used at line 1â�¤â�¤Â»
20:52 lizmat would have expected "a(foo)"
20:53 masak yes. it is intentional.
20:53 PerlJam lizmat: yes, it's intentional.
20:54 * lizmat learned something again today
20:54 masak the general guideline is "be very careful about things that might be taken to be postfixes after interpolated variables".
20:55 masak the one I like the least is: "<html>$stuff</html>"
20:55 masak it's subtle because it looks so right :)
20:56 PerlJam masak: {} are your friends
20:56 PerlJam :)
20:56 * lizmat wonders why we interpolate scalars at all, "{$a}" is a bit more typing, but so much more clear
20:56 lizmat TIMTOWTDI I guess
20:57 masak PerlJam: indeed.
20:57 masak I will probably land on a more "foo{$bar}baz"-based style with time.
20:57 lizmat meanwhile, after refactoring with roles:
20:57 lizmat $ perl6 -e 'bag( <a b b c c c> ).WHICH.say'
20:57 lizmat Bag|Str|a(1) Str|b(2) Str|c(3)
20:57 PerlJam lizmat: yeah, I've almost decided to always use {}  (almost()
20:58 PerlJam s:2nd/'('//
21:00 dwarring joined #perl6
21:08 donaldh joined #perl6
21:17 dayangkun joined #perl6
21:17 lowpro30_ joined #perl6
21:18 dalek perl6-roast-data: 6d17ca9 | coke++ | / (5 files):
21:18 dalek perl6-roast-data: today (automated commit)
21:18 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/6d17ca9fa5
21:22 lizmat JVM ar 98.6%
21:22 [Coke] lizmat: rakudo.jvm is failing a lot of those S03-operators/set tests.
21:22 [Coke] (those are all new failures from yesterday)
21:22 lizmat I fudged a lot of them earlier tonight
21:22 lizmat about 2.5 hours ago, did the JVM run see those ?
21:23 [Coke] ... oh, so did rakudo.parrot, nevermind, whoops
21:23 [Coke] so, no worries.
21:23 jnthn aww, below 99%?
21:23 * jnthn will have to look into why
21:23 [Coke] jnthn: has been for some time.
21:23 lizmat mostly my work, I think  :-)
21:23 [Coke] since before you started working on presentations for yapc::eu, iirc.
21:23 jnthn [Coke]: Aye, I've been too busy to really follow all the things I "should" be...
21:24 [Coke] you might be slightly overextended. :)
21:24 jnthn Well, didn't expect to teach every day this week until last Friday :)
21:24 [Coke] I will work on geting rakudo.jvm testing clean this weekend.
21:24 lizmat [Coke]++
21:25 [Coke] ... probably by fudging first, and then we can ack for "rakudo.jvm" in the suite to see what's what. I can also open tickets if that helps.
21:25 [Coke] also really looking forward to adding 2 more rakudos to the testing pile.
21:25 donaldh joined #perl6
21:26 jnthn [Coke]: Not asking for it yet, but how much effort would it be to do daily NQP runs on the different backends also?
21:26 lizmat Set refactor using roles now compiles:
21:26 lizmat $ perl6 -e 'set( <a b b c c c> ).WHICH.say'
21:26 lizmat Set|Str|a Str|b Str|c
21:27 lizmat $ perl6 -e 'KeySet.new( <a b b c c c> ).WHICH.say'
21:27 lizmat KeySet|6523836817389416631
21:27 [Coke] jnthn: I just need one of these: https://github.com/coke/perl​6-roast-data/tree/master/bin
21:27 jnthn r: set(<up us the bomb>).WHICH.say
21:27 camelia rakudo b03ece: OUTPUT«Set|-799072600␤»
21:27 [Coke] so about ... 5m ?
21:28 FROGGS five meters?
21:28 jnthn FROGGS: milipedes
21:28 [Coke] pretty much the second there's a rakudo build, I can add it.
21:28 jnthn [Coke]: Nice :)
21:28 [Coke] (even if it fails most things)
21:28 lizmat jnthn: not yet committed
21:28 * [Coke] commutes.
21:29 jnthn lizmat: aye, just comparing...and memeing :)
21:29 lizmat $ perl6 -e 'set( <a> )<a>.say'
21:29 lizmat Segmentation fault: 11
21:29 lizmat :-(
21:30 jnthn :(
21:30 donaldh Is it possible to fudge tests in nqp? The chdir tests need to be fudged on JVM.
21:30 jnthn donaldh: There's nothing for that, afaik...short of a BEGIN block hakc I guess
21:31 lizmat jnthn: some confusion about attributes living in roles, I thnk
21:31 FROGGS donaldh: see test t/nqp/19
21:32 FROGGS https://github.com/perl6/nqp/blob​/master/t/nqp/19-file-ops.t#L111 # poor mans fudge
21:33 donaldh thx FROGGS, its used for parrot. I'll use same.
21:33 FROGGS cool
21:36 lizmat jnthn: it segfaults on:
21:36 lizmat method at_key($k --> Int) {
21:36 lizmat my $elems := nqp::getattr(self, Bag, '%!elems');
21:37 lizmat my class Bag does Baggy {
21:37 lizmat jnthn: changing the gettattr to Baggy, gives "Can not get attribute '%!elems' declared in class 'Baggy' with this object"
21:37 lizmat so I guess it *has* to be Bag
21:38 lizmat if Baggy does Associative, that should be enough for Bag, right?
21:43 jnthn lizmat: Yes, has to be the class the attr was composed into.
21:43 jnthn And yes, doing is transitive
21:44 lizmat guess it's not workng right yet
21:44 lizmat :-(
21:45 agre joined #perl6
21:46 lizmat $ perl6 -e 'bag( <a b b c c c> )<b>.say'
21:46 lizmat Segmentation fault: 11
21:48 lizmat $ git diff | wc -l
21:48 lizmat 812
21:48 lizmat it has become a rather large diff
21:48 lizmat jnthn: suggestions on attacking the segfault ?
21:49 jnthn gdb? :)
21:50 dalek roast: 7cf469f | (Donald Hunter)++ | S32-io/IO-Socket-INET. (2 files):
21:50 dalek roast: Enable INET tests on Mac OS X. Extend timeouts for JVM.
21:50 dalek roast: review: https://github.com/perl6/roast/commit/7cf469f348
21:51 lizmat https://gist.github.com/lizmat/6470437   the diff of my Set/Bag refactor
21:52 pmurias jnthn: did anything in nqp change recently in regards how the setting is handled?
21:52 lizmat jnthn: > set()<a>
21:52 lizmat Program received signal EXC_BAD_ACCESS, Could not access memory.
21:52 lizmat Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000008
21:52 lizmat 0x00000001017b95ca in exists_key ()
21:53 donaldh With chdir tests fudged, jvm nqp is failing 8 of the 19-file-ops tests.
21:53 jnthn pmurias: Recently? I don't think so...
21:54 pmurias jnthn: a dependency on the serialization context of parrots QRegex and setting is getting into my nqpmo :(
21:54 jnthn pmurias: Last time that was likely to have changed was back during the JVM work, but I think that was only abstracting stuff behind the forceouterctx...
21:54 jnthn pmurias: Oh, I hate it when that happens...it's a pain to debug...
21:54 jnthn pmurias: Often it's missing sc write barrier disabling...
21:54 jnthn pmurias: Or maybe mishandling of the compiling SC stack
21:55 jnthn pmurias: I wish I could often you some insightful debugging wisdom, but sadly it's mostly a case of "ARRRGHHH" and then some hunting :(
21:55 jnthn lizmat: Well, that's a null pointer access, or thereabouts...
21:55 * donaldh will look at the failing nqp tests on jvm another day, if someone else doesn't get there first.
21:56 lizmat fwiw, it generates *exactly* the same error in different runs
21:58 pmurias jnthn: I have mostly seen it when I accidently load the wrong QRegex or something like that :(
22:00 dalek nqp/donaldh-sockets: 309b39a | (Donald Hunter)++ | src/vm/jvm/runtime/org/perl6/nqp/io/ (3 files):
22:00 dalek nqp/donaldh-sockets: donaldh first hack on sockets for JVM.
22:00 dalek nqp/donaldh-sockets: review: https://github.com/perl6/nqp/commit/309b39a7e6
22:00 dalek nqp/donaldh-sockets: 991581a | (Donald Hunter)++ | src/vm/jvm/ (3 files):
22:00 dalek nqp/donaldh-sockets: Initial ops for socket IO using NIO.
22:00 dalek nqp/donaldh-sockets: review: https://github.com/perl6/nqp/commit/991581ade9
22:00 dalek nqp/donaldh-sockets: 8d8b466 | (Donald Hunter)++ | src/vm/jvm/ (6 files):
22:00 dalek nqp/donaldh-sockets: Added server socket and process pipe to IO.
22:00 dalek nqp/donaldh-sockets: review: https://github.com/perl6/nqp/commit/8d8b466dc6
22:00 dalek nqp/donaldh-sockets: d1a9af0 | (Donald Hunter)++ | / (4 files):
22:00 dalek nqp/donaldh-sockets: Add nqp::openpipe tests (JVM only)
22:00 dalek nqp/donaldh-sockets: review: https://github.com/perl6/nqp/commit/d1a9af0ac1
22:00 dalek nqp/donaldh-sockets: a8c4ac1 | (Donald Hunter)++ | src/vm/jvm/ (5 files):
22:00 dalek nqp/donaldh-sockets: Add nqp::setinputlinesep for JVM.
22:00 dalek nqp/donaldh-sockets: review: https://github.com/perl6/nqp/commit/a8c4ac1376
22:00 dalek nqp/donaldh-sockets: 8b1a699 | (Donald Hunter)++ | t/nqp/19-file-ops.t:
22:00 dalek nqp/donaldh-sockets: Fudged the chdir tests on jvm.
22:00 dalek nqp/donaldh-sockets: review: https://github.com/perl6/nqp/commit/8b1a699626
22:02 dalek nqp: 309b39a | (Donald Hunter)++ | src/vm/jvm/runtime/org/perl6/nqp/io/ (3 files):
22:02 dalek nqp: donaldh first hack on sockets for JVM.
22:02 dalek nqp: review: https://github.com/perl6/nqp/commit/309b39a7e6
22:02 dalek nqp: 991581a | (Donald Hunter)++ | src/vm/jvm/ (3 files):
22:02 dalek nqp: Initial ops for socket IO using NIO.
22:02 dalek nqp: review: https://github.com/perl6/nqp/commit/991581ade9
22:02 dalek nqp: 8d8b466 | (Donald Hunter)++ | src/vm/jvm/ (6 files):
22:02 dalek nqp: Added server socket and process pipe to IO.
22:02 dalek nqp: review: https://github.com/perl6/nqp/commit/8d8b466dc6
22:02 dalek nqp: d1a9af0 | (Donald Hunter)++ | / (4 files):
22:02 dalek nqp: Add nqp::openpipe tests (JVM only)
22:02 dalek nqp: review: https://github.com/perl6/nqp/commit/d1a9af0ac1
22:02 dalek nqp: a8c4ac1 | (Donald Hunter)++ | src/vm/jvm/ (5 files):
22:02 dalek nqp: Add nqp::setinputlinesep for JVM.
22:02 dalek nqp: review: https://github.com/perl6/nqp/commit/a8c4ac1376
22:02 dalek nqp: 8b1a699 | (Donald Hunter)++ | t/nqp/19-file-ops.t:
22:02 dalek nqp: Fudged the chdir tests on jvm.
22:02 dalek nqp: review: https://github.com/perl6/nqp/commit/8b1a699626
22:02 dalek nqp: 92cda32 | (Donald Hunter)++ | / (12 files):
22:02 dalek nqp: Merge pull request #121 from perl6/donaldh-sockets
22:02 dalek nqp:
22:02 synopsebot Link: https://rt.perl.org/rt3//Pub​lic/Bug/Display.html?id=121
22:02 dalek nqp: Implement sync sockets, pipes on JVM using NIO.
22:02 dalek nqp: review: https://github.com/perl6/nqp/commit/92cda32879
22:02 colomon woah
22:02 tadzik \o/
22:06 jnthn donaldh++ :D#
22:07 donaldh jnthn: your initial work on NIO was nice and easy to extend.
22:07 * donaldh is looking forward to async NIO
22:07 pmurias "ARRRGHHH", more stuff to implement in nqp-js ;)
22:08 * donaldh thinks there is now a backends arms race
22:09 masak arms races are fine, as long as people are civil about it. :)
22:09 masak 'night, #perl6
22:11 lizmat jnthn: the segfault happens here: my $elems := nqp::getattr(self, Bag, '%!elems');
22:12 lizmat I assume nqp::getattr is doing an exists_key, and that segfaults
22:12 jnthn lizmat: What if you run bt in gdb?
22:13 lizmat bt?
22:13 jnthn after the segfault, type "bt" and hit enter
22:13 lizmat ah, ok
22:13 * lizmat needs to rebuild  :-(
22:13 pmurias jnthn: using | was causing the problem
22:13 jnthn pmurias: NFA pre-computation?
22:13 jnthn Or caching maybe...
22:15 pmurias something very crazy for sure as I was using it in the compiler to quote strings
22:21 lizmat jnthn: added backtrace to https://gist.github.com/lizmat/6470437
22:22 jnthn lizmat: No, it's outside of the attribute lookup
22:23 jnthn What do you do to elems?
22:23 jnthn Oh, better question
22:23 jnthn What is %!elems type wise?
22:23 lizmat has %!elems
22:23 lizmat nothing special
22:23 jnthn Right, but it's a Perl 6 hash...
22:23 lizmat my role Baggy does Associative {
22:23 lizmat has %!elems; # should be UInt
22:24 jnthn And then you do:
22:24 jnthn nqp::existskey($elems, nqp::unbox_s($key))
22:24 jnthn But that's meant to be used on a VM-level hash...
22:24 jnthn It should *not* SEGV and I dunno why it does...
22:24 jnthn JVM mighta given you a better clue...
22:24 lizmat my $elems := nqp::getattr(self, Bag, '%!elems');
22:25 jnthn Right, that'd be a Perl 6 hash.
22:25 jnthn Not an nqp::hash() which a Perl 6 hash has it's its $!storage
22:25 lizmat oh? getattr gives a Perl6 hash?
22:25 jnthn No, but a %!elems attribute is initialized to a Perl 6 hash
22:25 jnthn nqp::getattr give syou whatever is in the slot
22:25 jnthn *gives
22:26 pmurias \h and \v combined give \s?
22:26 lizmat ah, so I should just use .exists on it?
22:26 jnthn yeah
22:26 jnthn I'm skeptical about your BUILD submethod, btw
22:27 lizmat open to suggestions
22:27 bbkr_ joined #perl6
22:27 jnthn oh, no...
22:27 lizmat what's wrong with it?
22:28 jnthn Well, I expected it to be the thing that sets the attr is all...
22:28 jnthn yeah, I think it isn't quite right...
22:28 jnthn new does self.bless(:elems(%e));
22:28 jnthn But BUILD doesn't store to %!elems...
22:29 lizmat should it?  isnt that what the BUILD in Mu does ?
22:30 lizmat something like nqp::getattr(self, Bag, '%!elems') := %elems ?
22:31 jnthn No, if you write a submethod BUILD in a class you say, "I will be responsible for setting the attributes"
22:32 jnthn nqp::bindattr(self, Bag, '%!elems', %elems);
22:33 lizmat building...
22:35 dalek rakudo-js: 63f071d | (Pawel Murias)++ | bin/process-qregex-tests:
22:35 dalek rakudo-js: Improve the process-qregex-tests script to handle rx_metachars.t.
22:35 dalek rakudo-js: review: https://github.com/pmurias/​rakudo-js/commit/63f071d051
22:35 dalek rakudo-js: 563c908 | (Pawel Murias)++ | src/QAST/Compiler/JavaScript.nqp:
22:35 dalek rakudo-js: Fix handling of rxsubtype cclass.
22:35 dalek rakudo-js: review: https://github.com/pmurias/​rakudo-js/commit/563c908f23
22:35 dalek rakudo-js: 2803537 | (Pawel Murias)++ | / (2 files):
22:35 dalek rakudo-js: Fix handling of \n in regexes, implement conjseq rxsubtype, implement bol,eol,rwb,lwb anchors
22:35 dalek rakudo-js: review: https://github.com/pmurias/​rakudo-js/commit/2803537137
22:35 dalek rakudo-js: 878ab69 | (Pawel Murias)++ | src/QAST/Compiler/JavaScript.nqp:
22:35 dalek rakudo-js: Fix quoting of strings.
22:35 dalek rakudo-js: review: https://github.com/pmurias/​rakudo-js/commit/878ab69c58
22:35 dalek rakudo-js: 5058344 | (Pawel Murias)++ | / (4 files):
22:35 dalek rakudo-js: Implement EDGE_CHARLIST in runNFA.
22:35 dalek rakudo-js: review: https://github.com/pmurias/​rakudo-js/commit/5058344b7c
22:37 dalek rakudo-js: a55eb58 | (Pawel Murias)++ | runtime.js:
22:37 dalek rakudo-js: Fix bug in runNFA.
22:37 dalek rakudo-js: review: https://github.com/pmurias/​rakudo-js/commit/a55eb58f8a
22:37 dalek rakudo-js: 603db43 | (Pawel Murias)++ | / (3 files):
22:37 dalek rakudo-js: Pass rx_metachars.
22:37 dalek rakudo-js:
22:37 dalek rakudo-js: Do not use | in the regexes in the backend as it's causing wierd serialization issues.
22:37 dalek rakudo-js: Make \s accept all horizontal and vertical whitespace.
22:37 dalek rakudo-js: review: https://github.com/pmurias/​rakudo-js/commit/603db43b0c
22:38 lizmat jnthn++, that seems to do the trick!
22:39 Vlavv joined #perl6
22:44 lizmat fixing all cases and rebuilding
22:48 donaldh IO::Socket on JVM - https://github.com/rakudo/rakudo/pull/206
22:50 timotimo yaaaaaaay
22:51 donaldh goodnight #perl6
22:51 tadzik donaldh++
22:54 jnthn 'night, #perl6
22:58 Bzek joined #perl6
22:59 lizmat gnight jnthn!
23:25 panchiniak left #perl6
23:27 dalek rakudo/nom: b55712f | (Elizabeth Mattijsen)++ | / (9 files):
23:27 dalek rakudo/nom: Refactor of Set/Bag using roles, jnthn++ for gdb support
23:27 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b55712f675
23:28 lizmat finally clean, *phew*
23:28 timotimo cool :)
23:31 lizmat unfudging tests now, and then to bed  :-)
23:34 timotimo cool, the jvm part got 120 new passes last daily
23:35 lizmat we aim to pass  :-)
23:35 geekosaur joined #perl6
23:35 timotimo :3
23:37 sjohnson :3
23:38 dalek roast: bb23f9a | (Elizabeth Mattijsen)++ | S0 (2 files):
23:38 dalek roast: Unfudge all passing tests after the Set/Bag refactor
23:38 dalek roast: review: https://github.com/perl6/roast/commit/bb23f9adf0
23:40 timotimo wow
23:43 timotimo i can't actually find a mention of infix:<~> being specced as list associativity
23:46 dalek roast: ccfc662 | (Elizabeth Mattijsen)++ | S0 (2 files):
23:46 dalek roast: Turn lots of skipped tests into todo's (they don't bomb anymore)
23:46 dalek roast: review: https://github.com/perl6/roast/commit/ccfc662b58
23:47 lizmat sleep&
23:47 timotimo gnite!
23:49 jnap joined #perl6
23:54 skids joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo