»ö« 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:02 fgomez left 00:15 konundra left 00:24 benabik joined 00:25 fgomez joined, jaldhar left 00:27 fgomez left, jeffreykegler joined 00:28 Mouq left, fgomez joined 00:29 jeffreykegler left 00:35 fridim_ joined
diakopter .tell Mouq ah, okay. good to know. thanks for doing that! :) 00:35
yoleaux diakopter: I'll pass your message to Mouq.
preflex yoleaux: you have 1 new message. '/msg preflex messages' to read it.
diakopter heh.
00:38 btyler joined 00:41 hypolin joined, ggoebel2 joined 00:42 btyler left 00:43 ggoebel left, ggoebel joined 00:44 ggoebel3 joined
japhb diakopter, What's the current state on Rakudo portability? Is it up at all on MoarVM yet, or is work still continuing on the NQP port? 00:45
00:46 ggoebel2 left, cognominal left 00:48 ggoebel left 01:03 ggoebel3 left 01:05 japhb left 01:15 ggoebel joined 01:20 lue joined 01:27 ssutch left 01:32 JimmyZ left
[Coke] I wish to nuke preflex from orbit. 01:38
01:38 JimmyZ joined 01:44 ggoebel2 joined 01:45 ggoebel3 joined 01:46 ggoebel left, JimmyZ left 01:47 ggoebel4 joined 01:48 ggoebel2 left 01:49 ggoebel5 joined, ggoebel3 left 01:51 JimmyZ joined 01:52 ggoebel4 left 02:18 cognominal joined 02:27 epli joined 02:33 JimmyZ_ joined 02:34 JimmyZ_ left, JimmyZ_ joined 02:38 JimmyZ left 02:41 ggoebel5 left 02:55 JimmyZ_ is now known as JimmyZ 03:17 jaldhar joined 03:25 epli left 03:28 jaldhar left, japhb joined 03:29 jaldhar joined 03:32 odoacre joined 03:47 preflex left, preflex_ joined, ChanServ sets mode: +v preflex_ 03:48 preflex_ is now known as preflex
lizmat good *, #perl6! 04:09
r: { my $a will post { say "done" } } # alas, will post {…} doesn't work either yet 04:10
camelia rakudo bb86d1: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤ in block at /tmp/LMHE9eUruD:1␤␤»
dalek kudo/nom: 54840de | (Elizabeth Mattijsen)++ | src/core/Variable.pm:
Alas, will post {...} doesn't work yet
04:11
04:23 odoacre left
japhb o/ lizmat 04:24
lizmat japhb /o
japhb How goes it? 04:25
04:26 dayangkun joined
lizmat apart from the heat (35 degrees expected today) and the fact that I'm banging my head against rakudo internals 04:27
I'm doing fine :-)
up since 5am here, to get some coolness
japhb Yeah, that's decently hot ... especially if it's humid too. 04:28
No A/C?
04:28 xilo left
lizmat nope. we're cooling the house now with air from outside, which is getting close to 22 already 04:28
then probably around 7:30 we close down everything because then outside is warmer than inside 04:29
we've been able to keep inside below 23
that way
japhb Not too bad ...
lizmat indeed, but it takes vigilance and a constant monitoring of outside temperature 04:30
I'll probably be going to bed again later
04:31 Ben_Goldberg left
japhb That's probably wise as well. Beware of getting yourself into a split sleep schedule though .... 04:31
What are you fighting with in the Rakudo internals?
04:32 btyler joined
lizmat several phasers not working from my $a will foo {…}, namely, <init end post compose> 04:36
once block not returning its return value
my $a is default not working for arrays and hashes 04:37
my $a of TypeObject not working for arrays and hashes
that kind of stuff
not being able to throw an exception out of a will foo {…} trait mod
will foo {..} phasers not seeing the variable on which they are declared 04:39
will foo {..} phasers not setting $_ to the variable being declared 04:40
I guess that about sums things up for blockers for me
:-)
diakopter *boggles*
lizmat seems I will have to really get into NQP internals to be able to fix these :-( 04:41
diakopter Rakudo Actions, at least
lizmat yes, trying to make sense of that and how to build optrees 04:42
I sort of roundrobin between these problems, hoping for a breakthrough 04:43
they are all sort of prerequisites for getting "is default" working for Any typed variables
which in turn is needed to get Nil the specced functionality
r: my Int $a is default(42); say $a; $a=65; say $a; $a=Nil; say $a # works 04:44
camelia rakudo bb86d1: OUTPUT«42␤65␤42␤»
lizmat r: my $a is default(42); say $a; $a=65; say $a; $a=Nil; say $a # doesn't work
camelia rakudo bb86d1: OUTPUT«42␤65␤Nil␤»
04:58 Nom- left
diakopter r: my $a is default(42) but Int; 05:00
camelia rakudo bb86d1: OUTPUT«Cannot mix in non-composable type Int into object of type Int␤ in sub infix:<but> at src/gen/CORE.setting:14755␤ in sub infix:<but> at src/gen/CORE.setting:14751␤ in block at /tmp/g4VJGRz2OT:1␤␤»
diakopter r: my $a is default(42) but 42;
camelia rakudo bb86d1: ( no output )
lizmat I haven't looked at "but" yet 05:01
05:11 jaldhar left
lizmat somehow I'm confusing the fudging logic in tests: 05:11
05:11 birdwindupbird joined
lizmat ok 3 - # SKIP declared variable not visible in block yet# TODO will init NYI 05:11
how can a test be marked "SKIP" *and* "TODO" 05:12
and two tests down, a todo test not getting its TODO?
head hits keyboard and creates a new language
05:13 jaldhar joined
lizmat finds one shouldn't put a semi-colon after a "#?rakudo todo "will post NYI"" 05:16
05:16 grondilu left
timotimo °\ 05:16
dalek ast: acd0c40 | (Elizabeth Mattijsen)++ | S04-declarations/will.t:
Reorganised "will foo {...}" tests, added tests for will (pre|post)
05:18
05:21 odoacre_ joined, birdwindupbird left
lizmat r: { KEEP say "keep"; UNDO say "undo" } # not entirely what I expected 05:21
camelia rakudo 54840d: OUTPUT«undo␤»
lizmat r: { KEEP say "keep"; UNDO say "undo"; 1 } # not entirely what I expected
camelia rakudo 54840d: OUTPUT«keep␤»
lizmat r: { 1; KEEP say "keep"; UNDO say "undo" } # not entirely what I expected
camelia rakudo 54840d: OUTPUT«undo␤»
lizmat feels like a rakudobug to me 05:23
05:25 btyler left 05:40 colomon left
lizmat back to sleep& 05:50
[Coke] sleep! I knew I was forgetting something. 05:57
05:58 fridim_ left 06:06 dmol joined, dayangkun left
timotimo i figured out how to uppercase cokes nak^Hme :) 06:17
┌ ┐ 06:18
│COKE│
└ ┘
that's how
06:21 SamuraiJack_ joined
moritz o/ 06:37
06:47 mj41 joined 06:54 kaleem joined 07:04 sidus joined 07:14 sqirrel joined 07:22 leont joined 07:45 FROGGS joined
FROGGS o/ 07:47
08:11 sqirrel left 08:19 leont left 08:24 pupoque_ left 08:25 pupoque_ joined
masak mornin', #perl6 08:26
08:30 ssutch joined
FROGGS hi masak 08:30
masak: are you versed in the pir representation of the nqp/rakudo code? 08:31
08:32 sqirrel joined
masak lizmat: I don't see S04 spec'ing the relative order of NEXT phasers in the same loop block. it's an interesting question, and I don't have any intuition in the matter. 08:33
FROGGS: I can read PIR most of the time, but I'm no expert.
08:34 dmol left
FROGGS k 08:34
08:34 dmol joined
FROGGS I want to include a sub directly in pir, so I can call it from rakudo's Q::PIR blocks 08:34
but if I include a pir script that just declares a sub, this break weirdly 08:35
masak sounds like a practice we've moved away from in the past few years.
FROGGS here I had included my test script: github.com/perl6/nqp/blob/master/s...nd.nqp#L97 08:36
yeah, it should be just a test
I tried to have a lexical sub, that emits pir code, and I can even invoke that sub from a Q::PIR block, but I cant use this lexical sub as a Task of a thread 08:37
and I can do that using a pir .sub in a pir-only test script
08:40 pupoque_ left, dmol left 08:49 pupoque_ joined 08:52 markov joined 08:55 dmol joined 09:04 autumn left 09:07 autumn joined 09:08 obra joined 09:15 sqirrel left 09:21 effbiai left 09:22 effbiai joined 09:35 pupoque_ left 09:37 pupoque_ joined 09:41 kaleem left 09:43 raiph left 09:46 ssutch left 09:50 pupoque_ left 09:51 dmol left 09:52 dmol joined, pupoque_ joined 10:09 berekuk joined 10:11 hypolin left 10:12 daxim joined 10:19 labster left, labster joined 10:21 sidus left 10:26 sidus joined 10:41 sidus left 10:48 benabik_ joined 10:49 benabik left, benabik_ is now known as benabik 10:57 daniel-s joined 10:59 berekuk left 11:05 kaleem joined
masak interesting on naming in software: thinkrelevance.com/blog/2013/07/31/on-naming 11:10
the two names that I'm most proud of having contributed to Perl 6, by the way: "ecosystem" and "World" 11:11
daxim metaphors, eh 11:12
masak and daxim at tanagra 11:13
tadzik :D
11:14 Mouq joined
diakopter Mouq: hi. I left you a message 11:16
(type something to see it)
Mouq Hey, I saw it 11:17
yoleaux 00:35Z <diakopter> Mouq: ah, okay. good to know. thanks for doing that! :)
masak daxim: that sounds deep, but I don't get it. 11:21
lizmat r: { UNDO say "undo" } # I don't see the block fail, so why would it UNDO?
camelia rakudo 54840d: OUTPUT«undo␤»
daxim hand in your geek card
tadzik got it immediately
diakopter 2
masak: I thought we have the tanagra conversation before (you and I) 11:22
masak maybe. don't remember any such conversation.
tadzik finally, my years of watching tng paid off
diakopter haha; before you were born! 11:23
diakopter <- age-ist, apparently
FROGGS masak: en.memory-alpha.org/wiki/Darmok_%28episode%29
diakopter his arms spread wide.
tadzik ha, I was born back then :)
FROGGS tembo, his eyes closed 11:24
tadzik I many, I have been born already
11:24 coax75ohm joined
diakopter *giggle* 11:24
masak I see.
tadzik also, I enjoyed "things that never happened in Star Trek"
FROGGS tadzik: hmm?
tadzik like "the enterprise encounters a new life form, which is neither humanoid nor made of pure energy"
www.st-minutiae.com/humor/neverhappen.html 11:25
daxim there are a lot of pages like that
11:25 rindolf joined
tadzik which is actually false, there was such creature in TOS 11:25
FROGGS and the one new crewman (that is a friend of the commander or so), that won't die after they beam down to a planet
tadzik if a new guy beams down...
FROGGS "He is dead Jim" 11:26
lizmat r: { UNDO say "undo" } # rakudobug?
camelia rakudo 54840d: OUTPUT«undo␤»
masak r: say { ; } 11:27
camelia rakudo 54840d: OUTPUT«Block.new()␤»
masak r: say { ; }()
camelia rakudo 54840d: OUTPUT«Nil␤»
11:27 pmurias joined
masak doesn't returning Nil mean that the UNDO phaser is triggered? 11:27
r: say { UNDO say "undo" }()
camelia rakudo 54840d: OUTPUT«undo␤Nil␤»
11:28 fhelmberger joined
masak I think so. non-bug, I think. 11:28
11:28 fhelmberger left, fhelmberger joined
FROGGS Counsellor Troi states something other than the blindingly obvious. # lol 11:28
tadzik "he seems angry" :D 11:29
lizmat S04:952: "Since leaving a block is considered a successful return, breaking out of one with C<succeed> is also considered a successful return for the purposes of C<KEEP> and C<UNDO>."
synopsebot Link: perlcabal.org/syn/S04.html#line_952
lizmat masak: I don't think it is about the return value of the block 11:30
at least, that's not how I read the spec 11:32
masak how do you read the spec? :)
lizmat that may be how it is currently implemented
S04:1559: exiting a block successfully or insuccesfully 11:33
synopsebot Link: perlcabal.org/syn/S04.html#line_1559
lizmat I would think exiting with a fail or uncaught exception, would indicate an unsuccessful exit only 11:34
you're saying a simple Nil return of a block, constitutes an unsuccessful exit ?
masak "In the absence of error exception propagation, a successful exit is one that returns a defined value or parcel." -- S04:1759 11:35
synopsebot Link: perlcabal.org/syn/S04.html#line_1759
11:36 colomon joined
masak hugme: hug synopsebot 11:36
hugme hugs synopsebot
colomon is going to repeat his lines that don't appear to have made it to #perl6 -- or at least the chatbot. 11:39
colomon is piping niecza's output to rakudo to get something practical done
\o/
colomon should probably get around to implementing rename in Niecza and TagTools support in jakudo, so he doesn't have to do that again
lizmat masak++ 11:40
S04:1770: should probably read "return Nil" nowadays, no? 11:41
synopsebot Link: perlcabal.org/syn/S04.html#line_1770
11:43 sqirrel joined, Mouq left
lizmat hmmm.. I guess not: explicit scalar undef 11:44
11:44 Mouq joined
lizmat scratch that 11:44
dalek ecs: c7a5da2 | (Elizabeth Mattijsen)++ | S04-control.pod:
Refer to Definition of Success near KEEP and UNDO
11:47
11:48 PacoLinux joined
masak lizmat: S04 definitely isn't very "coherent" in what it considers to be a successful block exit. as evidenced by us reaching diametrically opposite conclusions from the same synopsis. 11:48
lizmat well, I hope the link I added will make it easier for people to grok 11:50
masak ah, yes. 11:51
lizmat++
tadzik: I'm not at all sure this merits a change, but my first surprise with File::Find was that I'm suppsed to do 'find' rather than 'File::Find::find' (or import into my namespace). 11:57
tadzik masak: hm. Does File::Find::find not work? :)
masak nope.
tadzik uh, curious
oh, because it's not our
masak right.
also, a simple find(:dir<.>, :name<foo>) seems to hang. 11:58
though it's possible I was too impatient. this is a rather big directory structure.
masak runs it on something smaller
tadzik it should be lazy 11:59
11:59 pupoque_ left
masak sure, I see that from source. 12:00
which is fine.
tadzik but not from practice? :P
masak in practice, it hangs.
I tried it on a smaller directory. still hangs.
12:00 pupoque_ joined
tadzik oddness 12:00
masak are you sure it's not suckered by the '.' and '..' things that ufo was? 12:01
oh wait!
tadzik there's more!
masak this one actually died instead.
tadzik :|
masak is File::Find modeled on FIND(1) of Unix?
tadzik sort of
masak then I think it should just skip over unreadable directories rather than dying. 12:02
tadzik that's what keep-going is for
masak I tried it on my /tmp directory, which had something non-readable in it.
oh, it's there but not the default? :/
tadzik yeah. Should it be?
masak if it's modeling FIND(1), yes, I think so.
I see no other reason it shouldn't be. 12:03
tadzik well, find() will have a way to signal a user
consider the following
find(:dir</root>), returns empty list
that's a bit WAT
masak ok, with :keep-going it finished.
agreed.
so I assume the first find() I have going is just sllllllooooooouuuuuw. 12:04
tadzik are you eagerifying it?
12:05 rindolf left 12:06 skids left
masak I'm looping on its return value. 12:07
ok, adding debug output to File/Find.pm to see if it's progressing at all. 12:09
oh, seems it is.
man, that's slow.
this is through no fault of yours, tadzik. 12:11
the File::Find module looks fine.
I'm going to... not use it, though. a `shell 'find ...'` should serve me better in this case. 12:12
12:13 konundra joined, Ulti left, Ulti joined
FROGGS masak: btw, I know now why I cant create a task out of a .sub, the option that get passed to a .sub decl are ":lex :outer(...)", and these are messing it up 12:14
masak for the record, the directory structure I was trawling contains 33884 entries, 6460 of which are directories.
I aborted the File::Find search after 9m10s. 12:15
FROGGS masak: so, I'd need to mark that sub declaration somehow, and skip these particular options
masak a corresponding (Rakudo) program running qx[find -name foo] took 8s, most of which were spent in the Rakudo compiling stage. the `find` was more or less instantaneous.
FROGGS: that all sounds wrong somehow. 12:16
FROGGS :o)
no doubt
masak FROGGS: those options are what give the sub its place in the whole hierarchy of nested scopes.
FROGGS: I don't think you're meant to skip them.
lizmat r: { LEAVE say "leave"; KEEP say "keep"; 1} # KEEP runs before LEAVE ? 12:17
camelia rakudo 54840d: OUTPUT«keep␤leave␤»
FROGGS masak: then maybe parrots tasks are unable to handle them right... as I said earlier, this is only a test that will end up in a branch/fork eventually, just to show what it does 12:18
lizmat r: { KEEP say "keep"; LEAVE say "leave"; 1} # nope, just the reverse order in which the are specified
camelia rakudo 54840d: OUTPUT«leave␤keep␤»
lizmat *they
12:19 Ulti left
FROGGS lizmat: see rakudo/src/core/Block.pm 12:20
12:20 PacoLinux left
tadzik masak: thats still very weird 12:20
FROGGS for some phasers it pushes, for some it unshifts
lizmat yup, and according to spec, KEEP and UNDO are part of the LEAVE queue 12:21
and LEAVE executes in reverse order of specification
12:21 pmurias left 12:22 Ulti joined 12:24 pmurias joined 12:30 rindolf joined 12:38 pmurias left
moritz tour.golang.org/?ModPagespeed=noscript#3 why does that random number generator remind me of XKCD? 12:39
12:40 pmurias joined 12:41 sidus joined
JimmyZ My favorite number is always 1 12:41
12:43 SamuraiJack_ left
dalek ast: 5eab087 | (Elizabeth Mattijsen)++ | S04-declarations/will.t:
Added tests for will (keep|undo|compose)
12:44
12:47 kaleem left
masak JimmyZ: so is mine. though as favorite numbers go, 1 is not so bad. 12:52
:)
[Coke] timotimo++ 12:53
JimmyZ :) 12:55
12:55 rindolf left 13:03 Mouq left 13:31 berekuk joined 13:33 skids joined 13:38 FROGGS left, fhelmberger left 13:42 jeff_s1 left 13:43 jeff_s1 joined 13:45 xilo joined
moritz #go on freenode is about the game, #golang is invite-only 13:50
so, where do golang-people go? 13:51
13:51 yves joined
masak #gonuts 13:51
I have no idea how I know this.
moritz that has just one other inhabitant 13:52
masak :/
moritz #go-nuts
masak oh, #go-nuts
flussence maybe they all go directly to #jail
masak at work, we have 8 versions of the same file, spread over 4 repositories. I decided to make a little phylogenetic analysis to see what can be said about the evolution of the script. :) 13:54
turns out once you have all the information, this is really easy to do with Perl 6 and Git.
even across repositories.
moritz flussence: go directly, do not collect $200 :-)
[Coke] oh, go is where I'd go to get my modula-3 fix these days. huh. 13:55
masak [Coke]: Python doesn't do it for you? :)
now what I want to do is for the script to learn to distinguish "commits that were only for this copy" and "commits that should be patched across all copies".
13:56 btyler joined
[Coke] ahahahah!: plus.google.com/u/0/10548785438864...jWQXbWAXxL 13:58
(from merlyn)
14:00 FROGGS joined 14:03 pmurias left
GlitchMr nrs: my $a = 42; $a =+ 2 14:04
nr: my $a = 42; $a =+ 2
std: my $a = 42; $a =+ 2 14:05
camelia rakudo 54840d, niecza v24-88-g1f87209: ( no output )
std c2215f0: OUTPUT«Potential difficulties:␤ =+ is not an infix operator (to suppress warning put space between infix = and prefix +) at /tmp/dWDAzgUP77 line 1:␤------> my $a = 42; $a =⏏+ 2␤ok 00:00 43m␤»
lizmat nr: my $a = 42; $a =+ 2; say $a
GlitchMr Could this specific case report specific error, like 'Reversed += operator' Perl 5 makes?
camelia rakudo 54840d, niecza v24-88-g1f87209: OUTPUT«2␤» 14:06
lizmat seems it parses it as though there was a space between = and +
GlitchMr Because this is the only way it could be really parsed
lizmat feels to me std is right, and rakudo and niecza are wrong 14:07
GlitchMr STD only makes a warning.
It still parses it as $a = +2
lizmat ah, ok
GlitchMr std: my $a = 42; $a =. 2
camelia std c2215f0: OUTPUT«===SORRY!===␤Bogus term at /tmp/6elwqFPpWS line 1:␤------> my $a = 42; $a =⏏. 2␤Parse failed␤FAILED 00:00 43m␤» 14:08
GlitchMr rn:: my $a = 42; $a =. 2
rn: my $a = 42; $a =. 2
camelia rakudo 54840d: OUTPUT«===SORRY!===␤Unsupported use of . to concatenate strings; in Perl 6 please use ~␤at /tmp/gk2Bn4WhSq:1␤------> my $a = 42; $a =. ⏏2␤»
..niecza v24-88-g1f87209: OUTPUT«===SORRY!===␤␤Bogus term at /tmp/3SEelWJZsA line 1:␤------> my $a = 42; $a =⏏. 2␤␤Parse failed␤␤»
lizmat hmm… doesn't feel right to me then in all cases :-) with whitespace sensitivity in Perl6
GlitchMr Perl 6 still tries to avoid whitespace sensitivity
lizmat well, it feels to me that "=+' is in the same ballpark as "=." 14:09
masak I think the '=+' should only merit a warning. (and so STD has it right already.) 14:10
GlitchMr I think compiler should try finding beginner errors.
masak STD does.
GlitchMr I think that =+ should propose +=. 14:11
masak ok.
GlitchMr I think it's more likely than = +.
masak me too.
14:12 rindolf joined
GlitchMr I wanted to find some programming mistakes, but most of these don't apply to Perl 6. 14:15
For example, stuff like if (something); { }
(or simply cannot be easily found by compiler, like no indendation) 14:16
You cannot have statement after if, so it's simply impossible to put semicolon here. 14:17
Actually, I wonder what error message it gets
std: sub something {}; if (something); { }
camelia std c2215f0: OUTPUT«===SORRY!===␤Missing block at /tmp/BH3eF2rd5_ line 1:␤------> sub something {}; if (something)⏏; { }␤ expecting any of:␤ argument list␤ statement modifier loop␤Parse failed␤FAILED 00:00 44m␤»
GlitchMr Good
[Coke] perlcritsix. 14:18
perltidy?
I wanted to write a coldfusion grammar in perl6 just so I could pretty print. 14:19
14:19 PacoAir joined
[Coke] which reminds me, I could probably do that and bundle it up for cfeclipse soon. 14:20
14:21 PacoAir left, PacoAir joined 14:23 Mouq joined
corecatcher is there a perl6 grammer debugger? :) 14:25
moritz yes! 14:26
corecatcher any hint?
lizmat Grammar::Debugger ?
moritz github.com/jnthn/grammar-debugger
corecatcher: in general, modules.perl6.org is a good starting point for such questions
corecatcher hmkay, trying next time, thanks for the hint 14:27
moritz you're welcome, and no problem 14:28
masak it's so nice to be able to answer "yes!" to "is there an X?" questions ;) 14:36
corecatcher its even neater to get that yes on the other side
14:36 stevan_ left 14:37 jaldhar left
corecatcher that Tracer is nice! :) 14:37
moritz indeed 14:40
14:40 Psyche^ left
masak jnthn++ 14:41
14:42 Psyche^ joined
GlitchMr rn: say [+] grep { $_ %% 3 || $_ %% 5 }, ^1000 14:46
camelia rakudo 54840d, niecza v24-88-g1f87209: OUTPUT«233168␤»
GlitchMr rn: say [+] grep * %% 3|5, ^1000 14:48
14:48 Ulti left
camelia rakudo 54840d: OUTPUT«166838␤» 14:48
..niecza v24-88-g1f87209: OUTPUT«499500␤»
GlitchMr What am I doing wrong?
14:48 Ulti joined
GlitchMr p: [+] grep * %% 3|5, ^1000 14:48
camelia pugs: OUTPUT«*** ␤ Unexpected "% 3"␤ expecting operator␤ at /tmp/ddphpARP4Y line 1, column 13␤»
GlitchMr yeah 14:49
p: [+] grep {$_ %% (3|5)}, ^1000
camelia pugs: OUTPUT«*** ␤ Unexpected "% ("␤ expecting operator␤ at /tmp/H7bRypu98j line 1, column 15␤»
GlitchMr rn: [+] grep {$_ %% (3|5)}, ^1000
camelia rakudo 54840d, niecza v24-88-g1f87209: ( no output )
GlitchMr rn: say [+] grep {$_ %% (3|5)}, ^1000
camelia rakudo 54840d, niecza v24-88-g1f87209: OUTPUT«233168␤» 14:50
GlitchMr rn: say [+] grep {$_ %% 3|5}, ^1000
camelia rakudo 54840d, niecza v24-88-g1f87209: OUTPUT«499500␤»
GlitchMr What is precedence of %% compared |?
JimmyZ rn: say [+] grep * %% (3|5), ^1000
GlitchMr Because this really confused me
camelia rakudo 54840d, niecza v24-88-g1f87209: OUTPUT«233168␤»
GlitchMr %% has multiplicative precedence... I see... 14:51
Seriously?
moritz why not?
% has the same
GlitchMr This is confusing for an operator that returns a boolean.
But I assume it makes sense, considering it's modulo.
moritz just because it bit you this time doesn't mean it's generally wrong 14:52
14:52 yves left
GlitchMr I would expect it to have chaining infix precedence. 14:52
rn: say [+] grep * %% 2, (1, 1, * + * ...^ * > 4e6) 14:56
camelia rakudo 54840d, niecza v24-88-g1f87209: OUTPUT«4613732␤»
masak GlitchMr: chaining infix precedence only really makes sense if you have at least one use case where you'd want to chain %% 15:00
GlitchMr: like $low < $x < $high
GlitchMr Ok, structural infix
My mistakes 15:01
My mistake*
15:01 jaldhar joined
GlitchMr Except structural infix doesn't contain boolean operators... 15:01
Or perhaps ff precendece? 15:02
It would make more sense if it would work like equality operator, because... it's equality operator (sort of)
moritz $x %% $y %% $z 15:04
lizmat nwc10++ # for comment on diakopter++ grant proposal
colomon diakopter grant proposal? url? 15:06
GlitchMr rn: say 1 %% 0
camelia niecza v24-88-g1f87209: OUTPUT«Unhandled exception: System.DivideByZeroException: Division by zero␤ at (wrapper managed-to-native) object:__icall_wrapper___emul_lrem (long,long)␤ at Builtins.mod (Niecza.Constants c, Niecza.Variable a1, Niecza.Variable a2) [0x00000] in <filename unknow…
..rakudo 54840d: OUTPUT«True␤»
GlitchMr Rakudo says that 0 can be divided by 0?
I mean, 1 can be divided by 0.
[Coke] colomon: news.perlfoundation.org/2013/07/hag...ation.html
GlitchMr Is definition of % 0 broken in Rakudo, or something? 15:07
r: say 0.5 % 0; say 1 % 0
camelia rakudo 54840d: OUTPUT«0.5␤0␤»
GlitchMr Hmmm... I'm doing % 1 for some reason.
r: say 1.5 % 0
camelia rakudo 54840d: OUTPUT«1.5␤»
GlitchMr Actually... I'm doing... huh?
masak it's a no-op.
which makes a weird kind of sense, I guess. 15:08
but could equally well be flagged as a division by 0.
r: say 1.5 / 0
camelia rakudo 54840d: OUTPUT«Divide by zero␤ in method sink at src/gen/CORE.setting:11237␤ in method BUILDALL at src/gen/CORE.setting:887␤ in method bless at src/gen/CORE.setting:828␤ in method new at src/gen/CORE.setting:813␤ in method new at src/gen/CORE.setting:811␤ in method floor at…
masak arguably, 1.5 % 0 should do the same.
GlitchMr % 0 is just broken.
If it checks number type.
lizmat looking
GlitchMr I mean 1.0 % 0 should be equal to 1 % 0 15:09
Well, with exception for return type and stuff like that.
15:10 mj41 left 15:14 jaldhar left
moritz IMHO % 0 should complain about division/modulo by zero 15:14
[Coke] masak reported this bug in 2010. 15:16
rt.perl.org/rt3/Ticket/Display.html?id=77592
lizmat is testing a fix 15:17
should I create a seperate exception "modulo by zero" for this ?
masak hah -- a rakudobug snatched out of my grip by... myself, three years ago.
lizmat: nah. 15:18
[Coke] I think it would be acceptable to reuse an existing divide by zero type.
masak lizmat: it's a division by 0, pure and simple.
15:18 jaldhar joined
masak lizmat: that's how I see most systems flag it. 15:18
[Coke] masak: tcl agrees. ship it. 15:19
moritz though it wouldn't hurt to know whether it came from a /, div, % or %%
masak troo
the expression might have many of them.
lizmat adding that to the exception 15:21
arnsholt Adding it to the error message is probably a good idea, but I suppose the stack trace will include the operator as well 15:23
masak arnsholt++ 15:24
if it does, then it feels kinda superfluos that the exception carries that information, too.
arnsholt I dunno, it doesn't really cost anything to have it in there, and it might save you from inspecting the stack trace =) 15:25
lizmat seems it doesn't like my changes 15:27
… making 15:28
15:28 benabik left 15:29 benabik joined
[Coke] we need to "groom our backlog" 15:33
I HATE RT SO MUCH. 15:34
<ahem>
today's rant: word wrapping of code.
lizmat FWIW: I don't do RT, it's just too much of a hassle 15:37
15:38 daniel-s left
[Coke] ok. if you fix a bug, let someone know so we can close it or mark it appropriately. 15:38
I think we should consider rejecting #69432. 15:39
15:40 jaldhar left
[Coke] nwc10: any suggestions on how to fix bugs on opensolaris if we don't have metal running opensolaris? 15:40
moritz [Coke]: ok, I'll reject it. After having worked on it for a while, I consider it unworkable 15:41
lizmat [Coke]: running spectest now
moritz [Coke]: oh, you're the ticket owner. Do you want to do it?
[Coke] moritz: nope, feel free to steal it and deal with it. 15:42
rakudo: say «a\ b».perl
camelia rakudo 54840d: OUTPUT«("a", "b")␤»
[Coke] (#76120)
r: say ord.Cool #114014 15:43
camelia rakudo 54840d: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling 'ord' will never work with no arguments (lines 1, 1)␤ Expected: :(Cool $s)␤»
[Coke] that smells like a :D is missing.
rt.perl.org/rt3/Ticket/Display.html?id=114402 - that should be moved the the Grammar::Debugger queue, no? 15:44
15:45 fridim_ joined, ssutch joined
moritz what's wrong with ord.Cool? 15:47
I mean with the error message
15:47 stevan_ joined 15:48 sqirrel left
[Coke] moritz: ticket says "LTA". 15:49
lizmat wow, three TODO"s pass :-)
moritz I find it quite awesome 15:50
if you have confused Cool.ord with ord.Cool, that error message reminds you that you have really written ord().Cool 15:51
moritz replies on the ticket
[Coke] moritz: go ahead and close it out, too.
lizmat++
15:52 stevan_ left
dalek kudo/nom: 9d537cc | (Elizabeth Mattijsen)++ | src/core/Exception.pm:
Added :using parameter to DivideByZero exception
15:52
kudo/nom: 4bfd796 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Add divide by zero check for %, add :using info to existing ones
masak [Coke]: re #114402: arguably, yes. 15:54
dalek ast: 0ad06fa | (Elizabeth Mattijsen)++ | S03-operators/arith.t:
Unfudge passing tests and some spello's
15:55
masak moritz: what error message would I have expected? the one STD gave at the end of the original message.
"Unsupported use of bare 'ord'; in Perl 6 please use .ord if you meant $_, or use an explicit invocant or argument" 15:56
masak adds that to the ticket
15:59 benabik left
[Coke] aw, lizmat just removed one of rakudo.jvm's advantages. 16:00
removed? countered? caught up with? 16:01
lizmat hehe
it feels wrong though, doing the check inside the infix
seems to me MMD should do this, but I'm not sure what to use as a signature 16:02
multi infix:<div>(Int:D \a, 0 ) { # does not work
$ perl6 -e 'say 15 / 0' 16:03
Divide by zero using div
maybe showing the operator is not such a good idea after all :-(
dinner& 16:06
[Coke] ponders the recursiveness of adding "I'll add that to the ticket" to the ticket.
wonder if that check could have been in a #?if parrot block. 16:07
eh. not if we want consistant error types. 16:08
16:10 JimmyZ_ joined, benabik joined
[Coke] moritz: if 114966 is concisely expressed as the last comment from you, what is the desired output? 16:10
(and is the original problem just "use the unambiguous way to specify a hash or block") 16:11
masak lizmat: why 'div' rather than 'infix:</>'?
16:13 JimmyZ left, JimmyZ_ is now known as JimmyZ
moritz [Coke]: both should produces Hash() (or nowdays "(Hash)") as output 16:13
16:14 cognominal left 16:17 konundra left
[Coke] r: my %a; say {%a}.WHAT; my %*b; say {%*b}.WHAT 16:21
camelia rakudo 4bfd79: OUTPUT«(Hash)␤(Block)␤»
[Coke] n: my %a; say {%a}.WHAT; my %*b; say {%*b}.WHAT
camelia niecza v24-88-g1f87209: OUTPUT«(Hash)␤(Block)␤»
[Coke] p: my %a; say {%a}.WHAT; my %*b; say {%*b}.WHAT
camelia pugs: OUTPUT«␤␤»
[Coke] ok. can you add your comment to the ticket to help whoever tackles it? 16:22
moritz [Coke]: done. 16:25
[Coke] moritz++
gtodd been 2 months .... but perl6 rox even more :-) 16:26
++ everyone
what happened to rakudo ? it seems waay faster still haven't tried the java vm part 16:27
doh I'm on a different machine :-\ s/seems waay/hope it got/ :-) 16:28
cheerrs
16:28 gtodd left 16:32 daniel-s__ left 16:33 daniel-s__ joined 16:35 dmol left 16:42 benabik left 16:46 kaare_ joined
lizmat masak: do you want the error message to say "using infix:</>"? or are you surprised about it saying "div" rather than "/"? 16:53
the latter surprises me as well :-)
masak the former. 16:56
but I would be fine about it not saying which operator, too.
s/about/with/ 16:57
lizmat how about create a separate candidate? 16:58
what would be its signature?
where not b?
16:59 spider-mario joined, spider-mario left
Mouq As an aside, this might be of interest: gist.github.com/Mouq/6141500 Still running it, but it seems to be working 16:59
16:59 spider-mario joined
Mouq Ah, slight bug 17:05
I think it's fixed 17:08
17:12 zwut00 joined 17:13 vk_ joined
Mouq Yeah, okay; there are these little inconsitencies that keep biting me. I'll be a little less over-zealous and announce when I actually get it provably working :p 17:16
timotimo Mouq: you are aware there's already a smoker? 17:18
Mouq I couldn't find it :p and someone said it was broken
timotimo oh?
masak Mouq++ # experimenting
timotimo i recently ran it, but i forgot where i got it from ;)
ah, it's called 'emmentaler' 17:19
17:19 coax75ohm left
timotimo github.com/tadzik/emmentaler - this one 17:19
Mouq Cool! Now the question is, why do have badges for passing tests on modules.perl6.org, and don't use them? 17:20
tadzik they're not for passing tests
they're for existing tests :P
feather.perl6.nl/~sergot/modules/ used to have lights (like street lights) for passing modules
now colomon++ runs a smoker with web ui 17:21
but I never remember the url
Mouq modules.perl6.org/fame-and-profit last item
colomon that's because it's just a bunch of numbers, and it's not even available to the outside world at the moment.
let me see if I can find my wife's MBP... 17:22
tadzik ah, this one
it was never used :P
timotimo no module is super awesom? :( 17:24
Mouq lol; 'k. I'm not really worried about it. Some just mentioned their doubt of most of the modules still working yesterday 17:25
*Someone
tadzik mayhaps we should have "module of the month"
colomon I've just gotten myself into update hell on my wife's MBP. but I can answer questions about modules directly in the meantime... 17:26
17:28 raiph joined
PerlJam tadzik: +1 if you can find some way to keep it updated. 17:29
tadzik it's been a while since I blug
colomon is blugging at the moment. trying to find a good conclusion. 17:30
PerlJam tadzik: maybe that's a good idea for advent this year. A module a day.
FROGGS PerlJam: that would be awesome for contest too... we choose a month, and the one who makes the most (and most useful) modules within that month wins... 17:34
timotimo ooooh crap 17:35
who's going to maintain the fallout of that? ;)
FROGGS we had such a contest in the #sdl channel, one game per week in march 2012, it was awesome :o)
timotimo: somebody else :P
17:37 pmurias joined
PerlJam FROGGS: have you ever seen the Google AI challenge? If we could run something like that, that would be neat. 17:38
We'd have to pick a problem that wasn't based on speedy answers, but more on strategy. 17:39
17:39 konundra joined
FROGGS hmm, no, never heard of that 17:39
masak: that is it currently: gist.github.com/FROGGS/6141772 17:40
17:40 colomon left
FROGGS masak: I wanna put something in the variable which got written to, to be able to wait for the thread to finish when accessing it 17:41
17:41 colomon joined
PerlJam FROGGS: see planetwars.aichallenge.org/ and aichallenge.org/ 17:41
aww, the ants visualizer is broken. 17:42
I liked that one.
FROGGS wow, 4600 submissions
pmurias PerlJam: aren't a lot of such ai challenges based of maximising the amount of computation in the time given? 17:43
s/of/on
PerlJam pmurias: right, that's why I said we'd need to be judicious in picking a problem. 17:44
17:44 pecastro left 17:46 colomon left
FROGGS damn it, accidentally hitting enter on `make clean` when you want to execute something else sucks 17:46
17:47 colomon joined
colomon tadzik: 97.95.33.142:3001/report 17:48
pmurias PerlJam: bwapi bindings for writing starcraft bots would be awesome 17:49
17:54 benabik joined
lizmat colomon++ 17:57
masak: I'm removing the operator from the DivideByZero exception
because it will most likely show the wrong operator 17:58
this is because Real / Real somewhere in its bowels uses div, and that then fails
the alternative would be to put in a check in *every* candidate at the highest level
but that would mean that legit values are being checked for 0-ness multiple times, which would slow down calculations even more, I would think 17:59
18:01 rindolf left, rindolf joined 18:02 daxim left
masak FROGGS: 'fraid I can't help. :/ 18:04
lizmat: removing it is, then. 18:05
FROGGS masak: you dont have to :o) 18:09
lizmat masak: trying best of both worlds: using parameter is now optional, only % and %% use it, as they only fall back on themselves as it were 18:10
masak lizmat: \o/ 18:17
18:18 rindolf left, rindolf joined
dalek rl6-roast-data: 1022501 | coke++ | / (5 files):
today (automated commit)
18:19
lizmat -0.01% 18:20
[Coke] lizmat: probably the rakudo.parrot todos you were able to remove. 18:22
masak Python allows trailing commas! \o/ 18:23
spider-mario trailing commas are nice
PerlJam masak: now if only javascript didn't have a problem with them.
lizmat oddly enough, only 1 todo less then yesterday for parrot: maybe I added a few more elsewhere 18:24
[Coke] PerlJam: only some variants of JS have problems with them. :P
masak moritz: have you thought about supporting JavaScript comments in JSON::Tiny? 18:26
PerlJam: yeah, 's strange. even C gets that one right.
Tene Speaking of javascript, I chuckled at this: sealedabstract.com/wp-content/uploa...-parts.jpg 18:27
lizmat r: say 15.1 !%% 0 # masak: negating ops is handled somewhere, any ideas ? 18:28
camelia rakudo 4bfd79: OUTPUT«Divide by zero using %␤ in method Numeric at src/gen/CORE.setting:11232␤ in sub infix:<==> at src/gen/CORE.setting:3550␤ in sub infix:<==> at src/gen/CORE.setting:3548␤ in sub infix:<%%> at src/gen/CORE.setting:3528␤ in sub infix:<%%> at src/gen/CORE.setting:3…
FROGGS lizmat: this maybe? rakudo/src/core/metaops.pm:10:sub METAOP_NEGATE(\op) { 18:29
lizmat FROGGS++
FROGGS :o)
masak what FROGGS++ said :) 18:31
dalek kudo/nom: 42fcd56 | (Elizabeth Mattijsen)++ | src/core/Exception.pm:
Made "using" parameter optional in DivideByZero exception
kudo/nom: 4fd0490 | (Elizabeth Mattijsen)++ | src/core/ (3 files):
Only % and %% use the new "using" parameter for the DivideByZero exception
masak the core/metaops.pm is a "usual suspect" for such questions.
lizmat makes mental noet
*note, lalalalala
FROGGS hehe 18:32
masak grrrrr, @array.elems is spelled len(array) in Python >:-( 18:33
(╯°□°)╯︵ ┻━┻ 18:34
tadzik ┬──┬ ノ( ゜-゜ノ) the table stays :) 18:35
masak :P
srsly, though, what was the sequence of events? 18:36
(1) "surely the length is queried by a function"
...years pass...
(2) "ooh! object orientation! that makes sense!"
"but should the len() function actually be a meth..." -- "SILENCE" 18:37
PerlJam Not everything in Python is an object.
masak I guess that's the actual answer, yes. 18:38
(though under the hood, it seems that len() calls .__len__() on the array/list)
gee, Python sure likes double underscores.
PerlJam those are *really* private thingies 18:39
:)
masak ah. effbot.org/pyfaq/why-does-python-us...n-list.htm
18:41 GlitchMr joined
[Coke] r: say "three".elems 18:41
camelia rakudo 4bfd79: OUTPUT«1␤»
[Coke] r: say "three".len 18:42
camelia rakudo 4bfd79: OUTPUT«No such method 'len' for invocant of type 'Str'␤ in block at /tmp/9bzVGZOont:1␤␤»
[Coke] r: say "three".chars
camelia rakudo 4bfd79: OUTPUT«5␤»
[Coke] eh, seems fine here. :P
masak his point still stands, though. 18:45
(that something other than a container type could have an .elems method) 18:46
[Coke] yes, but in our world, we'd want to call that particular and possibly strange method. no? 18:47
arnsholt masak: I think keeping len() a function is an attempt at backwards compatibility
Of course, that shouldn't preclude adding a method variant as well
masak arnsholt: no, it's deliberate, see URL above.
arnsholt: and there is a method, it's called .__len__
arnsholt I guess 18:49
But I have to say I'm not entirely convinced by GvR's arguments
18:49 labster left
arnsholt Of course, having both len() and .len() would mean that there are two ways to do it, which I guess might have something to do with it as well =) 18:50
dalek ast: a87e7a7 | (Elizabeth Mattijsen)++ | S03-operators/is-divisible-by.t:
Added tests for %% 0 and !%% 0
18:51
lizmat masak: I have no idea why !%% 0 does not fail, whereas %% 0 does 18:53
the former should just go through METAOP_NEGATE, and then fail in there surely ?
18:53 ggoebel5 joined 18:54 bbkr joined
masak lizmat: surely,. 18:57
colomon loliblug: justrakudoit.wordpress.com/2013/08/...rformance/
masak colomon++
colomon: problem. I couldn't finish the first paragraph without feeling I'm missing some context. 18:58
18:58 ggoebel5 left
masak colomon: specifically, what's a STEP model, and what does it mean to tesselate it? 18:58
19:00 ggoebel joined
masak colomon: the links in subsequent paragraphs help a bit, but not 100%. 19:00
lizmat colomon: still wondering how it would fare with my .categorize reimplementation :-)
colomon lizmat: didn't make any difference 19:01
masak: link added to first paragraph
masak++ 19:02
lizmat strange, in my small benchmark, it used 40% less CPU: I guess it was only a small part of the total CPU after all
[Coke] colomon++
19:02 rindolf left
lizmat oh yes, colomon++ # blugging :-) 19:02
colomon lizmat: yes, it should be just a tiny bit of the overall running time. :)
arnsholt colomon: So the step file encodes a 3D model, essentially?
pmurias masak: re comments in JSON::Tiny, they aren't part of JSON 19:03
colomon arnsholt: yes
arnsholt: well, or a 2D model.
arnsholt: and you can probably push it to do other things, it's an insanely general standard
but I always deal with 3D models.
masak pmurias: they're not part of JSON *serialization*.
pmurias: the spec says that a JSON *parser* is free to parse (and ignore) comments.
arnsholt Right. And taking a more or less random stab, tesselation is assembling the full model from smaller components? 19:04
masak pmurias: see blog.getify.com/json-comments
colomon arnsholt: oh, no. tessellation is creating a set of triangles which approximate the surfaces of the 3D model.
arnsholt Oh, right 19:05
19:05 ggoebel left, bruges joined
masak colomon++ # using Rakudo to scratch itches 19:05
colomon++ # coming up with small test cases for jnthn++
[Coke] rjbs++ # d&d 19:06
colomon masak: The real benefit was throwing bigger data at Rakudo. Small test cases were just to track down the problems that found. :)
masak wow. after all these years, some DOS brain damage still remains. I keep expecting one-argument `mv` to move things to the current directory.
[Coke] masak: O_o. 19:07
masak colomon: well. today I tried to traverse a 30k-item directory structure with File::Find, and quickly gave up because it was intolerably slow.
[Coke]: and it's all more or less unconscious. 19:08
colomon I wish I could post pictures of the model I was working on, but I suspect it is confidential.
19:08 zacts_ joined
colomon masak: does File::Find use gather / take? If so, Its probably the same bug (well, major performance problem) I ran into 19:08
lizmat tadzik: is there a reason why KeyBag lives inside Bag.pm ?
19:09 __rnddim__ joined, pecastro joined
PerlJam File::Find does use gather/take. 19:09
masak colomon: it does. 19:10
colomon: I should re-write it to not use gather/take, and compare the speed.
masak does so 19:11
19:11 labster joined
Teratogen Does Perl 6 have REXX-like stems? 19:12
[Coke] ... can we "just" make gather/take faster? ;)
19:13 ggoebel joined
colomon [Coke]: on JVM, that requires Magic (™) (aka sorear++) 19:14
PerlJam Teratogen: you mean you want to access an array like this: @array.1 ?
colomon [Coke]: dunno about Parrot
Tene masak: you should obviously add a shell function to handle that use case, to make sure you never relearn that behaviour.
Teratogen PerlJam, right. 19:15
a.2.3.5
PerlJam not with that syntax, no.
masak Tene: I considered it. 19:16
19:19 japhb_ joined 19:20 lue left, bruges_ left, _ilbot left, zacts left, xenoterracide left, hoelzro left, rafl left, ggoebel left
pmurias masak: according to that blog post it used to allow comments 19:22
masak pmurias: aye. 19:24
19:24 _ilbot joined
Mouq pmurias: There is fadefade.com/json-comments.html 19:24
pmurias: Though, that isn't really recommended and there's no guarantee that it'll work in all parsers 19:25
19:28 ggoebel2 joined
masak the results are in: on a 5595-item directory structure -- with gather: 308.535s -- with an array and push: 295.721s 19:28
:/
19:29 xinming left
lizmat disappointing 19:29
masak there's a speedup, but it's only about 4%.
lizmat strange idea: could you use unshift rarher than push ? 19:30
*rather
colomon masak: can you try not saving them at all? 19:31
19:31 xinming joined
colomon ie figure out how much time is scanning for the files, how much is recording when they are found. 19:31
masak sure.
though I deliberately set it up so that it would only find one file.
so it shouldn't be much at all.
dalek kudo/nom: 52ecebc | (Elizabeth Mattijsen)++ | / (4 files):
Give KeyBag its own file
19:32
masak still; trying that.
colomon oh! 19:33
gather / take is only slow when the count is in the thousands....
19:33 xenoterracide joined, ssutch left
PerlJam 5595 is in the thousands 19:34
diakopter colomon: try makign it pre-allocate teh destination array to some big size?
PerlJam oh, /me missed the "only find one file" bit 19:35
pmurias Mouq: masak pointed me to that blog post, but according to the blog post they seem to have ben deliberately removed from the spec 19:36
19:37 raiph left 19:38 charsbar_______2 joined
tadzik lizmat: no particular reason 19:38
lizmat ok, then there is no problem splitting them :-) which I just did :-) 19:39
19:40 hoelzro joined, rafl joined
tadzik good :) 19:40
masak pmurias: still, the main argument of that post is that JSON parsers should recognize (and ignore) comments. 19:41
Mouq pmurias: Oh, blah. 19:42
19:44 raiph joined 19:46 ssutch joined 19:47 aindilis joined
masak reviews t3 solutions 19:48
19:49 slava joined
slava I compiled a C shared library (a very simple one) and generated a pir file for it using ncidef2pir.pl 19:50
I am lost at trying to load it in rakudo to be used by my code
the error I get is: get_attr_str() not implemented in class 'NQPMu'
the pir file is in one of the @*INC directories 19:51
I also tried searching google and couldn't find anything that outlines the process, and none of the existing libraries make any sense to me
19:52 pecastro left
masak slava: interesting problem. 19:54
PerlJam slava: I got lost at "C shared lib -> PIR". Is there some reason you can't use zavolaj?
masak slava: Rakudo (and nqp) has been moving away from PIR in the past few years.
19:57 ggoebel joined
slava ahh 19:58
PerlJam: C -> so -> nci -> pir
19:58 ggoebel2 left
slava masak: is there some reading I can do if I want to make a binding to a C library to be avaialble from rakudo? 19:58
PerlJam slava: yeah, but if you're trying to use a C lib with rakudo, the "best" answer is github.com/jnthn/zavolaj/
slava I see, looking at it now 19:59
20:00 dmol joined
masak aiiie, this submission doesn't do `$a >= $b`, it does `$a cmp $b ne 'Decrease'` o.O 20:00
that's the least idiomatic numeric comparison I've ever seen.
PerlJam Is there a prize for obfuscation? :) 20:01
colomon masak: you really shouldn't tempt #perl6 like that!
masak PerlJam: not from me!
slava I like that, much nicer than the pir nonesense :D
and easier, too
PerlJam slava: yep :)
masak (pir nonsense)--
slava I was thinking of making a class to bind to libgit2 :)
masak zabolaj++ 20:02
slava: ooh
slava: if you do, please publish on modules.perl6.org!
we'll all have fun with libgit2!
lizmat hmmm…. github down? 20:04
seems to be just a hickup 20:05
slava jnthn: saw your lightning talk, it is awesome! :) 20:07
masak lizmat: it hiccuped earlier today -- well, gist.github.com did.
slava jnthn++ also for the better regex engine
masak well, pmichaud did most of the better regex engine, I think.
unless you mean Grammar::Debugger and Grammar::Tracer.
slava wait, right
wait no
damn it
pmichaud++, his talk
I got confused :(
masak they're both awesome ;) 20:08
slava ok, got it
jnthn did the whole moarvm and jvm stuff
I get confused who did what cool thing
dalek ast: b1bdf8e | (Elizabeth Mattijsen)++ | S02-types/keybag.t:
Added todo test for my %h of KeyBag case
20:14 ecocode joined
slava woo, got it to work, thanks jnthn :D 20:15
colomon slava++ 20:16
slava for those that might care pastebin.com/MTi9ruYR
arnsholt slava: If you run into troubles with Zavolaj/NativeCall, feel free to give me a poke. I'm the current caretaker
slava what's the diff between { * } and { ... } ?
btw, my perl6 syntax knowledge is outdated and not complete at all 20:17
arnsholt Not much
slava haven't done anything in a while
20:17 ecocode left
PerlJam slava: I think you want the first one for NativeCall stuff 20:17
arnsholt They'll give different error messages if your code accidentally calls the Perl 6 sub installed, rather than the C code 20:18
I think jnthn decided that { * } gave the better error. But in theory you could put whatever you want inside the braces, I think =) 20:19
20:19 kaare_ left 20:20 crab2313 joined
slava arnsholt: reading about structs, so if I was to make a binding to a library, I first need to set up all the structs and basically copy them over? 20:21
arnsholt Yeah
slava arnsholt: in that case, my mind begs a question, what do those braces mean there?
cool
arnsholt: I assume, this should work for any library, even those written in haskell? :P 20:22
arnsholt Not really
slava not even those that compile to .so ?
arnsholt Or, it'll only work for those libraries that are straightforwardly callable from C
For example a C++ library isn't really possible, since the compiler will mangle the C++ names before putting them in the .so 20:23
IIRC Haskell has to mangle as well
benabik Well, it would work for a C++ library to connect to extern "C" functions. 20:24
arnsholt And I think GHC at least uses non-standard calling convention
Yeah, an extern "C" block would work
20:24 raiph left
slava basically, if it can be called from C, it can be pulled in via NativeCall? 20:25
arnsholt Pretty much
slava that works 20:26
arnsholt That's essentially what I meant with "straightforwardly callable from C"
slava sorry for not reading that properly :(
thank you :D
20:26 ggoebel left
arnsholt 'sok. It wasn't terribly clear in the first place =) 20:26
colomon you can certainly wrap a C++ library in C calls and then call them with Zavolaj.
20:26 ggoebel joined 20:28 jercos left
masak huh -- Perl doesn't show up under "Language bindings", but Parrot does. libgit2.github.com/ 20:29
PerlJam Aye.I believe that a GSoC student is/was working on libgit2 bindings for parrot 20:30
And maybe no one told the libgit2 people that there's a Perl lib? 20:33
or ... Perl is dead; haven't you heard? ;>
20:36 Araq joined
masak Perl is dead, but Parrot is alive and well? 20:39
lizmat hmmm was the sketch wrong then? 20:40
tadzik ciekawe 20:41
ww :)
20:41 ggoebel left
PerlJam masak: I dunno, but I can imagine that the reason that parrot shows up is that dukeleto is mentoring a student for GSoC to make libgit2 bindings and he conveyed this to the libgit2 people (or he's one of these people) and suggested that libgit2.github.com be updated to include parrot. 20:41
masak *nod* 20:42
20:42 ggoebel joined
masak learned "ciekawe" :) 20:43
now that's an interesting word :P
tadzik :D
slava arnsholt: I also assume method food() is native will work in a class?
arnsholt No 20:45
I haven't actually tried it, but you'll run into trouble with the invocant parameter, I think
PerlJam slava: a pattern I've used and seen others use is to have a "raw" module binding to subs and have a class wrapper than calls these subs. 20:46
slava arnsholt: what would be the proper way to build a Perl6 class (or should it be a module?) to abstract a library in it?
arnsholt The usual way to do it is to have my sub foo ... in the class and then wrap that in a Perl 6 method to interact with the Perl 6 world
slava that won't make the subs global? 20:47
I am concerned about polluting the global namespace
arnsholt Well, it'll only be in your class's namespace
benabik Isn't `my sub` scoped lexically?
arnsholt But subs are lexically scoped anyways, so they're only reachable if you export them
slava ahh, I see 20:48
reading S06 :)
arnsholt I have a semi-functional binding to ZMQ at github.com/arnsholt/Net-ZMQ 20:50
That might serve as an example for some of this
PerlJam looks to see how arnsholt dealt with zmq messages 20:51
arnsholt Not terribly well =) 20:52
PerlJam heh. # XXX: Hack, hack, hack!
:-)
arnsholt Yeah, that inlined array is ridiculously annoying
PerlJam I had looked at making a zmq binding too, but never got something that worked to my satisfaction 20:53
arnsholt If you want to improve Net-ZMQ you're more than welcome to a commit bit =)
I think that would be useful now that we're on JVM and get some useful threading 20:54
20:54 dmol left
arnsholt Part of the reason I started on that was that timotimo wanted to do ipython bindings, but he blocked on needing >1 thread IIRC 20:54
slava arnsholt: I also presume that NativeCall won't work on the jvm 20:58
21:00 konundra left, zacts_ left 21:01 jercos joined 21:04 dmol joined 21:06 skids left 21:07 Araq left
arnsholt slava: Not yet. I'm working on it =) 21:08
21:08 __rnddim__ left 21:20 __rnddim__ joined 21:23 aindilis left
lizmat Q: is there a way to combine a slurpy with a named parameter in a signature? 21:24
21:24 cognominal joined 21:25 spider-mario left
lizmat ( $test, *@items, :$into! ) does not cut it 21:25
I guess the slurpy eats the named parameter then
21:28 __rnddim__ left
timotimo don't you just want to *%something? 21:29
21:29 denisboyun joined
lizmat hmmmm…. ok, something I can try :-) 21:31
21:31 ggoebel left
arnsholt lizmat: That's supposed to work, I think... 21:31
lizmat isn't it a bug that a single named parameter doesn't work then ? 21:32
I think I know why
jnthn's cheating in MMD :-)
arnsholt r: sub foo(*@stuff, :$named) { say +@stuff; say $named; }; foo(1, 2, 3, :named<foo>); 21:33
camelia rakudo 52eceb: OUTPUT«3␤foo␤»
arnsholt r: sub foo(*@stuff, :$named!) { say +@stuff; say $named; }; foo(1, 2, 3, :named<foo>);
camelia rakudo 52eceb: OUTPUT«3␤foo␤»
arnsholt r: sub foo($one, *@stuff, :$named!) { say +@stuff; say $named; }; foo(1, 2, 3, :named<foo>);
camelia rakudo 52eceb: OUTPUT«2␤foo␤»
lizmat r: sub foo($test, *@stuff, :$named) { say $test; say +@stuff; say $named; }; foo({$_},1, 2, 3, :named<foo>); 21:34
camelia rakudo 52eceb: OUTPUT«Block.new()␤3␤foo␤»
lizmat hmmm… weird
dalek kudo/nom: 1b5924c | (Elizabeth Mattijsen)++ | src/core/List.pm:
Remove List.(classify|categorize), they're handled by Any
21:35
21:39 vk_ left 21:40 __rnddim__ joined 21:42 crab2313 left 21:43 ssutch left
lizmat r: sub foo($test, *@stuff, :$named!) { say $test; say +@stuff; say $named; }; foo({$_},1, 2, 3, :named<foo>); 21:44
camelia rakudo 52eceb: OUTPUT«Block.new()␤3␤foo␤»
lizmat r: multi foo($test, *@stuff, :$named!) { say $test; say +@stuff; say $named; }; foo({$_},1, 2, 3, :named<foo>); 21:45
camelia rakudo 52eceb: OUTPUT«Block.new()␤3␤foo␤»
arnsholt lizmat: What part of the code are you hacking on? Maybe it's secretly NQP code, rather than Perl 6? 21:46
lizmat Any.classify, hardly secret :-) 21:47
arnsholt Probably not, then. Weird
lizmat maybe MMD is not working correctly yet that early in the setting 21:49
arnsholt Could be, I guess, but that sounds weird 21:55
masak 'night, #perl6 21:56
lizmat night masak! 21:58
22:00 benabik left, zwut00 left
lizmat r: multi foo ($t, *@s, :$n) { say $n}; multi foo ($t, *@s) { say "no" }; foo({$_},1, 2, 3, :n<foo>); # basically the problem golfed down 22:06
camelia rakudo 52eceb: OUTPUT«Ambiguous call to 'foo'; these signatures all match:␤:($t, *@s, :n(:$n))␤:($t, *@s)␤ in sub foo at /tmp/CSyE9rfkfU:1␤ in block at /tmp/CSyE9rfkfU:1␤␤»
22:06 arcterus joined
lizmat and I think the problem here is that jnthn cheated on the MMD, only checking for the first 2 parameters 22:07
22:10 FROGGS left 22:12 FROGGS joined 22:13 ssutch joined
dalek kudo/nom: 656c8cb | (Elizabeth Mattijsen)++ | src/core/Any.pm:
Added "into" named parameter to Any.(classify|categorize)

