»ö« 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:05 je left 00:16 cognome_ joined, amkrankr1leuen joined, amkrankruleuen left 00:17 smash_ joined 00:18 smash left, cognome left 00:19 BenGoldberg joined
TimToady weird, I think it's looping in List.gimme, but if I put a say anywhere in the routine, the compilatoin of RESTRICTED.setting hangs :( 00:27
that is so bizarre... 00:28
or a note, or an nqp::say
TimToady guesses and opt/deopt isn't round tripping, or so 00:30
*an
nope, disabling those things makes no difference 00:34
circularity sawed off, is my next guess
TimToady gives up for now 00:36
00:37 je joined
japhb
.oO( Circularity sawed off shotgun )
00:45
00:46 nbrown__ joined
TimToady
.oO("Sod off!" shotgun)
00:46
00:50 yeltzooo joined 00:51 nbrown__ left 00:58 yeltzooo9 left 01:01 raiph left 01:10 FROGGS_ joined 01:14 Alina-malina left 01:15 Alina-malina joined 01:20 colomon_ joined 01:22 sergot joined, pecastro_ joined 01:23 Woodi_ joined, raiph joined, telex left 01:24 telex joined, telex left, lizmat_ joined 01:26 telex joined 01:28 je left, lizmat left, mhasch left, Guest36225 left, Woodi left, sergot_ left, colomon left, colomon_ is now known as colomon, nhayashi joined 01:30 mls joined 01:32 mhasch joined 01:37 nbrown__ joined 01:39 nhayashi left, raiph left, colomon left, BenGoldberg left, amkrankr1leuen left, rindolf left, jdv79_ left, beastd left, zacts left, bjz left, araujo left, epochbell left, vike left 01:41 nbrown__ left 01:45 nhayashi joined 01:48 je joined, rindolf joined 01:49 je left, jerrycheung joined 01:50 raiph joined, colomon joined, amkrankr1leuen joined, jdv79_ joined, zacts joined, bjz joined, araujo joined, epochbell joined, vike joined, salv0 joined, pmichaud joined, Pleiades` joined, thilp_ joined, tadzik joined, BenGoldberg joined 01:55 rindolf left, nbrown__ joined 02:00 nbrown__ left 02:01 PZt joined 02:11 raiph left 02:27 JL235__ joined 02:34 noganex_ joined 02:40 aborazmeh joined, xinming joined
btyler_ colomon: pulled in your jansson changes, it didn't seem like there was anything else you wanted to do before issuing a pull req (but the time to issue said req was the blocker) 03:02
so, thanks! :)
colomon btyler_: apologies for not cleaning things up properly for you.
btyler_ ? not at all, the merge conflict was totally self inflicted on my end 03:03
hoelzro I've been thinking about improving stringification/gists for Regex objects. Any suggestions for the right way to do it?
btyler_ and it was trivial anyways
hoelzro I was thinking .perl should print a regex literal
and .gist should print the .name // .perl
and .Str...well, I don't know about htat 03:04
btyler_ now just need to write a bunch more tests, and do some thinking on how to keep jansson from holding onto objects forever (since the json_decref/json_incref functions are actually macros, so NativeCall can't see them)
03:07 raiph joined, _thou left 03:13 BenGoldberg left
masak .oO( "It would prefer that you stayed out of its living room because you weren't invited, not because you have a 'sod off' shotgun" -- Larry Wall, quote mashup ) :P 03:20
time-of-day, #perl6
m: subset Probability of Real where 0.0 .. 1.0 # Ven: tastes differ, but I'd've done stackoverflow.com/questions/1917898...6#25574936 this way 03:26
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...d=25574936
camelia ( no output )
masak synopsebot: shh, grownups are talking.
03:27 xenoterracide joined, araujo left
masak m: subset Odd of Int where -> $n { $n % 2 } # Ven: and this way; people are bound to be more familiar with % and boolification than with !%% 03:28
camelia ( no output )
masak proceeds to get lost in a stackexchange of twisty little questions, all different 03:33
hah, trust philosophy.stackexchange to make an issue of a non-issue *in an interesting way*: philosophy.stackexchange.com/questi...ang-theory :) 03:44
03:49 aborazmeh left 03:50 xenoterracide left 03:52 jerrycheung left 04:16 jerrycheung joined 04:18 xenoterracide joined
raiph masak: I think ven just copied the subset Probability line from me. I prefer your line. 04:28
masak: The second bit is his. It doesn't compile as is because it omits a Map definition.
masak: I'll edit ven's answer to use your line for the first bit. 04:30
04:32 tphilipp joined, tphilipp left
raiph .tell masak I'd love to see your suggestions for how best to code the second bit too. ( See irclog.perlgeek.de/perl6/2014-08-30#i_9268837 ) 04:33
yoleaux raiph: I'll pass your message to masak.
masak cool. it's a small thing, but range feels slightly more idiomatic.
yoleaux 04:33Z <raiph> masak: I'd love to see your suggestions for how best to code the second bit too. ( See irclog.perlgeek.de/perl6/2014-08-30#i_9268837 )
masak fastest delivered message, ever ;)
m: subset Prob of Real where 0..1; class Dist { has @.probs where 1 == [+] .list; }; say Dist.new(:probs(0.5, 0.5)) # raiph 04:36
camelia rakudo-moar d8c834: OUTPUT«Dist.new(probs => Array.new(0.5, 0.5))␤»
masak raiph: problem with that one is that 'where' clauses on attributes aren't heeded. 04:37
m: subset Prob of Real where 0..1; class Dist { has @.probs where 1 == [+] .list; }; say Dist.new(:probs(0.5, 0.3)) # this should fail at construction time
camelia rakudo-moar d8c834: OUTPUT«Dist.new(probs => Array.new(0.5, 0.3))␤»
masak oh, ignore the above; it's probably wrong. need a closure for the where not to be a constant. :) 04:38
(this is why I didn't provide a suggestion for that one; it's hard to code correctly on code that doesn't work yet)
04:39 jack_rabbit left
masak m: subset Prob of Real where 0..1; class Dist { has @.probs where { self!total == 1 }; method !total { [+] @.probs } } # maybe this? 04:40
camelia ( no output )
masak again, this is all a bit moot until rt.perl.org/Ticket/Display.html?id=122109 is NYNYI'd. 04:41
er, NLNYI'd.
raiph masak: The problem calls for a hash with keys of an arbitrary type (not just Str). So has @.probs ---> has Map[Type, Prob] %.probs or some such. Which is also NYI methinks. Anyhoo, thanks and masak++ 04:50
masak m: my Int %h{Sub} = sub {} => 42; say %h.perl # raiph 04:54
camelia rakudo-moar d8c834: OUTPUT«Hash[Int,Sub].new(sub () { #`(Sub|139733655771720) ... } => 42)␤»
masak raiph: works fine :) 04:55
lizmat++
IMO, Map is a really unfortunate name for Hash in that piece of code.
moritz hoelzro: thanks for fixing that 04:56
yoleaux 29 Aug 2014 22:58Z <hoelzro> moritz: I fixed up and checked the docs; they're fine now!
zacts does rakudo support OpenBSD well? 05:01
masak zacts: as far as I know, yes. 05:04
raiph masak: Thanks again. 05:05
zacts ok, good. I have more confidence to install OpenBSD on my laptop now. if it doesn't work no big deal, but that was one issue holding me back from using OpenBSD.
masak how do I make a custom op iffy?
hah! looked at a test, went "that cannot possibly be right", went to the RT ticket referenced, found a discrepancy, did `git blame` on the test in question... found myself, anno 2011. 05:12
masak-- :)
moritz masak++ # writing tests 05:13
05:16 JimmyZ joined
TimToady well, equiv should dup iffy-ness, I'd think, along with all the other attributes of an operator 05:18
05:19 SamuraiJack joined
masak TimToady: I think I agree. 05:20
TimToady tighter and looser are of course more problematic 05:21
masak should there maybe be an 'is iffy' trait?
jnthn That'd make sense to me... 05:22
TimToady or it could be intuited from the return type, possibly 05:23
presumably something that return Bool is naturally iffy
*turns 05:24
masak all those things sound like frills on top of the mundane, reliable mechanism...
05:24 xenoterracide left
TimToady yeah 05:24
TimToady is much more interested in actually figuring out how reify works, which is odd, considering I helped design it... 05:25
jnthn TimToady: "I learned how reify works 3 times so far..." :)
TimToady in fact, I think I was the first person to use the word "reify" wrt that... 05:26
well, we probably need to learn that again :)
05:26 aborazmeh joined
TimToady the basic problem with gimme/reify is that they try to re-establish policy on every call, when generally you just want to set up the dataflow and then just push or pull 05:27
m: my @a = 1,2,3; @a.plan: 4..*; say @a 05:29
camelia rakudo-moar d8c834: OUTPUT«1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 8…»
TimToady that works, but...
m: my @a = 1,2,3; @a.plan: 4..*; say @a[3]
camelia rakudo-moar d8c834: OUTPUT«(timeout)» 05:30
TimToady that gets stuck in List.reify, and $count does not progress
I can make it bomb out of the loop on lack of progress, but then it just gets (Any) instead
so something is not doing the reify handshake right 05:31
05:32 SamuraiJack left, SamuraiJack joined 05:45 gfldex joined
moritz reducing the number of methods involved in reifying would also help a lot :-) 05:47
05:48 JimmyZ_ joined 05:50 JimmyZ left 05:51 JimmyZ joined 05:55 JimmyZ_ left
dalek ast: c05d4ce | masak++ | S03-operators/arith.t:
fix really embarrassing typo

