»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:10 grondilu left
BenGoldberg .ping 00:14
yoleaux There is no ping command; nor can this be construed as a response.
preflex yoleaux: you have 1 new message. '/msg preflex messages' to read it. 00:15
00:22 benabik joined 00:26 btyler left 00:38 ggoebel2 joined, benabik left 00:46 benabik joined 00:51 btyler joined 01:15 xinming left 01:16 btyler left 01:17 xinming joined 01:22 cooper joined 01:24 FROGGS left 01:37 FROGGS joined 01:40 benabik left 01:41 benabik joined 01:59 colomon joined 02:03 orafu left, orafu joined 02:04 Ben_Goldberg joined 02:06 BenGoldberg left
Ben_Goldberg .ping 02:19
yoleaux There is no ping command; nor can this be construed as a response.
02:50 xinming left 02:51 omeranon left 02:54 xinming joined 03:03 FROGGS left 03:10 colomon left 03:11 crab2313 joined
diakopter .response 03:12
.construe
.ping
yoleaux There is no ping command; nor can this be construed as a response.
diakopter .respond
.pong
03:14 jaldhar joined 03:15 colomon joined 03:18 fridim_ joined 03:22 crab2313 left 03:27 jaldhar left
diakopter colomon: hi 03:28
colomon \o
03:30 preflex_ joined, ChanServ sets mode: +v preflex_ 03:31 jaldhar joined, preflex left 03:32 preflex_ is now known as preflex 03:47 colomon left
lizmat good *, Perl6! 03:54
03:57 btyler joined 03:58 census left, raiph joined
dalek ecs: 683b532 | (Elizabeth Mattijsen)++ | S04-control.pod:
Eradicate "will start" from spec: it is now done with once {}
04:08
ecs: f4d058a | (Elizabeth Mattijsen)++ | S32-setting-library/Containers.pod:
Spec the already existing .classify/.categorize on hashes
04:16
04:30 raiph left
dalek ecs: 9211e64 | (Elizabeth Mattijsen)++ | S32-setting-library/Containers.pod:
Spec multi-level classification/categorization
04:36
04:41 fridim_ left
dalek ecs: b4bb8b6 | (Elizabeth Mattijsen)++ | S32-setting-library/Containers.pod:
Spec a :bind named parameter for .classify/.categorize
04:42
ecs: 147122a | (Elizabeth Mattijsen)++ | S32-setting-library/Containers.pod:
Spec an optional :bind parameter to List/Hash.push
04:49
TimToady github.com/perl6/roast/commit/2baf5cffdf is incorrect, it's supposed to be substituting the KeyBag implementation for the Hash implementation 04:50
'of' implies that each hash entry would return a KeyBag
which isn't what we want
lizmat: ^^
lizmat next commit I reverted it and fudged it for now 04:51
:-)
TimToady okay, still backlogging :)
okay, I see it now 04:52
lizmat r: my %h is KeyBag # fudging the test was needed for now 04:55
camelia rakudo 35818f: OUTPUT«===SORRY!===␤Variable trait 'is KeyBag' has not yet been implemented.␤Did you mean 'of KeyBag'?␤at /tmp/LPCT2YXXtx:1␤------> ␤»
TimToady that's sort of a misguided DYM 04:56
s/misguided/misguiding/ 04:57
lizmat you're right
felt good when I was misguided though, but no need for further misguiding is indeed necessary
TimToady a :bind option seems smelly to me, but I don't have a better idea yet 04:58
dalek kudo/nom: 73a8420 | (Elizabeth Mattijsen)++ | src/core/Variable.pm:
Remove misguiding suggestion in temporary death message for "is TypeObject"
lizmat well, maybe it should be :BIND, as is used elsewhere in the code, e.g with hash slices 04:59
to make it stand out more? 05:00
(although the use of :BIND there is not visible, but added by the parser, afaik)
TimToady I'm not sure how much we should be encouraging people to bind into arrays
sorta violates the array contract if they bind a non-container 05:01
lizmat you mean like @a[42] := %h ?
TimToady I mean like @a[42] = 43; 05:02
:= 43
r: my @a; @a[0] := 43; $a[0]++
camelia rakudo 35818f: OUTPUT«===SORRY!===␤Variable '$a' is not declared. Did you mean '@a'?␤at /tmp/3wTQsYgQed:1␤------> my @a; @a[0] := 43; $a[0]++⏏<EOL>␤ expecting any of:␤ postfix␤ statement end␤ statement modifier␤ stateme…
TimToady r: my @a; @a[0] := 43; @a[0]++
camelia rakudo 35818f: OUTPUT«Cannot modify an immutable value␤ in sub postfix:<++> at src/gen/CORE.setting:3770␤ in sub postfix:<++> at src/gen/CORE.setting:2113␤ in block at /tmp/4tixKSxCzk:1␤␤»
TimToady and if you're wanting to push immutables, it probably means you wanted a list rather than an array 05:03
lizmat to me, that feels like a case of "doctor, if I push here, it hurts"
TimToady well, but there's no point in crufting up the API for things we want to discourage
and it feels like cruft to me
05:03 crab2313 joined
TimToady would want to see a use case first 05:04
lizmat maybe it should be an attribute of an array / hash
05:04 Ben_Goldberg left
lizmat well, the categorization problem of colomon would be a use case to me 05:04
pretty sure that memory usage would have with :bind
*half 05:05
TimToady could be
lizmat I have been a heavy user of Data::Alias at $work 05:06
at one point, it was the only thing that allowed us to grow within the given metal parameters 05:07
or should I say "constraints of the hardware" 05:08
TimToady it's possible that :bind should be how it works all the time for things like .classify 05:10
lizmat yes, I've considered that
TimToady it's more in the immutable value mindset
lizmat which would mean, we probably need to have a named parameter to *not* bind
TimToady you don't generally return such a hash with the intent of later modifying it 05:11
lizmat indeed
TimToady well, just make sure you're feeding it containers
05:12 xenoterracide left
TimToady my $a = [<a b c>]; $a.list[1] = 'B'; say $a 05:12
nr: my $a = [<a b c>]; $a.list[1] = 'B'; say $a
camelia rakudo 35818f, niecza v24-88-g1f87209: OUTPUT«a B c␤»
TimToady .list is returning the actual containers, so a binding op would still end up with containers 05:13
anyway, I still don't see that we need an option 05:14
lizmat but making classify / categorize bind by default, would make sense ?
TimToady seems so to me
TimToady is not, of course, running a full simulation in his head at the moment... 05:15
TimToady just knows that 'adverbs' usually means we need to think a little more 05:16
especially when the same adverb starts showing up in multiple places
lizmat will try to keep that in mind :-) 05:17
TimToady we might or might not need a rawpush or rawplan primitive down deep to save having to write .[$i] := $thing 05:18
or .{$k} := $thing 05:19
lizmat why call that rawpush, instead of bindpush ? isn't the latter more descriptive in what it does?
TimToady sure, names are always negotiable, except when they aren't :) 05:20
lizmat both examples you give, are internally implemented with a :BIND parameter to the postcircumfix candidate
at least in rakudo :-) 05:21
TimToady "might or might not" :)
TimToady is really good at using a lot of words to claim nothing
moritz \o 05:23
dalek kudo/nom: 1f1076a | moritz++ | src/Perl6/World.nqp:
Do not complain when exporting exactly the same symbol twice