Allows you to classify into an existing hash (into => %h), or have a type of hash created (into => Hash[Array,Int])
22:20
22:22 __rnddim__ is now known as lue 22:28 zacts joined 22:30 pmurias left 22:35 skids joined 22:40 denisboyun left
lizmat r: multi method a( %t, *@l ) { foo( -> $v { %t{$v} }, *@list ) } # WAT? am I doing wrong here ? 22:47
camelia rakudo 1b5924: OUTPUT«===SORRY!===␤Unable to parse expression in argument list; couldn't find final ')'␤at /tmp/DvvXvVvS7i:1␤------> a( %t, *@l ) { foo( -> $v { %t{$v} }, *⏏@list ) } # WAT? am I doing wrong here ␤ expecting any of:␤ postf…
22:49 FROGGS left
lizmat r: multi method a( %t, *@l ) { foo( -> $v { %t{$v} }, *@l ) } # WAT? am I doing wrong here ? 22:50
camelia rakudo 1b5924: OUTPUT«===SORRY!===␤Unable to parse expression in argument list; couldn't find final ')'␤at /tmp/EslBeuK3ls:1␤------> a( %t, *@l ) { foo( -> $v { %t{$v} }, *⏏@l ) } # WAT? am I doing wrong here ?␤ expecting any of:␤ postfix…
dalek kudo/nom: bc379f6 | (Elizabeth Mattijsen)++ | src/core/KeyBag.pm:
Added KeyBag.(classify|categorize)_list

