»ö« 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.
ZoffixW Is there something wrong with this: gist.github.com/zoffixznet/0c5da7c4a9eaa0c80079 I'm getting "Use of uninitialized value of type Str in string context Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed." 00:00
timotimo ZoffixW: you're stringifying $paste.WHAT by way of "eq"
you should just $paste ~~ Hash, IMO.
ZoffixW Ah. Thanks
timotimo++
timotimo goes to bed 00:01
00:11 Util joined 00:12 PerlJam joined
ZoffixW Is there a way of making this work? I want the last element: 00:13
m: my $what = 'gist.github.com/zoffixznet/f6a610c...059ec969'; $what = $what.split('/')[-1]; say $what
camelia rakudo-moar 6432dd: OUTPUT«5===SORRY!5=== Error while compiling /tmp/429VDmJwXK␤Unsupported use of a negative -1 subscript to index from the end; in Perl 6 please use a function such as *-1␤at /tmp/429VDmJwXK:1␤------> 030059ec969'; $what = $what.split('/')[-1]7⏏5; sa…»
00:15 Hor|zon joined
skids ZoffixW: [*-1] should work. 00:16
ZoffixW skids++ it does thanks. I wasn't sure what "use a function such as *-1" meant :) 00:18
skids When a subscript gets a Callable as an argument, it feeds in the length of the array, calls it, and uses that as an index. 00:19
00:19 Hor|zon left
skids '*-1' makes a function that is like sub a($x) { $x - 1 } 00:20
ZoffixW Ah 00:22
00:23 thou joined 00:27 rurban left, thou left 00:29 Xor_ left 00:33 tokuhirom joined 00:37 tokuhirom left 00:41 hohoho joined 00:50 thundergnat left 00:58 Eddward left 01:10 llfourn joined, n0tjack joined
dalek osystem: d53aa2f | (Zoffix Znet)++ | META.list:
Add Pastebin::Gist to eco
01:14
ZoffixW Comments on the suckety of my code welcome :) github.com/zoffixznet/perl6-Pasteb...n/Gist.pm6
01:14 n0tjack left 01:16 Hor|zon joined, pochi joined 01:21 Hor|zon left
leont What is the provides meta-data used for currently? 01:22
My module has 44 classes/roles, maintaining this by hand is kind of cumbersome…
ShimmerFairy leont: provides is supposed to link 'use' statement names to files, as I understand it 01:26
(not that anything handles it correctly as of yet)
leont: design.perl6.org/S22.html#provides
01:28 ZoffixW left
ShimmerFairy basically, it's meant to let you write a Foo::Bar module and not have to put it in lib/Foo/Bar.pm6, letting you put it in, say, lib/FooBar.pm6 in your distribution instead. :) 01:29
01:33 diakopter joined 01:45 TEttinger joined 01:46 ilbot3 joined
leont Right, so classes that are mostly internal don't need to be listed? 01:48
fg
geekosaur No such job. 01:49
01:50 BenGoldberg left
TimToady m: say v6a after v6; 01:55
camelia rakudo-moar 6432dd: OUTPUT«False␤»
TimToady slight problem there ^^
ShimmerFairy leont: yeah, AIUI it basically says "when someone types 'use Foo::Bar', don't expect to find it in lib/Foo/Bar.pm6. It's actually at lib/Somewhere/Else/Entirely.pm6." 01:56
leont geekosaur: No Jobs, no Cash, no Hope, Kevin Bacon please don't die
02:03 Exodist joined, aborazmeh joined, aborazmeh left, aborazmeh joined 02:07 kid51 left 02:11 thou joined 02:16 thou left 02:17 Hor|zon joined 02:21 noganex_ joined 02:22 Hor|zon left 02:24 noganex left 02:36 chenryn_ joined 02:43 dayangkun joined
dalek kudo/nom: 89d1b4f | TimToady++ | src/ (2 files):
switch to 'use v6b+;' notation
02:45
[Coke] we lose the nice perl 5 error with v6b, fwiw. 02:47
yoleaux 11 Oct 2015 15:45Z <moritz> [Coke]: as the next release manager, please mark the 2015.10 release as the first Perl 6 Beta release in the announcement
[Coke] .tell moritz that was the plan!
yoleaux [Coke]: I'll pass your message to moritz.
TimToady well v6.b doesn't help 02:49
02:49 cognominal left 02:50 sQuEE is now known as sQuEE`
[Coke] yah, I don't think there's a way to keep it. 02:52
leont Seems someone forked all p6 modules in the list to send PRs for travis.yml files 02:53
Zoffix heh 02:54
02:54 ngie left
Zoffix Not all. But I'm guessing this [16:06:37] <szabgab> I hope tomorrow all the modules will have Travis enabled :) 02:55
TimToady I wonder if the syntax highlighters check for 'v6' or 'v6;' 02:59
03:01 leont left
dalek href="https://modules.perl6.org:">modules.perl6.org: e9d3a10 | (Zoffix Znet)++ | web/lib/P6Project/Info.pm:
standardize Travis error status <=> icon
03:04
href="https://modules.perl6.org:">modules.perl6.org: 1dd35f3 | (Zoffix Znet)++ | web/ (4 files):
Add shadow to Camelia
Zoffix timotimo, done and done :)
dalek href="https://modules.perl6.org:">modules.perl6.org: b69e76a | (Zoffix Znet)++ | web/index.tmpl:
Add Camelia as favicon
03:06
03:07 KCL joined
[Coke] rant: linenoise loses characters if you start typing at the REPL before the prompt appears. 03:07
03:08 ][Sno][ left 03:10 KCL_ left 03:13 [Sno] joined 03:18 Hor|zon joined 03:22 Hor|zon left 03:37 llfourn left
TimToady m: use v6; 03:42
camelia ( no output )
TimToady m: use v6a;
camelia rakudo-moar 89d1b4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/A2IBZMQxiG␤No compiler available for Perl v6a␤at /tmp/A2IBZMQxiG:1␤------> 3use v6a7⏏5;␤»
TimToady m: use v6a+;
camelia ( no output )
TimToady m: use v6b; 03:43
dalek href="https://modules.perl6.org:">modules.perl6.org: d829e03 | (Zoffix Znet)++ | web/build-project-list.pl:
Fix Camelia logo path
camelia ( no output )
TimToady m: use v6c;
camelia rakudo-moar 89d1b4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jeCBAYQ1Xn␤No compiler available for Perl v6c␤at /tmp/jeCBAYQ1Xn:1␤------> 3use v6c7⏏5;␤»
03:49 sufrostico joined 03:51 sufrostico left 03:54 chenryn_ left 03:56 vendethiel joined 03:59 thou joined 04:04 thou left
diakopter oy 04:07
04:08 llfourn joined
[Coke] aye. 04:08
hohoho .u » 04:13
yoleaux U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK [Pf] (»)
04:18 sQuEE` is now known as sQuEE 04:19 Hor|zon joined, sQuEE is now known as sQuEE` 04:21 llfourn left 04:24 Hor|zon left 04:29 chenryn_ joined, hohoho left
dalek c: 355783e | coke++ | htmlify.p6:
remove unused $*DEBUG & command line flag
04:31
04:36 dbenton left
dalek p: a79e4ab | TimToady++ | src/ (3 files):
canonicalize operator names to legal perl

Operator names containing < or > are now enclosed in « and ».
04:48
04:48 hohoho joined
dalek kudo/nom: 091637f | TimToady++ | src/ (4 files):
canonicalize operator names to legal perl

Operator names containing < or > are now enclosed in « and », unless they also contain « or », in which case they use < > and backslash anything that needs it.
04:48
kudo/nom: 16e2b07 | TimToady++ | tools/build/NQP_REVISION:
bump nqp to get legal opnames patch

  (won't compile without this)
TimToady has been wanting to fix that one for years now 04:49
[Coke] TimToady++ 04:50
ShimmerFairy TimToady: I've also wanted to alias texas variants, but unfortunately trying to set up the 'constant's caused the optimizer to eat up all memory when a texas variant was used in CORE
04:53 aborazmeh left
dalek ast: dc3e133 | TimToady++ | S02-names/name.t:
test that opnames are canonicalized legally

fixes RT #126241
04:59
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=126241
04:59 khw left 05:05 vendethiel left 05:06 chenryn_ left, chenryn_ joined 05:08 baest_ is now known as baest 05:14 skids left 05:20 Hor|zon joined
dalek ast: f21fe41 | TimToady++ | S02-names/name.t:
add more tests for weird opnames with angles
05:22
TimToady m: sub infix:«~~>» { "$^a -> $^b\n" }; say &[~~>].name
camelia rakudo-moar 89d1b4: OUTPUT«infix:<~~>>␤»
05:23 Ch0c0late joined
TimToady m: sub infix:«~~>» { "$^a -> $^b\n" }; say &[~~>].name 05:24
camelia rakudo-moar 16e2b0: OUTPUT«infix:«~~>»␤»
05:25 Hor|zon left 05:30 llfourn joined 05:32 |Tux| joined 05:42 tokuhirom joined 05:47 tokuhirom left 05:48 thou joined 05:51 jkva joined 05:52 thou left 05:58 bjz joined 06:06 FROGGS left 06:09 bjz left 06:15 llfourn left 06:17 diana_olhovik_ joined 06:21 Hor|zon joined 06:23 domidumont joined 06:25 Hor|zon left 06:27 domidumont left 06:28 firstdayonthejob joined, domidumont joined 06:29 bjz joined
moritz good morning 06:35
yoleaux 02:47Z <[Coke]> moritz: that was the plan!
[ptc] o/ 06:38
06:39 llfourn joined 06:50 FROGGS joined 06:55 Ven joined 06:58 zakharyas joined 07:00 llfourn left
moritz anybody want to help me with a naming problem? (not Perl 6 related) 07:00
at $work, we collect all sorts of data which we later use for billing
this data is for example IP traffic size, size of backup data, number of text messages sent etc. 07:01
grouped by customer, service (ip, backup, sms, ...), date and size
how would you name such a database table?
[Tux] traffic
moritz but it's not all traffic 07:02
[Tux] most of it is?
moritz dunno; my sample might well be biased 07:03
we also store things like number of MS Exchange mail boxes
[Tux] that is traffic related too imho
FROGGS usage?
moritz resource_usage maybe 07:04
[Tux] somebody likes typing :)
FROGGS :P
dalek kudo/nom: 03f84ee | TimToady++ | src/ (2 files):
allow comma to constant fold, but distribute sink

A comma in sink context is not necessarily an error, since the bits of the comma may have side effects (especially in a loop ()). So we treat comma as a lightweight semicolon there and evaluate each of its arguments for "useless use" instead.
moritz [Tux]: the table already has a (horrible) name; I'm looking for a mapped name in the ORM, actually 07:05
TimToady --> bed &
[Tux] sleep tight
FROGGS gnight TimToady++ 07:06
masak morning, #perl6
FROGGS morning masak 07:07
moritz FROGGS, [Tux]: thanks for your input 07:08
07:09 brrt joined
brrt good * 07:10
07:10 aborazmeh joined, aborazmeh left, aborazmeh joined, RabidGravy joined
[Tux] test 50000 38.896 38.778 07:12
test-t 50000 39.823 39.704
07:14 rurban joined 07:16 Ven left 07:18 Ven joined 07:22 Hor|zon joined 07:24 firstdayonthejob left 07:25 Ven left 07:26 Hor|zon left 07:29 ely-se joined 07:30 Ch0c0late left 07:35 abraxxa joined 07:36 thou joined 07:38 [Sno] left 07:39 abraxxa left, abraxxa joined 07:40 thou left 07:44 tokuhirom joined
moritz in p5, there's an environment variable that's commonly used for tests that must be able to access the Internet, no? 07:48
if so, what's its name?
07:48 tokuhirom left
FROGGS moritz: I've not seen something like that yet... 07:51
BinGOs: do you know perhaps?
ShimmerFairy m: my token foo { {say "A is {$*A.gist}"} <?{$*A}> foo :my $*A }; say "foo" ~~ /:my $*A = 1; <?{$*A}> <foo>/ 07:53
camelia rakudo-moar 03f84e: OUTPUT«A is (Any)␤A is (Any)␤A is (Any)␤A is (Any)␤Nil␤»
ShimmerFairy Is this expected behavior, the :my $*A bit affecting earlier parts of the grammar? Because that's really surprising.
moritz earlier? 07:54
07:54 spider-mario joined
ShimmerFairy m: my token foo { {say "A is {$*A.gist}"} <?{$*A}> foo }; say "foo" ~~ /:my $*A = 1; <?{$*A}> <foo>/ 07:54
camelia rakudo-moar 03f84e: OUTPUT«A is 1␤「foo」␤ foo => 「foo」␤»
lizmat m: wait do for 1..5 { start {} } # seems borked with b85ea62d52736f916e1e1ac FROGGS ?
camelia rakudo-moar 03f84e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/qdPNvS7KrE␤Missing block␤at /tmp/qdPNvS7KrE:1␤------> 3ed with b85ea62d52736f916e1e1ac FROGGS ?7⏏5<EOL>␤ expecting any of:␤ block or pointy block␤ postfix␤»
ShimmerFairy moritz: apparently having a :my $*A; declaration affects the entire rule it's in, including parts before the decl 07:55
lizmat m: await do for 1..5 { start {} } # seems borked with b85ea62d52736f916e1e1ac FROGGS ?
camelia rakudo-moar 03f84e: OUTPUT«Must specify a Promise or Channel to await on (got a List)␤ in block <unit> at /tmp/nFP2Mq69F9:1␤␤»
FROGGS >.<
moritz ShimmerFairy: I see no parts of a rule in your example that is prior to the declaration of $*A
ShimmerFairy: you do know that $*A is dynamically scoped, right?
ShimmerFairy moritz: ... I'm talking about the more lexical $*A that lets you "take" a dynamic variable for just that dynamic scope 07:56
07:56 eliasr joined
lizmat FROGGS: shall I add a await(List) candidate ? 07:57
ShimmerFairy m: my token foo { {say "A is {$*A.gist}"} <?{$*A}> foo :my $*A = 5; }; say "foo" ~~ /:my $*A = 1; <?{$*A}> <foo>/
camelia rakudo-moar 03f84e: OUTPUT«A is (Any)␤A is (Any)␤A is (Any)␤A is (Any)␤Nil␤»
ShimmerFairy ^^^ even more fun, it turns out it's just the existence of the variable, with an initial assignment not being considered before the inner declaration :/
moritz m: sub f { say $*A; my $*A = 42 }; my $*A = 42; f() 07:58
camelia rakudo-moar 03f84e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/RdneqGtOIg␤Illegal post-declaration of dynamic variable '$*A';␤earlier access must be written as CALLERS::<$*A>␤if that's what you meant␤at /tmp/RdneqGtOIg:1␤------> 3sub f { say $*A; my $*A7⏏5 =…»
FROGGS m: multi foo(Int) { 'Int' }; multi foo(Any) { 'Any' }; multi foo(*@a) { for @a { foo $_ } }; say foo [1, 2, 3] # lizmat: I was under the impression that the slurpy is preferred...
camelia rakudo-moar 03f84e: OUTPUT«Any␤»
lizmat well, maybe that is the bug...
moritz ShimmerFairy: ^^ that's the error you would get if the {} from the block wouldn't introduce a new scope
FROGGS lizmat: so yes, please add the needed candidate
lizmat: no, might be a bug in my brain
ShimmerFairy moritz: I'm not talking about $~MAIN though, I don't get quite what you're trying to say 07:59
moritz ShimmerFairy: and yes, that's by design. Variables are valid for the block they are declared in, and it's only parse time that complains about undeclared that aren't dynamic
ShimmerFairy: variables are scoped to blocks, not to sections of blocks
ShimmerFairy moritz: I don't think you're getting me. I was expecting the $*A to keep the value of 1 _until_ the second :my $*A; declaration
FROGGS ShimmerFairy: you cannot redeclare $*A like you did in your first paste 08:00
moritz ShimmerFairy: I get that you want that
ShimmerFairy FROGGS: except you totally can, and various grammars (including rakudo) make use of it
moritz ShimmerFairy: example?
FROGGS ShimmerFairy: but not the way you did
m: my token foo { :my $*A = 2; {say "A is {$*A.gist}"} <?{$*A}> foo }; say "foo" ~~ /:my $*A = 1; <?{$*A}> <foo>/ 08:01
camelia rakudo-moar 03f84e: OUTPUT«A is 2␤「foo」␤ foo => 「foo」␤»
FROGGS that's what you usually see
ShimmerFairy :my $*POD_ALLOW_FCODES := nqp::getlexdyn('$*POD_ALLOW_FCODES'); occurs in a few places, for example
FROGGS m: my token foo { :my $*A = 2; {say "A is {$*A.gist}"} <?{$*A}> foo }; say "foo" ~~ /:my $*A = 1; {say "A is {$*A.gist}"} <?{$*A}> <foo>/
camelia rakudo-moar 03f84e: OUTPUT«A is 1␤A is 2␤「foo」␤ foo => 「foo」␤»
ShimmerFairy m: my token foo { :my $*A = 2; { say $*A } }; "A" ~~ /:my $*A = 1; {say $*A} <foo> {say $*A}/ 08:02
camelia rakudo-moar 03f84e: OUTPUT«1␤2␤1␤»
ShimmerFairy m: my token foo { { say $*A } }; "A" ~~ /:my $*A = 1; {say $*A} <foo> {say $*A}/
camelia rakudo-moar 03f84e: OUTPUT«1␤1␤1␤»
FROGGS ShimmerFairy: but that decl is either at the top of the token (which implies that it is bound to the entire token anyway), or the variables is not used within the loken at all
ShimmerFairy m: my token foo { { say $*A } :my $*A = 2; }; "A" ~~ /:my $*A = 1; {say $*A} <foo> {say $*A}/
camelia rakudo-moar 03f84e: OUTPUT«1␤(Any)␤1␤»
dalek kudo/nom: 70a94d9 | lizmat++ | src/core/asyncops.pm:
Unbreak await do for ^5 { start {} }
08:03
ShimmerFairy FROGGS: as you can see, declaring the dynamic inside the token wipes out the previous value at the beginning of the token, and not where it's declared.
FROGGS: either it DWIMs, or it should at least set the appropriate initial value (2 in my last examples) in addition to clearing it out. In any case I consider it a bug. 08:04
FROGGS ShimmerFairy: yes, and that's correct
the more correct behaviour would be though explode with 'Illegal post-declaration of dynamic variable'
or 'use before decl' or something 08:05
m: my $x; { say $x; my $x }
camelia rakudo-moar 03f84e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/pAtAFccdGv␤Lexical symbol '$x' is already bound to an outer symbol;␤the implicit outer binding must be rewritten as OUTER::<$x>␤before you can unambiguously declare a new '$x' in this scope␤at /tmp/pAtA…»
FROGGS that's the same
ShimmerFairy I still say it's incredibly LTA that it magically acts as though the declaration happened where it didn't :/ 08:06
FROGGS that's why it should throw
08:08 jmc_ is now known as jmc
FROGGS (most) variables are bound to a lexical scope, which is the block they are in, not the piece of text they appear 08:08
brrt i disagree FROGGS... what if the $* thingy was defined in another module alltogether
08:08 jmc is now known as jocom
brrt dynamic variables are (useful) evil, and i don't think you can tame that 08:09
FROGGS ohh, I was talking about declarations
brrt but it's a dynvar, right
FROGGS it is, sure
brrt you can't really assume anything about it's declaration?
its 08:10
FROGGS but if you redeclare a dynvar in your block, you only see that dynvar declared in your block
ShimmerFairy FROGGS: if it's not supposed to do what I want, then it should definitely throw upon the :my that comes after a use of it.
FROGGS m: my $*x; { say $*x; my $*x }
camelia rakudo-moar 03f84e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/nny7jGcNhS␤Illegal post-declaration of dynamic variable '$*x';␤earlier access must be written as CALLERS::<$*x>␤if that's what you meant␤at /tmp/nny7jGcNhS:1␤------> 3my $*x; { say $*x; my $*x 7⏏…»
brrt well, that's... hmmmmmm
FROGGS ShimmerFairy: aye
m: my $*x = 1; { say CALLERS::<$*x>; my $*x = 2 } 08:11
camelia rakudo-moar 03f84e: OUTPUT«1␤»
08:11 kjs_ joined
FROGGS m: my token foo { {say "A is {CALLERS::<$*A>.gist}"} <?{CALLERS::<$*A>}> foo :my $*A }; say "foo" ~~ /:my $*A = 1; <?{$*A}> <foo>/ 08:11
camelia rakudo-moar 03f84e: OUTPUT«A is (Any)␤A is (Any)␤A is (Any)␤A is (Any)␤Nil␤»
08:12 larion joined
FROGGS m: my token foo { {say "A is {CALLERS::<$*A>.gist}"} <?{CALLERS::<$*A>}> foo }; say "foo" ~~ /:my $*A = 1; <?{$*A}> <foo>/ 08:12
camelia rakudo-moar 03f84e: OUTPUT«A is 1␤「foo」␤ foo => 「foo」␤»
FROGGS now that *is* weird 08:13
or maybe not
or...
08:15 darutoko joined 08:16 dakkar joined 08:23 Hor|zon joined 08:24 ab6tract joined 08:25 vytas joined
nine timotimo: if you can explain a bit more what exactly that means, I'd be happy to do it. 08:26
timotimo nine: you can put a custom QAST::Op( :op('yourchosenname'), ... ) into the resulting qast tree 08:27
08:27 Hor|zon left
timotimo the desugar you'll add to the top of the Actions.nqp will tell the compiler how exactly to turn it into a QAST tree that it knows how to compile 08:27
08:29 kjs_ left 08:32 g4 joined 08:38 larion left
timotimo the idea is that we'd end up with a "p6forloop" (or something) op that still has the thing to loop over directly as a child, so that the optimizer can more easily introspect it 08:40
and if it deems the for loop fit for turning into a while loop, it can just replace the op and keep the block
i'm not sure what the part near the beginning is for; the one inside the if statement 08:41
08:45 rindolf joined
chenryn_ p6: class A { submethod DESTROY { say "die A" }; submethod BUILD { say "new A" }; }; my $o = A.new; undefine $o; 08:45
camelia rakudo-moar 70a94d: OUTPUT«new A␤»
08:45 espadrine joined
chenryn_ why DESTROY not exec? 08:46
timotimo DESTROY is not guaranteed to run; it will not run at process exit, either 08:47
i mean, exiting will not cause DESTROY to be run; only garbage collection cycles will 08:48
08:50 aborazmeh left
chenryn_ github.com/perl6/roast/blob/master...truction.t but here? 08:50
timotimo # no guaranteed timely destruction, so replace $a and try to force some GC here
08:53 mrsolo joined
sergot hi #perl6 08:54
timotimo: what do you mean about perl6-encode?
moritz the more reliable way is to use a LEAVE phaser on the caller side
\o sergot
timotimo sergot: it's just about travis
sergot moritz \o
timotimo: I've just turned it on :)
08:54 gonz_ joined
timotimo you have a .travis.yml, but in github you have to turn it on 08:54
great! :)
sergot heh, someone pushed the .travis.yml yesterday I didn't even notice. thanks timotimo++ ! :) 08:55
08:55 espadrine left
FROGGS it is easier to turn on via travis though 08:55
timotimo oh, i hadn't realized
sergot FROGGS: I did so :)
FROGGS otherwise you have to enter a token you might not know :o)
sergot and it's super easy in travis-ci.org 08:56
FROGGS *nod* 08:57
chenryn_ timotimo: I use perl6 2015.09 to run such test, got "failed 4 tests of 6". 08:59
brrt timotimo - what, a forloop into a single op? or a virtual op?
timotimo yeah, DESTROY is unreliable ... and that test is unreliable, too
brrt: yeah, just virtual 09:00
brrt phew :-)
09:00 FireFly left
chenryn_ --! 09:04
09:05 FireFly joined 09:06 Ven joined 09:13 [Sno] joined 09:18 hohoho left, leont joined 09:21 kjs_ joined 09:24 Hor|zon joined, bjz left, thou joined 09:27 vytas` joined, vytas` left, vytas left, vytas joined 09:28 CIAvash joined, thou left, bjz joined 09:29 Hor|zon left 09:32 telex left, larion joined 09:34 telex joined
jnthn morning, #perl6 09:44
yoleaux 11 Oct 2015 11:01Z <lizmat> jnthn: Iterator.push-exactly has a $no-sink catch, is that needed in all custom iterator methods that do $target.push ??
11 Oct 2015 11:24Z <nine> jnthn: I rejected rt.perl.org/SelfService/Display.html?id=125199 because I think it was just an error in the test script. Am I right?
09:44 bjz left
RabidGravy marnin 09:44
jnthn had a nightmare about having nightmares, and wonders if that's a sign to stop working on meta-circular object systems and self-hosting compilers... 09:45
09:45 bjz joined, tokuhirom joined
timotimo pbfcomics.com/44/ - jnthn 09:45
jnthn .tell lizmat It can be wise, yes...
yoleaux jnthn: I'll pass your message to lizmat.
lizmat .botsnack 09:46
yoleaux :D
synbot6 om nom nom
yoleaux 09:45Z <jnthn> lizmat: It can be wise, yes...
09:46 edehont joined
lizmat ok, will follow up on that 09:46
jnthn lizmat: I wish we had a nicer solution...
timotimo: heh :)
lizmat it'll work for now
shop.oreilly.com/product/9781680500...cationDate # interesting choice of cover for a book updated for 5.22 :-) 09:49
09:50 tokuhirom left
timotimo whoa 09:50
sudenly
Ulti So I'm getting 'Parameter '$self' expected a writable container, but got Str value' in a regex substitution I notice there was a previous bug report that looks similar (I have an _ in my substitution too) irclog.perlgeek.de/perl6/2015-09-26#i_11278343 09:51
might just be I'm being dumb
timotimo right, perhaps forgot to put the string into a variable first or something?
Ulti say $line ~~ s:sigspace/CREATE INDEX \"/CREATE INDEX \""$table_name"_/;
is the line
timotimo hm, looks correct
jnthn .tell nine The "# Rakudo prohibits calling .accept in a different thread to the one opening the connection" bit is something I want to address pre-Christmas, I think. But I agree on the missing .close
yoleaux jnthn: I'll pass your message to nine.
09:52 ely-se left 09:56 llfourn joined, ely-se joined
jnthn lizmat: re 70a94d9d2b I'd maybe have gone with Iterable:D instead of List:D: for the first multi-candidate there 09:57
lizmat ok
will change and spectest soonish 09:58
jnthn Cool
Otherwise looks fine
Though I wonder if we should just single-arg-rule await instead...
lizmat ok, will try that as well...
masak just learned about stableperl
has that been discussed here on #perl6? 09:59
lizmat well, one shouldn't mention the one who shouldn't be mentioned :-)
masak: how would that apply to Perl 6 ?
masak there's a tenuous connection: that of discussions of stability, deprecations, and backwards-compat 10:00
10:00 llfourn left
masak but if there's nothing for us to learn from whatever's going on in p5-land, then let's just pretend I didn't mention it ;) 10:00
jnthn lizmat: One day, somebody will disagree strongly with $perl6-pumpking about something and decided to fork off instead. :) Such is open source.
lizmat well, I think we *have* learned from it 10:01
btyler from a peanut gallery perspective, stableperl is just a sign of "no matter how much effort you invest in back compat, someone will always disagree about which bits of the internals are public API, and get annoyed when they change"
lizmat P6 is utterly customizable
masak .oO( we don't fork -- we slang! )
lizmat right!
jnthn lizmat: We're still plenty vulnerable. We've plenty of things we consider implementation details that somebody *could* come to depend on. And we don't yet have the testing infrastructure Perl 5 does to catch them as early as we'd like. 10:02
lizmat in P6, stableperl would just be YAM (Yet Another Module)
10:02 Ven left
lizmat well, I started moving things to Rakudo::Internals 10:02
and if you're using nqp, you're bound to internals anyway
but yes, people will find internals, use them, and complain when they're changed 10:03
masak there's also a connection because this (panic) blog post mentions "emigrat[ing] to [Perl 6]": blogs.perl.org/users/xiaoayfeng/201...uture.html
lizmat such is life
jnthn Not bound to, but will quite possibly get your module broken by said bond at some point.
btyler but it seems likely that people will write some things in nqp, because performance
10:03 hohoho joined
jnthn *Not only bound to 10:03
masak I think what's going on with p5 forks is not ideal, but maybe a net positive in the long run 10:04
btyler masak: I think it might look like a bigger event than it is. I'm not sure any of the p5 forks are getting much serious attention yet 10:05
jnthn Wow, I take a day off and y'all get loads done :)
mrf jnthn: thus the only answer is to take more days off right? 10:06
jnthn Well, next week I'm going for honeymoon, so will have a *week* off. Mebbe I'll come back and find Christmas came early ;)
mrf jnthn: I think thats wishful thinking. You would need to take at least *2" weeks off :D 10:07
masak .oO( honey-week )
10:09 Ven joined
jnthn lizmat: I just saw 7003c7a52058a47 ("Give MapIterator its own fast sink-all") and nearly had heart failure. :P I think it's actually giving *HashIterator* one? :) 10:10
lizmat jnthn: don't think so, in any case it spectests clean... 10:12
but will also look at that :-)
jnthn lizmat: sink-all on a MapIter *has* to iterate, otherwise for loops would do nothing :)
lizmat yes, which basicallly means it doesn't give HashIterator a sink-all 10:13
in any case, maybe MapIterator is a bad name :-)
jnthn Oh...my, *that* Map
bah!
Yes, maybe just maybe :)
.oO( Which idiot suggested calling that type Map...oh, me! )
10:14
masak we have MapIter and MapIterator, and they're largely unrelated?
lizmat yeah...
jnthn masak: Thankfully, not publicly visible. :)
masak but still, confusing and not ubiq lang
lizmat I'll rename MapIterator to something less confusing (I hope :-)
jnthn But yeah, just 'cus it's internals doesn't mean we should confuse ourselves :P
.tell nine 86731df15f works for the anon case, but not the "two different lexical roles called A" case, I think. 10:16
yoleaux jnthn: I'll pass your message to nine.
ShimmerFairy Just rename them all to "Internal_" ~ rand , that'll help :P
jdv79 wonders if there will come a day soon where its impractical to backlog 10:18
yoleaux 9 Oct 2015 20:44Z <_itz_> jdv79: sorry for the deplay in adding your RSS feed, I've been away from the computer but it's added now
jdv79 i feel like its taking longer and longer
jnthn skipped yesterdays, and read commit logs instead :) 10:19
lizmat: I guess nobody designed a module pre-comp solution while I took the day off? :)
lizmat jnthn: no, because I think we want to know *your* ideas about what I wrote in my CURLI gist 10:20
jnthn :) 10:21
nine timotimo: ah I think I understand. Will have a look. 10:24
yoleaux 09:51Z <jnthn> nine: The "# Rakudo prohibits calling .accept in a different thread to the one opening the connection" bit is something I want to address pre-Christmas, I think. But I agree on the missing .close
10:16Z <jnthn> nine: 86731df15f works for the anon case, but not the "two different lexical roles called A" case, I think.
10:25 Hor|zon joined
jnthn figures he'll finish up the last bit of the case change work first 10:26
Ulti m: say "A" ~~ s:s/A/B/; 10:29
camelia rakudo-moar 70a94d: OUTPUT«Parameter '$self' expected a writable container, but got Str value␤ in block <unit> at /tmp/0nIa5xP17A:1␤␤»
Ulti m: my $var = "A"; say $var ~~ s:s/A/B/;
camelia rakudo-moar 70a94d: OUTPUT«「A」␤»
10:30 Hor|zon left, Ven left
jnthn Those two are correct; foo ~~ s expects to update foo 10:31
Error might be better, though
Having is rw and non-rw distinguishable by multi-dispatch is in my todo list 10:32
So it'll be eaiser to add a fallback that gives a good error soonish
m: say say "A" ~~ S:s/A/B/;
camelia rakudo-moar 70a94d: OUTPUT«False␤True␤»
jnthn m: say "A" ~~ S:s/A/B/;
camelia rakudo-moar 70a94d: OUTPUT«False␤»
Ulti yeah so if I do an 'is rw' on the for loop thats doing .lines I get the error there
jnthn Ulti: is copy 10:33
Ulti that would explain why a copy of the var works :D
jnthn As in "give me my own mutable copy of this" :)
10:33 brrt left
Ulti thanks 10:33
nine jnthn: so relying on WHICH for === is just a bad idea or .WHICH should give a better result. Don't know enough about WHICH yet. 10:34
lizmat nine: .WHICH is supposed to return an ObjAt 10:36
perhaps we need a smarter === for ObjAt's
jnthn nine: .WHICH should give a better result 10:37
ObjAt is...not the most ideal thing at present
jnthn suspects ObjAt needs a constructor that takes a type along with other things that should be factored in to the identity 10:38
Where the type is the .WHAT of the thing in question
10:38 rurban left
nine And I guess an infix:<===> candidate for ObjAts? 10:39
That way we can still stringify the ObjAt to a readable type name while considering the objectid of the type object for === comparison 10:40
jnthn I don't think we should expect ObjAt to stringify to anything interesting at all; that's really an implementation detail 10:41
We'll want to swtich it over to producing an integer hash code later
10:41 espadrine joined
nine ok 10:41
10:44 RabidGravy left 10:45 Erendis42 joined 10:47 mattprelude joined 10:51 llfourn joined, Hor|zon joined
masak what's the expected semantics/laws of ObjAt? comparing two for equality, I guess. anything else? 10:51
10:53 bpmedley joined 11:03 jocom left
literal @foo[*-1] seems really unintuitive compared to @foo[-1]. So you're passing a function that does "whatever minus 1". So I'd expect [*-1] to give me the element at index 1 (so the 2nd element), but it just gives (Any). Then what was being subtracted in *-1 ? 11:09
s/expect [*-1]/expect [*+1]/
timotimo huh?
the * gets the length of the list
and it's a nice thing to have in general, because now you get things like @values[* div 2] and such 11:10
leont I have a Seq $foo, if I do «for @$foo { last }» it seems to eagerly evaluate it, that isn't what I expected :-s
literal ah, sorry, I was confused there
leont (or would the problem be in my code, it might be)
literal but seems weird when compared to @foo[*] (which gives you the full list), but I guess that's because in that case the star means something different than the whatever-star 11:11
timotimo mhm, though i think you'd rather want to spell that @foo[] instead
literal of course 11:12
but is the @foo[*] result intentional?
jnthn leont: It may well be that the @ there shoves it into a List, caching the values, and a List is allowed to "work ahead"
leont: If you're going to keep Seqs around then it's best to keep them in sigilless vars that don't imply any context on them
11:12 thou joined
jnthn Then you can just for foo { last } which will consume the Seq without caching its contents 11:12
Yeah, seems TimToady decided the @ contextualizer would do .cache 11:13
11:14 CurtisOvidPoe left
leont But how do I use a gather/take lazily then? 11:14
lizmat leont: if you slip the Seq ?
timotimo m: my $foo = lazy gather { take 1; say "one"; take 2; say "two"; take 3; say "three"; }; for $foo { .say; last }
camelia rakudo-moar 70a94d: OUTPUT«(...)␤»
timotimo m: my $foo = lazy gather { take 1; say "one"; take 2; say "two"; take 3; say "three"; }; for $foo { .say; last if Bool.pick } 11:15
camelia rakudo-moar 70a94d: OUTPUT«(...)␤»
timotimo m: my $foo = lazy gather { take 1; say "one"; take 2; say "two"; take 3; say "three"; }; for $foo { .say; last if Bool.pick }
camelia rakudo-moar 70a94d: OUTPUT«(...)␤»
timotimo hum?
jnthn timotimo: sigilless
timotimo: for $foo { } is always one item
timotimo m: my foo = lazy gather { take 1; say "one"; take 2; say "two"; take 3; say "three"; }; for foo { .say; last if Bool.pick }
camelia rakudo-moar 70a94d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/atVlIL1l5B␤Malformed my (did you mean to declare a sigilless \foo or $foo?)␤at /tmp/atVlIL1l5B:1␤------> 3my foo7⏏5 = lazy gather { take 1; say "one"; take␤»
timotimo right of course
m: my \foo = lazy gather { take 1; say "one"; take 2; say "two"; take 3; say "three"; }; for foo { .say; last if Bool.pick }
camelia rakudo-moar 70a94d: OUTPUT«1␤one␤2␤two␤3␤three␤»
timotimo m: my \foo = lazy gather { take 1; say "one"; take 2; say "two"; take 3; say "three"; }; for foo { .say; last }
camelia rakudo-moar 70a94d: OUTPUT«1␤»
timotimo there we go
leont: ^- lazy gather
m: my \foo = gather { take 1; say "one"; take 2; say "two"; take 3; say "three"; }; for foo { .say; last }
camelia rakudo-moar 70a94d: OUTPUT«1␤»
jnthn I don't think you need the lazy there
timotimo you're right
11:15 cyg07 joined
timotimo do i need to spell it "lazy gather" if i want to put it into a @ var? 11:16
jnthn Yeah
leont I'm returning the lazy gather from a sub, it doesn't seem to be working :-s
timotimo what do you put/bind it into? 11:17
11:17 thou left, awwaiid joined 11:19 dayangkun left
llfourn is there any reason p6 docs hasn't s/EnumMap/Map/ yet? 11:20
11:22 cognominal joined, cygx joined
cygx o/ 11:22
m: sub MAIN($arg, *%flags) {}
camelia rakudo-moar 70a94d: OUTPUT«Usage:␤ /tmp/XhOhInS31h =<Associative> <arg> ␤»
timotimo how do you pronounce your name, cygx? 11:23
cygx as written :p
timotimo zügiks
11:24 ely-se left
cygx s/i// 11:24
leont Tried various things, possibly my logic is broken 11:27
11:27 chenryn_ left
leont github.com/Leont/path-iterator/blo...r.pm6#L186 11:28
timotimo probably depends on how you use that function? 11:29
11:30 edehont left
dalek p: 1a9207c | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
On JVM, map nqp::tc to nqp::uc for now.

Means we can use nqp::tc in Rakudo without breaking the JVM build.
11:32
leont Ah, it seems my testing code was broken, not the actualy code itself. D'oh! 11:33
jnthn Quis custodiet ipsos custodes? :) 11:34
leont jnthn: funny you say that today, it's exactly 30 years after the start of Watchmen today ;-)
masak jnthn: did you look that one up in one of our courses? :P
jnthn masak: Remembered it from one of our courses :P 11:35
leont (and those happen to be the very last words of the book)
masak jnthn: you *remembered* it? kudos.
jnthn masak: Yeah, but I'm sure my pronunciation of it is awfully wrong :)
masak jnthn: of course. you're British.
timotimo as long as you're not pronouncing your latin like an american or brit would :)
leont There is no right pronounciation of Latin, it's a dead language…
masak the British has the worst Latin pronunciation of all peoples of the Earth, hands down.
jnthn On the upside, Latin's a pretty great language to speak wrong 'cus there's no native speakers around any more to correct me :D
masak leont: well, except for the Living Latin movement... :) 11:36
timotimo just try to get rid of the diphtongs
11:36 rurban joined, AlexDaniel joined, kjs_ left
leont masak: I know they exist, a friend of a friend of mine was apparently raised bilingual English-Latin, which I think is somewhat hilarious 11:36
dalek p: 6ac0c44 | jnthn++ | tools/build/MOAR_REVISION:
Bump MOAR_REVISION for NFG/casefold integration.
11:37 frithnanth joined
masak leont: I studied Latin for two semesters. it's a good language to know. it often struck me how many English words are basically complicated/distorted loans from Latin, with an unnecessary prefix glued on to the Latin word. 11:38
like Latin "paro" -- "I prepare".
there's half a dozen examples like that.
dalek kudo/nom: 362f0b5 | jnthn++ | tools/build/NQP_REVISION:
Bump NQP_REVISION for case-folding bits.
kudo/nom: 06fef86 | jnthn++ | src/core/Str.pm:
Make .tc actually use the nqp::tc op.

So it actually, y'know, titlecases.
DrForr_ Unless you've watched Harry Potter :)
11:38 frithnanth left 11:39 kid51 joined
masak DrForr_: have you seen the HPMoR deliberations around... "wingardium leviosa"? :P 11:39
dalek ast: d87b60f | jnthn++ | S15-nfg/case-change.t:
Unfudge NFG/casefold integration tests.
DrForr_ *cough* Neeeeeeeerd! :)
dalek ast: 57bff55 | jnthn++ | S32-str/tc.t:
Unfudge .tc tests we now pass.
11:41
masak DrForr_: stipulated.
leont masak: I've studied Latin (4 semesters) and Old Greek (one semester), I know their uses, but raising a child in either is another matter 11:42
masak indeed
leont 's first high school was a classically oriented one, I learned that 6 languages at the same time was too much for me :-/ 11:43
11:43 hohoho left
moritz zikes 11:43
*yikes
ShimmerFairy jnthn: for the record I'm still a bit uncomfortable with how nqp::tc and Str.tc act differently, as well as the fact that .tc is different in behavior from .uc and .lc 11:44
jnthn ShimmerFairy: TimToady++ gets to design Str.foo, I get to design nqp::foo ;) 11:45
moritz m: say 's'.tc 11:46
camelia rakudo-moar 70a94d: OUTPUT«S␤»
moritz m: say 'ß'.tc
camelia rakudo-moar 70a94d: OUTPUT«SS␤»
moritz m: say 'ßable'.tc
camelia rakudo-moar 70a94d: OUTPUT«SSable␤»
jnthn moritz: ^^ is the one I just fixed and unfudged tests fro :)
*for
moritz :-)
11:47 tokuhirom joined
jnthn ShimmerFairy: But more seriously: we could arguably make nqp::tc do exactly what .tc does, but from a composability perspective it's quite cheap to get the Perl 6 .tc behavior out of the current nqp::tc one, but getting the current nqp::tc behavior out of the Perl 6 .tc method semantics would be costly. 11:47
ShimmerFairy: So I'm inclined to leave it as it is
ShimmerFairy jnthn: btw, I think nqp::tc() (titlecase every character) is more correct and consistent :) 11:48
moritz ShimmerFairy: tell that to TimToady
jnthn Sure, well, we tend to push consistency harder at the VM level than DWIM. The Perl 6 choice for .tc is probably, tbh, the more useful one for msot people.
ShimmerFairy I agree it's likely more useful, it just also happens to be one of those things where you can't help but wonder when you take a look at it :) 11:49
11:50 kid51 left 11:51 timbunce_ joined, Fluor joined, tokuhirom left 11:52 timbunce_ left
jnthn OK, I'm done with CaseFolding and SpecialCasing and their integration with NFG :) 11:52
Think that gets us down to 1 outstanding Unicode-related issue before xmas, which is the NFG algo change. 11:53
But I'm going to care about the module stuff a bit before taking that one on.
lunch &
vytas m: say 􏿽xBB.WHAT 11:56
camelia rakudo-moar 70a94d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/qD5uBmK_tM␤Missing « or »␤at /tmp/qD5uBmK_tM:1␤------> 3say ».7⏏5WHAT␤»
11:57 loren joined
cygx how should the MAIN usage message for slurpy hashes look? 11:59
we have [--opt=<Any>] and [<slupy> ...], maybe something like [--<flags...>=...]
or just [--<flags>=...] 12:00
12:00 travis-ci joined
travis-ci Rakudo build failed. TimToady 'allow alphabetic version components' 12:00
travis-ci.org/rakudo/rakudo/builds/84814691 github.com/rakudo/rakudo/compare/5...6d88e50aba
12:00 travis-ci left 12:04 travis-ci joined
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Unbreak Baggy.kv 12:04
travis-ci.org/rakudo/rakudo/builds/84814736 github.com/rakudo/rakudo/compare/d...5dda30a45a
12:04 travis-ci left 12:05 cyg07 left 12:06 Woodi left, Woodi joined 12:07 bjz left
loren m: my &f := &substr.assuming('hello world'); say f(0, 3); 12:07
camelia rakudo-moar 70a94d: OUTPUT«hello world␤»
loren Seems like not correct. 12:09
moritz agrees 12:12
m: my &f := &substr.assuming(*, 0); say f 'hello world', 3
camelia rakudo-moar 70a94d: OUTPUT«hello world␤»
12:14 colomon joined
colomon loren: … huh 12:15
12:15 travis-ci joined
travis-ci Rakudo build failed. Tobias Leich 'add await candidate that catches non-awaitables' 12:15
travis-ci.org/rakudo/rakudo/builds/84827710 github.com/rakudo/rakudo/compare/b...5ea62d5273
12:15 travis-ci left
colomon m: say substr(“hello world”, 0, 3) 12:15
camelia rakudo-moar 70a94d: OUTPUT«hel␤»
loren haha ..
It's oblivious right.. 12:16
12:16 TEttinger left 12:17 ely-se joined, bjz joined
loren m: my &f := &substr.assuming('hello world'); say f(0, 2); 12:17
camelia rakudo-moar 70a94d: OUTPUT«hello world␤»
moritz m: say &substr.assuming('hello world')(0, 2) 12:18
camelia rakudo-moar 70a94d: OUTPUT«hello world␤»
moritz wtf (the "w" stands for "weird", here)
moritz would have thought we had tests for assuming
m: sub my-substr(*@a) { substr |@a }; say &my-substr.assuming('hello, world')(0, 3) 12:20
camelia rakudo-moar 70a94d: OUTPUT«hello, world␤»
moritz m: sub my-substr(*@a) { substr |@a }; say &my-substr.assuming('hello, world')()
camelia rakudo-moar 70a94d: OUTPUT«Cannot call substr(Str); none of these signatures match:␤ (Str:D \what, Int:D \start)␤ (Str:D \what, \start)␤ (Str:D \what, Int:D \start, Int:D \want)␤ ($what, \start, $want?)␤ in sub my-substr at /tmp/6Vcs9I232W:1␤ in sub __PRIME…»
FROGGS m: my &f := &substr.assuming('hello world'); say &f.signature
camelia rakudo-moar 70a94d: OUTPUT«(|_ is raw)␤»
moritz m: sub my-substr(*@a) { substr |@a }; say &my-substr.assuming('hello, world')(3)
camelia rakudo-moar 70a94d: OUTPUT«lo, world␤»
loren m: my &f := &substr.assuming('hello world'); say f(2, 3);
moritz m: sub my-substr(*@a) { substr |@a }; say &my-substr.assuming('hello, world')(0, 3)
camelia rakudo-moar 70a94d: OUTPUT«llo world␤»
rakudo-moar 70a94d: OUTPUT«hello, world␤»
moritz m: sub my-substr(*@a) { substr |@a }; say &my-substr.assuming('hello, world')(1, 3)
camelia rakudo-moar 70a94d: OUTPUT«ello, world␤»
moritz so it only passes one more argument on to the original function? 12:21
FROGGS maybe assuming does not work well with multies?
moritz m: sub d(*@x) { say @x.perl }; &d.assuming('a', 'b')('c', 'd', 'e')
camelia rakudo-moar 70a94d: OUTPUT«["a", "b", "c"]␤»
loren Maybe the implement ignore the second argument
moritz FROGGS: no
FROGGS: it ignores anything from the second argument onwards
FROGGS m: multi f(1) {'a'}; multi f(1, 2) {'b'}; multi f(1, 2, 3) {'c'}; say &f.assuming(1)(2, 3) 12:22
camelia rakudo-moar 70a94d: OUTPUT«b␤»
FROGGS m: multi f(1) {'a'}; multi f(1, 2) {'b'}; multi f(1, 2, 3) {'c'}; say &f.assuming(1)(2, 3, 4)
camelia rakudo-moar 70a94d: OUTPUT«b␤»
FROGGS wow
moritz who wants to write the bug report?
masak submits rakudobug 12:24
12:28 travis-ci joined
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Speed up Bag/BagHash/Mix/MixHash 12:28
travis-ci.org/rakudo/rakudo/builds/84832976 github.com/rakudo/rakudo/compare/b...32ddf302ba
12:28 travis-ci left
dalek c: da16879 | (Lloyd Fournier)++ | lib/Language/modules.pod:
added documentation for UNIT::EXPORT::* packages and made some minor clarifications
12:29
c: a8dcd11 | (Lloyd Fournier)++ | / (520 files):
merging changes before push
moritz 520 files touched 12:30
ah, probably merged in the lib -> doc rename
llfourn hmm sorry i think i just goofed that :\ 12:31
I merged from master and then committed and then pushed 12:32
cygx sent github.com/rakudo/rakudo/pull/549
llfourn and git said I was only changing one file...
masak .oO( push the commit, they said. you've only changed one file, they said ) 12:33
llfourn I did git diff --stat --cached upstream/master to see what was changing (which I got from google) 12:34
Did I actually change that many files? o.o
can someone clean that up for me and I'll redo that one 12:35
I am now discovering that I understand git less than I thought 12:36
loren They said 'File renamed without changes'
12:36 hohoho joined
moritz llfourn: all is fine 12:37
llfourn "1 file changed, 69 insertions(+), 11 deletions(-)" is what they literally said
moritz llfourn: don't let masak or me confuse you
12:37 travis-ci joined
llfourn moritz: ok I will stop panicking then 12:37
travis-ci Rakudo build failed. TimToady 'switch to 'use v6b+;' notation'
travis-ci.org/rakudo/rakudo/builds/84852330 github.com/rakudo/rakudo/compare/6...d1b4f5e004
12:37 travis-ci left
llfourn thanks! 12:38
moritz llfourn: you changed one file, and then pulled in changes that renamed 520 files
llfourn: and somehow the merge commit ended up being marked as renaming so 520 files
llfourn: but that's just git being weird (or consistent)
llfourn: thank you for your patch!
llfourn moritz: Yes I thought git would ignore that part of the commit 12:39
12:45 jkva left, jkva joined 12:58 CIAvash left 13:00 thou joined 13:05 thou left, rurban left 13:08 RabidGravy joined
itz_stmuk why was the lib->doc renaming done in the first place? 13:13
13:14 n0tjack joined
moritz itz_stmuk: so that we have a clearer distinction between code used in the repo (by htmlify and p6doc; in lib/) and the documentation 13:15
13:15 Ven joined 13:16 n0tjack left 13:17 n0tjack joined
RabidGravy it was somewhat confusing 13:18
itz_stmuk why is that distinction needed? surely pod is pod .. it's broken things like p6doc -f
RabidGravy is easily confused 13:19
moritz itz_stmuk: then we must fix p6doc 13:20
itz_stmuk: but it's very handy when doing a 'git grep', to see if stuff is documented (or used by the tools)
itz_stmuk an alternative would have been to split doc into supporting utils and docs proper 13:21
which wouldn't have created extra work
moritz you mean the splitting wouldn't have been work?
moritz confused
itz_stmuk well less work IMO 13:22
leont When was the push/unshift flattening change committed?
PerlJam Good morning #perl6
itz_stmuk its also made p6doc-index probably twice as slow since it has to look in "lib" and "doc" directories 13:23
RabidGravy leont, somewhere between a week and two weeks ago 13:24
itz_stmuk unless you are proposing user module documentation also lives under "doc" rather than "lib"
n0tjack morning browser tab maintenance is now functionally mandatory
RabidGravy really need to get around to adding append/prepend to the Array docs
n0tjack m: (^10).append(6*^5); 13:25
camelia rakudo-moar 06fef8: OUTPUT«Cannot call append(Range: Range); none of these signatures match:␤ (Any:U \SELF: |values is raw)␤ in block <unit> at /tmp/X4VT4eIrvU:1␤␤»
n0tjack m: say ^10; 13:26
camelia rakudo-moar 06fef8: OUTPUT«0..^10␤»
n0tjack m: say 6*^5;
camelia rakudo-moar 06fef8: OUTPUT«0..^30␤»
n0tjack huh
m: say (|^10).append(|6*^5);
camelia rakudo-moar 06fef8: OUTPUT«Cannot call append(Slip: Int); none of these signatures match:␤ (Any:U \SELF: |values is raw)␤ in block <unit> at /tmp/8nrsYH1NUq:1␤␤»
PerlJam n0tjack: "is raw" will foil you every time :) 13:27
n0tjack m: say |(^10),(|6*^5);
camelia rakudo-moar 06fef8: OUTPUT«01234567895␤»
n0tjack PerlJam: what does "is raw" mean?
TimToady well, ranges are immutable, so you can't append to them 13:28
n0tjack ahhh
leont isn't getting what he observes. He has a list, he shift an entry from it. the entry and the list are identical when calling .perl on them. 13:29
13:29 Ven left, skids joined
TimToady m: 1,2 13:30
camelia rakudo-moar 06fef8: OUTPUT«WARNINGS:␤Useless use of constant integer 1 in sink context (line 1)␤Useless use of constant integer 2 in sink context (line 1)␤»
moritz m: my @a = [1, 2], 1, 2; my @shifted = @a.shift; say @shifted.perl: say @a.perl
camelia rakudo-moar 06fef8: OUTPUT«[1, 2]␤Cannot call perl(Array: Bool); none of these signatures match:␤ (Mu:U $: *%_)␤ (Mu:D $: *%_)␤ (List:D \SELF: *%_)␤ (Array:D \SELF: *%_)␤ in block <unit> at /tmp/2SPlt2d00g:1␤␤»
TimToady m: $_++, 3
camelia rakudo-moar 06fef8: OUTPUT«WARNINGS:␤Useless use of constant integer 3 in sink context (line 1)␤»
13:31 travis-ci joined
travis-ci Rakudo build passed. jnthn 'Make .tc actually use the nqp::tc op. 13:31
travis-ci.org/rakudo/rakudo/builds/84901111 github.com/rakudo/rakudo/compare/7...fef86dfe62
13:31 travis-ci left
moritz m: my @a = [1, 2], 1, 2; my @shifted = @a.shift; say @shifted.perl; say @a.perl 13:31
camelia rakudo-moar 06fef8: OUTPUT«[[1, 2],]␤[1, 2]␤»
n0tjack TimToady: since we have implicit arithmetic distribution now in range notation, was any consideration ever given to making (1,2,3) * (4,5,6) "just work"? 13:32
TimToady m: my @a = [1, 2], 1, 2; my @shifted = @a.shift.list; say @shifted.perl; say @a.perl 13:33
camelia rakudo-moar 06fef8: OUTPUT«[1, 2]␤[1, 2]␤»
13:33 ely-se left
PerlJam fetches the morning caffiene 13:34
itz_stmuk actually no p6doc doc whatever is installed ..
TimToady n0tjack: don't want to re-invent APL, so we require explicit hyper, X or Z for that, so that it's clear to the reader *how* the operator is to be applied
itz_stmuk moritz: is the target directory for the p6doc pod unchanged or also intended to be "doc"? 13:35
n0tjack TimToady: that does make sense.
of course I'm personally going to override all the arithmetic ops to distribute automatically... 13:36
13:36 ely-se joined
TimToady well, probably the PDLers will too 13:36
13:37 tokuhirom joined
TimToady all is fair if you predeclare 13:37
n0tjack puts that on the QOTD list
TimToady but most mere mortals want their scalar ops they learnt in grade school to stay scalar 13:39
n0tjack that's the problem with grade schools these days, no linear algebra
13:41 tokuhirom left
moritz itz_stmuk: it's also meant to be "doc" 13:45
dunno if we install that directory yet
itz_stmuk its not installed .. it's not clear what mechanism is supposed to copy the files in place via the panda install 13:46
maybe its just a line in the META 13:47
13:48 ely-se left, Ven joined
n0tjack what are the orthographic rules for twigil-style variables? 13:49
sub foo {10*$^n}; sub unifoo {10*$^⍺};
m: sub foo {10*$^n}; sub unifoo {10*$^⍺};
camelia rakudo-moar 06fef8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/rq3WBqaUWA␤Missing required term after infix␤at /tmp/rq3WBqaUWA:1␤------> 3sub foo {10*$^n}; sub unifoo {10*$^7⏏5⍺};␤ expecting any of:␤ prefix␤ term␤»
n0tjack do they have to be ASCII? 13:50
moritz .u ⍺
yoleaux U+237A APL FUNCTIONAL SYMBOL ALPHA [So] (⍺)
moritz n0tjack: no, but they need to be identifier characters
.u alpha
yoleaux U+0251 LATIN SMALL LETTER ALPHA [Ll] (ɑ)
U+0252 LATIN SMALL LETTER TURNED ALPHA [Ll] (ɒ)
U+0386 GREEK CAPITAL LETTER ALPHA WITH TONOS [Lu] (Ά)
n0tjack so if I use greek alpha, I'll be ok
?
moritz m: { $^ɑ } 13:51
camelia rakudo-moar 06fef8: OUTPUT«Too few positionals passed; expected 1 argument but got 0␤ in block <unit> at /tmp/rNSAnMpFuw:1␤␤»
moritz m: { $^ɑ }(1)
camelia ( no output )
moritz n0tjack: yes
n0tjack cool
does that apply to subs as well?
moritz aye 13:52
n0tjack boo, sensible restrictions
13:58 thou joined 14:01 ab6tract left 14:03 Ven left
Zoffix moritz, it's EXTENDED_TESTING based on this document: github.com/Perl-Toolchain-Gang/too...nsensus.md (RE: <moritz> in p5, there's an environment variable that's commonly used for tests that must be able to access the Internet, no?) 14:03
if true, the user or process running tests is willing to run optional tests that may take extra time or ***resources*** to complete. 14:04
14:04 rindolf left
moritz Zoffix: thanks 14:05
14:05 rurban joined
moritz commented in github.com/sergot/http-useragent/issues/83 14:06
14:09 khw joined, cygx_ joined, eliasr left
lizmat jnthn: would it be an idea to nqp:sha all the keys/values of a Set/Bag/Mix to create a .WHICH value ? 14:11
n0tjack m: .u 'quote'
camelia rakudo-moar 06fef8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/mwfg91HZGK␤Two terms in a row␤at /tmp/mwfg91HZGK:1␤------> 3.u7⏏5 'quote'␤ expecting any of:␤ infix␤ infix stopper␤ statement end␤ statement modifier␤ …»
jnthn lizmat: Nah, there are far cheaper hashing algos
n0tjack m: .u quote
camelia rakudo-moar 06fef8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/WgrADX8rWG␤Two terms in a row␤at /tmp/WgrADX8rWG:1␤------> 3.u7⏏5 quote␤ expecting any of:␤ infix␤ infix stopper␤ statement end␤ statement modifier␤ …»
lizmat jnthn: any available in nqp ?
jnthn lizmat: The problem is a bit deeper though
lizmat: No, but the cheap ones are just a handful of integer ops, which we can JIT plenty fast enough 14:12
lizmat: But we can't do that yet
Because ObjAt isn't just about hashing, it's about identity
14:12 cygx left
lizmat ok, scratch that idea then :-) 14:12
14:14 Ven joined
[Coke] (writing things in nqp) someone asked on SE about that, tried to steer them away from nqp. 14:19
er, SO.
TimToady debugging nqp can be...time consuming... 14:20
14:21 Ven left
lizmat yeah, been spending most of today working on Bag/Mix etc, only to have it hang in the optimizer now :-( 14:21
arnsholt Holy crap, yeah. NQP error reporting is special =)
[Coke] updates his answer to that question to mention the more 'internals' style nature of nqp.
14:22 crncosta joined 14:24 Ven joined
itz_stmuk moritz: github.com/tadzik/panda/pull/233 is one solution to the p6doc pod installation problem 14:25
tadzik I thought panda does that!
weird!
[Coke] moritz: I wasn't trying to change anything installed about perl6-doc; I was trying to clean up the -source- of the repository. 14:27
jnthn NQP error reporting would no doubt be better if somebody spent some time improving it :) 14:28
[Coke] So I don't mind if we chat about what is supposed to get installed where now, or if we break the rule in the -source- for perl6-doc and keep lib for pod-for-docs, and real-lib (or whatever) for our source code lib.
itz_stmuk I think "lib" as target is prefered to "doc" and core docs shouldn't be special cased 14:29
[Coke] jnthn: I am happy to consider anything in nqp:: from rakudo space (and therefore all of nqp) as internals. (and therefore we're able to change it to suit our needs)
again, my change was intended to be for source, not target.
itz_stmuk ok 14:30
14:30 Aww left
itz_stmuk so how does it get to the target? 14:30
[Coke] I have no idea. I never installed there. 14:31
I only ever used perl6-doc to build the html site.
itz_stmuk one Awful Hack might be to use sym links :)
[Coke] so, we need to keep perl6-doc source and docs separate. I'm open to discussion on the best way to make that happen.
doesn't work on windows, nonstarter.
itz_stmuk oh yeah
[Coke] there isn't an install target in perl6-doc, so what are you doing? 14:32
lizmat m: use nqp; my $a := nqp::hash(); sub a(Mu \h) { nqp::iterator(h) }; a $a # jnthn shouldn't this just work ? 14:33
camelia rakudo-moar 06fef8: OUTPUT«Cannot iterate object with P6opaque representation␤ in sub a at /tmp/tGUoKsvHDH:1␤ in block <unit> at /tmp/tGUoKsvHDH:1␤␤»
jnthn [Coke]: Yes, I think for the time being that's the way to go. Though in reality the nqp:: opset has undergone quite a lot less churn than Perl 6 itself :)
itz_stmuk "panda install" doesn't install the p6doc pod
jnthn lizmat: No, because NQP objects passed to parameters get hllized
lizmat: So it becomes a real perl 6 hash 14:34
lizmat *sigh*
ok
14:34 virtualsue joined
tadzik itz_stmuk: yeah, looks like it got removed over time for some reason 14:35
itz_stmuk: I can remember it being there though, I think I'll look through commit log and check if maybe someone commented on it while removing it
itz_stmuk ah the plot thickens! 14:36
[Coke] tadzik: the installed docs? Yes, I broke that. :)
14:36 Ven left
skaji how about preparing Build.pm to install p6doc? 14:36
tadzik [Coke]: oh, why? :)
[Coke] because I had no idea that anyone was doing that.
tadzik fair enough :) 14:37
[Coke] I was trying to fix the perl6-doc -source-
tadzik itz_stmuk: so now p6doc expects that?
[Coke] we were treating docs and internal modules as the same thing. I split them out.
itz_stmuk tadzik: the suggested panda change is one way of fixing p6doc pod install 14:38
tadzik ah
[Coke] there should be a perl6/doc ticket to track this issue.
tadzik well, if't is specificaly for p6doc then I'd rather have it have its Build.pm
itz_stmuk well it also seemed wrong that p6doc doc should be a special case
tadzik once panda gets it then we need to consider speccing it too
the idea was that modules would have docs embedded in code 14:39
[Coke] itz_stmuk: perl6-doc is a special case, though.
tadzik mostly
FROGGS Zoffix: I'm just installing your (P5) JavaScripdt::Minifier for $work :o) 14:40
itz_stmuk [Coke]: what's your suggested solution for pod installation?
FROGGS Zoffix++ # thank you
14:41 Ven joined
[Coke] itz_stmuk: "make the install work like it did before" 14:41
Zoffix FROGGS, I'm just a maintainer and I wouldn't use it, because there's a bug :) There's JavaScripdt::Minifier::XS that should work (though it does have XS)
[Coke] but that doesn't mean "revert the repository to the way it was before"
FROGGS Zoffix: what kind of bug? 14:42
Zoffix FROGGS, github.com/zoffixznet/JavaScript-M...r/issues/2
[Coke] if we can make a build.pm target for installation (because we're really installing docs, not our own code), then that's great. then the source follows the conventions (our own code goes in lib for building and running things), and we keep the installed version happy.
14:42 tokuhirom joined, Erendis42 left
Zoffix FROGGS, and the original author is adamant that buggy behaviour should be left there because they rely on it (???)... so even if I had the technical ability to fix it, it'd likely be politically unfeasible to fix it :) 14:43
FROGGS O.o
Zoffix My whole takeover of that module was very strained. As the author forgot they gave comaint to someone else and were then shocked I received comaint from that other person. 14:44
itz_stmuk ok so a Build.pm in p6doc which copies "doc" to "lib" (as before)
FROGGS heh
[Coke] opens github.com/perl6/doc/issues/157 14:45
itz_stmuk: but also probably doesn't install lib. 14:46
(our source copy)
because I don't think we need to install any of the helper classes we use to build the html site, e.g.
14:46 ely-se joined, tokuhirom left
FROGGS Zoffix: ewww, it does not even minify... before the js code is 55687 chars, and afterwards 55679 14:47
Zoffix lol
[Coke] btw, I wonder if our html profile will get any kind of speedup by using smaller names for things in the json data structure. 14:48
that's got to add up at the sizes we're dealing with.
Zoffix FROGGS, this one should be OK: metacpan.org/pod/JavaScripdt::Minifier::XS
FROGGS Zoffix: thanks 14:49
Zoffix I use a module built on top of it and so far don't see issues.
However, I think I was able to get a bit more minification using an online tool than using this module.
itz_stmuk [Coke]: or just use a file compression module in the web server 14:50
14:50 muraiki joined
Zoffix We already do: "Content-Encoding: gzip". At least on the docs page 14:51
14:52 Ven left
[Coke] itz_stmuk: there is no web server. 14:53
I mean when running perl6 --profile
14:53 g4 left
Zoffix ah 14:53
14:55 Ven joined, ely-se left 14:56 chenryn_ joined, Ven left 14:57 Ven joined 14:58 ely-se joined 14:59 Ven left 15:02 huf_ is now known as huf, chenryn_ left 15:03 n0tjack left 15:04 pierrot joined 15:06 jkva left, llfourn left 15:07 KCL_ joined 15:08 AlexDaniel left, n0tjack joined 15:10 KCL left 15:18 Ven joined 15:21 Ven is now known as Guest87784 15:24 ely-se left
n0tjack it's 2015 and I still have to edit my homepage's HTML by hand and FTP it up. 15:24
that feels about as natural as dialing an actual number on an actual deskphone 15:25
pink_mist did that just 3 minutes ago
15:25 xfix joined
arnsholt A proper phone will generally have better sound than a mobile, mind 15:25
pink_mist it's a cordless deskphone though, fwiw 15:26
n0tjack I have a normal deskphone with a cordless headset, but the actual dialing now feels so archaic to me
and there's no backspace key
Zoffix n0tjack, you don't *have* to, it's just the best way :)
...to get what you want
15:26 virtualsue left
n0tjack Zoffix: Well, technically, my webhost *does* allow me to edit HTML files through a web interface -- by dumping the files into a giant textarea and saying "have fun!" 15:27
Zoffix I meant we have tools that autogenerate markup, but you lose some of the precision. The entire demo.xtatik.org/ is powered just by a few lines of code, for example :) 15:28
RabidGravy but, but FTP! 15:30
n0tjack that's a pretty nice framework
Every year I tell myself I'll put some CMS in
but then every year I tell myself I'll move to a better apt, too :)
Zoffix :P 15:31
15:33 hohoho left, diana_olhovik_ left
awwaiid How unhappy does it make #perl6 if I never do "use v6;" ? 15:34
n0tjack awwaiid: I imagine that would make perl5 unhappy
PerlJam awwaiid: I never do that either.
15:34 Guest87784 is now known as Ven_
n0tjack but I think we're past the days when perl6 was considered a continuation / replacement for v5 15:34
awwaiid well my files are like .pm6 so I think perl5 won't mind 15:35
moritz awwaiid: well, it doesn't make me unhappy, unless I want to read your code and it's wrongly syntax highlighted, or unless I run your code with p5 and get a crappy error message
n0tjack I don't think it's likely "perl" will ever be aliased to "perl6"
15:35 edehont joined, edehont left
PerlJam n0tjack: "Ever" is a long time. It could still happen eventually 15:35
15:36 edehont joined
n0tjack PerlJam: Sure, but I think there's been a philosophical shift over the last few years which has removed, or at least diminished, the motivation for doing that. 15:36
PerlJam aye
awwaiid alright 15:37
well I can always put it in there later if I find a reason. thanks!
n0tjack hides the fact that he literally typed "perl blah.p6" the other day and was baffled for like 2 minutes at the error message 15:38
15:39 lichtkind joined
awwaiid heh 15:40
15:40 jkva joined
n0tjack how does the regex list-delimiting syntax % work in (a) a rule (i.e. with sigspace) and (b) where I want the delimiter to be whitespace? 15:42
15:43 FROGGS left
n0tjack in other words, if I want to create a grammar whose TOP is /[stuff ]+/, should I use a rule? 15:43
15:44 pierrot left
RabidGravy I tend to "use v6" for the reasons that moritz stated and also I personally don't like calling things '.p[lm]6' so it gives me a chance to recognize the perl 6 files 15:45
15:45 crncosta left, Ven joined, Ven_ left, Ven left 15:46 pmurias joined 15:47 synbot6 joined
PerlJam n0tjack: sigspace handling is described at S05:1146 15:48
synbot6 Link: design.perl6.org/S05.html#line_1146
15:48 Ven joined 15:49 domidumont left 15:55 larion left 15:57 abraxxa left
awwaiid keeps looking for a modula2 vs modula3 head-to-head comparison to analogize perl5 vs perl6 16:00
16:02 zakharyas left 16:03 user3 joined 16:05 user3 left 16:10 andreoss joined 16:11 loren left
awwaiid Can someone help me with simple module usage? gist.github.com/awwaiid/bc3e4f8d9352e35bb531 -- I was basing it off of some 2009 advent entry 16:11
n0tjack PerlJam: gracias 16:12
moritz awwaiid: "our sub hello" 16:14
awwaiid iiinteresting
PerlJam awwaiid: subs are lexical in P6 16:15
moritz awwaiid: or "sub hello() is export { ... }" and then use the unqualified name
awwaiid yeah, I specifically want the qualified name in this case
also the docs say that is export is supposed to work for modules not packages, but I think it works for packages
(also) 16:16
thanks moritz, that worked
16:18 rurban left 16:23 ofzyh joined 16:24 virtualsue joined 16:25 ^elyse^ joined 16:26 rurban joined 16:27 woodruffw left 16:28 woodruffw joined
RabidGravy awwaiid, afaik it works in package, module and class as they all create a "package" that can be exported from :) 16:30
16:30 jkva left 16:33 FROGGS joined 16:34 hohoho joined
dalek c: c90c919 | (Steve Mynott)++ | Build.pm:
Fix the p6doc command line tool by installing pod in the usual place. This
16:34
16:36 leont left 16:38 Kogurr joined, hohoho left
[Coke] steve++ 16:39
can probably close out #157 with that.
RabidGravy itz_stmuk++ # Weeeeeeeeeeeeeeeeee
dalek c: 30ef615 | (Steve Mynott)++ | Build.pm:
oops
16:40
16:40 vendethiel joined 16:41 Larry joined
Larry Hello 16:41
16:41 Larry is now known as Guest77081
Guest77081 Any body here? 16:41
RabidGravy nope 16:42
n0tjack I'm not here. 16:43
dalek c: 1361821 | (Zoffix Znet)++ | html/js/main.js:
Autofocus on search on page start (Closes #156)
Guest77081 I'm here to say that Perl is ugly.
n0tjack I'm in the abstract space of arguing with p6 about the correctness of a grammar. 16:44
Ven n0tjack: have you tried the debugger? :P
n0tjack it's like having a debate with a misshapen shadow on Plato's wall
Ven Guest77081: noted, thanks!
16:44 ZoffixW joined
ZoffixW Guest72901, so? 16:44
n0tjack Ven: Nope. I haven't used a proper debugger in a long, long time. My debugger is `say`.
Ven ZoffixW: wrong tab :)
Guest77081 I repeat, I'm here to say that Perl is ugly. 16:45
Ven Guest77081: we noted it the first time, thank you!
ZoffixW Too many guests :)
Ven Yay, that's a working piece of Perl 6 code \o/.
Guest77081 ??
jnthn n0tjack: Grammar::Tracer is like something that writes a lot of say statements for you :) 16:46
lizmat
.oO( ugliness is in the eye of the beholder )
n0tjack oooh
you're my best bud
jnthn (Just traces all the grammar rules you enter/exit, in a tree)
Ven Guest77081: what's wrong? You want a taste of Perl 6 as well? :-)
ZoffixW m: sub prefix:<¯\_(ツ)_/¯>($msg) { say $msg }; ¯\_(ツ)_/¯ “Perl is ugly? Who cares :D” 16:47
camelia rakudo-moar 06fef8: OUTPUT«Perl is ugly? Who cares :D␤»
Guest77081 Because of excessive used of symbol/punctuation make your Perl code ugly. That's why its ugly.
ZoffixW Guest77081, yes, but it also makes the code very concise and expressive.
Ven Guest77081: Well, to each their own :). It's fine if you don't like it 16:48
lizmat
.oO( I guess you have to get used to it )
ZoffixW Guest77081, so instead of typing preg_mach_return_array_or_whatever() you type ~~//
16:48 eliasr joined
Guest77081 This should fix in Perl 6, Larry promised to fix that but he added more symbols in Perl 6 that make more worst, I think. 16:48
[Coke] Guest77081: you're a little late to the party. You're welcome to use perl 6 as a base and add your own custom built slang on top of it, though. 16:49
ZoffixW Guest77081, you should try Python. It's essentially executable pseudo code.
[Coke] anyway, have a good day. I hope you find a language you like!
ZoffixW Yeah :)
\o/
Guest77081 What Python? Its snake? 16:50
flussence (unless you want to deal with strings, which have about a billion different quoting/formatting constructs in python 3.5)
[Coke] Guest77081: www.python.org/
RabidGravy :-O
tadzik snaaake! Snaaaaaaaaakeee!
Guest77081 Stop trolling around :D 16:51
pink_mist what's wrong with punctuation? almost every single language I know uses period, command, and semicolon almost exactly like perl6 does
flussence and T_PAAMAYIM_NEKUDOTAYIM!
pink_mist s/command/comma/
Guest77081 Visual basic don't use semicolon
pink_mist VB is not a shining example of excellence 16:52
[Coke] imagines someone giving a perl 6 talk somewhere right now, and mentioning how nice the channel is, and someone in the presentation logging in as a Guest77081 to test it out.
ZoffixW lol :D Possibly :)
RabidGravy there are 9 different genera of pythonidae 16:53
n0tjack jnthn: dude this is exactly what I'm looking for. And I love that just had to "use Grammar::Tracer" and that's it.
jnthn :) 16:54
Hope it helps you hunt the problem
n0tjack well, it's telling me I got the match i was expecting
my problem is I'm not seeing that in the .perl of the Match object 16:55
so I'm doing something silly
Guest77081 o_0
flussence [Coke]: about the profiler output size, I noticed a while back the json is about 50-60% repeated string keys which are always in the same order, save for 2 optional nested structures in each object. They could probably all be arrays.
unfortunately fixing that involves changing moarvm code, which is too scary for me 16:56
n0tjack Guest77081: (If (you (prefer (simplicity (to (expressiveness (you (can (always (use (Lisp)))))))))
jnthn flussence: Actually the serialization to JSON is done in NQP code...or at least, it was when I implemented the thing :)
[Coke] jnthn: you have any objection to flussence's suggestion there of converting from a hash to an array for some of the profiler data/
Guest77081 Lisp is too old for that. 16:57
flussence the serialization is, but it just iterates over a hash that comes from mvm-land
n0tjack too old for what?
[Coke] right, the DS in moarvm doesn't have to be updated, it's the rendered JSON that matters.
flussence: right, we can keep a hash in mvm.
n0tjack you want a "new" Lisp, check out Clojure
or use the Lisp that's been implemented in p6 ;)
jnthn [Coke]: Not really, though I've a hunch that the performance of the profiler UI is more related to what we do with the JSON rather than the JSON itself 16:58
[Coke] n0tjack: I think you're missing some closing )s there. :P
flussence
.oO( using Angular doesn't help :)
Ven Guest77081: clochure is great
n0tjack [Coke]: irssi's autocomplete leaves a lot to be desired
^elyse^ Ven: lol Clochure 16:59
jnthn flussence: Well, it helped me write the UI so I had it in time for my presentation. :P But yeah. :)
17:00 ZoffixW left
RabidGravy I'm not sure there's a lot of call for bracket matching in IRC clients 17:00
Guest77081 Goodbye Perl 6. Maybe I use Clojure. :)
pink_mist enjoy
RabidGravy byeee have fun
17:00 Guest77081 left
RabidGravy you just don't get the quality of troll these days 17:01
pink_mist n0tjack: my irssi completes [Coke]'s nick just fine without needing to start it with [ fwiw
jnthn #perl6++
n0tjack pink_mist: if I type C<tab>, I get camelia first, then have to cycle through a bunch to get to [Coke] 17:02
17:02 firstdayonthejob joined
pink_mist n0tjack: well alright I guess that's annoying =) 17:02
[Coke] yah, sorry, someone had already grabbed Coke by the time I hit freenode. :) 17:03
17:03 pmurias left 17:05 larion joined, Ven left 17:06 dakkar left
n0tjack well, I'm supposed to be notjack but I either I registered that nick and lost the pw, or in my long absence from IRC, someone grabbed it. 17:08
17:08 zacts joined 17:09 thou left
n0tjack Just a sanity check: I want "regex TOP { <number>* %% \s+ } 17:12
" to mean "a string consisting of any number of numbers (which I define later) separated by whitespace"
am I off-base/
RabidGravy seems alright to me 17:13
but my brain doesn't do regex
n0tjack I'm comfortable with regex, even the new p6 kind; I'm less familiar with the objects and structures around it, like Match objects and ASTs etc 17:14
Grammar::Tracer is telling me I have the matches I expect, but the Match object doesn't contain any tokens or pieces 17:15
jnthn n0tjack: Does it not point out any match failures at any point?
n0tjack no, it ends with MATCH
and the Match is truthy
but I'm not sure I'm being clear to p6 that I want it to give me the tokens it found. 17:16
jnthn Is it truthy without the tracer?
n0tjack let me check
17:16 patrickz joined
n0tjack yes 17:17
17:20 thou joined, Ch0c0late joined
n0tjack nm, it was me being dumb (twist ending, I know) 17:22
17:23 ZoffixW joined
ZoffixW I'm having trouble finding where sub MAIN is documented. Any hints? 17:23
moritz ZoffixW: probably in the design docs and various blog posts only :/ 17:24
ZoffixW Ah :(
17:24 raiph joined, kmel joined
ZoffixW This is good enough for me: perl6advent.wordpress.com/2010/12/...main-subs/ 17:25
lizmat rakudo.org/2015/10/11/announce-wind...e-2015-09/ # FROGGS++
ZoffixW What's JIT? 17:26
timotimo just-in-time compiler
lizmat S99:JIT
synbot6 Link: design.perl6.org/S99.html#JIT
ZoffixW Thanks.
n0tjack ZoffixW: I'll warn you that my limited experience with sub MAIN tells me it's difficult to use it for MDM while at the same time having any kind of shared code between the multis 17:27
which isn't a problem if you don't mind a little repetition between the multis
timotimo what is MDM?
17:28 jkva joined
n0tjack sorry, MMD 17:28
multi method dispatch
17:28 cygx_ is now known as cygx
timotimo ah 17:28
17:28 raiph left 17:29 Peter_R joined
n0tjack I do think that will end up hampering the utility of multi sub MAIN 17:29
timotimo i don't really understand what you mean there :( 17:30
17:31 jkva left 17:32 rurban left
n0tjack timotimo: multi sub MAIN(Int $i) {$result = $i + 17;}; multi sub MAIN(Str $s){$result = $s ~ " cheeses";}; # if i want to .say the result of any invocation of main, how do I do that, without expliciting repeating that .say in each of the implementations? 17:32
timotimo you could put that into MAIN's proto
n0tjack timotimo: Yeah, but if you have MAINs which call other MAINs (i.e. you have a main MAIN), then you get repeated .says 17:33
timotimo ah, good point
n0tjack it will be very common to have one multi MAIN call another
17:33 Kogurr left
timotimo i agree 17:33
you can have a lexical outside the MAIN and with an END phaser output its value
and update that from the MAIN subs
n0tjack timotimo: I was wondering if I could use a phase 17:34
r
can you show me a short example?
lizmat m: LEAVE say "goodbye"
camelia rakudo-moar 06fef8: OUTPUT«goodbye␤»
timotimo m: my $result; sub MAIN() { say "whoa, dude"; $result = 10; }; END say $result 17:35
camelia rakudo-moar 06fef8: OUTPUT«whoa, dude␤(Any)␤»
timotimo oh?
that's ... weird
lizmat timotimo: where did MAIN get called ?
lichtkind can anybody tell me please what he feels is special about the perl 6 lang design process compared to whatever he likes it compare to
timotimo lichtkind: automatically
er
lizmat: automatically
lichtkind i mean i know some stuff but i like to have your opinions for an article
n0tjack well, the nice thing about the p6 design process specifically is it resulted in p6... 17:36
haven't seen any other design processes do that
lichtkind haha
huf :DDDDDDD
lichtkind timotimo: i dont quite understand
timotimo i accidentally tab-completed your name
i hit "li" and then tab 17:37
turns out you said something JUST the moment before that :)
lizmat m: my $a; $a = 42; END say $a # timotimo golfed
camelia rakudo-moar 06fef8: OUTPUT«(Any)␤»
timotimo :( 17:38
nobody has tests for this, eh?
ZoffixW m: my $a; $a = 42; END { say $a } # timotimo golfed
camelia rakudo-moar 06fef8: OUTPUT«42␤»
lizmat I seem to recall there's a ticket for this
timotimo ah, OK
n0tjack S99: LEAVE
17:38 vendethiel left
lizmat dinner& 17:41
lichtkind good nom 17:43
timotimo but you can answer it anyway if you like
timotimo i don't know, dood
ZoffixW
.oO( it'll take me forever to get used to panda—unlike cpanm—requires explicit 'install' )
17:46
masak m: my $a = 42; END say $a 17:47
camelia rakudo-moar 06fef8: OUTPUT«(Any)␤»
masak probably a case of binding to the wrong pad.
m: constant $a = 42; END say $a
camelia rakudo-moar 06fef8: OUTPUT«42␤»
17:47 sQuEE` is now known as sQuEE
masak m: my $a; BEGIN { $a = 42 }; END say $a 17:47
camelia rakudo-moar 06fef8: OUTPUT«42␤»
masak yep.
m: my $a; BEGIN $a = 42; END say $a
camelia rakudo-moar 06fef8: OUTPUT«42␤»
masak clearly the 'orst' END binds to the static lexpad. 17:48
masak .oO( END, u are the orst )
17:48 kmel left, Kogurr joined
ZoffixW Hm. What's going on: panda install Pastebin::Gist: Project Pastebin::Gist not found in the ecosystem 17:49
Ah, I need panda update
17:50 kmel joined 17:53 mayuresh joined
mayuresh hello all ... :) 17:53
ZoffixW \o
mayuresh been away for a while due to health conditions.
kmel hello
gfldex m: say "ohai kmel!"; 17:54
camelia rakudo-moar 06fef8: OUTPUT«ohai kmel!␤»
kmel :)
mayuresh if mr. wall is around, would like to convey that "i am still interested in working on that p6 execution environment" i had mentioned before.
just got physically damaged badly, and hence couldn't do much for the past 7~8 months. 17:55
ZoffixW 0.o
kmel I am new to perl6 (and programming in general). Had a couple of programming courses (C and Java) back in college. 17:57
mayuresh cool, then you aren't new to programming in general! :)
kmel, welcome to p6 land. :)
kmel thank you mayuresh 17:58
mayuresh kmel, what do you wish to do with perl6?
kmel it's even the first time I use an irc client 17:59
mayuresh :D
ZoffixW :D
Congrats!
kmel thanks
mayuresh yeah, the first time, 'irc' does get overwhelming. :)
ZoffixW -NickServ- Information on Zoffix (account Zoffix): Registered : Jul 31 02:56:07 2006 (9y 10w 5d ago)
:)
kmel Lol Grandpa ZoffixW 18:00
mayuresh :)
18:00 n0tjack is now known as notjack
kmel how do you reply to someone? 18:01
ZoffixW You mean private message?
kmel when mayuresh replied to me, the messages were green
ZoffixW Ah, just type their nick. Or type part of it and hit TAB
Kogurr kmel: just put their name somewhere in the message
kmel like that Kogurr ? 18:02
Kogurr yes :D
kmel aha Great :)
18:02 rindolf joined
mayuresh kmel, which 'irc' client are you using? 18:02
18:02 llfourn joined
ZoffixW HexChat 18:02
kmel HexChat
it comes installed linux mint 18:03
mayuresh oh, okay.
18:03 notjack is now known as n0tjack
mayuresh kmel, once you get used to 'irc' via hexchat, try "ircii". 18:03
it's a lot lighter and hence responsive.
n0tjack mayuresh: most commands in IRC are introduced by prefixing a "/" to the line you're trying
if you want to send a user a private message, for example, you'd say /msg username message goes here 18:04
masak ooh, so it does
kmel will try it mayuresh
timotimo i'm not sure how it is with hexchat, but with "/query nickname", you'll usually get an extra tab open for a private conversation 18:05
mayuresh n0tjack, i think it was kmel you wanted to write to. :)
timotimo not every irc client opens up such a tab when you /msg
grondilu what do they do then?
n0tjack mayuresh: it was indeed ;)
kmel I was reading tablets.perl6.org/tablet-3-variables.html#array
timotimo hm. actually, i think i am wrong about that part
kmel and i am confused about the flat function 18:06
18:06 vendethiel joined
mayuresh i am looking for a name for my pet project; a perl6 execution environment, and am quite at a loss of ideas. 18:06
kmel say ((1, 2), (3)).elems; #2
mayuresh have been contemplating "titli" which is butterfly in an indian language 18:07
kmel say ((1, 2), (3)).flat.elems; #3
18:07 llfourn left
ZoffixW kmel, the first has two elements: (1, 2) and (3); .flat flattens that to (1, 2, 3), which is three elements 18:09
kmel my @array2 = [1..6],[7..15];
say @array2;
my @array3 = @array2.flat;
say @array3
n0tjack kmel: try prefixing those statements with m: 18:10
kmel both return [[1 2 3 4 5 6] [7 8 9 10 11 12 13 14 15]]
18:10 thou left
n0tjack m: say ((1,2,3),(4,5)).flat; 18:10
camelia rakudo-moar 06fef8: OUTPUT«(1 2 3 4 5)␤»
timotimo something about the [] brackets vs the () parenthesis
18:11 thou joined
kmel i thought that @array3 should return [1..15] 18:11
FROGGS moritz++ # :D-mail
kmel any ideas what i did miss?
FROGGS m: my @array2 = [1..6],[7..15]; my @array3 = |@array2; say @array3 18:12
camelia rakudo-moar 06fef8: OUTPUT«[[1 2 3 4 5 6] [7 8 9 10 11 12 13 14 15]]␤»
kmel m:my @array2 = [1..6],[7..15];
say @array2;
my @array3 = @array2.flat;
say @array3
FROGGS no newlines in here please
kmel oh. sorry fro
Sorry FROGGS
FROGGS :o) 18:13
awwaiid m: sub local-eval($cmd) { EVAL $cmd, context => CALLER:: } ; sub dostuff { my $x = "fish"; local-eval q[$x = 2]; say $x } ; dostuff
camelia rakudo-moar 06fef8: OUTPUT«2␤»
mayuresh kmel, you can type the names in all small, no worries, we'll understand. 18:14
:)
awwaiid m: sub local-eval($cmd) { EVAL $cmd, context => CALLER:: } ; sub dostuff { my $x = "fish"; local-eval q[my $x = 2]; say $x } ; dostuff
camelia rakudo-moar 06fef8: OUTPUT«fish␤»
FROGGS m: my @array2 = [1..6],[7..15]; my @array3 = @array2».Slip.flat; say @array3 # that works but is there an easier way?
camelia rakudo-moar 06fef8: OUTPUT«[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15]␤»
awwaiid Can I make EVAL with a context declare new my vars?
FROGGS awwaiid: no
awwaiid: variable declaration (and lookup) is compile time, EVAL is runtime 18:15
awwaiid interesting. I'm trying to build a REPL type thingie that can be used like ruby binding.pry, and it would be kinda handy to somehow have that
FROGGS awwaiid: our REPL is a thing that EVALs every line 18:16
awwaiid but maybe it makes no sense
awwaiid goes to look at the existing REPL
FROGGS so the second EVAL has the first EVALs context
and then you can probably see variables declared in the first EVAL in the second
psch afaiu, our REPL effectively opens a new lexical scope for every statement though 18:17
gfldex m: my $a = [1..3],[4..6]; dd $a; # oi!
camelia rakudo-moar 06fef8: OUTPUT«Array $a = $[1, 2, 3]␤»
psch although people smarter than me said we need to do it like that due to... something? :)
FROGGS gfldex: yes, you dropped the [4..6] onto the floor
[Coke] catching up. does "execution environment" mean something in particular?
gfldex FROGGS: a warning that i might hurt my feet would be nice. Is that LTA? 18:18
FROGGS psch: isnt EVAL a new lexical scope?
gfldex: I guess so...
star-m: my $a = 1, 2 18:19
camelia ( no output )
psch FROGGS: huh, i guess so, yeah
right, so there's no concern there
FROGGS right
18:19 zacts left
psch i was just thinking of the '<line 1> { <line 2> { <line 3> }}}' explanation i read somewhere... 18:19
FROGGS we probably want new scoped that you dont get redeclaration errors when re-doing stuff
psch -unbalanced_curlies 18:20
FROGGS scopes*
:P
mayuresh Coke, did you get any of my messages?
i missed the square brackets in your name. :(
gfldex m: my $a = [1..3],[4..6]; dd $a; my $b = 1,2;
camelia rakudo-moar 06fef8: OUTPUT«WARNINGS:␤Useless use of constant integer 2 in sink context (line 1)␤Array $a = $[1, 2, 3]␤»
kmel i see () and [] behave differently
what is the rationale behind it? 18:21
gfldex kmel: they do and there may still be bugs with lists of lists
mayuresh kmel, () [] behave differently as well as look different too. ;)
to me atleast. :) 18:22
kmel because if you do this:
m:my @bracket = [1,2,3]; my @parentheses = (1,2,3); say @bracket.WHAT; say @parentheses.WHAT;
psch kmel: need the space after the colon
kmel m: my @bracket = [1,2,3]; my @parentheses = (1,2,3); say @bracket.WHAT; say @parentheses.WHAT;
camelia rakudo-moar 06fef8: OUTPUT«(Array)␤(Array)␤»
kmel thanks for the hint psch 18:23
[Coke] mayuresh: I see no sends from you, no.
timotimo assigning to an @-sigiled variable is "list assignment", so it'll put the values into the array
mayuresh [coke], the execution environment is supposed to be a combination of a compiler and vm
skids m: my @bracket := [1,2,3]; my @parentheses := (1,2,3); say @bracket.WHAT; say @parentheses.WHAT;
camelia rakudo-moar 06fef8: OUTPUT«(Array)␤(List)␤»
kmel they are both arrays
Kogurr m: my @array2 = [1..6], [7..15]; say map { join ',', $_ }, @array2;
camelia rakudo-moar 06fef8: OUTPUT«(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)␤»
[Coke] mayuresh: ok. Doesn't rakudo theoretically already have that?
psch m: (1,2,3).WHAT.say; [1,2,3].WHAT.say
camelia rakudo-moar 06fef8: OUTPUT«(List)␤(Array)␤»
mayuresh [coke] doesn't rakudo build stuff for moarvm?
psch kmel: that's because, as timotimo says, assigning into a @ makes it an array
because that @ already makes the corresponding variable an array 18:24
m: my @a; say @a.WHAT
camelia rakudo-moar 06fef8: OUTPUT«(Array)␤»
[Coke] or JVM, or (soon) node, yes.
timotimo mayuresh: that sounds very unspecific; i.e. rakudo-on-moarvm is already a compiler and a vm
[Coke] What are you proposing that's different from the current model?
18:24 Alina-malina left
mayuresh [coke] i find it mightly uncomfortable to have a language like perl be compiled and then separately executed 18:24
i loved what the google guys have done with "dart". 18:25
[Coke] timotimo: right, that's why I'm trying to find out if there's something specific being proposed here and I just don't get the terminology (which happens to me a lot here)
psch mayuresh: so you're proposing a monolithical implementation?
mayuresh psch, yes
timotimo FWIW, you don't have to pre-compile your libraries and scripts
[Coke] oh. well, feel free to use the roast test suite to test your version, and good luck.
mayuresh coke, thanks. :) 18:26
psch yes, good luck :)
in case C++ would be your choice, there's a start here: github.com/BizarreCake/Arane
mayuresh my efforts have been delayed due to health issues, hope your luck prevents any other such stuff
kmel skids what does := do that is different than plain = ? 18:27
mayuresh psch, yeah, you had shown me bizarrecake's stuff around 7 months back. :)
[Coke] there are lots of other projects (aside from rakudo) that might have some inspiration. (pugs, niecza, perlito, yapsi...)
skids It "binds" which means it connects the variable name directly to the item with no container in between.
kmel aha thanks skids 18:28
psch mayuresh: oh, right, i think i remember
18:28 Alina-malina joined
[Coke] I am really surprised to see yapsi commits this year. 18:28
mayuresh psch, and i had told you that i am going to do the same thing in c89. :)
18:28 jkva joined
mayuresh hope i don't end up messing it up this time. ;) 18:28
psch mayuresh: that i had forgotten. well, if it works out it's probably useful, and if not you're bound to learn lots 18:29
mayuresh psch, yes, that's the whole attitude i am carrying. :)
18:29 zakharyas joined
kmel ah ok i got it now, thanks psch 18:30
18:30 edehont left
mayuresh alrighty, it's mid-night out here, gotta hit bed, day begins at 0600 tomorrow. 18:30
[Coke] ``
er, ~~
18:30 diana_olhovik joined
mayuresh have a good time ahead people :) 18:30
kmel does list have a sigil (like @ for array?) 18:31
ZoffixW Is there a way to make a multi that checks something not related to it, like %*ENV? Basically I want one multi to run if %*ENV<FOO> is set, and run another multi if it's not set
18:31 mayuresh left 18:32 jkva left
psch m: multi f (:$ where %*ENV<LANG> eq 'POSIX') { say "posix!" }; multi f (:$ where %*ENV<LANG> eq 'C') { say "C!" }; f 18:32
camelia rakudo-moar 06fef8: OUTPUT«posix!␤»
psch anonymous named parameters \o/ 18:33
ZoffixW: that's a bit abusive though...
ZoffixW Hm
Alright.
[Coke] kmel: nope. no separate top level sigil.
gfldex m: multi foo(where %*ENV<FOO>){} 18:34
camelia rakudo-moar 06fef8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/9VIOpi3j41␤Cannot do non-typename cases of type_constraint yet␤at /tmp/9VIOpi3j41:1␤------> 3multi foo(where %*ENV<FOO>7⏏5){}␤»
psch m: sub f(:$, :$) { } 18:35
camelia rakudo-moar 06fef8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/WkZDxuLHuC␤Name used for more than one named parameter␤at /tmp/WkZDxuLHuC:1␤------> 3sub f(:$, :$)7⏏5 { }␤»
psch heh
m: sub f(:$, :@) { } 18:36
camelia rakudo-moar 06fef8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tUsuNOETy6␤Name used for more than one named parameter␤at /tmp/tUsuNOETy6:1␤------> 3sub f(:$, :@)7⏏5 { }␤»
ZoffixW What's wrong with this? I'm getting a pointy block instead of the content of the file: %paste{$_} = { content => @files[$_].IO.slurp } for @files; 18:37
kmel ok thanks everyone. I will go back to test what i just found. 18:38
psch m: my $x = do { line => $_ } for lines(); say $x
camelia rakudo-moar 06fef8: OUTPUT«line => Atá beo go buan gan bhuairt gan ghruaim fá ghleanntáin ghlas’ Ghaoth Dobhair. ␤»
psch ZoffixW: you have to do the block to not assign it
18:38 diana_olhovik left
psch (or invoke it, i suppose...) 18:38
kmel see you later
psch bye kmel
gfldex ZoffixW: you basicly did: (%paste{$_} = { content => @files[$_].IO.slurp }) for @files; 18:39
ZoffixW gfldex, that was my intent
18:39 kmel left
ZoffixW I want the filename to be the key and the value to be a hashref with key `content` assigned the contents of the file 18:39
psch, that gave me more weird errors "Cannot convert string to number: base-10 number must begin with valid digits or" :S
gfldex so you assinged a block to %paste as often as @files.elems; 18:40
psch ZoffixW: that's probably because @files containts non-digit-only filename
+s
ZoffixW Programming is hard >_<
psch @files[$_] for @files # is somewhat anti-patternish, in my eyes
18:40 mscha joined
mscha p6: my Int $i = 42; say $i; $i /= 2; say $i; 18:41
camelia rakudo-moar 06fef8: OUTPUT«42␤Type check failed in assignment to $i; expected Int but got Rat␤ in block <unit> at /tmp/tmpfile:1␤␤»
gfldex ZoffixW: in my %foo all keys are of type Str
psch p6: my Int $i = 42; say $i; $i div= 2; say $i;
camelia rakudo-moar 06fef8: OUTPUT«42␤21␤»
mscha Ah. Makes sense. 18:42
dalek c: 2eba769 | (Steve Mynott)++ | Build.pm:
shoichikaji++ show copied files
18:43 mr_ron left, mr_ron joined
jdv79 ZoffixW: how did you get that info from nickserv? 18:44
ZoffixW /nickserv info Zoffix
Why does it need a digit-only filename? <psch> ZoffixW: that's probably because @files containts non-digit-only filename 18:45
jdv79 oh. i thought i tried that. i got you beat by a bit. 2004-01-30.
ZoffixW Man. Perl 6 magic is waning on me.
moritz \o
thescienceweb.wordpress.com/2015/1...rned-on-2/
ZoffixW o/
18:45 domidumont joined
ZoffixW Heh. That article is obviously satire :) 18:46
pink_mist moritz: 0_o is that meant to be a parody post or something? 0_o
.. right
psch ZoffixW: you're using the name of the file as key for @lines 18:47
moritz it made me chuckle
psch hence my "anti-patternish" comment :)
ZoffixW psch, oh. Thanks. Now I got it! :)
18:47 Jaglor joined
pyrimidine moritz: I do like "Dodgy Perl 5 scripts were behind the financial crisis of 2008, the collapse of Enron and the assassination of Archduke Franz Ferdinand." 18:47
ZoffixW Yey. It works now. I think. 18:48
18:48 telex left
ZoffixW I'm still not clear on how to create multi-level hashes. Using this right now, %paste{$_} = ( content => $_.IO.slurp ) for @files;, but say %paste.perl produces a mess and I can't figure out if it got it right or not :) 18:49
n0tjack what is %paste.keys()?
and, taking one of those keys, the literal value, what is %keys<literal-value-of-key>? 18:50
18:50 telex joined
moritz ZoffixW: %paste{$_}<content> = slurp($_) for @files 18:50
ZoffixW n0tjack, seems like it did The Right Thing™ 18:51
moritz, thanks. That's much better
18:53 Kogurr left
gfldex m: my %h; %h{'multi';'level'} = 1; dd %h; # ZoffixW 18:53
camelia rakudo-moar 06fef8: OUTPUT«Hash %h = {:multi(${:level(1)})}␤»
ZoffixW Thankls
jdv79 so now WWI, and by extenstion WWII, is partly Perl's fault? insanity. 18:54
n0tjack jdv79: in case it wasn't clear, that article was satire
as any article which claims it's possible to get Perl developers to act like normal human beings must be.
18:55 mscha left
jdv79 unless Larry was alive in 1914, and we can computing, its pretty crystal:) 18:57
n0tjack The Larry has always existed; he just didn't choose to Reveal Himself for a while. 18:58
jdv79 what do these mythical "Perl developers" behave like then?
n0tjack paronomasiacs 18:59
wow, grammars are cool 19:02
I don't know anything about real lexers or parsers, but this is easy
jdv79 its also slow:( 19:05
19:05 ChoHag left
n0tjack yeah, but right now speed isn't a big concern for me. I write programs for myself, not others. The bigger deal for me is the current inconveninent state of the documentation. 19:06
psch documentation is hard, let's go programming 19:07
TimToady & the Mrs sitting at PIT 19:08
muraiki TimToady: go check out the dinosaur 19:10
I think there's a fairly large dinosaur of some sort on display there 19:11
TimToady we saw it on the way in
muraiki yay
I forgot where itw as
TimToady looked like a T Rex or so
muraiki I had to bail yesterday at lunch, came down with a cold :( but PPW was fun; my first perl conference
FROGGS my son thinks this thing is called Dinosaurus Rex 19:12
muraiki hahaha
dalek osystem: bf408f4 | (Zoffix Znet)++ | META.list:
Add App::Nopaste to eco
rl6-most-wanted: 419726a | (Zoffix Znet)++ | most-wanted/modules.md:
Remove App::Nopaste from the list as it already exists
19:13
psch FROGGS: did you have another look at the jvm SC thingy?
FROGGS feels dirty after dealing with mod_perl
psch: I looked at it... but I dunno what to do about it
19:14 rindolf left, domidumont left
psch ah, yes, that's where i am at as well 19:15
jdv79 mod_perl is fun
19:15 Hor|zon_ joined 19:16 rindolf joined
psch thing is, i'm unsure if the SC confusion could be behind other bugs or if we can just let 52e409ec stay 19:16
19:16 Upasaka joined 19:18 Hor|zon left
FROGGS if I had to bet I'd say it is the former 19:21
lizmat starts working on P6W 19:25
19:28 Hor|zon joined
psch FROGGS: gist.github.com/peschwa/e9c27c61e1a840f251c2 is a bit interesting - it throws twice..? 19:29
(that's nqp HEAD + revert 52e409ec and rakudo HEAD)
FROGGS does it fail to construct the exception?
19:30 jkva joined
psch i'd assume so 19:30
the lowest line in the backtrace is the try block in print_exception
19:31 Hor|zon_ left
psch &sink is a mystery to me though 19:32
19:34 jkva left, sQuEE is now known as sQuEE` 19:37 sQuEE` is now known as sQuEE 19:38 vendethiel left
FROGGS doesnt sink just make the exception fatal? 19:39
beause nothing handled it?
19:39 andreoss left 19:41 zakharyas left
psch well, i'm just saying i don't the nqp::handle call... :) 19:41
lichtkind FROGGS ? 19:42
FROGGS lichtkind: ?
psch +get 19:43
lichtkind FROGGS what would you say is unique about p6 design process
19:43 vendethiel joined
[Coke] lichtkind: you're asking us to compare p6 against the design process for other languages that we haven't necessarily been involved in? 19:43
19:44 colomon left
lichtkind no its was rather ment as addition case you have knowledge of other processes 19:44
psch FROGGS: on the plus, the inner exception is about Attribute as well 19:45
so it seems to be specific to Attribute
FROGGS lichtkind: well, I imagine that not all software projects allow a huge number of ppl to be involved in the design at all 19:46
lichtkind: but as [Coke] said, I have almost no experience, except what happens in #perl6
lichtkind yes i hoped timotimo had some py xp 19:47
19:47 tokuhirom joined
cygx m: my @a = <a b c>; (any(@a) ~~ /\s/).say 19:48
camelia rakudo-moar 06fef8: OUTPUT«「any(Failure.new(exception => X::OutOfRange.new(what => "Start argument to substr", got => "8", range => "0..1", comment => "use *8 if you want to index relative to the end"), backtrace => Backtrace.new), Failure.new(exception => X::OutOfRange.new(what =…»
FROGGS psch: maybe this causes trouble on jvm? gen/jvm/CORE.setting:3913:BEGIN Attribute.^compose;
cygx ^ what's up with that?
FROGGS psch: looks like Attribute in special in that regard
cygx or do junctions only work at the right-hand side of ~~ ? 19:49
19:49 colomon joined
psch FROGGS: i'll try killing that line... :) 19:50
FROGGS me too
psch m: (1|2) ~~ { $_.say } 19:51
camelia rakudo-moar 06fef8: OUTPUT«any(1, 2)␤»
psch m: (1|2) ~~ m/./
camelia ( no output )
psch m: (1|2) ~~ /./
camelia ( no output )
psch m: (1|2) ~~ /\s/
camelia ( no output )
FROGGS m: say (1|2) ~~ /./
camelia rakudo-moar 06fef8: OUTPUT«「any("1", "2")」␤»
psch m: any(<a b>) ~~ /\s/
camelia ( no output )
psch m: (any(<a b>) ~~ /\s/).say
camelia rakudo-moar 06fef8: OUTPUT«「any(Failure.new(exception => X::OutOfRange.new(what => "Start argument to substr", got => "8", range => "0..1", comment => "use *8 if you want to index relative to the end"), backtrace => Backtrace.new), Failure.new(exception => X::OutOfRange.new(what =…»
FROGGS the output of my line is weird as well
psch m: ((1|2) ~~ /./).say 19:52
camelia rakudo-moar 06fef8: OUTPUT«「any("1", "2")」␤»
FROGGS and this is also funny: "use *8 if you want to index relative to the end"
psch well that one looks fine...
19:52 tokuhirom left
FROGGS a junction inside of a match? 19:52
psch oh
right
fine-ish :)
FROGGS *g*
psch m: say Junction.^can('ACCEPTS')
camelia rakudo-moar 06fef8: OUTPUT«(ACCEPTS ACCEPTS)␤»
psch m: say Junction.^can('ACCEPTS')>>.signature 19:53
camelia rakudo-moar 06fef8: OUTPUT«((Mu $: | is raw) (Mu $: | is raw))␤»
psch uhh
why does it have two identical signature candidates
FROGGS it has these three: 19:54
multi method ACCEPTS(Junction:U: Mu:D \topic) {
multi method ACCEPTS(Junction:U: Any \topic) {
multi method ACCEPTS(Junction:D: Mu \topic) {
psch oh, Signature.perl is just kinda bad
or, well, insufficient maybe
TimToady heading for the gate & 19:55
lizmat safe travels!
jnthn TimToady: Good flight! 19:56
psch FROGGS: NativeCall.pm builds fine, from the looks of it 19:57
FROGGS psch: aye
I'm shocked
psch i'm mostly confused... :)
FROGGS it compiled and installed just fine...
psch is running make test
19:57 Ven joined
FROGGS jnthn: why is that there? github.com/rakudo/rakudo/blob/nom/...s.pm#L1147 19:58
FROGGS does a git blame
psch could it be the compose call BEGIN runs before the class is actually finished...?
as in, completely declared
FROGGS I dunno
possible 19:59
psch m: BEGIN say 1; BEGIN say 2;
camelia rakudo-moar 06fef8: OUTPUT«1␤2␤»
psch oh, perl5 had this "BEGINs run in reverse" didn't it
FROGGS O.o
jnthn I...don't think so!
BEGIN runs ASAParsed
psch eh, i'm misremembering something 20:00
jnthn FROGGS: Bootstrapping reasons, I imagine :)
FROGGS jnthn: you added that: github.com/rakudo/rakudo/commit/a6d90ea3
psch aah
END it was
FROGGS jnthn: but you upsot jvm
psch ...in perl5
FROGGS I'm going to spectest moar 20:01
psch make test looks good, except for interop (which is known) and t/04-nativecall/16-rt125408.t
jnthn There's a comment at the top of the added file that explains
FROGGS aha!
jnthn :) 20:02
20:02 [Sno] left
FROGGS so jvm does not like that Attribute get recomposed 20:02
jnthn Hmm...odd
FROGGS that totally fits what we observe
psch and it reacts by falling back to the Attribute in BOOTSTRAP
jnthn Removing that will probably break (some-attribute).map(...)
psch as in, the Attribute from the BOOTSTRAP.nqp SC 20:03
jnthn Maybe a missing SC write barrier somewhere?
psch: It should be the same Attribute type object all the way through, but a new version of the meta-object and STable...
psch jnthn: that kinda fits with my hacky patch - ignoring the SC when comparing classHandles unbroke the build 20:04
20:04 colomon left
psch it's unclear to me though whether that could have consequences later on, not to pay attention to the SC 20:05
20:05 hohoho joined, awesomess3 joined
psch (which is to say, naively i'd say "it obviously will", but only because "checking for the SC" is a stronger qualifier...) 20:05
jnthn Yeah...oddness
jnthn needs to go rest 20:06
FROGGS gnight :o)
jnthn Slept terribly last night, which is why I've been relatively useless today :/
'night, #perl6
FROGGS Mondays...
m: Attribute.^compose # can we do that here too? 20:08
camelia ( no output )
jdv79 images.huffingtonpost.com/2015-08-2...sounds.jpg
"
20:08 Ven left
jdv79 oops 20:08
FROGGS :D
20:09 hohoho left 20:11 darutoko left
n0tjack this is my first attempt at a real-life grammar: gist.github.com/anonymous/ee46fc609a75b8054ec0 . Is that reasonable/idiomatic p6? 20:13
(it's the beginning of my project to implement J in p6)
20:14 sufrostico joined
n0tjack also, if I want to write an "interpreter" for these numbers, am I going to have to give names to all the currently-anonymous chunks? 20:14
FROGGS doesnt look like a missing write barrier 20:15
20:15 Ven joined
FROGGS n0tjack: you dont have to name all things, you only need to name the things you need to work with... so if you just need the entire match of a token than you dont need to name anything 20:17
and yes, looks quite perlish so far 20:18
20:19 brrt joined, brrt left
n0tjack well, those little delimiters are like operators in a tiny language 20:19
so I need the names of the operators, and all of their operands
20:19 rindolf left
n0tjack for example, consider "j" an operator: 123j456 in this language is 123+456i in perl 20:20
in order to calculate that result, I need to know the operator is 'j' and the operands are '123' and '456' respectively
psch n0tjack: something i learned when writing my (small and limited) ASM grammar is: write tests first
FROGGS n0tjack: yes, then you should capture these 20:21
psch n0tjack: also, most of your tokens look like they might want to be grouped under a proto
n0tjack psch: I'm writing the tests now, before I go further. Can you elaborate on the proto comment?
20:21 cognominal left
n0tjack FROGGS: Thanks, I was hoping not to have to clutter up the pattern, but I need the tokens, so I guess I'll go ahead. 20:22
psch n0tjack: actually, that was probably bad advice. i oversaw that the lhs and rhs for the operators are actually different...
n0tjack psch: there is an overal pattern between the rules: <sub-type> ('op' <sub-type>)? 20:23
problem is some of those rules have hair on them
psch n0tjack: right, that pattern seems like it would make sense to have them under a proto
n0tjack psch: Can you point me at some tutorial-level material on protos? 20:24
psch m: grammar G { token TOP { <thingy> }; proto token thingy {*}; token thingy:sym<o> { \d+ o \d+ }; token thingy:sym<f> { \d+ f \d+ } }; say G.parse("123o123"); say G.parse("123f123") # this is all i'm refering to 20:26
camelia rakudo-moar 06fef8: OUTPUT«「123o123」␤ thingy => 「123o123」␤「123f123」␤ thingy => 「123f123」␤»
20:26 Hor|zon left
psch actually 20:26
FROGGS .tell jnthn There is no spectest fallout whatsoever when removing "BEGIN Attribute.^compose;"
yoleaux FROGGS: I'll pass your message to jnthn.
psch m: grammar G { token TOP { <thingy> }; proto token thingy {*}; token thingy:sym<o> { \d+ o \d+ }; token thingy:sym<f> { \d+ <sym> \d+ } }; say G.parse("123o123"); say G.parse("123f123") # this is all i'm refering to
camelia rakudo-moar 06fef8: OUTPUT«「123o123」␤ thingy => 「123o123」␤「123f123」␤ thingy => 「123f123」␤ sym => 「f」␤»
psch ^that probably works even better 20:27
n0tjack: i don't know of any tutorial - i picked this pattern up from Perl6/Grammar.nqp :)
n0tjack haha
psch eh, neglected to replace the literal o with <sym> as well
n0tjack oh nice man
that's cool
FROGGS yes, like MMD but for grammars 20:28
n0tjack is there a way to pass \d as a parameter too?
FROGGS hmmm
I'm not sure 20:29
psch well, the colonpair is literal
n0tjack I want to say proto(<subtype>,<operator>)
psch but i suspect my recent patch for foofix could help there
n0tjack and have it put out <subtype> (<operator> <subtype>)?
20:29 [Sno] joined
psch oh 20:30
except that's exactly one case i took as example for "forbidden"...
FROGGS hehe
psch m: grammar G { my &num = rx/\d/; token TOP { <thingy> }; token thingy:sym(&num) { <sym> } }; say G.parse("5")
camelia rakudo-moar 06fef8: OUTPUT«Method 'thingy' not found for invocant of class 'G'␤ in regex TOP at /tmp/n2NVIiXz6u:1␤ in block <unit> at /tmp/n2NVIiXz6u:1␤␤»
psch m: grammar G { my &num = rx/\d/; token TOP { <thingy> }; proto token thingy {*}; token thingy:sym(&num) { <sym> } }; say G.parse("5")
camelia rakudo-moar 06fef8: OUTPUT«(Any)␤»
psch yeah, doesn't
i don't know if that'd be too magic, anyway 20:31
FROGGS m: my &num = rx/\d/; grammar G { token TOP { <thingy> }; proto token thingy {*}; token thingy:sym(&num) { <sym> } }; say G.parse("5")
camelia rakudo-moar 06fef8: OUTPUT«(Any)␤»
20:31 Ven left
FROGGS I think I do the jnthn now... 20:32
gnight &
20:32 jkva joined
RabidGravy toodlepip 20:32
n0tjack night al 20:33
*all
psch g'night FROGGS, n0tjack
20:33 n0tjack left, edehont joined 20:35 Ven joined 20:36 jkva left, FROGGS left 20:38 cygx left 20:40 Ch0c0late left 20:47 tom_ joined 20:48 tom_ is now known as Guest71248 20:49 lichtkind left 20:50 ZoffixW left
awwaiid well... long ways to go, but my little repl is already useful -- github.com/awwaiid/p6-lrep . I'm going to adopt things I've learned from Pry, nREPL, and other debugger-repls. 20:53
guess I should figure out that panda thing 20:54
20:56 Guest71248 left
awwaiid (github.com/awwaiid/p6-lrep/tree/v0.1 actually. I'm already tearing it apart moar) 20:58
21:00 rurban joined 21:03 skids left
lizmat p6weekly.wordpress.com/2015/10/12/...unveiling/ # and yet another Perl 6 Weekly hits the Net ! 21:03
21:04 s34n joined 21:08 lex_ joined 21:09 lex_ left, Ven left
ugexe the url for jdvs second blog post is broke 21:10
psch awwaiid: that looks neat
lizmat++ # p6weekly
m: say "ßar".tc 21:11
camelia rakudo-moar 06fef8: OUTPUT«Ssar␤»
psch that *is* neat too
awwaiid er... how do I get this into panda? It says "Ping someone on IRC" 21:12
lizmat ugexe: weird, not sure how that happened
21:12 TEttinger joined
psch lizmat: wondering if infix:[] form needs a mention 21:12
lizmat: especially coupled with circumfix:<<$constant>>
(not *only* because i like reading my nick on p6weekly... :) ) 21:13
lizmat if you can explain that to me in 3 lines, I'll add it :-)
psch "Categorical sub declarations have been improved. Delimiting with [] is now supported, and delimiting with <<>> properly interpolated contained constants." 21:14
s/interpolated/interpolates/
oh
lizmat example please ?
psch that's not quite right, actually :/
21:15 n0tjack joined
psch m: sub infix:['xxx'] { say "lewd" }; 2 xxx 5 21:15
camelia rakudo-moar 06fef8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/yAcfFcMgmt␤Calling infix:<xxx>(Int, Int) will never work with declared signature ()␤at /tmp/yAcfFcMgmt:1␤------> 3sub infix:['xxx'] { say "lewd" }; 2 7⏏5xxx 5␤»
psch m: sub infix:['xxx']($, $) { say "lewd" }; 2 xxx 5
camelia rakudo-moar 06fef8: OUTPUT«lewd␤»
n0tjack is there a module or builtin that lets me easily visualize the parse tree resulting from a Match?
21:15 AlexDaniel joined
psch m: constant $x = "µ, @"; sub circumfix:<<$x>> { say $^a }; µ 1, 2, 3 @ 21:15
camelia rakudo-moar 06fef8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/GIufbqp1o_␤Two terms in a row␤at /tmp/GIufbqp1o_:1␤------> 3 circumfix:<<$x>> { say $^a }; µ 1, 2, 37⏏5 @␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ …»
psch why is *that* broken again
oh
m: constant $x = "µ @"; sub circumfix:<<$x>> { say $^a }; µ 1, 2, 3 @
camelia rakudo-moar 06fef8: OUTPUT«(1 2 3)␤»
lizmat n0tjack: doesn't Grammar::Tracer have something like that ?
n0tjack lizmat: it does, but it's too verbose 21:16
psch "Categorical sub declarations have been improved. Delimiting with [] is now supported, and delimiting with <<>> properly interpolated contained *sigiled* constants." # updated explanation
n0tjack I'm looking for something like an ASCII tree of all the named captures
psch i don't think we have that yet 21:17
lizmat psch: maybe it is not completely ready for primetime yet ?
psch Data::Dumper does a bit more than our &dd does, including newlines-and-indentation
lizmat: it is, i just messed up declaration
m: sub circumfix:<<µ, @>> { say $^a }; µ 1, 2, 3 @ # also doesn't work 21:18
camelia rakudo-moar 06fef8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/V2lsSNztnT␤Two terms in a row␤at /tmp/V2lsSNztnT:1␤------> 3ircumfix:<<µ, @>> { say $^a }; µ 1, 2, 37⏏5 @ # also doesn't work␤ expecting any of:␤ infix␤ infix stopper␤ …»
psch lizmat: the constant is inserted literally, so it cant have a comma
- except if the comma is supposed to be part of the op
n0tjack hmm, what would be a quick way to recurse a match object and print out all its non-empty .hashes (recursively)?
psch lizmat: it's fine though, you don't *need* to add it. i just want to feel useful... :) 21:19
lizmat psch: added to Other Notable Additions (those are without name, though :-)
21:20 xfix left 21:21 SmokeMachine_ left 21:22 kipd left, colomon joined 21:23 olinkl left 21:24 eliasr left
n0tjack huh, ok I know what i'm gonna write tonight :) 21:24
21:24 n0tjack left
[Coke] m: my @a=1..10; say @[*.log] 21:24
camelia rakudo-moar 06fef8: OUTPUT«[WhateverCode.new]␤»
psch lizmat: i think there's a angle bracket hiccup in the post 21:25
lizmat ah, where?
psch lizmat: "delimiting with <> properly interpolates "
that needs to be <<>> or the unicode variant
[Coke] m: my @a=1..10; say @a[*.log] 21:26
camelia rakudo-moar 06fef8: OUTPUT«3␤»
lizmat psch: fixed (I think)
21:31 erdic joined
dalek kudo/nom: fa024fe | lizmat++ | tools/build/gen-cat.nqp:
Change module header to Perl 5 compliant line/file

Perl 5 has a way of setting the current __FILE__ and __LINE__. This change mimics that behaviour so that we maybe can have correct file and line number from stacktraces coming from the setting.
21:31
21:32 cognominal joined
lizmat Now we only need someone to see lines starting with #line \d \S+ and set $?FILE and $?LINE accordingly :-) 21:32
21:32 edehont left 21:34 woolfy joined, woolfy left
psch lizmat++ : yeah, looks good 21:35
21:37 awesomess3 left
RabidGravy lizmat, I was wondering about that the other day strangely 21:44
lizmat my last commit, you mean ? 21:45
RabidGravy yaw
but I can't remember what I wanted it for :-\
lizmat well, TimToady (as many others) want it so that stack traces from core settings point to the right file / line, instead of to gen/moar/m-CORE... 21:47
21:48 dnmfarrell joined 21:49 tokuhirom joined
dnmfarrell hey what's the syntax for declaring a class attribute "is rw" AND giving it a default value? I could add a default to the new() signature, but was wondering if there was another way 21:49
RabidGravy m: class F { has $.gg is rw = 42; }; say F.new.gg 21:50
camelia rakudo-moar 06fef8: OUTPUT«42␤»
dnmfarrell whaaaat
21:50 hohoho joined
dnmfarrell haha RabidGravy thanks! I thought I tried that ... my mistake 21:51
lizmat gnight, #perl6! 21:52
RabidGravy nighty nighty
21:53 tokuhirom left, rurban left 21:54 lea joined
grondilu dnmfarrell: though by "class attributes" you may have mean a "our" attribute 21:55
21:55 hohoho left
grondilu m: class F { our $.gg is rw = 3; }; say F.new.gg; 21:55
camelia rakudo-moar fa024f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/gGtWFo1z48␤Can't use unknown trait 'is rw' in a variable declaration.␤at /tmp/gGtWFo1z48:1␤------> 3class F { our $.gg is rw7⏏5 = 3; }; say F.new.gg;␤ expecting any of:␤ TypeObject␤ …»
grondilu ouch
I thought that would work
according to S12 it should 21:56
(section called "Class Attributes") 21:57
m: class F { my $.gg is rw = 3; }; say F.new.gg;
camelia rakudo-moar fa024f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Efs4ZqZAg1␤Can't use unknown trait 'is rw' in a variable declaration.␤at /tmp/Efs4ZqZAg1:1␤------> 3class F { my $.gg is rw7⏏5 = 3; }; say F.new.gg;␤ expecting any of:␤ TypeObject␤ …»
grondilu m: class F { our $.gg = 3; }; say F.new.gg; 21:59
camelia rakudo-moar fa024f: OUTPUT«3␤»
grondilu rakudobug?
22:01 bjz left, espadrine left 22:02 Kogurr joined, muraiki left 22:04 llfourn joined 22:05 SmokeMachine_ joined 22:06 TEttinger left
dalek oblem_solver_tutorial: 031f52f | (Herbert Breunung)++ | / (2 files):
starting paragraph 5
22:08
22:09 llfourn left, hohoho joined 22:13 vendethiel left 22:15 opal joined 22:17 eliasr joined 22:18 opal left
RabidGravy grondilu, no it's just necessary for an our variable 22:18
m: class F { our $.gg = 3; }; my $f = F.new; say $f.gg; $f.gg = 42; say $f.gg 22:19
camelia rakudo-moar fa024f: OUTPUT«3␤42␤»
RabidGravy just not necessary rather
grondilu ok
the error message could just say that, though.
22:21 ^elyse^ left
RabidGravy but then would have to define the "multi sub trait_mod:<is> (Variable $v, :$rw) { die "is rw is useless on a variable" }" ;-) 22:22
22:23 dnmfarrell left 22:24 virtualsue left 22:27 TEttinger joined
s34n rakudo 2015.09 is the lastest perl 6? 22:30
hohoho good * 22:31
I guess IO::Path's cache is too strong.
grondilu s34n: yes
$ perl6 --version 22:32
This is perl6 version 2015.09-352-g03f84ee built on MoarVM version 2015.09-74-gedc44b5
hohoho -e caches a result forever. `method e() { $!e //= FILETEST-E($.abspath)`
22:32 jojotus joined
s34n Still aiming for a Christmas (2015) release 22:33
jercos cacheing file test results at all sounds like race condition bait, no?
hohoho gist.github.com/tokuhirom/3083ec8e94e293bc5a3e
it makes this test failing
s34n What's the latest performance data on perl 6?
22:34 kfo joined 22:35 kid51 joined
grondilu not sure who's keeping track of performance benchmarks. And everybody's asleep right now apparently. 22:37
Perlformance is still not quite the absolute priority now I think.
though there are improvements every day.
22:46 skids joined
RabidGravy hohoho, I've been bitten by this before 22:47
22:48 patrickz left
hohoho RabidGravy: hm. but the issue still around there :P 22:48
22:50 |Tux| left, kipd joined
ugexe recache it ~$_.IO.e 22:51
or $_.Str.IO.e 22:52
just create a new IO from a string of the path somehow
RabidGravy yeah I think that's what I ended up doing, can't even remember what code it is in 22:53
hohoho This behavior confuses the user. 22:55
i recommend to disable the cache
22:57 spider-mario left
masak 'night, #perl6 23:01
psch RabidGravy: ooc, does perl6 seems audio live-coding suitable to you? 23:09
(ISTR that you linked me an article or two...)
23:10 olinkl joined
timotimo ohai 23:11
RabidGravy psch, I've been toying with the idea of doing some experiments
timotimo s34n: the great list refactor has given us a big improvement in memory usage as a baseline and cpu usage has gone down quite noticably in many cases where we've been able to build specialized iterators and such for things 23:12
23:12 firstdayonthejob left
timotimo s34n: i haven't uploaded a full benchmark result in a while, though, because our for-loop-to-while-loop optimization has temporarily fizzled from the GLR 23:12
and so performance has a weird dent in that regard
RabidGravy I'm quite sure it could be made to all the things necessary, whether it can do them fast enough is to be seen 23:13
psch right, "fast enough" is what i'm expecting to be a major hangup, currently at least 23:14
RabidGravy the streamin and encoding stuff I've played with is fasr enough
but additional dsp may not be quite so much 23:15
psch although the PortAudio bindings i tried might've also struggled with pre-GLR and not-good-enough natives...
add to that the fact that using jackd either segfaulted or dumped...
RabidGravy yeah, I keepmeaning to get back to that
psch afair FROGGS at least thought about a potential cause for the segfault/dumping... 23:16
no idea if anything came of that, and i'm not one to push people to solve my problems... :)
FROGGS suggested trying libsdl audio, but afaik that's not really a low-latency solution, although i might be wrong
23:17 kid51_ joined
psch there's not really much in the way of implementations to build upon from what i see 23:17
RabidGravy it probably has something to do with the jackd threads needing to share a buffer
psch yeah, it was something about freeing memory or somesuch...
i tend to gloss over those C-y parts :P 23:18
RabidGravy I ought hit up the jack boys about this
23:18 kid51 left, sufrostico left 23:19 kid51_ is now known as kid51
timotimo psch: i've recently made nativecall a tiny bit more efficient, but there's still quite a bit of overhead looming there 23:19
especially as it doesn't get spesh'd :(
were you able to get a good(ish) --profile out of your portaudio stuff?
psch timotimo: no, i didn't profile at all, unfortunately 23:20
although i might be able to give that a try tomorrow
23:20 sufrostico joined
psch RabidGravy: i don't know how much they'd appreciate being asked to introduce a copy or somesuch into their API 23:21
timotimo there's potentially something to be seen there
but i fear it'll just be "yep. it's slow" :P
psch RabidGravy: but i suppose asking for advice is always a good idea :)
timotimo or "yep, that's a whole lot of allocation"
psch m: say 1/48000
camelia rakudo-moar fa024f: OUTPUT«0.000021␤»
psch ^^^ that's the time per frame :)
timotimo the time you have to build one frame? 23:22
psch timotimo: yeah. one frame has only a lookup though
timotimo i hope you don't have to twiddle every frame individually
psch timotimo: the array is precomputed in my (*very* basic) case
timotimo lizmat++ # weekly blogpost
psch timotimo: but that's the time for the lookup and nativecall invocation
RabidGravy psch, they're all quite cool - I've got patches in Ardour and stuff ;-)
23:23 sQuEE is now known as sQuEE`
psch timotimo: basically, github.com/peschwa/Audio-PortAudio...est.pl#L67 <- this loop has .000021 seconds for each iteration 23:24
timotimo: i'm pretty sure that's in "no way" territory currently, but i'm not the optimization expect ;)
s/expect/expert/
RabidGravy there's also a library somewhere that turns a jack interface into a regular blocking one for you
psch RabidGravy: neat. i'm just trying to slowly bring the two things i've really enjoyed for a long time together :)
RabidGravy: music's been mostly a "prosumer" thing up until around the time i started the PortAudio bindings 23:25
which is to mean "producing with other peoples software (or only hardware)"... 23:26
23:27 sufrostico left
psch ...not quite the colloquial meaning of "prosumer" 23:27
23:27 Peter_R left
RabidGravy I just use hardware for the most part to actually make the noise, but Ardour to record and mix :) 23:28
23:30 |Tux| joined 23:31 hohoho left
pink_mist referring to your efforts in music as noise? wow, low self-esteem or are you into some kind of en.wikipedia.org/wiki/Noisecore ? :P 23:32
RabidGravy I have always called it "noise with beats in" :) 23:33
decide for yourself soundcloud.com/rabidgravy
23:33 atweiden joined
geekosaur c'mon feel the noise 23:34
psch usually makes breaks with boring melodies layered over them 23:35
pink_mist heh, I wouldn't call it noise, but it's quite hard to put a name to :P
psch i don't have anythign readily online though, i deleted my soundcloud recently in a fit of "it's all meh anyway", and all that's left is on my phone which is out of battery at the moment... :P 23:37
RabidGravy psch, timotimo as to the dealing with lots of native array data - I've found that as long as I keep it for the most part in the native domain (i.e. don't copy the native frame data to Perl arrays,) it's fast enough tp read a 44.1K WAV, encode it as 320kbps MP3 and stream it to icecast 23:38
psch anyway, i've been wondering if a REPL is a good base to work with
s/with/from/
'cause all the other projects seem to work from buffers
but they *also* don't use a language quite as expressive 23:39
RabidGravy yaxu's Tidal is a sort of REPL but it's Haskell
psch RabidGravy: the Udy - Ryu remix is pretty good 23:40
i'm not a great fan of four-to-the-floor, but the rest works well enough for me
is there a screencast or something around for tidal? 23:43
i don't see anything that looks like "this is how it works" on the website
RabidGravy yaxu.org/demonstrating-tidal/ 23:44
psch ah, i didn't look well enough... :)
RabidGravy anyway I'm going to crash before I turn into a pumpkin
have fun
23:45 leont joined 23:49 RabidGravy left, mattprelude left 23:50 tokuhirom joined 23:55 tokuhirom left