fixes RT #118965
05:24
ecs: f670ef1 | (Elizabeth Mattijsen)++ | S32-setting-library/Containers.pod:
Remove :bind named parameter

Instead classify / categorize may generate immutable data structures.
lizmat +Please note that for performance reasons, an implementation is free to C<bind> 05:25
+values to the resulting arrays. So you should consider these arrays to be
+immutable.
is that sufficiently handwavy :-) 05:26
r: my %h is what it is # very LTA error message :-) 05:28
camelia rakudo 73a842: OUTPUT«===SORRY!===␤Cannot call 'trait_mod:<is>'; none of these signatures match:␤:(Mu:U $child, Mu:U $parent)␤:(Mu:U $type, :rw(:$rw)!)␤:(Mu:U $type, :nativesize(:$nativesize)!)␤:(Mu:U $type, :unsigned(:$unsigned)!)␤:(Mu:U $type, :hidden(:$hidden)!)␤:(M…
lizmat moritz o/ 05:29
TimToady we could probably put a final candidate that simply reports "no such trait as 'foo'" 05:30
dalek kudo/nom: 909a662 | (Elizabeth Mattijsen)++ | src/core/Variable.pm:
Variable trait "is start" is no more
05:31
lizmat r: my $a will foo # like this
camelia rakudo 73a842: OUTPUT«===SORRY!===␤Missing block␤at /tmp/dtTEtl9tt0:1␤------> my $a will foo # like this⏏<EOL>␤ expecting any of:␤ scoped declarator␤ parameterized block␤»
lizmat r: my $a will foo {} # like this
camelia rakudo 73a842: OUTPUT«===SORRY!===␤You can not 'will foo' in a variable declaration␤at /tmp/wDtY4cp7sy:1␤------> ␤» 05:32
TimToady s/'can not'/cannot/
but it's still not quite right...'cannot say' maybe 05:33
dalek kudo/nom: c0e8db6 | (Elizabeth Mattijsen)++ | src/core/Variable.pm:
Tweaks in error message
05:34
TimToady "I don't know how I will 'foo'" :)
lizmat I don't know how foo I will 05:39
05:40 snoopy left 05:42 kaare_ joined
dalek ast: 8da77bb | moritz++ | S11-modules/import.t:
RT #118965 - multiple overlapping imports should not bomb
05:43
kudo/nom: fb836dc | (Elizabeth Mattijsen)++ | src/core/Variable.pm:
Added fallbacks for "is foo" and "of foo" in variable declarations
05:48
moritz ok 30 - took too long 15 05:53
somehow that reads... wrong
lizmat suggestions?
moritz 'finished in time'?
fwiw several of those tests fail for me (on a slow machine) 05:54
lizmat and all with 20 seconds, right ?
or with different values ? 05:55
moritz my $toolong = 5
that's what's in the test file
lizmat but it should show how long they actually took
[20s] ?
moritz ok 3 - [21s] discard server and client 05:56
lizmat yup, that looks like a 20s timeout + 1 actual second of processing
moritz but if it runs into a timeout, wouldn't the actual test fail? 05:57
lizmat well, that's the odd thing, they don't
so maybe that test is bogus also
or maybe we're just suffering from buffering
and the watchdog makes sure we get the result after 20 seconds 05:58
I've been recently been bitten by buffering of TAP ouutput
which indicated it was hanging, but showed the wrong test
moritz lizmat: do the tests pass for you? 05:59
lizmat except for 7 timeout fails, yes 06:00
have been failing since I put them in
timeouts have been there for as long as I've been doing spectests, it feels to me
they just were never visible before I added the "took too long" tests 06:01
06:05 btyler left
dalek ast: d05f498 | (Elizabeth Mattijsen)++ | S32-io/IO-Socket-INET.t:
Made 'took too long" test comments a bit more understandable

