»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:04 zwut00 left 00:10 pernatiy joined 00:12 Psyche^ joined 00:13 pernatiy left 00:14 pernatiy joined 00:15 Psyche^_ left 00:27 TimK1 joined 00:37 FROGGS left 00:45 btyler left 00:46 slavik joined 00:48 FROGGS joined
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␤␤»
..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…
Mouq (This *is* spec, it just seems weird) 00:58
01:00 FROGGS left 01:04 dayangkun left, FROGGS joined, dayangkun joined 01:07 pernatiy left 01:08 pernatiy joined 01:11 btyler joined 01:12 thou left 01:15 TimK1 left 01:20 btyler left 01:22 zakame left 01:23 btyler joined 01:38 FROGGS_ joined 01:41 FROGGS left 02:05 Mouq left 02:28 FROGGS_ left 02:39 Mouq joined 02:47 FROGGS joined 02:49 lelf` joined 02:51 lelf left 02:55 Mouq left 03:02 raiph joined 03:12 abnorman left
colomon not ok 130 - 21st is '2' 03:12
# got: 'Set<-1818665613094757869>'
# expected: '2'
sigh
03:13 abnorman joined 03:28 preflex left, preflex_ joined, ChanServ sets mode: +v preflex_, preflex_ is now known as preflex 03:38 ggoebel joined 03:39 FROGGS left 03:55 btyler left 04:05 FROGGS joined 04:06 btyler joined 04:16 SamuraiJack joined
dalek ast: 9f27c56 | (David Warring)++ | S29-conversions/ord_and_chr.t:
corrected and unfudged grapheme test
04:19
04:30 FROGGS left 04:37 daniel-s_ joined 04:41 daniel-s left 04:42 raiph left 04:44 FROGGS joined 04:51 FROGGS left 04:57 raiph joined 04:59 abnorman left 05:04 FROGGS joined 05:10 FROGGS left 05:15 panchiniak_ joined
dalek ast: 1d8f051 | (David Warring)++ | S32-str/sprintf.t:
fixed 'Inf' skip
05:16
05:16 hummeleBop joined 05:23 logie left 05:24 FROGGS joined 05:35 agre joined 05:48 domidumont joined 05:53 domidumont left 05:54 domidumont joined 06:01 cognominal left 06:11 FROGGS left 06:15 FROGGS joined 06:22 btyler left 06:25 FROGGS left 06:35 domidumont left 06:37 rindolf joined 06:40 FROGGS[mobile] joined 06:46 panchiniak_ left, panchiniak_ joined 06:48 FROGGS joined 06:50 domidumont joined 06:52 pecastro_ joined 06:54 denis_boyun joined 07:00 denisboyun joined, denis_boyun left
dalek : f8375e9 | (Tobias Leich)++ | / (2 files):
implement (un)pack directive "X"

To make this happen both functions do not modify the args they are working on. They just keep and move a position. This allows going back when hitting "X".
07:02
07:05 kaleem joined 07:07 Noon33 joined 07:09 zakharyas joined 07:10 dmol joined 07:14 agre left 07:28 iSlug joined 07:31 denisboyun left 07:32 raiph left, rindolf left 07:36 daxim joined
hoelzro tadzik: thanks! 07:40
I intend to do something similar post-workshop for Rakudo =)
07:41 dmol left 07:47 pernatiy_ joined 07:50 pernatiy left 07:54 xenoterracide_ left, xenoterracide joined 08:01 Noon33 left, iravan joined 08:03 fhelmberger joined 08:06 daxim left, daxim_ joined 08:12 FROGGS left 08:22 FROGGS joined
masak good antenoon, #perl6 08:29
jnthn o/ masak 08:31
08:33 lizmat_ joined
diakopter lizmat_: o/ 08:33
08:35 lizmat left
FROGGS hi everyone 08:35
08:38 agre joined
moritz hi 08:48
tadzik hoelzro: sounds awesome :) 08:52
08:52 locsmif left 08:55 donaldh joined 08:57 hummeleBop left, hummeleBop joined 09:02 rindolf joined 09:07 panchiniak_ left 09:12 rindolf left, rindolf joined
lizmat_ good *, #perl6! 09:29
09:29 lizmat_ is now known as lizmat
FROGGS hi lizmat 09:29
09:30 xinming left, rindolf left
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
09:30 rindolf joined
lizmat and jnthn: or would that mess up things considerably on a lower vm level ? 09:30
in other words: can objects provide their own .WHICH if necessary ? 09:31
09:31 xinming joined
moritz lizmat: yes, and they should, if they are considered value types 09:33
09:33 FROGGS[mobile] left 09:39 rindolf left 09:40 rindolf joined 09:49 iravan left 09:51 cognominal joined 09:57 dmol joined 10:00 dmol left 10:04 rindolf left 10:05 rindolf joined 10:07 jnap joined
lizmat $ perl6 -e 'set(set(),set()).say' 10:11
set(set())
moritz \o/ 10:12
lizmat Q: if I have a method WHICH in Set.pm, how can subclasses of Set use the "original" .WHICH ? 10:13
A: make WHICH a submethod ? 10:15
jnthn lizmat: Why'd you want subclasses not to inherit it, ooc? 10:18
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
Barbara would have a disappoint, no? :) 10:20
lizmat sorry, don't get the reference :-)
well, maybe KeySet/Set need to be moved around, that's quite possible
10:21 xinming left
jnthn lizmat: As in, Liskov :) 10:21
10:23 xinming joined, denis_boyun joined
lizmat I guess they need to be moved around then :-) 10:24
10:27 denis_boyun__ joined, rindolf left
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:28
10:29 denis_boyun left
moritz it's better than the other way round :-) 10:29
dalek kudo/nom: 7bd19cf | (Elizabeth Mattijsen)++ | src/core/KeyBag.pm:
There is no keybag() specced
moritz and iirc we do it all the time in p6
jnthn Aye, it's more that having a parent class act like a value tyep and a subclass not feels wrong 10:30
we dont' pretend EnumMap and List are value types.
lizmat so we let KeySet be a subclass of Set
jnthn Does inheritance make sense here?
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?
lizmat the rest is inherited
that's what I gathered from the discussion between masak and TimToady in the backlog
jnthn oh, when I scanned it I didn't immediately see that 10:32
10:33 xenoterracide left
jnthn and re-reading it it's still not entirely clear to me :) 10:33
dalek kudo/nom: 044bd5b | (Elizabeth Mattijsen)++ | src/core/KeySet.pm:
Need to override Set/KeySet
10:34
jnthn Anyway, can always make it a submethod for now but it feels weird
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
and rip out the extra code
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
lizmat well, that would always be an option
before I started this, KeySet was more or less a copy-paste from Set 10:40
and KeyBag was a copy/paste from Bag
colomon right
lizmat which meant a lot of code duplication
jnthn Using roles over inheritnace in CORE.setting provides a good, uh, role model for others. :)
colomon :p
there already is a Baggy role, we just don't do any useful factoring with ti. 10:41
*it
jnthn r: class Trousers is Baggy { }
camelia rakudo a426d5: ( no output )
jnthn :D
lizmat maybe we need a Setty role
jnthn
.oO( And a Getty role to go with it? )
10:42
lizmat please don't mention the unmentionable ;-)
colomon I certainly don't know of a good reason we have Baggy but not Setty
10:43 fridim_ left
colomon (it's spec, as I recall) 10:43
Though that suggests to me that this isn't just an implementation detail.
it's a spec issue: how do you declare an argument can be a Set or a KeySet? 10:44
for Bag or KeyBag, the answer is Baggy
for Set, it's … ? 10:45
lizmat there is no spec for Baggy or Setty, afaik
perl6:specs liz$ ack Baggy
perl6:specs liz$ ack Setty
FROGGS ack 10:46
10:48 kaleem left, woosley left 10:49 kaleem joined
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:50
lizmat ok, I will refactor Bag/Set to Baggy/Setty roles 10:55
after doing some errands
10:59 SamuraiJack left, SamuraiJack_ joined 11:04 pmurias joined
pmurias what does the string ab\x005ccd mean? 11:04
11:06 brrt joined
moritz nr: say "ab\x005ccd" 11:06
camelia rakudo a426d5, niecza v24-95-ga6d4c5f: OUTPUT«ab峍␤»
moritz nr: say "ab\x005ccd".chars
camelia rakudo a426d5, niecza v24-95-ga6d4c5f: OUTPUT«3␤»
moritz pmurias: seems it's the same as "ab\x{5CCD}"
.u 峍 11:07
yoleaux No characters found
pmurias hmm, it's seems to be converted to \ by nqp/t/qregex/01-qregex.t
moritz that one might well do something special with it 11:09
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)␤»
pmurias nr: say("\x{005c}")
camelia rakudo a426d5: OUTPUT«===SORRY!===␤Unrecognized backslash sequence: '\x'␤at /tmp/lNY_RwpkGC:1␤------> say("\⏏x{005c}")␤Confused␤at /tmp/lNY_RwpkGC:1␤------> say("\x{005⏏c}")␤ expecting any of:␤ whitespace␤Other potential …
..niecza v24-95-ga6d4c5f: OUTPUT«===SORRY!===␤␤Unrecognized backslash sequence: '\x' at /tmp/44nrprrwAZ line 1:␤------> say("\x⏏{005c}")␤␤Use of uninitialized value in string context␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1355 (warn @ 5) ␤…
pmurias is there a way to encode a character by hex in nqp? 11:11
moritz oh, I think it's \c[...] in Perl 6, it was \x{...} in p5 11:12
oh, \c for decimal, \x for hex 11:13
nr: say "\x[005c]"
camelia rakudo a426d5, niecza v24-95-ga6d4c5f: OUTPUT«\␤»
moritz nqp: say("\x[005c]")
camelia nqp: OUTPUT«\␤»
pmurias thanks 11:14
11:15 jnap left 11:21 benabik joined 11:28 kaleem left, kaleem joined 11:39 cogno joined 11:44 cogno left 11:45 spider-mario joined
timotimo the "perl6 is dead, long live perl5" talk just landed on youtube 11:53
tadzik is waiting for LT day 2, so he can see himself shouting 11:55
timotimo shout, shout, let it all out
these are the perls i can't do without~ 11:56
tadzik haha
I'm talking to you, haha
moritz timotimo: that talk didn't touch Perl 6 very much
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?
jnthn yes :)
tadzik haha 11:58
jnthn "Store your data in my butt!"
tadzik I made one of those a year back
timotimo your data is absolutely secure, because we store it in my butt
tadzik we had this Amber Gold company, which promised people a lot of money and then went donw
jnthn My butt can scale to all your needs
tadzik and the entire media was after it, basically repeating the message "people are naive" over and over
timotimo oh my
tadzik so I wrote a plugin to replace it all with Alpen Gold, a chocolate brand 11:59
made reading news so much better
jnthn haha
timotimo this "log how data is being touched" is kind of cute 12:00
should be pretty easy to do with perl6, too, right?
tadzik once again, chocolate fixes everything. Lessons learned, ms Troi
timotimo override hash, for example, and log all changes through the postcircumfixes?
tadzik with callers
aww yiss
FROGGS jnthn: as on your request: www.youtube.com/watch?v=fbGkxcY7YFU 12:01
:P
tadzik in the cloud! 12:02
12:03 skids left
tadzik aaaaand I need eyebleach 12:04
eyebleach.com/ NSFW
timotimo kidbleach.info/ - NNSFW 12:05
FROGGS *g* 12:06
timotimo FROGGS: is TIE something that could be done with v5 without you going absolutely insane? 12:08
FROGGS timotimo: no idea yet
dalek kudo-js: e6af0d6 | (Pawel Murias)++ | / (2 files):
Pass rx_charclass.

Implement enumcharlist and conj rxsubtypes.
timotimo pmurias: yay for sane regexes on javascript! ;)
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
FROGGS tadzik++
timotimo it's currently only nqp-js at the moment :(
tadzik doesn't matter, still amazing 12:10
actually, mario can wait for tomorrow. Today's the day to give rakudobrew more love
12:10 kivutar joined
colomon rakudobrew? 12:10
colomon goes to github...
pmurias timotimo: they are not entirely sane yet ;) , 3 qregex tests left 12:11
timotimo mario == playing mario music on your awesome piano?
tadzik timotimo: no, but that's a good idea too :)
timotimo :D
tadzik timotimo: I started writing games recently
timotimo oh, neato
tadzik mario is very far from done, but asteroids are neat and playable
pmurias in p6?
timotimo from my last stay at my parent's house i brought home an "antique" yamaha electronic keyboard
tadzik no, in C
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
timotimo: as far as I know, yamahas are practically indestructible
FROGGS tadzik: you used box2d?
tadzik mine is also yamaha
FROGGS: no, I'm writing everything myself
FROGGS k
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 :)
timotimo so i conclude: the rumors of perl6's death are vastly overstated ... or something
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
camelia rakudo 044bd5: OUTPUT«Set<-796884995>␤»
colomon r: my $s = set 2; say $s
camelia rakudo 044bd5: OUTPUT«set(2)␤»
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>␤»
colomon :(
tadzik hmm 12:18
or maybe rakudobrew should really be a plenv plugin
12:19 FROGGS left 12:21 benabik left
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?
timotimo long time ago
tadzik bah 12:24
12:25 FROGGS joined
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
tadzik I think I'll do just that 12:27
colomon this bug is quite purplexing 12:28
perplexing
pmurias why did they remove the messaging feature? random ui changes?
colomon Purple Xing
12:30 benabik joined
colomon add three lines of comments, code no longer compiles 12:30
well, no longer runs
no error message
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
that's a cool idea :)
timotimo tadzik: yamahas are especially not destructible by putting it into a corner and waiting 15 years 12:35
tadzik :)
timotimo i think the device itself is about 20 years old
tadzik which you can't really say about analog pianos
timotimo yeah 12:36
tadzik there's one in my family home, it's standing between a radiator and a fireplace
timotimo oh god
tadzik it's not the best place to put a piano in
timotimo not at all
my parents have one as well, which never got near enough play time sadly (i'm a bit to blame for that as well)
tadzik it's something that comes with time, I think 12:37
I was learning piano for 6 years when I was in primary/secondary school
after those 6 years, I was tired, didn't like it anymore and gave up on it
it's only now, what is it...
8 years later?
when I started appreciating it
timotimo i conclude you're at least 14 years old 12:38
tadzik unless I miscalculed something, yes :)
I started playing when I was 9 or 10 12:39
12:39 PacoLinux joined
tadzik so I did miscalcule something 12:39
14 + any(9,10) is not quite 22
12:41 rindolf joined
moritz and you are not quite in kansas :-) 12:41
tadzik I feel like I'm missing some reference :) 12:42
moritz wizard of oz
tadzik oh. I never actually read it, I think 12:43
moritz just watch the movie :-) 12:47
tadzik heh :)
I think I fell asleep last time I tried
but it was late, to my defense
12:47 FROGGS left
mathw o/ 12:49
tadzik \o
mathw, mathw 12:50
you have a t430, right?
mathw yup 12:51
12:51 denis_boyun__ left
tadzik do you have an idea where I could get a spare S key? 12:52
mathw umm
no
tadzik dang
mathw how did you manage to need a spare S key already/
tadzik it broke 12:53
the mechanism, probably
but it keeps "jumping off
"
12:53 cogno joined, jnap joined
moritz tadzik is good at breaking key(board)s, it seems :-) 12:53
tadzik apparently, yes :)
I'm apparently a hard-hitter 12:54
those thinkpad keyboards are hardly durable
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>
mathw hmm
that's not good :( sorry I can't help
I need my S key
camelia rakudo 044bd5: OUTPUT«123␤213␤231␤132␤312␤321␤»
..niecza v24-95-ga6d4c5f: OUTPUT«(timeout)»
tadzik heh :)
masak \o/
masak wonders what's up with Niecza
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
masak: timeout? hmm. That does look a bit wrong
masak mathw: yes, I'm pretty sure the correct answer is what Rakudo printed, not a timeout.
mathw :) 12:56
tadzik ahahaha. On ebay, a single key costs $10 12:58
mathw you would expect the control flow to be the same for both
12:58 pernatiy_ left 13:00 cogno left
mathw tadzik: hurrah for ebay 13:01
13:01 kbaker joined 13:02 hummeleBop1 joined 13:04 hummeleBop left 13:05 btyler joined
dalek kudo-js: 5677621 | (Pawel Murias)++ | / (3 files):
Pass rx_backtrack.t

Implement rxsubtype alt, nqp::nfarunalt.
13:07
13:07 ajr joined 13:08 ajr is now known as ajr_
masak plan for today: finish up some t3 after-work. start in on t4 reviews. 13:09
13:09 benabik left
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:10
13:12 lelf`` joined, btyler left 13:13 lelf` left 13:14 PacoLinux left 13:17 lowpro30 joined, ajr_ left 13:19 ajr joined, PacoLinux joined, ajr is now known as Guest90509, Guest90509 is now known as ajr_ 13:20 GlitchMr joined
masak std: my $n = 1; my $p = 2; say "$n->$p" 13:21
camelia std 27326bc: OUTPUT«===SORRY!===␤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:␤------> my $n = 1; my $p = 2; say "$n->⏏$p"␤Parse failed␤FAILED 00:0… 13:22
13:22 xinming left
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.
TimToady: so that '->' simply means "interpolation ends here".
std: my $n = 1; my $p = 2; say "$n\->$p" 13:23
camelia std 27326bc: OUTPUT«ok 00:00 43m␤»
masak workaround so far.
moritz std: my $n = 1; my $p = 2; say "{$n}->$p"
camelia std 27326bc: OUTPUT«ok 00:00 43m␤»
13:24 fhelmberger left, xinming joined
flussence +1 for not doing that 13:31
inside strings is the wrong place to be strict
tadzik mathw: ha, victory! imgur.com/MBne7UM 13:33
apparently the mechanism is intact, only the keycap is broken
timotimo that's a weird place to put it :)
donaldh is bisecting 5 lines of code to identify the cause of: Cannot call Numeric; no signatures match
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. :\
tadzik colomon: precomp?
timotimo donaldh: are you in a place where you can --ll-exception and get a better traceback?
colomon donaldh: what do the 5 lines look like?
tadzik: maybe? It's failing in the testing stage, though.
tadzik timotimo: you have to get your priorities straight :P
colomon: yeah, it sometimes is so
timotimo tadzik: huh?
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
timotimo hehe
tadzik masak: easy. Let me show you...
timotimo anyway. the new keyboard in my thinkpad makes it feel like i have a new thinkpad! :D
donaldh it's this line: while $res.elems < $bufsize && $buf.elems
colomon tadzik: and now panda installs it without issues. :\ 13:36
timotimo so $bufsize is something that can't numeric?
donaldh comment out the && $buf.elems and CORE.setting compiles.
tadzik masak: imgur.com/CIXGP9f tada!
colomon: oh
colomon tadzik: no changes whatsoever.
tadzik donaldh: is buf actually a perl6 object?
timotimo i'm hoping the difference isn't in while ($res.elems < $bufsize) && $buf.evems
colomon tadzik: I don't think panda is to blame. 13:37
tadzik *relief* :)
colomon tadzik: I think there's something wonky going on in Rakudo.
donaldh whole block (oh 6 lines) : my $res = buf8.new();
repeat {
timotimo tadzik: now you're just messing with up
us
donaldh my $buf := buf8.new();
nqp::readfh($!PIO, $buf, nqp::unbox_i($bufsize - $res.elems)); 13:38
masak tadzik: :D
donaldh $res ~= $buf;
} while $res.elems < $bufsize && $buf.elems;
tadzik well, the S doesn't work in the new place either
masak I guessed so.
colomon donaldh: check $bufsize.WHAT ?
donaldh colomon: method read(IO::Socket:D: Cool $bufsize as Int) { 13:39
colomon "as Int" works?
donaldh Like I said, this is accepted : } while $res.elems < $bufsize; # && $buf.elems; 13:40
colomon oh
donaldh i.e comment the && $buf.elems
colomon r: say 1 < True
timotimo so is it doing $res.elems < ($bufsize && $buf.elems)?
camelia rakudo 044bd5: OUTPUT«False␤»
colomon timotimo: nope, that would be okay too
timotimo mhm
colomon seems like there must be something funky happening in $buf.elems? 13:41
13:41 PacoLinux left
colomon just say $buf.elems before the while statement? 13:41
13:41 btyler joined
colomon r: say (1 && 45).WHAT 13:42
camelia rakudo 044bd5: OUTPUT«(Int)␤»
13:42 lowpro30_ joined
dalek nda: 8674991 | (Donald Hunter)++ | / (6 files):
Add support for building and installing jars for JVM.
13:43
nda: 4547e96 | tadzik++ | / (6 files):
Merge pull request #55 from donaldh/jvm-support