The test ended up testing entirely the wrong thing, for three years. Ugh.
06:04
06:06 kaare_ joined
jnthn lunch & 06:06
06:07 rindolf joined 06:09 akaseki joined
JimmyZ so late :P 06:09
06:10 akaseki is now known as Salai
JimmyZ > ls() 06:18
===SORRY!=== Error while compiling <unknown file>
Undeclared routine:
ls used at line 1. Did you mean 'lc'?
> e()
===SORRY!=== Error while compiling <unknown file>
Variable '&e' is not declared
at <unknown file>:1
LTA, methinks 06:19
06:27 aborazmeh left
JimmyZ std: e() 06:32
camelia std 53b3ca6: OUTPUT«ok 00:01 121m␤»
tadzik 'When jnthn talks about something he did "when he was 10 years stupider", it was probably two years ago' :D 06:39
(from domm.plix.at/perl/2014_08_things_i_...2014.html) 06:40
06:41 itz left 06:46 psch left 06:56 itz joined 07:13 mj41 joined 07:26 FROGGS_ is now known as FROGGS
FROGGS m: &[baz] 07:35
camelia rakudo-moar d8c834: OUTPUT«===SORRY!=== Error while compiling /tmp/5x7pscq5dg␤Preceding context expects a term, but found infix & instead␤at /tmp/5x7pscq5dg:1␤------> &[⏏baz]␤»
FROGGS r: say "\c[LF]" 07:45
camelia rakudo-jvm d8c834: OUTPUT«(timeout)»
..rakudo-{parrot,moar} d8c834: OUTPUT«␤␤»
dalek ast: 27ecb5d | (Tobias Leich)++ | S05-mass/named-chars.t:
RT #122353 unfudge LF,FF,CR,NEL tests for parrot
07:48
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122353
masak FROGGS++ 07:50
FROGGS masak: I love it to remove the last fudge lines from a test file :o) 07:51
07:52 akaseki joined, Salai left, akaseki is now known as Salai
masak .oO( I love the absence of fudge in the morning ) 07:53
FROGGS jnthn: we have CTXSAVE in both HLL::Actions and Perl6::Actions... one has QAST::Stmt the other *::Stmts - what is preferred? 08:01
jnthn Not sure it matters a load
FROGGS k
jnthn I think the differences used to be much larger
But they've re-converged
FROGGS so I leave nqp untouched :o)
jnthn iirc, the split was when NQP moved to QAST but Rakudo was stuck in the PAST 08:02
08:09 kurahaupo_ joined 08:11 darutoko joined 08:12 raiph left 08:13 JimmyZ_ joined
FROGGS TimToady: was that because of one of your patches? 08:13
Malformed my
at t/spec/S04-declarations/my.rakudo.moar:298
------> my &⏏ = { * - 5 };
08:16 JimmyZ left, JimmyZ_ is now known as JimmyZ
FROGGS (talking about this patch: github.com/rakudo/rakudo/commit/9a...324e3e7b15 ) 08:17
08:26 Salai left 08:27 akaseki joined, zoosha left
timotimo FROGGS: that ought to have been the "anonymous & variables don't make sense" patch? 08:35
oh. yes.
08:35 brrt joined
timotimo that was a tremendously unhelpful comment of mine %) 08:39
FROGGS :o) 08:40
08:42 JimmyZ_ joined 08:45 JimmyZ left, JimmyZ_ is now known as JimmyZ
masak submits 'is iffy' NYI ticket 08:50
08:57 JL235__ left
FROGGS another one for TimToady: 08:57
Unsupported use of $$ variable; in Perl 6 please use $*PID
at t/spec/S32-str/substr-rw.rakudo.moar:74
------> is($$r⏏, "gloop", '$r referent is eq to the sub
dalek kudo/nom: dc7c5a2 | (Tobias Leich)++ | src/Perl6/Actions.nqp:
RT #122496 remove duplicate Perl6::Actions.CTXSAVE
08:59
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122496
09:01 JimmyZ_ joined
dalek ecs: ce03a49 | masak++ | S99-glossary.pod:
[S99] karma is about s/popularity/appreciation/
09:02
kudo/nom: 38e4fb6 | (Tobias Leich)++ | src/core/ (3 files):
use prefix:<->(:D ...) for Int/Real/Rat/...

This way we hit the prefix:<-> of Numeric for type objects, which will warn and return zero.
09:02 JimmyZ left, JimmyZ_ is now known as JimmyZ 09:05 denis_boyun_ joined
FROGGS m: say -Int # this will warn and say zero in a bit 09:05
camelia rakudo-moar d8c834: OUTPUT«(signal )»
nine Incredible! I just replaced an action of a Catalyst controller in our Perl 5 application by Perl 6! 09:07
This validates my approach to provide an upgrade path for existing Perl 5 codebases :) 09:08
JimmyZ congratulations!
jnthn nine: Much wow! 09:09
masak nine++ # nice! 09:12
nine It's all thanks to NativeCall's awesomeness, really. 09:17
FROGGS nine++
now v5 is nearly pointless :o) 09:18
masak surely not. 09:19
nine FROGGS: no it isn't.
09:19 FROGGS[mobile] joined
masak FROGGS[mobile]: v5 is the one that can be JITted. 09:19
09:19 bowtie joined
masak and spesh'd. 09:20
09:20 bowtie is now known as Guest74506
FROGGS[mobile] and might be pattern for other slangs 09:20
nine while Inline::Perl5 is bound to be dog slow. I'm doing the most naive implementation anyone can imagine. Copying stuff like there was no tomorrow.
FROGGS[mobile] but besides that... :D 09:21
nine Also many years from now we might reach the point, where there are alternatives for all Perl 5 XS modules while there may still be much proprietary Perl 5 code around. Then we can remove the Perl 5 interpreter and stop maintining it. 09:23
JimmyZ :) 09:24
brrt nine++ 09:25
also FROGGS, there is always more than one way to do it ;-)
jnthn Other cool thing: hijack the v5 grammar to find the extent of Perl 5 code, then after parsing it pass it off to Inline::Perl5 :) 09:27
masak ok, second iffy-related weirdness: 09:28
m: multi infix:«<:» { $^l lt $^r }; multi infix:«!<:» { not($^l <: $^r) }; say "foo" !<: "bar"
camelia rakudo-moar d8c834: OUTPUT«True␤»
JimmyZ std: sub s() { return 1 } ; s
masak now watch as I perform my magic trick:
camelia std 53b3ca6: OUTPUT«===SORRY!===␤No delimiter found at /tmp/vr48oCopRG line 1 (EOF):␤------> sub s() { return 1 } ; s⏏<EOL>␤Parse failed␤FAILED 00:01 125m␤»
JimmyZ m: sub s() { return 1 } ; s
camelia rakudo-moar d8c834: OUTPUT«===SORRY!=== Error while compiling /tmp/emDqZRcpCB␤Null regex not allowed␤at /tmp/emDqZRcpCB:1␤------> sub s() { return 1 } ; s⏏<EOL>␤ expecting any of:␤ postfix␤ statement end␤ …»
masak m: multi infix:«≃» { $^l lt $^r }; multi infix:«!<:» { not($^l ≃ $^r) }; say "foo" !≃ "bar"
camelia rakudo-moar d8c834: OUTPUT«===SORRY!=== Error while compiling /tmp/q8BePJqzE4␤Cannot negate ≃ because it is not iffy enough␤at /tmp/q8BePJqzE4:1␤------> x:«!<:» { not($^l ≃ $^r) }; say "foo" !≃⏏ "bar"␤»
09:28 spider-mario joined
masak *exactly* the same code -- just with a Unicode operator instead! 09:28
masak submits rakudobug
09:29 spider-mario left
JimmyZ n: sub s() { return 1 } ; s 09:29
camelia niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤No delimiter found at /tmp/ugElRgvWFu line 1 (EOF):␤------> sub s() { return 1 } ; s⏏<EOL>␤␤Parse failed␤␤»
JimmyZ LTA or bug? 09:30
09:30 BizarreCake joined 09:31 spider-mario joined
jnthn masak: Um...you installed a negation of a completley different operator? 09:31
infix:«≃» and infix:«!<:»
masak um. 09:33
m: multi infix:«≃» { $^l lt $^r }; multi infix:«!≃» { not($^l ≃ $^r) }; say "foo" !≃ "bar"
camelia rakudo-moar d8c834: OUTPUT«===SORRY!=== Error while compiling /tmp/weCLGmom3M␤Cannot negate ≃ because it is not iffy enough␤at /tmp/weCLGmom3M:1␤------> ix:«!≃» { not($^l ≃ $^r) }; say "foo" !≃⏏ "bar"␤»
masak there we go.
my exposure of the bug was wrong; the bug is there.
masak magically retcons the bug report 09:34
masak does the jedi gesture on #perl6
JimmyZ m: ::!??YOUR_FACE!! # I remember this one :P 09:35
camelia rakudo-moar d8c834: OUTPUT«===SORRY!=== Error while compiling /tmp/3c21XwiXxw␤Cannot negate ??YOUR_FACE!! because it is not iffy enough␤at /tmp/3c21XwiXxw:1␤------> ::!??YOUR_FACE!!⏏ # I remember this one :P␤»
masak hahaha 09:38
JimmyZ std: ::!??YOUR_FACE!! 09:39
camelia std 53b3ca6: OUTPUT«===SORRY!===␤Cannot negate ?? !! because conditional operators are too fiddly at /tmp/PuLvi1D_tN line 1:␤------> ::!??YOUR_FACE!!⏏<EOL>␤Cannot negate ??YOUR_FACE!! because conditional operators are not iffy enough at /…»
brrt nice
JimmyZ: wrt to the commit you asked me to revert, i still have no conclusive answer wrt to rounding behaviour, but i suspect the code is corect as it is 09:41
JimmyZ brrt: jnthn++ said it could be cheaper 09:42
brrt yeah, i know, wrt to pushing the exception to the end
i'm kind of ambivalent between doing that in the graph building, or emit step 09:43
we can do both
JimmyZ +1
brrt i.e. dynasm has support for 'capturing' blocks
but i don't know if i can get the right label then
09:44 broquaint left
brrt anyway, i agree with the optimisation, but aside from constant-checking the denominator it's not so very simple that it has fit into my brane yet 09:44
JimmyZ yeah, it's tricky :/ 09:45
09:53 brrt left 09:56 anaeem1 joined 09:59 aindilis` left 10:00 itz_ joined 10:02 itz left 10:04 aindilis joined 10:06 zoosha joined 10:08 itz joined 10:09 virtualsue joined 10:10 itz_ left 10:11 zoosha left 10:13 virtualsue left 10:29 kurahaupo_ left 10:42 BizarreCake left 10:48 firefish5000 joined 10:52 mj41 left 10:57 firefish5000_ joined 11:01 firefish5000 left 11:02 zoosha joined 11:04 JimmyZ_ joined, kurahaupo joined 11:06 JimmyZ left, JimmyZ_ is now known as JimmyZ 11:12 itz_ joined
colomon ssh: Could not resolve hostname host07.perl6.com: Name or service not known :( 11:13
11:14 itz left
moritz ;; ANSWER SECTION: 11:15
host07.perl6.com. 3600 IN A 192.241.193.85
though I can't resolve it from my we^Horkstation either
11:15 JimmyZ_ joined
colomon just when I finally get the smoke test working again (more or less)... 11:16
11:16 [particle] joined
moritz colomon: add the IP to your /etc/hosts 11:16
11:16 JimmyZ left, JimmyZ_ is now known as JimmyZ
colomon moritz: is the IP stable? 11:17
moritz colomon: yes
11:17 d4l3k_ joined 11:18 __rnddim__ joined 11:19 sivoais_ joined, kshannon joined 11:20 cosimo_ joined 11:21 xiaomiao joined
colomon okay, last night's run is now up too 11:22
11:24 robins joined 11:25 Bucciarati_ joined
Woodi_ hallo #perl6 11:25
11:26 gcifuent1s joined
Woodi_ just tried to install rakudo-2014-08 on static compiled moar and during rakudo compilation it was trying to dynamically load dynext lib... 11:27
on shared moar no problemo
jnthn Woodi_: You can't build things that use extops on a static compiled moar, which means it's not suitable for use with Rakudo. There's a reason it's not the default. :) 11:28
Woodi_ oki, just thinked it can be done static and shared 11:29
jnthn Not as far as I know...
11:29 sivoais left, go|dfish left
Woodi_ jnthn: but dynext should be statically compiled ito moar... 11:29
11:29 d4l3k_ is now known as dalek 11:31 go|dfish joined, robins is now known as robinsmidsrod
FROGGS[mobile] colomon: does v5 pass now? 11:32
11:35 eiro joined 11:36 rjbs- joined, Brock joined, jercos left
Woodi_ oki, just want to add: perl5 is kind of /usr/bin/immortal like sed and awk, it's will stay there and it is in kind of permament maintenance mode. if perl6 will be succesfull in some time then maybe distros will do: mv /usr/bin/perl /usr/bin/perl5\n but replacing Perl5 completely is unlikely... 11:36
11:37 BooK left 11:38 jercos joined 11:39 BooK joined, ribasushi joined, Possum joined, pochi joined
dalek p: 6764152 | jonathan++ | tools/build/MOAR_REVISION:
Bump to MoarVM with objectid support.
11:40
p: c7c4661 | jonathan++ | src/vm/ (3 files):
Map nqp::objectid(...) op.

On Parrot, it maps to what nqp::where(...) does and can continue to, since Parrot doesn't move objects. On MoarVM it maps to the new VM op of the same name. On JVM, it currently maps to nqp::where, but this will want reviewing as JVMs can also move objects.
11:40 Juerd joined 11:42 fling joined
nine Woodi_: Perl 4 is gone. Why should the same not happen for Perl 5? 11:42
11:42 itz joined
dalek kudo/nom: aa03171 | jonathan++ | tools/build/NQP_REVISION:
Bump NQP_REVISION for nqp::objectid op.
11:43
kudo/nom: 9a66444 | jonathan++ | src/core/Mu.pm:
Have Mu.WHICH use the nqp::objectid op.

This will avoid the instability in .WHICH values on MoarVM that has caused various flapping tests and other bugs.
Woodi_ nine: it's just unlikely, IMO
FROGGS nine: COBOL does not wanna die either in some areas
nine But COBOL does not have a successor. 11:44
FROGGS I think that does not matter
11:44 itz_ left
FROGGS if the code works, it will stay in most cases 11:45
nine I just start to move to lizmat_'s side in this discussion. I now regard Perl 6 again like a new version of Perl, not like a sister language.
Woodi_ nine: actually I think *nixes are quite old and I bet *nixes dies before rm /usr/bin/perl :)
masak I'm also on lizmat++'s side. my only concern is whether the time to boast that Perl 5 is dying and you'd better convert to Perl 6 is now, or slightly later than now. 11:47
11:47 pochi_ joined, itz_ joined
spider-mario nine: a few of Inline::Perl5’s tests fail on my machine. is that normal? 11:48
nine spider-mario: no, they should pass. 11:49
spider-mario I’ll paste the output
nine I as a rule never commit failing tests on a master branch to avoid such confusion.
11:49 zoosha_ joined, rjbs joined
spider-mario paste.awesom.eu/lx2S 11:49
11:50 telex left, itz left
spider-mario but now that I think about it, I run them using Rakudo 2014.04 11:50
perhaps it’s too old
11:51 Psyche^ joined, gcifuent1s is now known as gcifuentes
nine spider-mario: Could be. OTOH maybe I'm doing something that only incidentally works on current Rakudo. I am a Perl 6 beginner after all. 11:51
spider-mario (that’s because NativeCall appears to be needed, Rakudo Star was the easiest way for me to get it, and the last Star release is 2014.04)
11:52 JimmyZ_ joined, __rnddim__ left, denis_boyun_ left, telex joined, __lue__ joined, itz_ left, itz joined 11:53 vike1 joined
FROGGS nine: I'm eager to port my stuff to Perl 6, no doubt... but also I know that many companies do not want to spend money to rewrite something that works well 11:53
11:53 robins joined 11:54 vike left 11:55 JimmyZ left, JimmyZ_ is now known as JimmyZ 11:56 denis_boyun_ joined
nine FROGGS: we wouldn't either. We really want to keep code that's working as is and write new stuff in the new shiny language. Only if we have to do large modifications of existing code anyway we would port it. That's why I think it is essential to have good interop for Perl 6 to succeed. 11:56
11:56 epochbel1 joined
FROGGS nine: that is also my motivation of doing v5 in the first place 11:56
11:56 tadzik1 joined 11:57 pochi left, rjbs- left, Bucciarati_ left, robinsmidsrod left, zoosha left, MilkmanDan left, Bucciarati joined, ilbot3 joined
colomon FROGGS: no. :\ 11:59
colomon tries it manually
11:59 Pleiades` left, tadzik left, epochbell left
colomon FROGGS: took a long time to build, now I'm getting loads of test failures 11:59
t/v5/32-autoload-method.t ..... ===SORRY!===
Could not find feature in any of:
(long list deleted by colomon)
12:00 moritz_ joined
Woodi_ btw. how you think, do solid state RAM will change something in language compilers build/design ? 12:00
FROGGS colomon: ohh, it is not supposed to run these tests :/
12:00 jtpalmer joined, raydiak__ joined 12:01 Pleiades` joined
FROGGS colomon: but now I know what to fix... thanks :o) 12:01
colomon FROGGS: I'm not sure there is a way to tell panda not to run tests in t/ ...
12:01 ashleyde1 joined, Gruber joined
FROGGS colomon: I'll move these tests elsewhere 12:01
12:02 nebuchad` joined, tadzik2 joined, Rounin_ joined 12:03 gcifuent1s joined, Khisanth joined 12:07 tadzik1 left, gcifuentes left, jtpalmer_ left, raydiak_ left, Alula_ left
firefish5000_ How do you write a multi method that differ only in the number of arguments? 12:08
Timbus multi method foo($a) {...} multi method foo($a, $b) {...} 12:09
12:13 JimmyZ_ joined
FROGGS tadzik2: ping 12:14
12:15 JimmyZ__ joined 12:16 JimmyZ left
firefish5000_ Timbus: Thanks, that works ( I had confused myself by giving a default value, and thus making both accept one argument). 12:16
12:17 JimmyZ joined
Timbus i've done that 12:17
12:17 virtualsue joined
Timbus exciting new ways to shoot your foot 12:18
12:18 virtualsue left, JimmyZ_ left 12:21 JimmyZ__ left, JimmyZ_ joined, BizarreCake joined
moritz_ multi dispatch is like any other programming paradigm: you need a bit of practise before it helps you 12:21
same with grammars :-)
12:22 JimmyZ left, JimmyZ_ is now known as JimmyZ 12:23 slicewinter joined, tadzik3 joined 12:24 moritz_ is now known as moritz
firefish5000_ Oh, when it comes to grammars, is Class::Grammar and Class::Actions the standard herarcy(ignore spelling)? 12:24
moritz yes
timotimo .o( but it's not that important to have that, just helps find stuff ) 12:25
12:27 JimmyZ_ joined
timotimo jnthn++ # nqp::objectid op working on parrot and moar 12:28
12:28 robinsmidsrod joined 12:29 tadzik2 left, PZt left, nebuchad` left, robins left, ivan`` left, Pleiades` left 12:30 Pleiades` joined
firefish5000_ Is there a standard for what ::Actions does. for example, would returning nothing be bad practice? (just curious) 12:30
12:30 ivan`` joined
moritz firefish5000_: often action methods call make($something), which sets $/.made 12:31
firefish5000_: thus building up a tree inside/attached to the parse tree
firefish5000_: for example in the json parser, the actions call make($perl6_object) to deserialize the json document 12:32
12:32 aindilis` joined
firefish5000_ So if you (accidentally) put all the necessary code into the TOP method, you've gone too far. 12:34
timotimo that's not a problem, just maybe not very extensible/refactorable/readable
12:34 robins joined
moritz then you don't need an action method, and could go outside the whole parsing thing 12:35
12:35 zoosha joined, gcifuentes joined
timotimo troo 12:36
the good thing about the action methods is that the grammar engine does the distinction between different things you've matched "for you"
moritz right, so you need far fewer branches inside the actions 12:37
timotimo if you go even further and use proto + multi regexes/tokens/rules, you should be able to get some very cleanly separation-of-concerns'd code 12:38
12:39 akaseki is now known as Salai, anaeem1 left
moritz masak: have you ever asked yourself if there's a duality between the $/.ast and the stash used in many web frameworks? 12:39
12:39 slicewinter left
timotimo "stash"? 12:39
12:40 JimmyZ left, robinsmidsrod left, gcifuent1s left, raydiak__ left, Bucciarati left, zoosha_ left, aindilis left, Bucciarati joined
moritz timotimo: a data structure (usually a hash) where controllers can put data that the template/view can then use 12:40
timotimo oh, of course
jnthn See also my grammar generative talk on bactions :)
12:40 raydiak__ joined
moritz must have missed that 12:40
timotimo oh! 12:41
that was a good talk
12:42 d4l3k_ joined
jnthn moritz: jnthn.net/papers/2013-yapcna-gramma...nerate.pdf 12:42
12:43 firefish5000 joined 12:44 firefish5000_ left 12:45 kshannon_ joined, itz_ joined 12:47 firefish5000 left
masak yeah, moritz will like the notion of co-grammars and bactions :) 12:48
12:48 firefish6000 joined
jnthn It's more co-parsing than co-grammars :P 12:49
jnthn does some co-hunger... &
12:50 itz_ left, kshannon left, dalek left, d4l3k_ is now known as dalek, itz left 12:51 itz_ joined 12:53 firefish6000 is now known as firefish5000, JimmyZ joined 12:56 JimmyZ_ left, pochi joined 12:58 mls_ joined 12:59 cosimo joined 13:00 shlomif joined, pochi_ left
moritz jnthn: have some co-burger :-) 13:00
13:00 mls left, telex left, cosimo_ left
timotimo did you see the recent video the miegakure devs published? 13:01
13:01 telex joined
timotimo it's kinda something that i'd think the perl6 crowd would enjoy playing when it's finished 13:01
moritz there's a less-than obvious pun here: there's a town called "Coburg" not so far from here
13:02 pecastro joined, rindolf left
timotimo moritz: it'd be fantastic if coburg was the "partner city" of hamburg. but iiuc a partner city has to be in a different country 13:02
13:02 shlomif is now known as rindolf
FROGGS moritz: well, I got it :o) 13:02
13:02 gfldex_ joined, nhayashi left, mhasch left
moritz timotimo: there's an obvious solution to that problem :-) 13:03
let's make Bavaria an indepent nation, just so that Hamburg and Coburg can be partner cities, and we can complete our pun 13:04
13:05 nhayashi joined 13:06 ilbot3 left, pecastro_ left, gfldex left, spider-mario left, spider-mario_ joined 13:07 ilbot3 joined, spider-mario_ is now known as spider-mario 13:08 BooK left 13:09 gfldex_ left, robins left, Pleiades` left, Khisanth left, sivoais_ left, [particle] left, robinsmidsrod joined, zoosha left
timotimo sounds great, we will get lots of support from the rest of the population 13:09
13:10 anaeem1_ joined, sivoais joined 13:11 zoosha joined
colomon FROGGS: what is working in v5 these days? 13:13
FROGGS colomon: quite some part of the syntax I'd say 13:14
13:14 Pleiades` joined
colomon I notice it's compling loads of modules to mbc during the build... 13:14
colomon has realized that lots of the p5 he uses for $work is relatively basic…. 13:15
dalek line-Perl5: cb9cb51 | nine++ | / (2 files):
Fix refcounting in p5_call_p6_method