Suggested by moritz++
06:07
06:24 kingbeast left 06:26 wk joined, wk is now known as Guest4624 06:42 rindolf joined 06:43 raiph joined
raiph www.reddit.com/r/programming/commen...d_haskell/ 06:43
06:45 dark_energy joined 06:48 rindolf left 07:16 risou_awy is now known as risou 07:36 ecocode joined 07:53 grondilu joined, crab2313 left
grondilu rn: say .perl given Set.new: <foo>.set.item, <foo bar>.set.item; 07:59
camelia niecza v24-88-g1f87209: OUTPUT«Unhandled exception: Unable to resolve method set in type Str␤ at /tmp/7KS_GoBMVT line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4579 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4580 (module-CORE @ 576) ␤ at /home/p6…
..rakudo fb836d: OUTPUT«set("foo", "bar")␤»
grondilu rn: say .perl given Set.new: set(<foo>).item, set(<foo bar>)).item; 08:00
camelia rakudo fb836d: OUTPUT«===SORRY!===␤Unexpected closing bracket␤at /tmp/KP8mES9Kup:1␤------> Set.new: set(<foo>).item, set(<foo bar>)⏏).item;␤»
..niecza v24-88-g1f87209: OUTPUT«===SORRY!===␤␤Unexpected closing bracket at /tmp/bYMZJg64ZW line 1:␤------> Set.new: set(<foo>).item, set(<foo bar>)⏏).item;␤␤Parse failed␤␤»
grondilu rn: say .perl given Set.new: set(<foo>).item, set(<foo bar>).item;
camelia niecza v24-88-g1f87209: OUTPUT«Set.new("foo", "foo bar")␤»
..rakudo fb836d: OUTPUT«set("foo", "bar")␤»
grondilu rn: say set(<foo bar>).perl 08:01
camelia niecza v24-88-g1f87209: OUTPUT«Set.new("foo", "bar")␤»
..rakudo fb836d: OUTPUT«set("foo", "bar")␤»
08:04 dmol joined
dalek kudo/nom: 0d3c78c | (Elizabeth Mattijsen)++ | src/core/Exception.pm:
Add X::Comp::Trait exception
08:11
kudo/nom: 296da02 | (Elizabeth Mattijsen)++ | src/core/Variable.pm:
Make faulty variable trait declarations nicer using new Exception