So that you can say @list.classify( &test, into => KeyBag )
22:52
arcterus lizmat: are you trying to do this? 22:53
multi method a(%t, *@l) { foo( -> $v, *@l { %t{$v} } ) } 22:54
lizmat no, the sub should only be called with the one parameter 22:56
by the subroutine
22:56 sidus left
lizmat the rest of the parameters are the values on which the sub should work 22:56
arcterus what about this 22:58
multi method a(%t, *@l) { foo( -> $v { %t{$v} }, |@l) } 22:59
lizmat r: multi method a(%t, *@l) { foo( -> $v { %t{$v} }, |@l) } 23:00
camelia rakudo 1b5924: OUTPUT«Useless declaration of a has-scoped multi-method in mainline␤===SORRY!===␤Undeclared routine:␤ foo used at line 1␤␤»
lizmat I'll try it nonetheless in the actual situation after the running spectest is done 23:01
arcterus k
23:07 mtk left
lizmat arcterus: that compiles 23:09
testing... 23:10
arcterus cool.
lizmat but tests fail 23:11
:-(
giving up for today: it was just a code optimization anyway... 23:13
lizmat submits rakudobug
23:14 mtk joined
lizmat gnight #perl6! 23:15
colomon \o
23:17 BenGoldberg joined
BenGoldberg rn: gather { take 1..Inf; 'reached'.say }[0].say 23:20
camelia rakudo bc379f: OUTPUT«1␤»
..niecza v24-88-g1f87209: OUTPUT«1..Inf␤»
BenGoldberg rn: gather { take 1..Inf; 'reached'.say }[1].say
camelia rakudo bc379f: OUTPUT«reached␤2␤»
..niecza v24-88-g1f87209: OUTPUT«reached␤(Any)␤»
BenGoldberg p: gather { take 1..Inf; 'reached'.say }[0].say
camelia pugs: OUTPUT«Stack space overflow: current size 8388608 bytes.␤Use `+RTS -Ksize -RTS' to increase it.␤»
23:31 iSlug left 23:33 benabik joined
zacts will parrot eventually also run perl5? 23:38
timotimo the future of parrot isn't very clear at the moment; in theory you could use the rakudo-v5 module on rakudo-parrot, but it's far from complete and will never support XS 23:39
zacts timotimo: are there any practical alternatives to parrot in the brew for perl6? 23:41
23:42 benabik left
timotimo yes, rakudo already runs rather well on the JVM (and that is with important optimization bits still missing) and MoarVM is coming up with a much better perl5 integration scheme than parrot had so far 23:44
there is also blizkost, which i haven't tried yet, which is some kind of perl5-interop on top of rakudo-parrot
zacts I read this: anonymoushash.vmbrasseur.com/2013/0...-the-data/ 23:47
and it got me thinking about how perl6 and its implementation can be an important thing for the future of perl, even for perl5
I've heard that perl5 interpreter source code is nutty. 23:48
timotimo is new to perl in general and went straight to perl6 23:50
23:51 btyler left, benabik joined
timotimo and now i'm going straight to bed :) good night 23:51
zacts gn 23:52
23:54 crab2313 joined
BenGoldberg zacts: Do you have perl6 installed? 23:58