Add support for building and installing jars for JVM.
synopsebot Link: rt.perl.org/rt3//Public/Bug/Display.html?id=55
timotimo something with huge legs just landed outside my window and i only see a small part of its body o_O
13:45 hummeleBop1 left, brrt left
mathw tadzik: hahaha, nice one 13:45
tadzik finally some use for this big print screen key
13:46 lowpro30 left
donaldh r: gist.github.com/donaldh/4ada7d00c4d64a4efc15 13:47
camelia rakudo 044bd5: OUTPUT«===SORRY!=== Error while compiling /tmp/EgCTAur_We␤Two terms in a row␤at /tmp/EgCTAur_We:1␤------> https⏏://gist.github.com/donaldh/4ada7d00c4d64␤ expecting any of:␤ argument list␤ postfix␤ infix stopper␤…
donaldh I thought camelia could handle gists ? 13:48
arnsholt They changed the URL schema a while back. Might be that camelia wasn't updated 13:49
timotimo i think it can only handle public gists 13:50
donaldh hmmm. Moritz used it yesterday
timotimo which doesn't really make sense to me
donaldh oh. 13:51
dalek rlito: e4182ba | (Flavio S. Glock)++ | TODO-perlito5:
Perlito5 - TODO update
timotimo dislikes spamming his list of gists with such small thingies
pmurias maybe the build system broke?
sorry, incorrectly scrolled window 13:52
donaldh I put the block in a separate file and: Variable '$buf' is not declared
which is nice 'n' self explanatory :D
only one INET test to go on JVM … Failed 1/41 subtests 13:59
14:01 cognominal__ joined 14:02 shinobicl_ joined 14:04 cognominal left 14:07 thou joined 14:09 logie joined 14:15 PacoAir joined
colomon r: { my $buf = 1; } while $buf; say "eh?" 14:16
camelia rakudo 044bd5: OUTPUT«===SORRY!=== Error while compiling /tmp/7heceTg4Es␤Variable '$buf' is not declared␤at /tmp/7heceTg4Es:1␤------> { my $buf = 1; } while $buf⏏; say "eh?"␤ expecting any of:␤ postfix␤»
colomon r: { my $buf = 1; } while $buf.elems; say "eh?"
14:16 kaleem left
camelia rakudo 044bd5: OUTPUT«===SORRY!=== Error while compiling /tmp/auMVABUy1c␤Variable '$buf' is not declared␤at /tmp/auMVABUy1c:1␤------> { my $buf = 1; } while $buf.elems⏏; say "eh?"␤ expecting any of:␤ method arguments␤» 14:16
colomon r: repeat { my $buf = 1; } while $buf.elems; say "eh?" 14:17
camelia rakudo 044bd5: OUTPUT«===SORRY!=== Error while compiling /tmp/b7fDQHNolF␤Variable '$buf' is not declared␤at /tmp/b7fDQHNolF:1␤------> repeat { my $buf = 1; } while $buf.elems⏏; say "eh?"␤ expecting any of:␤ method arguments␤»
timotimo donaldh++ :)
colomon donaldh: huh. why didn't the original block get that error? 14:18
tadzik maybe it was declared somewhere in the outer scope
lizmat r: my role Foo { ... }; class A does Foo {} # seems we can't compose with a stubbed role
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 thou left
lizmat afk again& 14:20
14:21 FROGGS joined 14:26 btyler left 14:28 spider-mario left
masak submits rakudobug 14:32
FROGGS masak: I'm gisting a nqp::(un)pack proposal now... 14:33
donaldh colomon: Errors always seem to be extremely obscure when compiling the CORE.setting 14:34
14:36 jnap1 joined, jnap left 14:38 spider-mario joined 14:53 dmol joined
pmurias FROGGS: is nqp::(un)pack a bottleneck? 14:53
FROGGS pmurias: there is no such thing yet, so no, no bottle neck :o) 14:54
14:54 raiph joined
pmurias why do we need that? 14:54
FROGGS pmurias: rakudo's (un)pack can only just a bit atm, and I need a Perl 5 compatible pack/unpack for v5 14:55
pmurias you should have your own setting for v5 14:56
FROGGS so, I propose to have a single (un)pack in nqp
pmurias rather then pushing stuff into nqp
FROGGS pmurias: we did the same for sprintf, and it was the best thing would could do
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:57
pmurias what I mean is you should have your own p5 stuff rather then using rakudo's things 14:58
14:59 btyler joined
FROGGS pmurias: why? 14:59
just for the sake of ode duplication? 15:00
code*
pmurias don't some of the p5 core functions behave slightly differently?
FROGGS pmurias: sure, and exactle these *some function* I reimplement in v5 15:01
15:02 btyler_ joined
FROGGS but I'll never just copy over code unmodified when I dont have to 15:02
pmurias something like substr("xxxyyyz",-4,-1) won't work using the Perl6 substr 15:04
GlitchMr pmurias, *-4, and *-1. 15:05
You have to specificially mark you want from the end.
In fact:
rn: substr("xxxyyyz",-4,-1)
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…
..niecza v24-95-ga6d4c5f: ( no output )
GlitchMr Rakudo says what you should do instead. 15:06
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.
Perl 5 mode is already sort of difficult.
FROGGS pmurias: for this one it would pass the whatever implicitly
"would", because NYI
GlitchMr How would you represent *-1. 15:08
15:08 btyler left, btyler_ left
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.
FROGGS hmm? 15:09
GlitchMr *-1 is sub($arg) { $arg - 1 }
But then, I guess the issue exists only when calling Perl 6 APIs from Perl 5. 15:10
In Perl 5, you could simply use Perl 5 substr(), which will copy behavior of Perl 5 substr().
FROGGS well, the common case is that you dont call Perl6's substr from v5
GlitchMr As long it's possible, it sounds fine.
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
GlitchMr Yes.
I wonder, if you can, Perl 5 string should be instance of Callable.
When being in Perl 6 code. 15:12
FROGGS there is nothing like a Perl 5 string
it is just Str
GlitchMr Well, Perl 5 SV.
FROGGS I guess you are talking about diakopter++ 's plan 15:13
15:14 btyler joined, denis_boyun joined
GlitchMr Perhaps something like Perl5::Scalar? 15:15
Except Scalar is too generic.
Because it also includes references.
Also, it would be great if Perl 5 datatypes would work well with Perl 6.
Even something like Perl5::Glob.
15:16 shinobicl_ left
GlitchMr And you could use Str methods, even if only on Perl 6 side. 15:16
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
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:19
15:21 skids joined, denis_boyun left
TimToady people keep acting like this identity/.WHICH thing of Sets vs KeySets is unspecced. please see perlcabal.org/syn/S02.html#Immutable_types and perlcabal.org/syn/S02.html#Mutable_types 15:22
15:26 [particle] joined 15:31 REPLeffect joined
GlitchMr rn: say now - now 15:31
camelia niecza v24-95-ga6d4c5f: OUTPUT«-0.00014805793762207031␤»
..rakudo 044bd5: OUTPUT«-0.01350395␤»
GlitchMr 0.01 seconds for simple substraction? 15:32
subtraction*
TimToady or noise
jnthn Highly doubt it's the subtraction.
TimToady rn: say now - now
camelia rakudo 044bd5: OUTPUT«-0.01257903␤» 15:33
..niecza v24-95-ga6d4c5f: OUTPUT«-0.00014805793762207031␤»
TimToady but seems pretty consistent
jnthn r: say now.WHAT
camelia rakudo 044bd5: OUTPUT«(Instant)␤»
TimToady maybe now is very slow on rakudo
FROGGS TimToady: how do you think about pack/unpack/sprintf? should they be as Perl5-ish as possible? (without loosing sanity)
GlitchMr rn: my $now = now; my $now2 = now; say $now - $now2;
camelia rakudo 044bd5: OUTPUT«-0.0227672␤»
..niecza v24-95-ga6d4c5f: OUTPUT«-0.00016498565673828125␤»
FROGGS TimToady: or do you have something else in mind?
GlitchMr rn: my $now = now; my $now2 = now; say $now - $now2;
camelia niecza v24-95-ga6d4c5f: OUTPUT«-0.00015687942504882813␤»
..rakudo 044bd5: OUTPUT«-0.02065817␤»
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
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
so anything that's not inconsistent with that is fine
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 :)
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
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
yeah, but when you pack something you need to know how many bytes it should take
TimToady and that's where it'd be nice to be able to turn a class repr into a pack format 15:41
pack formats and struct defs are roughly isomorphic on this level 15:42
so it'd be nice not to have to duplicate that info
15:43 pernatiy joined, domidumont left
dalek kudo/nom: 9b49d83 | jnthn++ | src/core/tai-utc.pm:
Force leap-second data to be a constant Parcel.

