»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by masak on 12 May 2015.
00:00 Psyche^_ joined
RabidGravy boom 00:05
right bed
00:05 llfourn left 00:08 espadrine left 00:09 RabidGravy left 00:19 rindolf left 00:22 rindolf joined 00:27 tardisx left 00:28 Skarsnik left
cygx (quit 00:28
00:28 cygx left 00:43 isBEKaml joined 00:55 kid51 left 00:57 kid51 joined 01:00 tardisx joined 01:06 rindolf left 01:11 softmoth_ joined, tardisx left 01:12 tardisx joined 01:21 tardisx left 01:22 tardisx joined 01:26 BenGoldberg joined 01:27 tardisx left 01:28 ShimmerFairy joined 01:29 tardisx joined, Zoffix joined 01:31 tardisx left 01:32 tardisx joined
zengargoyle anybody have good examples of using LibraryMake / Find::Bundled 01:33
i can get my library build and put in blib/lib but can't get it to load w/o using LD_LIBRARY_PATH
will the magic only work once installed? 01:34
looks like it searches INC which should contain blib/lib
01:37 Actualeyes joined 01:38 dayangkun_ joined 01:39 dayangkun_ left, tardisx left, dayangkun_ joined 01:40 dayangkun_ left 01:41 dayangkun_ joined 01:42 dayangkun_ left, raoulvdberge left, dayangkun_ joined 01:43 dayangkun_ left, tardisx joined 01:44 dayangkun_ joined 01:45 dayangkun_ left, dayangkun_ joined 01:46 dayangkun_ left
zengargoyle weird... p6doc LibraryMake gives me different docs than what's on github even after a `panda install LibraryMake` 01:49
it still has the old find-bundled vs the new Find::Bundled.find 01:50
01:51 raiph joined 01:56 sprocket left
zengargoyle when i panda look LibraryMake, the README is utf16 01:56
if i panda install . from the look directory and exit out, p6doc is still showing the old doc. 01:58
01:59 tardisx left
zengargoyle and moar-nom/install/share/perl6/site/lib/LibraryMake.pm6 is still the old version 01:59
removing LibraryMake.pm and panda install still gets the old version. 02:03
zengargoyle o/
02:04 perlawhirl left 02:05 diakopter joined
raiph hi zengargoyle, mebbe stackoverflow.com/a/27936867/1077672 is of interest re pod and $=data though it doesn't alter your point that it's hard to know what's implemented 02:05
hi diakopter
'scool to see you appearing back on channel :) 02:06
02:07 eliasr left
zengargoyle raiph: i did a $=pod.perl.say and the blocks are there, they're also a Paragraph type vs Code/Verbatim/Raw so the contents are mangled like Paragraphs 02:08
so, yeah, they're parsed but there's not a handler for them. i was thinking of trying to clone the =code handling stuff 02:09
and tweak it to be more =data-ish
or there seemed to be a Raw type thing for the =NotPod sections 02:10
raiph zengargoyle: er, =NotPod ? 02:18
zengargoyle lowercase and UPPERCASE are sorta reserved. MixedCase is for 3rd party processors and i think the contents are left untouched. 02:19
well, maybe not, =Data still gets squished. 02:22
just saw a Pod::something::Raw class that only had the attribute $.contents. assume it's used for unprocessed stuff. 02:23
zengargoyle only took a quick look and known nothing about moar/rakudo internals. 02:24
02:25 mr_ron left
raiph zengargoyle: Ah. "Blocks whose names contain at least one uppercase and one lowercase letter are assumed to be destined for specialized renderers or parser plug-ins" from S26 02:25
zengargoyle and i think a matching M<Module; $stuff for Module> like thing. 02:27
02:29 xpen joined 02:31 ifim joined 02:32 nys joined, wbill joined 02:37 wbill left
dalek osystem: a4df334 | (David Warring)++ | META.list:
Add Crypt::RC4

Perl 5 -> 6 Port of RC4 encryption.
A simple encryption algorithm, that's still in common use (e.g. PDF)
02:44
BenGoldberg This is probably a silly question, but does perl6 have anything like lisp's with-open-file, or like python's with?
02:47 isBEKaml left
grondilu m: class V { has @.c handles <AT-POS> }; my $v = V.new(:c(^10)); $v[1] = pi; say $v 02:48
camelia rakudo-moar 4422d8: OUTPUT«V.new(c => [0, 3.14159265358979e0, 2, 3, 4, 5, 6, 7, 8, 9])␤»
grondilu m: class V { has @.c handles <AT-POS> }; my $v = V.new(:c(^10)); $v[1,2] = pi, e; say $v
camelia rakudo-moar 4422d8: OUTPUT«V.new(c => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9])␤»
grondilu ^seems inconsistent to me 02:49
raiph m: with "BenGoldBerg".IO { .spurt("foo\nbar\nbaz"); .slurp.say }; # not really even superficially close but uses a `with` keyword :) 02:53
camelia rakudo-moar 4422d8: OUTPUT«foo␤bar␤baz␤»
BenGoldberg The most impostant part of python's 'with' is that the object's __exit__ method is called at the end of the block, regardless of whether the block finished normally or threw an exception. 02:56
So it's sort of like a finally clause to a try block. 02:57
grondilu m: loop (my ($i, $j) = 0, 0; $i < 3; ($i, $j) Z[+=] 1, 0.1) { say "$i $j"; if $++ > 10 { say "oops"; last } };
camelia rakudo-moar 4422d8: OUTPUT«0 0␤0 0␤0 0␤0 0␤0 0␤0 0␤0 0␤0 0␤0 0␤0 0␤0 0␤0 0␤oops␤»
BenGoldberg is not attached to the name 'with', but wants a convenient way of automatically cleaning up open file handles, open databases, etc. 02:58
grondilu m: my ($a, $b) = 0 xx 2; ($a, $b) Z[+=] 1, 2; say "$a $b";
camelia rakudo-moar 4422d8: OUTPUT«1 2␤»
grondilu Z[+=] does not work in a loop?
grondilu was considering using Z[+=] for instance in rosettacode.org/wiki/Runge-Kutta#Perl_6 03:00
(but apparently that would not work) 03:01
03:03 kid51 left 03:04 mr_ron joined
lucs I'd like to have a heredoc containing PostScript code, which uses curlies in its syntax, with interpolated closures, curlies also. Can the latter somehow use some other character? 03:05
03:06 tardisx joined, Herby_ joined
Herby_ Hello! 03:06
03:07 kaare_ joined
TimToady grondilu: it is a bug, the nature of which you can show by adding a sink: 03:09
m: loop (my ($i, $j) = 0, 0; $i < 3; sink $i, $j Z[+=] 1, 0.1) { say "$i $j"; if $++ > 10 { say "oops"; last } };
camelia rakudo-moar 4422d8: OUTPUT«0 0␤1 0.1␤2 0.2␤»
grondilu lucs: you heredoc is delimited by an arbitrary string. Just pick one that will not appear in your PostScript code.
TimToady the first and third clauses should be sunk; the middle one is, of course, evaluated as a boolean
grondilu first time I see this sink word 03:10
TimToady you can also put the Z[+=] as the last statement
yes, because it's generally applied on your behalf without you knowing it :) 03:11
lucs grondilu: Oh, it's not the heredoc delimiter that is the problem, it's the closure expression. For example: q:to'EoPS' ... 0 1 5 { /foo exch def /bar {$val *2} def ... } for ... EoPS
Herby_ I'm trying to write a small script for work. It parses a folder full of files, looking for certain strings. I'm running into a problem 03:12
lucs (And that should have been q:to:c'EoPS' I suppose)
grondilu lucs: use qq:
Herby_ the file type is proprietary to a program, its a .vgr file ... A few files are causing my script to error out with: Malformed UTF-8 in block <unit>
grondilu qq:to 'EoPS' should interpolate
lucs grondilu: Won't the PS vs closure curlies get confused?
grondilu oh 03:13
yeah, my bad
ifim o/
grondilu well that's tricky
lucs I was hoping for something like special closure curlies (some UTF-8 for example)
ifim what's the closest thing Perl 6 has to Python decorators?
grondilu lucs: good question 03:14
Herby_ Any ideas on where I should start to figure this out?
grondilu I doubt there are. In q: there is no interpolation at all, no matter which curlies you try. 03:15
03:15 pippo joined
grondilu Herby_: if it's not utf8 and you don't know the encoding, open with :binary I suppose. 03:16
Herby_ When I open the file in sublime, the troublesome character looks like an empty space. some detective work makes me believe it is: &nbsp;
BenGoldberg ifim, perl6 has macros.
Herby_ I can't say I'm smart enough to understand how to work with the binary
03:17 cognominal joined
pippo Herby_: try different encodings enc=> 'latin-1'? 03:17
Herby_ within the perl script? 03:18
pippo yes.
Herby_ Could you show me how that would look?
pippo slurp 'filename', enc => 'latin-1';
Herby_ you're a genius : ) 03:19
works like a champ, no errors
pippo Glad it helped.
good night!
03:20 pippo left
Herby_ by default, is enc => 'utf-8'? 03:20
grondilu yes
latin-1 was very common not so long ago, still is quite common. I should have guessed it as well.
Herby_ i've never been able to really understand how encoding / decoding works 03:22
should probably read up on it
i'm trying to slowly convert some of my small work scripts from perl/python to perl 6
grondilu yeah you may encounter some issues with encodings indeed.
but being explicit with the encodings you use to read or write, you should be fine. 03:24
another similar hassle is dealing with "\n" vs "\r\n" and stuff. Quite a pain sometimes. 03:25
BenGoldberg m: say "\r\n".ords
camelia rakudo-moar 4422d8: OUTPUT«(13 10)␤»
Herby_ right now I have the rakudo star 2015-9 installl
BenGoldberg m: say "\r\n".comb
camelia rakudo-moar 4422d8: OUTPUT«(
Herby_ when a new one comes out, is there a simple way to upgrade rakudo? 03:26
grondilu Herby_: looks decently recent
Herby_ on windows that is
grondilu rakudobrew I suppose
but using rakudo star should be fine
Herby_ hmm i'll have to research that
BenGoldberg m: say "\rtest"
camelia rakudo-moar 4422d8: OUTPUT«
BenGoldberg Does that look odd to anyone else? 03:27
grondilu m: say "foo\rtest"
camelia rakudo-moar 4422d8: OUTPUT«foo
BenGoldberg I see that as, "rakudo-moar 4422d8: OUTPUT«foo" 03:28
grondilu $ echo -n "foo\rbar" # echoes "bar"
(which makes some sense) 03:29
\r is the "go back to the left" command on a typewriter.
(IIRC)
so it discards everything that precedes \r and prints what follows 03:30
thinking about it, it's a neat way to put secret messages in a string. 03:31
m: say "secret\rHello".chars 03:32
camelia rakudo-moar 4422d8: OUTPUT«12␤»
grondilu m: say "secret\rHello"
camelia rakudo-moar 4422d8: OUTPUT«secret
grondilu Perl6 ruins the fun here
TimToady that's the bot's fault, I suspect 03:34
grondilu oh, indeed:
TimToady works perfectly fine locally:
> p6 'say "secret\rHello"'
Hellot
grondilu $ perl6 -e 'say "foo\rbar";'
bar
Herby_ I have a line that grabs all the text files in a folder, copied it from the perl 6 documentation. Could someone tell me how it works? my @files = "c:/iForms/live".IO.dir(test => /'.vgr' $/)>>.Str; 03:35
what does the >>.Str do at the end? 03:36
grondilu it stringify all the elements of the array
TimToady >> is a hyperoperator that distributes an operator over multiple elements 03:37
grondilu @a».method means map *.method, @a
unicode equivalent is »
TimToady grondilu: btw, your loop also works with ($i, $j) »+=« (1, 0.1) since hypers aren't lazy 03:38
grondilu indeed 03:39
more parenthesis, though 03:40
grondilu does not like parenthesis
03:40 tardisx left
dalek osystem: 51fab76 | (David Warring)++ | META.list:
blobo
03:41
03:41 tardisx joined
grondilu hum... is rosettacode.org/wiki/Runge-Kutta#Perl_6 broken? 03:42
TimToady well, if you hate parens that much, you should realize you don't need them on the left of $i, $j Z[+=] 1, 0.1 :P
hmm 03:43
03:43 raiph left
TimToady m: my $i, my $j Z= 1,2; say "$i $j" 03:43
camelia rakudo-moar 4422d8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/iG_6yGaOzZ␤Cannot zip with = because list assignment operators are too fiddly␤at /tmp/iG_6yGaOzZ:1␤------> 3my $i, my $j Z=7⏏5 1,2; say "$i $j"␤»
TimToady aww 03:44
m: my $i, my $j Z+= 1,2; say "$i $j"
camelia rakudo-moar 4422d8: OUTPUT«1 2␤»
TimToady maybe we can relax the fiddliness of = a bit there
hahainternet saw the SF.pm talk
thoroughly excellent
TimToady such that Z= becomes the equivalent of Python's list assignment
TimToady bows 03:45
hahainternet thorough, succinct, decently in depth
grondilu m: my ($a, $b) = 0 xx 2; $a, $b Z[+=] 1, 2; say "$a $b";
camelia rakudo-moar 4422d8: OUTPUT«1 2␤»
hahainternet i've got to find a way of writing more perl6
i have one question though, but it's more about implementation than anything else
lets say i have a hash (it's actually in python and a dict) representing a simple heirarchy 03:46
{ a => {}, b => {c => {}, d => {}} }
and i want to concatenate the children to the parent, ie come out with 'a', 'bc', 'bd'
a simple loop is obviously fine 03:47
grondilu m: say (5/1).narrow.WHAT;
camelia rakudo-moar 4422d8: OUTPUT«(Int)␤»
hahainternet but i expect there's some extremely fancy way to do this i'm unaware of
and i liked your use of 'high falutin' TimToady :D
03:47 raiph joined
grondilu m: say (0.9 + 0.1).narrow.WHAT; 03:47
camelia rakudo-moar 4422d8: OUTPUT«(Rat)␤»
grondilu ^that breaks runge-kutta on RC 03:48
m: say (0.9 + 0.1).perl;
camelia rakudo-moar 4422d8: OUTPUT«1␤»
grondilu m: say (0.9 + 0.1).nude;
camelia rakudo-moar 4422d8: OUTPUT«(1 1)␤»
grondilu m: say (0.9 + 0.1).narrow ~~ Int;
camelia rakudo-moar 4422d8: OUTPUT«False␤»
zengargoyle m: my $x = 'foo'; my $s = q :x< « » > "stuff {with braces} and {«$x»} {could} be nice"; say $s;
camelia rakudo-moar 4422d8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/JyHg3Y6SWT␤Two terms in a row␤at /tmp/JyHg3Y6SWT:1␤------> 3my $x = 'foo'; my $s = q :x< « » >7⏏5 "stuff {with braces} and {«$x»} {could}␤ expecting any of:␤ infix␤ infix …»
TimToady looks like a bug
hahainternet: I'd have to think about it, something that takes snapshots of recursion paths left to right in a tree is not something that comes up too often 03:49
zengargoyle luks: is that sorta what you mean? 03:50
hahainternet TimToady: it's actually recreating the django ORM simplified search names
so if you have a foreign key 'a', which has a column 'b', the name is a__b
zengargoyle lucs: is that sorta what you mean? oops...
hahainternet it's a rather ugly method really, and speaks against python for succinctness 03:51
anyhow, it's essentially a recursive grep i think, but i don't know of the right idiom
zengargoyle m: my $x = 'foo'; my $s = q :c< « » > "stuff {with braces} and {«$x»} {could} be nice"; say $s; 03:52
camelia rakudo-moar 4422d8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/FjfVu2TlMj␤Two terms in a row␤at /tmp/FjfVu2TlMj:1␤------> 3my $x = 'foo'; my $s = q :c< « » >7⏏5 "stuff {with braces} and {«$x»} {could}␤ expecting any of:␤ infix␤ infix …»
Herby_ dumb question 03:53
TimToady m: { a => {}, b => {c => {}, d => {}} }.deepmap: *.key.say
camelia ( no output )
TimToady m: say { a => {}, b => {c => {}, d => {}} }.deepmap: *.key
camelia rakudo-moar 4422d8: OUTPUT«a => , b => c => , d => ␤»
Herby_ where can I see the extra options available with slupr?
TimToady hmm
Herby_ slurp
TimToady m: say &slurp.signature 03:54
camelia rakudo-moar 4422d8: OUTPUT«(| is raw)␤»
Herby_ how did pippo know I could do enc => 'latin-1'?
hahainternet TimToady: don't feel you have to give me an answer, it just struck me as a particularly ugly wart on python
as the whole search__method stuff is a hack to begin with
and now i'm hacking a recursive loop to hack around their hack
zengargoyle doc.perl6.org/routine/slurp
hahainternet in the one true language 03:55
hahainternet sniggers
Herby_ thanks zengar
zengargoyle Herby_: bookmark that and let us know if you can't find something. docs do need a bit of work but a lot of stuff is there somewhere. 03:56
lucs zengargoyle: Yep, pretty much. Was your example supposed to work?
zengargoyle no, just my best guess as to how it could work. 03:57
lucs Ah.
zengargoyle have q :capture take open/close parameter.
i'm not sure how qq detects whether {} contains code.... you could maybe declare a function and interpolate &func() like 03:59
03:59 ribasushi left
zengargoyle m: my $FOO = sub { 'hello' }; my $s = "{stuff} with {postscripty braces} but $FOO.()"; say $s; 04:00
camelia rakudo-moar 4422d8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/y3SdAWGBFc␤Undeclared routines:␤ braces used at line 1␤ postscripty used at line 1␤ stuff used at line 1␤␤»
zengargoyle well maybe not.
:{
lucs :)
zengargoyle m: my $FOO = sub { 'hello' }; my $s = q :s:f "{stuff} with {postscripty braces} but $FOO.()"; say $s; 04:01
camelia rakudo-moar 4422d8: OUTPUT«{stuff} with {postscripty braces} but hello␤»
Hotkeys is there a nor operator
lucs Aha.
Hotkeys or a convenient way to to check if a list is all false
or wait
I want nand for that don't I
TimToady m: say True if 42 == none(1,2,3)
camelia rakudo-moar 4422d8: OUTPUT«True␤»
04:01 stmuk joined
zengargoyle m: my $FOO = sub { 'hello' }; my $s = q :s:f "{stuff} with {postscripty braces} but $FOO()"; say $s; 04:01
camelia rakudo-moar 4422d8: OUTPUT«{stuff} with {postscripty braces} but hello␤»
Hotkeys wait no 04:02
oh
none
forgot about that
thanks TimToady
04:02 kaare_ left
zengargoyle still wants :capture<« »> 04:02
lucs m: my $FOO = sub ($x) { $x + 3 }; my $s = q :s:f "{stuff} with {postscripty braces} but $FOO.(39)"; say $s;
camelia rakudo-moar 4422d8: OUTPUT«{stuff} with {postscripty braces} but 42␤»
zengargoyle for no real reason 04:03
lucs zengargoyle: What you showed me there is useful enough for me for now.
Thanks.
zengargoyle cool 04:04
m: my $FOO = sub { 'hello' }; my $s = q :!c "{stuff} with {postscripty braces} but $FOO()"; say $s;
camelia rakudo-moar 4422d8: OUTPUT«{stuff} with {postscripty braces} but $FOO()␤»
zengargoyle m: my $FOO = sub { 'hello' }; my $s = q :!c:f "{stuff} with {postscripty braces} but $FOO()"; say $s; 04:05
camelia rakudo-moar 4422d8: OUTPUT«{stuff} with {postscripty braces} but $FOO()␤»
dalek kudo/nom: dc246d9 | TimToady++ | src/Perl6/Actions.nqp:
sink the 3rd loop arg
zengargoyle m: my $FOO = sub { 'hello' }; my $s = q :!c:s "{stuff} with {postscripty braces} but $FOO()"; say $s;
camelia rakudo-moar 4422d8: OUTPUT«{stuff} with {postscripty braces} but hello␤»
TimToady grondilu: fixed it for you, so you can use it in RC now :)
04:09 AlexDaniel left, ribasushi joined
TimToady m: loop (my ($i, $j) = 0, 0; $i < 3; $i, $j Z[+=] 1, 0.1) { say "$i $j"; if $++ > 10 { say "oops"; last } }; 04:11
camelia rakudo-moar dc246d: OUTPUT«0 0␤1 0.1␤2 0.2␤»
TimToady there you go
04:11 hartenfels left 04:12 sprocket joined 04:15 Herby_ left 04:16 finanalyst joined
TimToady grondilu: have a fix for the Rat problem as well, not to mention Z= will now work 04:19
dalek kudo/nom: 0f5603d | TimToady++ | src/Perl6/Grammar.nqp:
meta = should always be taken as item assignment
04:24
kudo/nom: ffc5dfd | TimToady++ | src/core/Rational.pm:
must reduce before attempting to narrow
TimToady we'll have to remove the tests that require meta-assignment to fail :)
TimToady --> pick up diakopter at SFO & 04:27
diakopter heh 04:29
04:31 ifim left 04:34 sprocket left
grondilu re-compiles and will update the aforementioned RC tasks 04:38
04:48 mr_ron left 05:14 vendethiel joined 05:16 zengargoyle joined 05:18 BenGoldberg left 05:23 nys left 05:28 sno joined
TimToady m: say (0.9 + 0.1).narrow.WHAT 05:28
camelia rakudo-moar ffc5df: OUTPUT«(Int)␤»
05:31 [Sno] left 05:38 skids left 05:39 vendethiel left 05:41 finanalyst left 05:56 softmoth_ left
TimToady m: my $i, my $j Z= 1,2; say "$i $j" 05:56
camelia rakudo-moar ffc5df: OUTPUT«1 2␤»
TimToady m: my $i, my $j [Z]= 1,2; say "$i $j" 05:58
camelia rakudo-moar ffc5df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ct1vWlImA4␤Invalid typename 'Z' in parameter declaration.␤at /tmp/ct1vWlImA4:1␤------> 3my $i, my $j [Z7⏏5]= 1,2; say "$i $j"␤»
TimToady m: my $i, my $j; $i, $j [Z]= 1,2; say "$i $j" 05:59
camelia rakudo-moar ffc5df: OUTPUT«WARNINGS:␤Useless use of variable $i in sink context (line 1)␤Use of uninitialized value $i of type Any in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/zpvgzp2ADF:1␤ ␤»
TimToady that seems right, since assignops are item-assignment-y 06:00
m: 1 R= my $x; say $x 06:02
camelia rakudo-moar ffc5df: OUTPUT«1␤»
06:04 dayangkun joined 06:07 d4l3k_ joined, d4l3k_ is now known as dalek, ChanServ sets mode: +v dalek 06:10 CIAvash joined
dalek ast: c4d0f91 | TimToady++ | S03-metaops/ (4 files):
meta assign now works, fix tests that require fail
06:15
ast: e10bcfe | TimToady++ | S03-operators/fiddly.t:
remove obsolete test file
kudo/nom: 3dc1a8d | TimToady++ | t/spectest.data:
remove bogus test file
06:16
06:38 travis-ci joined
travis-ci Rakudo build errored. TimToady 'remove bogus test file' 06:38
travis-ci.org/rakudo/rakudo/builds/90464693 github.com/rakudo/rakudo/compare/f...c1a8d91bfd
06:38 travis-ci left 06:39 CIAvash left 06:40 telex left, CIAvash joined 06:42 CIAvash left, telex joined 06:43 tardisx left 06:45 khw left
masak morning, #perl6 06:58
07:01 raiph left
cognominal morning 07:03
m: no strict; say %ENV; use strict; say %*ENV; say MY.WHO.perl ~~ m/\,<-[,]>*?ENV.*?\,/
camelia rakudo-moar 3dc1a8: OUTPUT«␤␤「,"\%ENV" => {},」␤»
cognominal should autovivification happens in no strict mode? this hides the global variable when back in strict mode 07:05
relevant documentation : github.com/perl6/specs/blame/maste....pod#L2815
s/happens/happen/ 07:06
masak don't really see what autovivification's got to do with it...
cognominal the variable is created in the MY scope so the variable by the same name in GLOBAL is hidden 07:08
masak ok. 07:09
cognominal m: no strict; say %ENV; use strict; say %*ENV; say MY.WHO.perl ~~ m/\,<(<-[,]>*?ENV.*?)>\,/ # without the pesky commas
camelia rakudo-moar 3dc1a8: OUTPUT«␤␤「"\%ENV" => {}」␤»
masak maybe I'm a bit weak on implementation here, but it feels to me that %*ENV and %ENV would be in completely different namespaces.
cognominal from the doc : When "strict" is in effect (which is the default except for one-liners), 07:10
2818non-qualified variables (such as C<$x> and C<@y>) are only looked up from
2819lexical scopes, but never from package scopes.
07:10 CIAvash joined
cognominal it implicitely means that in non strict mode we look from package scopes 07:11
07:12 diana_olhovik_ joined
masak I think I understand what you're saying, but I'm still confused. 07:14
the lookup for dynamic variables (those with a '*' in them) is completely different to ordinary lexical lookup. 07:15
which is why the former fails at runtime and the latter at compile time.
cognominal I forgot to say what masak mentionned, that in non strict mode, %ENV does not get to %*ENV
masak "does not get to"? unclear. 07:16
in my mind, they are completely distinct. does 'no strict' change that somehow? 07:17
cognominal forget my last sentence. 07:18
masak: that's what is implied by the doc snippet I pasted. 07:19
masak forgive me for saying so, but such a feature seems entirely orthogonal to the core use of 'no strict'. 07:20
either that, or I still don't understand the whole context.
why would 'no strict' muddle together lexical and dynamic? 07:21
and... how could that possible work?
possibly*
cognominal I now agree. I confuse with Perl 5 semantic 07:22
Anyway, the %*ENV is hidden by the MY::<%ENV>. That's no good. 07:24
masak agree. 07:25
cognominal if you do it explicitely, ok. But the autovivification is plain weird. 07:26
masak as far as the autovivification goes, that seems OK and in line with 'no strict' 07:27
it's the hiding that's weird.
[Tux] test 50000 23.242 23.127
test-t 50000 19.106 18.991
masak mornin', [Tux] 07:29
cognominal masak, nope, %*ENV, if not hidden is %GLOBAL::ENV, not GLOBAL::%*ENV
[Tux] o/
cognominal or is that %PROCESS::ENV? not sure.
* not GLOBAL::<%*ENV> # sorry 07:30
there are many things going there. Easy to get confused :( 07:31
masak yeah 07:32
m: no strict; say %AAA; use strict; say %*AAA
camelia rakudo-moar 3dc1a8: OUTPUT«␤␤»
cognominal Also, "Dynamic variable creation 07:33
It is illegal to assign or bind a dynamic variable that does not already
exist. It will not be created in C<GLOBAL> (or C<PROCESS>) automatically,
nor is it created in any lexical scope."
07:38 RabidGravy joined
masak yeah. 07:39
except that it's %ENV that gets created in MY, not %*ENV 07:40
07:40 tardisx joined
cognominal m: say %*AA.WHAT 07:43
camelia rakudo-moar 3dc1a8: OUTPUT«(Failure)␤»
cognominal good
m: say %*AA.perl 07:44
camelia rakudo-moar 3dc1a8: OUTPUT«Failure.new(exception => X::Dynamic::NotFound.new(name => "\%*AA"), backtrace => Backtrace.new)␤»
07:46 zacts joined
cognominal m: say MY.WHO.keys 07:49
camelia rakudo-moar 3dc1a8: OUTPUT«($=pod !UNIT_MARKER EXPORT $_ $! ::?PACKAGE GLOBALish $¢ $=finish @?INC $/ $?PACKAGE)␤»
cognominal m: { say MY.WHO.keys }
camelia rakudo-moar 3dc1a8: OUTPUT«($_ $*DISPATCHER)␤»
07:50 sno left 07:53 darutoko joined
cognominal m: sub a { say MY.WHO.keys }; a 07:55
camelia rakudo-moar 3dc1a8: OUTPUT«($_ $! $*DISPATCHER RETURN $¢ $/)␤»
07:56 tardisx left 07:57 tardisx joined
cognominal my: sub a { say MY::WAAT.WHO }; a 07:58
oops
08:02 tardisx left 08:10 sftp joined 08:12 ely-se joined 08:18 azawawi joined
azawawi good morning 08:18
github.com/atom/language-perl/pull/56/files # Better highlighting of Perl 6 identifiers in Atom editor PR got merged :) 08:19
tadzik: ping 08:20
panda and zef build status on windows are still broken 08:22
azawawi starts working on them
RabidGravy marning! 08:32
08:35 eliasr joined 08:36 zakharyas joined 08:39 Fleurety joined, ywpg joined, ywpg left
azawawi RabidGravy: :) 08:40
cognominal azawawi++ atom++
azawawi atom is an editor :) 08:42
anyone here on windows? 08:43
masak Windows, the '90s DOS windowing environment? 08:44
cognominal azawawi, I know, atom is the new emacs : Eradication of Memory Accomplished with Complete Simplicity 08:45
otherwise excellent
or we could "Eight Megabytes And Constantly Swapping" ~~ s/Mega/Giga/ 08:46
08:48 sno joined
azawawi cognominal: the best argument to using atom is that it works out of the box in windows and linux (for me at least) 08:51
cognominal: and has great packages
ugexe: ping 08:53
cognominal: the funny thing padre had the same functionality as atom but was not polished enough :) 08:55
cognominal: we were faster also with less memory
cognominal: but stability in core & plugins were our Achilles heel 08:56
08:58 domidumont joined 09:03 domidumont left, domidumont joined
azawawi .tell ugexe please see github.com/ugexe/zef/issues/71 09:06
yoleaux azawawi: I'll pass your message to ugexe.
azawawi zef is working again on windows :)
09:13 ely-se left 09:15 ely-se joined
RabidGravy I'm not going to "release" what I am currently doing until December 3 so that it will have taken exactly a year 09:17
DrForr . o ( Anticip... ) 09:18
azawawi a caveat I found on windows for all *nix people here, `cd $dir` should be on windows `cd /D $dir` because you need to change the drive also as the directory... go figure :) 09:19
DrForr ation.
masak DrForr++ # Rocky Horror reference 09:21
DrForr You've heard about the epic Twitter one, I assume. 09:22
azawawi link it :)
masak DrForr: have not, no.
RabidGravy the fact that I started it in Perl 5 for a completely different project and then decided it would take too long so shelved it is by the by
DrForr The guy that owns @FrankNFurter posted "I see you shiver with antici..." back in 2010 or so. 09:23
Nothing was heard from the account again until the last few months, just one word.. 'pation.' Well played, sir.
09:24 dakkar joined
masak ;) 09:24
09:25 Begi1119 joined
azawawi :) 09:26
09:29 zakharyas left 09:35 mr-foobar left, mr-foobar joined 09:44 dayangkun left 09:47 dayangkun joined 09:48 stmuk_ joined 09:50 stmuk left 09:51 gfldex left
cognominal awawawi: coffeescript as an extension language is nicer than elisp. I wish I could use Perl 6 so. 10:00
mrf morning #perl6 10:06
10:06 vendethiel joined
mrf .tell ugexe Ok I will investigate replacing some of the | with || (Though some of them specifically should be |) and see if that helps. 10:06
yoleaux mrf: I'll pass your message to ugexe.
10:09 g4 joined 10:15 vike joined
cognominal A discrepancy between the implementation and the spec : 10:19
m: say MY::<$_>.readonly
camelia rakudo-moar 3dc1a8: OUTPUT«Method 'readonly' not found for invocant of class 'Any'␤ in block <unit> at /tmp/yriKXzbOqj:1␤␤»
cognominal m: say MY::<$_>.VAR.readonly
camelia rakudo-moar 3dc1a8: OUTPUT«Method 'readonly' not found for invocant of class 'Any'␤ in block <unit> at /tmp/J6ciQriUZ3:1␤␤»
cognominal m: say $_.VAR.readonly 10:20
camelia rakudo-moar 3dc1a8: OUTPUT«Method 'readonly' not found for invocant of class 'Any'␤ in block <unit> at /tmp/mLt8mUAccG:1␤␤»
cognominal "You can also get at the container through the appropriate symbol table:
if MY::<$scalar>.readonly {...}"
10:20 TEttinger left
cognominal m: say $_.VAR.WHAT 10:21
camelia rakudo-moar 3dc1a8: OUTPUT«(Scalar)␤»
cognominal m: say MY::<$_>.WHAT
camelia rakudo-moar 3dc1a8: OUTPUT«(Any)␤»
RabidGravy m: $_ = "aa"; say MY::<$_>.readonly 10:22
camelia rakudo-moar 3dc1a8: OUTPUT«Method 'readonly' not found for invocant of class 'Str'␤ in block <unit> at /tmp/ewkaDoXmYr:1␤␤»
10:27 Begi11110 joined 10:28 brrt joined 10:29 Begi1119 left
moritz m: $_ = "aa"; say $_.VAR.readonly 10:31
camelia rakudo-moar 3dc1a8: OUTPUT«Method 'readonly' not found for invocant of class 'Str'␤ in block <unit> at /tmp/TpaJliaRVt:1␤␤»
moritz m: say Scalar.^methods(:local)
camelia rakudo-moar 3dc1a8: OUTPUT«(<anon> <anon> name of default dynamic WHICH)␤»
moritz m: my Int $x = 42; say $x.VAR.of 10:32
camelia rakudo-moar 3dc1a8: OUTPUT«(Int)␤»
cognominal m: say $x.VAR.methods 10:35
camelia rakudo-moar 3dc1a8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/nq6IgthYBu␤Variable '$x' is not declared␤at /tmp/nq6IgthYBu:1␤------> 3say 7⏏5$x.VAR.methods␤»
cognominal m: my $x; say $x.VAR.methods
camelia rakudo-moar 3dc1a8: OUTPUT«Method 'methods' not found for invocant of class 'Any'␤ in block <unit> at /tmp/oh0B1N2N25:1␤␤»
cognominal m: my $x; say $x.VAR.^methods 10:36
camelia rakudo-moar 3dc1a8: OUTPUT«(<anon> <anon> name of default dynamic WHICH)␤»
azawawi is testing modified dbiish on windows :) 10:38
jnthn morning, #perl6 10:41
10:42 doublec_ joined
RabidGravy marnin 10:42
jnthn m: use strict; say %ENV; no strict; say %*ENV
camelia rakudo-moar 3dc1a8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ymvZfEeFYq␤Variable '%ENV' is not declared␤at /tmp/ymvZfEeFYq:1␤------> 3use strict; say 7⏏5%ENV; no strict; say %*ENV␤»
jnthn oops
m: no strict; say %ENV; use strict; say %*ENV
camelia rakudo-moar 3dc1a8: OUTPUT«␤␤»
jnthn m: say GLOBAL::.keys 10:43
camelia rakudo-moar 3dc1a8: OUTPUT«()␤»
jnthn d'oh
m: no strict; say %ENV; say GLOBAL::.keys
camelia rakudo-moar 3dc1a8: OUTPUT«␤(%ENV)␤»
jnthn So, you start out in the GLOBAL package. %ENV is auto-declared in the current package. And we look in GLOBAL as a fallback for dynamics, stripping the * out
10:45 [Tux] joined
cognominal jnthn: agreed. But why the autovivification in my example? 10:46
jnthn What autovivification? 10:47
Under no strict, variables you use are magically declared. That's not auto-viv.
cognominal ok, so I use the wrong word. 10:48
10:48 doublec_ left
cognominal I still feel it is wrong to autodeclare a variable when reading it. 10:48
jnthn Well, more than that; if it was auto-viv then you'd expect a read not to do anything 10:49
Well, that's what no strict in Perl 6 does.
10:49 doublec joined
cognominal I would expect to do that only when writing. Wrong expectation, apparently 10:50
jnthn++ for clarifying
10:52 mr-foobar left
cognominal The word autovivif* is used a lot in the spec. Not sure it is defined anywhere. 10:53
pink_mist jnthn: in perl5, autoviv can happen when you read a sub-key/index ... so "if ($foo->{bar}->{baz}) <-- this could autoviv $foo->{bar}
cognominal en.wikipedia.org/wiki/Autovivification 10:54
10:55 doublec left, doublec joined
azawawi how can i re-import a module symbols that has been inside another module im use-ing? :) 10:56
s/has been/has been used/
jnthn pink_mist: Yes, that case is fixed in Perl 6 :) 11:00
11:00 doublec left
jnthn pink_mist: We just don't treat "no strict" as autoviv semantics, but rather auto-declare. 11:00
RabidGravy azawawi, I was thinking about the self same thing the other day and didn't come to a satisfactory conclusion 11:03
11:04 zakharyas joined
azawawi RabidGravy: the thing is 'use NativeCall;' is used inside ::SQLite and i want to re-use it instead of adding a 'use NativeCall' to all sub classes (i.e. Connection, and StatementHandle) 11:05
arnsholt Wait, you want the NativeCall stuff to be available in other compilation units from a single use statement? 11:06
azawawi arnsholt: yup
11:07 doublec joined
arnsholt That's precisely the opposite of how Perl 6's modules work 11:07
11:07 dayangkun left
arnsholt What you can do is making your top-level module re-export the symbols you want 11:07
azawawi arnsholt: atm DBIish SQLite is one single file that has 4 classes inside it
arnsholt Right. And you want to split it into several files? 11:08
11:08 doublec left 11:11 virtualsue joined
azawawi yup 11:12
11:12 doublec joined
azawawi re github.com/azawawi/DBIish/tree/mas...ish/SQLite 11:12
and github.com/azawawi/DBIish/blob/mas...SQLite.pm6
that is separate native module from OOP abstractions 11:13
s/OOP/OO
timotimo o/
RabidGravy right, off out now. Have fun. 11:14
azawawi got it :) 11:15
jnthn So, guess today is the day I fix the NFA engine issues...
11:16 andreoss joined
azawawi arnsholt: much better github.com/azawawi/DBIish/blob/mas...SQLite.pm6 :) 11:16
arnsholt: and github.com/azawawi/DBIish/tree/mas...ish/SQLite 11:17
11:17 doublec_ joined
arnsholt azawawi: FWIW, I'd just import NativeCall in all the modules that need to interact with NativeCall 11:17
It's less magical
11:17 doublec left
azawawi arnsholt: DBDish::SQLite::Native can a role but then a lot of changes need to be made 11:18
arnsholt: like our-scoped enums etc 11:19
11:19 RabidGravy left
azawawi im also adding environment variables for loading your own libs instead of hardcoded stuff (e.g. it is sqlite3.dll on windows, not libsqlite3.so) 11:21
arnsholt Right, so the problem seems to be that the other modules need to import NativeCall to get some of the C data types
I'd solve that by implementing slightly higher level Perl 6 interfaces in the ::Native module
Then the rest of the code can interact with the ::Native API on purely Perl 6 terms
11:22 doublec joined
arnsholt Heck, I'd even make all the is native subs not exported 11:22
11:22 doublec_ left
timotimo i've seen "my sub ... is native" put into classes multiple times in the past 11:23
that makes them very not exported
arnsholt Yeah
IMO a successful native wrapper should work quite hard to not expose any kind of NativeCall stuff to the user 11:24
timotimo agreed
azawawi true
arnsholt 'Cause then you're probably going to have to deal with some aspect or other of non-managed code, and that's gonna suck 11:25
Probably with similar effects to what we've seen when people who are quite inexperienced with C try to use NativeCall to wrap a library
It's very hard to do without pretty good knowledge of C
azawawi anyway sqlite is working now on windows... Horray :) 11:26
azawawi now to mysql
arnsholt Awesome!
azawawi typically anyone coming to DBI access wants to know to work with his database... 11:27
not generic instructions but specific instructions
because he/she needs to interface to the database to actually work on other more important stuff 11:28
as it stands github.com/perl6/DBIish/ is so generic...
arnsholt In terms of documentation, you mean?
11:29 kaare_ joined
azawawi yup 11:30
arnsholt Yeah, that's a problem we have at almost all levels
Although the core language is getting pretty well documented on doc.perl6
azawawi a big synopsis example is useful but not useful at the same time
because people want to accomplish task x in cookbook style 11:31
and we need to provide them how we do it in Perl 6 DBIish
and DBIish name is not newbie friendly also
11:33 Skarsnik joined
timotimo yeah, they'll not know what "DBI" is, and will get confused by the "ish" suffix 11:33
in my imagination 11:34
azawawi it is the same feeling i had when i first heard of zavolaj (aka NativeCall) 11:35
jnthn We only call it NativeCall now :)
Agree we could call DBIish something less confusing 11:36
It's the best thing we have for DB access in Perl 6 so far.
azawawi i know. im just saying we need to update all our documentation before christmas release to be user friendly (and remove Parrot references)
arnsholt Agreed 11:38
I think the DBI name was left open since Tim Bunce was (is?) working on an improved DBI interface
azawawi then why not DB :) 11:40
jnthn Yeah, I'm not really suggesting squatting the DBI name either
DB is fine enough
azawawi use DB;
jnthn otoh
DBIish having a DBI-like API is valuable for migrationy purposes 11:41
Having a DB module that uses DBIish and wraps it in a 6-ier API may be a viable way to go
lizmat good *, #perl6! 11:42
azawawi i see. so 'DB' uses DBIish and exposes simpler API for common tasks
lizmat: hi :) 11:43
lizmat I think metacpan.org/pod/DBIx::Simple could be a form of inspiration ?
jnthn azawawi: I was thinking "more idiomatic" over "simpler" 11:44
azawawi quick q, is there a way to pass values to a 'use'-ed module?
jnthn But yeah, the name DBI will likely only be meaningful to folks coming to Perl 6 from Perl 5, and that's just a subset.
azawawi: Yes, you pass them after the module name, and then write an EXPORT sub in the module to receive them 11:45
azawawi jnthn: thx 11:46
azawawi starts reading doc.perl6.org/language/modules 11:47
lizmat azawawi: lib/lib.pm6 is a non typical example, but it shows the use of EXPORT 11:48
jnthn My static vs dynamic talk has an example too 11:50
11:57 sufrostico joined
lizmat I will either be mostly offline the coming few days 11:59
or bored silly waiting for a flight at FRA and be online a lot 12:00
preparing for commute&
jnthn lizmat: Safe travels 12:01
masak yes, safe travels, lizmat 12:07
12:11 pmurias joined
timotimo that must be France Airport, right? 12:16
DrForr Frankfurt IIRC.
moritz frankfurt, I believe :-)
vendethiel timotimo: frankfurt
timotimo :S 12:17
jnthn
.oO( France. It only has one airport. ;) )
12:21
DrForr Hey, I had to get in to Geneva... 12:23
Begi11110 Any problem with France ?
There is not enough Perl programmer... 12:24
azawawi DBIish mysql is now working on my windows box :) 12:25
DrForr There was at least one more last week :)
No *problem* with France here. 12:27
azawawi is now working on making postgresql work on windows with DBIish
timotimo of course vendethiel had to defend france's amount of airports :)
Zoffix step 1: "get a better OS" :)
Skarsnik Hello there 12:28
Zoffix \o
brrt france has high-speed trains to compensate, of course :-) 12:29
moritz fwiw windows will soon ship SQLite as a core component
Zoffix 0.o
Skarsnik hm, interesting
Zoffix Will it be MS-flavoured buggy version, I wonder. 12:30
moritz why should it? 12:31
it wouldn't help them much :-)
jnthn Zoffix: Relaitvely unlikely; MS seem to have done some growing up over the last years.
moritz engineering.microsoft.com/2015/10/2...indows-10/
it's a bit of a marketing fluff, but it sounds kinda plausible 12:32
jnthn At least Windows treat filenames as strings :P
*treats
Skarsnik about DBI I have a small snipped of code for Pg that does fetchhash and return typed value, should I add this to DBI? 12:33
moritz Skarsnik: yes please
Skarsnik The issue it return copies instead of binding to the native code. 12:35
azawawi moritz: github.com/azawawi/DBIish/tree/master/examples :)
12:36 xpen left
moritz azawawi: nice 12:38
azawawi moritz: i was wondering how to solve the windows problem... given that client DLLs are not always found on windows land out of the box or through a package manager. Bundle it in a DBIsh::Windows ? 12:41
timotimo have a look at GTK::Simple for inspiration, azawawi 12:42
azawawi runs `zef install GTK::Simple` 12:43
timotimo i would have suggested "panda look GTK::Simple" instead 12:44
but oh well :)
moritz azawawi: uhm, submit a bug report against mysql-client for not installing the .dll files where the system can find them? Or is that a usual thing under windows? 12:45
azawawi moritz: it is normal
moritz: on windows, this is the normal behavior... deal with it :) 12:46
timotimo i thought all dll files get installed into c:/windows/system
azawawi moritz: even firefox doesnt install itself in %PATH% under windows...
timotimo: nope, wrong assumptions
C:\Program Files\PostgreSQL\9.4\lib 12:47
moritz timotimo: I think this was true in windows 95 :-)
azawawi C:\Program Files\MySQL\MySQL Server 5.6\lib
moritz no wonder unix devs are suspicious of windows :-)
azawawi timotimo: technically use %windir%\system to be portable :) 12:48
timotimo: and it is %windir%\system32 :)
i faced this problem in Selenium::WebDriver, finding browsers executables through File::Which is fine on *nix but is a no-no on windows 12:50
that's why i think we need a module to find stuff on windows :)
File::Find::Windows ? 12:51
moritz Stuff::Find::Windows :-)
12:51 yqt joined
azawawi Windows::StuffFinder :) 12:51
moritz File::Find::Windows sounds like you want to recursively search through the whole file systme 12:52
that... might not be clever.
12:52 perlawhirl joined
azawawi i know but think of it... other modules will benefit from it auto detecting weird software locations on windows :) 12:52
azawawi starts working on it 12:53
12:53 domidumont left
moritz Windows::PathMagic 12:53
Skarsnik some lib set env variable, like gstreamer if you install it
but the basic rule when you dev in windows: provide the lib you depend x) 12:54
12:54 Actualeyes left
azawawi Skarsnik: true and you need also to provide both 32-bit and 64-bit versions... and you need to LICENSE them to include them in your software in the first place :) 12:55
12:57 eliasr left
Begi11110 Can we make nice GUI with Perl 6 now ? or not yet ? 13:00
Skarsnik Probably not, there is Gtk::Simple 13:01
13:02 ely-se left 13:05 tomoko_ joined
perlawhirl hi everybody 13:06
tomoko_ hi perl6! I have a small question about this. I run 'say 123' 0.3s, but 53 second for run 'say [+] ^1000001' 13:07
why it is so slow?
Skarsnik because perl6 is slow ~~ 13:08
I know it's not an answer x)
DrForr Because one's printing a number and the other one is making a long calculation? 13:09
arnsholt IIRC the reduce metaop is more expensive than for example a for loop doing the sum
DrForr We could take a page from VW and preoptimize that :)
lizmat fwiw, say [+] ^1000001 runs 20 secs on my meachine
the equivalent: my int $i; $i = $i + $_ for ^1000001; say $i
runs about 4 secs on my machine: and that's as fast as it can pretty much get atm without resorting to nqp 13:10
tomoko_ thta's too bad?
13:11 AlexDaniel joined
Skarsnik gah vim is slow with p6 coloration :( 13:11
jnthn There's plenty of room for the various optimizers to improve on both cases
perlawhirl hi all... i was in here about 12 hours ago asking about ways to use a new rule with an existing grammar and token. is there a better way than adding a method to the grammar? example => pastebin.com/QUBpXWjF
jnthn But that's not going to happen this side of Christmas, because we're too busy nailing the semantic issues. 13:12
arnsholt perlawhirl: Subclass it =)
jnthn Subclass, or mix a role in
Don't use .^add_method in normal code
perlawhirl yeah i figured... the ^ is pointy and dangerous 13:13
jnthn If you stick that code in a module, that module will not be able to support precompilation.
perlawhirl i'm just playing with grammars for now... dates seems like a good place to start
lizmat m: use nqp; my int $i; my int $j = -1; while nqp::islt_i($j = nqp::add_i($j,1),1000001) { $i = nqp::add_i($i,$j) }; say $i # almost wholly optimized case
camelia rakudo-moar 3dc1a8: OUTPUT«500000500000␤»
lizmat which runs at .150 seconds for me
timotimo still too slow! :P 13:14
jnthn lizmat: I think you would write that without NQP ops and get the same result though
13:14 Actualeyes joined
lizmat well, reality is different :-( 13:14
jnthn perlawhirl: You can write a regex that uses rules from a grammar too
13:15 tomoko_ left
jnthn lizmat: Curiously, that code on my box runs in 0.16s 13:15
perlawhirl jnthn: oh? so I could simply to "Tue ~~ <weekday>" outside of the grammar and it would work? 13:16
timotimo perlawhirl: more like / <weekday> /
jnthn lizmat: And this runs in exactly the same time:
perl6-m -e "use nqp; my int $i; my int $j = -1; while ($j = $j + 1) < 1000001 { $i = $i + $j }; say $i"
uh, and the use nqp can go 13:17
perlawhirl: You'd ahve to qualify the names
timotimo interestingly, in the "$i = $i + $_ for ^1000001" thing, we don't inline the calculation
arnsholt jnthn In case you think lizmat said 150 seconds, there's a dot in front there. So she's got basically the same runtime as you
perlawhirl jnthn: im sorry... how to i 'qualify' the names?
timotimo so we're cloning a block and invoking it each time
jnthn $date ~~ / <Dateish::weekday> /
perlawhirl ahhh 13:18
jnthn arnsholt: oops, duh
timotimo er
perlawhirl of course
timotimo only cloning it once
perlawhirl facepalm
jnthn So yeah, we get the same. But still
I was right; you don't need nqp:: ops
lizmat ok, good to know
still, that looks to me we still haven't got the for loop optimization back :-( 13:19
jnthn Well, was worth checking; there have been optimizer regressions in the past
perlawhirl jnthm: that leads me to one more question... can i export tokens from a Grammar ? just as one can export subs from a module?
jnthn perlawhirl: Yes, and then import them
perlawhirl sweeet 13:20
jnthn And then use them unqualified
timotimo spesh also doesn't inline that call :(
jnthn timotimo: To the block? No, it can't
It doesn't understanding inlining closure-y things yet
timotimo oh
that would explain it, yeah
jnthn (It's tricky)
I mean, inlining is *already* a tricky opt, but... :) 13:21
lizmat afk again&
timotimo ugh, it looks like the $i = $i + $_ part also doesn't inline the + operator 13:22
jnthn That's not good
timotimo it uses a lexref for one of the parameters, that's quite likely what causes that problem.
jnthn I think many of our non-inlines are thanks to the "let Nil through on the return" 13:23
timotimo it's always fun to see our code bindlex and a tiny bit later getlex from the same variable ... 13:24
yeah, infix:<+> in this case also gets the Failure check emitted 13:26
i'm not sure why that'd cause inlining trouble, though?
13:26 ely-se joined
jnthn timotimo: The never-hit and thus unresolved getlexstatic_o 13:27
Skarsnik damn you really need to call private method with self!method? it's realy weird x) 13:28
timotimo jnthn: oh, ugh!
can we perhaps generate better code on the rakudo side? 13:29
jnthn timotimo: If we can fix the code-gen to spit out a wval there instead, we'll be better off
timotimo yeah, i thought the same thing
jnthn Well, depending what it's looking up
timotimo if it's Failure, that'd be easy; do we even want users to be able to override that?
jnthn Skarsnik: You have to declare them that way too; it matches :)
timotimo: No
Or at least, I don't care for now :) 13:30
timotimo all right, then i'd just look for the place that emits the "failure would be okay, too" code and replace the getlexstatic part with a wval
does the optimizer ever get to see that code as a QAST? or is it an op or desugar?
jnthn timotimo: I think it's a desugar 13:31
But not totally sure 13:32
timotimo i think that'll be all i need to know to get started and maybe finished
jnthn k 13:33
timotimo it's an hll op, not a desugar
jnthn returns to regex engine fixing
timotimo hm. maybe i'll allow p6typecheckrv to take a third parameter and the optimizer just shoves in Failure as a WVal every time it sees that op … 13:38
Skarsnik is there something like now in perl5? 13:39
timotimo m: say now; say time
camelia rakudo-moar 3dc1a8: OUTPUT«Instant:1447249196.589363␤1447249160␤»
timotimo now gives you fractions of a second, time gives you seconds
one is with leap seconds, the other without
Skarsnik I mean in perl5, not in perl6 x)
timotimo oh
Timer::HiRes? 13:40
jnthn timotimo: I don't think I'd do it as the optimizer
*at
timotimo: I'd just always shove Failure into that node
In Actions
Then we can rely on it
timotimo oh, i can just grab it from $*W 13:41
silly me!
13:42 pippo joined
pippo o/ #perl6 13:42
pink_mist is $*W something like a haskell world? (which I don't quite know what /that/ is either anyway)
arnsholt $*W is a compiler-internal thing 13:43
jnthn pink_mist: Very unlikely :) 13:44
And yeah, it's part of the compiler
moritz it's basically an entry point the symbol tables, lexical scopes etc. of the code currently being compiled, as well as the objects (types, routines) defined therein
timotimo it keeps around all the declarative things
jnthn As we parse/analyze Perl 6 code, there's 3 things at work: grammar (syntax), actions (execution semantics), and world (declarations)
timotimo yeah
jnthn In the earliest Rakudos there was no world, and the code was scattered over the grammar and actions 13:45
pink_mist ohh, cool
jnthn This was hard to maintain.
Skarsnik I try to find what is really slow in my code. and just creating an object 10k times take 0.02 sec in p5 and 0.5 in p6
pink_mist Skarsnik: creating an object in p5 is very different from doing it in p6 13:46
Skarsnik I was too lazy to write c++ code to have a comparaison x)
moritz you should compare it to creating an object of a class using Moose
at the very least
jnthn BUILDALL is the costly thing, generally 13:47
timotimo the thing about object creation in perl6 is that at the moment BUILDALL is like a tiny interpreter that doesn't have its own jit
jnthn And we've plenty we can do about that
But again, very unlikely this side of Christmas
Skarsnik root@testperl6:~/piko/perl6-gumbo# perl6 -Ilib gumbo.pl /home/skarsnik/Téléchargements/favourites.htm 13:49
gumbo_parse call : 0.058758
xml tree creation : 1.74880802
(my Int % = :elements(4126), :whitespaces(2908), :xml_objects(8383))
13:49 RabidGravy joined
Skarsnik It's sad to loose all the time in p6 just creating object x) 13:50
moritz Skarsnik: did you profile it? 13:51
timotimo jnthn: now we get code that's a tiny bit prettier - as in, it has a wval rather than getlexstatic - but it 1) doesn't get inlined, 2) for some reason spesh doesn't kick out the istype, even though it knows what type goes into add_I and what type comes out of the wval for the type check
Skarsnik I remember when I profile it was like lot of time spend in new/bless
moritz Skarsnik: I mean, it could also be a slow looping construct, not just the .new calls
ok
timotimo investigating that in spesh may give us a bit more, but i still think the reason we don't inline that in spesh is the lexref argument 13:52
13:52 xpen joined
Skarsnik Also I use a recursive solution to parcours the C struct, I don't know how p6 far well with that 13:52
jnthn timotimo: Yeah...but I suspect you'll have fixed a bunch of other non-inlines 13:53
timotimo oh damn. i was working with code before TimToady changed the relationship Failure and Nil have
timotimo re-does the changes 13:54
Skarsnik I can cut 0.2 sec ignoring whitespace, hm, lets add an option for it since most of the time having whitespaces in the xml is useless ~~
DrForr Re: 'parcours...' I wonder if I could come up with an algorithm that could reasonably be described as parkour over an octree... 13:55
timotimo oh, it's just a matter of using Nil instead of Failure
13:55 virtualsue left 13:56 camelia joined, gfldex joined 13:57 ChanServ sets mode: +v camelia
hahainternet another thought about an area that is frustrating in python 13:58
try: something, catch exception.that.cannot.occur: do something else
this should be statically checked and warned against
no idea if p6 has that capability, but i think noting warts in other languages is valuable, so tell me to shut up if not :)
timotimo as soon as you have a method call, that turns impossible
13:59 camelia left
hahainternet timotimo: yeah p6 binds very late doesn't it 13:59
timotimo as opposed to java, perl6 methods don't have "can throw these kinds of exceptions:" annotated and even if they did, methods from subclasses are allowed to change the signature drastically, and that information would probably not be part of that
hahainternet i mean this is something you'd more expect from Go
but i just thought i'd mention it
as it resulted in me missing an obvious bug when i changed a method call
14:00 nys joined
hahainternet and it returnes 0 instead of an exception, because consistency in python is a dirty word :p 14:00
14:00 camelia joined 14:01 mr_ron joined, ChanServ sets mode: +v camelia
arnsholt You probably can't even guarantee that some exception will never happen even in Java 14:02
hahainternet yeah possibly, it's just a little wart
changed some code, missed the implication because it's not very consistent, doubt there's anything p6 can do
but out of all the language channels, people here are genuinely interested and conversational :) 14:03
timotimo the only thing p6 can do is encourage some behaviors among coders 14:04
dalek kudo/nom: a62a00e | timotimo++ | src/ (4 files):
"allow Failure/Nil to be returned" is now a tiny bit cheaper
14:05
hahainternet timotimo: you got a second to talk about something else related to python v p6?
i'm quite ignorant of the extent of p6 features, so i'd like to chat about how something could be done 14:06
14:06 broquaint joined
timotimo sure 14:06
hope it's not too complicated for me :P
dalek p: 8013acd | jnthn++ | src/QRegex/P6Regex/Actions.nqp:
Forbid synthetics as charrange endpoints.

