»ö« 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:01
tinyblak joined
|
|||
leont | Bummer, "Proto regex body must be {*} ", was doing something cute there | 00:03 | |
00:16
spider-mario left
|
|||
Sgeo | m: { .say }.parameters | 00:23 | |
camelia | rakudo-moar 98df93: OUTPUT«Method 'parameters' not found for invocant of class 'Block' in block <unit> at /tmp/7CU4OVcJop:1» | ||
skids | m: { .say }.signature.parameters | ||
camelia | rakudo-moar 98df93: OUTPUT«Method 'parameters' not found for invocant of class 'Signature' in block <unit> at /tmp/YZYMJYliUC:1» | ||
Sgeo | m: say { .say }.signature | ||
camelia | rakudo-moar 98df93: OUTPUT«(;; $_? is parcel)» | ||
Sgeo | m: say { &say }.signature | 00:24 | |
camelia | rakudo-moar 98df93: OUTPUT«(;; $_? is parcel)» | ||
Sgeo | ? | ||
skids | m: &say.signature.parameters | ||
Sgeo | The second shouldn't take an argument but the first should, I thought | ||
camelia | rakudo-moar 98df93: OUTPUT«Method 'parameters' not found for invocant of class 'Signature' in block <unit> at /tmp/pNRJm6ppiG:1» | ||
Sgeo | But those look the same | ||
skids | m: &say.signature.say | ||
camelia | rakudo-moar 98df93: OUTPUT«(|)» | ||
Sgeo | m: say { 5 }.signature | 00:25 | |
camelia | rakudo-moar 98df93: OUTPUT«(;; $_? is parcel)» | ||
skids | you got it. | ||
Sgeo | m: say { $^a + 1 }.signature | ||
camelia | rakudo-moar 98df93: OUTPUT«($a)» | ||
Sgeo | m: say { $_ + 1 }.signature | ||
camelia | rakudo-moar 98df93: OUTPUT«(;; $_? is parcel)» | ||
Sgeo | ??? I thought that that is always a closure with an explic $_ | ||
00:27
laouji joined
|
|||
skids | It is a closure so... ? | 00:27 | |
You mean why isn't $_ mandatory? | |||
m: { $_ + 1 }().say; | 00:28 | ||
camelia | rakudo-moar 98df93: OUTPUT«Use of uninitialized value of type Any in numeric context in block at /tmp/m83eJ2UWXV:11» | ||
skids | Maybe just because $_ is dwimmy. | 00:29 | |
Sgeo | m: $_ = 5; { .say }(6); | 00:30 | |
camelia | rakudo-moar 98df93: OUTPUT«6» | ||
Sgeo | Dealt with an API that would, if the item I was asking for did not meet some criteria, would give me a random item (i.e. not the one that was asked for) which did... but it wasn't what was looked for, an error would be much saner | 00:31 | |
So, that just put me in mind of being a bit DWIMy and guessing wrong what I meant | 00:32 | ||
00:39
laouji left,
laouji joined
00:43
llfourn joined
|
|||
dalek | ast: aeb52e4 | hoelzro++ | S26-documentation/why- (3 files): Test that you can declaratively document Block objects |
00:44 | |
rakudo/nom: 83e91a5 | hoelzro++ | src/ (4 files): | |||
rakudo/nom: Lift Routine's $!why behavior up to Block | |||
rakudo/nom: | |||
rakudo/nom: There's no reason that Blocks shouldn't be able to be doc'd. The | |||
rakudo/nom: inspiration for this was creating a little Bailador application: | |||
00:44
dalek left
00:45
dalek joined,
ChanServ sets mode: +v dalek
00:48
llfourn left
|
|||
hoelzro | ...did I kill dalek? | 00:50 | |
oh my | |||
00:51
hobbs left
|
|||
geekosaur | dalek killed itself in overzealousness :) | 00:51 | |
00:51
hobbs joined
00:56
kst` joined
00:57
kst left
|
|||
ShimmerFairy | hey yoleaux, tell me what I know :) | 01:23 | |
yoleaux | 12 Aug 2015 15:29Z <TimToady> ShimmerFairy: re irclog.perlgeek.de/perl6/2015-08-12#i_11042225 the problem with nqp::defined is that it treats Failure.new as defined, and 'with' needs to treat those as undefined | ||
ShimmerFairy | .tell TimToady yeah, that's completely understandable. I could see a possible nqp::p6with[out] and such for the version that Perl 6 expects, but I wouldn't worry about it unless/until people _really_ want to use nqp::with[out] in non-P6 contexts. | 01:25 | |
yoleaux | ShimmerFairy: I'll pass your message to TimToady. | ||
01:26
beastd left
01:37
leont left
|
|||
dalek | kudo-star-daily: 60fc0f2 | coke++ | log/MoarVM- (5 files): today (automated commit) |
01:37 | |
01:38
dayangkun joined
01:44
aristotle left
01:59
llfourn joined
02:01
telex left
02:02
telex joined
02:03
llfourn left
02:05
tinyblak left
02:11
llfourn joined
|
|||
japhb | What's the idiom to pass a slurpy list of pairs without them being interpreted as named arguments? | 02:19 | |
ShimmerFairy | m: sub foo(*@a, *%b) { say @a.perl }; foo(:some(1), :thing(2)); foo((:some(1), :thing(2))); my %h = :1some, :2thing; foo(@%h) | 02:22 | |
camelia | rakudo-moar 98df93: OUTPUT«[]<>[:some(1), :thing(2)]<>[:some(1), :thing(2)]<>» | ||
ShimmerFairy | japhb: basically, either wrap each named in parens, or use a list of pairs (I used a list-ified Hash there), or make sure your keys aren't literal identifiers :) | 02:23 | |
TimToady | m: my @a; push @a <== :a, :!b; say @a | ||
yoleaux | 01:25Z <ShimmerFairy> TimToady: yeah, that's completely understandable. I could see a possible nqp::p6with[out] and such for the version that Perl 6 expects, but I wouldn't worry about it unless/until people _really_ want to use nqp::with[out] in non-P6 contexts. | ||
camelia | rakudo-moar 98df93: OUTPUT«a => True b => False» | ||
ShimmerFairy | m: sub foo(*@a, *%b) { say @a.perl }; foo(some => 1, "thing" => 2) | ||
camelia | rakudo-moar 98df93: OUTPUT«[:thing(2)]<>» | ||
japhb | Oh hmm, just quoting the keys may be workable | 02:24 | |
Assigning to a hash first doesn't work because I need to care about order | |||
Will the extra level of parentheses trick survive GLR? | 02:25 | ||
TimToady | no | ||
well, if you use *, I guess it would | |||
but <== is clearer, methinks | 02:26 | ||
ShimmerFairy | TimToady: by the way, I don't know if you saw me say so before, but I like the :> idea for disambiguating between nameds and pairs (however, I also think it's probably too late to try that :< ) | ||
japhb | TimToady: So if I declare 'sub foo(*@pairs) {...}' then 'foo((a => 1, b => 2))' should do it? | ||
TimToady | should work | ||
dinner (in Seattle) & | 02:27 | ||
japhb | TimToady: Oh yeah, I missed your <== example the first time. | ||
That may actually work even better | |||
ShimmerFairy | japhb: just keep in mind that you have to use <== , or else you run into the same problem all over again :P | 02:29 | |
02:29
BenGoldberg joined
02:30
arch_vader joined
|
|||
japhb | nodnod | 02:32 | |
02:35
noganex_ joined,
arch_vader left
02:37
noganex left
02:43
cognominal left
02:44
cognominal joined
02:46
TEttinger left
02:47
TEttinger joined
02:52
mr-foobar left
03:00
cognominal left,
dwarring left
03:06
tinyblak joined,
bin_005 joined,
bin_005 left
|
|||
flussence | I just wrote «use lib $*PROGRAM-NAME.IO.parent.child('lib');» in a script, and I can't help feeling there's an obvious and pretty way to say it I'm missing... | 03:06 | |
well, s/PROGRAM-NAME.IO/PROGRAM/ is a start... | 03:07 | ||
03:11
tinyblak left
|
|||
ugexe | depends. anything for a test file and you shouldnt expect any code to be in any specific location | 03:19 | |
anything but a test file^ | |||
tests dont get installed. but scripts in say bin/ do | 03:20 | ||
and CURL.install does not put anything in a /lib folder | |||
flussence | it's a standalone script with a lib/ in the same directory | 03:23 | |
ugexe | use lib 'lib | ||
' | |||
03:23
khw left
|
|||
flussence | I tried that, but then it doesn't work unless $*CWD eq $*PROGRAM.parent... | 03:24 | |
PerlJam | ugexe: but that's lib relative to $*CWD, not the location of the program. | ||
03:25
llfourn left
|
|||
ugexe | thats why panda and zef have to change the cwd to work with a bunch of stuff in the ecosystem | 03:27 | |
personally i dont like 'use lib "lib"', in such cases i use -I or PERL6LIB | |||
flussence | m: say 'use lib $*PROGRAM.parent.child("lib")'.chars cmp 'use FindBin qw($Bin); use lib "$Bin/lib"'.chars | 03:30 | |
camelia | rakudo-moar 98df93: OUTPUT«Less» | ||
PerlJam | win! | ||
flussence | no reason for me to complain then :) | ||
(would be nice if I could do "IO.sibling", but it's short enough I don't really care at this point) | 03:31 | ||
PerlJam | spec it :) | ||
flussence | I'll go through some of the other p6 code I have floating around and see if there's enough there to make it interesting... but I'll leave it for tomorrow, kinda late here :) | 03:33 | |
ugexe | IO.sibling++ | 03:35 | |
PerlJam now half expects to wake up tomorrow and notice that lizmat specced and implemented IO.sibling | 03:38 | ||
ugexe | hehe, i might have to monkey-patch it in the mean time. a good idea | 03:39 | |
PerlJam sleep & | 03:50 | ||
03:53
mr-foobar joined
04:05
geraud left
04:14
llfourn joined
04:22
BenGoldberg left
04:35
mr-foobar left
04:39
mr-foobar joined
04:45
hello_ joined,
xinming_ joined
04:48
xinming left
04:54
cognominal joined
04:55
jkva joined
04:56
hello_ left
04:58
aborazmeh joined,
aborazmeh left,
aborazmeh joined
05:12
lizmat joined
|
|||
lizmat waves from Tokyo | 05:12 | ||
05:13
freeze left
|
|||
dalek | kudo/glr: b2ec073 | (Jimmy Zhuo)++ | src/core/io_operators.pm: keep args of note/say same as print |
05:17 | |
kudo/glr: e93d48e | lizmat++ | src/core/io_operators.pm: Merge pull request #490 from zhuomingliang/patch-1 keep args of note/say same as print |
|||
05:26
freeze joined
05:30
rurban joined
05:50
mr-foobar left
06:01
rurban_ joined
06:02
ShimmerFairy left
06:05
diana_olhovik joined
06:14
kurahaupo joined
06:16
ShimmerFairy joined
|
|||
Sgeo | m: say Mu.new | 06:22 | |
camelia | rakudo-moar 98df93: OUTPUT«Mu.new» | ||
06:39
aborazmeh left,
kurahaupo left
|
|||
skids | .tell jnthn tried my hand at GLR Array.unshift(**@) in PR#491 (sorry about the /msg, too tired) | 06:43 | |
yoleaux | skids: I'll pass your message to jnthn. | ||
06:46
espadrine joined
06:49
zakharyas joined
06:56
breinbaas joined
06:58
FROGGS joined,
kurahaupo joined
|
|||
FROGGS | o/ | 07:00 | |
07:16
RabidGravy joined
07:24
ingy left
|
|||
[Tux] | o/ | 07:24 | |
dalek | kudo/glr: 6d8768f | (Stefan Seifert)++ | src/core/Any-iterable-methods.pm: Give implementing map with .count > 1 a try We don't handle trailing elements correctly yet, but simple cases like for flat ([1, 2], [3, 4], [5]) -> $a, $b { say "$a $b"; } work again |
||
07:24
ingy joined
07:26
frew joined
07:32
llfourn left
07:33
virtualsue joined
07:34
virtualsue left,
fxer joined,
skids left
07:35
virtualsue joined,
virtualsue left
07:36
virtualsue joined
|
|||
[Tux] | Inline::Perl5 | 07:36 | |
*fetch stage failed for LibraryMake: Failed cloning git repository 'git://github.com/retupmoca/P6-LibraryMake.git' | |||
DrForr | It's still on the site and active. | 07:37 | |
Which does bring up an interesting point, however. Should we be backing up build-chain tools in case someone pulls them off github, at least until 6PAN or whatever gets decided on is ready? | 07:38 | ||
Granted, the odds are ridiculously low at this stage, but it's a thought. | 07:39 | ||
07:41
xinming_ left,
kst` left,
baest left,
rmgk left,
amurf left,
camelia left,
eternaleye left,
pierrot left,
ponbiki left,
oha left,
Ulti left,
SHODAN left,
[Coke] left,
Util left,
agentzh left,
shmibs left,
bloonix left,
bcode left,
garu left,
sjn left,
ruoso left
07:42
tinyblak joined,
xinming_ joined,
kst` joined,
baest joined,
rmgk joined,
amurf joined,
[Coke] joined,
camelia joined,
eternaleye joined,
pierrot joined,
ponbiki joined,
oha joined,
Ulti joined,
SHODAN joined,
Util joined,
agentzh joined,
shmibs joined,
bloonix joined,
bcode joined,
garu joined,
sjn joined,
ruoso joined,
card.freenode.net sets mode: +v camelia
07:44
amurf_ joined,
tinyblak_ joined,
bcode left,
baest_ joined
07:45
shmibs_ joined,
pierrot_ joined,
Ulti left,
[Coke] left,
Util left,
shmibs left,
bloonix left,
garu left,
ruoso left
07:46
tinyblak left,
kst`` joined,
xinming_ left,
kst` left,
baest left,
rmgk left,
amurf left,
camelia left,
eternaleye left,
pierrot left,
ponbiki left,
oha left,
SHODAN left,
agentzh left,
sjn left
07:47
bloonix joined,
Ulti joined,
ruoso joined,
[Coke] joined,
Util joined,
sjn joined,
ponbiki joined
07:48
bcode joined,
xinming joined,
ponbiki is now known as Guest92786,
SHODAN joined
07:50
rmgk joined
07:51
eternaleye joined
07:52
garu joined
07:54
agentzh joined,
agentzh left,
agentzh joined
07:57
dakkar joined,
virtualsue left
07:59
[Sno] left
08:00
oha joined,
virtualsue joined
08:01
danaj left,
virtualsue left,
danaj joined
08:02
virtualsue joined
08:03
TEttinger left
08:04
[TuxCM] joined
08:05
TEttinger joined
08:07
camelia joined
08:09
ChanServ sets mode: +v camelia
08:10
SamuraiJack joined
08:12
virtualsue left
08:16
virtualsue joined
08:17
[TuxCM] left,
tinyblak_ left
08:20
a_2067_1010 joined,
a_2067_1010 left
08:22
llfourn joined
|
|||
RabidGravy | Boom! | 08:36 | |
08:38
darutoko joined
|
|||
nine | It's so quiet in here that even the Boom doesn't raise the average much | 08:39 | |
DrForr | No boom today, boom tomorrow. | ||
08:41
rindolf joined
|
|||
nine | There's always a boom tomorrow. | 08:42 | |
DrForr | nine++ | ||
nine | DrForr++ | 08:43 | |
jnthn yawns | 08:44 | ||
yoleaux | 06:43Z <skids> jnthn: tried my hand at GLR Array.unshift(**@) in PR#491 (sorry about the /msg, too tired) | ||
08:44
tinyblak joined
|
|||
JimmyZ | jnthn: any idea why github.com/rakudo/rakudo/commit/b5...807d8a1203 increases core setting size by 2.4M ? | 08:45 | |
jnthn | Because it declares an operator not in Grammar.nqp, meaning we save another serialized copy of the whole set of NFAs | 08:47 | |
Declaring it in Grammar.nqp should help | |||
If so, feel free to send a patch :) | 08:48 | ||
08:48
espadrine left
|
|||
ShimmerFairy | jnthn: shouldn't that be spelled "nandthen" anyway? :P | 08:49 | |
JimmyZ | I managed compiling core setting eating all the memory and got killed either by add 'trait_mod:<is>(&infix:<notandthen>, :prec($loose_and));' or change it to my &infix<notandthen> := -> *@a' .. | 08:50 | |
jnthn | Well, the latter is certainly a bad idea. | 08:51 | |
08:51
brrt joined
|
|||
brrt | \o | 08:51 | |
JimmyZ | trait_mod:<is>(&infix:<notandthen>, :prec($loose_and)); is added to src/core/precedence.pm | ||
and then eats all the memory .. | |||
_itz | . o O ( is nine++ ten?) | 08:52 | |
ShimmerFairy | did you add 'notandthen' to Grammar.nqp too? | ||
JimmyZ | like this token infix:sym<notandthen> { <sym> >> <O('%loose_and, :assoc<list>')> } ? | ||
08:53
TEttinger left
|
|||
ShimmerFairy | Looks like that should be correct. | 08:54 | |
08:56
fxer left
|
|||
jnthn | aye, think so | 08:57 | |
nine | jnthn: I tend to run into expected Positional but got Seq errors in handle-exception. I guess fixing this would make development much easier, but I don't know enough about the design. I don't know if the problem is that it is passed a Seq or that it can't handle the Seq. | ||
In both cases I wouldn't know how to fix it :/ I'd guess that I'd have to do that in the Binder, but I'm really out of my depths there. | 08:58 | ||
jnthn | nine: We're meant to do .list and bind the result of that... | ||
nine: And I thought I'd written the code to do it; I'll have a look why it's not working | |||
nine | Ok, I could try how far I get with that knowledge, but only in the evening. | 08:59 | |
09:00
breinbaas left,
notch_ joined
|
|||
JimmyZ | pushed : github.com/rakudo/rakudo/pull/492 | 09:04 | |
jnthn | .tell skids Left some comments on the PR | 09:07 | |
yoleaux | jnthn: I'll pass your message to skids. | ||
jnthn | wtf, the final bunch of sanity tests SEGV for me now in glr | 09:12 | |
09:16
leont joined
|
|||
jnthn | ohh...interesting | 09:20 | |
09:20
ecocode joined
09:23
bin_005 joined,
hurricane joined
|
|||
jnthn patched a Moar bug that was probably to blame for the odd time we SEGV'd instead of reporting a wrong pre-comp'd version of a library | 09:25 | ||
09:25
espadrine joined
|
|||
leont | Sounds familiar | 09:25 | |
dalek | kudo/glr: 7d55b06 | jnthn++ | src/vm/moar/ops/perl6_ops.c: Fix bug in Iterable lookup. The compiler did warn, but I somehow missed it. |
09:26 | |
09:28
SamuraiJack left
09:31
ChoHag joined
|
|||
nine | jnthn: /bin/sh: line 1: 11974 Segmentation fault /home/nine/install/rakudo/install/bin/nqp-m tools/build/gen-cat.nqp moar src/Perl6/Actions.nqp > src/gen/m-Perl6-Actions.nqp | 09:39 | |
jnthn: running make again seems to succeed though | |||
09:39
brrt left
09:43
[TuxCM] joined
|
|||
jnthn | nine: There's not much I can debug with that... :) | 09:44 | |
If you manage to get it reproducable or get a stack trace, would be interesting to see | 09:45 | ||
09:45
FROGGS_ joined
09:46
virtualsue left
09:47
virtualsue joined
|
|||
ShimmerFairy | m: say :45<0x1F> # should this fail? | 09:48 | |
camelia | rakudo-moar 98df93: OUTPUT«5===SORRY!5=== Error while compiling /tmp/FflOueSG1cRadix 45 out of range (allowed: 2..36)at /tmp/FflOueSG1c:1------> 3say :45<0x1F>7⏏5 # should this fail?» | ||
09:48
FROGGS left
|
|||
ShimmerFairy | On the one hand, 45 is not a valid radix for that. On the other, it has an overriding '0x' prefix in it. The spec doesn't seem to say anything about it. | 09:49 | |
jnthn | m: say :45[0x1F] | ||
camelia | rakudo-moar 98df93: OUTPUT«31» | ||
jnthn | You have to use that syntax in this case I believe | ||
ShimmerFairy | m: say :45[0xFF] | 09:50 | |
camelia | rakudo-moar 98df93: OUTPUT«255» | ||
ShimmerFairy | huh, wasn't aware of that use of :radix[] . Seems odd though, considering [] is _supposed_ to contain a list of place values in the chosen radix | 09:51 | |
nine | jnthn: did not happen again. Was the first time I compiled glr on this machine, so that may have been the reason | ||
ShimmerFairy | m: say :16[16] | 09:53 | |
camelia | rakudo-moar 98df93: OUTPUT«16» | ||
ShimmerFairy | I think that actually works just by accident. There should be an upper limit on numbers in the [] form, AIUI | 09:54 | |
jnthn | nine: Oddness | ||
ShimmerFairy | S02:3329 looks like a rakudobug (I'll submit if necessary and keep it in mind as I hack around in the radix-related stuff) | 09:56 | |
dalek | kudo/glr: b3c3c78 | jnthn++ | src/core/Array.pm: Give push and unshift "single item" semantics. To patch array assignment, [...], etc. |
||
ShimmerFairy | (since there was no link generated by the bot, a quote: "All numbers representing digits must be less than the radix, or an error will result ") | 09:57 | |
10:01
kurahaupo left
|
|||
ShimmerFairy | As for :45<0x1F> , I think for now at least I'll err on the side of not letting you get away with a bad radix sometimes :) | 10:02 | |
dalek | kudo/glr: 34a5fce | jnthn++ | src/core/Junction.pm: Fix various Junction issues. |
10:07 | |
jnthn | With that, we're down to 3 failing sanity tests. | 10:08 | |
10:09
RabidGravy left
|
|||
jnthn | nine: btw, about the typecheck failed in binding thing: the failover in signatures *is* working fine, it seems | 10:13 | |
nine: The problem is that my @a := @foo.map(...); is no longer legal | |||
(Which won't be changing) | |||
sergot | hi #perl6 o/ | 10:14 | |
10:16
[Sno] joined
|
|||
ShimmerFairy | jnthn: will that affect nqp::bindpos too? That bug in deepmap I fixed a few days ago involved certain returning .map'd things otherwise untouched, which ended up misbehaving when only bound to stuff (or assigned to sigil-less variables). | 10:16 | |
jnthn | nqp::bindpos works at a rather lower level | 10:19 | |
ShimmerFairy | Not surprising :) . The issue was with the .map'd thing not being reified properly, which I found when assigning the return value fixed it, but binding didn't. So I kinda lumped 'bindpos' in the nqp::while loops with the stuff that didn't affect those return values. | 10:20 | |
dalek | kudo/glr: 6c652b2 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp: Re-instate slurpy support in slow-path binder. |
10:21 | |
kudo/glr: 35c2687 | jnthn++ | src/Perl6/World.nqp: Update for List storage change. |
|||
10:24
cognominal left
|
|||
dalek | kudo/glr: 9710965 | jnthn++ | src/core/EnumMap.pm: EnumMap now should implement .Int and .Numeric. They're not longer provided by Iterable (and nor should they be). |
10:26 | |
jnthn | 99-test-basic.t passes | ||
That just uses 54-use-lib.t with issues | 10:27 | ||
10:28
spider-mario joined
|
|||
JimmyZ | Is it hard to change EnumaMap to Map? if not, I could do it | 10:30 | |
10:31
tinyblak left
|
|||
jnthn | Don't know if we agreed on that yet (or at least, not sure TimToady++ approved) | 10:31 | |
But let's keep the churn down for now | |||
JimmyZ | ok :) | 10:32 | |
10:32
[TuxCM] left
10:34
sjn_phone joined
|
|||
dalek | kudo/glr: 9b02d49 | jnthn++ | src/Perl6/World.nqp: Properly fix arglist. |
10:37 | |
10:39
brrt joined
|
|||
dalek | kudo/glr: 038e0e2 | jnthn++ | lib/Test.pm: [...] doesn't itemize now, so need item here. |
10:41 | |
jnthn | I *think* that gets us clean on the sanity tests. | ||
10:41
virtualsue left
10:42
virtualsue joined
|
|||
brrt | \o/ | 10:44 | |
time for cake! | |||
10:45
rurban_ left,
sjn_phone_ joined,
sjn_phone left
|
|||
DrForr | But the cake is a lie :( | 10:45 | |
10:49
sjn_phone_ left
10:52
sjn_phone_ joined
|
|||
|Tux| | jnthn++ | 10:52 | |
brrt | time for beer, in that case :-) | 10:55 | |
DrForr | Indeed. | 10:56 | |
Speaking of which I'm a touch upset that I'm headed to the Chartreuse distillery *after* YAPC::EU. | |||
jnthn | We make it 2 spectests until we hit a failing one... | ||
Well, it's at least 3 now 'cus I just at least sufficiently unbusted sequences | 10:57 | ||
dalek | kudo/glr: 07c76a1 | jnthn++ | src/core/operators.pm: Unbust SEQUENCE post-GLR. Or at least, unbust it enough that the first spectest example that uses it passes. Main changes: :infinite flag gone, .list does not imply flattening, List is now immutable so can't .push to it. |
10:58 | |
ShimmerFairy | Wow, I just realized that fixing roast for GLR is going to be quite big (as is the specs, though likely not as much). | 10:59 | |
jnthn | Yup, now we're up to the first 4 passing :) | 11:00 | |
jdv79 | woohoo! | ||
jnthn | ShimmerFairy: Yeah, it will... :) | ||
ShimmerFairy: I don't worry so much over design docs; that'll just be updating them to be in line with what we decide in the implementation ;) | 11:01 | ||
ShimmerFairy | jnthn: well, I need to get more familiar with GLR, but I wouldn't mind helping out on the tests when I can :) (in a roast/glr branch, of course) | ||
jnthn | ShimmerFairy: Please do :) | 11:02 | |
ShimmerFairy | jnthn: I certainly would hate to see you left with going over hundreds (thousands?) of test files :) | 11:03 | |
jnthn | It's not thousands | ||
:) | |||
But yeah, hundreds | |||
ShimmerFairy | $ find -name *.t | wc -l | 11:04 | |
1158 | |||
jnthn: it's thousands, surprisingly O_o | |||
(though that's counting all .t files, not excluding stresstest ones and so on) | |||
jnthn | Oh wow | 11:05 | |
It's grown :) | |||
jnthn wonders if reduction meta-ops should flatten their input | |||
I guess not | |||
Um, when does a meta-op actually get called with multiple args? | 11:08 | ||
brrt | i'm ambivalent on the whole flattening thing | ||
ShimmerFairy | jnthn: uhm... chaining/list ops with a metaop?? | ||
brrt | it's *really* useful if you know how to use it in perl5 | ||
jnthn | ShimmerFairy: Example? | 11:09 | |
Oh, I shoulda been clear | |||
A *reduce* meta-op | |||
ShimmerFairy | jnthn: I don't have an example, I was just throwing out a possibility. | ||
jnthn | [+] 1,2,3 # passes a List of 3 values | ||
[+](1,2,3) # passes a List of 3 values | |||
I can't see how you'd end up in it otherwise | |||
And reduce is really, really the kinda thing that wants to work on an Iterable not a list | 11:10 | ||
ShimmerFairy | jnthn: what if you tried things like .assuming on the reduction? | ||
jnthn | ShimmerFairy: I'm after normal use cases :P | ||
Thing is | 11:11 | ||
If we don't make it work on Iterable then | |||
[+] @things.map({ blah }) | |||
Would have to build up a list of things that the map produces | |||
Only for us to shift off it again | |||
Which is just wasteful | |||
ShimmerFairy | jnthn: I'm guessing that the "takes multiple values" is just a result of what reduce does _conceptually_: place its operator between things. So you'd likely think of it as reduction(@a[0], @a[1], @a[2], ...) | 11:13 | |
11:14
lizmat left,
lizmat joined
11:15
laouji left
|
|||
jnthn | ShimmerFairy: I think the reality may be that it was done so you get a separate list so you can .shift off it | 11:16 | |
ShimmerFairy: Because there wasn't really a "consume a thing at a time" iterator API | 11:17 | ||
ShimmerFairy | jnthn: maybe git blame will tell you; it's certainly been interesting to go back when I spot weird extraneous stuff, and see what the deal was :) | ||
11:18
dayangkun left
|
|||
ShimmerFairy | (if only commandline git had a "view file at this commit" feature, I didn't find one when looking) | 11:18 | |
11:18
lizmat left
|
|||
huf | isnt that git show rev:file ? | 11:18 | |
there's *something* | |||
jnthn | yeah, that's the one | 11:19 | |
ShimmerFairy | huf: perhaps, I'm not that skilled in git, or searching through the help docs (manpages) for stuff :) | ||
huf | stackoverflow.com/questions/2071288...or-svn-cat | ||
11:22
lizmat joined
11:25
telex left
11:26
telex joined
11:31
tinyblak joined
11:38
rurban left,
rurban joined
|
|||
dalek | kudo/glr: 8ff2f5e | jnthn++ | src/ (2 files): Begin fixing up reductions. Make the code-gen respect the "single item" rule we're using in many places, and re-implement left-assoc reduce to work this way. Note that it uses the iterator API directly and should be a good bit faster than what came before, which shuffled things in and out of a temporary intermediate list. |
11:40 | |
jnthn | Still need to fix up the other METAOP_REDUCE_* subs | 11:41 | |
11:42
tinyblak left
|
|||
jnthn | lunch | 11:45 | |
nine | jnthn: I saw a segfault again. But again it vanished when I re-ran make :/ | 11:49 | |
brrt | perl5 question! what's the easy way to count the number of items in a hash | 11:51 | |
DrForr | keys %h | 11:52 | |
nine | in scalar context | ||
DrForr | Though I guess that actually depends upon the definition of 'items' :) | 11:53 | |
brrt | ... ok, that will do | ||
11:53
bin_005 left
|
|||
lizmat | $ perl -E 'my %h = (a => 1, b => 2); say 0+%h' | 11:57 | |
2 | |||
the 0 is necessary | |||
virtualsue has always favoured "scalar(keys %hash)" | 12:06 | ||
brrt is doing just that | 12:07 | ||
lizmat: if you use warnings on that it'll complain | |||
virtualsue | yep | ||
brrt | it'll work, but complain | ||
lizmat | it's been a while :-) | 12:08 | |
virtualsue | :-) | ||
brrt | yeah, i'm doing quite a bit of perl5 for all the preprocessor stuff | ||
lizmat is getting hungry, but is confused as to whether she's ready for breakfast, lunch or dinner | |||
brrt | it has already been lunchtime here | 12:09 | |
virtualsue | i used to spend a lot of time with people who called lunch 'dinner' which just confuses things even more | ||
nine | I usually have breakfast around noon ;) | 12:13 | |
12:14
virtualsue left
|
|||
brrt | english had these weird rules wherein dinner refers to the main meal of the day, and supper to a mean in the evning, or the other way arround | 12:14 | |
*has | |||
12:17
tinyblak joined
12:21
virtualsue joined
|
|||
lizmat | dinner& # figured it out | 12:23 | |
brrt | :-) | 12:28 | |
JimmyZ | anyone could merge #492 pr? | 12:29 | |
colomon | brrt: Are there actually proper rules for that? My impression (as a native American English speaker) has always been that it those distinctions were mostly local custom at best. | 12:31 | |
brrt | stack exchange says this: english.stackexchange.com/questions...d-meanings | 12:32 | |
local customs seem to be the guide, yes | 12:33 | ||
dalek | kudo/nom: b3d4139 | (Jimmy Zhuo)++ | src/ (2 files): declare notandthen in grammar too |
||
kudo/nom: 141eeab | peschwa++ | src/ (2 files): Merge pull request #492 from zhuomingliang/nom Merged #492. |
|||
psch | hi #perl6 o/ | ||
dalek | ecs: 3febe4c | (Kamil Kułaga)++ | S03-operators.pod: Added nothenthen Because of github.com/rakudo/rakudo/pull/492 |
12:34 | |
JimmyZ | thank you all | 12:38 | |
12:43
bobkare left
|
|||
maettu | blogs.perl.org/users/swiss_perl_wor.../asdf.html | 12:44 | |
if you know a Perl 6 newbie, or other interested folk | |||
12:51
bobkare joined
|
|||
virtualsue | maettu++ | 12:52 | |
dalek | kudo/glr: cb2320f | (Stefan Seifert)++ | src/core/IO/Spec/Unix.pm: Fix IO::Spec::Unix::canonpath producing "foo bar" instead of "foo/bar" Parentheses no longer flatten Positionals automatically in GLR. Use explicit flat instead. |
||
nine | jnthn: with this ^^^ and a little workaround in lib/lib.pm6 most of the NativeCall tests pass :) | 12:53 | |
12:54
arch_vader joined
|
|||
jnthn | nine: wow :) | 12:54 | |
nine | First Inline::Perl5 tests start passing! | 12:55 | |
The lib/lib.pm6 workaronund is for NYI unshift with multiple values | |||
jnthn | Ah, ok | 12:56 | |
dalek | kudo/glr: 306ff11 | jnthn++ | src/core/Backtrace.pm: Cannot index a Seq. At least, not yet anyway. |
||
jnthn | hm, now a couple of the early spectests block on sort. Guess I'll go fix that. | ||
13:00
arch_vader left
13:02
arch_vader joined
|
|||
dalek | kudo/glr: d2de5d6 | (Stefan Seifert)++ | src/core/Array.pm: Implement unshift-list |
13:02 | |
nine | jnthn: ^^^ workaround no longer needed :) | ||
Only failing 09-nativecast.t and 16-rt125408.t now | 13:03 | ||
jnthn | o.O | 13:05 | |
Wow | |||
nine | 09-nativecast.t is expected: '1 2 3' got: 'Seq<140093199907520>' for is $carray[0..2], (1, 2, 3) | 13:06 | |
13:06
sjn_phone_ left
13:07
sjn_phone_ joined
|
|||
nine | jnthn: is flat($carray[0..2]), (1, 2, 3) makes the test pass, but I don't know if the test or the implementation is faulty | 13:07 | |
13:07
sjn_phone_ left
13:08
sjn_phone joined
|
|||
arch_vader | Hi! i want to contribute to Perl 6. How do I get started? | 13:08 | |
13:09
mr-foobar joined
|
|||
jnthn | nine: I'm rather dubious flat should be needed there, at first glance | 13:09 | |
JimmyZ | arch_vader: rakudo.org/how-to-help/ hope this helps | ||
13:10
sjn_phone left,
sjn_phone_ joined
|
|||
arch_vader | JimmyZ: Thanks! How do I get myself involved in the community? | 13:11 | |
13:12
rmgk_ joined,
rmgk left,
rmgk_ is now known as rmgk
|
|||
nine | arch_vader: I guess the easiest way is to stay on this channel and talk to people about Perl 6 :) | 13:13 | |
13:14
sjn_phone_ left
13:15
sjn_phone_ joined
|
|||
JimmyZ | arch_vader: what nine said, or blogs.perl.org/users/swiss_perl_wor.../asdf.html | 13:16 | |
13:19
sjn_phone_ left,
arch_vader left,
sjn_phone joined
13:23
RabidGravy joined,
sjn_phone left,
sjn_phone_ joined,
sjn_phone_ left
13:24
sjn_phone_ joined,
sjn_phone_ left
13:25
sjn_phone_ joined,
sjn_phone_ left
|
|||
dalek | kudo/glr: 2f42915 | jnthn++ | src/core/Any-iterable-methods.pm: Get sort working again after GLR refactor. Should be a decent bit more efficient too, though we can still do better. |
13:25 | |
13:25
sjn_phone joined
|
|||
[Coke] tries to avoid a 9 hour layover in dusseldorf, and may have to cancel and rebook to make this happen. travel is fun! ;) | 13:28 | ||
jnthn | 9 hour layover = urgh | ||
13:31
arch_vader joined
|
|||
maettu | better than a 9 hour hangover | 13:31 | |
13:34
arch_vad1r joined,
tinyblak left
|
|||
arch_vader | JimmyZ: nine: Do I have to know previous versions of Perl to understand Perl 6? | 13:35 | |
nine | arch_vader: not at all | ||
arch_vader: there are quite a few people here who don't know Perl 5. | 13:36 | ||
13:36
tinyblak joined
|
|||
arch_vader | nine: I want to start coding with Perl 6. Where should i begin? | 13:37 | |
JimmyZ | arch_vader: perl6.org/getting-started/ | 13:39 | |
DrForr | Just compare the cost to a cheapo hotel room, and if the hotel is less expensive, may as well go for it :) | 13:40 | |
dalek | kudo/glr: a58bcae | jnthn++ | src/core/Seq.pm: Various missing methods on Seq. |
||
kudo/glr: 7d0f1bd | jnthn++ | src/core/List.pm: Cope with joining holey lists. |
|||
kudo/glr: e33977f | jnthn++ | src/core/EnumMap.pm: Missing Str method in EnumMap. Originally provided by Iterable, oddly enough. |
13:44 | ||
13:45
brrt left
|
|||
arch_vader | JimmyZ: nine: Thanks a lot :) I think I can get started right away. | 13:46 | |
nine | arch_vader: and most important: have fun! :) | ||
13:47
sjn_phone left
|
|||
arch_vader | nine: I will :) | 13:47 | |
13:47
sjn_phone joined
|
|||
jnthn | Wowser... Compiling '\1' in the glr branch manages to not only hang, but also allocates memory at a rate of 300 MB / sec. :) | 13:51 | |
13:51
sjn_phone left,
sjn_phone_ joined
13:53
sjn_phone joined,
sjn_phone_ left
13:54
abaugher joined
|
|||
nine | jnthn: oh is that what I see in a couple of spectest files? | 13:54 | |
abaugher | Hi all, thought I should introduce myself. I've been using Perl 6 about a month, blogging about it at blogs.perl.org/users/aaron_baugher/ | 13:55 | |
13:55
muraiki joined
|
|||
nine | abaugher: nice to meet you :) | 13:55 | |
jnthn | nine: Probably | 13:56 | |
nine: I'm working on hunting it down | |||
nine | jnthn: great :) | ||
spectesting is much more fun if you don't have to kill processes all the time ;) | |||
13:57
sjn_phone left,
sjn_phone joined
|
|||
abaugher | nine: Thanks, nice to meet you too. | 13:57 | |
13:58
amurf_ left,
amurf joined
13:59
arch_vader left
|
|||
jnthn | nine: Yeah, in my last run it launched two of them (parallel spectest) and even if you've plenty of RAM to hand, 500 megs a second vanishing chews it quick :) | 13:59 | |
13:59
sjn_phone left,
sjn_phone_ joined
14:00
arch_vad1r left
14:01
espadrine left
|
|||
DrForr | Zowie. The P5-6 converter is currently at 25200 files and going, after a few little tweaks. | 14:03 | |
nine | abaugher: so you've been enjoying your journey into Perl 6 land so far? | ||
abaugher | nine: Yeah, quite a bit. It's very different in some ways, but I like it. | 14:05 | |
14:07
sjn_phone_ left,
sjn_phone joined
14:12
perlpilot joined
|
|||
ugexe | reading/understanding the art of multiprocessor programming has been much easier after having been exposed to the higher level threading stuff in perl6 | 14:13 | |
14:13
perlpilot left
14:17
skids joined,
sjn_phone left
|
|||
jnthn | nine: Think I found it :) | 14:17 | |
nine | jnthn: nice :) | 14:19 | |
dalek | kudo/glr: ab337c0 | jnthn++ | src/core/List.pm: Re-implement List.reverse. |
14:20 | |
14:27
espadrine_ joined
14:28
virtualsue left
|
|||
nine | Now that's a somewhat mundane reason :) | 14:29 | |
skids | jnthn: OK, looks like unshift got a different implementation. Should I bother submitting a PR to remove the "unshift to infonite" tests, or are we keeping them for now? | 14:31 | |
yoleaux | 09:07Z <jnthn> skids: Left some comments on the PR | ||
dalek | kudo/glr: 5012b16 | jnthn++ | src/core/Range.pm: Iteration of 1..* ranges. |
14:32 | |
14:33
khw joined,
tinyblak left
|
|||
jnthn | skids: I think they can go away | 14:33 | |
Doesn't make sense to me | |||
14:33
jkva left
|
|||
jnthn | Feels like symmetry for the sake ofit | 14:34 | |
skids | Or just someone cut and pasted push :-) | ||
jnthn | Or that ;) | 14:36 | |
14:36
lucasb joined
|
|||
nine | jnthn: 408/1032 test files fail. We're well past half of them passing :) | 14:36 | |
jnthn | o.O | 14:37 | |
Not Bad. | |||
dalek | rl6-roast-data: d2738ce | coke++ | / (9 files): today (automated commit) |
||
skids | Is enough working for a camelia directive? | 14:38 | |
nine | I'd say definitely. | 14:41 | |
Question is: how can one set up a branch in camelia? | |||
jnthn | I think it's time to create a glr branch in spectest | 14:46 | |
For one 'cus we need to start s/Parcel/List/ in the tests | |||
skids | Oh, it looks like the slurpy unshift cnadidate didn't get done, just (@a). Too much to be pulling off while at $DAYJOB through. | 14:47 | |
Man I can't type yet today. | |||
lucasb | I have seen "**@a" parameters around. What does it mean in GLR, since LoL seems to be gone? | 14:49 | |
jnthn | lucasb: A List that has one element per argument slurped | 14:50 | |
lucasb | jnthn: thanks | 14:54 | |
jnthn | (while *@foo still flattens) | ||
Oh, and | |||
pyrimidine | .seen Ulti | ||
yoleaux | I saw Ulti 29 Jul 2015 08:36Z in #perl6: <Ulti> lizmat++ | ||
jnthn | *@foo # array, flattens any incoming args | 14:55 | |
**@foo # array, doesn't flatten | |||
*@foo is rw # list, flattens any incoming args | |||
**@foo is rw # list, doesn't flatten | |||
lucasb | with 'is rw' it's a list and without it it's a array? | 14:56 | |
14:57
sjn_phone joined
|
|||
dalek | kudo/glr: 113fc42 | jnthn++ | src/Perl6/ (2 files): Fix optional array parameters. Happily, the code gets a good bit simpler for these. |
14:57 | |
kudo/glr: 55850a3 | jnthn++ | src/core/Any-iterable-methods.pm: Start improving multi-arg-closure map. But really needs more significant improvements yet. |
|||
jnthn | lucasb: correct | ||
lucasb: Meaning that you can assign to any Scalar containers that were passed. | |||
lucasb | ok, your explanation made it clearer to me, thanks | 14:59 | |
leont | Interesting, I guess I should use ** then | 15:03 | |
15:05
sjn_phone left,
sjn_phone joined
|
|||
jnthn | Wait, what, roast already has a glr branch? | 15:07 | |
hm, it does too | 15:08 | ||
nine | just found that out, too | 15:09 | |
December 30th 2014 | |||
jnthn | Darn it, that branch has a load of merge conflicts | ||
I can't be arsed. | 15:10 | ||
I'll push it as glr-backup | |||
And push mine as glr | |||
nine | It's just 3 commits | ||
jnthn | Yeah. Somebody else can rescue them :) | ||
15:11
diana_olhovik left
|
|||
dalek | ast/glr: dfcb18c | jnthn++ | / (19 files): First round of Parcel removal from spectests. |
15:11 | |
nine | I'm not sure if it's even worth it. 250 lines of diff, mostly about Parcel -> List | ||
JimmyZ | and with another test | 15:12 | |
dalek | Heuristic branch merge: pushed 27 commits to rakudo/glr by jnthn | 15:13 | |
jnthn | I just merged latest nom into glr in Rakudo also | ||
So that the test branch and the nom branch have a consistent base, to avoid confusion. | |||
15:13
sjn_phone left
|
|||
jnthn | (e.g. we aren't investigating failures because we missed commits from nom) | 15:14 | |
nine | No conflicts? I'm almost disappointed :) | ||
ShimmerFairy | nine: I think people are knowingly leaving the pre-GLR list stuff alone :P | ||
nine | ShimmerFairy: then they are wise :) | ||
jnthn | nine: No, though an nqp::p6parcel got introduced, which I just commented out for now | 15:15 | |
15:15
sjn_phone joined
|
|||
lizmat can fix that | 15:16 | ||
(as I was the one introducing that) | |||
jnthn | lizmat++ | 15:17 | |
jnthn is mostly leaving things that feel LHF-ier by this point :) | 15:18 | ||
by the way, the Test::Util is-run now works again as of one of my recent patches | |||
More recent than nine++ did a spectest run | |||
15:18
[Sno] left
|
|||
jnthn | So we'll have won back more test files through that | 15:18 | |
15:19
[Sno] joined
|
|||
dalek | kudo/glr: 04fac5d | jnthn++ | src/core/Any-iterable-methods.pm: Restore for @a -> { } giving an exception. Fixes hang in dollar-underscore.t. |
15:19 | |
nine | Does 'flat' flatten one level or deeply? | ||
jnthn | It flattens non-itemized Iterables deeply | 15:20 | |
lizmat | so a Parcel is now a List, right ? | ||
so a sub called RETURN-PARCEL should probable be called RETURN-LIST now? | |||
15:21
virtualsue joined
|
|||
jnthn | lizmat: Yeah, Parcel went away | 15:21 | |
lizmat: And List is now somewhat like Parcel was and somewhat like List was :) | 15:22 | ||
nine | 18/29 Inline::Perl5 test files pass with a simple tweak :) | ||
dalek | kudo/glr: 4d066dd | lizmat++ | src/core/Mu.pm: Fix Mu.return, add Mu.return-rw for completeness |
15:29 | |
Ulti | pyrimidine I'm here what's up | 15:32 | |
dalek | kudo/glr: 0488743 | jnthn++ | src/core/ (2 files): Missing fmt methods. |
15:33 | |
15:34
zakharyas left,
ecocode left
15:35
ecocode joined
|
|||
nine | perl6 -e 'sub test(*@args) { say @args.perl }; my %h = a => 1; test(%h);' gives me [:a(1)] | 15:35 | |
dalek | kudo/glr: 6eee58c | lizmat++ | src/core/ (2 files): Eradicate parcel from the group memory a bit |
||
nine | jnthn: is [:a(1)] correct there? | 15:36 | |
dalek | ast/glr: 598b287 | jnthn++ | S (14 files): Remove remaining easy mentions of Parcel. All the others need a bit more attention. |
15:37 | |
jnthn | Yes, because a Hash is Iterable | ||
lizmat | Looks like it flattened the hash into a list of pairs ? | ||
jnthn | Correct | ||
m: sub test(*@args) { say @args.perl }; my %h = a => 1; test(%h); | 15:38 | ||
camelia | rakudo-moar 98df93: OUTPUT«[:a(1)]<>» | ||
jnthn | Same as today, fwiw | ||
lizmat | m: sub test(*@args) { say @args.perl }; my %h = a => 1, b => 2; test(%h) | ||
camelia | rakudo-moar 98df93: OUTPUT«[:a(1), :b(2)]<>» | ||
lizmat | yup | ||
:-) | 15:39 | ||
15:40
leont left
|
|||
nine | m: sub test(*@args) { say @args.perl }; test({a => 1}); | 15:40 | |
camelia | rakudo-moar 98df93: OUTPUT«[{:a(1)}]<>» | ||
dalek | pan style="color: #395be5">perl6-examples: 2374aa7 | paultcochrane++ | t/000-check-dependencies.t: Add File::Temp to required dependencies |
||
pan style="color: #395be5">perl6-examples: 6ee0141 | paultcochrane++ | lib/Pod/Htmlify.pm6: Use Text::VimColour only if it is available |
|||
nine | Ah, there's the difference. | ||
test({a => 1}); gives me [{:a(1)}] on nom, but [:a(1)] on glr | |||
jnthn | Yeah; [...] and {...} no longer implicitly .item | 15:41 | |
TimToady | yes, {} will flatten in a flattening context | ||
you'll note it doesn't put the <> anymore either | |||
jnthn wonders how many files with issues we're down to by now... :) | |||
lizmat | m: ({a => 42}).perl.say | ||
camelia | rakudo-moar 98df93: OUTPUT«{:a(42)}» | ||
lizmat | m: (my %h = a => 42).perl.say | 15:42 | |
camelia | rakudo-moar 98df93: OUTPUT«{:a(42)}<>» | ||
lizmat | hmmm... | ||
TimToady | (in glr) | ||
nine | jnthn: running spectests | ||
jnthn | S02-types/bool.t is the first test that hangs now | ||
TimToady | (for arrays, haven't fixed hashes yet) | ||
jnthn | nine: \o/ | ||
lizmat | jnthn: I think I can have a look at the bool hang | 15:43 | |
jnthn | lizmat: If you like :) | ||
jnthn isn't short of other tests to look at :) | |||
lizmat | Bool.pick(*) hangs | 15:44 | |
jnthn | Aha | ||
pyrimidine | Ulti: just seeing whether you went to ISMB and /or BOSC | ||
jnthn | But it jsut delegates to List.pick | ||
Which is commented out | 15:45 | ||
lizmat | <a b>.pick(*) hangs | ||
jnthn | Yeah, I see why | ||
Any.pick does self.list.pick | |||
But List.pick is not re-implemented after GLR | |||
nine | I wonder if it's better to debug test failures or to just hunt down GLR comments in the source. | ||
jnthn | nine: I personally tend to prefer the first in so far as I then have a test case to see if I fixed things right :) | 15:46 | |
15:46
virtualsue left
|
|||
nine | jnthn: oh that's a good argument | 15:46 | |
lizmat | if List.pick doesn't exit, it reverts to Any.pick | ||
jnthn | lizmat: Right, so it's an infinite recursion :) | ||
It keeps calling the same method again and again | |||
lizmat | yup | ||
nine | Infinite recursions tend to use quite a lot of memory | 15:47 | |
dalek | kudo/glr: a9d5292 | TimToady++ | src/core/Hash.pm: fix Hash.perl to emit {...} or ${...} |
||
jnthn | And given calls on Moar are quite fast, soon you've got 3 gigabytes of stack frames :P | ||
nine | The solution is obvious: we have to slow down MoarVM! | ||
jnthn | m: ${ a => 1 } | ||
camelia | rakudo-moar 98df93: OUTPUT«5===SORRY!5=== Error while compiling /tmp/AiMZqVc5jSUnsupported use of ${ a => 1 }; in Perl 6 please use $( a => 1 )at /tmp/AiMZqVc5jS:1------> 3${ a => 1 }7⏏5<EOL>» | ||
jnthn | m: $[ 1, 2 ] | ||
camelia | ( no output ) | ||
TimToady | that doesn't parse yet | ||
jnthn | yeah :) | ||
I noticed that earlier today :) | 15:48 | ||
TimToady | the $[] is a no-brainer; the ${} has to decide if it's a P5ism | ||
probably just detect it inside quotes, outside it's the itemized hash | |||
otoh, if we just ignore the P5ism, it'll usually get an Odd number of elements error | 15:50 | ||
lizmat | jnthn: does gather / take work already ? | 15:51 | |
jnthn | lizmat: Very much so :) | ||
lizmat: I've got local patches that put back the no-arg .pick and .lazy so it'll at least be a dispatch failure now :) | 15:52 | ||
nine | 352/1034 failing | ||
15:52
raiph joined
|
|||
jnthn | m: 352/1034 | 15:52 | |
camelia | ( no output ) | ||
jnthn | m: say 352/1034 | ||
camelia | rakudo-moar 98df93: OUTPUT«0.340426» | ||
15:52
cognominal joined
|
|||
jnthn | That's a nice drop at least :) | 15:52 | |
ShimmerFairy | TimToady: if anything, it should probably be a P5ism worry (not a sorry), and go on being an itemized hash (keep in mind this comes from someone who has no need for the compiler telling her she accidentally did a P5-ism when she doesn't know any ☺) | 15:53 | |
dalek | kudo/glr: f04771c | jnthn++ | src/core/List.pm: Add back simple pick/roll in List. |
||
lizmat | jnthn: looking forward to those patches: hope I can use them as inspiration to fix the rest | ||
thanks! | |||
15:54
diana_olhovik joined
|
|||
jnthn | lizmat: Yeah, that was my cunning plan ;) | 15:54 | |
TimToady: About the .infinite method, I'm wondering if we want to replace it with .lazy | 15:55 | ||
TimToady: Except uh | |||
TimToady: duh, that's a coercer :) | |||
lizmat | jnthn: if $!todo.DEFINITE { ... feels like a boilerplate that is going to be needed a lot | 15:56 | |
jnthn | lizmat: Yeah, we can factor that out to a private method. | ||
lizmat: The fail itself can't move | |||
lizmat | oh? | ||
jnthn | lizmat: fail is a form of return, if you put it in a private method then you no longer end up returning :) | 15:57 | |
TimToady: But more general question: should we provide a way to introspect if things are "lazy"? | |||
lizmat | yeah, got that: I was more thinking along either returning .elems or a Failure | 15:58 | |
and then to something like | |||
dalek | pan style="color: #395be5">perl6-examples: 05086f7 | paultcochrane++ | .travis.yml: Don't install Text::VimColour as part of Travis build |
||
lizmat | .fail without self|private-method() | ||
jnthn | lizmat: moment, trying a patch | 16:00 | |
dalek | pan style="color: #395be5">perl6-examples: f7c8f63 | paultcochrane++ | .travis.yml: Use container-based builds on Travis These are supposed to be faster than the legacy infrastructure. We don't need sudo, so this is a good thing to do. |
||
kudo/glr: a4cd69f | jnthn++ | src/core/List.pm: Factor out some boilerplate in List. |
16:01 | ||
jnthn | lizmat: There we are, that should make things neater :) | 16:02 | |
TimToady | jnthn: well, introspection is smelly, but optimizers have do smelly things | 16:03 | |
jnthn | TimToady: It's actual not for optimization at all | 16:04 | |
TimToady: It's that things want to refuse to work on lazy things rather than nomming all the memory/CPU | |||
TimToady: The optimization stuff is all within the iterator pipeline | |||
TimToady: I think with so many things returning Seq, we're going to run into a lot of issues with folks wanting to do things like if %fail.keys[0] { ... } | 16:08 | ||
TimToady: I'm wondering if we do want to make indexing delegating to the .list on such a thing...I'm reluctant, but it's perhaps too surprising if not | |||
(You have to write %fail.keys.list[0] at this point) | 16:10 | ||
The alternative is the monotonic thing you mentioned before | |||
But that means more postcircumfix:<[ ]> candidates | 16:11 | ||
So maybe we're better of just memoizing the Seq and indexing that, and we can provide something else for picking out indices that match a pattern | 16:12 | ||
In a "streaming" way | 16:13 | ||
lizmat | jnthn: wouldn't "is-lazy" have a use for ecosystem modules as well ? | 16:15 | |
jnthn | lizmat: That's what I was asking. I just...read code we had that used .infinite and hated it. | 16:16 | |
lizmat: The slicing used it and it was a horrobile slow mess. | |||
lizmat | jnthn: completely and utterly agree :-) | 16:17 | |
jnthn | lizmat: I disocvered @a[1..2] went 8 levels of iterators deep o.O | ||
Re-worked it a good bit by now :) | |||
lizmat | jnthn: yeah, I know... my previous attempts at reducing that, always broke some obscure spec tests :-( | 16:18 | |
jnthn | Anyway, don't object to an is-lazy or similar, just noting that I've seen .infinite be mis-used as much as well-used :) | ||
lizmat: Look how many mine have broken :D | |||
lizmat | yeah.. it's not fair! :-) | ||
jnthn | Anyways, I need to be afk for a little :) | ||
bbl | 16:19 | ||
16:23
pmurias joined
|
|||
pmurias | hi | 16:23 | |
Ulti | pyrimidine: yeah I went to ISMB it was really good | 16:25 | |
JimmyZ | .tell jnthn looks like merging nom into glr loosed some commits, at least my one. | 16:31 | |
yoleaux | JimmyZ: I'll pass your message to jnthn. | ||
lizmat | JimmyZ: lose commits in glr, or in nom? | 16:33 | |
psch | 83e91a58 breaks the r-j build, with "java.lang.RuntimeException: Cannot access a reference attribute as a native attribute" | 16:39 | |
that's as much as git bisect could tell me, i'm at a loss for the why though | |||
lizmat | hmmm... fixing List.pick now hangs in the optimizer while building :-( | 16:40 | |
16:41
khw left
16:42
coffee` left,
coffee` joined
|
|||
psch | the commit in question moves $!why and the set_docee code from Routine to Block | 16:44 | |
16:44
ecocode left
|
|||
JimmyZ | lizmat: in glr | 16:44 | |
psch | but the RTE comes from Attribute.inlined | ||
lizmat | the one that I merged ? | 16:45 | |
JimmyZ | the other one | ||
#492 | |||
16:46
diana_olhovik left
|
|||
JimmyZ | hmm, I think it did not get merged | 16:48 | |
lizmat | github says it did | 16:49 | |
but it was for nom? | |||
so maybe that was post jnthn's merge of nom? | |||
psch | i think jnthn didn't have his local glr up to date | 16:51 | |
err | |||
*local nom | |||
but that's assuming much :) | |||
dalek | kudo/glr: b3d4139 | (Jimmy Zhuo)++ | src/ (2 files): declare notandthen in grammar too |
16:52 | |
kudo/glr: 141eeab | peschwa++ | src/ (2 files): Merge pull request #492 from zhuomingliang/nom Merged #492. |
|||
kudo/glr: 3043568 | lizmat++ | src/ (2 files): Merge branch 'nom' into glr |
|||
lizmat | yup :-) | ||
JimmyZ | good night :) | 16:53 | |
lizmat | JimmyZ: good night! | 16:55 | |
m: Bool.roll(*).[^10].elems # so this is verboten from now on? | 16:56 | ||
camelia | ( no output ) | ||
lizmat | m: say Bool.roll(*).[^10].elems # so this is verboten from now on? | ||
camelia | rakudo-moar 98df93: OUTPUT«10» | ||
16:56
pierrot_ is now known as pierrot
|
|||
lizmat | $ 6 'Bool.roll(*).[^10].elems' | 16:56 | |
Cannot index a Seq; coerce it to a list or assign it to an array first | |||
16:56
dakkar left
|
|||
lizmat | feels to me this is an idiom that many veteran Perl 6 user appreciate | 16:58 | |
16:58
pmurias left
|
|||
dalek | kudo/glr: 3534431 | lizmat++ | src/core/List.pm: Initial stab at unbreaking List.pick/roll |
16:59 | |
nine | lizmat: I think that's what jnthn was pondering in irclog.perlgeek.de/perl6/2015-08-13#i_11052197 | 17:00 | |
17:01
xinming left,
domidumont joined
17:03
sjn_phone left
|
|||
dalek | kudo/glr: eb9277c | TimToady++ | src/Perl6/ (2 files): parse $[1,2,3] and ${ a => 42 } |
17:04 | |
lizmat | m: my @a = (1..Inf) # hangs on glr | 17:05 | |
camelia | ( no output ) | ||
lizmat | m: my @a = 1..Inf # also hangs on glr | ||
camelia | ( no output ) | ||
dalek | kudo/glr: 64c3661 | (Stefan Seifert)++ | src/core/Any-iterable-methods.pm: Fix %h.sort(*.key) returning a list of keys only Method sort was missing the transformation back to the original iteration values. This naive fix iterates twice. May be faster to replace the push-until-lazy by a hand coded loop to avoid this. |
17:06 | |
17:06
jkva joined
|
|||
TimToady | presumably the Inf isn't marking it lazy | 17:06 | |
nine | jnthn: ^^^ not the most elegant fix, but it works | ||
lizmat tries to get some sleep again | 17:07 | ||
17:21
_itz_ joined
17:23
virtualsue joined,
jkva left,
_itz left
17:25
diana_olhovik_ joined
17:29
kurahaupo joined
17:32
kurahaupo left
17:34
[TuxCM] joined
17:35
lucasb left
17:37
sjn_phone joined
17:41
cognominal left,
jjido joined,
rurban left
17:56
llfourn left
|
|||
dalek | kudo/glr: f8956ce | (Stefan Seifert)++ | src/core/Exception.pm: Bring back "Undeclared routine" messages Suggestions still broken however. |
18:05 | |
18:07
espadrine_ left
18:11
llfourn joined,
lizmat_ joined
18:14
lizmat left
18:16
llfourn left
|
|||
hoelzro | m: #|(comment) class C { ... }; #|(another) class C{}; say(C.WHY) | 18:22 | |
camelia | rakudo-moar 98df93: OUTPUT«another» | ||
FROGGS_ | I think I finally know why RT #125729 happens... | ||
18:22
FROGGS_ is now known as FROGGS
|
|||
hoelzro | how should declarative comments work with forward decls? should that test above print a warning, or somehow reconcile the two declarative comments? | 18:23 | |
FROGGS | when we use NQPHLL with an export sub, we see symbols from Perl6::Grammar.... and then we export these to userland, which clash with the NQPHLL there | ||
hoelzro: how about 'Too late to attach comment, a previous statement already attached one.' for the second attempt | 18:25 | ||
hoelzro | FROGGS: that would be consistent with how is repr works with forward decls | ||
FROGGS | ohh, nice :o) | 18:26 | |
then I like it even more :o) | |||
jnthn | FROGGS: Oddness; aren't they the same NQPHLL symbols, and if so how come they come out as identical and instead report a conflict? | ||
yoleaux | 16:31Z <JimmyZ> jnthn: looks like merging nom into glr loosed some commits, at least my one. | ||
jnthn | You can't lose commits with git... :P | ||
But yeah, I merged something just behind latest. | 18:27 | ||
Prolly thought origin/nom and typed nom. | |||
nine | jnthn: any idea why github.com/rakudo/rakudo/commit/f8...0cc00aR773 happens? | ||
FROGGS | jnthn: it reports a conflict, since both HLL's arnt identical for some reason | ||
jnthn | FROGGS: Yes, the "some reason" is what's confusing me :) | 18:28 | |
FROGGS | jnthn: there nqp::where's are not the same | ||
their* | |||
first we merge NQPMatch and NQPCursorRole just fine, and then explode for HLL | 18:29 | ||
jnthn | o.O | ||
FROGGS | and the only reason for that might be the fact that we use HLL::Grammar etc in Perl6::Grammar | 18:30 | |
I first thought me might want to force another context (like the one the sub EXPORT is lexically in), but that would render slangs rather useless | 18:31 | ||
Or.... I am talking rubbish here :o) | |||
jnthn | nine: Can't spot why, no | ||
FROGGS: One other thought | |||
FROGGS: We do go to some effort to merge symbol tables in ModuleLoader | 18:32 | ||
FROGGS: Though...not sure that'd be to blame either | |||
FROGGS: Are the types identical? | |||
Uh, that was unclear | |||
FROGGS | hehe | ||
jnthn | Do they have the same meta-object? | ||
FROGGS | their HOW? | 18:33 | |
jnthn | yeah | ||
dalek | kudo/glr: 1fb43e9 | jnthn++ | src/core/Range.pm: Fix 'my @a = 1..*;' hang reported by lizmat++. |
||
jnthn | nine: Are you looking deeper at it, or should I? | 18:34 | |
nine | jnthn: I've run out of ideas when I pushed that commit. All my debugging foo told me that it's an ordinary List containing an ordinary Str and everything works just fine when I run the same code outside the Exception handling | 18:35 | |
jnthn | nine: OK, will put on my todo list | 18:36 | |
nine | jnthn: thanks | ||
At least we got the exception message back. That already helped me. | |||
jnthn | The sort patch is close but you can't safely call as-iterable(iter).iterator twice reliably | 18:37 | |
nine | darn | ||
jnthn | Will fix | ||
nine | so replace the push-until-lazy by a loop? | ||
18:37
rindolf left
18:39
mr-foobar left
18:40
telex left,
cognominal joined
|
|||
FROGGS | jnthn: their HOW.name is also HLL | 18:41 | |
jnthn | FROGGS: .HOW.HOW.name | ||
FROGGS: I'm wondering if we somehow ended up with one coerced to a Perl 6 PackageHOW or so | |||
FROGGS | HOWly HOW | ||
jnthn | ;) | 18:42 | |
18:42
telex joined
|
|||
FROGGS | jnthn: both are KnowHOW :/ | 18:43 | |
nine | jnthn: what do we need TypedHash::pair and friends for? Can't we just remove them to use EnumMap's implementations? Seems to work in a first test and I don't know why iterators are affected by the type restriction. | 18:44 | |
18:47
sjn_phone left,
sjn_phone joined
|
|||
jnthn | nine: I think it's needed for object hashes | 18:47 | |
dalek | kudo/glr: e417fef | jnthn++ | src/core/Any-iterable-methods.pm: Fix sort to not iterate source twice. This would die if it was a Seq. |
18:49 | |
18:51
sjn_phone left
|
|||
nine | m: say classify * % 2 == 0, 1, 2, 3, 4, 5, 6; | 18:52 | |
camelia | rakudo-moar 98df93: OUTPUT«False => 1 3 5, True => 2 4 6» | ||
nine | jnthn: what's an object hash? :) | 18:53 | |
FROGGS | ohh, HLL itself is just a stub package... | 18:55 | |
jnthn | nine: A hash whose keys are objects, not strings | ||
my %h{Any} | |||
18:57
notch_ left
|
|||
nine | Ah, ok, I think I understand TypedHash's code now. | 18:57 | |
tadzik | perl6 docs are so happy | 18:59 | |
returns Proc:D | 19:00 | ||
:D | |||
nine | So I guess pairs would have to iterate over $!keys and fetch the corresponding value via AT-KEY | ||
tadzik | "it returns Proc. LOL" | ||
it keeps being funny | |||
jnthn | nine: I think we did something like that in the HashIter before, yeah | ||
nine: Could check HashIter in nom for inspiration... :) | |||
nine | jnthn: on it :0 | ||
jnthn | OK | 19:01 | |
jnthn is working on splice | |||
Which apparenlty sort of worked on lazy things for weird not really right reasons o.O | 19:03 | ||
[Coke] fixes his crazy layover problems and gets a nonstop flight for cheaper. Travel is crazy. :P | 19:06 | ||
19:07
jjido left,
Begi joined
|
|||
Begi | m: my @a = 0..*; say infinite(@a); | 19:07 | |
camelia | rakudo-moar 98df93: OUTPUT«5===SORRY!5=== Error while compiling /tmp/XCVMpqBrH7Undeclared routine: infinite used at line 1» | ||
19:08
sjn_phone joined,
Begi left
|
|||
dalek | kudo/glr: 3d5bb6a | jnthn++ | src/core/Array.pm: Get splice working again. I don't really understand how the previous implementation got laziness rightish at all, but this should handle things better. |
19:11 | |
19:11
sjn_phone left
19:13
sjn_phone joined
|
|||
jnthn | wtf | 19:14 | |
is( (1...Inf).elems, Inf, "elems" ); | |||
No way is that going to work. | |||
Just...no. | |||
FROGGS | :o) | 19:15 | |
[Coke] | m: say (1...Inf).elems | ||
camelia | rakudo-moar 98df93: OUTPUT«Inf» | ||
jnthn | I'm morbidly curious what trickery happened to make it "work" in nom... | 19:16 | |
nine | Yes, we can run the Infinite loop in finite time ;) | ||
geekosaur | presumably checked for Inf being an endpoint | ||
[Coke] | presumably checking the endpoint to see if it's Inf. | ||
[Coke] is too slow. | |||
jnthn | m: say (1...Inf).WHAT | 19:17 | |
camelia | rakudo-moar 98df93: OUTPUT«(List)» | ||
jnthn | But it was a gatheriter embedded in a list... | ||
geekosaur | which of ocuese only works if explicitly specified like that | ||
[Coke] | m: say (1,2, * * *...*).elems | ||
camelia | rakudo-moar 98df93: OUTPUT«Inf» | ||
jnthn | # Get as many elements as we can. If gimme stops before | ||
# reaching the end of the list, assume the list is infinite. | |||
my $n := self.gimme(*); | |||
nqp::defined($!nextiter) ?? Inf !! $n | |||
[Coke] | m: say (1,2, * * *...* > 10**100).elems | 19:18 | |
camelia | rakudo-moar 98df93: OUTPUT«15» | ||
[Coke] | m: say (1,2, * * *...* < 10**100).elems | ||
camelia | rakudo-moar 98df93: OUTPUT«1» | ||
[Coke] doesn't know, but won't be sad to lose that. | |||
jnthn | heh | ||
And a few lines of code above: | |||
multi method Int(List:D:) { self.elems } | |||
In today's example of "you think that's cute today"... | 19:19 | ||
So yeah, I could easily re-create it | 19:20 | ||
But | |||
19:20
sjn_phone left,
sjn_phone joined
|
|||
jnthn | my @a = lazy 1..5; say @a.elems; # This'll be Inf too :) | 19:20 | |
So let's not | |||
FROGGS | .elems should probably throw when the list is known to be infinite | 19:21 | |
19:21
Guest92786 is now known as ponbiki
|
|||
jnthn | We *never* know it to be infinite, only that it's lazy and so may not terminate | 19:21 | |
That's why I've been tyring to get us away from the whole "infinite" language. | |||
19:21
domidumont left
|
|||
jnthn | "Is this thing known to demand to be lazily evaluated" is what we can reliably know | 19:22 | |
FROGGS | but elems is always eager, no? | ||
jnthn | Right, today it really will try to evaluate the lot | 19:23 | |
We can make .elems throw on something that demands lazy evaluation. | |||
I guess .eager.elems would be the escape hatch | |||
FROGGS | ohh, sounds good | 19:24 | |
19:24
sjn_phone left,
sjn_phone joined
19:25
sjn_phone left,
sjn_phone joined
19:26
bin_005 joined
19:28
xinming joined
|
|||
dalek | kudo/glr: a6d22a7 | (Stefan Seifert)++ | src/core/Hash.pm: Implement TypedHash::pairs |
19:29 | |
kudo/glr: 60397f8 | (Stefan Seifert)++ | src/core/Hash.pm: Bring back classify-list |
|||
jnthn | \o/ | 19:32 | |
dalek | line-Perl5/glr: 8691707 | (Stefan Seifert)++ | / (4 files): Adjust to the post GLR world |
19:33 | |
line-Perl5/glr: fde9468 | (Stefan Seifert)++ | lib/Inline/Perl5.pm6: Seem to need a sink() on Perl5Parent now as well |
|||
nine | The only failing test in Inline::Perl5 is the one requiring File::Temp :) | ||
19:34
beastd joined,
espadrine_ joined
|
|||
nine | jnthn: if you deem my pairs implementation sane, I can have a look at the other iterators | 19:34 | |
19:35
sjn_phone left
|
|||
jnthn | nine: It's wrong, for a subtle reason | 19:36 | |
A class is not a closure | |||
So the references in the class to $storage and $class won't work out | 19:37 | ||
(If you were to iterate two typed hashes at the same time, for example) | |||
So they need to be declared in the iterator class | 19:38 | ||
nine | Darn again | ||
jnthn | And set in its new | ||
Other than that, it looks good | |||
nine | Can I just use hash.WHAT there instead of $class? | 19:40 | |
Or is there another way to get to the role's $?CLASS? | |||
jnthn | I'd pass it in, otherwise one day somebody does a mixin to a typed hash and then sends us a bug report... | 19:42 | |
nine | Ah man, I'm just too stupid. Of course I can control the caller of my constructor. | 19:43 | |
19:49
Begi joined
|
|||
dalek | kudo/glr: 4cfb0ff | jnthn++ | src/core/List.pm: Get infix:<X> back in shape. Also made it work on iterables, so it can potentially use less memory. Can probably further simplify it now that there's less flattening. |
19:49 | |
Begi | m: my @a = 1, 2, 3; say @a.infinite; #Should return False ? | 19:51 | |
camelia | rakudo-moar 98df93: OUTPUT«False» | ||
Begi | Oups, I haven't use the updated version. Sorry | 19:52 | |
19:54
[TuxCM] left
19:58
virtualsue left
19:59
yqt joined
|
|||
FROGGS | jnthn: since HLL's HOW is a KnowHOW, it is a stub, right? like Perl6::Metamodel::PackageHOW is a stub? | 19:59 | |
jnthn | FROGGS: Yes | ||
That's the idea | |||
FROGGS | k | ||
then I have an idea | 20:00 | ||
dalek | kudo/glr: bd5fbb4 | jnthn++ | src/core/Range.pm: Toss code slowly being moved into iterator. |
||
kudo/glr: 55f2deb | jnthn++ | src/core/Range.pm: Add missing Range.Str. |
|||
20:02
zakharyas joined
|
|||
FROGGS | yay, simple fix is simple :o) | 20:03 | |
20:06
kaare_ left
|
|||
dalek | kudo/glr: 098932b | jnthn++ | src/core/List.pm: Make .elems on a lazy list fail. |
20:06 | |
kudo/glr: 4c09814 | jnthn++ | src/core/ (8 files): s/X::Cannot::Infinite/X::Cannot::Lazy/ To get the language straightened out. Tweak the actual message too. |
|||
ast/glr: e2692a8 | jnthn++ | S (3 files): Chase X::Cannot::Infinite -> X::Cannot::Lazy. |
20:07 | ||
jnthn | FROGGS: \o/ | ||
20:12
llfourn joined
|
|||
dalek | kudo/nom: 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. |
20:14 | |
20:15
Begi left
|
|||
dalek | kudo/glr: 74a9c35 | (Stefan Seifert)++ | src/core/Hash.pm: Fix TypedHash.pairs problems noted by jnthn++ jnthn> A class is not a closure jnthn> So the references in the class to $storage and $class won't work out jnthn> (If you were to iterate two typed hashes at the same time, for example) jnthn> So they need to be declared in the iterator class |
20:17 | |
nine | jnthn: better? ^^^ | ||
20:17
llfourn left
20:18
bin_005 left
|
|||
jnthn | nine: Looks so...I presume it works? :) | 20:19 | |
But it does at least look correct :) | |||
nine | jnthn: enough to get Inline::Perl5's tests going | ||
jnthn | cool | ||
20:20
diana_olhovik_ left
20:22
yqt left
|
|||
RabidGravy | should I be running the tests of my modules that exercise Array -> CArray -> Array on this stuff or is it premature? | 20:26 | |
nine | RabidGravy: Inline::Perl5 already works, so I'd just go for it | ||
dalek | kudo/glr: 95934a0 | jnthn++ | src/core/Seq.pm: Workaround for various gather/take bugs. This in theory shouldn't be needed, and in practice is needed. The reason probably lies deep in the bowels of code-gen, or deep in the bowels of the interaction between the handler stack and continuations. |
20:28 | |
jnthn | nine: Are you going to do the typed hash kv iterator, ooc? | 20:29 | |
The last test in S02-names-vars/signature.t blocks on that :) | 20:30 | ||
dalek | kudo/glr: feac38e | (Stefan Seifert)++ | src/core/Hash.pm: Implement TypedHash.keys |
20:31 | |
nine | jnthn: this an answer? ^^^ | ||
jnthn | Well, it shows the trajectory is right, even if not the position... :) | 20:32 | |
nine | I'm going in the order S09-hashes/objecthash.t requires | ||
jnthn | aha, ok :) | ||
m: my @a; @a[2] = 42; say @a[0]:exists; | 20:33 | ||
camelia | rakudo-moar 98df93: OUTPUT«False» | ||
nine | Ok, but I really see no need for a values iterator. The one from EnumMap should do just fine. | 20:34 | |
jnthn | m: my @a; @a[2] = 42; say @a.grep({ say nqp::iscont($_) }); | ||
camelia | rakudo-moar 98df93: OUTPUT«===============================================================================The use of nqp::operations has been deprecated for non-CORE code. Pleasechange your code to not use these non-portable functions. If you really wantto keep using nqp:…» | ||
jnthn | m: use nqp; my @a; @a[2] = 42; say @a.grep({ say nqp::iscont($_) }); | ||
camelia | rakudo-moar 98df93: OUTPUT«001(Any) (Any) 42» | ||
jnthn | nine: +1 | ||
dalek | kudo/glr: d733134 | (Stefan Seifert)++ | src/core/Hash.pm: Inherit the TypedHash.values iterator from EnumMap There's no difference between EnumMap/Hash and TypedHash for .values |
20:35 | |
kudo/glr: 24f0757 | jnthn++ | src/core/List.pm: Fix iterating arrays with holes. |
20:39 | ||
20:40
yqt joined
|
|||
nine | t/spec/S02-names-vars/signature.t ............................. ok | 20:42 | |
20:42
bin_005 joined
|
|||
FROGGS | nine++ I guess | 20:42 | |
dalek | kudo/glr: 2d98c62 | (Stefan Seifert)++ | src/core/Hash.pm: Implement TypedHash.kv |
20:43 | |
ast/glr: 8103ae4 | jnthn++ | S02-types/array_extending.t: This needs a flat. |
|||
ast/glr: ff190ce | jnthn++ | S02-types/array_ref.t: Correct test for new flattening semantics. Add a flat, and fix [[1]] which runs into the single value rule. |
|||
jnthn | nine++ | ||
nine | This is pure fun :) | ||
Alas I better join my girlfriend on the terrace and start winding down. | 20:45 | ||
dalek | ast/glr: bb63a50 | jnthn++ | S02-types/assigning-refs.t: More fixes for flattening/single arg rule. |
20:46 | |
jnthn | :) | ||
nine: Thanks for the commits! | |||
jnthn is finding GLR much more fun now others are helping with it :) | |||
20:47
ssqq joined
|
|||
tadzik | oh, it's like nom all over again :) | 20:47 | |
FROGGS | or like getting moar parse/run the setting :o) | 20:48 | |
ssqq | p6: 'a' ~~ / \w && <!alpha> / | 20:49 | |
camelia | ( no output ) | ||
nine | But probably with quicker progress :) | ||
dalek | ast/glr: f7e41c5 | (Stefan Seifert)++ | S09-hashes/objecthash.t: .list needed before indexing Seq |
20:51 | |
nine | With that ^^^ t/spec/S09-hashes/objecthash.rakudo.moar ...................... ok | ||
And now I'm really off :) | |||
ssqq | if matched sth but need remove some rule, How to use it? / <match-rule> && <!remove_rule> / could not work | 20:52 | |
20:52
llfourn joined
20:54
zakharyas left
|
|||
ssqq | token name { \w+ }; token reserved { < if when > }; say('if' ~~ / <name> && <!reserved> /).Str | 20:55 | |
p6: token name { \w+ }; token reserved { < if when > }; say('if' ~~ / <name> && <!reserved> /).Str | |||
camelia | rakudo-moar 98df93: OUTPUT«Potential difficulties: Useless declaration of a has-scoped method in mainline (did you mean 'my token name'?) at /tmp/tmpfile:1 ------> 3token 7⏏5name { \w+ }; token reserved { < if when Useless declaration of a has-scoped me…» | ||
jnthn | ssqq: If you use && the second thing has to match as many chars as the first | 20:56 | |
ssqq | p6: my token name { \w+ }; my token reserved { < if when > }; say('if' ~~ / <name> && <!reserved> /).Str | ||
camelia | rakudo-moar 98df93: OUTPUT«Nil» | ||
jnthn | YOu just one <!reserved> <name> | ||
s/one/want/ | |||
(! implies zero-width assertion) | |||
ssqq | p6: my token name { \w+ }; my token reserved { < if when > }; say('if' ~~ / <!reserved> && <name> /).Str | ||
camelia | rakudo-moar 98df93: OUTPUT«Nil» | ||
ssqq | p6: my token name { \w+ }; my token reserved { < if when > }; say('if' ~~ / <name> /).Str | 20:57 | |
camelia | rakudo-moar 98df93: OUTPUT«「if」 name => 「if」» | ||
hoelzro | jnthn: is the recommended way to help just to spectest on glr and see what's breaking? | ||
jnthn | hoelzro: yes | ||
20:57
llfourn left
|
|||
hoelzro | alright, that makes that easy =) | 20:57 | |
dalek | kudo/glr: 6d3c8e0 | jnthn++ | src/core/Array.pm: Re-instate BIND-POS in Array. |
||
ssqq | p6: my token name { \w+ }; my token reserved { < if when > }; say('unless' ~~ / <!reserved> && <name> /).Str | ||
camelia | rakudo-moar 98df93: OUTPUT«Nil» | ||
jnthn | ssqq: You don't need && | 20:58 | |
ssqq | p6: my token name { \w+ }; my token reserved { < if when > }; say('unless' ~~ / <!reserved> <name> /).Str | ||
camelia | rakudo-moar 98df93: OUTPUT«「unless」 name => 「unless」» | ||
20:58
kst`` is now known as kst
20:59
skids left
|
|||
jnthn | hoelzro: You may want to set ulimits and stuff; there's still the odd hang roaming around, and some of them have allocated memory at a wild rate. :) | 20:59 | |
ssqq | jnthn: what use of &&? I could not think what use of it | ||
hoelzro | thanks for the warning! | ||
jnthn | ssqq: When you want to check that a second thing matches exactly the same set of things as the first. | 21:00 | |
ssqq | p6: my token name { \w+ }; my token reserved { < if when > }; say('unless' ~~ / \w+ && <name> /).Str | ||
camelia | rakudo-moar 98df93: OUTPUT«「unless」 name => 「unless」» | ||
jnthn | ssqq: And it matters that they match the same number of chars | ||
21:01
darutoko left
|
|||
ssqq | jnthn: thanks a lots | 21:01 | |
jnthn | Welcome :) | 21:02 | |
hoelzro: The bag/set/mix and their hashy forms may not be overly bad to attack | 21:03 | ||
21:03
bin_005 left
|
|||
jnthn | hoelzro: But pick what you feel like :) | 21:04 | |
21:04
ssqq left
|
|||
hoelzro | will do =) | 21:05 | |
dalek | kudo/glr: 051c59d | jnthn++ | src/core/Array.pm: Re-instate Array's DELETE-POS. |
||
21:07
espadrine_ left
|
|||
FROGGS | if $simple.rxtype eq 'literal' && $simple.rxtype ne 'ignorecase' && !$qast.negate { <--- that either does not make much sense or I am very sleepy | 21:09 | |
21:10
Ice_Strike joined,
Ice_Strike left
|
|||
FROGGS | probably a copy&pasto | 21:11 | |
jnthn | FROGGS: I'd bet the second rxtype should be subtype | 21:14 | |
21:14
bin_005 joined
|
|||
FROGGS | aye | 21:14 | |
and btw I think we need ops like nqp::uc_i and nqp::lc_i that work on ords | 21:16 | ||
21:17
ChoHag left
|
|||
FROGGS | and perhaps make Regex.subtype a bitmask | 21:17 | |
dalek | ast/glr: a90201d | jnthn++ | S32-list/ (2 files): Update to compare same type. |
21:18 | |
jnthn | The trouble is, one code point doesn't always upper/lower case to one codepoint | ||
FROGGS | hmmm | 21:19 | |
jnthn | I think we're meant to do ignorecase in terms of case folding though, not lc | 21:22 | |
FROGGS | I'm not sure I understand that | 21:23 | |
dalek | kudo/glr: ec45d1a | jnthn++ | src/core/List.pm: Try to get combinations/permutations working. They don't quite seem to do the right thing, alas. |
||
jnthn | Unicode defines uppercase, lowercase, titlecaae, and foldcase | ||
FROGGS | foldcase... | 21:24 | |
I'll need to read more about that | |||
...tomorrowish | |||
for now I am happy to pass along the information about ignorance to the NFA... :o) | |||
jnthn | :) | 21:26 | |
Yeah, I think I've done enough for today also | |||
Time to let the US and Asian shifts take over :) | 21:27 | ||
FROGGS | *g* | ||
gnight | |||
jnthn | ooh, not to forget Australasia.. | ||
:) | |||
'night | |||
hoelzro | Australasia: good album | 21:28 | |
21:28
jjido joined
|
|||
hoelzro | good night jnthn, FROGGS | 21:28 | |
21:36
muraiki left
21:39
TEttinger joined
|
|||
RabidGravy | erp | 21:43 | |
timotimo | o/ | 21:46 | |
21:51
yqt left
21:54
smls joined
|
|||
RabidGravy | 80 days of binge programming I think I may be getting a headache | 21:56 | |
colomon | This call only converts base-2 strings to numbers; value 01000001 is of type Int+{orig-string[Str]}, so cannot be converted! | 21:57 | |
hmmm | 21:58 | ||
timotimo | now, if panda would work ... :) | ||
so someone's doing .WHAT === Int rather than ~~ Int? | 21:59 | ||
smls | i.imgur.com/xd3FKqH.png -- I continued tweaking the perl6.org mockup I started a few months ago. Made the big backgrounds less dark (based on feedback), and added shading, contours, and texturing. What do you think? | ||
timotimo | i like the way it's going, but i'd prefer the texturing to be more subtle | 22:01 | |
smls | maybe | 22:03 | |
timotimo | neato, my animated_blocks.p6 now runs unmodified on glr | 22:06 | |
tadzik | smls: ooh, I like it | ||
timotimo | t.h8.lv/p6bench/profile_animated_blocks_glr.html | 22:08 | |
RabidGravy | smls, purty. Not partularly a fan of plum but it works ;-) | ||
22:08
beastd left
|
|||
timotimo | ^- a happy-ning lack of reify and gimme calls | 22:09 | |
very annoyingly, the number of gen2 roots for the gc keeps increasing | |||
i didn't want to check, but i assume it'll grow without bound :( | 22:10 | ||
22:20
bin_005 left
22:22
zgrep joined
|
|||
dalek | kudo-star-daily: dee4f3c | coke++ | log/MoarVM- (5 files): today (automated commit) |
22:26 | |
22:29
jferrero left
22:32
smls_ joined,
smls left
22:35
jferrero joined
22:39
spider-mario left
22:44
jjido left
22:54
llfourn joined,
Psyche^ joined
22:58
llfourn left,
Psyche^_ left
|
|||
RabidGravy | bed I think | 22:59 | |
23:00
skids joined
23:04
RabidGravy left
23:13
coffee` left
23:28
ggoebel left
23:49
smls_ left
|