Should save a little bit of time, since now it's just a constant table lookup.
15:43
donaldh I've just noticed that IO::Socket.recv is not specced
TimToady I think of the pack format as the "assembly language" end of it
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...
donaldh is busy fixing binary recv on JVM, so is interested if its worth his while
15:45 zakharyas left
jnthn TimToady: I'm not entirely sure I see the point of them... :) 15:45
masak today as I was using the sprintf format, I thought "why the heck is this a string language?" 15:47
jnthn masak: The 1790s... :P 15:48
um
masak :P
jnthn 1970s :)
masak yeah, those bloody Jacquard looms ruined everything for centuries to come :P
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" )
TimToady but yeah, you want recursive definition like a struct can do
gee, you really want an inside-out grammar...
masak TimToady: my point isn't exactly to get rid of the string format. but *only* having a string format feels wrong.
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
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
masak TimToady: "we could compile it to something" feels like a patch on something broken, rather than a re-think.
TimToady strings are more for the convenience of programmers
masak FROGGS: yes, that's the path we should be heading.
TimToady
.oO(Programming as an Activity)
FROGGS so, a string that is almost not readable and something more verbose
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
TimToady: the symptoms are there: you can compile the program with a faulty sprintf format, for example.
FROGGS masak: so to have both then? because only having the verbose thing would make some ppl cry I think
(or scream and rant)
pmurias FROGGS: it should be possible to do unpacking with grammars
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.
jnthn masak: Still, worse is better... :P
masak yes, we should probably have two local maxima -- one "good ol' sprintf", and one we actually like :)
FROGGS pmurias: yes, that is what grammars usually do basically - pack and sprintf with grammars is the interesting part
TimToady and we already have an implementation of the other from jnthn++
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
TimToady generative grammars 15:54
jnthn Oh
pmurias FROGGS: generalizing pack and sprintf seems like a templating engine
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
FROGGS but the structure one has to supply for generative grammars is almost not writeable by hand
so we need some kind of class/method thing like grammars, that is what the h4ck0rs are used to 15:56
TimToady I know, let's just write Perl 6 using S-EXPRs... 15:57
diakopter /o\
15:58 iSlug left
diakopter masak: I seem to recall that stubbed role thing being reported before 15:58
16:00 thou joined
TimToady is now imagining a grammar containing % sprintf directives, and having PTSD flashbacks to scanf 16:00
FROGGS hehe
are there languages outside that have something we can steal from? 16:01
FROGGS only knows crappy languages like PHP
TimToady you mean, without introducing S-EXPRs? :)
pmurias FROGGS: for parsing or generating?
FROGGS generation of strings/bufs
pmurias template toolkit?
FROGGS taking an array of args
I'll look into it after dinner 16:02
pmurias or the bazillilon of other template engines on cpan
but it would be best if something like that doesn't get put into the setting (stays a module)
TimToady pmurias: unless it becomes the underlying engine for pack, sprintf, and class serialization :) 16:03
pmurias we now need an excuse to put an ORM into the core ;) 16:04
masak diakopter: quite possibly. if you find the old one, we'll merge. 16:05
jnthn
.oO( tbh, I'd just merge the tickets... )
masak or that. 16:06
jnthn I'm seeing if I can get it to report something more useful at the moment :)
...apparently not on first attempt :/ 16:07
r: proto foo() { * }; foo() 16:09
camelia rakudo 044bd5: OUTPUT«===SORRY!===␤Null PMC access in get_pmc_keyed()␤»
jnthn aha
That's the underlying reason for the NPMCA
hmm 16:10
16:11 hummeleBop joined
diakopter wut. there are a lot of tickets. 16:11
diakopter feels proud to be mentioned in 179 tickets 16:14
jnthn r: say nqp::isconcrete(nqp::null())
camelia rakudo 9b49d8: OUTPUT«1␤»
diakopter oh. out of 3,260' 16:15
O_O
jnthn Ah...and on JVM that gives 0.
diakopter masak: weeuh.
weeuhd.
I promise I've reported that one before to masakbat 16:16
bot, even
diakopter goes to see if clogsearch is working
speaking of... masak I consider this a reportable bug irclog.perlgeek.de/perl6/2013-08-29#i_7515217 16:17
masak looks 16:18
jnthn grrr
Creating library nqp_dyncall_ops.lib and object nqp_dyncall_ops.exp
CStr.obj : error LNK2001: unresolved external symbol Parrot_str_new_from_cstring
nqp_dyncall_ops.dll : fatal error LNK1120: 1 unresolved externals
Latest NQP doesn't seem to want to build on Windows?
timotimo i don't have access to mail right now, could somebody please file this? irclog.perlgeek.de/perl6/2013-09-04#i_7539373
diakopter masak: 16,590 tickets in the perl5 queue..
masak hrm. I suggest someone who has JVM's rakudo built already reproduce irclog.perlgeek.de/perl6/2013-08-29#i_7515217 locally and then report it. 16:19
diakopter: something to aspire to ;)
diakopter well theirs is 14 years old..
16:20 lowpro30_ left
pmurias jnthn: the iscclass op can be called with negative arguments? 16:20
masak diakopter: do we have more bugs created per time unit than the perl5 queue? 16:21
s/bugs/tickets/
jnthn pmurias: Which argument? :)
diakopter well, ours is 10 years old..
so, noe hardly
not hardly
16:22 denis_boyun joined
jnthn pmurias: on JVM, iscclass does: 16:22
if (offset < 0 || offset >= target.length())
return 0;
16:23 lowpro30 joined
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?
diakopter at yapc::eu that question was posed
timotimo whose answer is that? 16:24
diakopter TimToady's tongue-in-teeth anwer
answer
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...
timotimo ah
jnthn: another big "fuck you" to windows users :P
diakopter ... I'm sure it wasn't meant to be that.
jnthn Despite this, it's implementing in src/string/api.c.
TimToady if they'd just redesign Perl 5 it'd be much easier to maintain... :P
jnthn *implemented... 16:25
16:25 domidumont joined
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...
more what I meant
I realize the other could be misread 16:27
not trying to complain about p5 sucking resources from p6, since maintaining p5 was always part of the p6 design 16:28
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:29
dalek p: c97065d | jnthn++ | src/vm/parrot/6model/reprs/CStr.c:
Fix busted build on Parrot/Windows.
16:30
diakopter perigrin: which one? :) 16:32
TimToady: while they're at it, they should add more features to Perl 5.. that'll help with maintainability
16:34 agre left
perigrin diakopter: TimToady's from Kiev. 16:34
diakopter oh heh.. I watched Stevan's last night
16:35 lelf`` left
perigrin his Detroit of Languages? 16:35
diakopter yes
perigrin just saw it the once live in Austin
diakopter since I saw essentially zero talks in Austin
perigrin you were an organizer
you don't get to see talks when you do that :)
diakopter also according to my talk feedback, I looked and spoke like a zombie 16:36
TimToady yes, but you're *our* zombie 16:37
moritz "Perl 6 isn't dead, but its developers are zombies!"
pmurias jnthn: one thing I don't understand is how \n matches \n\r in regexes 16:38
\r\n is explicitly check for
diakopter that's a regex thing..
Fatalnix because regex is boss
^^
pmurias Fatalnix--
Fatalnix lol 16:39
pmurias diakopter: I don't understand how the implementation of that works
diakopter like a capturing group I thought'
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
(in theory--don't know how rakudo does it)
jnthn pmurias: Do you mean \r\n ? 16:41
pmurias no \n\r
jnthn pmurias: Guess what TimToady said on LTM perhaps. But in the code-gen, I think cclass for 'n' handles it specially
Um...
pmurias jnthn: \r\n is explicitly checked 16:42
perigrin diakopter: in Madison my favorite feedback to my talk was "Dude needs a nap."
jnthn r: say ("a\n\r" ~~ /a\n/).Str.perl
camelia rakudo 9b49d8: OUTPUT«"a\n"␤»
jnthn pmurias: Simple answer: it doesn't match \n\r.
TimToady nobody uses \n\r, so there's no point in checking it
GlitchMr r: say ("a\n\r" ~~ /^a\n$/).Str.perl
camelia rakudo 9b49d8: OUTPUT«""␤»
jnthn Which is what I'd have thought :)
GlitchMr r: say ("a\r\n" ~~ /^a\n$/).Str.perl
camelia rakudo 9b49d8: OUTPUT«"a\r\n"␤»
diakopter well it probably does in javascript 16:43
FROGGS well, one \n should match either a \n, a \r or a \r\n
GlitchMr Well, \n\r is newline in certain OS.
jnthn TimToady: Was gonna say, is there some REALLY weird platform I never encountered... :)
GlitchMr But nobody uses those platforms.
jnthn GlitchMr: Which one?
diakopter GlitchMr: old old mac
FROGGS GlitchMr: which?
TimToady only becuase \n and \r have their meanings reversed!
it's still CRLF
GlitchMr jnthn, BBC Micro or Risc OS.
But Risc OS already moved to \n. 16:44
So it doesn't count.
jnthn Wow, BBC Micro was first machine I programmed on, but I never knew that about it :)
pmurias jnthn: github.com/perl6/nqp/blob/master/t...achars#L48
FROGGS jnthn: you just dont love the hardware you are hacking on :o)
GlitchMr c \n dabc\n\rdefnlogical newline matches \n\r
Interesting. 16:45
FROGGS weird
diakopter oh yeah, old old mac was \r
GlitchMr QNX (before POSIX) used \x1E (record separator).
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
I doubt we need to worry very hard about that...
FROGGS as long as \n does not match \n\n we are fine
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? :)
GlitchMr In C, \n can be anything, provided it's one character.
TimToady GlitchMr: but what actual character did that mean?
GlitchMr \r? CR
TimToady not on mac
16:48 kivutar left
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
timotimo i like that on my unix i can get a do-over on the current line when i print just \r
GlitchMr When I type \r, I refer to CR, when I type \n, I refer to LF.
But perhaps I should make it less confusing.
TimToady but the OS confused them for you
FROGGS timotimo: that reminds me that we need $|++ in Perl 6 :P
GlitchMr Well, C standard allows \n to be anything.
pmurias jnthn: on pugs?
timotimo FROGGS: i don't know p5; what does that mean? 16:49
GlitchMr (provided it's one character)
diakopter timotimo: don't buffer stdout as much
timotimo oh yeah, it would be cool to have something simple to do that
doesn't have to be a special var, though 16:50
diakopter (or is it all writer handles?)
pmurias nqp: say(("abc\r\ndef" ~~ /c\nd/)."!dump_str"('mob'));
camelia nqp: OUTPUT«mob: c\r\nd @ 2␤␤»
pmurias nqp-jvm: say(("abc\r\ndef" ~~ /c\nd/)."!dump_str"('mob'));
diakopter std: $|++
camelia nqp-jvm: OUTPUT«mob: @ 8␤␤»
std 27326bc: OUTPUT«===SORRY!===␤Unsupported use of $| variable; in Perl 6 please use :autoflush on open at /tmp/tmEXcDUo0p line 1:␤------> $|⏏++␤Parse failed␤FAILED 00:00 41m␤»
jnthn pmurias: That's \r\n 16:51
nqp: say(("abc\n\rdef" ~~ /c\nd/)."!dump_str"('mob'));
camelia nqp: OUTPUT«mob: @ 8␤␤»
TimToady please say CRLF if you mean that, since \r\n is ambiguous
16:51 benabik joined
jnthn hmm... 16:51
TimToady (historically, at least)
jnthn OK, I have no idea how it matches :)
nqp-jvm: say(("abc\n\rdef" ~~ /c\nd/)."!dump_str"('mob'));
camelia nqp-jvm: OUTPUT«mob: @ 8␤␤»
TimToady spec doesn't say you have to match LFCR, unless TR16 mandates it 16:52
so the test might be overreaching
diakopter who's snoopy? stackoverflow.com/questions/1856117...ence-rules
TimToady er, TR18
16:53 ajr_ left
GlitchMr Perhaps \r, and \n should use JavaScript meanings. 16:53
That is, \x0A and \x0D.
Well, \x0D and \x0A. 16:54
TimToady whew!
that's what they mean in *strings*, but not in regex
dalek p: 5074d23 | jnthn++ | src/vm/parrot/ops/nqp.ops:
Make nqp::isconcrete false on null.

