»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by masak on 12 May 2015.
00:08 jferrero left 00:13 jferrero joined 00:17 caymanboy joined
dalek kudo/glr: eb88103 | lizmat++ | src/core/ (2 files):
Fix X::Cannot::Lazy / .infinite mismatches
00:20
00:26 laouji joined 00:35 mr-foobar joined 00:36 tinyblak joined 00:39 laouji left 00:40 laouji joined 00:42 tinyblak left 00:44 laouji left, laouji joined 00:45 ShimmerFairy left 00:46 ggoebel joined 00:47 tinyblak joined
japhb timotimo: It is *so* nice to be able to look at profile output without getting reify/gimme-induced rage face 00:50
00:53 tinyblak left 00:55 llfourn joined 00:56 aborazmeh joined, aborazmeh left, aborazmeh joined
colomon ooo, profile improvements? 00:58
or rakudo improvements?
00:58 ShimmerFairy joined 00:59 llfourn left 01:01 tinyblak joined 01:02 sjn_phone joined
timotimo rakudo improvements; that's what the glr branch is about :) 01:04
ShimmerFairy Heh, now I remember why I stopped compiling against the JVM :P
01:09 aborazmeh left
timotimo because it takes a whole lot of time? 01:13
01:13 sjn_phone left
timotimo oh wait ... compiling C code against the jvm? :) 01:13
01:13 sjn_phone_ joined
ShimmerFairy yep :) (talkin' bout nqp, haven't got to rakudo yet!) 01:14
"yep" to taking a whole lot of time, to be clear 01:15
timotimo yes
01:23 tinyblak left
skids .tell jnthn modified GLR Array.unshift PR (now PR#493) per comments on previous PR. 01:23
yoleaux skids: I'll pass your message to jnthn.
01:23 BenGoldberg joined
b2gills I just tested the GLR branch against my solution to the "send more money" problem, and it went from 24s to 15s. ( unfortunately that doesn't include finding the first two numbers which I hard-coded as that would have made it take way longer than I wanted to let it run ) 01:24
01:24 sjn_phone_ left
timotimo cool 01:26
i was hoping for a 10x improvement, but still nice :P 01:27
ShimmerFairy I think nqp-j could use an eval server :) 'make test' on nqp-m was 24 wallclock secs, on nqp-j it was 980. 01:28
skids I think it already uses one? 01:29
ShimmerFairy There's one for rakudo, but not nqp
timotimo .tell smls is it a good idea - design-wise - to make the code samples "interactive on mouse-hover"?
yoleaux timotimo: I'll pass your message to smls.
dalek kudo/nom: e0f7259 | peschwa++ | src/vm/jvm/runtime/org/perl6/rakudo/RakOps.java:
Fix type hint for Routine.

Apparently the fact that hoelzro++ moved $!why from Routine to block changed the order of the fields.
01:30
kudo/glr: b89ff06 | FROGGS++ | / (2 files):
care about nqp stubs in global merging, fixes RT #125729

When we merge global symbols when importing from other compilation units, we go ahead when we detect that the to be imported symbol and the already imported symbols are just stubs. We did take care about these stubs coming from Perl 6 land, now we also take care of stubs coming from NQP.
kudo/glr: 0d75e06 | lizmat++ | / (2 files):
Merge branch 'nom' into glr
psch skids: r-j uses an evalserver
skids Ah. 01:31
timotimo oh, psch, good catch on the type hint
how did you figure out the problem? 01:32
lizmat_ m: my @a = 1,2,3; @a.push(4..Inf) # should this work post GLR ? 01:33
camelia rakudo-moar 98df93: OUTPUT«Cannot push an infinite list onto a Array␤ in any call_with_capture at src/gen/m-Metamodel.nqp:3512␤ in any call_with_capture at src/gen/m-Metamodel.nqp:3512␤ in block <unit> at /tmp/BAYX23XVJw:1␤␤Actually thrown at:␤ in block <unit> at /tm…»
psch timotimo: mostly just with looking around in jdb and the decompiled .class files
01:33 lizmat_ is now known as lizmat 01:34 caymanboy left
psch timotimo: i started looking in the general direction of Attribute at first, because that's where the error during build happened 01:35
which i still find confusing :)
01:35 dayangkun joined
psch but then i wrapped the RTE from P6OpaqueBaseInstance.badNative() in a RTE subclass and put a bp there 01:36
'cause stopping on RTE in nqp-j is gruesome :)
and that lead to p6decontrv, from where it was a somewhat lucky pattern match
skids lizmat_: I'm not sure. But if the lazy thing that was pushed can be altered before the push target reifies it, that would be bad. Unshift does not have that semantics problem. 01:37
psch i.e. "those labels look like they match the field_n's that the P6Opaque has..."
01:40 khw joined
skids lizmat: I guess it is a matter of whether we want the eagerness of the args of push and unshift to match for consistency purposes, and what is "least surprise" 01:41
ShimmerFairy .tell smls I just came across your mock-up, and I can't help but wonder why a redesign is necessary. I like perl6.org's design as it stands, so I strongly suggest not messing with it :)
yoleaux ShimmerFairy: I'll pass your message to smls.
01:43 telex left 01:44 telex joined, ilbot3 left
skids Down to only two real failures in glr S32-array/unshift.t neither of which are directly unshift problems. 01:46
01:46 ilbot3 joined
b2gills That 24s to 15s reduction was 12730 iterations. Running the full thing under GLR does 829210 iterations in 20m 25s 01:47
psch m: say (20 * 60 + 25) * (24/15) 01:48
camelia rakudo-moar 98df93: OUTPUT«1960␤»
psch m: say (20 * 60 + 25) * (24/15) / 60
camelia rakudo-moar 98df93: OUTPUT«32.666667␤»
ShimmerFairy .tell smls fwiw I wouldn't mind if more of perl6.org looked like docs.perl6.org (since I find that to be really nicely designed), what I'm against is a change in the theming, color choices, and so on :)
yoleaux ShimmerFairy: I'll pass your message to smls.
01:52 cognominal left, mr-foobar left 01:57 mr-foobar joined
skids m: multi sub a ($i) { 1.say }; multi sub a (**@i) { 2.say }; a(1,) 02:07
camelia rakudo-moar e0f725: OUTPUT«1␤»
lizmat m: my $a = 42; $_ = 666 with $a; say $a
camelia rakudo-moar e0f725: OUTPUT«42␤»
lizmat this feels like it should either work or complain
skids I would argue that with the "single item" rule in lay in GLR that :(1,) should find the **@ candidate. 02:08
*play
because it is less awkward to explain "things get crazy when you delete the last comma" than "things get crazy when you delete an item from a 2-item list" 02:09
But I don't know if that is especially implementable.
ShimmerFairy m: my $a = 42; $a ~~ ($_ = 54); say $a; 02:10
camelia rakudo-moar e0f725: OUTPUT«54␤»
ShimmerFairy lizmat: huh, it _does_ work with the ~~ topicalizer. I... didn't expect that, honestly. 02:11
02:11 aborazmeh joined, aborazmeh left, aborazmeh joined
skids m: my $a = 42; $a = 666 with $a; say $_ 02:11
camelia rakudo-moar e0f725: OUTPUT«(Any)␤»
ShimmerFairy m: my $a = 42; $a ~~ ($_ = 54); say $_;
camelia rakudo-moar e0f725: OUTPUT«(Any)␤»
ShimmerFairy $_ is set only within the statement in each case. 02:12
m: $_ = 3; my $a = 42; $a ~~ ($_ = 54); say $_;
camelia rakudo-moar e0f725: OUTPUT«3␤»
ShimmerFairy But I don't expect writing to $_ in these cases to go back to $a
m: my $a = 42; given $a { $_ = 52; }; say $a; 02:13
camelia rakudo-moar e0f725: OUTPUT«52␤»
dalek kudo/glr: 796b896 | lizmat++ | src/core/Array.pm:
Give Array its own is-lazy, and use it
kudo/glr: b2609e9 | lizmat++ | src/core/Hash.pm:
Fix one more X::Cannot::Lazy / .infinite mismatch
ShimmerFairy I guess that's just how it works. Like I said though, I don't expect $_ to affect another variable without any explicit := on my part
psch ShimmerFairy: ~~ has to topicalize like that for ~~ s/// if nothing else 02:14
ShimmerFairy psch: of course, I'm not arguing that it does, it was just the first other thing that topicalizes that came to mind :)
skids damn that'll give my unshift PR a merge conflict.
lizmat skids: will look
ShimmerFairy (_although_ the chaining version of ~~ wouldn't topicalize, and s///.ACCEPTS($thing) works just fine without using $_ ☺) 02:15
psch but s///.ACCEPTS($thing) doesn't $thing.subst-mutate, but $_.subst-mutate($thing) 02:16
i do think ~~ is somewhat weirdly overloaded, but i neither can formulate my issue clearly nor do i expect it to change 02:17
ShimmerFairy considering we have S/// (I think?) , why not make their ACCEPTSes match their uses? 02:18
psch: AFAICT the issue is that ~~ is the only operator around for testing equivalence to a regex, but ~~ isn't meant for that specifically. 02:19
psch ShimmerFairy: yeah, that's kind of what bugs me as well
ShimmerFairy (also I think there's an issue that the m// stuff works on $_ when it appears on its own, but that's because I'm so used to the $thing ~~ m// version instead of given $thing { m// } )
lizmat skids: basically lines 230-236 and 252-258 are replaced by fail X::Cannot::Lazy.new(action => 'unshift to') if self.lazy; 02:21
skids
.oO(use fatal :!failures :lazyiterations(1000))
psch ShimmerFairy: as in, i find the RtoL-iness of ~~ just plain weird, and s/// and m// are the two big things there
lizmat I feel too unsure about the rest of your PR to merge it: feel it needs jnthn's eye on it
skids Yeah, so jnthn agreed with the initial patch that unshift should be eager, and the current implementation thinks it is being eager but stops when things get lazy. 02:22
psch ShimmerFairy: because i doubt that breaking the p5 (and probably earlier) << str op regexlit >> would've gone over well
and =~ parses as = ~ in p6 and a dedicated regex match op would've been silly too 02:23
skids (and currently it is otherwise very broken)
psch well, as i said, it's somewhat incoherent what bugs me :)
lizmat afk for a bot&
ShimmerFairy psch: I think it'd be nice if we had a =//= operator for regexes (and then it could be symmetric)
lizmat *bit
ShimmerFairy /regex/ =//= $thing would theoretically work too :) 02:24
psch m: multi infix:<=//=>(Str:D $str, Regex:D $rx) { $str.match($rx) }; multi infix:<=//=>(Regex:D $rx, Str $str) { $str.match($rx) }; my $tx = "foo bar"; say /foo/ =//= $tx; 02:25
camelia rakudo-moar e0f725: OUTPUT«「foo」␤»
psch vOv
s/// takes more effort
that'd have to sit in the parser i suppose
ShimmerFairy psch: sure, something mutate-y would require more effort. (And btw, I could've also spelled it /==/ , but I think that's too easily confused with actual regexes ☺) 02:26
psch ShimmerFairy: yeah, between =//= and /==/ i'd prefer the former as well. i'm wondering if that should stretch to grammars too 02:27
the op that is
we don't ~~ magically for grammars afair
ShimmerFairy psch: Although, if you think of =//= as "just another equality op", it doesn't necessarily have to handling the mutating nature of s///
psch: what are you referring to with ~~ and grammars? I'm not sure I understand exactly.
02:28 kaare_ joined
psch ShimmerFairy: we have $grammar.parse($str) instead of $str ~~ $grammar 02:28
ShimmerFairy psch: Ah :) Well, if you think of grammar as a special kind of class, .parse would make more sense. OTOH, since it's a special kind of class, perhaps there's no reason not to give it an ACCEPTS method :P
psch ShimmerFairy: =//= without assignment makes me think up << /rx/ R[=//=]= $str >> 02:29
not sure that's a good thing :)
ShimmerFairy m: grammar G { token TOP { abc }; method ACCEPTS(Str:D $target) { self.parse($target) } }; say "abc" ~~ G
camelia rakudo-moar e0f725: OUTPUT«「abc」␤»
ShimmerFairy psch: ^^^ ta-da! :) 02:30
psch ShimmerFairy: of course :) grammars are the metaclass and not the class after all 02:31
ShimmerFairy psch: to be fair, I generally prefer non-mutating methods where they make sense, so that you can choose it's mutation-y nature by use of $thing.meth or $thing.=meth . I'm sure my thinking extends to other types of functions too :)
psch i.e. we don't need to default to a sensible ACCEPTS
fsvo "sensible"... 02:32
ShimmerFairy In fact, I sometimes wish C++ had .= too, because I think it's a nice and convenient way to choose if a method mutates or not :)
psch i think i'll try and rest a bit
ShimmerFairy psch o/
psch \o
02:33 noganex joined 02:36 noganex_ left 02:46 llfourn joined 02:51 MadcapJake joined 02:56 BenGoldberg left
skids closes PR, deletes branch, redoes changes, opens new PR 03:07
03:08 bin_005 joined
skids .tell jnthn unshift PR is now #494 due to later merge conflicts with .is-lazy work. 03:08
yoleaux skids: I'll pass your message to jnthn.
03:09 bin_005 left 03:33 dha joined 03:35 eam left, eam joined 03:36 simcop2387 left 03:40 simcop2387 joined, laouji left 03:58 dayangkun left 04:11 raiph left 04:13 kurahaupo joined
skids $ perl6 -e 'multi sub a ($a) { "\$".say }; multi sub a (*@) { "*".say }; a(1,)' # on GLR 04:16
$
$ perl6 -e 'multi sub a ($a) { "\$".say }; multi sub a (*@) { "*".say }; a(1,Slip.new())' # on GLr
*
Hrm, OK so it would be implementable if hanging commas were equivalent to ",Slip.new()" 04:17
Which would be a better escape hatch for finding slurpy candidates than <== IMO. 04:18
04:18 kurahaupo left
skids But on the downside, large constant arrays where people tend to accidentally leave hanging commas... but passing those to arity methods would be rare. 04:19
Hrm but... $ perl6 -e 'sub a ($a) { "\$".say }; a(Slip.new(),1)' 04:23
Too many positionals passed; expected 1 argument but got 2
04:30 lizmat left 04:31 davido___ left, sjohnson joined 04:33 davido___ joined, skids left 04:40 raiph joined 04:42 dustinm` left 04:49 dustinm` joined 04:50 laouji joined
dalek ast: 17d9681 | usev6++ | S02-types/range.t:
Make test for RT #125791 pass on JVM
05:03
dha .
05:03 dha left 05:04 breinbaas joined 05:07 khw left 05:20 tinyblak joined 05:42 laouji left 05:45 tinyblak left, tinyblak joined 05:46 dayangkun joined 05:48 zgrep left 05:49 laouji joined 05:54 araujo left 05:58 [Sno] left 05:59 araujo joined
[Tux] FROGGS++ # RT125729 fixed 06:00
06:07 [Sno] joined, diana_olhovik_ joined
[Tux] test 50000 45.123 45.033 06:08
test-t 50000 42.535 42.444
06:08 cognominal joined 06:14 coffee` joined 06:18 aborazmeh left 06:19 ecocode joined 06:30 xinming left 06:47 rurban joined, cognominal left 06:52 RabidGravy joined 07:00 jack_rabbit joined, rindolf joined 07:02 jack_rabbit left 07:03 jack_rabbit joined, zakharyas joined 07:10 lizmat joined
dalek kudo/glr: 4ef8859 | skids++ | src/core/Array.pm:
Remove spurious laziness checks. Please.

It is neither specced nor tested for that an unshift to a lazy construct should be illegal. There are commented out tests in roast, but they are obviously just copies from when someone cut and pasted push-related code to make the unshift test file, and it is quite likely that the actual tests in current code is likewise just leftover from not noticing that this test is not needed for unshift.
  (It is specced that *infinite* things fail when they are the
things being unshifted onto the target, but this is not implementable unless we have some sort of depth limiter pragma.)
07:11
07:11 llfourn left
kudo/glr: 52252c8 | skids++ | src/core/Array.pm:
Fix Array.unshift, and optimize it some.
kudo/glr: e710088 | lizmat++ | src/core/Array.pm:
Merge pull request #494 from skids/glr

GLR Array.unshift corrections and optimization
07:19 ecocode left 07:20 notch joined 07:21 ecocode joined 07:23 cibs left 07:24 cibs joined 07:26 rindolf left 07:27 yeahnoob joined 07:39 rindolf joined 07:49 cibs left 07:50 espadrine_ joined, cibs joined 07:52 laouji left 07:53 darutoko joined 07:54 laouji joined 07:58 laben joined 07:59 espadrine_ left
laben hello p6'ers 08:00
how do i debug a module which fails to build with "Cannot invoke this object (REPR: Null, cs = 0)"? 08:01
ShimmerFairy laben: that's an NQP-level error, so have you tried --ll-exception yet? (It dumps a backtrace for under-Perl6 errors) 08:09
laben right away! 08:10
08:11 tinyblak left
laben ok, now i got something useful, thanks 08:11
it's this if someone is interested gist.github.com/anonymous/78d1e39d60ac0ac72974 08:12
08:15 tinyblak joined
ShimmerFairy Do you know what in your code breaks things? 08:15
laben inside the "apply_handles" method, problably the "handles" keyword
not my code, is the Flower module
github.com/supernovus/flower/ 08:16
fails to build
btw i get the same error when trying to build Template6 from github.com/supernovus/template6/ 08:18
ShimmerFairy Which files break during compilation?
laben Flower.pm6, the last one and central
08:19 mtj_ left
ShimmerFairy Seems to me like it's the 'handles' keyword in this case, at first glance 08:21
08:22 dakkar joined
laben seems like it's crashing when trying to coerce the $expr with $expr.list 08:22
$expr should contain the methods to handle
08:23 mtj_ joined 08:24 brrt joined
ShimmerFairy just curious, are you using the 'nom' or 'glr' branch ? 08:26
laben nom
FROGGS jnthn: now I understand what you meant by case folding... there can be several alternatives to a single codepoint, some of them perhaps more than one character...
arnsholt Yep. Unicode case-insensitive comparison is very non-trivial
FROGGS 00DE; C; 00FE; # LATIN CAPITAL LETTER THORN
00DF; F; 0073 0073; # LATIN SMALL LETTER SHARP S
err 08:27
that one: 08:28
1E9E; F; 0073 0073; # LATIN CAPITAL LETTER SHARP S
1E9E; S; 00DF; # LATIN CAPITAL LETTER SHARP S
jnthn morning o/
yoleaux 01:23Z <skids> jnthn: modified GLR Array.unshift PR (now PR#493) per comments on previous PR.
03:08Z <skids> jnthn: unshift PR is now #494 due to later merge conflicts with .is-lazy work.
jnthn FROGGS: Yeah, it's...interesting. :)
ShimmerFairy FROGGS: not to jump in the middle of a convo, but yes, it is non-trivial :) I'm surprised .fc hadn't been implemented (and seems to be not very spec'd)
laben ShimmerFairy: maybe its wrong to check for Positional since it doesnt have .list in method list
nine 318/1034 spec test files fail. t/spec/S03-operators/repeat.rakudo.moar is the first to hang and eat memory. 08:29
ShimmerFairy laben: yeah, I was just going to say, Positional doesn't actually guarantee a .list method :)
jnthn I think we should have .fc
jnthn needs to work on $other-thing today, but a few answers from backlog
FROGGS but why is 'ß'.uc not the same as 'ß'.fc?
laben what type should go there, maybe List?
ShimmerFairy FROGGS: for ß and ẞ, I think Unicode still messed that up :)
08:30 cibs left
FROGGS ShimmerFairy: it is not unicode, it is the german regulatories... they don't yet specify ẞ as the uppercase ß 08:30
ShimmerFairy m: say "ß".uc; # bad Unicode! Bad!
camelia rakudo-moar e0f725: OUTPUT«ß␤»
jnthn 1) .push(1..Inf) correctly fails to work; that one'd need to be .plan(1..Inf) which puts it into the $!todo (and sets up a todo if needed) 08:31
ShimmerFairy FROGGS: I _thiiiink_ their stability policies would prohibit changing the casing between the two (boo). And in any case I did read once that ẞ didn't get created way back when only because the typographers couldn't agree and said they'd get back to it :)
08:32 cibs joined
ShimmerFairy *agree on its look 08:32
jnthn 2) No, we can't make trailing comma in an argument list significant, because an argument list is really forming a Capture
nine Err...where is the xx= operator defined?
arnsholt It's a metaop 08:33
jnthn nine: It isn't, it's an assign metaop that'll call the xx and then do an =
nine jnthn: my @a = (4, 2); @a xx= 2; say @a[0]; hangs...on the @a[0]! 08:34
brrt \o
nine Ok, my @a = (4, 2); @a = @a xx 2; say @a[0]; does the same 08:35
ShimmerFairy But regardless, I think unicode supremely messed up by saying ß.uc -> SS (not the simple mapping, mind) and thus specifying an implicit & required NFKD for that character e_e
laben how do rakudo devs recompile rakudo itself often? 08:36
jnthn "make"? :)
laben i mean, you use a script? or simply make and manually test? 08:37
brrt make test
DrForr I just use 'rakudobrew nuke moar && rakudobrew build moar' but I'm not a developer.
brrt actually, i just try to make nqp. and if that works i'm usually 90% there 08:38
jnthn laben: make test for sanity tests, or make spectest to run the big (tens of thousands of tests) suite, or make fulltest now and then to run including stresstests (over 100,000)
laben jnthn: so you mean clone git repo, config, make, make test? 08:39
i wanted to try a simple change
brrt laben; that's basically how i do it, yes 08:40
jnthn laben: Yes, you may need to add --gen-moar if you don't want to separately check out and build nqp and mor
*moar
laben: Uh, to Configure.pl I mean
ShimmerFairy laben: also, I'd try nqp::can($expr, "list") for the test I think you're looking to fix (replace the "Positional" type check with that); I'm not sure which type should be checked there (though anyone else is welcome to suggest), and it's something that'll likely be changed in GLR anyway :P 08:41
laben brrt: is it enough to put --backends=moar if i already have moar installed and dont want to install this git checked rakudo? 08:42
jnthn laben: Yes, but you'll also need to do --prefix=... to specify where your moar is, and you'll need an NQP to be installed there too
brrt if you have moar installed you probably want --prefix=$installation-prefix for nqp to find moar 08:43
ShimmerFairy of course, the alternative quick-fix might be to just add a '(multi?) method list' to the Positional role :P
laben ShimmerFairy: make'ing right now with the change you suggested :) 08:45
ShimmerFairy laben: if you wanted to be a little stricter you could do [whatever the Positional's test was] && [the nqp::can one] to avoid accidentally calling .list on the totally wrong things :) 08:46
laben mmh, failed this one t/04-nativecall/16-rt125408.t 08:47
let's try the second suggestion 08:48
RabidGravy yeah, it has been failing for a week
laben ah, so it's not this change fault?
RabidGravy no
ShimmerFairy laben: one good practice (though it eats up more of your time) is to run a spectest before you make changes too, so you know what your changes did :)
RabidGravy but it was broken and then worked without anyone actively fixing it and broke again 08:49
08:52 espadrine_ joined
laben i get "Unhandled exception: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp'", is it because i have another rakudo alreay installed? 08:56
RabidGravy yes
laben i'm using now the modde one
at least in the makefile
how can i tell it to search in the git directory?
ShimmerFairy you can try ./perl6 in the top directory of the repo (though in my experience a Grammar.nqp issue will break on Test.pm with ./perl6 too before installing) 08:58
jnthn: by the way, I don't think I'll currently be able to implement NFG on JVM :( I tried compiling nqp-j and r-j, but they were much slower, and for whatever reason the r-j core step failed for me (both with and without the changes I've made to rakudo locally) 09:00
e.g. ~105s on average for parsing CORE on moar, 365s for parsing CORE on jvm. (additionally, nqp's "make test" was 24 wallclock secs on moar, around 980 on jvm) 09:01
09:03 magistr joined
magistr perl6 supports definitions own types? 09:04
RabidGravy yes 09:05
09:07 llfourn joined, breinbaas left
laben got past that with a little mod to the script ./perl6, but now it hangs on ModuleLoader.moarvm 09:10
--libpath="blib" doesnt seem to work
ok, fixed that, now i get "Unhandled exception: Cannot call method 'load_setting' on a null object", what does it mean? what files is it missing? 09:16
jnthn ShimmerFairy: Urgh, yes...my r-m time is more close to 35s these days, which means r-j is more tolerable...
09:27 domidumont joined 09:29 laouji left
ShimmerFairy jnthn: don't worry, my computer isn't the best in the first place :) (I'm also using IcedTea 1.7, if that makes any difference) 09:29
09:32 domidumont left, domidumont joined 09:36 laben left 09:40 brrt left 09:42 Ven joined
Ven waves from the countryside – again :) 09:43
09:45 FROGGS_ joined 09:49 FROGGS left, domidumont left 09:55 yeahnoob left 09:56 llfourn left 09:58 magistr left 10:00 spider-mario joined 10:03 FROGGS_ is now known as FROGGS 10:09 spacebat joined, tinyblak left, bin_005 joined 10:10 tinyblak joined 10:11 Ven left 10:15 tinyblak left 10:18 domidumont joined 10:23 laouji joined 10:24 Begi joined
Begi my $x = '2'; How can I know if my varaible is a number ? thanks 10:25
DrForr $x.WHAT maybe? 10:26
ShimmerFairy you can either put a constraint on the variable (my Int $x) or check with $x ~~ Int
m: my Int $a = '2' 10:27
camelia rakudo-moar e0f725: OUTPUT«Type check failed in assignment to '$a'; expected 'Int' but got 'Str'␤ in block <unit> at /tmp/9jrwpOaMtj:1␤␤»
ShimmerFairy m: my $a = '2'; say $a ~~ Int
camelia rakudo-moar e0f725: OUTPUT«False␤»
ShimmerFairy (different typenames for different kinds of numbers, of course)
10:31 rurban left 10:34 rurban joined 10:35 ecocode left 10:40 mattp- left
RabidGravy Begi, or do you mean something like: 10:42
m: my $a = "foo"; say so try Num($a); $a = 99; say so try Num($a)
camelia rakudo-moar e0f725: OUTPUT«False␤True␤»
RabidGravy not convinced that's the best way to do it, but hey 10:44
Begi RabidGravy : it works thanks. If there is a better way, i take it 10:45
10:45 tinyblak joined, bin_005 left
jnthn defined +$a 10:45
Begi m: my $a ='2'; if defined +$a { say 'A number !'; } 10:48
camelia rakudo-moar e0f725: OUTPUT«A number !␤»
10:49 tinyblak left, tinyblak joined 10:52 rurban left, rurban joined
RabidGravy is it guaranteed that Class.^attributes will always return the attributes in the order the are defined? 10:55
10:55 cdc joined
cdc m: my $a ='2'; with +$a { say 'A number !'; } 10:56
camelia rakudo-moar e0f725: OUTPUT«A number !␤»
JimmyZ it is not
cdc m: my $a ='two'; with +$a { say 'A number !'; }
camelia ( no output )
jnthn RabidGravy: Yes 10:58
RabidGravy: We maintain the order because we need to apply the defaults in order. 10:59
(We years ago stored them in a hash keyed on name and had that bug... :))
I *think* we even keep methods ordered too now 11:00
Because order of declaration serves as an LTM tie-break
11:01 llfourn joined
RabidGravy coolio, I'm thinking of some abstraction of "read some data from a file into a Buf, then unpack into attributes of a Class" which I've got quite a few times now 11:01
jnthn nice :) 11:02
11:11 laouji left 11:16 laouji joined 11:22 mattp_ joined
nine jnthn: when can $!reified.DEFINITE ever be false in Array? I only find code paths that will initialize it with an IterationBuffer.CREATE when the Array is created. 11:24
11:28 laouji left 11:34 laouji joined 11:37 rurban left 11:40 dayangkun left
jnthn nine: my @a; 11:41
nine: Which is handled by lexical lazy viv magic
(That may change in the future, but it's a bigger change than I want to take on at the same time as the glr)
11:42 laouji left 11:43 eternaleye left 11:44 eternaleye joined
nine m: my @a = (4, 2); @a xx= 2; say @a.perl; 11:45
camelia rakudo-moar e0f725: OUTPUT«[4, 2, 4, 2]<>␤»
nine is this supposed to stay the same after GLR ^^^? Or do we expect [[4, 2], [4, 2]]?
jnthn Given [...] doesn't itemize, and we probably want my @x = [0,0,0] xx 3; to do the right thing, I think we'll have to go for the latter option 11:50
You'd have to @a = @a.Slip xx 2 to get the other thing
nine Ok, so my little workaround that gives me [$[4, 2], $[4, 2]] would be correct. 11:51
jnthn yes 11:54
Though a slight pity we get the spurious $ signs in the...I guess .perl...output. 11:55
Though it's the safe/easy way :)
nine I can't wait for the documentation updates, so I can read up on how all of this is actually supposed to work. Would make fixing things much easier at times :) 11:56
11:56 smls joined
smls o/ 11:56
yoleaux 01:29Z <timotimo> smls: is it a good idea - design-wise - to make the code samples "interactive on mouse-hover"?
01:41Z <ShimmerFairy> smls: I just came across your mock-up, and I can't help but wonder why a redesign is necessary. I like perl6.org's design as it stands, so I strongly suggest not messing with it :)
01:48Z <ShimmerFairy> smls: fwiw I wouldn't mind if more of perl6.org looked like docs.perl6.org (since I find that to be really nicely designed), what I'm against is a change in the theming, color choices, and so on :)
nine jnthn: I guess, you would sometimes cry out in horror if you saw the things I try before coming up with a working solution :) 11:57
smls timotimo: That depends on the kind of interactivity... For the kind i have in mind, it makes sense I think. (Note that I *don't* indend for it to become an editable textbox. That kind of thing needs its own page and subdomain.)
ShimmerFairy: "wonder why a redesign is necessary" -- Because with the release of Perl 6 (beta), perl6.org will have to transition from a "passively coordinating a smallish volunteer project" website to a "presenting a ready-to-use programming language to the world" website. 11:58
ShimmerFairy: While the current content & structure served reasonable well for the former, it is very much inadequate for the latter. And presenting the new content in an optimal way, requires a layout and design that is optimized for it.
ShimmerFairy: Not to mention that the current design looks crude by 2015 standards - we really should try to make a more elegant and polished first impression on people coming to check out what Perl 6 is all about.
ShimmerFairy: Please read chrisdone.com/posts/haskell-lang (by the guy who redisigned the Haskell website) - he makes many insightful points about what a programming language website should be. 11:59
timotimo hm
smls ShimmerFairy: I think we, too, should make every effort to make our language website as useful and pleasant as possible to the kind of people who will visit it, rather than settle for the status quo.
TL;DR: Change is good... :P
timotimo: There will be a link to that page of course; ideally with "open this snippet for editing" support 12:00
ShimmerFairy I just don't like the heavy nature of the mockup you have. It feels too much like a website to me, if that makes any sense. I just don't care much for the feel of a website that's trying super hard to be a website.
timotimo mhm
jnthn: do we have a cool answer for .pick and .roll for things we know we can do super cleverly? like the result of an X metaop? 12:01
[Coke] smls: where's the current mockup? 12:04
smls [Coke]: i.imgur.com/xd3FKqH.png (but it only contains the top of the front page)
smls should probably write a blog about once the mockup is a little forther along 12:05
ShimmerFairy smls: I certainly don't mind trying to improve the layout and everything (like I said, I _really_ like docs.perl6.org), but I really don't like how the mockup throws away the white + pastels thing we've had for a long time now. 12:06
smls I wouldn't call those pastel colors :P 12:07
[Coke] smls: I like it. I think it keeps the friendly vibe, but looks more professional. I think the background color could be a little lighter, but I am not a UI designer. 12:08
smls [Coke]: Yeah I actually made it even lighter, but adding the texture made it a little darker again. Might have to adjust.
jnthn likes it overall, though misses a download button somewhere prominent 12:09
ShimmerFairy [Coke]: interesting how you see it as friendly, to me it feels quite a bit more sterile and commercial.
[Coke] anyway, +1 from me. 12:10
ShimmerFairy The camelia logo looks out of place to me, which I would consider a bad thing for the rest of the mockup :) .
[Coke] ShimmerFairy: yes, well, we need it to be slightly more commercial. not a lot, but a little, which I think this does nicely.
out of place - do you have a concrete suggestion for where to put it in the mockup?
ShimmerFairy I don't know, I'm just a big fan of the white background and light colors. Having the color scheme be noticably darker feels quite a bit more "stuffy" to me, and I don't like that. 12:11
[Coke]: not positionally, thematically.
In my eyes, the logo clashes with the "such modern, so wow" look the mockup has, and I don't recommend changing the logo :) 12:12
[Coke] changing the logo isn't an option.
12:12 rurban joined
[Coke] I find the fact that it looks every so slightly "stuffier" a good thing. 12:13
JimmyZ likes i.imgur.com/xd3FKqH.png except the background color :P
ShimmerFairy Of course changing the logo isn't an option :)
smls The logo does stick out more, but it's supposed to be the highlight of the page (not part of the background) so I think that's okay. 12:14
ShimmerFairy smls: I think specifically the issue is that all the colors around it have texture, while the logo doesn't (and the logo cannot change)
JimmyZ most because purple seems noble 12:16
hmm, lighter seems ok :) 12:19
12:19 orafu joined
ShimmerFairy Something about the dark-ish colors (in particular the dark-ish red-ish background) makes me think to much of an old, cramped study, with everything constructed out of dark wood, chairs with only red cushions (adding to the already warm white balance), and bookshelves for decoration. 12:20
[Coke] That sounds like a weirdly oddly specific complaint. 12:21
ShimmerFairy [Coke]: I was trying to describe what pops up in my head because I'm having quite a time trying to find the right adjectives :) 12:23
smls: your mockup front page definitely is better organized, taking a look at the current front page. I think the reason why I dislike the mockup is because I find the color palette darker and more oppressive than before, and more so than I'd prefer. 12:24
smls Yeah I'm still tweaking the lightness of some colors. 12:25
btw, [Coke]++ created #perl6-site - we should probably take future bikeshedding there.
Though to be clear, here's my position:
1) We definitely need a redesign (see explanation above), one way or the other.
2) As long as I'm the one doing most of the work to make that happen, I reserve the right to heed or disregard any bikeshedding at my discretion. Not everyone can get in their favorite color(s), sorry... ;) 12:26
JimmyZ agrees
[Coke] is the working going on it git, or just locally? 12:27
smls For now locally. 12:28
Should I make a new repo?
A branch in the official repo might be a little weird considering it's mostly SVG work so far, not yet HTML/CSS.
[Coke] dunno. just know getting feedback in patches is sometimes nicer than in chat. 12:29
jnthn smls: +1 on your position, fwiw. Sometimes folks here really do need to be told to Just Cope by those who're Getting Stuff Done. 12:35
ShimmerFairy I will admit that I've been objecting a bit loudly, but only because I seem to be the only one who has issues with the current mockup :) 12:37
12:38 Begi left, telex left 12:40 rurban left, telex joined
llfourn likes the mockup. Even likes the background color. 12:46
nine smls: The Features list in the mockup may be an accessibility barrier due to the low contrast 12:48
ShimmerFairy I recall there being tools that check for contrast of things on webpages, but I couldn't offer any off-hand
12:49 TEttinger left 12:51 rurban joined 12:57 ecocode joined
RabidGravy is the EXPORTHOW stuff documented anywhere? I think I've inferred the broad gist of it, but I feel like I'm missing something :) 12:58
nine Is there a generic way to get a copy of a Mu? I really can't see how @a xx= 2; can avoid ending up as [@a, @a] otherwise, which is must lead to endless recursion in for example .perl 13:01
jnthn: do you have a little hint for me about this^^^? Been stuck for hours on this now. 13:02
TimToady --> YVR --> KIX in a few minutes 13:03
jnthn ...YVR?
[Coke] safe travels.
TimToady Vancouver, BC 13:04
jnthn Aha
Have a good flight. :)
nine: Um...urgh
13:05 brrt joined
nine Binding x to every List slot in sub infix:<xx>(Mu \x, Int() $n) definitely won't fly... I wonder how this even worked pre-GLR 13:06
jnthn Probably by copying the data around multiple times every array assignment...
Thinks like @a = 1, @a; do work 13:07
*Things
nine Yes, but how do I copy a Mu \x?
I really feel like a bloody beginner at such times :)
jnthn Well, note that:
my @a = 1, 2; @a = @a, @a; say @a.elems # 2
Do you get @a xx 2 to do that?
Grr, but then yeah, accessing it in any way seems to hang 13:08
nine indeed
So no template for a solution there :/ 13:09
jnthn I wonder if xx is somehow marking itself lazy
nine It depends. Some of the multi candidates use GATHER. The one that xx= ends up using doesn't. But it still creates a self referencing list 13:10
jnthn So does @a = @a, @a; though
This, of course works fine: 13:11
> my @a = 1, 2; @a = flat @a, @a; say @a
1 2 1 2
nine Note that my @a = 1, 2; @a xx= 2; my $b = @a[0]; actually doesn't hang. The hang is in
.perl or stringification or whatever that tries to iterate deeply
13:11 vike left
jnthn I don't see how @a = @a, @a; can be reasonably expected to end well 13:12
nine That's probably the reason why after hours of staring at the STORE-ITERABLE and infix:<xx> and friends code, I haven't found an obvious mistake there.
13:12 rmgk_ joined, rmgk is now known as Guest8752, Guest8752 left, rmgk_ is now known as rmgk
jnthn I think it only works in nom because of the "flat" that's happening 13:12
[Coke] .perl is known to hang on self-referential structures pre-glr. i wouldn't let that block you.
jnthn m: my @a = 1, 2; @a = $@a, $@a; say @a 13:13
Aha!
camelia rakudo-moar e0f725: OUTPUT«(timeout)»
jnthn So it's not a regression
m: my @a = 1, 2; @a = $@a, $@a; say @a.elems 13:14
camelia rakudo-moar e0f725: OUTPUT«2␤»
jnthn m: my @a = 1, 2; @a = $@a, $@a; say @a[0].elems
camelia rakudo-moar e0f725: OUTPUT«2␤»
jnthn m: my @a = 1, 2; @a = $@a, $@a; say @a[0].WHAT
camelia rakudo-moar e0f725: OUTPUT«(Array)␤»
jnthn m: my @a = 1, 2; @a = $@a, $@a; say @a[0][0].WHAT
camelia rakudo-moar e0f725: OUTPUT«(Array)␤»
jnthn m: my @a = 1, 2; @a = $@a, $@a; say @a[0][0][0].WHAT
camelia rakudo-moar e0f725: OUTPUT«(Array)␤»
jnthn *lol*
13:14 tinyblak left
nine m: use Test; my @a = 1, 2; @a = $@a, $@a; is @a[0], 1; 13:14
[Coke] jnthn, I don't think that's a LoL. I think it's an Array.
[Coke] ducks
nine That's what the spectest does ^^^
camelia rakudo-moar e0f725: OUTPUT«(timeout)»
jnthn :P
timotimo NO LOL 13:15
jnthn OK, that can just...never work
nine So it's just the spectest that's wrong here?
jnthn Yeah, I think so
I don't see any way that can sensibly work
nine Oh I can delete spec test code just fine :)
13:15 rurban left
jnthn I wonder if anyone did use @a xx= 2 13:16
13:16 rurban joined
jnthn Guess it has to be @a = |@a xx 2; after GLR if so 13:16
Or flat 13:17
smls or .clone :P 13:19
13:20 tinyblak joined, skids joined 13:24 virtualsue joined 13:28 davido___ left, davido___ joined 13:29 awwaiid left
dalek pan style="color: #395be5">perl6-examples: c266ada | paultcochrane++ | categories/euler/prob288-shlomif.p6:
Document Euler problem number 288
13:32
ast/glr: 06b5ba0 | (Stefan Seifert)++ | S03-operators/repeat.t:
Fix hang in S03-operators/repeat.t

xx= can never work on lists as it creates a self-referencial data structure that will trip up endless loops in many situations.
ast/glr: 3b2fbc9 | (Stefan Seifert)++ | S03-operators/repeat.t:
Fix a couple of infix:<xx> spec test failures after GLR

Tests assume flattening semantics that are no longer there. Need to explicitly ask for flattening now.
nine Well, I guess my work was not completely useless today :) 13:33
Though I would have hoped for much more progress...
13:33 tinyblak left
skids So last night it occured to me it might be useful to have a pragma that sets a limit past which to throw in .push-all for any iterator defined in its scope. 13:34
13:36 awwaiid joined 13:40 khw joined 13:44 orafu left 13:46 orafu joined
llfourn RabidGravy: EXPORTHOW isn't documented anywhere AFAIK. I was going to put a basic EXPORTHOW example in modules.pod. Along with package EXPORT::DEFAULT. 13:54
jnthn I thought I explained it in S12
llfourn jnthn: stand corrected thanks! 13:55
jnthn design.perl6.org/S12.html#Custom_Meta-objects
gah, why the heck to Pod renders think that clicking headings should take me to the top of the page, not give me a link anchored at the heading :/
*do
I really hope we didn't replicate this "feature" in Perl 6's Pod to HTML :) 13:56
RabidGravy ahah! cheers!
[Coke] jnthn: I suspect a design choice made ages ago in p5 land. I'm not a fan either.
oh, i thought you meant you saw this in p6 also
jnthn I think design.perl6.org is written mostly in Perl 5 Pod 13:57
timotimo yup, except for the part on pod6
skids It would not be so bad if it sent you to the top with a link achored on the index item which you clicked. But yeah that's less than useful. I think it may come from GNU doc browsing traditions.
jnthn I think we'll break that tradition :) 13:58
[Coke] +1 13:59
ShimmerFairy timotimo: and S15, and whatever else I've created (because I staunchly refuse to learn P5 until absolutely necessary :P) 14:00
timotimo :)
dalek pan style="color: #395be5">perl6-examples: f90df37 | paultcochrane++ | categories/euler/prob (68 files):
Remove expected results from Euler problem docs

The people at the Euler Project discourage the publication of the results as it detracts from the competition.
14:02
pan style="color: #395be5">perl6-examples: d04a606 | paultcochrane++ | categories/euler/prob0 (2 files):
Strip trailing whitespace and add vim coda
ShimmerFairy jnthn: I also hope Perl 6's doesn't have the same "Twigils" bug in S02 (basically, S02 has two headers named "Twigils", so the P5's output gets horribly confused and has both TOC links lead to the first header, _and_ concats the two sections in one and puts them under both Twigils headers)
nine jnthn: I guess @a = 1, 2; @a ,= 3, 4; is really the same case as @a = @a, @a or @a xx= 2? 14:04
jnthn: in other words, not supposed to work out well?
llfourn jnthn: is exporting a declarator in EXPORTHOW meant to remove the current slang? 14:05
it gets replaced with: Perl6::Grammar+{PackageDeclarator}
jnthn llfourn: Well, it certainly has to derive the grammar 14:09
llfourn: I'd have thought it derives from the current language
llfourn jnthn: but shouldn't it be: Perl6::Grammar+{PackageDeclarator}+{MySlang}
PerlJam good morning #perl6
jnthn llfourn: Your slang would have had to be in scope first surely 14:10
nine: Well, not sure how it can work out well at least...
nine: Though that we have two such examples where things to go too well is...interesting.
nine jnthn: S03 says it should essentially do the same as push(@a, 3, 4)
jnthn nine: I'd not pay too much attention to anything the design docs say about lists... :) 14:11
llfourn jnthn: well I'm applying a grammar in sub EXPORT and also doing EXPORTHOW for the declarator. not sure if doing them in separate imports will help. Will check.
nine jnthn: I guess, what I'm saying is, that we could probably special case this during compilation to DWIM 14:12
llfourn if I comment out the EXPORTHOW i get Perl6::Grammar+{MySlang} in the importer
jnthn llfourn: I fear the way the slang is being applied tweaks %*LANG but EXPORTHOW works against the current cursor 14:13
llfourn jnthn: I thought %*LANG was the current cursor
jnthn No, it only determines the type of the cursor at the point of the next statement 14:14
14:14 brrt left
llfourn is there any better way to apply a slang so that it doesn't get wiped by EXPORTHOW? 14:14
jnthn llfourn: Don't know; another option maybe is that we tweak EXPORTHOW to also manipulate %*LANG instead 14:16
llfourn: You might try patching the EXPORTHOW handling in Rakudo to see if that helps
llfourn jnthn: kk will give it a shot. thanks.
dalek ast/glr: ad5ef8a | (Stefan Seifert)++ | S03-operators/assign.t:
Fix S03-operators/assign.t hang by adopting GLR semantics
14:17
llfourn hmm doing it in separate imports actually works. like use MySlang; use MyDeclarator; 14:19
nine t/spec/S05-transliteration/with-closure.t is now the first hang
jnthn llfourn: That probably confirms the thing I suggested patching will help 14:20
llfourn jnthn: sweet
14:21 tinyblak joined
dalek pan style="color: #395be5">perl6-examples: 9031b75 | paultcochrane++ | util/update-and-sync:
Get examples on hack to build rakudo/panda itself

At present the examples require the most up to date Rakudo, so it's better to let the examples environment on hack build its own version so that the website can be built correctly.
14:23
nine m: say ([<X Y>] => [1, 2]).perl; 14:24
camelia rakudo-moar e0f725: OUTPUT«["X", "Y"] => [1, 2]␤»
jnthn I think that one should be unchanged under GLR 14:25
14:27 jack_rabbit left
ShimmerFairy so quotewords produce Arrays then, right? 14:27
jnthn List 14:28
nine jnthn: it is. But $s.trans([<X Y>] => [{++$x},{++$y}]) hangs
jnthn Must be some other reason
ShimmerFairy I had a feeling I'd mess that up :) (I _really_ need to brush up on the GLR soon)
jnthn ShimmerFairy: Given my weekly progress report would basically be "I worked on the GLR. See you next week!", I might use the words I normally write to explain it a bit ;) 14:29
nine: If you can attach a debugger to Moar and break execution, MVM_dump_backtrace(tc); can hint where it hangs 14:30
ShimmerFairy heh :)
14:30 camelia left 14:31 camelia joined 14:33 ChanServ sets mode: +v camelia
nine Looks like an endless recursion between Str and join 14:33
RabidGravy ah EXPORTHOW::COMPOSE is NYI? 14:34
14:35 cdc left
jnthn RabidGravy: yes 14:35
virtualsue itz++ # gave a perl 6 talk at our tech meet last night 14:36
RabidGravy is SUPERSEDE?
itz++ # just for ity-ness
itzy-ness even
jnthn RabidGravy: I think I did SUPERSEDE, yes 14:37
RabidGravy lets try
yep, SUPERSEDE works 14:47
14:51 ecocode left 14:59 perlbaa joined
hoelzro o/ #perl6 14:59
15:05 perlbaa left
nine \o hoelzro 15:05
RabidGravy is making a class trait that applies a role to the classes HOW a valid alternative to EXPORTHOW::COMPOSE or does it happen to late? 15:09
too late rather
jnthn RabidGravy: Probably early enough 15:10
RabidGravy: I mean, traits are applied in order, so you can get into ordering issues
15:11 orafu left 15:12 orafu joined
hoelzro o/ nine 15:13
RabidGravy tries
15:17 sunnavy left 15:18 sunnavy joined 15:25 perlbaa joined 15:38 perlbaa is now known as eiincbz
RabidGravy every single time I make a trait I forget the 'multi' and spend ten minutes wondering where I went wrong 15:47
I think I need a gravy-proof perl6 that tells me that I did that 15:48
lizmat RabidGravy: what is the error message that you get? 15:49
lizmat just back from quite some sightseeing 15:50
RabidGravy "Parameter '$doee' requires a type object of type Sub, but an object instance was passed"
because it calls it for everything
15:51 lizmat left
RabidGravy I think I just need to work on my memory a bit ;-) 15:51
making the same mistake over and over again is not ideal 15:52
15:52 lizmat joined
lizmat grrr flaky connectivity 15:52
RabidGravy :)
lizmat how about adding: Did you forget a 'multi'? 15:54
to that error message ?
hoelzro RabidGravy: I've done that too! Every time something like that happens to me, I make a note on what to add to a perl6 linter someday =)
15:55 diana_olhovik_ left
RabidGravy :) 15:55
lizmat, that could work
dalek kudo/nom: ad062f4 | lizmat++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
Add hint to error message, RabidGravy++
15:57
15:58 tinyblak left
RabidGravy lizmat++ # fabulous! 15:58
15:58 tinyblak joined
TimToady sitting in YVR waiting for mall chinese place to finish waking up so we can have breakfast 16:00
16:01 zakharyas left 16:03 eiincbz left
lizmat TimToady: tasty breakfast and safe travels! 16:08
$ 6 'my @a = (4,2); say @a[0].WHAT; @a xx= 2; say @a[0].WHAT' 16:11
(Int)
(Array)
The reason t/spec/S03-operators/repeat.t hangs
xx apparently doesn't flatten its RHS 16:12
oops, LHS 16:13
TimToady they were just talking about that earlier 16:18
lizmat goes backlogging more scrutinously
16:19 tinyblak left 16:22 raiph left 16:24 domidumont1 joined 16:27 domidumont left 16:28 domidumont joined
nine lizmat: I "fixed" a couple of those in roast/glr this afternoon 16:29
16:31 domidumont1 left
nine lizmat: I'd appreciate some review :) I'm very unsure wrt expected semantics 16:31
16:33 lizmat left 16:40 lizmat joined
ugexe glr: [{}].perl = '[]'; [{},].perl = '[${}]' # in case someone needs to hack their way through such a module test for the time being 16:41
lizmat nine: but the xx induced hang cannot be fixed by changing the tests? 16:42
nine lizmat: consensus was that xx= is a dubious concept that cannot give a sensible result 16:50
the only possibility I see would be to clone the args before adding to the result list. That doesnt cimpose well with lazyness however 16:51
TimToady well, we might end up with some metaops that control flattening and slippage 16:54
nine lizmat: if you've got some ideas I'd love to hear them :) 16:55
16:57 beastd joined
b2gills What is the GLR way to iterate over the elements of a Set? ( I currently have $set.list.map ... ) 16:58
hoelzro so I was looking at test failures in S26-documentation/ on the GLR branch, and this line is failing: my $wool-attr = Sheep.^attributes.grep({ .name eq '$!wool' })[0]; 17:00
and I get the "cannot index a Seq" error; should I change the test to do .list[0], or should I hold off until Seq *is* indexable? 17:01
lizmat well, the word's not out on that yet
afaik
nine .list[0] for now 17:02
Though I'd very much like to have Seq indexable. Can't see a downside
17:03 virtualsue left
nine And Seq is supposed to be nearly invisible to the user 17:03
lizmat so it would just need to generate the index(es) specified, right?
nine yes
lizmat I mean, you're throwing away the other values anyway then
nine ir up to the index
exactly
lizmat well, up to the highest index, as it could be a slice :-)
skids It will end up being an interesting implementation what with $thing.map[255,3,1,2,254] 17:04
lizmat yeah, but that is exactly what is needed
take e.g. an example I gave to a newbie lately:
nine A first implementation could just delegate to list
lizmat .words[1] for parsing a ps line
if you would want more columns of the ps line, in another order 17:05
that could well be .words[10,1] then
nine Just keep the user from havung to do it manually and optimize later
skids Oh, I'm all for having interesting implementations of complicated things made available for general purpose use :-)
lizmat yup, my idea as well
in case of xx and xx=, maybe we should have a separate infix:<xx=> handler ? 17:07
skids The question may be whether they "do Positional" or do something more lightweight than "Positional"
lizmat Sliceable 17:08
hoelzro lizmat: so maybe I should've written "until it's decided whether Seq will be indexable" ;)
lizmat yeah :-) 17:09
Sliceable = Throwaway Indexable
anyways, it's late again already... I'll sleep on it 17:10
jnthn On the xx= question, I wonder if we should mark operators like xx as slippy (to go with iffy, diffy, and so on)
And then we call a different version of the METAOP_ASSIGN
Just as we do with reduce for different assocs, etc.
BTW, Seq isn't supposed to be nearly invisible at all.
Whether something keeps values around or noms them has to be user facing; hiding it has been one of our past mistakes. 17:11
skids $thing.map[|crazy_lazy_indices()] might make a "Sliceable" need to enforce eager inside []. 17:12
jnthn If you're not going to enforce monotonic, then it's pointless to have Sliceable 17:13
You might as well just .list and be done with it
uh, have AT-POS delegate to .list.AT-POS, I mean.
But then we're getting dangerously close to throwing the towel in and having Seq being "does Positional" 17:15
Which we can't do otherwise we break the memoize-on-::=-bind thing
skids Hrm, Positional itself seems to just be a marker role (with the bonus of .of) 17:16
jnthn I guess so long as we don't make a seq as "does Positional" then we're OK
skids: Yes, but it is - critically - the constraint on an @sigil thing
skids Right so the question is is there a use case for a marker role that says "you can .[] me" but isn't Positional. 17:19
nine jnthn: delegating to .list.AR-POS is what I have in mind
jnthn ARRRR-POS! It's index like a pirate day, mateys! 17:20
skids: I don't see one, off hand... :)
b2gills Too bad we're not currently supporting Parrot :P
17:26 [Sno] left
jnthn dinner & 17:31
17:41 bin_005 joined 17:45 espadrine_ left 17:49 llfourn left 17:51 llfourn joined
skids I guess it has to be decided whether the semantics of a_lazy.map[|b_lazy()] is "we store all the values from b_lazy, then iterate a_lazy while throwing away unused values" or... "it's just .list[|b_lazy] and we'll store 5 billion values from a_lazy if that is what it takes until we get to the end of b_lazy. 17:52
I'd argue the first since both are useful and the second already available via .list[]. 17:55
17:58 rurban left 18:00 llfourn left
jnthn skids: Trouble is, you can't do that with a delegating AT-POS 18:01
skids Right it would haveto be its own thing.
Is that so bad?
nine Bur isn't that just an optimization? I see no difference in semantics, just in performance 18:02
jnthn It's a memory optimization, yeah
18:03 pmichaud joined
jnthn Well 18:03
skids Well, with side effects semantics would be different.
jnthn It's not quite that simple
pmichaud r: (12,24,13,97,11,10,100).pick(*)
yoleaux 3 Jul 2015 17:52Z <TimToady> pmichaud: I'm going to assume that, if you're prototyping the new efficient underpinnings as a module, I can safely work on removing most flatteners from the API, so we have more time to work out the programmer-visible gotchas (or in other words, Break All The Things sooner rather than later)
camelia ( no output )
pmichaud r: (12,24,13,97,11,10,100).pick(7).say
camelia rakudo-jvm ad062f: OUTPUT«97 12 13 100 11 10 24␤»
..rakudo-moar ad062f: OUTPUT«10 100 13 97 12 11 24␤»
jnthn skids: Which "different" are you thinking about, ooc? :) 18:04
skids: We'd still have to evaluate everything up to the maximum index, and that's what'd happen anyway 18:05
skids Right, but ordering of destructors and any side effects upstream would be different. 18:06
jnthn Concrete example?
We don't promise anything on timely destruction so that's a non-issue :)
nine Neither timely nor in order ;) 18:08
jnthn Indeed 18:09
Currently you get allocation order
skids I could see if the sources of a_lazy and b_lazy were interdependent, one form would be possible, the other a dealocker, depending on scenario.
*deadlocker
18:09 domidumont left
jnthn skids: That would be...and odd situation. I grant it's almsot certainly constructable. 18:10
*an
nine If we fear a possible semantic change in the future, why not restrict use to the simple cases for now an error outvon encountering lazy indices? That would help the majority of users and spectests while keeping our option open 18:13
jnthn nine: Good point 18:14
skids Right "put a pin in it" by not allowing lazy things inside .map.[] but .list.[] is fine.
jnthn I could go with that. I think it's clear enough by now that we're not going to get away with making people write .list there 18:15
skids Maybe have a combo Lazy/NYI error message.
nine no, it's a real pain and not a solution anyone not involved in the glr process is likely to comw up with 18:16
it's almost as obscure as having to write (split /,/, @a)[1] in Perl 5 ;) 18:20
jnthn Sure, it just means we add one more thing to the "list of cases a Seq memoizes"
b2gills m: say (^3).permutations.perl # doesn't work on glr at the moment, and I had a great use for it too ( it is way too slow for 0..9 which is what I really want it for )
camelia rakudo-moar ad062f: OUTPUT«((0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), (2, 1, 0))␤»
b2gills ( way to slow on nom i mean ) 18:21
TimToady boarding for KIX & 18:22
[Coke] yikes, heck of a lyaover.
~~
18:43 mr-foobar left 18:45 bin_005 left 18:48 breinbaas joined 18:52 bin_005 joined 18:53 mr-foobar joined 18:58 telex left 19:00 telex joined
FROGGS m: sub _fetch_sub { %::{'$pack'}; } 19:09
camelia rakudo-moar ad062f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/N0k_yH08IJ␤Variable '%' is not declared␤at /tmp/N0k_yH08IJ:1␤------> 3sub _fetch_sub { 7⏏5%::{'$pack'}; }␤»
FROGGS DrForr: I cannot reproduce RT #125772 19:10
19:13 rurban joined 19:20 virtualsue joined 19:24 yqt joined, MilkmanDan left, nowan left 19:28 nowan joined
flussence m: sub a { True ?? return !! Nil } 19:34
camelia rakudo-moar ad062f: OUTPUT«===SORRY!===␤Cannot find method 'ann'␤»
FROGGS ohh nice one 19:35
flussence m: sub a { True ?? return () !! Nil }
camelia ( no output )
FROGGS probably easily to track down
flussence those ternary operators have always been a bit flaky...
19:55 diana_olhovik_ joined 19:56 llfourn joined 19:59 synbot6 joined, diana_olhovik_ left, diana_olhovik_ joined 20:01 llfourn left
PerlJam [Coke]: Happy Birthday! 20:03
bartolin_ FROGGS: the output for DrForr's code changed with commit 68f20f4c11 20:10
20:10 darutoko left
FROGGS ohh 20:10
bartolin_ FROGGS: there was some discussion here: irclog.perlgeek.de/perl6/2015-08-09#i_11030267
20:21 espadrine_ joined
FROGGS bartolin_: I added that to the ticket 20:25
20:27 rurban left
bartolin_ FROGGS++ 20:27
20:29 rurban joined 20:34 espadrine_ is now known as espadrine
dalek kudo/nom: cee1a80 | FROGGS++ | src/Perl6/Actions.nqp:
fix typo in comment
20:34
kudo/nom: ab73b0a | FROGGS++ | src/Perl6/Grammar.nqp:
mark blocks like { .foo } as "$_ is used"

This fixes RT #125767
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125767
dalek osystem: 6bc5ddf | RabidGravy++ | META.list:
added Staticish
20:35
RabidGravy not quite right, but kinda useful 20:36
20:40 MilkmanDan joined
dalek ast: bbe6a8c | FROGGS++ | S04-declarations/implicit-parameter.t:
add tests for RT #125767, { .sqrt => .sqrt }
20:42
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125767
20:46 llfourn joined
bartolin_ m: say (* < 7 and * > 5)(6) 20:49
camelia rakudo-moar ad062f: OUTPUT«True␤»
bartolin_ is that supposed to be the same as 'say (6 < 7 and 6 > 5)'? 20:50
20:50 llfourn left
bartolin_ m: say (6 < 7 and 6 > 5) 20:50
camelia rakudo-moar ad062f: OUTPUT«True␤»
bartolin_ m: say (* < 7 and * > 5)(7)
camelia rakudo-moar ad062f: OUTPUT«True␤»
FROGGS m: say (* < 7 and * > 5)(7) 20:53
camelia rakudo-moar ab73b0: OUTPUT«True␤»
FROGGS m: say (* < 7 and 7 > 5)(7)
camelia rakudo-moar ab73b0: OUTPUT«Cannot find method 'postcircumfix:<( )>'␤ in block <unit> at /tmp/TTAXdxnzeL:1␤␤»
FROGGS ?
ahh
the 'and' is not part of the code that is invoked via (7) 20:54
say (* < 7 and * > 5)(7) turns into m: say (WhateverCode and * > 5)(7), so the 7 is passed to the code after the 'and' 20:55
bartolin_ ahh, that explains it. 20:56
it's from RT #116208
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=116208
bartolin_ ... which doesn't look quite right (closable) to me 20:57
FROGGS aye
20:59 muraiki joined
bartolin_ has to sleep now 21:00
g'night #perl
FROGGS gnight bartolin_
21:01 skids left 21:03 bin_005 left 21:11 bin_005 joined, rindolf left 21:26 espadrine left
dalek rl6-most-wanted: 77875b9 | (Erik Colson)++ | most-wanted/modules.md:
Update modules.md

wxwidgets GUI added
21:33
rl6-most-wanted: 0727681 | RabidGravy++ | most-wanted/modules.md:
Merge pull request #6 from ecocode/patch-1

Update modules.md
21:36 rurban left 21:42 lizmat left 21:43 diana_olhovik_ left 21:54 jferrero left 22:06 muraiki left 22:15 dha joined, virtualsue left 22:25 yqt left 22:32 smls left 22:39 geekosaur left 22:41 geekosaur joined 22:45 TEttinger joined 22:47 llfourn joined 22:49 notostraca joined, dakkar left 22:50 TEttinger left 22:51 llfourn left 22:54 notostraca is now known as TEttinger 23:00 spider-mario left
RabidGravy nighty night all 23:00
timotimo nn RabidGravy 23:01
23:03 dakkar joined 23:05 RabidGravy left 23:42 dakkar left 23:44 notostraca joined 23:46 notostraca left