Which in turn makes it fine that it works in terms of codepoints.
14:07
hahainternet so, in django's orm, they use a little hack, so lets say you have a one to many relationship from 'users' to 'game scores'
you could say Users.filter(game_score__score_gt=0)
timotimo ah, that thing
hahainternet that is rather a terribly ugly wart imo
dalek osystem: 7ef1329 | cygx++ | META.list:
add Image::PNG::Inflated

Generates uncompressed PNG images in pure Perl6
timotimo you know how SQLAlchemy does it?
hahainternet i do not 14:08
14:08 pmurias left, diakopter left
timotimo wait, i'm not actually sure it's what i had in mind 14:08
hahainternet i'll have a read regardless
timotimo but i *think* you can Users.game_score.score > 0 in that same place
hahainternet yeah, see that makes much more sense, i don't understand why that isn't the case for Django
and i'd very much hope it could be the case for p6 eventually 14:09
timotimo it's just a simple OOP trick
hahainternet well, it gets a bit more complex
so i have an issue with the django orm
i have a table with a postgres array field
and i'm trying to compare this against a python array
timotimo hehehe
hahainternet however, the database column is character varying[]
and django's pg module constructs a comparison array of text[]
and i can find no way to 'hint' the right type to it 14:10
timotimo no clue about that :|
hahainternet well don't worry about the python side
i'm more interested in thoughts about p6
timotimo well, p6 has parametric roles, so you can pass something like that to the ORM to tell it what you mean 14:11
RabidGravy but that's an external module thing
hahainternet so, in the hypothetical case of Users.game_score.game_options = [1,2,3]
timotimo or the ORM can itrospect the thing you're comparing against for its type
hahainternet timotimo: indeed, but in that case text and character varying are indistinguishable
timotimo in which case, you'd Array[Int].new(1, 2, 3) or something
hahainternet right, that's what i was thinking
and your db driver would define specific types for each db type
arnsholt SQLAlchemy lets you do stuff like filter(User.origin == "stuff")
(Through metaclass trickery, I think 14:12
hahainternet yeah, django's orm has endless trickery and hackery
but still comes out with an unsatisfactory solution
arnsholt The SQLAlchemy solution is reasonable I think
timotimo SQLAlchemy does trickery, too ... but it doesn't seem as hacky to me
hahainternet i'm reading about it now :)
arnsholt Yeah, I've only touched SQLAlchemy briefly, but it seems very well thought out 14:13
And not very hacky
I'm sure the implementation has some really hairy parts, but the API itself seems very slick
hahainternet excellent, well i hope to see similar for p6 at some point, although i doubt i have the skills to write it
arnsholt Anyways, it should be possible to do something similar for Perl 6, I think
hahainternet yeah i hope so, Array["CharacterVarying"].new(1,2,3) is a little verbose but perfectly clear 14:15
and it seems reasonable you could define postgres operators in language too, so @> for example
timotimo you wouldn't put that in quotation marks
that'd give you an Array[Str]
14:15 pmurias joined, diakopter joined, sivoais joined, Jonis joined
Skarsnik hm, How I should add a new fetchrow_ in DBIsh? just put it in DBD like that fetchrow_ {...} and add it in every backend? but I am not sure every backend can have it working (fetchrow_typedhash) 14:15
hahainternet oh sorry, my mistake
14:16 sivoais left, sivoais joined 14:17 raiph joined
arnsholt Skarsnik: IIRC the DBDs share a superclass, so adding a default implementation that just dies should work 14:18
14:21 sprocket joined
moritz or simply put it in the one DBD that supports it 14:21
then you can only call it on the statement handle of that class 14:22
14:23 pmurias left
timotimo damn, type check against Nil seems to *suck* performance-wise, because the cache isn't authoritative 14:24
or something like that? 14:25
jnthn Odd, not sure why it'd not be
timotimo well, all i can tell is that the istype doesn't get changed into a literal int, even though the known type flag are set on both its operands 14:26
since i expect a 0 as the answer, the cache wouldn't contain a hit and that means it'd go to the "not TYPE_CHECK_THEN_METHOD and also not TYPE_CHECK_NEEDS_ACCEPT" check and fails that
either there's a flaw to my logic, or one of those bits gets set for some weird reason 14:28
14:31 sprocket left, travis-ci joined
travis-ci Rakudo build passed. Timo Paulssen '"allow Failure/Nil to be returned" is now a tiny bit cheaper' 14:31
travis-ci.org/rakudo/rakudo/builds/90525734 github.com/rakudo/rakudo/compare/3...2a00e9393f
14:31 travis-ci left
timotimo oh wow, make test has quite a few failures on the jvm :| 14:32
14:35 sprocket joined, ely-se left 14:39 sprocket left
RabidGravy chocolate lager is weird 14:41
dalek k-simple: fe6a42c | azawawi++ | / (7 files):
- Make examples executables on *nix

  - Add instructions for Debian Linux package installation
jnthn RabidGravy: I'd imagine... 14:43
RabidGravy: Though licorice lager kinda worked.
vendethiel timotimo: not quite. (but I made the same mistake the first time) 14:44
ilmari would think both of those flavours would work better in a porter or stout
jnthn Indeed. 14:45
timotimo oh fun!
RabidGravy there's plenty o' chocolate porter in the house
timotimo jnthn: a profile of the for ^1000001 thing says infix:<+> is spending 51% of its time inside metamodel's accepts_type 14:46
arnsholt Ooh, liquorice porter would be neat
timotimo wow, this is weird, too
ilmari untappd.com/b/to-ol-liquorice-confidence/984532 # yum 14:47
timotimo the GC tab shows 59 GC runs - and all in all 13.8% of the time is spent in GC - and after the 16th GC run, the times oscillate between 7ms and 14ms
as in: precisely every other GC run is twice as slow 14:48
jnthn timotimo: Is a :D type at play?
14:48 ely-se joined
timotimo oh, that could totally be a thing 14:48
gimme a sec
jnthn timotimo: If so we should probably disassemble those into the base type and the modifier
timotimo yup, that's in there 14:49
both for the parameters and for the return value
14:49 CIAvash` joined
timotimo not exactly sure where that'd splitting would happen 14:49
can the perl6 optimizer already do that? is it possible at all to do it in spesh?
jnthn When compiling the check return type op perhaps
Not in spesh, no
It's too Perl 6 semantic for that
timotimo thought so 14:50
looks like i'll be wanting to call .^base_type to get Int from Int:D
dalek k-simple: 1b19ba7 | azawawi++ | / (2 files):
Enable travis CI for GTK::Simple :)
jnthn aye
timotimo and check the HOW against DefiniteHOW
that seems doable 14:51
jnthn No
.HOW.archetypes.definite or so
timotimo ah
jnthn Is mroe reliable
timotimo MROe reliable, eh?
14:51 sprocket joined
jnthn :P 14:51
I just fixed two LTM bugs, I'm allowed to typo :)
Or maybe three LTM bugs, depending how you count :) 14:52
14:52 Actualeyes left
jnthn spectests the bunch of patches 14:52
masak .oO( ...I'm allowed to off-by-one! ) :P
azawawi can someone with admin rights for perl6 travis ci enable gtk-simple? 14:53
jnthn Well, it's two RTs, but I found a third related issue :)
14:53 CIAvash left
jnthn is happy to see folks working on GTK::Simple :) 14:53
timotimo too
jnthn I wrote the original in 4 hours on a train to demo how supplies could be used to handle UI events :)
14:54 rindolf joined
jnthn hopes it still does make nice use of supplies :) 14:54
I bet you can write some really cute code with the react/supply/whenever stuff
14:55 yqt left
timotimo azawawi: i have no idea how to do it, because it's in perl6/ rather than timo/ 14:55
azawawi visit travis ci, sign in with your github, and click accounts... and click the toggle :) 14:56
jnthn Darn, seems I bust something :/
timotimo azawawi: there's only toggles for timo/ in there 14:57
azawawi click Perl 6 on the left... 14:58
timotimo clicked it! 15:00
DrForr IT'S A TRAP!
azawawi :)
uploading virus in...
15:01 zakharyas left
dalek k-simple: 27afc89 | azawawi++ | LICENSE:
Add a LICENSE file to make travis CI build something :)
15:02
azawawi timotimo: travis-ci.org/perl6/gtk-simple/builds/90536389 # booting... 15:03
interesting libpq.dll on windows is not working with NativeCall, how can i debug it? 15:04
15:06 Actualeyes joined
timotimo m: say "making DefiniteHOW a first-class citizen of p6typecheckrv reduces run time of that simple benchmark to { 2.33 * 100 / 3.52 }% of what it used to be" 15:06
camelia rakudo-moar a62a00: OUTPUT«making DefiniteHOW a first-class citizen of p6typecheckrv reduces run time of that simple benchmark to 66.193182% of what it used to be␤»
azawawi what does "Cannot locate native library 'C:\Program Files\PostgreSQL\9.4\lib\libpq.dll': error 0x7e" really mean? 15:07
timotimo it means we should probably mate it output whether we're on dyncall or libffi, for one :) 15:08
azawawi english?
:)
15:08 espadrine joined
jnthn timotimo: Nice! :) 15:10
azawawi so? :)
timotimo: it worked ... travis-ci.org/perl6/gtk-simple/bui...36389#L949 :) 15:11
timotimo++ 15:12
jnthn: perl6 built on windows is 64-bit or 32-bit on a 64-bit host? 15:14
timotimo cool 15:15
azawawi downloads 32-bit postgresql to test
jnthn azawawi: 64-bit
azawawi: Especially since we only have JIT support on x64 15:16
:)
azawawi postgresql-x64-9.4
timotimo i'm having some trouble with :U versions of return type annotations :o 15:17
dalek p: e549cf2 | jnthn++ | src/QRegex/NFA.nqp:
Fix NFA generation for charrange with ignorecase.
15:18
p: 4570019 | jnthn++ | tools/build/MOAR_REVISION:
Bump MOAR_REVISION for NFA improvements.
p: 367c227 | jnthn++ | src/QRegex/NFA.nqp:
Fix charrange NFA to handle ignoremark.
p: ffdc843 | jnthn++ | src/QRegex/NFA.nqp:
Fix NFA of literals to handle NFG synthetics.
timotimo if the .definite of the original type is 0, i emit an unless_i to jump to the finish line, otherwise i emit an if_i 15:20
azawawi upgrades postgresql from 64-bit 9.4.1 to 9.4.5
timotimo why would that fail to cause errors when returning a defined instance when returns Foo:U is set?
dalek kudo/nom: d5c6b61 | jnthn++ | tools/build/NQP_REVISION:
Bump NQP_REVISION for various LTM fixes.
timotimo the accepts_type code is basically istype($thing, $base_type) && isconcrete($thing) == $definite
jnthn timotimo: Containerization maybe? 15:21
dalek ast: edaeffa | jnthn++ | S05-metasyntax/charset.t:
Tests for RT #125753.
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125753
jnthn Another xmas RT down
azawawi ouch "The Postgres 8.4 Documentation" in pg.pm6
timotimo jnthn: i'm testing against the value of $decont 15:22
just like the stuff before that
oh! 15:23
haha
if the type matches, the whole definedness stuff is skipped %)
dalek ast: 5079079 | jnthn++ | S05-metasyntax/longest-alternative.t:
Test for RT #126573.
15:24
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=126573
timotimo in other words, currently my code would accept a type check failure if and only if the definedness is correct 15:25
very clever!
jnthn d'oh :)
timotimo so i built the same code with || instead of && 15:26
jnthn Regression reported in RT #126573 fixed too 15:27
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=126573
15:29 skids joined
jnthn m: say 'aaaa' ~~ /(\w)+$0/; say $0 15:31
camelia rakudo-moar a62a00: OUTPUT«「aaaa」␤ 0 => 「a」␤ 0 => 「a」␤ 0 => 「a」␤[「a」 「a」 「a」]␤»
zengargoyle good * #perl6
jnthn m: say 'abcc' ~~ /(.)+$0/; say $0 15:32
camelia rakudo-moar d5c6b6: OUTPUT«「abcc」␤ 0 => 「a」␤ 0 => 「b」␤ 0 => 「c」␤[「a」 「b」 「c」]␤»
timotimo okay, full spectest run with my fixed-up code
jnthn m: say Match ~~ Iterable
camelia rakudo-moar d5c6b6: OUTPUT«False␤»
jnthn m: say Match ~~ Positional
camelia rakudo-moar d5c6b6: OUTPUT«False␤»
jnthn m: say 'abcc' ~~ /(.)+$0/; say $0.WHAT 15:33
camelia rakudo-moar d5c6b6: OUTPUT«「abcc」␤ 0 => 「a」␤ 0 => 「b」␤ 0 => 「c」␤(Array)␤»
jnthn Ah
m: say 'abca' ~~ /(.)+$0/; 15:34
camelia rakudo-moar d5c6b6: OUTPUT«Nil␤»
azawawi confirmed 9.3.10 on linux working with DBIish, 9.3.10 (x64) is not working on windows...
zengargoyle managed to grok enough LibraryMake/LibraryCheck/Find::Bundled to get Altorithm::Trie::libdatrie to build it's own libdatrie. woot 15:35
jnthn .ask TimToady for input on rt.perl.org/Ticket/Display.html?id=88340 - in summry, what should a backreference match when it's to a quantified thing?
yoleaux jnthn: I'll pass your message to TimToady.
15:36 brrt left
azawawi so how can i debug NativeCall's problem with DBIish Pg driver (libpq.dll) on windows? Any pointers? 15:37
timotimo cool, my code seems to work
arnsholt azawawi: If it's in the C pary you can just attach your debugger to the executable 15:38
15:39 yqt joined
Skarsnik azawawi, does the dll managed to load finaly? 15:39
15:39 Ven_ joined 15:40 khw joined
timotimo an extra spec test run with jnthn's latest changes just for safety 15:41
dalek kudo/nom: 31784a7 | timotimo++ | src/vm/moar/Perl6/Ops.nqp:
make types with :D or :U much cheaper for returning

through the power & magic of code generation!
15:46
timotimo excellent
15:46 yqt left 15:47 yqt joined
timotimo in the spesh output for the benchmark the return type checking code completely disappears 15:47
this makes me happy :)
15:47 yqt left
jnthn \o/ 15:48
15:48 yqt joined
jnthn timotimo++ 15:48
timotimo still not inlined. but see above for my nagging suspicion :P 15:50
the benchmark also allocates 1000002 IntLexRef and 999996 Int
:\
with the improved speed, the garbage collection time spending percentage is now 23.64% 15:51
diakopter which benchmark are you using
timotimo perl6 -e 'my int $i; $i = $i + $_ for ^1000001; say $i'
it uses the Int candidate for addition rather than the int version 15:52
diakopter clarify "it"
:D
timotimo for +
perl6 -e 'my int $i; for ^1000001 -> int $_ { $i = $i + $_ }; say $i' - this one is much better 15:53
diakopter m: my int $i; for ^1000001 -> int $_ { $i = $i + $_ }; say $i 15:54
camelia rakudo-moar 31784a: OUTPUT«500000500000␤»
diakopter you'd think camelia could give us a few significant digits of seconds XD
timotimo there the addition gets inlined
ilmari 4.5s vs 0.8s here
timotimo ilmari: after updating rakudo, you should get a bit better baseline time for that 15:55
ilmari m: say time
camelia rakudo-moar 31784a: OUTPUT«1447257345␤»
ilmari what, no subsecond precision by default?
TimToady m: say now 15:56
yoleaux 15:35Z <jnthn> TimToady: for input on rt.perl.org/Ticket/Display.html?id=88340 - in summry, what should a backreference match when it's to a quantified thing?
camelia rakudo-moar 31784a: OUTPUT«Instant:1447257402.853521␤»
ilmari TimToady: ah
TimToady time is POSIX
diakopter yeah I mean for every run
maybe mt: for moartimed
timotimo ilmari: i get 2.52s vs 0.67s on my machine with latest rakudo
diakopter watching youtu.be/kwxHXgiLsFE 15:57
azawawi i cannot debug it with perl6-debug-m on windows because after installing Debugger::UI::CommandLine, first ENTER works and then gets stuck... 16:00
sample with REPL on windows
jnthn++ # Debugger::UI::CommandLine
16:01 Ven_ left
diakopter m: my $a_a=now; my int $i; for ^1000001 -> int $_ { $i = $i + $_ }; say $i; say now -$a_a 16:01
camelia rakudo-moar 31784a: OUTPUT«500000500000␤0.6249112␤»
jnthn Darn, RT #125285 is a tricky one 16:02
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125285
dalek kudo-star-daily: c2e8cf8 | coke++ | log/ (9 files):
today (automated commit)
16:03
rl6-roast-data: f69014b | coke++ | / (9 files):
today (automated commit)
azawawi exception occurred in github.com/jnthn/zavolaj/blob/mast...l.pm6#L142 16:04
in method setup at lib/NativeCall.pm:225 16:06
16:07 zakharyas joined
azawawi github.com/rakudo/rakudo/blob/nom/...ll.pm#L225 # to be exact 16:07
diakopter mind boggle at supply/react 16:10
hoelzro o/ #perl6 16:11
16:12 CIAvash`` joined, aindilis` joined
Skarsnik azawawi, witch line in Pg.pm crash? 16:12
azawawi going home... will connect again in like 45 min depending on traffic 16:13
16:13 mr_ron_ joined
timotimo star-m: my $a_a=now; my int $i; for ^1000001 -> int $_ { $i = $i + $_ }; say $i; say now -$a_a 16:13
16:13 azawawi left
camelia star-m 2015.09: OUTPUT«500000500000␤2.3527282␤» 16:13
16:14 PotatoGim_ joined
timotimo star-m: my $a_a=now; my int $i; for ^1000001 -> int $_ { $i = $i + $_ }; say $i; say now -$a_a 16:15
camelia star-m 2015.09: OUTPUT«500000500000␤2.3779308␤»
timotimo this must be the effect of the for-loop-to-while-loop optimization
diakopter m: my int $i; for ^1000001 -> int $_ { $i = $i + $_ }; say $i; say now - INIT now
camelia rakudo-moar 31784a: OUTPUT«500000500000␤0.6119751␤»
16:15 f3ew_ joined 16:16 Ven_ joined
diakopter ^ look I learned from the youtube 16:16
16:16 apejens_ joined
jnthn m: say('rule1 foo rule2 bar' ~~ /^ [ ('rule1' || 'rule2') (.+?) ]* $/) 16:16
camelia rakudo-moar 31784a: OUTPUT«「rule1 foo rule2 bar」␤ 0 => 「rule1」␤ 1 => 「 」␤ 1 => 「 f」␤ 1 => 「 fo」␤ 1 => 「 foo」␤ 1 => 「 foo 」␤ 0 => 「rule2」␤ 1 => 「 」␤ 1 => 「 b」␤ 1 => 「 ba」␤ 1 => 「 bar」␤»
16:16 cxreg2 joined
TimToady yeah, that one's been sitting in my todo file for a while too... 16:16
jnthn TimToady: ^^ or the thing I asked about? :) 16:17
16:17 khw left, CIAvash` left, mr_ron left, zakharyas left, zakharyas joined
TimToady ^^ 16:17
jnthn TimToady: I got that latest one by golfing the nasty RT
16:17 mr_ron_ is now known as mr_ron
RabidGravy boom 16:17
jnthn TimToady: How much did you figure out about it?
16:17 ZoffixW joined, khw joined
TimToady I don't remember offhand, alas, would have to look at it again 16:17
ZoffixW jnthn, so. What's the status of P6 MetaCPAN/PAUSE? Last time we didn't get a chance to discuss it :) 16:18
16:18 PotatoGim_ is now known as PotatoGim
TimToady but I think it's probably tied in with the lack of proper backtracking primitives 16:18
jnthn ZoffixW: Maybe you mean jdv79? :)
ZoffixW Or right
jnthn Phew! :)
ZoffixW jdv79, so. What's the status of P6 MetaCPAN/PAUSE? Last time we didn't get a chance to discuss it :) 16:19
jnthn has too much compiler stuff on his plate; ecosystem stuff is definitely SEP :)
TimToady somehow it's not trimming the list of captures correctly
jnthn TimToady: Just to check: we do expect the inner captures to be implicitly quantified by the * on the [...]? 16:20
[Coke] yawns
16:20 xpen left
diakopter jnthn: what is that bug supposed to do 16:20
16:20 zakharyas left
diakopter (why does that expect just the longest ones 16:21
)
(and if you fix this, will it speed up matching by a few orders of magnitude?) XD XD XD
jnthn TimToady: That is, we expect [1] is (' foo ', ' bar') 16:22
diakopter: Unlikely, especially for Perl 6 parsing given we don't backtrack anyway in grammars
diakopter you hope it doesn't. )_)
TimToady I think that's the right expectation 16:24
16:24 zakharyas joined 16:25 pyrimidine joined 16:27 ely-se left
jnthn m: say('rule1 foo rule2 far' ~~ /^ [ (\w+?1 || \w+?2) (\sf*?) (<-[f]>+?) ]* $/) 16:28
camelia rakudo-moar 31784a: OUTPUT«「rule1 foo rule2 far」␤ 0 => 「rule1」␤ 1 => 「 」␤ 1 => 「 f」␤ 2 => 「o」␤ 2 => 「oo」␤ 2 => 「oo 」␤ 0 => 「rule2」␤ 1 => 「 」␤ 1 => 「 f」␤ 2 => 「a」␤ 2 => 「ar」␤»
jnthn Interesting that the first capture in the group isn't ever duped
oh, though
It is 16:29
m: say('rule1 foo rule2 far' ~~ /^ [ (\w+?) [1|2] (\sf*?) (<-[f]>+?) ]* $/)
camelia rakudo-moar 31784a: OUTPUT«「rule1 foo rule2 far」␤ 0 => 「r」␤ 0 => 「ru」␤ 0 => 「rul」␤ 0 => 「rule」␤ 1 => 「 」␤ 1 => 「 f」␤ 2 => 「o」␤ 2 => 「oo」␤ 2 => 「oo 」␤ 0 => 「r」␤ 0 => 「ru」␤ 0 => 「rul」␤ 0 => 「rule」␤ 1 =…»
16:32 diana_olhovik_ left
diakopter is there a way to trigger a pessimization that might rule out an optimization as a culprit 16:32
jnthn Output is the same with --optimize=0ff 16:33
*off
16:33 telex left 16:34 telex joined
diakopter I was thinking more the NFA 16:34
jnthn m: say('rule1 foo rule2 far' ~~ /^ [ (\w+?) [1||2] (\sf*?) (<-[f]>+?) ]* $/) 16:36
camelia rakudo-moar 31784a: OUTPUT«「rule1 foo rule2 far」␤ 0 => 「r」␤ 0 => 「ru」␤ 0 => 「rul」␤ 0 => 「rule」␤ 1 => 「 」␤ 1 => 「 f」␤ 2 => 「o」␤ 2 => 「oo」␤ 2 => 「oo 」␤ 0 => 「r」␤ 0 => 「ru」␤ 0 => 「rul」␤ 0 => 「rule」␤ 1 =…»
jnthn Not the NFA; there's no LTM in that case and so the NFA isn't used
diakopter it's not the Match object reuse thing obviously
or Cursor reuse 16:37
* can't remember
TimToady m: my $abc = " a,b,c, "; $abc ~~ /(\w)+ % ","/; say $abc.substr($0.from ..^ $0.to) 16:38
camelia rakudo-moar 31784a: OUTPUT«a,b,c␤»
TimToady I think that's what a backref to a quantified thing should check 16:39
it could be argued that ~$0 should return that too, except it's already just an Array
16:41 kblagov joined, Ven__ joined, kblagov left, Ven_ left
TimToady jnthn: I seem to recall thinking that it would be easier to trim on backtracking if we had a linked list stored in the opposite order 16:43
jnthn TimToady: I'm suspecting it may be a bug in the subrule backtraking 16:44
TimToady: We keep the cursor around so we can backtrack into it if needed
TimToady: But that keeps the capture around too
TimToady with a linked list you can have multiple entry points 16:45
but with the current setup, we'd have to record how many of the list to pay attention to somehow 16:46
or maybe which element of the list to pay attention to
the STD model was a bit cleaner here, and it could just throw away cursors at the right moment
16:47 domidumont joined 16:50 Ven__ left
ZoffixW m: my @a = (1, 2, 3); my $a = @a; say [$a.^name, $a.VAR.^name, $a.VAR.VAR.VAR.VAR.VAR.VAR.VAR.VAR.^name, $a[2]] 16:55
camelia rakudo-moar 31784a: OUTPUT«[Array Scalar Scalar 3]␤»
ZoffixW That's pretty weird :P A Scalar container containing and Array container... but what can I go on doing .VAR stuff forever. ? 16:56
16:56 Ven_ joined
ZoffixW s/what/why/; 16:56
m: my $x = 42; say $x.VAR.VAR.VAR.VAR.VAR.VAR.VAR.VAR.VAR.VAR.VAR.VAR.VAR.VAR.VAR.VAR.VAR.VAR.VAR.^name 16:57
camelia rakudo-moar 31784a: OUTPUT«Scalar␤»
ZoffixW hm. mkay
16:59 ^elyse^ joined
ZoffixW m: my $a = (1, 2, 3); .say for @@@@@@@@@@$a; 16:59
camelia rakudo-moar 31784a: OUTPUT«1␤2␤3␤»
ZoffixW This is fun ^_^
diakopter ^_^ 17:00
17:00 zakharyas left 17:01 Ven_ left, dakkar left
PerlJam ZoffixW: are you mapping out all the idempotencies? 17:01
ZoffixW PerlJam, no, I'm slowly reading P6 docs and today's lesson was docs.perl6.org/language/containers 17:02
And then I played around a bit :P
TimToady m: my $a = (1, 2, 3); .say for @@$@@$$@@@$@$@@$a;
camelia rakudo-moar 31784a: OUTPUT«1␤2␤3␤»
17:03 azawawi joined
azawawi im back :) 17:04
Skarsnik: ping
Skarsnik pong 17:05
dalek Iish: ae71b30 | (Sylvain Colinet)++ | lib/DBDish (2 files):
added a fetchrow_typedhash method to have a hash value with correct perl6 type instead of all Str
Iish: bf33b1b | (Sylvain Colinet)++ | README.pod:
Add a small sniped of doc about fetchrow_typedhash
Iish: 7f3cbd6 | (Zoffix Znet)++ | / (3 files):
Merge pull request #25 from Skarsnik/master

added a fetchrow_typedhash method to have a hash value with correct p…
azawawi Skarsnik: It was crashing on DBIish.pm6. i use this repo github.com/azawawi/DBIish
AlexDaniel “I put all my POD at the end of the file, because the '=begin pod' lines seem to confuse cperl-mode's syntax highlighting in emacs” – why if there is perl6-mode? 17:06
azawawi Skarsnik: github.com/azawawi/DBIish/blob/mas...ish.pm6#L9 # to be exact
Skarsnik: are you on windows also?
Skarsnik No, but I have my nose in DBIsh and Pg.pm x) 17:07
dalek Iish: 87c02a1 | (Zoffix Znet)++ | README.pod:
Fix typos
17:08 raiph left
dalek Iish: 0e62d3b | (Zoffix Znet)++ | README.pod:
Use POD and not Markdown syntax
17:09
Skarsnik You don't get in error in Pg.pm (or the drivers used)?
17:09 raiph joined
azawawi Skarsnik++ # fetchrow_typedhash 17:10
17:10 yqt left
dalek kudo/nom: ada0ad8 | TimToady++ | src/core/ (2 files):
add a backref method for Array matches

For an Array of matches, we need to distinguish stringifying the Array (which always puts spaces between) from asking for the backref to what was matched, which includes any intervening delimiters instead of spaces.
17:13
Skarsnik I am off for a while (2h)
17:17 softmoth_ joined
Skarsnik hm I forget today is a day off x) 17:18
timotimo a day of offness?
diakopter offense
Skarsnik :m sub foo($something, *%f, :$named = 0) {say %f.perl}; foo(1, :a(0), :b(1), :named(1)); 17:20
m: sub foo($something, *%f, :$named = 0) {say %f.perl}; foo(1, :a(0), :b(1), :named(1)); 17:21
camelia rakudo-moar 31784a: OUTPUT«{:a(0), :b(1), :named(1)}␤»
17:21 xpen joined
Skarsnik interesting, how I work around that? 17:22
ilmari m: sub foo($something, :$named = 0, *%f) {say %f.perl}; foo(1, :a(0), :b(1), :named(1));
camelia rakudo-moar 31784a: OUTPUT«{:a(0), :b(1)}␤»
Skarsnik oh thx, so *% does not count as positional? 17:23
stmuk_ hmmm rakudo is maybe a little faster than a week or so back (according to one superficial and probably misleading benchmark)
timotimo stmuk_: could very well be; how recent is the rakudo you've measured? 17:24
jnthn TimToady: I ain't having much luck with the backtracking/capture bug :( 17:25
timotimo stmuk_: because i just landed a patch today that makes :D and :U return types noticably cheaper
17:25 dakkar joined 17:26 ZoffixW left
jnthn TimToady: The place I thought we were not chopping enough off the cstack, it seems we actually are. 17:26
Or at least, I can't figure out why we'd not be
17:26 xpen left
diakopter jnthn: what's the line no 17:26
stmuk_ timotimo: I built a few mins ago and this is using a sequential iteration for pi
timotimo ah 17:27
pippo Can anybody tell me if "sink context" means context where lazi things loose their laziness?
timotimo i wonder if it comes into play noticably there; is that from perl6-bench or something?
stmuk_ yes it was imported into japh's suite
timotimo pippo: that sounds like a reasonable explanation for what that means
TimToady pippo: sink means eager plus throw everything away
timotimo stmuk_: i can test before/after my patch if it impacts that! :D 17:28
jnthn ooh
pippo TimToady: timotimo: thank you.
jnthn Or I did the patch wrong.
17:29 rindolf left
diakopter prof-m: signal(SIGINT).act: { exit } 17:29
camelia prof-m 273e89: OUTPUT«Writing profiler output to /tmp/mprof.html␤»
.. Prof: p.p6c.org/19efb1e
diakopter heheh, it didn't report the segfault 17:30
timotimo stmuk_: what kind of "scale" would you give as a parameter?
jnthn TimToady: I have a patch that does seem to fix things 17:31
TimToady YaY
jnthn It passes all the NQP qregex tests, and doesn't bust the NQP/Rakudo build; spectesting now 17:32
TimToady (politician with combover flashing double victory)
17:32 pat_js joined
stmuk_ 100000 17:32
17:32 llfourn joined
jnthn wonders how long until that's in Unicode... 17:32
timotimo thanks
TimToady jnthn: the backref matcher wants to use the new backref method, or an unreasonable facsimile thereof 17:33
timotimo stmuk_: wanna know how to make that benchmark 2x faster with a very simple change? 17:34
stmuk_ timotimo: that takes about 11 secs on a 4 yr old macbook which is maybe a sec or two faster than before (v roughly)
timotimo: sure
using Int $i?
timotimo @*ARGS[0] is not an Int unless you .Int it, so <= SCALE intifies the string on every iteration
TimToady arguably the from/to/backref methods are almost worth mixing into List/Array as a role when those are used to return lists of matches 17:35
jnthn TimToady: OK; I won't have time for that today (gotta go run an errand, then cook us some dinner, and then I'm meant to rest :))
AlexDaniel .u ṏ
yoleaux U+1E4F LATIN SMALL LETTER O WITH TILDE AND DIAERESIS [Ll] (ṏ)
jnthn TimToady: The regex patch has made it through S06
TimToady we're glad someone's looking after you now :)
jnthn Uh, S05, even
stmuk_ I did wonder about specifying data types but it didn't make much difference when I first tried it .. and then I wouldn't be comparing the same thing historically
diakopter jnthn: push, push push! 17:36
timotimo m: say "not intifying the cmdline argument on every iteration makes the benchmark take only { 6.37 * 100 / 13.8 }% of the original time "
um, camelia?
camelia rakudo-moar ada0ad: OUTPUT«not intifying the cmdline argument on every iteration makes the benchmark take only 46.159420% of the original time ␤»
stmuk_ timotimo: actually the one I was using was gist.github.com/stmuk/074811935f16a6725f76 17:37
timotimo that'd not have that problem
TimToady m: my $abc = " a,b,c, "; $abc ~~ /(\w)+ % ","/; say $0.backref 17:39
camelia rakudo-moar ada0ad: OUTPUT«a,b,c␤»
timotimo ah, i see here that my patch - which will remove calls to accepts_type - would throw out about 4% of the total run time
so not insanely good, but i'll take it :3
stmuk_ better than a point in the eye with a sharp stick 17:41
TimToady well, depends on whether the sharp stick is called a 'scalpel' :) 17:42
TimToady having been poked in the eye with several of those over the years...
17:43 raoulvdberge joined
diakopter lasers are sharp too 17:43
timotimo updating rakudo makes it a bit faster still
dalek p: d181c8b | jnthn++ | src/vm/moar/QAST/QASTRegexCompilerMAST.nqp:
Don't keep backtracked over captures around.

Otherwise we spew them out in the final results, not to mention can't GC so soon.
TimToady has been poked with even more lasers than scalpels
timotimo m: say "went down to about { 5.7 * 100 / 6.12 }% from before" 17:44
camelia rakudo-moar ada0ad: OUTPUT«went down to about 93.137255% from before␤»
timotimo stmuk_: wow, i underestimated the savings by almost 2x
dalek kudo/nom: 79b68bb | jnthn++ | tools/build/NQP_REVISION:
Get backtracking/captures fix.
timotimo the patch makes a lot of things jit that didn't jit before
jnthn m: say ('rule1 foo rule2 bar' ~~ /^ ( 'rule1' || 'rule2' )* %% (.+?) $/).caps.elems
camelia rakudo-moar ada0ad: OUTPUT«11␤»
jnthn 4 locally :) 17:45
TimToady and here in 6 minutes or so
stmuk_ 1 sec off 12 is about 8% 17:46
TimToady we now recompile moar at 8, 28, and 48, since it's decoupled from jvm
azawawi moritz: github.com/perl6/DBIish/pull/26 # pending travis CI, please test
diakopter timotimo: push push push
raoulvdberge jnthn: hey, I watched like 2 Perl 6 talks of you, love them! :-)
timotimo diakopter: it's already up
jnthn: your intuition was right about inlining code frames in spesh after my patch, compare: 17:47
In total, 8703573 call frames were entered and exited by the profiled code. Inlining eliminated the need to create 2496707 call frames (that's 22.29%).
In total, 7004544 call frames were entered and exited by the profiled code. Inlining eliminated the need to create 3195721 call frames (that's 31.33%).
jnthn m: say ('rule1 foo rule2 bar' ~~ /^ ( 'rule1' || 'rule2' )* %% (.+?) $/).caps[1].elems
camelia rakudo-moar ada0ad: OUTPUT«1␤»
jnthn m: say ('rule1 foo rule2 bar' ~~ /^ ( 'rule1' || 'rule2' )* %% (.+?) $/)[1].caps.elems 17:48
camelia rakudo-moar ada0ad: OUTPUT«Method 'caps' not found for invocant of class 'Array'␤ in block <unit> at /tmp/n4XMLvKVvJ:1␤␤»
flussence oof, back to «Stage parse : 90.486» with that last one
diakopter is that lower or higher XD 17:49
timotimo flussence: the difference between with jnthn's latest bump and without was 0 for me
jnthn m: say ('rule1 foo rule2 bar' ~~ /^ ( 'rule1' || 'rule2' )* %% (.+?) $/)[1].elems
camelia rakudo-moar ada0ad: OUTPUT«9␤»
jnthn raoulvdberge: Glad you enjoyed them :-)
flussence I wonder how much of these numbers is just noise. Last compile I did was an hour or two ago, it was 87 there.
jnthn timotimo: Nice!
timotimo jnthn: thanks for pushing me into doing this! 17:50
and assisting :)
flussence still, I'll take a bit of slowdown over more correctness any day :D
(-EBADGRAMMER, but still)
dalek ast: 3082b66 | jnthn++ | S05-match/capturing-contexts.t:
Tests for RT #125285.
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125285
TimToady deletes that line from his todo 17:51
timotimo japhb: how do you feel about changing pi-sequential-iteration to include .Int for the SCALE assignment from the commandline? it reduces the run time to less than half, so it feels like we're really testing int parsing as much as rat arithmetic there!
azawawi travis-ci.org/perl6/DBIish/builds/90569673 # looks good, any objections on github.com/perl6/DBIish/pull/26 ? 17:53
jnthn TimToady: :)
OK, that's me done for today. 2 more xams tickets down. :) 17:54
17:54 kb joined
TimToady would dance happy jig but is lying in bed lazing 17:54
jnthn &
17:55 kb is now known as Guest48709
pippo TimToady: you are not in sink context then :-)) 17:55
TimToady is already sunk 17:56
azawawi going to merge it since nobody objected... last chance :)
pippo :-)
timotimo azawawi: i didn't review the code, but i +1 the idea behind that pr :) 17:57
dalek Heuristic branch merge: pushed 18 commits to DBIish by azawawi
17:58 Mhoram joined
azawawi now to getting github.com/perl6/DBIish/blob/maste...ples/pg.p6 to work on windows :) 17:58
17:58 srvsh joined 17:59 sprocket left
Skarsnik azawawi, did you look if Pg set an env variable with the lib location? 18:02
azawawi github.com/perl6/DBIish/blob/maste.../Pg.pm6#L6 18:03
Skarsnik: i will look at it
18:03 dakkar left
timotimo what in the world ... 18:06
diakopter ...
timotimo &infix:<div> somehow ends up calling .sink on a List
jdv79 Zoffix: not much has changed since i wrote about it. I just have some local changes for metacpan that i'll try to push up tonight 18:07
pause works. minimally ^H 18:08
18:09 Actualeyes left
timotimo it grabs a WVal from somewhere and calls .sink on it ... why?! 18:09
jdv79 next big thing is proabbly installer support but we're kinda blocked i think until hte CUR work is sufficiently complete
18:11 abaugher left 18:15 sprocket joined
nine Just a quick update on that ^^. Sadly no progress since last Thursday since I've cought myself a nasty cold :( 18:16
18:18 pat_js left
pippo git pull 18:18
diakopter Already up-to-date. 18:19
18:19 rindolf joined
pippo Sorry wrong terminla 18:19
jdv79 ok, cool 18:20
pippo :-)
timotimo nine: yeah, i'm also in the nasty cold place ... this one i have right now seems to have an extraordinarily long tail :(
18:20 ZoffixW joined
ZoffixW jdv79, so it's basically a metacpan.org/ code that loads P6 modules instead? 18:21
timotimo ZoffixW: is fallout 4 already in your hands? 18:22
if so, i'm surprised we get to see you at all :D
ZoffixW timotimo, it is. I played 9 hours yester.
ugexe was just about to fulfill his fallout addiction
yoleaux 09:06Z <azawawi> ugexe: please see github.com/ugexe/zef/issues/71
10:06Z <mrf> ugexe: Ok I will investigate replacing some of the | with || (Though some of them specifically should be |) and see if that helps.
ZoffixW yesterday
DrForr He's typing . Ergoo, no. 18:23
ZoffixW timotimo, what can I say. I have a high work ethic.
(what I mean is I'm at $work right now)
^_^
18:24 Guest48709 left
timotimo hah 18:24
good job
diakopter $work is for sleeping with your eyes open 18:25
jdv79 ZoffixW: its a minimally modified seperate instance of that code, yes 18:26
since there are virtually no p6 modules on cpan the prototype instance on hack loads up the current ecosystem 18:27
this is all in the blogs posts i made a few weeks ago:)
ZoffixW jdv79, what's the link: I don't think I've read them all
jdv79 like i said - i've made some progress on the metcpan stuff since then that i'll try to push soon
ZoffixW I mean the blog posts 18:28
jdv79 also have ot cleanup some namings so those brances will be rebased shortly so maybe don't do anything big on them
unless you want to untlaanlge a git mess
i mean force pushed
18:29 ^elyse^ left
jdv79 ZoffixW: jdv79.blogspot.ie/search?updated-mi...-results=2 18:29
awesome urls, blogspot:( 18:30
timotimo twitter.com/gamehawk/status/664496421282803712 ... has a point! 18:32
azawawi ZoffixW: so how is fallout 4? addictive? :) 18:33
18:33 kjs_ joined
ZoffixW azawawi, it's alright. Skyrim with guns and zombies :P 18:34
And Sims... I guess (you get to build your santuary and tell your citizens what to do; like grow crops, etc) 18:35
18:35 samb1 joined, ^elyse^ joined
jdv79 timotimo: to be expected, right? 18:36
ZoffixW jdv79, Neil has a point: jdv79.blogspot.com/2015/10/perl6-an...9675273137
jdv79 that's polish
ZoffixW Especially since P6 dist names don't have to be unique.
jdv79 well, relatively
18:37 srvsh left
timotimo well, who can do something about that directory listing? 18:38
jdv79 ZoffixW: i know. i decided to try the paht of least resistance.
timotimo i only have access to the wordpress instance, i *think*, that would be enough
but that's another thing we'd have to change each time we do a release
ugh, so much stuff to do
Skarsnik azawawi, ok pg set nothing in the env, maybe in the registry? 18:39
jdv79 think about what it would take to build a cpan ecosystem from scratch 18:40
sounds vaguely like the build it all outselves POV that generated parrot 18:41
and like parrot the p6 on p5's cpan may be a throw away to be learned from
idk:)
ZoffixW jdv79, on a scale from 0% to 100%, how close do you think we are from replacing modules.perl6.org with that metacpan instance?
jdv79 that's likely not gonna happen because cpan is about actual dists 18:42
and metacpan is built on that
18:42 sufrostico left
jdv79 we could possibly build one adapted to github and periodic snapshots or tags but that's not what i'm working on 18:43
though the way i fed the ecosystem into the protype instance is basically that 18:44
18:44 srvsh joined
ZoffixW jdv79, the reason I ask is because I'm working on a mojolicious powered version of modules.perl6.org; So far it's essentially what we currently have, but I was wondering how far I should take it... For example, I'm replacing the current badge system with a single Kwalitee metric. 18:45
And I was wondering if that effort was a waste. But if you're saying p6 metacpan won't replace modules.perl6.org...
psch m: multi f(int $x is rw) { "rwint" }; multi f(int $y) { "int" }; my int $z = 0; say f $z # this is standing in the way of my multicacheadd work... /o\
camelia rakudo-moar 79b68b: OUTPUT«int␤»
ZoffixW ¯\_(ツ)_/¯
jdv79 yeah, so far 2 seperate ecosystems
psch and i don't quite get what exactly sort_dispatchees_internally actually does... o.o 18:46
s/lly/l/
ZoffixW Alright. I'll continue hacking on it then :)
azawawi finally... got it :)
ZoffixW jdv79, And once I finish Fallout4, I'll see if I can give a helping hand with your fork of MetaCPAN.
jdv79 by then it'll likely be done 18:47
azawawi set PATH=%PATH%;C:\Program Files\PostgreSQL\9.3\bin # libpq.dll on windows depends on libeay32.dll
18:47 Sqirrel joined
ZoffixW ^_^ 18:47
azawawi :)
jdv79 if you disappear like sri did with WoW
azawawi jdv79: im a wow player and im here :)
jdv79 iirc he disappeared for weeks to months in the early ays of Catalyst 18:48
[Coke] (make test jvm) recent history, it's been two failing test files.
(both of which are ticketed, IIRC)
ZoffixW I clocked about 600 hours on Warframe :P
azawawi Skarsnik: libpq.dll on windows depends on libeay32.dll... go figure :)
jdv79 for sure, i'd love to see the whole thing built with p6
but how practical is that - i'm just repaeting myself now. anyway, back to work. 18:49
ZoffixW Good plan :P)
timotimo has clocked 420 hours on Natural Selection 2 18:58
that's probably the game i have the most time played
though, i've played many, many, many hours of smash bros melee, too
_sri_ jdv79: for the horde! 19:00
ZoffixW :P
19:01 andreoss left
jdv79 so definitiveness doesn't factor into MMD? 19:02
19:02 Mhoram is now known as abaugher 19:04 raiph left
dalek ast: 5c7ae5c | lizmat++ | S32-str/sprintf.t:
Unfudge now passing tests on rakudo.moar
19:05
TimToady grondilu: you can actually get away with Z+= there because of basic parser greediness, though maybe you want the brackets for clarity 19:06
azawawi quick question, how can modify %*ENV<Path> inside a script that is going to load a DLL
TimToady BEGIN %PROCESS::ENV<Path> = ... maybe 19:07
or maybe INIT
I guess it depends when the DLL is being loaded... 19:08
lizmat m: BEGIN %*ENV<foo> = "bar"
camelia ( no output )
lizmat I don't think there're a need to refer to PROCESS:L 19:09
TimToady grondilu: I daresay Z+= may become a enough of an idiom that we don't need the brackets
lizmat All tests successful.
Files=1073, Tests=50150, 226 wallclock secs (12.40 usr 3.81 sys + 1381.55 cusr 126.72 csys = 1524.48 CPU)
feels like we picked up some speed today 19:10
timotimo hey lizmat
how was FRA?
lizmat still not at FRA, we're trying to determine whether it makes sense
since the same flight we want to take tomorrow was cancelled today, thanks to LH being on strike 19:11
so most likely it's going to be cancelled tomorrow as well
19:12 ZoffixW left
azawawi lizmat: something is magically here... if i set path outside the dll loads just fine, inside the script... nope... 19:14
TimToady: thx :)
19:14 raiph joined, abaugher left
timotimo lizmat: oh, trouble :| 19:14
Skarsnik hm maybe this should be done before compile time? 19:15
for the DLL stuff
pippo m: "abc" ~~ tr/abc//; 19:16
camelia rakudo-moar 79b68b: OUTPUT«Cannot modify an immutable Str␤ in block <unit> at /tmp/ilKOWsP9lE:1␤␤»
19:17 abaugher joined
pippo m: "abc".tr/abc//; 19:17
camelia rakudo-moar 79b68b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/VvRawwXQDT␤Missing required term after infix␤at /tmp/VvRawwXQDT:1␤------> 3"abc".tr/abc//7⏏5;␤ expecting any of:␤ prefix␤ term␤»
19:17 abaugher left 19:18 zacts left
psch m: "abc".trans/abc//; 19:19
camelia rakudo-moar 79b68b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/cuCVXko_oM␤Missing required term after infix␤at /tmp/cuCVXko_oM:1␤------> 3"abc".trans/abc//7⏏5;␤ expecting any of:␤ prefix␤ term␤»
lizmat commuting to FRA anyway :-( &
psch oh ehh
m: "abc".trans(/abc/ => '');
camelia ( no output )
pippo psch: so tr/// is gone ? 19:20
psch pippo: no, you saw it work with ~~
azawawi i bet NativeCall is using another stored environment path variable
azawawi takes a look
psch pippo: it's just that the LHS to ~~ needs to be a container
m: $_ = "abc"; tr/abc//; .say
camelia rakudo-moar 79b68b: OUTPUT«␤»
DrForr The Hilton at FRA isn'... but they won't worry about that. 19:21
psch m: $_ = "abcDEF"; tr/abc//; .say # a bit more meaningful
camelia rakudo-moar 79b68b: OUTPUT«DEF␤»
19:21 zengargoylew joined
pippo $_ = "abc"; $ ~~ tr/abc//; .say 19:21
m: $_ = "abc"; $ ~~ tr/abc//; .say
camelia rakudo-moar 79b68b: OUTPUT«Method 'trans' not found for invocant of class 'Any'␤ in block <unit> at /tmp/jl3xfpmcLz:1␤␤»
pippo m: $_ = "abc"; $_ ~~ tr/abc//; .say
camelia rakudo-moar 79b68b: OUTPUT«␤»
pippo psch: TY!
psch wonders if we want TR/// to mirror s/// and S///... 19:22
19:22 Sqirrel left, Sqirrel joined 19:23 abaugher joined
azawawi github.com/azawawi/DBIish/blob/mas...ples/pg.p6 # not working on windows because of libpq.dll needing a path change... 19:23
Skarsnik azawawi, try putting that before the use? 19:24
19:25 abaugher left 19:26 abaugher joined
azawawi same thing 19:26
dalek albot: 676118c | TimToady++ | evalbot.pl:
try to not crash on exec failure
lucs Question: fpaste.scsys.co.uk/501318 19:27
azawawi somewhere %*ENV<Path> is being saved in nativecall... im using rakudo star 2015.09 at my home PC...
hoelzro awwaiid: I don't know much about DLL loading on Windows, but does the casing matter? Path vs PATH?
azawawi hoelzro: it is azawawi :)
19:27 camelia left
hoelzro oops, sorry! 19:28
azawawi hoelzro: yes case does matter :)
19:28 camelia joined
Skarsnik azawawi, does DBI load Pg.pm or it's only done at the create call ? 19:28
TimToady nqp: say(42)
azawawi Skarsnik: Pg is loaded at connect
Skarsnik Ok that weird then
19:29 ChanServ sets mode: +v camelia
camelia nqp-parrot: OUTPUT«Can't exec "./rakudo-inst/bin/nqp-p": No such file or directory at lib/EvalbotExecuter.pm line 193.␤exec (./rakudo-inst/bin/nqp-p /tmp/tmpfile) failed: No such file or directory␤Lost connection to server irc.freenode.org.␤» 19:29
..nqp-moarvm: OUTPUT«42␤»
..nqp-jvm: OUTPUT«#␤# There is insufficient memory for the Java Runtime Environment to continue.␤# pthread_getattr_np␤# An error report file with more information is saved as:␤# /tmp/jvm-6428/hs_error.log␤»
TimToady \o/
Skarsnik hm, maybe setting %*ENV does not do a setenv?
hoelzro it should 19:30
TimToady lovely word, "should"
hoelzro =)
moritz iirc it doesn't 19:31
hoelzro it does on my Linux box
hmm 19:32
maybe not, actually
my test was poorly chosen, it seems 19:33
%*ENV<FOO> = 17; run('env') outputs FOO in the child
azawawi Did some logging: Changed Path -> install_driver( Pg ) -> Loaded Pg!
hoelzro but looking at /proc/self/environ after changing %*ENV doesn't show FOO
Skarsnik hm nativecall has stuff for c++, I wonder how far that work
azawawi so basically set env is not picked up or cached somewhere
hoelzro Skarsnik: it works for a suprising amount 19:34
Skarsnik It can export c++ class? 19:35
or it just C compiled as c++ x)
hoelzro FROGGS++ included some good examples in the test suite
you can use it to create and call methods on C++ objects 19:36
azawawi hoelzro: did a `shell "SET Path";` which should list paths and the path is set correctly... something is wrong here 19:37
hoelzro azawawi: I think that child processes are getting the correct env
azawawi smells weird magic
Skarsnik na it's probably set env for child 19:38
timotimo hoelzro: i'm pretty sure we only change the environment when calling children, but we're not modifying our own process' environment
hoelzro but I don't think modifying a key under %*ENV actually modifies the current process' env, as moritz said
timotimo because we can safely pass a new environment on exec
you can still use setenv via nativecall
jdv79 so a BUILD in a role is broken on purpose or just bug or NYI?
azawawi tests the child env theory
hoelzro timotimo: is it unsafe to modify the current process' env?
jdv79 says it can't touch the attr:(
azawawi yup, we dont change our own process environment 19:39
i created a init.p6 which did changed the env and then shell('perl6 test.p6')... worked like a charm 19:40
19:41 mr_ron left, ZoffixW joined
azawawi timotimo: how can i do that? 19:41
ugexe my %custom-env = $*ENV; $custom-env<some-path> = "blah"; shell('perl6 test.p6', :env(%custom-env)) should work
hoelzro I'm kind of surpised that %*ENV isn't a friendly wrapper around getenv/setenv
ZoffixW lucs, why is the output expected to be 'quzY'?
lucs, where is that value coming from?
timotimo azawawi: sub setenv is native(Str)
lucs ZoffixW: It's about the last line in the code: Foo.new(23).show_quz(); 19:42
dalek ast: 53e1022 | usev6++ | S32-str/sprintf.t:
Move tests for RT #116280 to existing block

Also make tests a bit more varied and unfudge for rakudo.jvm
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=116280
lucs ZoffixW: D'oh! Sorry, I see what you mean.
ZoffixW: I've been abstracting away at the code, but I went a bit too far here :) 19:43
ZoffixW: The new() in the FooY class would set the quz to 'quzY' was the intention.
19:44 Ven_ joined 19:45 nowan joined
Skarsnik azawawi, _putenv on win32 19:45
ZoffixW lucs, in its new {} add return self.bless(:quz('quzY'));
lucs, fpaste.scsys.co.uk/501320 19:46
Skarsnik azawawi, like this _puvtenv("VAR=value");
lucs ZoffixW: Gotcha. Thanks!
19:46 mr_ron joined 19:47 srvsh left
jferrero m: %x = (a => 1, b => 2); say "{%x}" 19:47
camelia rakudo-moar 79b68b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/8C1f0oiWtw␤Variable '%x' is not declared␤at /tmp/8C1f0oiWtw:1␤------> 3<BOL>7⏏5%x = (a => 1, b => 2); say "{%x}"␤»
19:48 srvsh joined 19:49 dha joined
TimToady jferrero: needs a 'my' in front 19:49
jferrero m: my %x = (a => 1, b => 2); say "{%x}" 19:50
camelia rakudo-moar 79b68b: OUTPUT«a 1 b 2␤»
jferrero :)
19:50 geraud joined
jferrero I'm reading "Using Perl", and page 11 say that Hashes are interpolated with newlines, not spaces. 19:52
TimToady looks like a bug to me; the specs also say newline 19:54
dalek osystem: 6f504e5 | cygx++ | META.list:
Add Image::RGBA::Text

For those of us who prefer to use the text editor for image manipulation.
cf github.com/cygx/p6-image-rgba-text
19:55 Ven_ left, Ven__ joined, rindolf left
Hotkeys heyo my major and one of my hobbies comes together 19:55
talking about metaphors and teacher used a yoyo in an example
i.imgur.com/ThE1YaD.png 19:56
azawawi fixed on windows finally .... github.com/azawawi/DBIish/blob/mas...ples/pg.p6 # weird magic but it works :) 19:57
#perl6 ++
hoelzro azawawi++ 19:58
19:59 kjs_ left
flussence azawawi++ # keeping DBIish in good shape 19:59
dalek Iish: 497e727 | azawawi++ | examples/pg.p6:
Update example with code to modify the Path... not working though for some weird reason
20:00
Iish: 599e1dd | azawawi++ | examples/pg.p6:
Set our own process environment since %*ENV<Path> is only working on child processes
Iish: 80a65b1 | azawawi++ | examples/pg.p6:
Add back missing code
Iish: 3d8467d | azawawi++ | examples/pg.p6:
Merge pull request #27 from azawawi/master

libpq.dll on windows depends on libeay32.dll
Skarsnik I think it should probably be something in nativecall like %*Native<PATH> x)
azawawi Skarsnik: true also %*ENV<...> documentation should be updated to reflect this vital information 20:01
hoelzro it should probably be spec'd, too
20:01 cygx joined
cygx azawawi: I suspect github.com/MoarVM/MoarVM/issues/214 is to blame here 20:02
azawawi as an ex-visual c++-er, i agree :) 20:03
20:05 CIAvash`` left
azawawi cygx: left a comment. thanks :) 20:06
so now sqlite, postgresql and mysql are working on linux and windows... Enjoy :) 20:07
ZoffixW azawawi++ 20:08
dalek ecs: 366d8ad | TimToady++ | S02-bits.pod:
pairs of hash should be separated by newline
20:09
20:09 darutoko left, Ven__ left
cygx azawawi++ indeed for doing something useful - me, on the other hand, I'm just generating pictures of camelia ( github.com/cygx/p6-image-png-infla...camelia.p6 ) 20:10
20:10 diana_olhovik joined 20:11 raiph left 20:15 Ven_ joined
ZoffixW :o 20:16
20:17 domidumont left, kjs_ joined
Skarsnik hm is there a nice way to test a .travis.yml? instead of making lot of commit? 20:17
hoelzro Skarsnik: I make commits and push them to a branch 20:18
that way, you don't need to clutter up history when you've figured it out
Skarsnik let find what obscure git command I need to learn for that x) 20:20
dha I notice that 5to6-nutshell has been titled so it doesn't sort with the other 5to6 docs. Wasn't that the point of renaming it? 20:22
20:24 xpen joined
ZoffixW Right, there's this: github.com/perl6/doc/issues/158 20:24
hoelzro Skarsnik: just git push origin HEAD:travis-test-commits
and then clean up the branch after you're done
dha I also note the phrase '"item" variables' in there. There does not seem to be any indication of what that means anywhere.
hoelzro let me know if you need help
dalek kudo/nom: 459bc52 | TimToady++ | src/core/Map.pm:
use newlines between Hash.Str pairs, as specced
ast: 2147419 | TimToady++ | S02-literals/hash-interpolation.t:
tests to make sure Hash.Str uses \n separator

  (and also that the pairs are sorted before interpolation)
ast: ddc7e62 | TimToady++ | integration/advent2014-day13.t:
more tests of \n in Map.Str
ZoffixW hum
20:25 Ven_ left
TimToady jferrero++ for reporting a bug 20:25
ZoffixW dha, seems like original grouping title was later undone :) github.com/perl6/doc/commit/542b37...62eb5aa98b
Skarsnik hoelzro, I did git branch travis, it's not right?
dha ZoffixW - well, then... I'm not sure what to make of that. 20:26
ZoffixW Never fear! Zoffix will take care of it! 20:27
dha Yay!
azawawi travis-ci.org/perl6/DBIish/builds/90597841 # waiting for results :) 20:28
20:28 xpen left
zengargoylew m: my %x = (a => 1, b => 2); say "{%x}"; say "%x{}" 20:29
camelia rakudo-moar 79b68b: OUTPUT«a 1 b 2␤a 1 b 2␤»
dha So, is there a reason that the section on the Scalar sigil refers to '"item" variables"' rather than '"scalar" variables'
?
hoelzro Skarsnik: you probably want git checkout -b travis
dalek c: cb54df6 | (Zoffix Znet)++ | doc/Language/5to6-nutshell.pod:
Revert to terser title to maintain grouping

With the more expressive title, the doc moves down to the middle of the list instead of being grouped with the rest of 5to6 docs. To make the title more explanatory, I expanded the subtitle
hoelzro git branch travis switches to the travis branch if it already exists
azawawi so DBIish is now missing mainly slow Oracle, MSSQL (which was sybase), and ...?
20:30 Peter_R joined
ZoffixW CSV! :) 20:30
dalek ast: 38931b2 | usev6++ | S05-metasyntax/longest-alternative.t:
Add test (fudged 'todo') for RT #122951
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=122951
ZoffixW Though we mostly need a Text::CSV module. But there is DBD::CSV in P5 land, IIRC 20:31
TimToady m: my %x = (a => 1, b => 2); say "{%x}"; say "%x{}"
camelia rakudo-moar 459bc5: OUTPUT«a 1␤b 2␤a 1␤b 2␤»
azawawi CSV is a database? :)
TimToady zengargoylew: ^^
ZoffixW hahaha :)
RabidGravy azawawi, Informix, DB2, Firebird ..... ;-) 20:32
TimToady and jferrero: ^^
azawawi DB2 my nemesis... recalls an old project he did
Skarsnik hoelzro, how do I push? it does not want to push because the branche does not exist (I did: git branch travis; git checkout travis; git add .travis.yml; git commit;) 20:33
zengargoylew not sure if i expect "{%x}" to behave differently or not... or expect nl even if that's the spec.
hoelzro git push origin travis:travis
Skarsnik: ^
RabidGravy I'm working on an Xbase thing just for shits and giggles 20:34
20:34 raiph joined
zengargoylew but it's moot, if you want something specific you can do it yourself. 20:34
that would make me think @ interpolation would also have nl 20:35
Skarsnik thx for the git help ^^ 20:36
hoelzro np! gotta start pulling my weight =)
dalek Iish: c8c8b2e | azawawi++ | README.pod:
Add Travis CI to README.pod
20:37
Iish: 9571736 | azawawi++ | lib/DBDish/Pg (4 files):
The last great refactor... native, statementhandle, connection to make it stuff more maintainable for the future
Iish: e55f9b5 | azawawi++ | / (5 files):
Merge pull request #28 from azawawi/master

Add Travis CI to readme and cut Pg into smaller maintainable pieces
Skarsnik damn I added on travis after making the push 20:39
hoelzro you added? what do you mean? 20:40
Skarsnik azawawi, if you are bored on Pg, add pg_array support x)
TimToady zengargoylew: the point of the default is to make it easy for other programs to split on newlines and tabs, and secondarily to make it readable-ish if you print it out
Skarsnik hoelzro, I added the repository on travis-ci.org 20:41
TimToady but spaces is definitely wrongish for separating pairs, since it can very easily be part of one of the values
hoelzro ahhh
dha I think I may be seeing a bug in the code that builds the docs for doc.perl6.org 20:43
stmuk_ it doesn't (or didn't) rebuild correctly after the first run 20:44
dha There's a section in 5to6-perlfunc.pod that reads "C<-M $fh> => C<$fh.modified>\nC<-A $fh> => C<$fh.accessed>\nC<-C $fh> => C<$fh.changed>" but the web page renders that as a single line. 20:45
ZoffixW dha, looks correct to me. To render on separate lines, those three lines need to be indented 20:46
dha Oh? ok. 20:47
20:47 srvsh left, diana_olhovik left
zengargoylew yeah, i see the good but think to myself "my stuff %stuff{}" is going to be weird. 20:47
azawawi Skarsnik: sure... please open an issue :)
ZoffixW dha, and the :e :d etc block above should likely also be indented to look nicer 20:48
AlexDaniel jnthn++ RT #125285
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125285
zengargoylew and interpolating % becomes usefull only if it's by itself.
AlexDaniel jnthn: finally! Thank you very much!
zengargoylew or a particular single slice
dha ZoffixW - indeed. will do
ZoffixW dha, and on line 59 and 64 there too seem to be code examples that aren't indented to be rendered as code blocks 20:49
dha In fact, now that I know this, I see a bunch of things that should be indented.
20:49 yqt joined
ZoffixW \o/ 20:49
20:50 diana_olhovik joined
dalek c: 813e2e1 | (David H. Adler)++ | doc/Language/5to6-perlfunc.pod:
Changed heading level of "Alphabetical Listing of Perl Functions" to an
20:50
c: ea13a15 | (Zoffix Znet)++ | doc/Language/5to6-perlfunc.pod:
Merge pull request #193 from dha/master

Changed heading level of "Alphabetical Listing of Perl Functions" to an
Iish: 38427db | azawawi++ | .travis.yml:
Explicitly ask Travis CI to start mysql and postgresql. sqlite3 is not a service
20:51
zengargoylew not that interpolating a hash ever made much sense before unless you were expecting just a flat list of kv of no particular usefullness. 20:52
20:55 diana_olhovik left, sno left
moritz and you typically don't want to interpolate hashes in any random order anyway 20:57
21:01 TEttinger joined
zengargoylew i can see it being nice in qq:to// blocks. and the like. otherwise it'll always be "something\n%x{}\nrest of stuff" 21:02
Skarsnik is there a shortcut to git add; git commit; git push?
hoelzro you can make one =)
zengargoylew git commit -a
skips the add
for things already tracked 21:03
moritz on the other hand, I like 'git add -p' to review my patches before committing
hoelzro (git add -p)++
dha zengargoylew - shouldn't that be -u? 21:04
hoelzro I love that command so much I have a short alias for it
zengargoylew isn't it add -u and commit -a
hoelzro that and git commit -v
dha oh, right. sorry, misread.
azawawi good night everyone... off to sleep :)
ZoffixW \o
hoelzro night azawawi 21:05
21:05 azawawi left
Skarsnik travis computers are quite fast x) 21:06
zengargoylew wishes travis didn't have to re-install perl6 each time. 21:07
RabidGravy It's possible it can be cached
zengargoylew maybe after christmas they'll add a standard perl6-released or something. 21:08
ZoffixW There's still no perl-5.22 on Travis, so I wouldn't my breath on seeing built p6 :P
zengargoylew RabidGravy: yeah saw something like that in the docs while troubleshooting other stuff. don't really know how deep i want to dig into travis though... 21:09
RabidGravy docs.travis-ci.com/user/caching/ 21:10
dalek href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 20564ba | (Zoffix Znet)++ | mojo-app/t/0 (7 files):
Added test suite for ::BuildStats model
zengargoylew btw, can i steal boilerplate from your modules' documentations
RabidGravy if that was addressed at me sure 21:11
:)
zengargoylew i think it's to you :P not knowing.... i followed links until i saw a mention of Rabid Gravy and thought aha. 21:12
dha I suddenly remember that it might be a good idea for there to be a doc in the docs a out how to read the docs. Probably most importantly including a beginner's guide to reading method signatures.
ZoffixW dha, yeah, something like a "DocMap" 21:14
dha *nod*
I'd do it, but I'm not sure I'm qualified to do so.
Skarsnik does something get changed with nativecall union? I get an error on travis I don't have localy. (1-2 months old rakudo) travis-ci.org/Skarsnik/perl6-gumbo (I don't know if you can saw the build) 21:16
moritz fwiw doc.perl6.org/type/Parameter explains most of the signature-y stuff, though probably not the way a newcomer would appreciate 21:17
dha moritz - exactly. 21:18
dalek ast: 82d2713 | usev6++ | S05-match/capturing-contexts.t:
Add test for RT #116895, fudge for JVM
21:19
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=116895
zengargoylew off to commute 21:20
21:21 zengargoylew left 21:22 raoulvdberge left, dha left
dalek ast: 1a3a3df | usev6++ | S05-match/capturing-contexts.t:
Fix test descriptions
21:22
21:25 abc joined, cygx left, abc is now known as Guest82703 21:28 dha joined 21:30 Guest82703 left 21:32 Ven_ joined 21:34 colomon joined
Skarsnik m: sub foo(*%f) { say "set but no value" if %f<a>:exists and %f<a> eq Nil;} foo(:a); 21:39
camelia rakudo-moar 459bc5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tL5fE4DD49␤Strange text after block (missing semicolon or comma?)␤at /tmp/tL5fE4DD49:1␤------> 3alue" if %f<a>:exists and %f<a> eq Nil;}7⏏5 foo(:a);␤ expecting any of:␤ infix␤ …»
Skarsnik m: sub foo(*%f) { say "set but no value" if %f<a>:exists and %f<AA> eq Any;} foo(:AA); 21:40
camelia rakudo-moar 459bc5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/vH5ZoZ1U7P␤Strange text after block (missing semicolon or comma?)␤at /tmp/vH5ZoZ1U7P:1␤------> 3lue" if %f<a>:exists and %f<AA> eq Any;}7⏏5 foo(:AA);␤ expecting any of:␤ infix␤ …»
PerlJam Skarsnik: $anything eq Nil is a little strange 21:41
Skarsnik: but, camelia is complaining because you don't have a ; after your closing } of the sub
Skarsnik m: sub foo(*%f) { say "set but no value" if %f<a>:exists and %f<AA> eq Any;}; foo(:AA);
camelia ( no output )
Skarsnik oh right
m: sub foo(*%f) { say "set but no value" if %f<a>:exists and %f<AA> eq Nil;}; foo(:AA); 21:42
camelia ( no output )
Skarsnik m: sub foo(*%f) { say %f<AA>;say "set but no value" if %f<a>:exists and %f<AA> eq Nil;}; foo(:AA);
camelia rakudo-moar 459bc5: OUTPUT«True␤»
21:42 Ven_ left
Skarsnik Ah it set to a boolean in this case 21:43
m: sub foo(*%f) { say %f<AA>;say "set but no value" if %f<a>:exists and %f<AA> eq Nil;}; foo(:AA<1>);
camelia rakudo-moar 459bc5: OUTPUT«1␤»
PerlJam still weird that you're attempting string equality check against Nil 21:44
Skarsnik I was trying to figure how to know it just written :AA but not :AA<something> 21:46
PerlJam :AA and :!AA are the same as :AA(True) and :AA(False) 21:47
21:47 zakharyas joined, ifim joined
Skarsnik XML::Elements bother me to no end that I have to write $xml.elements(find stuff, :RECURSE<42>) (because it take the depth passed in parameter) 21:48
21:49 dha left
dalek href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: b4afae1 | (Zoffix Znet)++ | mojo-app/ (12 files):
::BuildStats model now passes the test suite
21:50
c: 601a8f0 | (David H. Adler)++ | doc/Language/5to6-perlfunc.pod:
Indented examples in Filetest for better rendering
PerlJam had to do a double take ...
c: 3bff9ad | (David H. Adler)++ | doc/Language/5to6-perlfunc.pod:
More indentation for better web rendering
c: 241ab68 | (David H. Adler)++ | doc/Language/5to6-perlop.pod:
Added intenting for better web rendering to 5to6-perlop.pod
c: b9434b1 | (David H. Adler)++ | doc/Language/5to6-perlvar.pod:
Added intenting for better web rendering to 5to6-perlvar.pod
c: 259d2ad | (Zoffix Znet)++ | doc/Language/5to6-perl (3 files):
Merge pull request #194 from dha/master

Indentations for better web rendering
PerlJam I thought someone had written Mojo in Perl6 already
hoelzro PerlJam: [Coke] started a repo for it 21:51
PerlJam yeah, I knew about that, but it didn't get far enough to make an app last time I looked
hoelzro no, I think it's a few of the utility things 21:52
21:53 zakharyas left 21:56 kjs_ left
dalek href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 439dc80 | (Zoffix Znet)++ | mojo-app/ (3 files):
Toss Package::Alias
22:00
22:03 skids left 22:09 kjs_ joined 22:11 Begi11110 left 22:13 colomon left
grondilu m: say [&&] False xx * 22:13
camelia rakudo-moar 459bc5: OUTPUT«(timeout)»
grondilu [&&] is not short-circuiting? 22:14
psch i'd guess it reifies before it evaluates 22:15
grondilu m: my $n = 0; say [&&] map { $n++; rand < 0.5 }, ^1000; say $n 22:16
camelia rakudo-moar 459bc5: OUTPUT«False␤1000␤»
22:16 kjs_ left
grondilu no it just keeps on evaluating 22:16
which is kind of LTA 22:17
22:17 kaare_ left
psch m: say [&&] False, { die }() 22:17
camelia rakudo-moar 459bc5: OUTPUT«Died␤ in block <unit> at /tmp/j_dRAg575T:1␤␤»
psch right
m: say False && { die }()
camelia rakudo-moar 459bc5: OUTPUT«False␤»
22:21 ilbelkyr joined, bbkr joined
dalek ast: cd2f270 | usev6++ | S05-capture/array-alias.t:
Add tests for RT #121061
22:22
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=121061
22:22 ilbelkyr left 22:23 kjs_ joined, vendethiel left 22:25 ilbelkyr joined, xpen joined, ilbelkyr left 22:26 tardisx joined 22:27 ^elyse^ left 22:28 kjs_ left 22:30 TEttinger left, xpen left, tardisx left 22:31 sno joined
zengargoyle i'm going to blame p6doc for formatting =code sections as =para (not honoring formatting very well). 22:45
perl6 --doc Module seems to get it right. 22:46
22:48 hankache joined 22:49 kjs_ joined 22:55 colomon joined 22:56 donaldh joined 22:59 lizmat joined
lizmat waves from FRA 23:00
donaldh is seeing some weirdness with Capture
r: (1..*).Capture.perl.say
camelia rakudo-moar 459bc5: OUTPUT«\(:max(Inf), :min(1))␤»
..rakudo-jvm 459bc5: OUTPUT«java.lang.NullPointerException␤ in block <unit> at /tmp/tmpfile:1␤␤»
donaldh was investigating the NPE on JVM but the Moar behaviour looks wrong too. 23:01
m: (1).Capture.perl.say
camelia rakudo-moar 459bc5: OUTPUT«\()␤»
donaldh (1, 2).Capture.perl.say
m: (1, 2).Capture.perl.say
camelia rakudo-moar 459bc5: OUTPUT«\(1, 2)␤»
23:01 kid51 joined
donaldh m: (1..*, 1..*).Capture.perl.say 23:02
camelia rakudo-moar 459bc5: OUTPUT«\(1..Inf, 1..Inf)␤»
diakopter m: (1,).Capture.perl.say
camelia rakudo-moar 459bc5: OUTPUT«\(1)␤»
donaldh So it's confusing a single item list for a named?
diakopter doesn't know.. lizmat? ^
jdv79 lizmat: hi
lizmat diakopter jdv79 o/ 23:03
I think it's falling back to Mu.Capture 23:04
and that attempts to create a hash of the attributes with a value
donaldh It looks like it's falling back to precedence parens?
lizmat m: (^10).Capture.perl.say
camelia rakudo-moar 459bc5: OUTPUT«\(:max(10), :min(0))␤»
donaldh (^10,).Capture.perl.say 23:05
lizmat now, oddly enough, that doesn't mention excludes-max
donaldh m: (^10,).Capture.perl.say
camelia rakudo-moar 459bc5: OUTPUT«\(^10)␤»
lizmat that falls back to List.Capture
ah, only the attributes that are marked public 23:06
dalek href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 4103b34 | (Zoffix Znet)++ | mojo-app/ (10 files):
Entire test suite now passes
23:07
23:07 ZoffixW left
lizmat so, code wise, it does what it is supposed to do 23:08
23:08 hankache left
lizmat m: 42.Capture.perl.say 23:09
camelia rakudo-moar 459bc5: OUTPUT«\()␤»
lizmat the reason why that is, is that Int doesn't have any public attributes 23:10
diakopter m: Capture(Capture).perl.say
camelia rakudo-moar 459bc5: OUTPUT«Capture(Capture)␤»
lizmat donaldh: what were you trying to achieve?
donaldh lizmat, I was golfing the NPE on JVM. 23:11
timotimo Zoffix: you're coding on the new modules.perl6.org rather than playing fallout? i'm touched! 23:12
donaldh lizmat: when I noticed the MoarVM behaviour seems weird.
diakopter m: ('MAYBE')()
camelia rakudo-moar 459bc5: OUTPUT«Cannot find method 'CALL-ME'␤ in block <unit> at /tmp/R1tSN3L2yg:1␤␤»
23:12 polettix joined
lizmat donaldh: then I suggest at looking at method Capture in Mu.pm 23:13
polettix hello all :)
donaldh Yep. What is Mu.Capture intended to achieve? I.e. is it's behaviour desirable for something?
lizmat polettix o/
I have *no* idea 23:14
polettix I (re)started playing with Perl6 and it’s more and more amazing, thanks to everyone
timotimo glad to hear it! 23:15
AlexDaniel polettix: Yeah!
polettix while playing, I wondered if %hash is still relevant provided that we can equivalently use a scalar pointing to a hash reference (sorry if I’m using Perl5 terminology but this is what I know at the moment :)) 23:18
donaldh lizmat: I'm guessing that Mu.Capture does the right thing for classes. 23:19
polettix similar considerations go for @array of course. Is there any advantage, other than conveying a sense of “we’re playing with multiple items here” (which is good for readability anyway)? 23:20
23:20 kjs_ left
lizmat m: my $h = { a => 42, b => 666 }; for $h { .say } 23:20
camelia rakudo-moar 459bc5: OUTPUT«a => 42, b => 666␤»
lizmat m: my %h = a => 42, b => 666; for %h { .say }
camelia rakudo-moar 459bc5: OUTPUT«a => 42␤b => 666␤»
lizmat m: my %h = a => 42, b => 666; for %h { .WHAT.say } 23:21
camelia rakudo-moar 459bc5: OUTPUT«(Pair)␤(Pair)␤»
lizmat m: my $h = { a => 42, b => 666 }; for $h { .WHAT.say }
camelia rakudo-moar 459bc5: OUTPUT«(Hash)␤»
lizmat polettix ^^^ reasons for selecting either a % or a $ for your hash
psch m: my $a = 1, 2; say $a.perl; my @a = 1, 2; say @a.perl # similarly
camelia rakudo-moar 459bc5: OUTPUT«WARNINGS:␤Useless use of constant integer 2 in sink context (line 1)␤1␤[1, 2]␤»
donaldh m: class Bob { has $.name; }; Bob.new.Capture.say 23:22
camelia rakudo-moar 459bc5: OUTPUT«\(:name(Any))␤»
23:22 espadrine left
lizmat m: class Bob { has $!name; method name { $!name } }; Bob.new.Capture.say 23:22
camelia rakudo-moar 459bc5: OUTPUT«\()␤»
Skarsnik polettix, to type thing you need @ and % :) 23:23
polettix m: my $h = { a => 42, b => 666 }; say $h{a};
camelia rakudo-moar 459bc5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/PIC5HZ8ZJG␤Undeclared routine:␤ a used at line 1␤␤»
Skarsnik m: my Str @a = 'a', 'b'; my Str $a = ('a', 'b'); 23:24
camelia rakudo-moar 459bc5: OUTPUT«Type check failed in assignment to $a; expected Str but got List␤ in block <unit> at /tmp/13lhRq9V8k:1␤␤»
23:24 ilbelkyr joined
donaldh m: my $h = { a => 42, b => 666 }; say $h<a> 23:24
camelia rakudo-moar 459bc5: OUTPUT«42␤»
donaldh m: my $h = { a => 42, b => 666 }; say $h{'a'}
camelia rakudo-moar 459bc5: OUTPUT«42␤»
lizmat polettix: {a} is a P5ism, it's <a> in P6 23:25
polettix yes, just figured it out on the command line :)
m: my $h = { a => 42, b => 666 }; say $h<a>; 23:26
camelia rakudo-moar 459bc5: OUTPUT«42␤»
donaldh lizmat: is that a P5ism that should be hinted in the error message?
polettix m: my %h = a => 42, b => 666; say %h<a>
camelia rakudo-moar 459bc5: OUTPUT«42␤»
lizmat not sure how you could, really
psch it'd probably be too broad 23:27
lizmat as the error comes out of the optimizer, and by that time, it doesn't really know it was used inside a slice
jdv79 wait. where is shimmerfairy wanking on about p5?
lizmat
.oO( wanking? )
23:28
jdv79 complaining 23:29
maybe i used it too stretched
donaldh lizmat: yeah, I realized the impossibility of it just after I asked. 23:30
Still, the error message is LTA in that context.
lizmat agree, but this would require something like, but more complex, like lost quote tracking 23:31
23:33 Ido_ joined
Ido_ Hi, anyone here want to let me in on how to hel pdevelop perl6? 23:34
23:34 Ido_ is now known as Guest23071
Guest23071 Hi, anyone here want to let me in on how to hel pdevelop perl6? 23:34
23:34 Peter_R left 23:35 woolfy joined, woolfy left 23:36 Guest23071 left
psch down-arrows the half-finished response... 23:37
AlexDaniel psch: why not send it anyway
psch well, it'd probably just a bad condensation of rakudo.org/how-to-help/ so it stays down-arrowed :P 23:40
23:42 Ven_ joined 23:44 idodod joined
idodod help 23:45
Hi
how can I get onboard to developing perl 6?
AlexDaniel hi
psch: told ya!
idodod ?
AlexDaniel psch: well, now you can do it again :)
idodod: well, it seems like psch was writing a full-blown response to you, but then you suddenly quit :) 23:46
psch idodod: rakudo.org/how-to-help/ is probably the most comprehensive intro for how you can help
idodod ok, thanks, sorry psch
psch idodod: there's no need to apologize 23:47
AlexDaniel idodod: bug reporting is probably the easiest thing though!
all you have to do is complain!
idodod :), but I wanna do some work
timotimo right, you can use perl6 for anything that comes up and tell us what goes wrong, what's too slow, what the documentation doesn't properly explains etc etc 23:48
idodod develop
timotimo hoelzro recently made a little screencast about fixing bugs
AlexDaniel idodod: then fix bugs? :)
timotimo: where can I see that?
timotimo i can't find it right now :(
as in: i tried searching for "hoelzro" on youtube and got nothing
oh! 23:49
www.youtube.com/watch?v=adUdmol7cLU
that's the video, idodod
23:49 jack_ joined
psch there's also github.com/perl6/perl6-most-wanted...modules.md 23:49
23:49 Ven_ left
timotimo heads off to bed, now that i have new medicine 23:50
raiph idodod: fyi the description of the compiler hacking video timotimo linked says "I suggest you start going through the slides at docs.google...... first." 23:52
idodod raiph: thank you 23:54
raiph yw 23:55
23:55 skids joined 23:57 polettix left 23:58 RabidGravy left