Brings Parrot impl in line with JVM impl.
TimToady in regex \n matches LF, but also other things
jnthn That gets rid of that null PMC access... :) 16:55
GlitchMr I actually wonder how well JavaScript works on EBCDIC.
TimToady TR18 only mandates recognition of CRLF, not LFCR, so the test is in error
GlitchMr The specification seems to assume ASCII.
pmurias jnthn: re matching so it's seem it doesn't actually match, just the test harness is incorrect
jnthn pmurias: oh!
pmurias: Well. That explains it :) 16:56
TimToady www.unicode.org/reports/tr18/#Line_Boundaries
GlitchMr But I assume it makes sense for ECMAScript, considering that it's standard for the web, so they had to decide on encoding.
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␤␤»
TimToady that looks correctish to me 16:58
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 16:59
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
just the test description was incorrect :/ 17:01
diakopter moritz: fudger feature request: annotate the test files with test numbers..
pmurias and I overlooked the actual n/y flag :(
diakopter (if it doesn't already!)
dalek kudo/nom: e4b20f9 | jnthn++ | t/spectest.data:
This test needs ICU on Parrot.
moritz diakopter: it doesn't 17:02
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 p: 7121946 | (Pawel Murias)++ | t/qregex/rx_metachars:
Fix test description.
diakopter moritz: oh, I thought you maintained it :)
Mr Test Suite
TimToady pmurias++
moritz diakopter: but it's not a test :-) 17:04
jnthn pmurias: oh, heh!!
I missed that too
TimToady Lesson: don't put comments
diakopter self-documenting code is better
attempted redundancy just breeds inconsistencies 17:05
TimToady you can say that again
or maybe you can't
17:06 spider-mario left 17:11 agre joined 17:15 panchiniak joined, jnap1 left 17:17 pmurias left 17:24 kaare_ joined 17:25 lowpro30 left
dalek d: 7c17586 | larry++ | STD.pm6:
Don't look for -> during interpolation, masak++
17:25
17:29 zwut00 joined 17:31 raiph left 17:32 daxim_ left 17:46 pecastro_ is now known as pecastro 17:47 berekuk joined
moritz mlenz@mlenz-workstation:~/p6/rakudo$ ./perl6 -Ilib --doc lib/Test.pm 17:53
===SORRY!===
Odd number of elements found where hash expected
is that due to local patches, or can somebody else reproduce that?
jnthn moritz: Locally, both of Parrot and JVM. 18:02
18:04 panchiniak left
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:␤------> my sub a (⏏$a where { $_ == 1 } --> Str) { 1; }; a(␤ok 00:00 48m␤»
skids std: my sub a ($a where { $_ == 1 } --> Str) { $a; }; a(1)
camelia std 7c17586: OUTPUT«ok 00:00 48m␤»
skids r: my sub a ($a where { $_ == 1 } --> Str) { $a; }; a(1) 18:07
camelia rakudo e4b20f: OUTPUT«===SORRY!=== Error while compiling /tmp/slNNQ1gJzv␤Missing block␤at /tmp/slNNQ1gJzv:1␤------> my sub a ($a where { $_ == 1 } --> Str⏏) { $a; }; a(1)␤ expecting any of:␤ postfix␤ statement end␤ statement m…
skids r: my sub a ($a where { $_ == 1 }, --> Str) { $a; }; a(1)
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␤␤»
TimToady eep, shouldn't need that comma 18:08
jnthn Wonder whe we do...
TimToady std probably thinks it's illegal, in fact 18:09
std: my sub a ($a where { $_ == 1 }, --> Str) { $a; }; a(1)
camelia std 7c17586: OUTPUT«ok 00:00 48m␤»
TimToady well, maybe not
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 ?
jnthn TimToady: It's same reason that method foo(Blah $x:) { } parses.
dalek kudo/nom: 5becd4f | (Dagur Valberg Johannsson)++ | src/core/Buf.pm:
Made Buf.subbuf act more like Str.substr
18:10
kudo/nom: a2a06e4 | moritz++ | src/core/Buf.pm:
Merge branch 'Buf-subbuf' of github.com/dagurval/rakudo into nom
donaldh hallelujah - t/spec/S32-io/IO-Socket-INET.t ........... ok 18:12
jnthn
.oO( It's raining net... )
18:13
donaldh++
donaldh just need to regression test on parrot and it should be ready.
jnthn donaldh: It's probably OK to bump them for all...
donaldh *just*
jnthn TimToady: I don't immediatley see why it won't parse with the comma...
donaldh jnthn: thx, that's simpler than parameterising the shell scripts.
lizmat is back and read the backlog 18:16
jnthn: didn't know about the test failures 18:17
TimToady: loud and clear about .WHICH
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()
r: bag <D X L> 18:19
camelia rakudo e4b20f: ( no output )
lizmat hmmm… maybe not ?
oops, no, it is caused by:
r: my %h = bag()
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␤␤»
lizmat r: my %h := bag() # works
camelia rakudo e4b20f: ( no output )
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...
TimToady: We parsed the post_constraint after where with chaining prec, not item assignment...seeing if fixing that helps :) 18:21
18:22 panchiniak joined, jnap joined
dalek kudo/nom: b9762d7 | (Elizabeth Mattijsen)++ | lib/Pod/To/Text.pm:
Fix to handle changed behaviour of bag()
18:22
lizmat moritz: the problem you saw, should be fixed now 18:23
TimToady jnthn: sounds to more like --> is missing as a terminator 18:27
*to me
dalek albot: fc2b25b | thundergnat++ | lib/EvalbotExecuter.pm:
Modify evalbot to accept hex gist id numbers rather than decimal.

Apparently Github has begun to assign hexadecimal gist ids. They used to be decimal.
TimToady oh wait, confusing with ==>
nm
18:28 rindolf left
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... :)
BabsSeed Hi
TimToady o/
jnthn Oddly, it claims it parse-failed after the --> Str 18:29
BabsSeed \o
TimToady well, -- can be infix followed by prefix
jnthn TimToady: ooh, yes, mebbe we need the terminator :)
TimToady or - followed by ->
jnthn TimToady: lemme try
18:30 SamuraiJack__ joined
jnthn Yeah, I thought that's what might be going on and why I suspect the prec correction may do it 18:31
But I guess istem assignment will parse a -
whoa, I can't type...
TimToady butt wee gnu that all ready
lizmat cloud? 18:32
TimToady yes, cloud
jnthn eww...butt wee
18:33 SamuraiJack_ left
dagurval moritz: thanks for doing the merge! 18:33
moritz++ 18:34
lizmat jnthn: seeing errors as well 18:37
jnthn TimToady: It was the terminator 18:38
masak BabsSeed: hi
TimToady Back I'll be! --Yodderminator 18:39
masak "La vista, baby, hasta." 18:40
18:42 kbaker left 18:44 arlinius left 18:47 agre_ joined 18:50 agre left 18:53 pecastro left
dalek ast: 1fc796c | (Elizabeth Mattijsen)++ | S0 (2 files):
Temporary fudge for Set tests, while refactoring work continures
18:56
lizmat I so love the view of TODO's passing, alas not right now :-( 18:57
FROGGS :o(
18:59 kivutar joined
moritz speaking of passing TODOs 19:01
is there a reason not to unfudge S32-io/other.t for rakudo?
lizmat unfudge++ 19:02
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␤␤»…
lizmat *and* ? 19:04
colomon LTA error 19:05
TimToady LTA anyway
you'd have to say my Junction $a to get the other to work
this is construed as a feature
dalek kudo/nom: b03eced | (Elizabeth Mattijsen)++ | src/core/stubs.pm:
Remove superfluous stub (already stubbed in core_prologue)
19:06
19:09 pecastro joined 19:15 kbaker joined 19:16 panchiniak left
jnthn I'm guessing the exception type for that error somewhere has an Any where it wants a Mu... 19:16
19:17 Lorn joined 19:20 gabriel left 19:21 gabriel joined 19:22 simcop2387 joined 19:23 sunnavy joined, abnorman joined 19:24 geekosaur joined 19:28 SamuraiJack__ left 19:29 btyler left 19:32 btyler joined
lizmat r: role A { has $!a }; class B does A { method a { $!a } } #rakudobug, NYI or misunderstanding of S14:100 ? 19:34
synopsebot Link: perlcabal.org/syn/S14.html#line_100
camelia rakudo b03ece: OUTPUT«===SORRY!=== Error while compiling /tmp/LX2j4tHbnL␤Attribute $!a not declared in class B␤at /tmp/LX2j4tHbnL:1␤------> s $!a }; class B does A { method a { $!a⏏ } } #rakudobug, NYI or misunderstandin␤»
TimToady r: role A { has $!a }; class B does A { method b { $!a } } 19:37
camelia rakudo b03ece: OUTPUT«===SORRY!=== Error while compiling /tmp/nZnIhREsbs␤Attribute $!a not declared in class B␤at /tmp/nZnIhREsbs:1␤------> s $!a }; class B does A { method b { $!a⏏ } }␤»
colomon n: role A { has $!a }; class B does A { method b { $!a } } 19:38
camelia niecza v24-95-ga6d4c5f: ( no output )
TimToady r: role A { has $.a }; class B does A { method b { $!a } } 19:40
camelia rakudo b03ece: OUTPUT«===SORRY!=== Error while compiling /tmp/8AfaCkCk52␤Attribute $!a not declared in class B␤at /tmp/8AfaCkCk52:1␤------> s $.a }; class B does A { method b { $!a⏏ } }␤»
TimToady well, in any case, a bug according to S14:100 19:42
synopsebot Link: perlcabal.org/syn/S14.html#line_100
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:44
jnthn can call it both ways and kinda allows neither at the moment. :) 19:45
So I can fix it in either direction without breaking previously working code :)
19:45 domidumont left
TimToady what private attribute a role declares is part of its public interface, as far as the class is concerned 19:46
jnthn OK
The main challenge implementation wise is that in:
role R { has $!a; }; class Foo does R { method m() { $!a } } 19:47
Today we don't incorporate the role until the closing curly of the class
e.g. composition time
Which is how it has to be for a long list of reasons :)
And if it's a parametric role we don't actually pick the variant until then either
TimToady so I guess we'd have to defer complaining about bogus attributes till then
jnthn Which leads me to wonder about stuff like:
role R { has $!a; }; class Foo { method m() { $!a }; does R; } # OK, or must be an error? 19:48
Yes, I'm fine with that, just want to check out the corner cases :)
TimToady if it's checked at compose time, should be OK
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
jnthn Right.
TimToady it sounds saner, if a bit of a bother :)
TimToady is starting to sound English...
jnthn Well, if my example above is allowed, it's not so bad :) 19:50
Though we probably wanna keep the cursors around.
So we can emit nice undeclared attributes errors.
TimToady right, but we do that trick other places too :)
in that sense they're kinda like continuations 19:51
jnthn std: role Foo { has $!a }; class C does Foo { method m() { $!a } } # curious
camelia std 7c17586: OUTPUT«ok 00:00 44m␤»
jnthn std: role Foo { has $!a }; class C does Foo { method m() { $!x } } # curious
camelia std 7c17586: OUTPUT«ok 00:00 44m␤»
jnthn OK, STD simply don't check 'em :)
TimToady nope
jnthn (which makes sense given it's a MOP question...)
TimToady std: $!foo
camelia std 7c17586: OUTPUT«===SORRY!===␤Variable $!foo used where no 'self' is available at /tmp/ki_L1YAKD3 line 1:␤------> <BOL>⏏$!foo␤Check failed␤FAILED 00:00 41m␤»
jnthn r: $!foo # think we do that one
TimToady well, it wants that much anyway...
camelia rakudo b03ece: OUTPUT«===SORRY!=== Error while compiling /tmp/vp8MIWhgBU␤Variable $!foo used where no 'self' is available␤at /tmp/vp8MIWhgBU:1␤------> $!foo⏏ # think we do that one␤»
moritz std: class A { method m() { $!foo } } 19:52
camelia std 7c17586: OUTPUT«ok 00:00 44m␤»
jnthn OK, I'll put it on my todo list. :)
TimToady that's like, really short, right?
when measured in miles, I mean...
jnthn Especially when measured in Swedish miles...
TimToady are those anything like Swedish coffee? 19:53
TimToady always wondered which mountains in Sweden the "mountain grown" Swedish coffee came from
lizmat meanwhile, I'll use the old nqp::getattr(self, Bag, '%!elems') trick to get things working now 19:54
19:54 xenoterracide joined
jnthn Well, if Swedish coffee is longer than everybody elses... :) 19:54
lizmat: aye, that works as a workaround... 19:55
19:58 abnorman left 20:02 arlinius joined, abnorman joined, zwut00 left 20:08 lowpro30 joined 20:09 ajr joined, ajr is now known as Guest73775 20:11 PacoLinux joined 20:12 PacoLinux left, kaare_ left 20:14 Guest73775 is now known as ajr_ 20:20 panchiniak joined 20:29 abnorman left 20:32 abnorman joined 20:33 nebuchadnezzar joined 20:46 kivutar left 20:50 pmurias joined
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«===SORRY!=== Error while compiling /tmp/pgvpwnUfg6␤Undeclared routine:␤ foo used at line 1␤␤»
lizmat would have expected "a(foo)" 20:52
masak yes. it is intentional. 20:53
PerlJam lizmat: yes, it's intentional.
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".
the one I like the least is: "<html>$stuff</html>" 20:55
it's subtle because it looks so right :)
PerlJam masak: {} are your friends 20:56
:)
lizmat wonders why we interpolate scalars at all, "{$a}" is a bit more typing, but so much more clear
TIMTOWTDI I guess
masak PerlJam: indeed. 20:57
I will probably land on a more "foo{$bar}baz"-based style with time.
lizmat meanwhile, after refactoring with roles:
$ perl6 -e 'bag( <a b b c c c> ).WHICH.say'
Bag|Str|a(1) Str|b(2) Str|c(3)
PerlJam lizmat: yeah, I've almost decided to always use {} (almost()
s:2nd/'('// 20:58
21:00 dwarring joined 21:02 dayangkun left 21:05 agre_ left 21:07 donaldh left 21:08 donaldh joined 21:09 skids left, donaldh left 21:15 kbaker left 21:17 dayangkun joined, lowpro30_ joined
dalek rl6-roast-data: 6d17ca9 | coke++ | / (5 files):
today (automated commit)
21:18
21:19 lowpro30 left
lizmat JVM ar 98.6% 21:22
[Coke] lizmat: rakudo.jvm is failing a lot of those S03-operators/set tests.
21:22 lowpro30_ left
[Coke] (those are all new failures from yesterday) 21:22
lizmat I fudged a lot of them earlier tonight
about 2.5 hours ago, did the JVM run see those ?
[Coke] ... oh, so did rakudo.parrot, nevermind, whoops 21:23
so, no worries.
jnthn aww, below 99%?
jnthn will have to look into why
[Coke] jnthn: has been for some time.
lizmat mostly my work, I think :-)
[Coke] since before you started working on presentations for yapc::eu, iirc.
jnthn [Coke]: Aye, I've been too busy to really follow all the things I "should" be...
[Coke] you might be slightly overextended. :) 21:24
jnthn Well, didn't expect to teach every day this week until last Friday :)
[Coke] I will work on geting rakudo.jvm testing clean this weekend.
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.
also really looking forward to adding 2 more rakudos to the testing pile.
21:26 donaldh joined
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:27
$ perl6 -e 'set( <a b b c c c> ).WHICH.say'
Set|Str|a Str|b Str|c
$ perl6 -e 'KeySet.new( <a b b c c c> ).WHICH.say'
KeySet|6523836817389416631
[Coke] jnthn: I just need one of these: github.com/coke/perl6-roast-data/t...master/bin
jnthn r: set(<up us the bomb>).WHICH.say
camelia rakudo b03ece: OUTPUT«Set|-799072600␤»
[Coke] so about ... 5m ?
FROGGS five meters? 21:28
jnthn FROGGS: milipedes
[Coke] pretty much the second there's a rakudo build, I can add it.
jnthn [Coke]: Nice :)
[Coke] (even if it fails most things)
lizmat jnthn: not yet committed
[Coke] commutes.
jnthn lizmat: aye, just comparing...and memeing :) 21:29
lizmat $ perl6 -e 'set( <a> )<a>.say'
Segmentation fault: 11
:-(
jnthn :( 21:30
donaldh Is it possible to fudge tests in nqp? The chdir tests need to be fudged on JVM.
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
FROGGS donaldh: see test t/nqp/19
github.com/perl6/nqp/blob/master/t...ops.t#L111 # poor mans fudge 21:32
21:33 Vlavv left
donaldh thx FROGGS, its used for parrot. I'll use same. 21:33
FROGGS cool
lizmat jnthn: it segfaults on: 21:36
method at_key($k --> Int) {
my $elems := nqp::getattr(self, Bag, '%!elems');
my class Bag does Baggy { 21:37
jnthn: changing the gettattr to Baggy, gives "Can not get attribute '%!elems' declared in class 'Baggy' with this object"
so I guess it *has* to be Bag
if Baggy does Associative, that should be enough for Bag, right? 21:38
jnthn lizmat: Yes, has to be the class the attr was composed into. 21:43
And yes, doing is transitive 21:44
lizmat guess it's not workng right yet
:-(
21:45 agre joined
lizmat $ perl6 -e 'bag( <a b b c c c> )<b>.say' 21:46
Segmentation fault: 11
$ git diff | wc -l 21:48
812
it has become a rather large diff
jnthn: suggestions on attacking the segfault ?
jnthn gdb? :) 21:50
dalek ast: 7cf469f | (Donald Hunter)++ | S32-io/IO-Socket-INET. (2 files):
Enable INET tests on Mac OS X. Extend timeouts for JVM.
lizmat gist.github.com/lizmat/6470437 the diff of my Set/Bag refactor 21:51
pmurias jnthn: did anything in nqp change recently in regards how the setting is handled? 21:52
lizmat jnthn: > set()<a>
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000008
0x00000001017b95ca in exists_key ()
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...
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...
pmurias: Oh, I hate it when that happens...it's a pain to debug...
pmurias: Often it's missing sc write barrier disabling...
pmurias: Or maybe mishandling of the compiling SC stack
21:55 denis_boyun left
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
lizmat: Well, that's a null pointer access, or thereabouts...
donaldh will look at the failing nqp tests on jvm another day, if someone else doesn't get there first.
lizmat fwiw, it generates *exactly* the same error in different runs 21:56
pmurias jnthn: I have mostly seen it when I accidently load the wrong QRegex or something like that :( 21:58
dalek p/donaldh-sockets: 309b39a | (Donald Hunter)++ | src/vm/jvm/runtime/org/perl6/nqp/io/ (3 files):
donaldh first hack on sockets for JVM.
22:00
p/donaldh-sockets: 991581a | (Donald Hunter)++ | src/vm/jvm/ (3 files):
Initial ops for socket IO using NIO.
p/donaldh-sockets: 8d8b466 | (Donald Hunter)++ | src/vm/jvm/ (6 files):
Added server socket and process pipe to IO.
p/donaldh-sockets: d1a9af0 | (Donald Hunter)++ | / (4 files):
Add nqp::openpipe tests (JVM only)
p/donaldh-sockets: a8c4ac1 | (Donald Hunter)++ | src/vm/jvm/ (5 files):
Add nqp::setinputlinesep for JVM.
p/donaldh-sockets: 8b1a699 | (Donald Hunter)++ | t/nqp/19-file-ops.t:
Fudged the chdir tests on jvm.
p: 309b39a | (Donald Hunter)++ | src/vm/jvm/runtime/org/perl6/nqp/io/ (3 files):
donaldh first hack on sockets for JVM.
22:02
p: 991581a | (Donald Hunter)++ | src/vm/jvm/ (3 files):
Initial ops for socket IO using NIO.
p: 8d8b466 | (Donald Hunter)++ | src/vm/jvm/ (6 files):
Added server socket and process pipe to IO.
p: d1a9af0 | (Donald Hunter)++ | / (4 files):
Add nqp::openpipe tests (JVM only)
p: a8c4ac1 | (Donald Hunter)++ | src/vm/jvm/ (5 files):
Add nqp::setinputlinesep for JVM.
p: 8b1a699 | (Donald Hunter)++ | t/nqp/19-file-ops.t:
Fudged the chdir tests on jvm.
p: 92cda32 | (Donald Hunter)++ | / (12 files):
Merge pull request #121 from perl6/donaldh-sockets

Implement sync sockets, pipes on JVM using NIO.
synopsebot Link: rt.perl.org/rt3//Public/Bug/Display.html?id=121
colomon woah
tadzik \o/
jnthn donaldh++ :D# 22:06
donaldh jnthn: your initial work on NIO was nice and easy to extend. 22:07
donaldh is looking forward to async NIO
pmurias "ARRRGHHH", more stuff to implement in nqp-js ;)
donaldh thinks there is now a backends arms race 22:08
masak arms races are fine, as long as people are civil about it. :) 22:09
'night, #perl6
lizmat jnthn: the segfault happens here: my $elems := nqp::getattr(self, Bag, '%!elems'); 22:11
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?
jnthn after the segfault, type "bt" and hit enter
lizmat ah, ok
lizmat needs to rebuild :-(
pmurias jnthn: using | was causing the problem
jnthn pmurias: NFA pre-computation?
Or caching maybe... 22:14
pmurias something very crazy for sure as I was using it in the compiler to quote strings 22:15
lizmat jnthn: added backtrace to gist.github.com/lizmat/6470437 22:21
22:21 shinobicl_ left
jnthn lizmat: No, it's outside of the attribute lookup 22:22
What do you do to elems? 22:23
Oh, better question
What is %!elems type wise?
lizmat has %!elems
nothing special
jnthn Right, but it's a Perl 6 hash...
lizmat my role Baggy does Associative {
has %!elems; # should be UInt
jnthn And then you do: 22:24
nqp::existskey($elems, nqp::unbox_s($key))
But that's meant to be used on a VM-level hash...
It should *not* SEGV and I dunno why it does...
JVM mighta given you a better clue...
lizmat my $elems := nqp::getattr(self, Bag, '%!elems');
jnthn Right, that'd be a Perl 6 hash. 22:25
Not an nqp::hash() which a Perl 6 hash has it's its $!storage
lizmat oh? getattr gives a Perl6 hash?
jnthn No, but a %!elems attribute is initialized to a Perl 6 hash
nqp::getattr give syou whatever is in the slot
*gives
pmurias \h and \v combined give \s? 22:26
lizmat ah, so I should just use .exists on it?
jnthn yeah
I'm skeptical about your BUILD submethod, btw 22:27
lizmat open to suggestions
22:27 bbkr_ joined
jnthn oh, no... 22:27
lizmat what's wrong with it?
jnthn Well, I expected it to be the thing that sets the attr is all... 22:28
yeah, I think it isn't quite right...
new does self.bless(:elems(%e));
But BUILD doesn't store to %!elems... 22:29
lizmat should it? isnt that what the BUILD in Mu does ?
something like nqp::getattr(self, Bag, '%!elems') := %elems ? 22:30
22:31 bbkr left
jnthn No, if you write a submethod BUILD in a class you say, "I will be responsible for setting the attributes" 22:32
nqp::bindattr(self, Bag, '%!elems', %elems);
lizmat building... 22:33
dalek kudo-js: 63f071d | (Pawel Murias)++ | bin/process-qregex-tests:
Improve the process-qregex-tests script to handle rx_metachars.t.
22:35
kudo-js: 563c908 | (Pawel Murias)++ | src/QAST/Compiler/JavaScript.nqp:
Fix handling of rxsubtype cclass.
kudo-js: 2803537 | (Pawel Murias)++ | / (2 files):
Fix handling of \n in regexes, implement conjseq rxsubtype, implement bol,eol,rwb,lwb anchors
kudo-js: 878ab69 | (Pawel Murias)++ | src/QAST/Compiler/JavaScript.nqp:
Fix quoting of strings.
kudo-js: 5058344 | (Pawel Murias)++ | / (4 files):
Implement EDGE_CHARLIST in runNFA.
kudo-js: a55eb58 | (Pawel Murias)++ | runtime.js:
Fix bug in runNFA.
22:37
kudo-js: 603db43 | (Pawel Murias)++ | / (3 files):
Pass rx_metachars.

Do not use | in the regexes in the backend as it's causing wierd serialization issues. Make \s accept all horizontal and vertical whitespace.
lizmat jnthn++, that seems to do the trick! 22:38
22:40 Vlavv joined
lizmat fixing all cases and rebuilding 22:44
donaldh IO::Socket on JVM - github.com/rakudo/rakudo/pull/206 22:48
timotimo yaaaaaaay 22:50
donaldh goodnight #perl6 22:51
tadzik donaldh++
jnthn 'night, #perl6 22:54
22:54 donaldh left 22:58 Bzek joined
lizmat gnight jnthn! 22:59
23:00 agre left 23:02 hummeleBop left 23:13 pmurias left 23:25 panchiniak left
dalek kudo/nom: b55712f | (Elizabeth Mattijsen)++ | / (9 files):
Refactor of Set/Bag using roles, jnthn++ for gdb support
23:28
lizmat finally clean, *phew*
23:28 benabik left
timotimo cool :) 23:28
lizmat unfudging tests now, and then to bed :-) 23:31
timotimo cool, the jvm part got 120 new passes last daily 23:34
23:34 REPLeffect left 23:35 jnap left, geekosaur left
lizmat we aim to pass :-) 23:35
23:35 geekosaur joined
timotimo :3 23:35
sjohnson :3 23:37
dalek ast: bb23f9a | (Elizabeth Mattijsen)++ | S0 (2 files):
Unfudge all passing tests after the Set/Bag refactor
23:38
timotimo wow 23:40
i can't actually find a mention of infix:<~> being specced as list associativity 23:43
dalek ast: ccfc662 | (Elizabeth Mattijsen)++ | S0 (2 files):
Turn lots of skipped tests into todo's (they don't bomb anymore)
23:46
lizmat sleep& 23:47
timotimo gnite!
23:49 ajr_ left, jnap joined 23:54 skids joined