Just calling the same callback twice revealed lots of missing refcounting code.
13:16
FROGGS tadzik3: github.com/tadzik/panda/pull/97
colomon: most are stubbed
13:16 gfldex_ joined
colomon ah 13:16
FROGGS but it helps me to run the spectests 13:17
and find syntax issues
13:17 BooK joined 13:18 nebuchadnezzar joined
timotimo oh? GLOBAL::<Build>:delete works? 13:19
FROGGS[mobile] no idea 13:22
13:22 Khisanth joined
FROGGS[mobile] that's taken from Builder.pm 13:23
but I remember there was a ticket
timotimo i don't think it *should* work; aren't PseudoStashes immutable? 13:24
moritz but I think GLOBAL:: is a real stash 13:25
13:28 mberends left, [particle] joined 13:29 nebuchadnezzar left 13:31 nebuchadnezzar joined 13:34 coffeeyy_ joined 13:35 coffeeyy left
timotimo i'd be more comfortable merging a change to panda if it would got around the deletion of something in GLOBAL::. that seems really icky to me. 13:35
moritz I think the icky thing is putting the Build sub into the global namespace in the first place 13:36
13:38 JimmyZ left
timotimo yes 13:38
13:39 yakudza joined
timotimo i'd prefer something like my $buildclass := { try require Build; Build } or something 13:39
13:39 huf left, sjn left, ponbiki joined 13:40 sjn joined, ponbiki is now known as Guest11308
FROGGS[mobile] installers also do very weird stuff btw 13:40
timotimo that sounds terrible!
think of the children! 13:41
13:41 mst joined
FROGGS[mobile] timotimo: you can test here if that works, or if that leaks symbols 13:41
13:41 tony-o joined, BinGOs joined 13:42 Maddingue joined
timotimo m: say GLOBAL::; my $plansub := { try require Test <plan>; &plan }; say GLOBAL::; say $plansub; 13:42
camelia rakudo-moar 9a6644: OUTPUT«===SORRY!=== Error while compiling /tmp/uhYcjkrBkb␤Undeclared routine:␤ &plan used at line 1␤␤»
timotimo m: say GLOBAL::; my $plansub := { try require Test <&plan>; &plan }; say GLOBAL::; say $plansub;
camelia rakudo-moar 9a6644: OUTPUT«().hash␤().hash␤-> ($_? is parcel) { #`(Block|47558896) ... }␤»
timotimo m: say ::.keys; my $plansub := { try require Test <&plan>; &plan }; say ::.keys; say $plansub; 13:43
camelia rakudo-moar 9a6644: OUTPUT«$plansub $! $/ $_ GLOBALish EXPORT $?PACKAGE ::?PACKAGE $=pod !UNIT_MARKER␤$plansub $! $/ $_ GLOBALish EXPORT $?PACKAGE ::?PACKAGE $=pod !UNIT_MARKER␤-> ($_? is parcel) { #`(Block|73582960) ... }␤»
timotimo like that?
13:45 jlaire joined, nine joined
FROGGS[mobile] does that leak Test? 13:45
timotimo it very much shouldn't
13:45 nwc10 joined
timotimo Test shouldn't even be available inside that inner braces, right? 13:45
m: say ::.keys; my $plansub := { try require Test <&plan>; say Test.perl; &plan }; say ::.keys; say $plansub;
camelia rakudo-moar 9a6644: OUTPUT«===SORRY!=== Error while compiling /tmp/6UGVIserXy␤Undeclared name:␤ Test used at line 1␤␤»
timotimo m: say ::.keys; my $plansub := { try require Test; &Test::plan }; say ::.keys; say $plansub; 13:46
camelia rakudo-moar 9a6644: OUTPUT«$plansub $! $/ $_ GLOBALish EXPORT $?PACKAGE ::?PACKAGE $=pod !UNIT_MARKER␤$plansub $! $/ $_ GLOBALish EXPORT $?PACKAGE ::?PACKAGE $=pod !UNIT_MARKER␤-> ($_? is parcel) { #`(Block|56484800) ... }␤»
timotimo m: say ::.keys; my $plansub := { try require Test; say ::.keys; &Test::plan }; say ::.keys; say $plansub;
camelia rakudo-moar 9a6644: OUTPUT«$plansub $! $/ $_ GLOBALish EXPORT $?PACKAGE ::?PACKAGE $=pod !UNIT_MARKER␤$plansub $! $/ $_ GLOBALish EXPORT $?PACKAGE ::?PACKAGE $=pod !UNIT_MARKER␤-> ($_? is parcel) { #`(Block|77493280) ... }␤»
13:46 JimmyZ_ joined, JimmyZ_ is now known as JimmyZ 13:47 chenryn joined
timotimo can't find Test in there 13:47
FROGGS[mobile] k
timotimo where does require install things?
m: say GLOBAL::.keys; my $plansub := { try require Test; say GLOBAL::.keys; &Test::plan }; say GLOBAL::.keys; say $plansub; 13:48
camelia rakudo-moar 9a6644: OUTPUT«␤␤-> ($_? is parcel) { #`(Block|52059232) ... }␤»
13:48 huf joined
timotimo ... isn't that too few newlines? 13:48
moritz timotimo: require doesn't import anything into the lexpad 13:49
timotimo: it can't, because it runs at runtime, when the lexpad is immutable
timotimo it doesn't import stuff from inside the module, that much i understand perfectly
but why doesn't "Test" appear in there at all when i just "require Test"?
oh! 13:50
i don't *execute* that piece of code
silly me :D
m: say GLOBAL::.keys; my $plansub := do { try require Test; say GLOBAL::.keys; &Test::plan }; say GLOBAL::.keys; say $plansub;
camelia rakudo-moar 9a6644: OUTPUT«␤Test␤Test␤(Any)␤»
timotimo this is not cool. 13:51
it puts Test into GLOBAL::? why?
am i misunderstanding what GLOBAL:: is for?
13:51 masak joined
moritz it's for our-scoped stuff that's not explicitly inside another namespace 13:51
and tthat's why Test goes there
13:51 masak is now known as Guest83561
timotimo hm. 13:52
unfortunately i don't have something to test the following with on camelia: if i have use Test; in the outer scope and require Test inside there, would GLOBAL:: refer to the first Test first, then the second Test? 13:53
13:54 felher joined
timotimo is the &Test::plan in my code example being done as a "by name" lookup at run time? 13:54
13:55 chenryn left
FROGGS[mobile] it will merge the globals, and noops if they are identical 13:55
timotimo yes, it is.
13:56 charsbar__ joined 13:57 jerrycheung left, JimmyZ_ joined
FROGGS[mobile] which is slow of course (very slow) 13:57
fib(10) with indirect lookup took 15min last year 13:59
timotimo i'm not very good at importation except for using "use" ...
13:59 JimmyZ left 14:00 JimmyZ_ is now known as JimmyZ, PotatoGim^Home joined 14:01 chenryn joined
timotimo ah, i think the word i was looking for is "need" 14:02
yup. that's more like it. 14:03
www.youtube.com/watch?v=9yW--eQaA2I ← this is the video of Miegakure i thought people would be interested in 14:04
14:04 PotatoGim^Home left 14:05 PotatoGim^Home joined
dalek nda: 3ae47e9 | (Tobias Leich)++ | lib/Panda/Tester.pm:
call Build.pm's test method if possible
14:06
nda: 6fc58fd | colomon++ | lib/Panda/Tester.pm:
Merge pull request #97 from FROGGS/test

call Build.pm's test method if possible
colomon FROGGS++
dalek line-Perl5: b181e59 | nine++ | / (3 files):
Support returning values from Perl 6 callbacks to Perl 5
14:08 PotatoGim^Home left 14:09 PotatoGim^Home joined, PotatoGim^Home left
dalek line-Perl5: f6ac9af | nine++ | / (2 files):
Support passing Perl 5 objects back from Perl 6 to Perl 5
14:09
14:10 PotatoGim^Home joined, PotatoGim^Home left 14:11 PotatoGim^Home joined 14:13 Guest11308 is now known as ponpon 14:20 anaeem1_ left 14:25 colomon left 14:28 chenryn left 14:29 chenryn joined
BizarreCake Is an int array implicitly castable to an Int array? 14:30
Guest83561 good question. 14:37
14:38 Guest83561 is now known as masak_grr
[Coke] m: ::!??YOUR_MOM!! # missed dozens opp. from backscroll 14:40
camelia rakudo-moar 9a6644: OUTPUT«===SORRY!=== Error while compiling /tmp/0gNqiuWPGq␤Cannot negate ??YOUR_MOM!! because it is not iffy enough␤at /tmp/0gNqiuWPGq:1␤------> ::!??YOUR_MOM!!⏏ # missed dozens opp. from backscroll␤»
jdv79_ are the smoke tests still running?
14:40 jdv79_ is now known as jdv79 14:41 virtualsue joined
masak_grr m: ::!??IT_IS_NOT_IFFY_ENOUGH!! # iffy enough for you, Perl 6? 14:41
camelia rakudo-moar 9a6644: OUTPUT«===SORRY!=== Error while compiling /tmp/9zY9YKEUwJ␤Cannot negate ??IT_IS_NOT_IFFY_ENOUGH!! because it is not iffy enough␤at /tmp/9zY9YKEUwJ:1␤------> ::!??IT_IS_NOT_IFFY_ENOUGH!!⏏ # iffy enough for you, Perl 6?␤»
[Coke] (backscroll) I think if any sixers start saying that five is dead, we will look back to our existing marketing with nostalgia.
masak_grr heh. 14:42
jnthn I don't think we should be saying such things. :)
masak_grr .oO( why must it be so hard to just peacefully co-exist and kill Perl 5 dead? ) :P
jnthn Not for the foreseeable future.
Yes, we should certianly be proud of the stuff we have, but realistic about the current market share. :) 14:43
masak_grr I don't give a fig's pineapple if some people continue to use Perl 5, and do so in apparent contentment. I don't care if they do it 10 years down the line. 14:44
I *do* care whether an unbiased observer is able to look at the two, and go "all other things being equal, Perl 6 wins hands down".
jnthn wants a picture of a fig being like "this is my pineapple" now :P
huf because of the language conflict. it's the basis of our history and society :)
jdv79 be neat if perl 6 was used for new stuff instead of perl 5 - good new on that front - new perl5 projects are dwindling. 14:45
*news
14:46 kst` joined, JimmyZ_ joined 14:47 pnu_ joined
nine Perl 5 is alive and it will stay that way. As part of Perl 6. 14:47
jdv79 i work at a mostly p5 shop and we're looking to "diversify" because its hard to find p5 people.
masak_grr jdv79: where're you based? 14:48
jdv79 hearst magazines in nyc
14:48 mr-fooba_ joined
jdv79 i think its partly mgmt's fault at $work but i think the general sentiment of p5 in decline in general is proably true. 14:49
14:49 SamuraiJack left, cxreg2 joined, mathw_ joined, anocelot_ joined 14:50 Shozan joined, integral_ joined, integral_ left, integral_ joined, virtualsue left, brother| joined
nine jdv79: we gave up hiring Perl people. We just hire good software engineers and let them learn Perl during their first week. After that the language is rarely an issue. Learning the bits and pieces of our huge application is. 14:50
14:50 petercom1and joined
nine A good developer can be good in any language. 14:51
14:51 petercommand left, petercom1and is now known as petercommand 14:52 chenryn left
jdv79 yeah, that's what i suggested to mgmt multiple times. 14:52
14:52 sorear joined 14:53 dylanwh_ joined, tokuhirom_ joined
jdv79 a major part of "mgmt's fault" 14:53
14:53 chenryn joined
jdv79 well, i don't think i would be good in haskell or lisp or prolog 14:53
14:53 telex left 14:54 eviltwin_b joined
jdv79 so i don't agree that a "good" dev can good in any lang. maybe a great dev. 14:54
nine jdv79: you sure? It may take some more time than with other languages, but I'd guess that they are learnable.
14:54 anocelot left, PotatoGim^Home left, JimmyZ left, SHODAN left, oetiker left, hoelzro left, bcode left, apejens_ left, simcop2387 left, cxreg left, brother left, mathw left, btyler_ left, dylanwh_ is now known as dylanwh, tokuhirom_ is now known as tokuhirom, telex joined, pnu_ is now known as pnu, eviltwin_b is now known as geekosaur
jdv79 i'm not saying that i couldn't get proficient. but not in an economical amount of time. 14:54
14:54 isacloud____ joined 14:55 Exodist joined, PotatoGim^Home joined
jdv79 so in context, yes a good dev should be able to pick up p5 fast enough but the more general statement you made is probably not true in this context 14:55
14:55 oetiker joined
jdv79 too many contexts;) 14:55
nine Ok, I can live with that ;)
14:55 rurban joined 14:56 btyler joined, bcode joined 14:57 hoelzro joined, JimmyZ_ left, xenoterracide joined 14:58 chamelia joined 15:00 chamelia left 15:01 simcop2387 joined
[Coke] nine: we do the same thing here; hire good devs, give them time on the job to pick up the language we use. 15:04
15:07 gcifuentes left
[Coke] rant: old tickets with "maybe" or "either std or rakudo is wrong" 15:08
nine We'd probably have to do that even if we were a Ruby or Python shop. And I don't _want_ to hire PHP code producers :)
[Coke] (not that there's a better way to deal with them)
.seen pmichaud 15:09
yoleaux I saw pmichaud 19 Aug 2014 17:13Z in #perl6: <pmichaud> lists.alioth.debian.org/pipermail/p...00432.html
masak_grr [Coke]: if I'm to blame for "either std or rakudo is wrong" tickets, send them to me and I'll take action on them. 15:10
I'm pretty sure I don't file "maybe" tickets :)
15:10 masak_grr is now known as masak
[Coke] masak: RT #77334 15:11
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=77334
masak looks
[Coke] that maybe ticket is from 4 years ago.
masak oh, we talked about that one the other day.
the question we should ask on that one is "what use case are we making impossible by having `for` loops decontainerize?" 15:12
actually, two more questions. 15:13
"which way is least surprize?" (pretty sure it's doing the decont)
"which way shoots us in the fewest amount of feet wrt performance?" (pretty sure it's the decont) 15:14
15:14 apejens joined
masak in other words, if we can't think of a use case for Q1, then there's no "maybe" there. 15:14
[Coke]: good enough? :)
masak adds this to the ticket 15:15
[Coke] please update the subject to indicate the choice.
nwc10 jnthn: trying to build Rakudo on Power, it bombs out with:
Error while compiling op p6bool (source text: "nqp::p6bool(1)"): Cannot find method 'mast_compunit' at gen/moar/stage2/QAST.nqp:4600 (/home/nick/Sandpit/moar-g/languages/nqp/lib/QAST.moarvm:as_mast:72)
masak [Coke]: well, we haven't quite failed to think of a use case yet... 15:16
nwc10 I have no good idea why. For one of the two files that fails, this is the 273505th call that enters the if(cache && IS_CONCRETE(cache)) block in MVM_6model_find_method
all NQP tests other than nativecall pass. 15:17
mast_compunit is a method created in NQP. I keep wondering if that's something to do with it.
[Coke] so it is still a maybe? arglebargle.
nwc10 But I have no clue on where to start chasing it. So for now I'm stalled.
[Coke] where are tests for Test.pm kept?
nwc10 (ie no idea if it's alignment related, big endian related, or somethign else. It's not "signed vs unsigned" chars.) 15:18
jnthn nwc10: Tried disabling spesh to make sure it's not another bug in there?
masak m: sub foo { my $s; (+($s += $_) for 1..3) }; say foo() # [Coke]: here's the result if we decont.
camelia rakudo-moar 9a6644: OUTPUT«1 3 6␤»
masak [Coke]: do you agree that it's a less surprising result?
jnthn 6 6 6 would be a beastly result... :P 15:19
nwc10 jnthn: I believe that I'd done that. Will retry
[Coke] masak: surprising or no, I want tickets of the form "this code generates result A when it should generate result B". not "we're not sure what's the right answer here..." 15:20
because that kind of ticket stays open for 4 years.
masak *nod*
ok, I'll remove the "maybe", simply because I haven't seen and can't think of a use case that's more important than not letting [Coke] down. 15:22
15:22 chenryn left 15:23 chenryn joined
masak anyone from the future who knows of such a use case, take note: I consider uprooting my decision to be valid to the extent there's a use case to motivate it. 15:23
15:25 colomon joined
masak that may include but is not limited to someone who tries to implement this and notices that the correct implementation fails some (hard to dispute) previously passing spectest. 15:26
firefish5000 anyone know how to change panda's default home install directory on system installations? curently my @*INC has 'inst:/home/user/.perl6/2014.08-158-g9a66444'. which is changes on every upgrade. 15:27
15:28 chenryn left
masak n: sub foo { my $s; ($s += $_ for 1..3) }; say foo() 15:28
camelia niecza v24-109-g48a8de3: OUTPUT«Use of uninitialized value in numeric context␤ at /home/p6eval/niecza/lib/CORE.setting line 1389 (warn @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 301 (Any.Numeric @ 8) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /tmp/lyAl7MmdzM l…»
masak n: sub foo { my $s = 0; ($s += $_ for 1..3) }; say foo() 15:29
camelia niecza v24-109-g48a8de3: OUTPUT«1 3 6␤»
masak this is a data point, too. Niecza decontainerizes.
pugs: sub foo { my $s = 0; ($s += $_ for 1..3) }; say foo()
camelia pugs: OUTPUT«*** ␤ Unexpected "for"␤ expecting operator or ")"␤ at /tmp/ffUqX6tAIC line 1, column 32␤»
masak hehe.
pugs: sub foo { my $s = 0; for 1..3 { $s += $_ } }; say foo() 15:30
camelia pugs: OUTPUT«␤»
masak oh, Pugs.
masak hugs Pugs
[Coke] anyone else use t/fudgeandrun?
trying to figure out where Test::Util is included. 15:31
15:32 xenoterracide left
colomon FROGGS++: just installed v5 succesfully with panda. 15:35
15:37 kyun joined 15:38 JL235__ joined 15:40 kyun is now known as kyunsiu 15:41 raiph joined 15:42 chenryn joined 15:43 guru joined, guru is now known as ajr_ 15:47 chenryn left, raiph left, chenryn joined
pmichaud good morning, #perl6 15:51
TimToady good morning indeed :) 15:52
kyunsiu good night……
masak pmichaud! \o/ 15:53
pmichaud: I meant to ask you something... hold on.
pmichaud I'm just looking at the discussion in #77334
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=77334
masak oh right. 15:54
pmichaud: irclog.perlgeek.de/perl6/2014-08-27#i_9250186
pmichaud: could you provide some background about *..* being illegal?
somehow I'm missing all traces of that decision in spec/implementations/backlogs.
pmichaud let me see if I can reconstruct it 15:55
masak yay
pmichaud it may take a bit 15:56
grondilu Configuring native build environment ................... JIT isn't supported on i586-linux-gnu-thread-multi-64int yet.
:/
masak pmichaud: no worries. 15:57
16:01 jeffreykegler joined
jeffreykegler re Marpa and the BNF for Perl 6: 16:01
our volunteer from the Marpa side (Jean-Damien) has hoped to work up the BNF after finishing another projects, but this is taking longer than he thought. 16:02
Just thought I'd let the backlog know there'll be delay.
TimToady well, we've been working on our end of it for 14 years now :) 16:03
16:03 molaf joined
moritz grondilu: you could try to patch Configure.pl and see if it works after all, if you force it 16:03
TimToady but thanks for the headsup
jeffreykegler TimToady: I have another unrelated question re LALR
colomon thought he'd done something BNF-y a while back
jeffreykegler Why the switch in parsing strategies from Perl 5 to Perl 6 16:04
moritz grondilu: it might (or might not) just be a limit in the platform recognition code
TimToady colomon: wanna help someone write a BNF for p6?
masak tends to think of Perl 6 grammars as "a better BNF" these days
jeffreykegler I can imagine why, but I think it'd be nice to have your reasons for the historical record
If you guys want to do a Perl 6 BNF, I think it's something you'd find nice to have, and not just as a starting point for Marpa 16:05
hoelzro morning #perl6
colomon TimToady: I'd like to figure out what I've already done first. ;)
carlin is there a way to make the perl6 script keep going if a C function called with NativeCall exit()s?
jeffreykegler It's good for reference -- when encountering a new language, it's the first thing I read, just to get oriented. 16:06
moritz carlin: I'm not aware of any
TimToady thing is, the grammar mutates as declaration happens, so about the best we can do is say this is what Perl 6 looks like at the top of your program, if you don't get too fancy
moritz carlin: will, forking first, maybe
FROGGS colomon: nice! :d
ERR, :D
dang capslock
moritz m: say uc 'dang capslock' # FTFY 16:07
camelia rakudo-moar 9a6644: OUTPUT«DANG CAPSLOCK␤»
carlin moritz: okay thanks, I'll try that
FROGGS colomon: btw, I have a commit bit for panda too, but I wanted to get tadzik++'s approval
colomon FROGGS: ah, well, I kind of wanted it ASAP. ;) 16:08
TimToady jeffreykegler: I'm pretty sure I've scattered the reasoning over the historical record already, but "scattered" is the operative word there :)
moritz star: use NativeCall; sub fork(--> Int) is native() {}; fork(); say 42
camelia star-{m,p} 2014.04: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤None of the parametric role variants for 'Native' matched the arguments supplied.␤Cannot call ''; none of these signatures match:␤:(Mu ::$?CLASS ::::?CLASS, Routine $r, Str $libname)…»
16:08 chenryn left
moritz star: use NativeCall; sub fork(--> Int) is native('') {}; fork(); say 42 16:08
camelia star-m 2014.04: OUTPUT«Cannot locate native library '.so'␤ in method postcircumfix:<( )> at /home/p6eval/star-2014.04/languages/perl6/lib/NativeCall.pm6:127␤ in block at /tmp/tmpfile:1␤␤»
..star-p 2014.04: OUTPUT«Cannot locate native library '.so'␤ in method postcircumfix:<( )> at /home/p6eval/star-2014.04/lib/parrot/6.1.0/languages/perl6/lib/NativeCall.pm6:131␤ in any at gen/parrot/BOOTSTRAP.nqp:1693␤ in block at /tmp/tmpfile:1␤␤»
colomon FROGGS: and it's version control, tadzik++ can always revert it if he hates it.
jeffreykegler TimToady: I've searched and found nothing.
FROGGS star: use NativeCall; sub fork(--> Int) is native {}; fork(); say 42
camelia star-m 2014.04: OUTPUT«42␤»
..star-p 2014.04: OUTPUT«42␤42␤»
jeffreykegler It may be that I'm not scattered enough :-) 16:09
moritz FROGGS++
FROGGS cake &
masak LHF for someone: perl6.org/compilers/features lists Niecza/goto as not implemented. it is, at least partially.
jeffreykegler I'm particular interested in the negative side -- not the attractions of the new approach, but what (if anything) made you decide you had to give up on yacc.
TimToady but in short, LALR is very fast but stupid, and doesn't really know enough to give you a good error message in context, so mostly you get "Syntax error". 16:10
jeffreykegler That's what I thought would be the reasons 16:11
grondilu moritz: I can try but I don't have much hope. I can see the current accepted arch are all 64 bits.
TimToady LALR was an optimization for slow computers, and computers are getting faster--admittedly there will always be reasons for fast parsers, but unless you're compiling millions of lines of code, that's not so important anymore.
16:11 kjs_ joined
TimToady LALR kinda forces you to write a lexer, and we wanted the lexer to write itself. 16:11
LALR doesn't like to switch languages in midstream, since it puts you into a superposition of states some of the time. 16:12
nwc10 jnthn: progress. Some combination of things, including possibly PEBKAC. Have yet to identify actual cause
TimToady but mostly, we didn't want to have to do all the workarounds we did in Perl 5 to get around yacc's limitations
masak TimToady: we tend to say that Perl 6 grammars induce a lexer. how feasible would it be (for whatever purpose) to actually derive an actual lexer from a given grammar? 16:13
TimToady it would be useful to have something like LALR as an optimization tool for P6 regex, but we want to get the semantics useful first from a regex viewpoint
16:14 chenryn joined
TimToady useful in the Perlian sense of practical 16:14
Rounin_ I'm very impressed with error messages in Eclipse... if I suddenly throw an exception to do some debugging, it immediately complains about unreachable code
hoelzro does anyone have any insights into improving Stringification for Regex's?
Rounin_ So now I've started doing if(3+3==6) ....
Hahaa, Eclipse!
TimToady and why P5 does all this impure stuff in regex that works in practice but not so much in theory :)
hoelzro I was thinking about it last night, and I'd like to take a shot at making it better
Rounin_ Let's see it beat The Halting Problem
jeffreykegler Btw, correct me if I'm wrong, but I believe Perl 5 was the most ambitious use of yacc ever -- most complex grammar. 16:15
TimToady but the biggie, we wanted to parse P6 with P6 "regex".
masak also, suggestion: break up "NFG as default, StrPos/StrLen" in perl6.org/compilers/features as two table rows "NFG as default", "StrPos/StrLen". one could be implemented wihtout the other.
jeffreykegler Which makes it a kind of high water mark in the history of LALR
grondilu is recompiling, forcing JIT support on his 32 bit system.
TimToady and we wanted P6 to be extensible in a way that a 100-year language has to be
masak Rounin_: Java has always had a thing about dead code. 16:16
Rounin_ Yeah, hehe... You have a switch statement that returns something, and you have to put a "return null" at the end to get it to compile ;)
jeffreykegler Which is why I think of this as historically significant in parsing theory, and not just a matter of Perl history
masak Rounin_: it was the first thing that made me wonder if there shouldn't be a distinction between showstopper errors that really should prevent me from running my program, and merely highlight-worthy things that I might want to fix before committing. 16:17
Rounin_: I'd still like to see a language make that distinction in depth.
TimToady well, smushing together regex and parsers is what we felt we had to do to get those results
also a strict observance of one-pass parsing
Rounin_ Mm... Like something in between compiler warnings and errors or something? 16:18
masak TimToady: and an almost fanatical devotion to the pope.
TimToady no accidental genericity of language (intentional genericity is okay, in moderation)
grondilu got a segmentation fault. Not too surprising. Reverting to default.
jeffreykegler TimToady: "accidental generacity" -- does that mean parsing more than you intended, a la LALR and Pegex. 16:19
16:19 mst left, mst joined
TimToady that means parsing the same thing twice as two different languages, which means you don't actually know what language you're programming in 16:20
see, for example, source filters in P5
masak Rounin_: yes, something like that. I tend to think of it as "the small loop" (think-write-run-think-write-run) and "the bigger loop" (change-commit-change-commit). some errors should prevent the "commit" step from happening, but not the "run" step. 16:21
FROGGS .oO( "use Switch" - A Success Story )
TimToady they don't layer because each of them thinks "this is Perl 5 code", and all but one of the layers is wrong about that
masak Rounin_: I guess in that sense they are "between" errors and warnings, because probably warnings shouldn't prevent any of the steps.
TimToady so we wanted composable language mutation
FROGGS composable++
masak Rounin_: let's call them "orange errors", because run-preventing errors tend to be red, and warnings tend to be yellow. :)
TimToady same reasoning as moving from text macros to hygienic macros, writ large
masak or even AST macros. :) 16:22
(which may or may not opt for hygiene)
TimToady yes, AST is kind of a metalanguage for talking about language differences 16:23
pmichaud masak: aha. The reference to *..* being illegal was in S03, not S02.
TimToady or, perhaps, a common language for a variety of surface languages
pmichaud link coming up
16:23 jeffreykegler left
pmichaud masak: in fact, it's still there. 16:24
masak ooh
pmichaud S03:3541
synopsebot Link: perlcabal.org/syn/S03.html#line_3541
16:24 jeffreykegler joined
masak found it. 16:24
masak blames the line
from Sep 2009. lwall. 16:25
pmichaud Probably because with *..* you don't know what type the range is.
(and it's not entirely correct to assume numeric) 16:26
FROGGS m: say Date ~~ *
camelia rakudo-moar 9a6644: OUTPUT«True␤»
masak with all due respect, I call bullshit.
16:26 gfldex_ is now known as gfldex
FROGGS everything should match against *..* 16:26
masak with Inf and -Int, you don't know what type you're matching either.
FROGGS and result to True
masak er, -Inf
FROGGS masak: that bloody typo! :P
pmichaud It's possible that the -Inf meaning came later 16:27
colomon pmichaud: I think that's true with -Inf..Inf as well, which is allowed though that may be non-spec
masak FROGGS: actually, the reverse of what I made in 2011 ;)
pmichaud at any rate, the source of *my* change has been found. :)
masak pmichaud++
pmichaud apologies for the typo in the commit message.
jeffreykegler OK, that explains some things you said to me earlier when we talked about multiple parsing phases.
pmichaud (four years ago)
masak no worries.
TimToady: permission to unspec *..* being illegal in S03? :)
masak salutes, just in case 16:28
FROGGS -Inf..Inf sounds pretty Numeric to me fwiw... but cannot explain
pmichaud masak: you want it to be equivalent to -Inf .. Inf ?
masak yes.
16:28 brrt joined
pmichaud m: say 'a' ~~ (-Inf .. Inf) 16:28
camelia rakudo-moar 9a6644: OUTPUT«True␤»
masak FROGGS: it's OK if people assume it's numeric only.
FROGGS: it will still work for Strs and Dates. 16:29
TimToady what do you return for the .min and .max, such that it works with before/after?
moritz m: say 'X' ~~ (-Inf .. Inf)
camelia rakudo-moar 9a6644: OUTPUT«True␤»
jeffreykegler "Accidental genericity" seems to be from linguistics.
pmichaud m: say (-Inf .. Inf).min
camelia rakudo-moar 9a6644: OUTPUT«-Inf␤»
pmichaud m: say (-Inf .. Inf).max
camelia rakudo-moar 9a6644: OUTPUT«Inf␤»
masak TimToady: I'm fine with it converting to -Inf..Inf under the hood, if that's necessary.
TimToady: what does 0..* currently do in that regard?
FROGGS masak: yeah, I think that is not too far off
pmichaud well, that's what * .. and .. * currently do, iirc
masak m: say (0..*).max
TimToady jeffreykegler: it's not an either/or thing; I'd say that phrase is more of a hodgepodge of linguistics and CS
camelia rakudo-moar 9a6644: OUTPUT«Inf␤»
pmichaud they convert to -Inf and Inf
colomon m: say 'a' before Inf 16:30
camelia rakudo-moar 9a6644: OUTPUT«True␤»
masak right.
ok, I feel I have enough consensus for my silly crusade.
TimToady but the spec thinks Inf is larger than anything in any type
masak goes ahead and makes the changes
TimToady and rakudo has mixed emotions about that
pmichaud masak: what's the use case for *..*, ooc? 16:31
masak TimToady: yes, but a loose consensus there seems to be that the spec is "right", and it's all just a SMOP.
TimToady the only use case is something that *must* be a Range, and wants to match everything
masak pmichaud: lack of surprising corner cases when synthesizing ranges from parts.
TimToady but it's absolutely not needed for smartmatching
since either True or * match everything already
pmichaud masak: we're synthesizing ranges using Whatever ?
colomon and you could always just type -Inf..Inf 16:32
masak sure, why not?
oh, here's another one.
someone has a big nice vertical lineup of ranges.
TimToady m: say 'b' ~~ 'a' .. Inf;
camelia rakudo-moar 9a6644: OUTPUT«True␤»
masak some of the ranges have whatever endpoints.
everything works, except *..*, where one has to break the symmetry and go *
TimToady m: say 'b' ~~ -Inf .. Inf;
camelia rakudo-moar 9a6644: OUTPUT«True␤»
masak someone becomes sad over this, and curses Perl 6 for its fickleness. 16:33
pmichaud I have no problem with allowing *..*, but I'd really like to make sure we know the reason it was disallowed in the first place
rather than just say "oh, we don't remember why, let's change it."
colomon blame on S03?
16:33 PotatoGim^Home left
masak I read through 566592f, and it doesn't really provide an explanation. 16:34
16:34 PotatoGim^Home joined
masak - *..* # "-Inf .. +Inf", really Ordered 16:34
+ *..* # Illegal
there's no hint in the (rather verbose) commit message.
pmichaud well, that commit was a major refactor of ranges and sequences, iirc
masak aye.
16:35 domidumont joined
masak "Range objects are now primarily intervals in C<cmp>" -- maybe this is the reason? 16:35
m: say 42 cmp *
camelia rakudo-moar 9a6644: OUTPUT«WhateverCode.new()␤»
jeffreykegler I'll think this issue out a bit, but I think "accidental genercity" becomes much less of a threat if you are doing fully general BNF parsing.
It becomes much easier to control and contain the sources of "accidents"
16:36 Alula_ joined
TimToady the thinking goes like: "*..* is useless for iterating, it's useless for smartmatching, it has an indeterminated type that is better matched by a role." 16:36
composability is the only reason for it, and Inf is a better candidate for that 16:37
pmichaud I'm not sure that "useless" implies "should be illegal", though.
masak +1
TimToady and * is a little too magical to be used as a composable object
masak this is the same kind of thinking that led us down the "Duration should disallow infix:<**>" path.
pmichaud is unfamiliar with that path.
masak moritz wrote a blog post, I think. 16:38
*moritz++
pmichaud anyway, I'm glad I was able to pinpoint the source of the change :)
masak or maybe I did. I keep mixing the two of us up.
FROGGS O.o 16:39
masak perlgeek.de/blog-en/perl-6/real-wor...-back.html
found it :)
pmichaud reads
masak please read that one, and think on how that one applies to this situation ;)
TimToady feels this discussion is largely a waste of time, and DOESTN'T ACTUALLY CARE what you do with *..* really, since it was put in there so that implementors wouldn't have to think about it
TimToady is much more concerned with the fact that 'use fatal' is currently dynamic than lexical 16:40
or that .plan hangs if you subscript it
pmichaud well, removing the *..* illegality actually simplifies the range code, I think. :-)
TimToady or that he doesn't understand the reify/REIFY dance much at all yet
masak TimToady: sorry -- didn't mean to steal cycles better spent elsewhere. 16:41
I'll just shut up and make the change now, so we can all move on in life.
TimToady I have no objection to changing *..* back, if it's easy and has decent semantics
pmichaud (real world strikes back)++ # I've always detested restrictions on date/time operations
if I want to say "January 34th, 2011", it should just work.
nwc10 $ ./perl6-m -e 'say $*DISTRO'
linux (2.6.32.279.19.1.el.6.ppc.64)
TimToady a lot of the spec changes at that time were based on perceptions of implementability 16:42
pmichaud s/at that time were/are/ # :-)
TimToady jeffreykegler: yes, BNF basically has no concept of grammar mutation, so it comes down to switching to a different BNF within a scope, which degenerates to making sure all the superposed states of the subsidiary grammar all end in agreement at the same block terminator (however you define 'block') 16:43
16:44 colomon left, rindolf left
TimToady which is certainly doable, if the terminator is not too squishy 16:44
16:44 rindolf joined
TimToady in P6 we tend to force the issue on any ), ], or }, which are always considered terminators 16:45
nwc10 jnthn: some combination of PEBKAC (ie actually install the fixed NQP), -fsigned-char, MVM_SPESH_DISABLE and building with -g. And a couple of spectests fail with SEGVs
TimToady but the subgrammar is often also checking for a specific GOAL token, if that is not one of the above
nwc10 jnthn: but reducing the above to the true cause is now a tractable optimisation problem. 16:46
Win!
masak ah. I didn't blog about the Duration thing. I just (surprise!) kvetched about it online: irclog.perlgeek.de/perl6/2010-11-07#i_2973261 16:47
TimToady and when goals overlap with other longer tokens, you have a potential genericity problem, so we try to avoid that
jeffreykegler OK. I think I see. The concern arises in a state-driven, deterministic context.
masak "no offense, but what you just said is so short-sighted it sounds like it came from a Python person." -- man, this guy is cynical :P 16:48
hoelzro how does one create new tags on RT?
pmichaud masak: :-)
hoelzro I'd like to start tagging POD-related issues as such
pmichaud ...one of my rants about RT vs. git issues :) 16:49
"hard to create custom tags"
hoelzro: the standard mechanism we've often used is to put "[POD]" in the ticket title
jeffreykegler In general BNF terms, you just have the possible rules at any moment, and they act as a kind of non-deterministic state -- though the issue does re-arise in the form of "What rule(s) am I looking for right now?" 16:50
hoelzro pmichaud: ah, that's a good idea!
TimToady basically, deterministic parsing is great at splitting into states, but lousy at making the arbitrary decisions necessary to bring things back together at the end of a construct, especially when language semantics and pragmatics start to come into play
therre's also some kind of sentiment in p6 that, if something is hard for a parser to do, it'll be hard for mere mortals to understand as well 16:51
jeffreykegler In Marpa, I use more power to transcend these issues, but they re-arise in the form of "OK, but how do you do this efficiently?" 16:52
TimToady which is why we go with simple operator precedence most of the teim
*time
pmichaud lunchtime -- bbl
TimToady despite the existence of parsers that can look at a series of intermixed terms and ops
jeffreykegler Which parsers are those? 16:53
TimToady doesn't remember, because he wasn't terribly interested in them :)
16:53 mberends joined
jeffreykegler suspect that in that case they wouldn't terribly interest him either. 16:54
16:54 mberends left, erdic left
TimToady but it's sort of a principle that the smarter the computer is acting, the smarter the user has to be to understand what the computer is doing well enough to program it 16:55
maintaining lots of state while parsing is just an application of that principle
16:55 mberends joined
TimToady humans solve it by backtracking occasionally 16:55
jeffreykegler I think a lot of what is "complex" or "smart" depends on the abstraction. 16:56
16:56 erdic joined
jeffreykegler That is regular expressions are a fairly natural boundary, so even if they are more complex than something else mathematically ... 16:57
TimToady despite having trillions of synapses, we generally guess which state we're going to reduce to on the fly, and throw the others away
jeffreykegler If it's a regex it's easier on the mind because it's a natural boundard.
TimToady yes, we're trying to hit a sweet spot between declarative and procedural
jeffreykegler General BNF is another natural boundary.
LALR is cleary not a natural boundary
16:58 brrt left
dalek ecs: cba89c2 | masak++ | S03-operators.pod:
[S03] re-allow whatever star on both sides of a range

See irclog.perlgeek.de/perl6/2014-08-30#i_9271208 (until about 16:41 UTC) for the relevant discussion around the change.
16:58
jeffreykegler So I think of it in terms of good boundaries and staying close to them.
TimToady is not sure about BNF; psychologically we tend to do frame shifting in different linguistic settings (to the extent that kid who speaks language A at home and language B at school can't even speak A at school or B at home. 16:59
otoh, we have polyglot cultures that just freely intermix on the fly
so I can argue that one both ways, linguistically speaking 17:00
jeffreykegler Do you think any of the more powerful deterministic classes LL(*), etc. are more natural?
17:00 chenryn left
TimToady is not really a theorist on that level :) 17:00
one of the motivations for installing EXPR (the op prec parser) as the glue in the layer cake was to prevent having to think about left recursion much 17:01
17:01 PotatoGim^Home left
jeffreykegler I'm just trying to think of Perl 6 parsing in terms of a language class. 17:02
TimToady sort of one of those spots where you're in a superposition of states that mere mortals don't like
jeffreykegler And it seems sort of LL(something)
TimToady well, it's probably just simple LL with pragmatic kludges :) 17:03
the STD parse at one point at least noticed if the declarative prefix went recursive 17:04
jeffreykegler The advantage of staying deterministic is that you have more guarantees of keeping the efficiency under control.
TimToady dunno if rakudo does, and doesn't matter much when parsing P6 :)
jeffreykegler But I've been taking the approach of going for more powerful parsing, and trying within that to find the efficient subset. 17:05
TimToady basically, even if there's a left recursion, we assume there's some procedural decision that makes it unambigous somewhere along the cycle 17:06
jeffreykegler General BNF parsing, for example, "just solves", the left recursion issue, along with a lot of others.
TimToady well, so does operator precedence :) 17:07
and we're using the simplest thing that could possibly work, on that level 17:08
dalek ast: 782fee4 | masak++ | S02-types/range.t:
[S02-types/range.t] test for *..* being allowed and OK

This commit conceptually reverts commit d2b95d716762e427fe4692bbaeda8923d52b463f, though because so much has changed since 2010 -- t/spec paths, test counts, the methods of the names on the Range method -- I ended up doing the revert manually.
17:09
17:09 PZt joined
jeffreykegler 14 years ago, it was almost only thing that did work. 17:09
TimToady I'm not opposed to fancier parsing techniques per se, as long as the user doesn't have to care, but at this point I tend to take the bear of very little brain approach to design
indeed, I used to use LALR, which is pretty fancy in its inimitable way 17:10
17:10 kyunsiu left
jeffreykegler I'm hoping Marpa will do what yacc/LALR promised but never delivered on. 17:10
TimToady and had to work pretty hard to work around its deficiencies as a human language parser
jeffreykegler i've read the Perl 5 parser carefully 17:11
TimToady that'd be cool
my...condolences...
jeffreykegler In fact, I've gone back into the archives and read each of the versions.
Perl 1, 2, 3 ...
I notice, for example, that the parser is almost as complex in Perl 1 and it is in Perl 5. 17:12
TimToady so you know that, of the 4 or 5 ways a compiler can lie to itself, Perl lied to itself 7 or 8 ways... :)
dalek kudo/nom: b2becaa | masak++ | src/core/Range.pm:
[src/core/Range.pm] allow *..*

It now means -Inf .. Inf.
See the following resources for rationale:
  - irclog.perlgeek.de/perl6/2014-08-30#i_9271208 (until 16:41)
  - spec:cba89c2537d100be8fac3a5d13200671afd3243f
  - roast:782fee4de0817a1950d7d4744f0a45f3836e7d3d
TimToady there were some simplifications between 4 and 5
jeffreykegler LALR downfall was that it required custom hacks, but was not at all friendly to them.
FROGGS m: my $foo = "foo"; my $bar = "bar.com"; say "{$foo}@{$bar}" 17:13
camelia rakudo-moar 9a6644: OUTPUT«postcircumfix:<{ }> not defined for type Array␤ in method Str at src/gen/m-CORE.setting:13275␤ in method Stringy at src/gen/m-CORE.setting:1094␤ in block <unit> at /tmp/heQfVaeR00:1␤␤»
masak m: my $foo = "foo"; my $bar = "bar.com"; say "{$foo}\@{$bar}"
camelia rakudo-moar 9a6644: OUTPUT«foo@bar.com␤»
jeffreykegler I wrote a blog post about the "use" statement in Perl 5, which is an example of what I think you call lying.
masak FROGGS: @ interpreted as a sigil.
FROGGS masak: yes, since about 24 hours or so :o) 17:14
that happens in LWP::Simple btw
TimToady yes, the primary way to redirect a LALR parse is to lie about what tokens are coming, basically
jeffreykegler You know the Abe Lincoln saying, "Once a cat's been burned, he won't even sit on a cold stove." 17:15
FROGGS m: say [email@hidden.address]
camelia rakudo-moar 9a6644: OUTPUT«foo@bar.com␤»
FROGGS okay, that still works, nice
TimToady with P6 we integrated the procedural decisions into the declarative, so you can just <?{ some assertion }> and validate/invalidate a parse
jeffreykegler How is the boundary between operator precedence and your more general LL parsing determined? 17:16
TimToady the fact of the existence of the procedural decision is declared there :)
FROGGS moritz: can you merge please? github.com/cosimo/perl6-lwp-simple/pull/36
jeffreykegler Looking at PGE and all I never could figure out how that was to work. 17:17
FROGGS ohh, moritz++ is probably enjoying a dinner right now :o)
TimToady well, every call to termish or infixish is a call back into LL land, and you just have to know the terminators for when to stop the operator precedence dance
and EXPR just looks like an ordinary token to LL 17:18
s/token/rule/
jeffreykegler OK that makes sense. 17:19
17:19 anaeem1_ joined
jeffreykegler Would it be fair to say it's a more systematic way of doing what done a lot in recursive descent parsers? 17:19
TimToady the fancy PEG bits are not inside EXPR at all, that's all LL land, specifically driven by alternations
TimToady is unclear on the antecedent of "it" 17:20
jeffreykegler was referring to the lines at irclog.perlgeek.de/perl6/2014-08-30#i_9271783
17:21 anaeem1_ left, anaeem1_ joined
TimToady well, it's a system that works for parsing P6, but any kind of parser could be inserted at the same spot, and just use LL-land for its tokenizer 17:22
jeffreykegler OK
TimToady so in a sense our parser is the simplest of a class of hybrids
jeffreykegler Do you know of ANTLR? 17:23
TimToady looked at it a little once, and has forgotten most of it since
hoelzro masak: I saw you reported an issue about "say DOC BEGIN { 4 }" a few years ago
masak another LHF: rosettacode.org/wiki/Metaprogramming#Perl_6 claims no implementation supports hygienic macros. Rakudo does.
17:23 kyunsiu joined
hoelzro I'm looking at fixing it, but I'm unclear as to what it should *do* 17:23
masak hoelzro: have you checked S26?
hoelzro yes
17:24 mj41 joined
hoelzro did some searching for DOC BEGIN, anyway 17:24
masak there's exactly one mention of DOC BEGIN in S26.
hoelzro it just seems like the say wouldn't be evaluated when using --doc, and the DOC BEGIN wouldn't be without --doc
masak S26:2822.
synopsebot Link: perlcabal.org/syn/S26.html#line_2822
jeffreykegler I make the comparison because both Perl 6 and ANTLR seem to be systematic approaches to left parsing plus pragmatic hacks. 17:25
masak hoelzro: the 'DOC' makes it run only when using --doc. the 'BEGIN' makes it run at parse time. I think that's it.
as in, I don't think there's more to it than that.
m: DOC BEGIN { say "guess we won't see this" }
camelia ( no output )
TimToady jeffreykegler: you have to understand that my perceived job is merely to understand the fire I've personally stolen from the gods, not to understand all the fires of the gods. :D 17:26
hoelzro masak: right, but what about the say call prepended to that?
does it ever get evaluated?
(if using --doc, that is)
jeffreykegler I don't claim to understand all this stuff myself.
masak $ perl6 --doc -e 'DOC BEGIN { say "OH HAI" }' 17:27
OH HAI
seems we have DOC BEGIN already.
jeffreykegler The big feature of ANTLR AFAICT is that he attempts to use tables, a la LALR.
TimToady my real job is culture formation, and that's too broad a subject to get bogged down in any one aspect of it, so I cheat all over the place :)
hoelzro masak: I think the bug is that the error message is weird
17:28 anaeem1_ left
masak hoelzro: I don't understand the question. can you rephrase, perhaps using running code and camelia? 17:28
hoelzro but I want to consider the intended behavior if I fix this
sure
jeffreykegler That is, LALR used tables heavily, but left well known is that there are LL tables.
17:28 FROGGS[mobile] left
hoelzro perl6 -e 'say DOC BEGIN { 4 }' # what should this print? 17:28
perl6 --doc -e 'say DOC BEGIN { 4 }' # what should this print?
jeffreykegler LL tables are less well known because in practice they are almost never used.
masak hoelzro: $ perl6 --doc -e 'say 4' # prints nothing -- I don't see why your first case should be any different. 17:29
jeffreykegler My main source of information about hot new parsers is searching the net for statements like, "I thought about using Marpa, but decided to use X instead." :-) 17:30
hoelzro masak: seems reasonable
17:30 kjs_ left
firefish5000 is there currently a way to permanitly add/change a CompUnitRepo::Local::Installation for a user? prehaps via a libraries.[cfg|json] file 17:31
hoelzro I'm just thinking about what the Actions for DOC BEGIN should look like without --doc
because that say is getting evaluated
I'm thinking it should probably be something like say if(0) { True }
masak hoelzro: re the second case: I don't see why it should print anything. the `4` may well be returned as the value of the DOC BEGIN, but the `say` is not run, because we're not running the normal mainline code, because we're passing --doc
hoelzro m: say if(0) { True } 17:32
camelia rakudo-moar 9a6644: OUTPUT«===SORRY!===␤Word 'if' interpreted as 'if()' function call; please use whitespace instead of parens␤at /tmp/F37zD2BF1S:1␤------> say if⏏(0) { True }␤Unexpected block in infix position (two terms in a row)␤at…»
hoelzro m: say if 0 { True }
camelia rakudo-moar 9a6644: OUTPUT«===SORRY!=== Error while compiling /tmp/Vq8WS12eA1␤Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument␤at /tmp/Vq8WS12eA1:1␤------> say ⏏if 0 { True }[…»
hoelzro masak: I'm thinking about the without --doc case at the moment
masak right. hold on :)
m: say BEGIN {}
camelia rakudo-moar 9a6644: OUTPUT«Nil␤»
masak that seems to be a good inspiration :)
hoelzro ok, that's what I was thinking =) 17:33
masak or even
m: say END {}
camelia rakudo-moar 9a6644: OUTPUT«Nil␤»
hoelzro thanks for clearing that up!
masak oh, same.
jeffreykegler Anyway, it's been very informative.
masak m: say do if 0 { True }
camelia rakudo-moar 9a6644: OUTPUT«Nil␤»
hoelzro so Nil it is 17:34
jeffreykegler Jean-Damien *is* interested, but overloaded, and once he was has Perl 6 BNF and we can do a prototype, we'll have something more specific to talk about.l
masak hoelzro: (need `do` on there, because `if` is a statement form, not an expression)
jeffreykegler: looking forward to such a prototype!
hoelzro ah, good to know!
jeffreykegler masak: thanks! 17:35
17:36 kjs_ joined
dalek kudo/nom: c57f122 | (Rob Hoelz)++ | src/Perl6/Actions.nqp:
Make DOC blocks evaluate to Nil when not using --doc
17:36
jeffreykegler And this is perhaps not a bad point to thank all of you in the Perl 6 community -- in addition to the technical insights, you've provided inspiration and a role model.
hoelzro masak: done =)
TimToady you're welcome!
17:36 jeffreykegler left
masak hoelzro++ 17:36
jeffreykegler++ # thank *you* for Marpa -- likewise an inspiration and a role model! 17:37
TimToady tries feebly to backlog again... :) 17:38
17:38 Gruber is now known as Grrrr 17:39 ivanshmakov left 17:43 anaeem1 joined, ivanshmakov joined
masak has been very happy writing exploration code in Perl 6 most of the day 17:44
17:45 BizarreCake left
masak in 2014 more than any previous year, and with Perl 6 more than any language, I feel that I can "think in Perl 6", and have more or less a direct dialogue between myself and the language runtime. 17:46
I guess that's my way of saying "I don't suffer from any showstopping bugs anymore" ;)
TimToady except *..* :P
17:46 FROGGS[mobile] joined
masak you brought it up, not me :P 17:46
'sides, I just fixed that, so... 17:47
TimToady could you just fix NFG and native arrayw now too :)
timotimo i'd like that :)
masak .oO( *phew*, he typo'd "arrays", otherwise I'd've had to do it! )
17:48 kjs_ left
TimToady that's just the plural in some language resembling Welsh in orthography 17:48
timotimo don't try to outlinguistify larry wall! ;)
masak darn. 17:49
TimToady rhymes with "mystify" :)
17:49 FROGGS[mobile] left
TimToady I am not a linguist, but I play one all the time. 17:49
masak anyway, my prime sources of euphoria today, without going into detail, have been: (a) defining lots of custom Unicode prefixes, infixes, and circumfixes, and then using them in code as if they were a natural part of the language. 17:50
(hence my discovery of some iffy chicanery)
TimToady sounds...fiddly...
masak (b) declaring classes and subtypes, and then dressing them up in syntax (with above-mentioned ops) and laws (with subs, backed by tests) 17:51
TimToady sounds...categorically...
masak (c) generally using metaops on my ops. I still can't really believe that works. :) mostly I used Zop this time. I've also been known to [op]
17:52 colomon joined
TimToady there's little point in having a grammar with syntactic categories unless you're going to use them productively 17:52
masak right.
or destructively :P 17:53
colomon apologizes for being in and out of the channel, but is now lodged in from of the football game on TV
TimToady destructive processes are merely using the process of destruction productively :P
masak (d) summarizing small `for` loops as `so all` or `so any` constructs. I've made peace with junctions now by putting `so` on them in as small a scope as possible.
17:54 ivanshmakov left
TimToady yes, junctions are the high nobles of a very small country 17:55
17:55 xenoterracide joined
TimToady the ordinary rules do not apply to them, unless they wander, and then they get into deep trouble 17:55
they live in the Land of Bool 17:56
colomon so what's the goal with having BNF in p6?
TimToady s/in/of/
masak I think that's it, those four things. I ended up stumbling over rt.perl.org/Ticket/Display.html?id=122653 and rt.perl.org/Ticket/Display.html?id=122654, but neither of them were show-stoppers. 17:57
TimToady to maybe get a marpa parser for standard p6 out of it
17:57 kyunsiu left
masak (and they're exactly the kind of bug that I'm happy I stumble over, rather than someone else) 17:57
TimToady that works at least up to the first language mutating declaratoin :)
masak .oO( the limits of my mind are the limits of my language ) 17:58
17:58 ivanshmakov joined
colomon TimToady: ah, so the goal is to parse p6 in BNF? 17:58
TimToady yes, the reverse Sapir-Whorf hypothesis
colomon was thinking of the reverse, handling BNF grammars in p6
TimToady which is why I did the s/// on you 17:59
colomon I see
TimToady the other is certainly possible, but not what we were talking about
17:59 mberends left
colomon gotcha. That I certainly never had code for. :) 17:59
TimToady reverse Sapir-Whorf was directed at masak++ if it wasn't clear 18:00
colomon indeed went and googled it trying to figure out what it could have to do with him.
colomon is triple-tasking here -- football and watching son open presents and IRC all at once. 18:01
TimToady does not believe that a properly productive language, properly used, will limit what you can think, since you can always coin something new in such a language for a novel thought
timotimo christmas comes early to colomon's family this year? :)
colomon timotimo: visiting my parents two weeks before their grandson's birthday 18:02
timotimo ah :) 18:03
masak TimToady: it's a Wittgenstein quote: "Die Grenzen meiner Sprache bedeuten die Grenzen meiner Welt."
TimToady well, but that's more like standard SW, if I read it aright
18:03 mberends joined
masak yes. 18:03
oh, it's from Tractatus, even.
TimToady prefers to think that his language is limited by the capacity of his mind 18:04
masak depends if you say what you think you mean :P
TimToady but perhaps I have the make-stuff-up-ishness of English to explain that sentiment 18:05
but yeah, it's a dance of two partners, and information flows both ways 18:06
we have "lexotic" because a concept flowed out of the language
but that's the whole deal with memes and cultures: they infest us, and we infest them. 18:07
masak TimToady: to what extent are you aware of Domain Driven Design (and its attitude towards the interplay of language and design/development)? 18:08
geekosaur yep. S-W never made much sense to me, it's an organic system which means it's all tangled together on multiple levels
TimToady I've heard what you've said on the subject...
timotimo we infest heavily in memes and stuff.
TimToady well, s/said/wrote here/
masak TimToady: oh, then I feel I should do better. hold on, I'll grab my e-book. 18:09
TimToady stops feebly trying to backlog again...
starting a cult is hard work...er...culture... 18:10
18:10 molaf_ joined
masak "A project needs a common language that is more robust than the lowest common denominator. With a conscious effort by the team, the domain model can provide the backbone for that common language, while connecting team communication to the software implementation. That language can be ubiquitous in the team's work." 18:12
"The model relationships become the combinatory rules all languages have. The meanings of words and phrases echo the semantics of the model."
TimToady well, they use the term "language", but really, it's about cultural evolution 18:13
18:13 molaf left
TimToady a common failing of linguists is to assume language is everything :) 18:13
18:13 kjs_ joined
TimToady but maybe they're limited by their language there... :P 18:13
masak "As gaps are found in the language, new words will enter the discussion. *These changes to the language will be recognized as changes in the domain model* [...]" 18:14
18:14 rindolf left
masak it only now occurs to me that one reason this resonated with me when I first read it (back in 2011) is that I had already seen the #perl6 community process in action. 18:14
TimToady sure, once we coined "lexotic" it immediately became clear that we had to classify everything as in or out or hybrid 18:15
masak "Domain experts should object to terms or structures that are awkward or inadequate to convey domain understanding; developers should watch for ambiguity or inconsistency that will trip up design."
TimToady cultures of all sorts come in conservative and progressive varieties, and either new stuff or old stuff can get in the way of the other 18:17
there always has to be a balance, and poeple will never agree on where the balance should be :)
masak except in the Python community, where the correct balance is helpfully mandated from above :P 18:18
TimToady I disagree :)
Some find the old ways intolerable, some find the new ways intolerable, and some find the mixture of old ways and new ways to be intolerable. Which I find to be intolerable. 18:23
[Coke] people looking for LHF should probably not be encouraged to poke at niecza at this point, masak.
FROGGS grondilu: ping
TimToady looks around for his feeble backlog again 18:24
18:26 virtualsue joined
[Coke] hoelzro: (new tags) someone (usually me) opens a ticket. 18:27
let me if you prefer a "real" tag over a subject [TAG]
masak 'night, #perl6
hoelzro [Coke]: alright, thanks
FROGGS gnight masak
hoelzro o/ masak
TimToady o/
colomon \o
hoelzro [Coke]: I was hoping for a POD tag, but I wouldn't say it's critical 18:28
18:28 bcode left, tadzik3 is now known as tadzik 18:29 bcode joined, virtualsue left
mr-fooba_ TimToady: there is no mention of debugger in the synopsis. 18:30
tadzik computer, messages
oh, hm
18:31 mr-fooba_ is now known as mr-foobar
TimToady mr-foobar: we don't really consider the debugger to be part of the language these days, so it's an external module 18:31
tadzik colomon, FROGGS: I don't hate the changes, I'm glad they're there :) 18:32
colomon \o/
TimToady and, while we're trying to document the culture as well as the language, that tends to lag behind
tadzik colomon++ FROGGS++
FROGGS tadzik: so it is oaky if I commit changes to master if *I* feel they are sane? (and do not break on older rakudos)
tadzik there's code duplication in there that probably wants to be abstracted in some way, but it's definitely a good move
FROGGS: oh, by all means
FROGGS k
tadzik FROGGS: I think compatibility is way more important than sanity 18:33
FROGGS tadzik: I know :o)
[Coke] hoelzro: keep hoping, I'llopen a ticket.
hoelzro ok =)
FROGGS that's why I would probably panic before doing a commit to P5's CPAN client 18:34
TimToady so maybe whoever owned planeteria.org decided to take August off? 18:35
18:35 kaare_ left
TimToady we need a long-term solution for this... 18:35
[Coke] they are working on it. 18:37
we had a solution: perl.org. perl.org decided to stop hosting this service.
TimToady
.oO(perl.org is a dead end...)
mr-foobar TimToady: for a everything-is-an-expression/vm language, the debugger follows naturally. don't know if C++ spec mentions a debugger ( java has an api ) 18:40
18:40 darutoko left
TimToady we have a debugger than jnthn++ wrote, it's just not in the synopses 18:41
grondilu FROGGS: pong 18:45
FROGGS grondilu: can you please merge this? github.com/grondilu/libdigest-perl6/pull/4
grondilu done 18:46
FROGGS thanks :o) 18:47
18:51 zakharyas joined
[Coke] (use of '_' as an identifier might not be supported in releases after Java SE 8) 18:51
^^ nqp build warning
TimToady so what's the easiest way to maintain a "blead star"? 18:53
and should we have that as a cultural concept? 18:54
I mean the "current star" concept, not the "blead" meme
seems like we rely too much on star catching up at the last moment, when we should be trying to track 18:55
[Coke] "build the latest compiler and all the modules you care about as often as you want".
TimToady hard
[Coke] TimToady: github.com/coke/rakudo-star-daily ?
tadzik or Task::Star :)
not sure how up-to-date it is :(
TimToady is that "productized" so mere mortal developers can use it?
tadzik I created it because I thought it's necessary, and then didn't maintain it much. Like every project I ever started 18:56
[Coke] TimToady: right now it runs once a day on a schedule, uses the latest parts it can, and reports on test failures on build and or on modules.
TimToady but what if someone wants to duplicate that locally, like to see how a change affects star overall? 18:57
[Coke] getting tons of failures here for jvm, parrot, & moar.
I cannot tell who TimToady is talking to. 18:58
TimToady similar to how bench should be easier to set up locally
TimToady is just talking to the world in general, in a solipsistic sort of way
[Coke] I would be happy if we could be more proactive about the failures on rakudo-star-daily and make it easier for people to do something about them. 19:00
I am pretty sure that people that do star releases are not looking at this data as it stands.
dalek ar: 8c8b8a7 | (Tobias Leich)++ | tools/build/module-install.pl:
precompile files just get compext appended now
19:01
[Coke] will go through again and start opening tickets.
FROGGS [Coke]: how can you test star daily when it cannot even build the modules? 19:02
the patch that I just did fixes it
[Coke]: look at all these SORRYs: github.com/coke/rakudo-star-daily/...d.log#L372 19:03
hmm, probably this tests against the not-precomped module: github.com/coke/rakudo-star-daily/...es.log#L29 19:04
19:05 BenGoldberg joined, __lue__ is now known as lue
FROGGS hoelzro: do you know anything about that? Invalid typename 'Pod::Raw' in parameter declaration. 19:05
at /home/froggs/dev/star/work-m/rakudo-star-2014.08/install/languages/perl6/lib/Pod/To/HTML.pm:498
------> multi sub node2text(Pod::Raw⏏ $node) returns Str {
moritz FROGGS: it means that youre rakudo is too old
FROGGS: or the Pod::To::HTML is too new
FROGGS ohh 19:06
I use the 2014.08 release of rakudo...
moritz FROGGS: then revert to Pod::To::HTML 451c39c2108d0f203a3085ca3d6746b1750dccfb
FROGGS moritz: thanks!
hoelzro FROGGS: that doesn't look too familiar 19:11
FROGGS hoelzro: moritz knew the answer already :o) 19:12
hoelzro oh, yeah, that should work 19:13
dalek ar: 414b5d7 | (Tobias Leich)++ | / (2 files):
get rid of "no rule to make target `clean`, Error 2"

This annoyed me for a long time now... Everytime I've seen it I thought: Ohh noes! Configure failed! But when you carried on reading it stated that everything is well and that you can now `make`.
19:21
19:21 Alina-malina left
TimToady (star maint)++ 19:23
(and everyone involved)++ 19:24
FROGGS okay, star-m passes all module tests 19:28
TimToady we'll see about that! :) 19:29
but that basically means we don't need the lolligag check for star anymore
assuming LOLLY isn't set somewhere
FROGGS LOLLY is not set on my box 19:30
TimToady well, something could set it internally, but I doubt anyone did that
FROGGS very unlikely
TimToady well, except the test harness that comes with post-2014-08 sets it, which I guess you're using 19:31
FROGGS LOLLY only shows up in rakudo/docs/ rakudo/src and rakudo/t/spec
TimToady so maybe we really haven't tested star for old lol syntax yet, unless that's using the old compiler
FROGGS I am using the 2014.08 release tarball which uses a snapshot of the spectests from the day of the release 19:32
TimToady ok, good
that means star is vetted for lolligags now, yay
FROGGS I can run the module tests using LOLLY if you want
or is setting LOLLY the opposite direction? 19:33
TimToady well, shouldn't make a difference, since by definition if LOLLY isn't set, they aren't using any lollipops
since it would error if they were
and LOLLY only changes things if they were actually using the (;) syntax
FROGGS (;) looks like a butt if you ask me :/ 19:34
TimToady so it was all kind of a tempest in a teapot, but we had to check it at least once
TimToady didn't ask 19:35
FROGGS conversation terminated; # :o)
TimToady though (|) has problems that way too, and actually occurs in code
ah well, to the pure, all things are pure... 19:36
FROGGS that reminds me of something
m: -Int
camelia rakudo-moar c57f12: OUTPUT«use of uninitialized value of type Int in numeric context in block <unit> at /tmp/T45uO05Cps:1␤␤»
FROGGS \o/
m: say -Int
camelia rakudo-moar c57f12: OUTPUT«use of uninitialized value of type Int in numeric context in block <unit> at /tmp/aEYW1MC59s:1␤␤0␤»
19:37 domidumont left
FROGGS (it didnt warn until this morning) 19:37
19:37 pmurias joined
TimToady because masak botched the test 3 years ago, apparently 19:37
dalek p-js: c9a8aab | (Pawel Murias)++ | src/vm/js/ (2 files):
Implement return (doesn't work yet from a nested block).
nqp-js: 9dbd407 | (Pawel Murias)++ | src/vm/js/ (2 files):
nqp-js: Pass test 17.
19:37 dalek left
FROGGS yeah 19:38
TimToady wishes all his botches were so easily remedied...
19:38 dalek joined, ChanServ sets mode: +v dalek 19:45 denis_boyun_ left
FROGGS m: my %hash = 200 => 'ok'; say %hash{200}:exists 19:48
camelia rakudo-moar c57f12: OUTPUT«True␤»
FROGGS p: my %hash = 200 => 'ok'; say %hash{200}:exists
camelia rakudo-parrot c57f12: OUTPUT«This type cannot unbox to a native string␤ in method exists_key at gen/parrot/CORE.setting:9502␤ in method exists_key at gen/parrot/CORE.setting:9491␤ in block at gen/parrot/CORE.setting:2196␤ in sub postcircumfix:<{ }> at gen/parrot/CORE.se…»
FROGGS -.-
j: my %hash = 200 => 'ok'; say %hash{200}:exists 19:50
camelia rakudo-jvm c57f12: OUTPUT«(timeout)»
19:53 kurahaupo left
TimToady m: try EVAL '-Int'; 19:53
camelia rakudo-moar c57f12: OUTPUT«use of uninitialized value of type Int in numeric context in block <unit> at EVAL_0:1␤␤»
TimToady m: use Test; eval_lives_ok '-Int', '-Int warns (and yields 0) but does not give an error'; 19:54
camelia rakudo-moar c57f12: OUTPUT«use of uninitialized value of type Int in numeric context in block <unit> at EVAL_0:1␤␤ok 1 - -Int warns (and yields 0) but does not give an error␤»
FROGGS TimToady: should it do something else in a try EVAL?
TimToady I get a Bus Error here on that test (or perhaps as a result of a previous test) 19:55
FROGGS eww
TimToady might not be this test's fault
FROGGS then you do not have latest rakudo
yesterday's rakudo did nqp::neg_I(Int) and buserror'd
m: nqp::neg_I(Int) 19:56
camelia rakudo-moar c57f12: OUTPUT«===SORRY!===␤Arg count 1 doesn't equal required operand count 3 for op 'neg_I'␤»
FROGGS m: nqp::neg_I(Int, Int)
camelia ( no output )
FROGGS well, the old one did
star-m: nqp::neg_I(Int, Int) 19:57
camelia star-m 2014.04: OUTPUT«(signal )»
TimToady okay, will gp
literally, since I have that as an alias 20:00
FROGGS I have a, g, t, ml and p to build Perl5::Action, Grammar, etc 20:01
20:04 kurahaupo joined 20:05 bjz left, bjz joined
timotimo gp? git push? 20:06
FROGGS pull
timotimo ah 20:07
m: my \self = NaN but role FreeMan {} 20:08
camelia ( no output )
20:10 zakharyas left
TimToady actually, git pull --rebase 20:11
20:11 bjz left 20:12 bjz joined 20:14 jack_rabbit joined 20:24 BizarreCake joined 20:27 bjz_ joined, bjz left 20:29 dolmen joined 20:55 ajr_ left 20:58 Brock is now known as awwaiid 21:03 kjs_ left
FROGGS @all: star-p still fails the jsonrpc tests, but I am going to release anyway 21:07
timotimo we're getting a star release this month? nice :) 21:09
FROGGS the last one is from apr or mar :(
so we have to
timotimo yeah 21:14
21:18 BizarreCake left, anaeem1 left
dalek ar: 008b70b | (Tobias Leich)++ | docs/announce/2014.0 (2 files):
add announcement for 2014.08
21:19
timotimo so changelog :) 21:20
dalek ar: d96e37a | (Tobias Leich)++ | tools/ (2 files):
update version to 2014.08 (and 6.7.0 for parrot)
japhb Star release? YES! \o/
dalek ar: 6c8fe78 | (Tobias Leich)++ | modules/ (12 files):
update shipped modules
21:21
21:22 zakharyas joined
dalek ar: 11f446f | (Tobias Leich)++ | README:
update version in README
21:23
ast: ee1bd8d | TimToady++ | S05-mass/rx.t:
fix tests for &| and |&

  & is tighter than |, so |& is okay, since it implies a leading & in the
right side of |, but &|is not okay, since it implies trailing & in the left of the |.
21:30
japhb FROGGS: Some typos in announcement: 1. 'funtionality' (though I kinda like that spoonerism), 2. '$*VM, $*VM, $*PERL $*PERL', 3. 'in work for' (should be s/work/progress/) 21:31
FROGGS japhb: thanks, will fix
dalek ar: c02a712 | (Tobias Leich)++ | docs/announce/2014.08.md:
fix typos in announcement, japhb++
21:33
kudo/nom: 82871a8 | TimToady++ | src/Perl6/Grammar.nqp:
simplify <variable> parsing
21:35
FROGGS huh, I've pushed now *all* tags for star, as if they were gone upstream O.o 21:37
japhb That's ... a tad odd. Are you sure they're still pointing to the correct places? 21:38
diakopte1 my git client tells me it does that sometimes
japhb s/places/commits/
FROGGS japhb: it looks good
21:38 renormalist joined 21:41 ggoebel1111110 joined
dalek ar: bd207f3 | (Tobias Leich)++ | tools/star/release-guide.pod:
note 2014.08 release in release-guide.pod
21:41
kudo/nom: 2e9a1d9 | TimToady++ | src/Perl6/Grammar.nqp:
tighten check for $$ to not care about $$foo
21:42
21:44 ggoebel111119 left
dalek rl6-bench: 342d533 | (Geoffrey Broadwell)++ | / (2 files):
Chase Rakudo implementation fix, #= --> #|
21:45
ar: da6f5ec | (Tobias Leich)++ | docs/announce/2014.08.md:
adjust sentences about backend support
21:49
ast: d381d43 | TimToady++ | S32-exceptions/misc.t:
bare say produces X::Obsolete
21:54
TimToady for some reason permutations.t fails under test harness but not when run by itself
FROGGS yeah, we have that with several test files from time to time 22:00
I really do not favour this kind a behaviour
TimToady it appears to die with a SIGSEGV 22:07
22:08 zakharyas left 22:14 mj41 left
TimToady this doesn't seem to be flapping, it's more like hard fail under the harness, never when run directly 22:16
FROGGS hmmm, it did not fail for me... but I was a few commits behind... upgrading now 22:17
22:17 ivanshmakov is now known as ivanshmakov|
FROGGS good that it just takes a few seconds to rebuild everything :o) 22:18
TimToady thing is, it's almost a trivial test file, just two is-deeplys 22:19
FROGGS still passes here...
TimToady huh 22:20
FROGGS when you set the 'merge' to zero in t/harness at line 104, does it still fail?
hoelzro FROGGS++ # star release
FROGGS hoelzro: you can sign up for the september one :o) 22:21
TimToady still fails
FROGGS it is less work than compiler release
hmm...
22:21 ivanshmakov joined
hoelzro FROGGS: I thought it was quarterly now? 22:21
also, september is a bad month for me (getting married in early October); I could do a Nov/Dec one, though! 22:22
FROGGS hoelzro: just because there were issues and no release managers
hoelzro ah ha
22:22 danaj left
FROGGS ohh, then perhaps sign up for later :o) 22:22
+1 for getting married btw *g* 22:23
TimToady star should eventually go continuous release to the extent it can
FROGGS TimToady: I would replace t/harness:39 by a gdb line I think
TimToady we'll have enough lag getting it into linux distribution channels without introducing more of our own
22:25 gfldex left
hoelzro thanks =) 22:26
22:28 Gruber joined 22:29 Grrrr left 22:31 stux|RC-only joined 22:32 ivanshmakov| left, ntln joined 22:35 danaj joined 22:37 aborazmeh joined 22:40 araujo joined
japhb hoelzro: Congrats on upcoming marriage. :-) 22:42
hoelzro japhb: thanks! 22:43
22:44 aborazmeh left
colomon oooo, congratulations, hoelzro! 22:44
22:44 dpk joined
hoelzro colomon: thanks =) 22:45
22:47 dpk left 22:50 spider-mario left 22:56 pmurias left 22:58 xragnar_ joined, xragnar is now known as Guest66841, Guest66841 left, xragnar_ is now known as xragnar, dolmen left 23:04 Gruber is now known as Grrrr
timotimo oh, yes! congrats! 23:11
dalek kudo/nom: 5f9cd51 | TimToady++ | src/Perl6/Grammar.nqp:
disallow anon sigils in quotes
23:13
TimToady fixses t/spec/integration/advent2009-day16.t
yes, my precious!
hmm t/spec/integration/99problems-51-to-60.t also seems to be crashing on is_deeply 23:17
BenGoldberg say so "0e0"; 23:21
m: say so "0e0";
camelia rakudo-moar 2e9a1d: OUTPUT«True␤»
BenGoldberg m: say so "0 but true";
camelia rakudo-moar 2e9a1d: OUTPUT«True␤»
BenGoldberg m: say + "0e0";
camelia rakudo-moar 2e9a1d: OUTPUT«0␤»
BenGoldberg m: say + "0 but true"; 23:22
camelia rakudo-moar 2e9a1d: OUTPUT«Cannot convert string to number: trailing characters after number in '0⏏ but true' (indicated by ⏏)␤ in method gist at src/gen/m-CORE.setting:13276␤ in sub say at src/gen/m-CORE.setting:14211␤ in block <unit> at /tmp/1gJeHMGAhk:1␤␤»
BenGoldberg m: say 0 but True
camelia rakudo-moar 2e9a1d: OUTPUT«0␤»
BenGoldberg m: say so 0 but True 23:23
camelia rakudo-moar 2e9a1d: OUTPUT«True␤»
hoelzro timotimo: thanks! 23:24
if anyone's interested, I made a docker image with the new star release: registry.hub.docker.com/u/hoelzro/rakudo-star/ 23:26
I figured it might be an easy way for new users to try out Rakudo! 23:27
dalek ast: 81e0f82 | TimToady++ | S32-exceptions/misc.t:
correct test of "$", should require \$
23:29
TimToady I think we're down to flapping is_deeplly tests 23:30
23:31 grondilu joined
grondilu p6: subset Foo of Array where *.all %% 2; multi infix:<*>(Numeric $a, Foo $b) { i }; say pi * [ 0, 2 ]; 23:31
camelia rakudo-moar 2e9a1d: OUTPUT«Circularity detected in multi sub types for &infix:<*>␤ in block <unit> at /tmp/tmpfile:1␤␤» 23:32
..rakudo-jvm 2e9a1d: OUTPUT«(timeout)»
..niecza v24-109-g48a8de3: OUTPUT«Potential difficulties:␤ $a is declared but not used at /tmp/tmpfile line 1:␤------> ere *.all %% 2; multi infix:<*>(Numeric ⏏$a, Foo $b) { i }; say pi * [ 0, 2 ];␤ $b is declared but not used at /tmp/tmpfile line 1:␤---…»
..rakudo-parrot 2e9a1d: OUTPUT«Circularity detected in multi sub types for &infix:<*>␤ in any at gen/parrot/BOOTSTRAP.nqp:913␤ in any at gen/parrot/BOOTSTRAP.nqp:969␤ in sub infix:<*> at gen/parrot/CORE.setting:4406␤ in block <unit> at /tmp/tmpfile:1␤␤»
grondilu p6: subset Foo of Array where *.all %% 2; multi infix:<*>(Numeric $a, Foo $b) { pi }; say pi * [ 0, 2 ];
camelia rakudo-moar 2e9a1d: OUTPUT«Circularity detected in multi sub types for &infix:<*>␤ in block <unit> at /tmp/tmpfile:1␤␤»
..niecza v24-109-g48a8de3: OUTPUT«Potential difficulties:␤ $a is declared but not used at /tmp/tmpfile line 1:␤------> ere *.all %% 2; multi infix:<*>(Numeric ⏏$a, Foo $b) { pi }; say pi * [ 0, 2 ];␤ $b is declared but not used at /tmp/tmpfile line 1:␤--…»
..rakudo-jvm 2e9a1d: OUTPUT«Circularity detected in multi sub types for &infix:<*>␤ in any at gen/jvm/BOOTSTRAP.nqp:900␤ in any at gen/jvm/BOOTSTRAP.nqp:955␤ in block <unit> at /tmp/tmpfile:1␤␤»
..rakudo-parrot 2e9a1d: OUTPUT«Circularity detected in multi sub types for &infix:<*>␤ in any at gen/parrot/BOOTSTRAP.nqp:913␤ in any at gen/parrot/BOOTSTRAP.nqp:969␤ in sub infix:<*> at gen/parrot/CORE.setting:4406␤ in block <unit> at /tmp/tmpfile:1␤␤»
grondilu n: subset Foo of Array where *.all %% 2; multi infix:<*>(Numeric $, Foo $) { pi }; say pi * [ 0, 2 ];
camelia niecza v24-109-g48a8de3: OUTPUT«3.1415926535897931␤»
grondilu m: subset Foo of Array where *.all %% 2; multi infix:<*>(Numeric $, Foo $) { pi }; say pi * [ 0, 2 ]; 23:33
camelia rakudo-moar 2e9a1d: OUTPUT«Circularity detected in multi sub types for &infix:<*>␤ in block <unit> at /tmp/S4y2t3F8YU:1␤␤»
grondilu false positive
TimToady uniq.t also uses is_deeply, so these are probably all related
23:38 jerrycheung joined 23:42 xenoterracide left
BenGoldberg std: subset Foo of Array where *.all %% 2; multi infix:<*>(Numeric $, Foo $) { pi }; say pi * [ 0, 2 ]; 23:43
camelia std 53b3ca6: OUTPUT«ok 00:01 133m␤»
grondilu there's definitely nothing wrong with the syntax. 23:44
n: subset Foo of Array where *.all %% 2; multi infix:<*>(Numeric $, Foo $) { pi }; say 1 * [ 0, 2 ]; 23:45
camelia niecza v24-109-g48a8de3: OUTPUT«3.1415926535897931␤»
grondilu niecza++
m: subset Foo of Array; multi infix:<*>(Numeric $, Foo $) { pi }; say 1 * [ 0, 2 ]; 23:46
camelia rakudo-moar 2e9a1d: OUTPUT«Circularity detected in multi sub types for &infix:<*>␤ in block <unit> at /tmp/QkwCfN_xQW:1␤␤»
grondilu m: subset Foo of Array; multi prefix:<->(Foo $) { "dada" }; say -[ 0, 2 ];
camelia rakudo-moar 2e9a1d: OUTPUT«dada␤»
grondilu n: subset Foo of Array; multi prefix:<->(Foo $) { "tada" }; say -[ 0, 2 ]; 23:47
camelia niecza v24-109-g48a8de3: OUTPUT«tada␤»
grondilu n: subset Foo of Array; multi infix:<*>(Foo $, Foo $) { "tada" }; say [ 0, 2 ] * [0];
camelia niecza v24-109-g48a8de3: OUTPUT«tada␤»
grondilu m: subset Foo of Array; multi infix:<*>(Foo $, Foo $) { "tada" }; say [ 0, 2 ] * [0];
camelia rakudo-moar 2e9a1d: OUTPUT«tada␤»
grondilu m: subset Foo of Array; multi infix:<*>(Foo $, Numeric $) { "tada" }; say [ 0, 2 ] * 0; 23:48
camelia rakudo-moar 2e9a1d: OUTPUT«Circularity detected in multi sub types for &infix:<*>␤ in block <unit> at /tmp/KE5Sz3v9c3:1␤␤»
grondilu n: subset Foo of Array; multi infix:<*>(Foo $, Numeric $) { "tada" }; say [ 0, 2 ] * 0;
camelia niecza v24-109-g48a8de3: OUTPUT«tada␤»
grondilu n: subset Foo of Str; multi infix:<*>(Foo $, Numeric $) { "tada" }; say "" * 0; 23:49
camelia niecza v24-109-g48a8de3: OUTPUT«tada␤»
grondilu m: subset Foo of Str; multi infix:<*>(Foo $, Numeric $) { "tada" }; say "" * 0;
camelia rakudo-moar 2e9a1d: OUTPUT«===SORRY!===␤Circularity detected in multi sub types for &infix:<*>␤»
grondilu well, at least in this one rakudo says "SORRY" :-)
TimToady m: multi infix:<*>(Str $, Numeric $) { "tada" }; say "" * 0 23:52
camelia rakudo-moar 2e9a1d: OUTPUT«tada␤»
grondilu the background is, I wanted to define a type made of an increasing list of positive integers. I wanted to use subset so that entering one would be straightforward. I'd just have to type e.g. [0, 4, 10] and not say MyType.new: 0, 4, 10. Then I got this wrong circularity detection. 23:55
TimToady m: subset Foo of Array; multi infix:<*>(Foo $, Cool $) { "tada" }; say [ 0, 2 ] * 0; 23:56
camelia rakudo-moar 2e9a1d: OUTPUT«tada␤»
TimToady it's just a bad message 23:57
it's not really circular, it's just ambiguous
23:57 kst` is now known as kst
grondilu isn't subset narrower and thus prevailing? 23:57
TimToady trouble is that Foo is more specific than the standard, while Numeric is less specific
so it's simultaneously better and worse, which is not allowed 23:58
colomon grondilu: have you looked at fixing Chess so it doesn't hang on Moar?
grondilu oh it does?
colomon grondilu: yes 23:59
grondilu checks this