Still wondering what would be needed to actually show the line of code like some other errors do.
08:36 SamuraiJack__ joined 08:37 raiph left
masak good morning, #perl6 08:41
08:43 spider-mario joined
masak [backlog] TimToady: making Str the base class for all numeric things is how Moose does it, fwiw. you probably know that already. 08:45
08:52 SamuraiJack__ left, ecocode left
masak (but I think it is a type-system detail that fits much more effortlessly in the emergent type system that Perl 5 already has. I remember seeing the Moose type hierarchy for the first time, noting that Int <: Num <: Str, and nodding, thinking "yeah, that makes sense". for Perl 5.) 09:03
09:13 rindolf joined 09:38 mtk left 09:46 cognominal joined 09:47 dark_energy left
woolfy1 Damian Conway about Perl 5 and Perl 6 and he also mentions MoarVM: www.youtube.com/watch?v=MxcVjbyKzQA 09:50
nwc10 the one I'd really like to know if there is a video of is www.oscon.com/oscon2013/public/sche...tail/28774 09:56
masak woolfy1! \o/ 09:58
woolfy1 \o
masak is "ahead of time" a new term for non-JIT compilation? 09:59
nwc10 it's not "new" to me.
masak then I'm just behind the curve on that one.
masak .oO( compilation is just heavily cached interpretation )
nwc10 and it's the traditional compiler. For the past fourever^H^H^H^H+ decades
masak in other news, I keep studying category theory, and it keeps (slowly) blowing my noodle. 10:00
category theory is the "The Dude" of mathematics. 10:01
10:01 mtk joined
masak here's what I learned yesterday at the airport: 10:04
you know state machines? they're essentially graphs with nodes (states) and edges (transitions).
a graph is eminently understandable as a category, so CT comes into play here. 10:05
now, there's an intuitive sense in which one state machine B can be said to be "compatible" with another state machine A. we can say that when B always acts like A, except B can have more detailed states that A doesn't capture. but whenever A makes a state transition, B makes a similar one. 10:06
10:06 pupoque_ joined
masak (so where A might have states <s1 s2 s3>, B might have states, say, <s1 s2a s2b s2c s3a s3b>) 10:07
now, this notion of B being "compatible" with A is exactly what CT's notion of "natural transformation" captures. 10:08
a "natural transformation" maps one category to another, all the while "respecting" enough structure, enough of the objects/arrows (nodes/edges, states/transitions, whatever).
10:08 domidumont joined
masak I also realized that the closest most programmers ever get to CT is learning about generic types. (like List<Employee>) but it shows up in a lot of other places too, especially programming language semantics. 10:10
I'm starting to see quite a bit of category theory in Git.
10:32 crab2313 joined, pmurias joined
dalek rlito: 1c0afa1 | (Flavio S. Glock)++ | / (5 files):
Perlito5 - cleanup source code, tests
10:37
10:38 domidumont left
dalek kudo-js: 11bfb45 | (Pawel Murias)++ | run (2 files):
Set WHAT on a STable when creating a type object, pass test 72.
10:50
masak pmurias++ 10:56
dalek rlito: 9a6dce0 | (Flavio S. Glock)++ | / (4 files):
Perlito5 - parser - cleanup
11:02
11:05 colomon joined
tadzik oh noes! irclog.perlgeek.de/ 11:09
moritz: ^
timotimo r: say "hello 1 world -2".comb(/[a..z]+|'-'?<digit>+/) 11:10
camelia rakudo 296da0: OUTPUT«1 -2␤»
timotimo r: say "hello 1 world -2".comb(/[a..z]+/)
camelia rakudo 296da0: OUTPUT«␤»
timotimo huh?
oh!
...
JimmyZ tadzik: tina.perlgeek.de/ 11:12
tadzik ah, thanks JimmyZ :)
masak that's a workaround, though. not a fix. 11:15
timotimo: no, [] doesn't mean "character class" any more. 11:16
timotimo i'm looking at pod_string and i think make-ing each character into a string and then joining them is very wasetful
masak std: /[a..z]+/
timotimo masak: that's the "oh!" part ;)
camelia std c2215f0: OUTPUT«ok 00:00 42m␤»
masak hrm.
std: /[a-z]+/
camelia std c2215f0: OUTPUT«===SORRY!===␤Invalid regex metacharacter (must be quoted to match literally) at /tmp/8pRVjz778p line 1:␤------> /[a-⏏z]+/␤Potential difficulties:␤ [a-z] appears to be an old-school character class; please use <[a..z]> if you mean…
masak timotimo: yes, probably very wasteful. 11:17
timotimo problematically, a..z has meaning inside [ ] in new regex syntax, too, so there's no reason to warn
masak timotimo: set up a small microbenchmark to find out how wasteful! :)
timotimo i'm looking at text::emotion::scorer right now. i've put the dictionary into a pod block now 11:18
i'll try with a heredoc for comparison.
it's not quite the same, because before trying to match a pod_string_character, it'll try to find a formattingcode or braces.
although that could be made faster with a few lookahead assertions.
maybe even letting it do LTM 11:19
moritz tadzik: thanks. Seems to have been a caching problem, 'cause it went away after I removed all the caches 11:20
timotimo masak: did you notice i've made a pullrequest for druid? :) 11:23
11:23 isBEKaml joined
timotimo oh, Text::Emotion::Scorer has a dictionary with multi-part-words in it, but it doesn't seem to ever try to match them 11:25
11:30 isBEKaml left
masak timotimo: no. looking. 11:30
timotimo the text::emotion::scorer benchmark i just came up with shows 18s for pod, 6s for heredoc 11:31
masak ooh! timotimo++ # github.com/masak/druid/pull/3 11:32
seems I'll need to pull this one manually, though.
s/pull/merge/
timotimo because you had done stuff after ng-compat in the master branch? 11:33
masak prolly.
I'll fetch and rebase.
timotimo :)
tadzik masak: git config --global alias.purr 'pull --rebase' 11:35
masak conflict.
investigating.
tadzik: all very good, but not relevant for rebasing a different branch on someone else's fork into your own master. :)
ah, I'm not conflicting with timo. I'm conflicting with myself :) 11:37
(and that's why github cannot merge straight away.)
tadzik masak: I know, I know. It just seemed appropriate :)
11:40 rindolf left
masak lots of conflicts. 11:40
but so far none fatal, so to speak.
timotimo: is github.com/timo/druid/commit/0db7f...de89#L0R49 a forgotten debug print statement? it creates a conflict for me. 11:41
removing it for now.
11:46 sidus joined
masak timotimo++ # thanks! 11:46
11:48 dmol left
timotimo you're welcome :) 11:52
just adding lookahead assertions to the alteration in pod_string_character gets me down to 14 instead of 18 seconds 11:53
11:53 logie joined
timotimo well, 14.5 11:53
11:53 colomon left 11:58 logie left 12:01 pupoque_ left
timotimo turning one of the two alterations into an LTM gets me down to 12.9, that's much better than 18 ... 12:01
tadzik whoa :) 12:02
timotimo except i broke something
tadzik timotimo++
timotimo namely formatting codes. 12:03
i just broke formatting codes.
oh yeah
"before" isn't the right word to do a lookahead ...
moritz it isn't? 12:04
tadzik lookbefore, lookafter 12:05
maybe <?behind> and <?ahead> would be nice to have
moritz DBIish>git pull 12:08
Updating 7903d63..0429089
{lib/DBDish => lib3434/DBDish3535}/mysql.pm6 | 1 +
WTF?
timotimo o_O 12:09
Stage parse : 227.399 - my laptop is not a fun development platform at all.
oh, 83 degC, what fun. 12:10
dalek Iish: 0a0c491 | moritz++ | lib (2 files):
fix location DBDish::mysql
tadzik each revision gets its own directory :)
moritz and I wondered why DBIish failed its tests 12:13
12:19 pupoque_ joined 12:20 preflex_ joined, ChanServ sets mode: +v preflex_ 12:21 preflex left, kaare_ left, preflex_ is now known as preflex, kaare_ joined 12:22 ingyfoo left 12:23 ingy joined 12:25 ilbot6 joined 12:31 birdwindupbird joined
timotimo i'm thinking it should be faster to .substr $c.orig when encountering more than one consecutive pod_string_character that's "basic" 12:31
kind of like the nibbler does 12:32
i wonder if getting rid of "make ~$<char>" in that case would be helpful. 12:33
on the other hand, other users of pod_string_character probably rely on the .ast being a string sometimes
12:36 benabik left
timotimo nqp: my $foo := Nil; say(nqp::defined($foo)); 12:42
camelia nqp: OUTPUT«0␤»
timotimo nqp: say("foo bar!".substr(3, 4)) 12:44
camelia nqp: OUTPUT«Method 'substr' not found for invocant of class 'String'␤current instr.: '' pc 51 ((file unknown):40) (/tmp/lcZxMXg2uW:1)␤»
timotimo nqp: say(nqp::substr("foo bar!", 3, 4))
camelia nqp: OUTPUT« bar␤»
timotimo ok
12:44 hanekomu joined, hanekomu left 12:47 hanekomu joined
timotimo i have a prototype that builds "simple" characters as Nil and then substr's out larger chunks from the $/.CURSOR.orig 12:47
still wondering why my lookahead assertions made formatting codes break ... <?after [A..Z]['<'|'«']> <pod_formatting_code seemed totally correct to me :| 12:48
12:49 benabik joined
timotimo oh, darn it 12:50
i've done the same mistake twice?
12:54 xinming left 12:56 xinming joined 13:07 colomon joined
moritz <?before 13:08
<?after is the look-behind
timotimo hahahaha, someone quoted the lyrics to 'albi the racist dragon' in the pod spectests
it is?
... of course it is
moritz r: say 'abc' ~~ /<?before b> ./ 13:09
camelia rakudo 296da0: OUTPUT«「b」␤␤»
timotimo spectests are clean. i think i can pullrequest that. i'll do a few more thorough speed comparisons first (with S26-documentation.pod i suppose) 13:14
13:15 crab2313 left, vmspb joined
masak timotimo: I bet that was tadzik++ ;) 13:16
13:16 mdxi joined, mdxi left
timotimo flight of the conchords is a great show 13:16
masak telling <?before and <?after apart takes some time. it's probably like 'left' and 'right' -- they're symmetrical in a way that makes the naming arbitrary. 13:17
but even so, I believe they're good names for what they do.
13:18 crab2313 joined
masak fwiw, my mnemonic is "am I [not] [before|after] <regex>?" 13:18
timotimo that's the one i adopted now, too
masak (the '[not]' being for the <! cases)
timotimo the little heredoc vs pod block benchmark is (on my desktop now) 2.5 seconds vs 6.25 seconds
since the pod block could also contain formatting codes, i'm somewhat satisfied with that result. 13:19
13:19 PacoLinux joined
timotimo before my pod6_improvements branch was merged, it was quite a bit faster, though 13:21
not "quite a bit", it was a bit less than 2x slower than the heredoc when using pod 13:22
makes me a bit sad still
i wonder if it would be possible to trim Match objects in action methods. if you know you won't be accessing $<foo><bar><baz>[5]<quux><frob><yoink> from three rules up anyway, why not throw it away sooner? might make parsing take less memory... seems premature, though ... 13:24
13:26 vmspb left
masak you'll still need to return all the Match objects in the end. 13:26
13:26 rindolf joined
timotimo in the very end? 13:27
13:27 PacoLinux left
masak when the grammar parse succeeds, I mean. 13:28
moritz well, unless you don't capture stuff in the first place
timotimo what i'm thinking of isn't automatic, it's something you'd do manually
moritz but yes, IMHO that would be useful
fwiw the Perl 6 features FAQ long had "parse tree pruning" in it 13:29
timotimo i mean, the stmtlist token or its action (or any of its parent) probably don't care about a pod_string_character that's buried 10 layers deep, but it's still *there*
ah, cool
doesn't surprise me that i'm not the first one to think of that :P
13:29 rindolf left
timotimo could it, in theory, be as simple as calling $/.prune after you're done with that part of the match and you're convinced nobody above you will care about it? 13:30
perhaps it would be sane to have a $*PREVENT_PRUNE, too, though
13:39 pecastro_ joined 13:40 jferrero_ is now known as JoaquinFerrero 13:41 pupoque_ left 13:42 crab2313 left 13:48 dayangkun left
timotimo alas, formatting codes remain broken for some reason. 13:48
14:01 pupoque_ joined 14:14 btyler joined
timotimo nqp: my $foo; say($foo == Nil); 14:18
camelia nqp: OUTPUT«1␤»
timotimo nqp: my $foo; say($foo =:= Nil); 14:19
camelia nqp: OUTPUT«1␤»
timotimo nqp: my $foo := 0; say($foo == Nil);
camelia nqp: OUTPUT«1␤»
timotimo nqp: my $foo := 0; say($foo =:= Nil);
camelia nqp: OUTPUT«0␤»
timotimo mhm.
nqp: my $foo := 0; say($foo =:= Nil);
camelia nqp: OUTPUT«0␤»
timotimo nqp: my $foo := 0; say($foo !=:= Nil);
camelia nqp: OUTPUT«Confused at line 2, near "say($foo !"␤current instr.: 'panic' pc 14721 (src/stage2/gen/NQPHLL.pir:5232) (src/stage2/gen/NQPHLL.nqp:279)␤»
timotimo it appears the formatting codes were still parsed correctly, but stringified or skipped when creating the pod_string in my new code :| 14:21
apparently nqp::defined didn't do what i meant it to do?
who knows.
14:24 pupoque__ joined 14:25 ribasushi left
timotimo nope, it seems like the pod_string_frugal i made ate the > and the formattingcode won't find it any more :| 14:25
so the frugality doesn't help when it's one level down; interesting!
JimmyZ :-) 14:26
timotimo also annoying :(
14:27 pupoque_ left, ribasushi joined 14:31 FROGGS joined
dalek p: d5989ea | (Pawel Murias)++ | src/HLL/Compiler.nqp:
Fix --help in nqp.
14:34
p: 30d991e | (Pawel Murias)++ | / (2 files):
Fix nqp::setinvokespec on parrot. Add a test for it.
p: a6c22e1 | (Pawel Murias)++ | src/HLL/Compiler.nqp:
Merge remote-tracking branch 'origin/fix-help'
p: 3eca203 | (Pawel Murias)++ | / (2 files):
Merge remote-tracking branch 'origin/fix-set-invocation-spec'
masak yes, nested quantifiers are independent along the eagerness/frugality axis. probably a good thing, all things considered. :) 14:36
timotimo mhm
14:37 Psyche^ joined
dalek kudo-js: 526b8c0 | (Pawel Murias)++ | / (2 files):
Update nqp submodule. Add test 70 to run_tests.
14:37
14:37 xinming left
dalek rlito: 106ddcd | (Flavio S. Glock)++ | / (8 files):
Perlito5 - more for-loop variants
14:38
14:38 xinming joined 14:40 Psyche^_ left 14:41 PacoLinux joined
timotimo what operation would be replaced with nqp::assignunchecked by the optimizer? i'm trying my Int $a = something-that-returns-Int(); and it seems like the op that would be replaced is p6store; is p6store just "do type checking on the container and all that stuff"? 14:44
14:52 pupoque_ joined
timotimo for native containers it seems like it's already doing a bind, does that have an equivalent "no need to do type checks" version, too? 14:54
14:55 pupoque__ left, SamuraiJack__ joined 14:58 colomon left 15:00 mathw left
pmurias pmichaud: ping 15:03
pmichaud pmurias: pong 15:04
just catching up on a few things here :)
FROGGS hi pmichaud
pmichaud we can meet /privmsg or on chan, as you prefer. 15:05
masak pmichaud! \o/
pmichaud and good morning, #perl6
[Coke] hio 15:06
FROGGS pmichaud: we are right before getting panda+modules to work on rakudo@jvm, and almost starting to get moarvm bootstrap nqp
pmichaud FROGGS: yes, good. Even though I haven't been on IRC, I've been following commit logs and blog posts :) 15:07
FROGGS ahh, k :o) 15:08
15:08 colomon joined
FROGGS personally I didnt expect this state this early, I'd expected it would take one or two more months 15:08
masak we can slow down if you want... 15:09
:P
FROGGS hehe
no!!
dalek rlito: 95ebf21 | (Flavio S. Glock)++ | / (4 files):
Perlito5 - more for-loop variants
15:13
timotimo you can tell i've been working on pod stuff by the failing tests >_> 15:18
(only locally, of course!)
15:21 colomon left
tadzik someone put Flight of the Conchords in the spectests? Weird, who could that be? 15:21
timotimo++ # awesome work on pod 15:23
I was worried that I was the only person who can understand this code :P fortunately, you and moritz++ prove me wrong
GlitchMr n: gist.github.com/GlitchMr/6095148 15:24
camelia niecza v24-88-g1f87209: OUTPUT«ok 1/1␤Hello , world! True␤»
GlitchMr n: gist.github.com/GlitchMr/6095148
camelia niecza v24-88-g1f87209: OUTPUT«Hello , world!␤ok 1/1␤»
GlitchMr I still like this Niecza bug, even when it's a bug. 15:25
n: gist.github.com/GlitchMr/6095148 15:26
camelia niecza v24-88-g1f87209: OUTPUT«Hello , world!␤ok 1/1␤»
GlitchMr ok
benabik infix nothing? 15:27
GlitchMr Yeah, a bug.
TimToady std: sub infix:[] ($a,$b) { $a X $b }
camelia std c2215f0: OUTPUT«===SORRY!===␤Null operator is not allowed at /tmp/_3LqMHTrF0 line 1:␤------> sub infix:[]⏏ ($a,$b) { $a X $b }␤Parse failed␤FAILED 00:00 42m␤»
timotimo tadzik: don't call it awesome just yet. it may end up not working after all ;) 15:28
tadzik nonsense :)
timotimo but you *may* call my work awesome when i (if i?) manage to rewrite the pod parsing in the modular style i still haven't yet fully sketched out in my mind yet
GlitchMr Known bug, but still not fixed in Niecza :-).
tadzik well, the existing code has plenty of duplications
[Coke] makes some progress on getting the daily star run to use the latest nqp, rakudo, and modules. 15:29
tadzik but I think they're distinct enough, that trying to abstract common part from them may prove to be more trouble than it's worth
at least that was my conclusion when I was working at the code during gsoc
I may have been wrong, and/or my laziness made me biased :) 15:30
15:30 colomon joined
[Coke] (for the daily star run, I'll keep whatever the last declared version of parrot in star was. make sense?) 15:32
also killing the spectest run, since we're already doing that elsewhere. 15:33
15:33 SunilJoshi joined
timotimo i didn't see how to cover "keep spaces and newlines in this text, but also allow the parsing of sub-blocks" 15:34
but that might just be infamiliarity with the code.
15:35 risou is now known as risou_awy
TimToady decommuting from OSCON & 15:35
flussence timotimo: shouldn't that just be a matter of twiddling rules to use <ws> instead of <.ws>? 15:36
timotimo r: "foo" ~~ /$<foo>=[.+]/; say $<foo>.perl;
camelia rakudo 296da0: OUTPUT«Match.new(orig => "foo", from => 0, to => 3, ast => Any, list => ().list, hash => EnumMap.new())␤»
timotimo flussence: no, whitespace collapsing is done in some place some where. probably would be helpful to find it and figure it out properly.
flussence hrm
timotimo in Perl6::Pod::build_pod_string maybe? 15:38
[Coke] how to get the tag-#commits-sha output for our version from a git command? 15:40
timotimo git describe 15:41
newest formatting code stuff seems to be in working order now. at last! :)
15:41 SunilJoshi left
FROGGS [Coke]: put do a git pull first, to get the latest tags 15:43
15:44 PacoLinux left
FROGGS (not just git pull and then branchname) 15:44
15:45 colomon left
timotimo great, all of S26-documentation/*.t passes again 15:47
15:47 PacoLinux joined
tadzik aww yiss 15:47
FROGGS \o/
timotimo will check out the performance differences soon. 15:48
t/spec/S04-declarations/state.rakudo.parrot ..................... Dubious, test returned 1 (wstat 256, 0x100)
not sure what that is all about
15:48 sidus left, skids left
tadzik does it have any pod inside? 15:49
[Coke] FROGGS: ... and then what?
timotimo ===SORRY!===
You cannot say 'will start' in a variable declaration.
that breaks it.
FROGGS then git describe
[Coke] FROGGS++ 15:50
15:50 dmol joined 15:51 sidus joined
timotimo without a debug say every time a pod_string_character finds a character it should even be possible to benchmark ... :P 15:52
15:52 skids joined
[Coke] FROGGS: I assume a fresh git clone doesn't have to explicitly pull tags? 15:55
(as long as I only care if they are fresh immediately post-clone)
timotimo huh. no speed difference in parsing? that's weird. 15:56
it's still wasteful to have one match object per character inside pod. 15:57
[Coke] timotimo: isn't that fixed by making the rule grab more than one char at a time 16:00
?
surely we could grab a line at time?
16:03 logie joined
masak r: say (1..20).classify( * % 3 ).perl 16:06
camelia rakudo 296da0: OUTPUT«("1" => [1, 4, 7, 10, 13, 16, 19], "2" => [2, 5, 8, 11, 14, 17, 20], "0" => [3, 6, 9, 12, 15, 18]).hash␤»
masak r: say (1..20).classify( * % 3 ).classify( * % 2 ).perl
camelia rakudo 296da0: OUTPUT«("1" => [1, 4, 7, 10, 13, 16, 19], "2" => [2, 5, 8, 11, 14, 17, 20], "0" => [3, 6, 9, 12, 15, 18]).hash␤»
timotimo i probably should be able to grab multiple characters in a row if i just keep making sure it's not a < or > and that if it's a capital letter, it's not followed by <
16:07 PacoLinux left, grondilu left
masak lizmat: I don't understand what .classify does on hashes. github.com/perl6/specs/commit/f4d058ab7d saying they're "Same as List's classify" doesn't do it for me as an explanation. 16:07
16:07 colomon joined
masak lizmat: is there a way to rephrase what it does either in a more exact way, or in a way that doesn't refer to List.classify? 16:08
(or both)
timotimo r: say "<" ~~ /<[<]>/ 16:09
camelia rakudo 296da0: OUTPUT«「<」␤␤»
timotimo r: say "<" ~~ /<-[«]>/
camelia rakudo 296da0: OUTPUT«「<」␤␤»
masak r: say "-" ~~ /<[-]>/
camelia rakudo 296da0: OUTPUT«「-」␤␤»
masak r: say "「" ~~ /<[「]>/ 16:10
camelia rakudo 296da0: OUTPUT«「「」␤␤»
masak r: say "」" ~~ /<[」]>/
camelia rakudo 296da0: OUTPUT«「」」␤␤»
masak idly wonders if 」 shouldn't be escaped in .gist output of match results
16:13 dmol left
[Coke] gist isn't meant to be programatically reused (is it?) so it's not crucial. 16:14
it would make it potentially less confusing.
timotimo gist is for humans, yes 16:19
masak [Coke]: right. hence "idly wonders" rather than "submits rakudobug" ;) 16:21
timotimo my "improvements" so far just made it all slower. 16:22
16:25 btyler left 16:27 sidus left 16:33 btyler joined 16:35 cognominal left 16:38 PacoLinux joined 16:44 logie left 16:55 crab2313 joined 17:01 sidus joined 17:04 PacoLinux left 17:23 birdwindupbird left 17:37 dmol joined 17:48 crab2313 left, colomon left 17:53 domidumont joined 17:57 colomon joined 18:10 colomon left 18:13 domidumont left 18:33 colomon joined
dalek kudo-star-daily: 2513a74 | coke++ | / (2 files):
Don't run the spectest any longer.

This is already covered elsewhere
18:36
kudo-star-daily: f61b183 | coke++ | bin/star.sh:
Use latest rakudo & nqp

In the beginning, it was fine to use the star specific ones because we knew they were broken. Now we want to keep an eye out for new breakages.
kudo-star-daily: fe3420c | coke++ | bin/star.sh:
Test latest modules
18:50 rhr left 18:53 colomon left 19:10 colomon joined 19:29 domidumont joined 19:31 raiph joined 19:34 SamuraiJack__ left
raiph timotimo: irclog.perlgeek.de/perl6/2013-07-26#i_7375584 19:35
timotimo that's not the answer i was looking for 19:36
19:36 rhr joined 19:41 keith_ joined
dalek kudo-star-daily: 0e4579d | coke++ | log/ (4 files):
today (automated commit)
19:44
[Coke] ^^ has data from rakudo-latest, nqp-latest, <modules-latest> 19:46
timotimo quite a few explosions
[Coke] 3 modules failing: 19:47
modules/zavolaj modules/perl6-lwp-simple modules/perl6-File-Tools
19:48 colomon left 19:55 domidumont left
arnsholt Hmm. Functionality change I need to look into for Zavolaj 19:55
19:55 dmol left 19:58 dmol joined
raiph timotimo: lizmat removed "will start" in the last 24 hours 19:59
20:04 colomon joined 20:06 cosimo left
raiph "In Haskell, the bind operator [supports] ad-hoc polymorphism ... [unlike p6's feed ops] ... you've got the ability to dispatch on the context of the input" 20:06
timotimo indeed, i was running off of an old version 20:08
because i was working on my laptop, which doesn't get new rakudo builds often (overheating problems etc)
20:13 FROGGS left 20:14 FROGGS joined 20:19 cosimo joined 20:20 vmspb joined 20:28 dmol left
masak raiph: I don't understand the context in which Perl 6's feed op wouldn't have "ad-hoc polymorphism". 20:30
raiph www.reddit.com/r/programming/commen...ll/cbbahq0 20:31
dalek rlito: 6f0823d | (Flavio S. Glock)++ | / (4 files):
Perlito5 - parser - more bareword disambiguation
20:33
20:41 pupoque_ left 20:42 xinming left
raiph masak: aiui, everything in p6 can be made contextually ad-hoc, right? isn't that fundamental? 20:42
moritz doesn't know what people mean when they say "everything" 20:43
20:44 xinming joined
moritz -> sleep 20:45
diakopter raiph: I think his point is that no, you can't have everything be so ad-hoc or optimizability flies out the window... 20:46
20:46 p5eval left, kaare_ left
masak raiph: I think it's dangerous to promise/claim that in Perl 6, "everything can be made contextually ad-hoc". 20:46
raiph moritz: goodnight (s/goodnight/one can arbitrarily alter the meaning of some code fragment by altering the language on the fly/ # provided one does it appropriately) 20:47
masak raiph: I probably came into Perl 6 believing that, many years ago. now I believe it's a language that abides by language design rules and limitations. it's a rather *cool* language, but it still abides by rules and limitations.
raiph: thus, for example, the DWIM/WAT tension.
diakopter DWATIM 20:48
masak :P
20:49 xenoterracide joined
tadzik [Coke]: do you have data on how many nqp tests nqp-jvm was passing over time? 20:49
lue suspects a backronym is attached to WAT 20:50
20:50 dmol joined
raiph masak: right. u can change any lang by changing the compiler. it's easier to change a lang that makes the compiler easier to change. it's still easier if u can do that from within the lang. it's still easier if the lang has been designed with that in mind. 20:51
i thought one of the key aspects of p6 was addressing each of these levels 20:53
masak is happy to report he solved problem 8 in five minutes flat with a Perl 5 one-liner: www.conceptispuzzles.com/index.aspx...icle%2F424
lue raiph: there's slangs for changing how the language is parsed. That's the most you can modify P6, afaict 20:54
masak raiph: you are not wrong.
raiph: and (thanks to Turing-universality) saying "*anything* is possible!" is not really an exaggeration. 20:55
raiph: and I'm not really arguing against. just trying to understand what facts the original quote was rooted in.
so far, I still don't get it.
raiph haskell's bind is fundamentally polymorphic 20:56
(is what i think chonglibloodsport is saying)
(reminds me of BETA's assignment) 20:57
my thought is that, while the feed ops may not be designed to be arbitrarily polymorphic, i'm hand-wavily guessing that a macro or slang will (one day, relatively easily) get one where one needs to go 20:59
larry has m-expressioned to his heart's content, but he first made sure the mexes are pretty good at manipulating sexes, right? 21:00
masak: am i making any sense? 21:01
btw, the original context of chonglibloodsport's comment was the thread containing the reddit comment i posted a link to 21:03
masak I haven't followed the link; sorry. I believe I am too tired to think about this tonight. 21:04
to a first approximation, Haskell can say "X is fundamentally polymorphic" about many things, and be right. Haskell builds straight off type theory. Perl 6 doesn't. 21:05
I believe further discussion needs to be grounded in a concrete use case.
e.g. how does the feed operator being polymorphic help in writing some Haskell code? 21:06
s/feed/bind/
how could it have helped if the Perl 6 feed operator were "fundamentally polymorphic"? not looking for syntax for that, just some short example of where it currently falls short. 21:07
if there is no such example, what are we discussing beyond fancy polysyllabic words? :) 21:08
sorry for being brusque. I find age makes me impatient with discussions that make extraordinary claims but provide no data. 21:09
raiph well, an example (maybe monad) is in the thread, but i'm not sure that will help
because that's just one example, and, aiui, p6 addresses those particular issues from another angle 21:10
masak right. 21:11
dalek p: fffd8ee | (Pawel Murias)++ | t/nqp/25-class.t:
Test that when calling methods we can use |@args and |%args.
masak phrased differently, imagine someone submitted a rakudobug "[BUG] feed operator is not polymorphic in Rakudo". no additional information. 21:12
dalek kudo-js: 67439e3 | (Pawel Murias)++ | src/QAST/Compiler/JavaScript.nqp:
Support |@args and |%args when calling methods.
rlito: f30599a | (Flavio S. Glock)++ | / (3 files):
Perlito5 - parser - indirect-object param handling fix
21:13
masak before rejecting it, people would contribute one or more of: (a) the spec doesn't say anything about the feed operator being polymorphic, (b) could you provide a small test/use case showing what you feel is missing?, (c) this is not a complete bug report, it's just an empty sentence. please submit better next time.
there might be a context in which that quote has a meaning, and is falsifiable, etc. but I don't have that context, and something tells me that context doesn't exist at the other end of the link. 21:14
'night, #perl6 21:15
raiph masak: goodnight. (to be clear, i don't see this as p6 weakness, but strength, that larry has thought through the issues deeply, built in escape hatches at the right places, and made the feed "operators" be between statements, and do the most useful things nicely.)
21:15 ilbot6 left, btyler_ joined, btyler left
masak bind is a monadic binary operator. feed operators are statement separators, just like semicolons. they are different beasts, and comparing them makes little sense. at least apples and oranges are both in the category "fruit". 21:17
lue
.oO(Unless you describe feed operators as binding statements together into one long chain.)
21:23
raiph thanks for talking it through a bit. good night and dream of apples and oranges being nuts...
lue: which is more or less the original context in the thread 21:26
"the monadic sequencing operator which connects the inputs/outputs of multiple functions while ensuring the proper order of evaluation (which is [nonetheless] subject to lazy evaluation). It's a lot more like the | (pipe) operator in shell" 21:28
21:29 pupoque joined 21:30 raiph left
lue is that from the reddit discussion or the spec? 21:31
[Coke] tadzik: no. only rakudo-jvm 21:32
21:34 FROGGS left 21:36 sidus left 21:41 sidus joined 21:43 raiph joined
raiph lue: the reddit thread 21:44
21:46 FROGGS joined 21:49 sidus left
dalek rl6-roast-data: 25d4731 | coke++ | / (5 files):
today (automated commit)
22:07
[Coke] looks like a bunch of new failures in both rakudos 22:08
22:14 btyler_ left 22:19 colomon left, btyler joined, FROGGS left 22:22 xenoterracide left 22:32 xenoterracide joined 22:44 colomon joined 22:45 Guest4624 left 22:54 benabik left, spider-mario left 22:55 benabik joined 23:03 pupoque_ joined 23:07 pupoque left 23:08 pupoque__ joined 23:11 pupoque_ left, pupoque_ joined 23:22 benabik left 23:25 benabik joined
diakopter just posted: gist.github.com/anonymous/6096722 23:34
in reply to news.perlfoundation.org/2013/07/hag...t-17980265 23:35
23:38 BenGoldberg joined 23:40 keith_ left, keith_ joined, dmol left, keith_ left
BenGoldberg rpn: for gather { take 2; say 'eager' } { .say; last } 23:47
camelia niecza v24-88-g1f87209: OUTPUT«2␤»
..rakudo 296da0, pugs: OUTPUT«eager␤2␤»
23:50 vmspb left