Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-11-11

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 Psyche^_ joined #perl6
00:05 RabidGravy boom
00:05 RabidGravy right bed
00:22 rindolf joined #perl6
00:28 cygx (quit
00:43 isBEKaml joined #perl6
00:57 kid51 joined #perl6
01:00 tardisx joined #perl6
01:11 softmoth_ joined #perl6
01:12 tardisx joined #perl6
01:22 tardisx joined #perl6
01:26 BenGoldberg joined #perl6
01:28 ShimmerFairy joined #perl6
01:29 tardisx joined #perl6
01:29 Zoffix joined #perl6
01:32 tardisx joined #perl6
01:33 zengargoyle anybody have good examples of using LibraryMake / Find::Bundled
01:33 zengargoyle i can get my library build and put in blib/lib but can't get it to load w/o using LD_LIBRARY_PATH
01:34 zengargoyle will the magic only work once installed?
01:34 zengargoyle looks like it searches INC which should contain blib/lib
01:37 Actualeyes joined #perl6
01:38 dayangkun_ joined #perl6
01:39 dayangkun_ joined #perl6
01:41 dayangkun_ joined #perl6
01:42 dayangkun_ joined #perl6
01:43 tardisx joined #perl6
01:44 dayangkun_ joined #perl6
01:45 dayangkun_ joined #perl6
01:49 zengargoyle weird... p6doc LibraryMake gives me different docs than what's on github even after a `panda install LibraryMake`
01:50 zengargoyle it still has the old find-bundled vs the new Find::Bundled.find
01:51 raiph joined #perl6
01:56 zengargoyle when i panda look LibraryMake, the README is utf16
01:58 zengargoyle if i panda install . from the look directory and exit out, p6doc is still showing the old doc.
01:59 zengargoyle and moar-nom/install/share/perl6/site/lib/LibraryMake.pm6 is still the old version
02:03 zengargoyle removing LibraryMake.pm and panda install still gets the old version.
02:03 * zengargoyle o/
02:05 diakopter joined #perl6
02:05 raiph hi zengargoyle, mebbe http://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 raiph hi diakopter
02:06 raiph 'scool to see you appearing back on channel :)
02:08 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:09 zengargoyle 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 zengargoyle and tweak it to be more =data-ish
02:10 zengargoyle or there seemed to be a Raw type thing for the =NotPod sections
02:18 raiph zengargoyle: er, =NotPod ?
02:19 zengargoyle lowercase and UPPERCASE are sorta reserved.  MixedCase is for 3rd party processors and i think the contents are left untouched.
02:22 zengargoyle well, maybe not, =Data still gets squished.
02:23 zengargoyle just saw a Pod::something::Raw class that only had the attribute $.contents.  assume it's used for unprocessed stuff.
02:24 * zengargoyle only took a quick look and known nothing about moar/rakudo internals.
02:25 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:27 zengargoyle and i think a matching M<Module; $stuff for Module> like thing.
02:29 xpen joined #perl6
02:31 ifim joined #perl6
02:32 nys joined #perl6
02:32 wbill joined #perl6
02:44 dalek ecosystem: a4df334 | (David Warring)++ | META.list:
02:45 dalek ecosystem: Add Crypt::RC4
02:45 dalek ecosystem:
02:45 dalek ecosystem: Perl 5 -> 6 Port of RC4 encryption.
02:45 dalek ecosystem:
02:45 dalek ecosystem: A simple encryption algorithm, that's still in common use (e.g. PDF)
02:45 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/a4df334cb0
02:45 BenGoldberg This is probably a silly question, but does perl6 have anything like lisp's with-open-file, or like python's with?
02:48 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])␤»
02:48 grondilu m: class V { has @.c handles <AT-POS> }; my $v =  V.new(:c(^10)); $v[1,2] = pi, e; say $v
02:48 camelia rakudo-moar 4422d8: OUTPUT«V.new(c => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9])␤»
02:49 grondilu ^seems inconsistent to me
02:53 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␤»
02:56 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:57 BenGoldberg 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 } };
02:57 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␤»
02:58 * 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";
02:58 camelia rakudo-moar 4422d8: OUTPUT«1 2␤»
02:58 grondilu Z[+=] does not work in a loop?
03:00 * grondilu was considering using Z[+=] for instance in http://rosettacode.org/wiki/Runge-Kutta#Perl_6
03:01 grondilu (but apparently that would not work)
03:04 mr_ron joined #perl6
03:05 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:06 tardisx joined #perl6
03:06 Herby_ joined #perl6
03:06 Herby_ Hello!
03:07 kaare_ joined #perl6
03:09 TimToady grondilu: it is a bug, the nature of which you can show by adding a sink:
03:09 TimToady m: loop (my ($i, $j) = 0, 0; $i < 3; sink $i, $j Z[+=] 1, 0.1) { say "$i $j"; if $++ > 10 { say "oops"; last } };
03:09 camelia rakudo-moar 4422d8: OUTPUT«0 0␤1 0.1␤2 0.2␤»
03:09 grondilu lucs: you heredoc is delimited by an arbitrary string.  Just pick one that will not appear in your PostScript code.
03:09 TimToady the first and third clauses should be sunk; the middle one is, of course, evaluated as a boolean
03:10 grondilu first time I see this sink word
03:10 TimToady you can also put the Z[+=] as the last statement
03:11 TimToady 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
03:12 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)
03:12 grondilu lucs: use qq:
03:12 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>
03:12 grondilu qq:to 'EoPS' should interpolate
03:12 lucs grondilu: Won't the PS vs closure curlies get confused?
03:13 grondilu oh
03:13 grondilu yeah, my bad
03:13 ifim o/
03:13 grondilu well that's tricky
03:13 lucs I was hoping for something like special closure curlies (some UTF-8 for example)
03:13 ifim what's the closest thing Perl 6 has to Python decorators?
03:14 grondilu lucs: good question
03:14 Herby_ Any ideas on where I should start to figure this out?
03:15 grondilu I doubt there are.  In q: there is no interpolation at all, no matter which curlies you try.
03:15 pippo joined #perl6
03:16 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;
03:16 BenGoldberg ifim, perl6 has macros.
03:16 Herby_ I can't say I'm smart enough to understand how to work with the binary
03:17 cognominal joined #perl6
03:17 pippo Herby_: try different encodings enc=> 'latin-1'?
03:18 Herby_ within the perl script?
03:18 pippo yes.
03:18 Herby_ Could you show me how that would look?
03:18 pippo slurp 'filename', enc => 'latin-1';
03:19 Herby_ you're a genius : )
03:19 Herby_ works like a champ, no errors
03:19 pippo Glad it helped.
03:19 pippo good night!
03:20 pippo left #perl6
03:20 Herby_ by default, is enc => 'utf-8'?
03:20 grondilu yes
03:20 grondilu latin-1 was very common not so long ago, still is quite common.  I should have guessed it as well.
03:22 Herby_ i've never been able to really understand how encoding / decoding works
03:22 Herby_ should probably read up on it
03:22 Herby_ i'm trying to slowly convert some of my small work scripts from perl/python to perl 6
03:22 grondilu yeah you may encounter some issues with encodings indeed.
03:24 grondilu but being explicit with the encodings you use to read or write, you should be fine.
03:25 grondilu another similar hassle is dealing with "\n" vs "\r\n" and stuff.  Quite a pain sometimes.
03:25 BenGoldberg m: say "\r\n".ords
03:25 camelia rakudo-moar 4422d8: OUTPUT«(13 10)␤»
03:25 Herby_ right now I have the rakudo star 2015-9 installl
03:25 BenGoldberg m: say "\r\n".comb
03:25 camelia rakudo-moar 4422d8: OUTPUT«(
03:26 Herby_ when a new one comes out, is there a simple way to upgrade rakudo?
03:26 grondilu Herby_: looks decently recent
03:26 Herby_ on windows that is
03:26 grondilu rakudobrew I suppose
03:26 grondilu but using rakudo star should be fine
03:26 Herby_ hmm i'll have to research that
03:26 BenGoldberg m: say "\rtest"
03:26 camelia rakudo-moar 4422d8: OUTPUT«
03:27 BenGoldberg Does that look odd to anyone else?
03:27 grondilu m: say "foo\rtest"
03:27 camelia rakudo-moar 4422d8: OUTPUT«foo
03:28 BenGoldberg I see that as, "rakudo-moar 4422d8: OUTPUT«foo"
03:28 grondilu $ echo -n "foo\rbar"  # echoes "bar"
03:29 grondilu (which makes some sense)
03:29 grondilu \r is the "go back to the left" command on a typewriter.
03:29 grondilu (IIRC)
03:30 grondilu so it discards everything that precedes \r and prints what follows
03:31 grondilu thinking about it, it's a neat way to put secret messages in a string.
03:32 grondilu m: say "secret\rHello".chars
03:32 camelia rakudo-moar 4422d8: OUTPUT«12␤»
03:32 grondilu m: say "secret\rHello"
03:32 camelia rakudo-moar 4422d8: OUTPUT«secret
03:32 grondilu Perl6 ruins the fun here
03:34 TimToady that's the bot's fault, I suspect
03:34 grondilu oh, indeed:
03:34 TimToady works perfectly fine locally:
03:34 TimToady > p6 'say "secret\rHello"'
03:34 TimToady Hellot
03:34 grondilu $ perl6 -e 'say "foo\rbar";'
03:34 grondilu bar
03:35 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:36 Herby_ what does the      >>.Str     do at the end?
03:36 grondilu it stringify all the elements of the array
03:37 TimToady >> is a hyperoperator that distributes an operator over multiple elements
03:37 grondilu @a».method means map *.method, @a
03:37 grondilu unicode equivalent is »
03:38 TimToady grondilu: btw, your loop also works with ($i, $j) »+=« (1, 0.1) since hypers aren't lazy
03:39 grondilu indeed
03:40 grondilu more parenthesis, though
03:40 * grondilu does not like parenthesis
03:41 dalek ecosystem: 51fab76 | (David Warring)++ | META.list:
03:41 dalek ecosystem: blobo
03:41 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/51fab76e5a
03:41 tardisx joined #perl6
03:42 grondilu hum... is http://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
03:43 TimToady hmm
03:43 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"␤»
03:44 TimToady aww
03:44 TimToady m: my $i, my $j Z+= 1,2; say "$i $j"
03:44 camelia rakudo-moar 4422d8: OUTPUT«1 2␤»
03:44 TimToady maybe we can relax the fiddliness of = a bit there
03:44 hahainternet saw the SF.pm talk
03:44 hahainternet thoroughly excellent
03:44 TimToady such that Z= becomes the equivalent of Python's list assignment
03:45 * TimToady bows
03:45 hahainternet thorough, succinct, decently in depth
03:45 grondilu m: my ($a, $b) = 0 xx 2; $a, $b Z[+=] 1, 2; say "$a $b";
03:45 camelia rakudo-moar 4422d8: OUTPUT«1 2␤»
03:45 hahainternet i've got to find a way of writing more perl6
03:45 hahainternet i have one question though, but it's more about implementation than anything else
03:46 hahainternet lets say i have a hash (it's actually in python and a dict) representing a simple heirarchy
03:46 hahainternet { a => {}, b => {c => {}, d => {}} }
03:46 hahainternet and i want to concatenate the children to the parent, ie come out with 'a', 'bc', 'bd'
03:47 hahainternet a simple loop is obviously fine
03:47 grondilu m: say (5/1).narrow.WHAT;
03:47 camelia rakudo-moar 4422d8: OUTPUT«(Int)␤»
03:47 hahainternet but i expect there's some extremely fancy way to do this i'm unaware of
03:47 hahainternet and i liked your use of 'high falutin' TimToady :D
03:47 raiph joined #perl6
03:47 grondilu m: say (0.9 + 0.1).narrow.WHAT;
03:47 camelia rakudo-moar 4422d8: OUTPUT«(Rat)␤»
03:48 grondilu ^that breaks runge-kutta on RC
03:48 grondilu m: say (0.9 + 0.1).perl;
03:48 camelia rakudo-moar 4422d8: OUTPUT«1␤»
03:48 grondilu m: say (0.9 + 0.1).nude;
03:48 camelia rakudo-moar 4422d8: OUTPUT«(1 1)␤»
03:48 grondilu m: say (0.9 + 0.1).narrow ~~ Int;
03:48 camelia rakudo-moar 4422d8: OUTPUT«False␤»
03:48 zengargoyle m: my $x = 'foo'; my $s = q :x< « » > "stuff {with braces} and {«$x»} {could} be nice"; say $s;
03:48 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 …»
03:48 TimToady looks like a bug
03:49 TimToady 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:50 zengargoyle luks: is that sorta what you mean?
03:50 hahainternet TimToady: it's actually recreating the django ORM simplified search names
03:50 hahainternet so if you have a foreign key 'a', which has a column 'b', the name is a__b
03:50 zengargoyle lucs: is that sorta what you mean? oops...
03:51 hahainternet it's a rather ugly method really, and speaks against python for succinctness
03:51 hahainternet anyhow, it's essentially a recursive grep i think, but i don't know of the right idiom
03:52 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 …»
03:53 Herby_ dumb question
03:53 TimToady m: { a => {}, b => {c => {}, d => {}} }.deepmap: *.key.say
03:53 camelia rakudo-moar 4422d8: ( no output )
03:53 TimToady m: say { a => {}, b => {c => {}, d => {}} }.deepmap: *.key
03:53 camelia rakudo-moar 4422d8: OUTPUT«a => , b => c => , d => ␤»
03:53 Herby_ where can I see the extra options available with slupr?
03:53 TimToady hmm
03:53 Herby_ slurp
03:54 TimToady m: say &slurp.signature
03:54 camelia rakudo-moar 4422d8: OUTPUT«(| is raw)␤»
03:54 Herby_ how did pippo know I could do enc => 'latin-1'?
03:54 hahainternet TimToady: don't feel you have to give me an answer, it just struck me as a particularly ugly wart on python
03:54 hahainternet as the whole search__method stuff is a hack to begin with
03:54 hahainternet and now i'm hacking a recursive loop to hack around their hack
03:54 zengargoyle http://doc.perl6.org/routine/slurp
03:55 hahainternet in the one true language
03:55 * hahainternet sniggers
03:55 Herby_ thanks zengar
03:56 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?
03:57 zengargoyle no, just my best guess as to how it could work.
03:57 lucs Ah.
03:57 zengargoyle have q :capture take open/close parameter.
03:59 zengargoyle i'm not sure how qq detects whether {} contains code....  you could maybe declare a function and interpolate &func() like
04:00 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␤␤»
04:00 zengargoyle well maybe not.
04:00 zengargoyle :{
04:00 lucs :)
04:01 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␤»
04:01 Hotkeys is there a nor operator
04:01 lucs Aha.
04:01 Hotkeys or a convenient way to to check if a list is all false
04:01 Hotkeys or wait
04:01 Hotkeys I want nand for that don't I
04:01 TimToady m: say True if 42 == none(1,2,3)
04:01 camelia rakudo-moar 4422d8: OUTPUT«True␤»
04:01 stmuk joined #perl6
04:01 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␤»
04:02 Hotkeys wait no
04:02 Hotkeys oh
04:02 Hotkeys none
04:02 Hotkeys forgot about that
04:02 Hotkeys thanks TimToady
04:02 * 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;
04:02 camelia rakudo-moar 4422d8: OUTPUT«{stuff} with {postscripty braces} but 42␤»
04:03 zengargoyle for no real reason
04:03 lucs zengargoyle: What you showed me there is useful enough for me for now.
04:03 lucs Thanks.
04:04 zengargoyle cool
04:04 zengargoyle m: my $FOO = sub { 'hello' }; my $s = q :!c "{stuff} with {postscripty braces} but $FOO()"; say $s;
04:04 camelia rakudo-moar 4422d8: OUTPUT«{stuff} with {postscripty braces} but $FOO()␤»
04:05 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()␤»
04:05 dalek rakudo/nom: dc246d9 | TimToady++ | src/Perl6/Actions.nqp:
04:05 dalek rakudo/nom: sink the 3rd loop arg
04:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/dc246d9404
04:05 zengargoyle m: my $FOO = sub { 'hello' }; my $s = q :!c:s "{stuff} with {postscripty braces} but $FOO()"; say $s;
04:05 camelia rakudo-moar 4422d8: OUTPUT«{stuff} with {postscripty braces} but hello␤»
04:05 TimToady grondilu: fixed it for you, so you can use it in RC now :)
04:09 ribasushi joined #perl6
04:11 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␤»
04:11 TimToady there you go
04:12 sprocket joined #perl6
04:16 finanalyst joined #perl6
04:19 TimToady grondilu: have a fix for the Rat problem as well, not to mention Z= will now work
04:24 dalek rakudo/nom: 0f5603d | TimToady++ | src/Perl6/Grammar.nqp:
04:24 dalek rakudo/nom: meta = should always be taken as item assignment
04:24 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0f5603dba0
04:24 dalek rakudo/nom: ffc5dfd | TimToady++ | src/core/Rational.pm:
04:24 dalek rakudo/nom: must reduce before attempting to narrow
04:24 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ffc5dfdf6c
04:24 TimToady we'll have to remove the tests that require meta-assignment to fail :)
04:27 * TimToady --> pick up diakopter at SFO &
04:29 diakopter heh
04:38 * grondilu re-compiles and will update the aforementioned RC tasks
05:14 vendethiel joined #perl6
05:16 zengargoyle joined #perl6
05:28 sno joined #perl6
05:28 TimToady m: say (0.9 + 0.1).narrow.WHAT
05:28 camelia rakudo-moar ffc5df: OUTPUT«(Int)␤»
05:56 TimToady m: my $i, my $j Z= 1,2; say "$i $j"
05:56 camelia rakudo-moar ffc5df: OUTPUT«1 2␤»
05:58 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"␤»
05:59 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␤ ␤»
05:59 yuppie left #perl6
06:00 TimToady that seems right, since assignops are item-assignment-y
06:02 TimToady m: 1 R= my $x; say $x
06:02 camelia rakudo-moar ffc5df: OUTPUT«1␤»
06:04 dayangkun joined #perl6
06:07 d4l3k_ joined #perl6
06:10 CIAvash joined #perl6
06:15 dalek roast: c4d0f91 | TimToady++ | S03-metaops/ (4 files):
06:15 dalek roast: meta assign now works, fix tests that require fail
06:15 dalek roast: review: https://github.com/perl6/roast/commit/c4d0f910b7
06:15 dalek roast: e10bcfe | TimToady++ | S03-operators/fiddly.t:
06:15 dalek roast: remove obsolete test file
06:15 dalek roast: review: https://github.com/perl6/roast/commit/e10bcfe4a1
06:16 dalek rakudo/nom: 3dc1a8d | TimToady++ | t/spectest.data:
06:16 dalek rakudo/nom: remove bogus test file
06:16 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3dc1a8d91b
06:38 travis-ci joined #perl6
06:38 travis-ci Rakudo build errored. TimToady 'remove bogus test file'
06:38 travis-ci https://travis-ci.org/rakudo/rakudo/builds/90464693 https://github.com/rakudo/rakudo/compare/ffc5dfdf6c53...3dc1a8d91bfd
06:38 travis-ci left #perl6
06:40 CIAvash joined #perl6
06:42 telex joined #perl6
06:58 masak morning, #perl6
07:03 cognominal morning
07:03 cognominal m: no strict; say %ENV; use strict; say %*ENV;  say MY.WHO.perl ~~ m/\,<-[,]>*?ENV.*?\,/
07:03 camelia rakudo-moar 3dc1a8: OUTPUT«␤␤「,"\%ENV" => {},」␤»
07:05 cognominal should autovivification happens in no strict mode? this hides the global variable  when back in strict mode
07:05 cognominal relevant documentation :  https://github.com/perl6/specs/blame/master/S02-bits.pod#L2815
07:06 cognominal s/happens/happen/
07:06 masak don't really see what autovivification's got to do with it...
07:08 cognominal the variable is created in the MY scope so the variable by the same name in GLOBAL is hidden
07:09 masak ok.
07:09 cognominal m: no strict; say %ENV; use strict; say %*ENV;  say MY.WHO.perl ~~ m/\,<(<-[,]>*?ENV.*?)>\,/  # without the pesky commas
07:09 camelia rakudo-moar 3dc1a8: OUTPUT«␤␤「"\%ENV" => {}」␤»
07:09 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.
07:10 cognominal from the doc :  When "strict" is in effect (which is the default except for one-liners),
07:10 cognominal 2818non-qualified variables (such as C<$x> and C<@y>) are only looked up from
07:10 cognominal 2819lexical scopes, but never from package scopes.
07:10 CIAvash joined #perl6
07:11 cognominal it implicitely means  that in non strict mode we look from package scopes
07:12 diana_olhovik_ joined #perl6
07:14 masak I think I understand what you're saying, but I'm still confused.
07:15 masak the lookup for dynamic variables (those with a '*' in them) is completely different to ordinary lexical lookup.
07:15 masak which is why the former fails at runtime and the latter at compile time.
07:15 cognominal I forgot to say what masak mentionned, that in non strict mode, %ENV does not get to %*ENV
07:16 masak "does not get to"? unclear.
07:17 masak in my mind, they are completely distinct. does 'no strict' change that somehow?
07:18 cognominal forget my last sentence.
07:19 cognominal masak: that's what is implied by the doc snippet I pasted.
07:20 masak forgive me for saying so, but such a feature seems entirely orthogonal to the core use of 'no strict'.
07:20 masak either that, or I still don't understand the whole context.
07:21 masak why would 'no strict' muddle together lexical and dynamic?
07:21 masak and... how could that possible work?
07:21 masak possibly*
07:22 cognominal I now agree. I confuse with Perl 5 semantic
07:24 cognominal Anyway, the %*ENV is hidden by the MY::<%ENV>. That's no good.
07:25 masak agree.
07:26 cognominal if you do it explicitely, ok. But the autovivification is plain weird.
07:27 masak as far as the autovivification goes, that seems OK and in line with 'no strict'
07:27 masak it's the hiding that's weird.
07:27 [Tux] test             50000    23.242    23.127
07:27 [Tux] test-t           50000    19.106    18.991
07:29 masak mornin', [Tux]
07:29 cognominal masak, nope, %*ENV, if not hidden is  %GLOBAL::ENV, not GLOBAL::%*ENV
07:29 [Tux] o/
07:29 cognominal or is that %PROCESS::ENV? not sure.
07:30 cognominal * not GLOBAL::<%*ENV>      # sorry
07:31 cognominal there are many things going there. Easy to get confused  :(
07:32 masak yeah
07:32 masak m: no strict; say %AAA; use strict; say %*AAA
07:32 camelia rakudo-moar 3dc1a8: OUTPUT«␤␤»
07:33 cognominal Also, "Dynamic variable creation
07:33 cognominal It is illegal to assign or bind a dynamic variable that does not already
07:33 cognominal exist.  It will not be created in C<GLOBAL> (or C<PROCESS>) automatically,
07:33 cognominal nor is it created in any lexical scope."
07:38 RabidGravy joined #perl6
07:39 masak yeah.
07:40 masak except that it's %ENV that gets created in MY, not %*ENV
07:40 tardisx joined #perl6
07:43 cognominal m: say %*AA.WHAT
07:43 camelia rakudo-moar 3dc1a8: OUTPUT«(Failure)␤»
07:43 cognominal good
07:44 cognominal 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 #perl6
07:49 cognominal m: say MY.WHO.keys
07:49 camelia rakudo-moar 3dc1a8: OUTPUT«($=pod !UNIT_MARKER EXPORT $_ $! ::?PACKAGE GLOBALish $¢ $=finish @?INC $/ $?PACKAGE)␤»
07:49 cognominal m: { say MY.WHO.keys }
07:49 camelia rakudo-moar 3dc1a8: OUTPUT«($_ $*DISPATCHER)␤»
07:53 darutoko joined #perl6
07:55 cognominal m: sub a { say MY.WHO.keys };  a
07:55 camelia rakudo-moar 3dc1a8: OUTPUT«($_ $! $*DISPATCHER RETURN $¢ $/)␤»
07:57 tardisx joined #perl6
07:58 cognominal my: sub a { say MY::WAAT.WHO };  a
07:58 cognominal oops
08:10 sftp joined #perl6
08:12 ely-se joined #perl6
08:18 azawawi joined #perl6
08:18 azawawi good morning
08:19 azawawi https://github.com/atom/language-perl/pull/56/files   # Better highlighting of Perl 6 identifiers in Atom editor PR got merged :)
08:20 azawawi tadzik: ping
08:22 azawawi panda and zef build status on windows are still broken
08:22 * azawawi starts working on them
08:32 RabidGravy marning!
08:35 eliasr joined #perl6
08:36 zakharyas joined #perl6
08:39 Fleurety joined #perl6
08:39 ywpg joined #perl6
08:40 azawawi RabidGravy: :)
08:40 cognominal azawawi++ atom++
08:42 azawawi atom is an editor :)
08:43 azawawi anyone here on windows?
08:44 masak Windows, the '90s DOS windowing environment?
08:45 cognominal azawawi, I know, atom is the new emacs :  Eradication of Memory Accomplished with Complete Simplicity
08:45 cognominal otherwise excellent
08:46 cognominal or we could  "Eight Megabytes And Constantly Swapping" ~~ s/Mega/Giga/
08:48 sno joined #perl6
08:51 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 azawawi cognominal: and has great packages
08:53 azawawi ugexe: ping
08:55 azawawi cognominal: the funny thing padre had the same functionality as atom but was not polished enough :)
08:55 azawawi cognominal: we were faster also with less memory
08:56 azawawi cognominal: but stability in core & plugins were our Achilles heel
08:58 domidumont joined #perl6
09:03 domidumont joined #perl6
09:06 azawawi .tell ugexe please see https://github.com/ugexe/zef/issues/71
09:06 yoleaux azawawi: I'll pass your message to ugexe.
09:06 * azawawi zef is working again on windows :)
09:15 ely-se joined #perl6
09:17 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:18 DrForr . o ( Anticip... )
09:19 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.
09:21 masak DrForr++ # Rocky Horror reference
09:22 DrForr You've heard about the epic Twitter one, I assume.
09:22 azawawi link it :)
09:22 masak DrForr: have not, no.
09:22 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
09:23 DrForr The guy that owns @FrankNFurter posted "I see you shiver with antici..." back in 2010 or so.
09:23 DrForr Nothing was heard from the account again until the last few months, just one word.. 'pation.' Well played, sir.
09:24 dakkar joined #perl6
09:24 masak ;)
09:25 Begi1119 joined #perl6
09:26 azawawi :)
09:35 mr-foobar joined #perl6
09:47 dayangkun joined #perl6
09:48 stmuk_ joined #perl6
10:00 cognominal awawawi: coffeescript as an extension language is nicer than elisp. I wish I could use Perl 6 so.
10:06 mrf morning #perl6
10:06 vendethiel joined #perl6
10:06 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 #perl6
10:15 vike joined #perl6
10:19 cognominal A discrepancy between the implementation and the spec :
10:19 cognominal m: say MY::<$_>.readonly
10:19 camelia rakudo-moar 3dc1a8: OUTPUT«Method 'readonly' not found for invocant of class 'Any'␤  in block <unit> at /tmp/yriKXzbOqj:1␤␤»
10:19 cognominal m: say MY::<$_>.VAR.readonly
10:19 camelia rakudo-moar 3dc1a8: OUTPUT«Method 'readonly' not found for invocant of class 'Any'␤  in block <unit> at /tmp/J6ciQriUZ3:1␤␤»
10:20 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␤␤»
10:20 cognominal "You can also get at the container through the appropriate symbol table:
10:20 cognominal if MY::<$scalar>.readonly {...}"
10:21 cognominal m: say $_.VAR.WHAT
10:21 camelia rakudo-moar 3dc1a8: OUTPUT«(Scalar)␤»
10:21 cognominal m: say MY::<$_>.WHAT
10:21 camelia rakudo-moar 3dc1a8: OUTPUT«(Any)␤»
10:22 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 #perl6
10:28 brrt joined #perl6
10:31 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␤␤»
10:31 moritz m: say Scalar.^methods(:local)
10:31 camelia rakudo-moar 3dc1a8: OUTPUT«(<anon> <anon> name of default dynamic WHICH)␤»
10:32 moritz m: my Int $x = 42; say $x.VAR.of
10:32 camelia rakudo-moar 3dc1a8: OUTPUT«(Int)␤»
10:35 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␤»
10:35 cognominal m: my $x; say $x.VAR.methods
10:35 camelia rakudo-moar 3dc1a8: OUTPUT«Method 'methods' not found for invocant of class 'Any'␤  in block <unit> at /tmp/oh0B1N2N25:1␤␤»
10:36 cognominal m: my $x; say $x.VAR.^methods
10:36 camelia rakudo-moar 3dc1a8: OUTPUT«(<anon> <anon> name of default dynamic WHICH)␤»
10:38 * azawawi is testing modified dbiish  on windows :)
10:41 jnthn morning, #perl6
10:42 doublec_ joined #perl6
10:42 RabidGravy marnin
10:42 jnthn m: use strict; say %ENV; no strict; say %*ENV
10:42 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␤»
10:42 jnthn oops
10:42 jnthn m: no strict; say %ENV; use strict; say %*ENV
10:42 camelia rakudo-moar 3dc1a8: OUTPUT«␤␤»
10:43 jnthn m: say GLOBAL::.keys
10:43 camelia rakudo-moar 3dc1a8: OUTPUT«()␤»
10:43 jnthn d'oh
10:43 jnthn m: no strict; say %ENV; say GLOBAL::.keys
10:43 camelia rakudo-moar 3dc1a8: OUTPUT«␤(%ENV)␤»
10:43 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 #perl6
10:46 cognominal jnthn: agreed. But why the autovivification in my example?
10:47 jnthn What autovivification?
10:47 jnthn Under no strict, variables you use are magically declared. That's not auto-viv.
10:48 cognominal ok, so I use the wrong word.
10:48 cognominal I still feel it is wrong to autodeclare a variable when reading it.
10:49 jnthn Well, more than that; if it was auto-viv then you'd expect a read not to do anything
10:49 jnthn Well, that's what no strict in Perl 6 does.
10:49 doublec joined #perl6
10:50 cognominal I would expect to do that only when writing.  Wrong expectation, apparently
10:50 cognominal jnthn++ for clarifying
10:53 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}
10:54 cognominal https://en.wikipedia.org/wiki/Autovivification
10:55 doublec joined #perl6
10:56 azawawi how can i re-import a module symbols that has been inside another module im use-ing? :)
10:56 azawawi s/has been/has been used/
11:00 jnthn pink_mist: Yes, that case is fixed in Perl 6 :)
11:00 jnthn pink_mist: We just don't treat "no strict" as autoviv semantics, but rather auto-declare.
11:03 RabidGravy azawawi, I was thinking about the self same thing the other day and didn't come to a satisfactory conclusion
11:04 zakharyas joined #perl6
11:05 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:06 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 #perl6
11:07 arnsholt That's precisely the opposite of how Perl 6's modules work
11:07 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
11:08 arnsholt Right. And you want to split it into several files?
11:11 virtualsue joined #perl6
11:12 azawawi yup
11:12 doublec joined #perl6
11:12 azawawi re https://github.com/azawawi/DBIish/tree/master/lib/DBDish/SQLite
11:12 azawawi and https://github.com/azawawi/DBIish/blob/master/lib/DBDish/SQLite.pm6
11:13 azawawi that is separate native module from OOP abstractions
11:13 azawawi s/OOP/OO
11:13 timotimo o/
11:14 RabidGravy right, off out now.  Have fun.
11:15 * azawawi got it :)
11:15 jnthn So, guess today is the day I fix the NFA engine issues...
11:16 andreoss joined #perl6
11:16 azawawi arnsholt: much better https://github.com/azawawi/DBIish/blob/master/lib/DBDish/SQLite.pm6 :)
11:17 azawawi arnsholt: and https://github.com/azawawi/DBIish/tree/master/lib/DBDish/SQLite
11:17 doublec_ joined #perl6
11:17 arnsholt azawawi: FWIW, I'd just import NativeCall in all the modules that need to interact with NativeCall
11:17 arnsholt It's less magical
11:18 azawawi arnsholt: DBDish::SQLite::Native can a role but then a lot of changes need to be made
11:19 azawawi arnsholt: like our-scoped enums etc
11:21 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
11:21 arnsholt I'd solve that by implementing slightly higher level Perl 6 interfaces in the ::Native module
11:21 arnsholt Then the rest of the code can interact with the ::Native API on purely Perl 6 terms
11:22 doublec joined #perl6
11:22 arnsholt Heck, I'd even make all the is native subs not exported
11:23 timotimo i've seen "my sub ... is native" put into classes multiple times in the past
11:23 timotimo that makes them very not exported
11:23 arnsholt Yeah
11:24 arnsholt IMO a successful native wrapper should work quite hard to not expose any kind of NativeCall stuff to the user
11:24 timotimo agreed
11:24 azawawi true
11:25 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 arnsholt 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
11:25 arnsholt It's very hard to do without pretty good knowledge of C
11:26 azawawi anyway sqlite is working now on windows... Horray :)
11:26 * azawawi now to mysql
11:26 arnsholt Awesome!
11:27 azawawi typically anyone coming to DBI access wants to know to work with his database...
11:27 azawawi not generic instructions but specific instructions
11:28 azawawi because he/she needs to interface to the database to actually work on other more important stuff
11:28 azawawi as it stands https://github.com/perl6/DBIish/ is so generic...
11:28 arnsholt In terms of documentation, you mean?
11:29 kaare_ joined #perl6
11:30 azawawi yup
11:30 arnsholt Yeah, that's a problem we have at almost all levels
11:30 arnsholt Although the core language is getting pretty well documented on doc.perl6
11:30 azawawi a big synopsis example is useful but not useful at the same time
11:31 azawawi because people want to accomplish task x in cookbook style
11:31 azawawi and we need to provide them how we do it in Perl 6 DBIish
11:31 azawawi and DBIish name is not newbie friendly also
11:33 Skarsnik joined #perl6
11:33 timotimo yeah, they'll not know what "DBI" is, and will get confused by the "ish" suffix
11:34 timotimo in my imagination
11:35 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 :)
11:36 jnthn Agree we could call DBIish something less confusing
11:36 jnthn It's the best thing we have for DB access in Perl 6 so far.
11:36 azawawi i know. im just saying we need to update all our documentation before christmas release to be user friendly (and remove Parrot references)
11:38 arnsholt Agreed
11:38 arnsholt I think the DBI name was left open since Tim Bunce was (is?) working on an improved DBI interface
11:40 azawawi then why not DB :)
11:40 jnthn Yeah, I'm not really suggesting squatting the DBI name either
11:40 jnthn DB is fine enough
11:40 azawawi use DB;
11:40 jnthn otoh
11:41 jnthn DBIish having a DBI-like API is valuable for migrationy purposes
11:41 jnthn Having a DB module that uses DBIish and wraps it in a 6-ier API may be a viable way to go
11:42 lizmat good *, #perl6!
11:42 azawawi i see. so 'DB' uses DBIish and exposes simpler API for common tasks
11:43 azawawi lizmat: hi :)
11:43 lizmat I think https://metacpan.org/pod/DBIx::Simple could be a form of inspiration ?
11:44 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?
11:44 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.
11:45 jnthn azawawi: Yes, you pass them after the module name, and then write an EXPORT sub in the module to receive them
11:46 azawawi jnthn: thx
11:46 * azawawi starts reading doc.perl6.org/language/modules
11:48 lizmat azawawi: lib/lib.pm6 is a non typical example, but it shows the use of EXPORT
11:50 jnthn My static vs dynamic talk has an example too
11:57 sufrostico joined #perl6
11:59 lizmat I will either be mostly offline the coming few days
12:00 lizmat or bored silly waiting for a flight at FRA and be online a lot
12:00 lizmat preparing for commute&
12:01 jnthn lizmat: Safe travels
12:07 masak yes, safe travels, lizmat
12:11 pmurias joined #perl6
12:16 timotimo that must be France Airport, right?
12:16 DrForr Frankfurt IIRC.
12:16 moritz frankfurt, I believe :-)
12:16 vendethiel timotimo: frankfurt
12:17 timotimo :S
12:21 jnthn .oO( France. It only has one airport. ;) )
12:23 DrForr Hey, I had to get in to Geneva...
12:23 Begi11110 Any problem with France ?
12:24 Begi11110 There is not enough Perl programmer...
12:25 * azawawi DBIish mysql is now working on my windows box :)
12:25 DrForr There was at least one more last week :)
12:27 DrForr No *problem* with France here.
12:27 * azawawi is now working on making postgresql work on windows with DBIish
12:27 timotimo of course vendethiel had to defend france's amount of airports :)
12:27 Zoffix step 1: "get a better OS" :)
12:28 Skarsnik Hello there
12:28 Zoffix \o
12:29 brrt france has high-speed trains to compensate, of course :-)
12:29 moritz fwiw windows will soon ship SQLite as a core component
12:29 Zoffix 0.o
12:29 Skarsnik hm, interesting
12:30 Zoffix Will it be MS-flavoured buggy version, I wonder.
12:31 moritz why should it?
12:31 moritz it wouldn't help them much :-)
12:31 jnthn Zoffix: Relaitvely unlikely; MS seem to have done some growing up over the last years.
12:31 moritz http://engineering.microsoft.com/2015/10/29/sqlite-in-windows-10/
12:32 moritz it's a bit of a marketing fluff, but it sounds kinda plausible
12:32 jnthn At least Windows treat filenames as strings :P
12:32 jnthn *treats
12:33 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
12:35 Skarsnik The issue it return copies instead of binding to the native code.
12:35 azawawi moritz:  https://github.com/azawawi/DBIish/tree/master/examples :)
12:38 moritz azawawi: nice
12:41 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:42 timotimo have a look at GTK::Simple for inspiration, azawawi
12:43 * azawawi runs `zef install GTK::Simple`
12:44 timotimo i would have suggested "panda look GTK::Simple" instead
12:44 timotimo but oh well :)
12:45 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
12:46 azawawi 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
12:46 azawawi moritz: even firefox doesnt install itself in %PATH% under windows...
12:46 azawawi timotimo: nope, wrong assumptions
12:47 azawawi C:\Program Files\PostgreSQL\9.4\lib
12:47 moritz timotimo: I think this was true in windows 95 :-)
12:47 azawawi C:\Program Files\MySQL\MySQL Server 5.6\lib
12:47 moritz no wonder unix devs are suspicious of windows :-)
12:48 azawawi timotimo: technically use %windir%\system to be portable :)
12:48 azawawi timotimo: and it is %windir%\system32 :)
12:50 azawawi 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 azawawi that's why i think we need a module to find stuff on windows :)
12:51 azawawi File::Find::Windows ?
12:51 moritz Stuff::Find::Windows :-)
12:51 yqt joined #perl6
12:51 azawawi Windows::StuffFinder :)
12:52 moritz File::Find::Windows sounds like you want to recursively search through the whole file systme
12:52 moritz that... might not be clever.
12:52 perlawhirl joined #perl6
12:52 azawawi i know but think of it... other modules will benefit from it auto detecting weird software locations on windows :)
12:53 * azawawi starts working on it
12:53 moritz Windows::PathMagic
12:53 Skarsnik some lib set env variable, like gstreamer if you install it
12:54 Skarsnik but the basic rule when you dev in windows: provide the lib you depend x)
12:55 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 :)
13:00 Begi11110 Can we make nice GUI with Perl 6 now ? or not yet ?
13:01 Skarsnik Probably not, there is Gtk::Simple
13:05 tomoko_ joined #perl6
13:06 perlawhirl hi everybody
13:07 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 tomoko_ why it is so slow?
13:08 Skarsnik because perl6 is slow ~~
13:08 Skarsnik I know it's not an answer x)
13:09 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
13:09 DrForr We could take a page from VW and preoptimize that :)
13:09 lizmat fwiw, say [+] ^1000001 runs 20 secs on my meachine
13:09 lizmat the equivalent: my int $i; $i = $i + $_ for ^1000001; say $i
13:10 lizmat 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 #perl6
13:11 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
13:11 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 => http://pastebin.com/QUBpXWjF
13:12 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 =)
13:12 jnthn Subclass, or mix a role in
13:12 jnthn Don't use .^add_method in normal code
13:13 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.
13:13 perlawhirl i'm just playing with grammars for now... dates seems like a good place to start
13:13 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
13:13 camelia rakudo-moar 3dc1a8: OUTPUT«500000500000␤»
13:13 lizmat which runs at .150 seconds for me
13:14 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 #perl6
13:14 lizmat well, reality is different  :-(
13:14 jnthn perlawhirl: You can write a regex that uses rules from a grammar too
13:15 jnthn lizmat: Curiously, that code on my box runs in 0.16s
13:16 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> /
13:16 jnthn lizmat: And this runs in exactly the same time:
13:16 jnthn perl6-m -e "use nqp; my int $i; my int $j = -1; while ($j = $j + 1) < 1000001 { $i = $i + $j }; say $i"
13:17 jnthn uh, and the use nqp can go
13:17 jnthn perlawhirl: You'd ahve to qualify the names
13:17 timotimo interestingly, in the "$i = $i + $_ for ^1000001" thing, we don't inline the calculation
13:17 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
13:17 perlawhirl jnthn: im sorry... how to i 'qualify' the names?
13:17 timotimo so we're cloning a block and invoking it each time
13:17 jnthn $date ~~ / <Dateish::weekday> /
13:18 perlawhirl ahhh
13:18 jnthn arnsholt: oops, duh
13:18 timotimo er
13:18 perlawhirl of course
13:18 timotimo only cloning it once
13:18 perlawhirl facepalm
13:18 jnthn So yeah, we get the same. But still
13:18 jnthn I was right; you don't need nqp:: ops
13:18 lizmat ok, good to know
13:19 lizmat 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
13:19 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?
13:19 jnthn perlawhirl: Yes, and then import them
13:20 perlawhirl sweeet
13:20 jnthn And then use them unqualified
13:20 timotimo spesh also doesn't inline that call :(
13:20 jnthn timotimo: To the block? No, it can't
13:20 jnthn It doesn't understanding inlining closure-y things yet
13:20 timotimo oh
13:20 timotimo that would explain it, yeah
13:20 jnthn (It's tricky)
13:21 jnthn I mean, inlining is *already* a tricky opt, but... :)
13:21 lizmat afk again&
13:22 timotimo ugh, it looks like the $i = $i + $_ part also doesn't inline the + operator
13:22 jnthn That's not good
13:22 timotimo it uses a lexref for one of the parameters, that's quite likely what causes that problem.
13:23 jnthn I think many of our non-inlines are thanks to the "let Nil through on the return"
13:24 timotimo it's always fun to see our code bindlex and a tiny bit later getlex from the same variable ...
13:25 timotimo yeah, infix:<+> in this case also gets the Failure check emitted
13:26 timotimo i'm not sure why that'd cause inlining trouble, though?
13:26 ely-se joined #perl6
13:27 jnthn timotimo: The never-hit and thus unresolved getlexstatic_o
13:28 Skarsnik damn you really need to call private method with self!method? it's realy weird x)
13:28 timotimo jnthn: oh, ugh!
13:29 timotimo 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
13:29 timotimo yeah, i thought the same thing
13:29 jnthn Well, depending what it's looking up
13:29 timotimo if it's Failure, that'd be easy; do we even want users to be able to override that?
13:29 jnthn Skarsnik: You have to declare them that way too; it matches :)
13:29 jnthn timotimo: No
13:30 jnthn 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
13:30 timotimo does the optimizer ever get to see that code as a QAST? or is it an op or desugar?
13:31 jnthn timotimo: I think it's a desugar
13:32 jnthn But not totally sure
13:32 timotimo i think that'll be all i need to know to get started and maybe finished
13:33 jnthn k
13:33 timotimo it's an hll op, not a desugar
13:33 * jnthn returns to regex engine fixing
13:38 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:39 Skarsnik is there something like now in perl5?
13:39 timotimo m: say now; say time
13:39 camelia rakudo-moar 3dc1a8: OUTPUT«Instant:1447249196.589363␤1447249160␤»
13:39 timotimo now gives you fractions of a second, time gives you seconds
13:39 timotimo one is with leap seconds, the other without
13:39 Skarsnik I mean in perl5, not in perl6 x)
13:39 timotimo oh
13:40 timotimo Timer::HiRes?
13:40 jnthn timotimo: I don't think I'd do it as the optimizer
13:40 jnthn *at
13:40 jnthn timotimo: I'd just always shove Failure into that node
13:40 jnthn In Actions
13:40 jnthn Then we can rely on it
13:41 timotimo oh, i can just grab it from $*W
13:41 timotimo silly me!
13:42 pippo joined #perl6
13:42 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)
13:43 arnsholt $*W is a compiler-internal thing
13:44 jnthn pink_mist: Very unlikely :)
13:44 jnthn And yeah, it's part of the compiler
13:44 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
13:44 timotimo it keeps around all the declarative things
13:44 jnthn As we parse/analyze Perl 6 code, there's 3 things at work: grammar (syntax), actions (execution semantics), and world (declarations)
13:44 timotimo yeah
13:45 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
13:45 jnthn This was hard to maintain.
13:45 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
13:46 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)
13:46 moritz you should compare it to creating an object of a class using Moose
13:46 moritz at the very least
13:46 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
13:47 jnthn And we've plenty we can do about that
13:47 jnthn But again, very unlikely this side of Christmas
13:49 Skarsnik root@testperl6:~/piko/perl6-gumbo# perl6 -Ilib gumbo.pl /home/skarsnik/Téléchargements/favourites.htm
13:49 Skarsnik gumbo_parse call    : 0.058758
13:49 Skarsnik xml tree creation   : 1.74880802
13:49 Skarsnik (my Int % = :elements(4126), :whitespaces(2908), :xml_objects(8383))
13:49 RabidGravy joined #perl6
13:50 Skarsnik It's sad to loose all the time in p6 just creating object x)
13:51 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
13:51 Skarsnik I remember when I profile it was like lot of time spend in new/bless
13:51 moritz Skarsnik: I mean, it could also be a slow looping construct, not just the .new calls
13:51 moritz ok
13:52 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 xpen joined #perl6
13:52 Skarsnik Also I use a recursive solution to parcours the C struct, I don't know how p6 far well with that
13:53 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
13:54 * 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 ~~
13:55 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 #perl6
13:56 camelia joined #perl6
13:56 gfldex joined #perl6
13:58 hahainternet another thought about an area that is frustrating in python
13:58 hahainternet try: something, catch exception.that.cannot.occur: do something else
13:58 hahainternet this should be statically checked and warned against
13:58 hahainternet 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 :)
13:58 timotimo as soon as you have a method call, that turns impossible
13:59 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
13:59 hahainternet i mean this is something you'd more expect from Go
13:59 hahainternet but i just thought i'd mention it
13:59 hahainternet as it resulted in me missing an obvious bug when i changed a method call
14:00 nys joined #perl6
14:00 hahainternet and it returnes 0 instead of an exception, because consistency in python is a dirty word :p
14:00 camelia joined #perl6
14:01 mr_ron joined #perl6
14:02 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
14:02 hahainternet changed some code, missed the implication because it's not very consistent, doubt there's anything p6 can do
14:03 hahainternet but out of all the language channels, people here are genuinely interested and conversational :)
14:04 timotimo the only thing p6 can do is encourage some behaviors among coders
14:05 dalek rakudo/nom: a62a00e | timotimo++ | src/ (4 files):
14:05 dalek rakudo/nom: "allow Failure/Nil to be returned" is now a tiny bit cheaper
14:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a62a00e939
14:05 hahainternet timotimo: you got a second to talk about something else related to python v p6?
14:06 hahainternet i'm quite ignorant of the extent of p6 features, so i'd like to chat about how something could be done
14:06 broquaint joined #perl6
14:06 timotimo sure
14:06 timotimo hope it's not too complicated for me :P
14:07 dalek nqp: 8013acd | jnthn++ | src/QRegex/P6Regex/Actions.nqp:
14:07 dalek nqp: Forbid synthetics as charrange endpoints.
14:07 dalek nqp:
14:07 dalek nqp: Which in turn makes it fine that it works in terms of codepoints.
14:07 dalek nqp: review: https://github.com/perl6/nqp/commit/8013acde23
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'
14:07 hahainternet you could say Users.filter(game_score__score_gt=0)
14:07 timotimo ah, that thing
14:07 hahainternet that is rather a terribly ugly wart imo
14:07 dalek ecosystem: 7ef1329 | cygx++ | META.list:
14:07 dalek ecosystem: add Image::PNG::Inflated
14:07 dalek ecosystem:
14:07 dalek ecosystem: Generates uncompressed PNG images in pure Perl6
14:07 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/7ef13299ff
14:07 timotimo you know how SQLAlchemy does it?
14:08 hahainternet i do not
14:08 timotimo wait, i'm not actually sure it's what i had in mind
14:08 hahainternet i'll have a read regardless
14:08 timotimo but i *think* you can Users.game_score.score > 0 in that same place
14:08 hahainternet yeah, see that makes much more sense, i don't understand why that isn't the case for Django
14:09 hahainternet and i'd very much hope it could be the case for p6 eventually
14:09 timotimo it's just a simple OOP trick
14:09 hahainternet well, it gets a bit more complex
14:09 hahainternet so i have an issue with the django orm
14:09 hahainternet i have a table with a postgres array field
14:09 hahainternet and i'm trying to compare this against a python array
14:09 timotimo hehehe
14:09 hahainternet however, the database column is character varying[]
14:09 hahainternet and django's pg module constructs a comparison array of text[]
14:10 hahainternet and i can find no way to 'hint' the right type to it
14:10 timotimo no clue about that :|
14:10 hahainternet well don't worry about the python side
14:10 hahainternet i'm more interested in thoughts about p6
14:10 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
14:11 hahainternet so, in the hypothetical case of Users.game_score.game_options = [1,2,3]
14:11 timotimo or the ORM can itrospect the thing you're comparing against for its type
14:11 hahainternet timotimo: indeed, but in that case text and character varying are indistinguishable
14:11 timotimo in which case, you'd Array[Int].new(1, 2, 3) or something
14:11 hahainternet right, that's what i was thinking
14:11 hahainternet and your db driver would define specific types for each db type
14:11 arnsholt SQLAlchemy lets you do stuff like filter(User.origin == "stuff")
14:12 arnsholt (Through metaclass trickery, I think
14:12 hahainternet yeah, django's orm has endless trickery and hackery
14:12 hahainternet but still comes out with an unsatisfactory solution
14:12 arnsholt The SQLAlchemy solution is reasonable I think
14:12 timotimo SQLAlchemy does trickery, too ... but it doesn't seem as hacky to me
14:12 hahainternet i'm reading about it now :)
14:13 arnsholt Yeah, I've only touched SQLAlchemy briefly, but it seems very well thought out
14:13 arnsholt And not very hacky
14:13 arnsholt I'm sure the implementation has some really hairy parts, but the API itself seems very slick
14:13 hahainternet excellent, well i hope to see similar for p6 at some point, although i doubt i have the skills to write it
14:13 arnsholt Anyways, it should be possible to do something similar for Perl 6, I think
14:14 hahainternet yeah i hope so, Array["CharacterVarying"].new(1,2,3) is a little verbose but perfectly clear
14:15 hahainternet and it seems reasonable you could define postgres operators in language too, so @> for example
14:15 timotimo you wouldn't put that in quotation marks
14:15 timotimo that'd give you an Array[Str]
14:16 pmurias joined #perl6
14:16 diakopter joined #perl6
14:16 sivoais joined #perl6
14:16 Jonis joined #perl6
14:16 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:16 hahainternet oh sorry, my mistake
14:16 sivoais joined #perl6
14:17 raiph joined #perl6
14:18 arnsholt Skarsnik: IIRC the DBDs share a superclass, so adding a default implementation that just dies should work
14:21 sprocket joined #perl6
14:21 moritz or simply put it in the one DBD that supports it
14:22 moritz then you can only call it on the statement handle of that class
14:24 timotimo damn, type check against Nil seems to *suck* performance-wise, because the cache isn't authoritative
14:25 timotimo or something like that?
14:25 jnthn Odd, not sure why it'd not be
14:26 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 timotimo 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
14:28 timotimo either there's a flaw to my logic, or one of those bits gets set for some weird reason
14:31 travis-ci joined #perl6
14:31 travis-ci Rakudo build passed. Timo Paulssen '"allow Failure/Nil to be returned" is now a tiny bit cheaper'
14:31 travis-ci https://travis-ci.org/rakudo/rakudo/builds/90525734 https://github.com/rakudo/rakudo/compare/3dc1a8d91bfd...a62a00e9393f
14:31 travis-ci left #perl6
14:32 timotimo oh wow, make test has quite a few failures on the jvm :|
14:35 sprocket joined #perl6
14:41 RabidGravy chocolate lager is weird
14:41 dalek gtk-simple: fe6a42c | azawawi++ | / (7 files):
14:41 dalek gtk-simple: - Make examples executables on *nix
14:41 dalek gtk-simple: - example script now use .p6 extension
14:41 dalek gtk-simple: - Add instructions for Debian Linux package installation
14:41 dalek gtk-simple: review: https://github.com/perl6/gtk-simple/commit/fe6a42c0b8
14:43 jnthn RabidGravy: I'd imagine...
14:43 jnthn RabidGravy: Though licorice lager kinda worked.
14:44 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
14:45 jnthn Indeed.
14:45 timotimo oh fun!
14:45 RabidGravy there's plenty o' chocolate porter in the house
14:46 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
14:46 timotimo wow, this is weird, too
14:46 ilmari https://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
14:48 timotimo 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 #perl6
14:48 timotimo oh, that could totally be a thing
14:48 timotimo gimme a sec
14:48 jnthn timotimo: If so we should probably disassemble those into the base type and the modifier
14:49 timotimo yup, that's in there
14:49 timotimo both for the parameters and for the return value
14:49 CIAvash` joined #perl6
14:49 timotimo not exactly sure where that'd splitting would happen
14:49 timotimo can the perl6 optimizer already do that? is it possible at all to do it in spesh?
14:49 jnthn When compiling the check return type op perhaps
14:49 jnthn Not in spesh, no
14:49 jnthn It's too Perl 6 semantic for that
14:50 timotimo thought so
14:50 timotimo looks like i'll be wanting to call .^base_type to get Int from Int:D
14:50 dalek gtk-simple: 1b19ba7 | azawawi++ | / (2 files):
14:50 dalek gtk-simple: Enable travis CI for GTK::Simple :)
14:50 dalek gtk-simple: review: https://github.com/perl6/gtk-simple/commit/1b19ba781f
14:50 jnthn aye
14:50 timotimo and check the HOW against DefiniteHOW
14:50 timotimo that seems doable
14:51 jnthn No
14:51 jnthn .HOW.archetypes.definite or so
14:51 timotimo ah
14:51 jnthn Is mroe reliable
14:51 timotimo MROe reliable, eh?
14:51 sprocket joined #perl6
14:51 jnthn :P
14:51 jnthn I just fixed two LTM bugs, I'm allowed to typo :)
14:52 jnthn Or maybe three LTM bugs, depending how you count :)
14:52 * jnthn spectests the bunch of patches
14:52 * masak .oO( ...I'm allowed to off-by-one! ) :P
14:53 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 * jnthn is happy to see folks working on GTK::Simple :)
14:53 * timotimo too
14:53 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 #perl6
14:54 * jnthn hopes it still does make nice use of supplies :)
14:54 jnthn I bet you can write some really cute code with the react/supply/whenever stuff
14:55 timotimo azawawi: i have no idea how to do it, because it's in perl6/ rather than timo/
14:56 azawawi visit travis ci, sign in with your github, and click accounts... and click the toggle :)
14:56 jnthn Darn, seems I bust something :/
14:57 timotimo azawawi: there's only toggles for timo/ in there
14:58 azawawi click Perl 6 on the left...
14:59 timotimo clicked it!
15:00 DrForr IT'S A TRAP!
15:00 azawawi :)
15:00 azawawi uploading virus in...
15:02 dalek gtk-simple: 27afc89 | azawawi++ | LICENSE:
15:02 dalek gtk-simple: Add a LICENSE file to make travis CI build something :)
15:02 dalek gtk-simple: review: https://github.com/perl6/gtk-simple/commit/27afc89d39
15:03 azawawi timotimo: https://travis-ci.org/perl6/gtk-simple/builds/90536389   # booting...
15:04 azawawi interesting libpq.dll on windows is not working with NativeCall, how can i debug it?
15:06 Actualeyes joined #perl6
15:06 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␤»
15:07 azawawi what does "Cannot locate native library 'C:\Program Files\PostgreSQL\9.4\lib\libpq.dll': error 0x7e" really mean?
15:08 timotimo it means we should probably mate it output whether we're on dyncall or libffi, for one :)
15:08 azawawi english?
15:08 azawawi :)
15:08 espadrine joined #perl6
15:10 jnthn timotimo: Nice! :)
15:10 azawawi so? :)
15:11 azawawi timotimo: it worked ... https://travis-ci.org/perl6/gtk-simple/builds/90536389#L949 :)
15:12 azawawi timotimo++
15:14 azawawi jnthn: perl6 built on windows is 64-bit or 32-bit on a 64-bit host?
15:15 timotimo cool
15:15 * azawawi downloads 32-bit postgresql to test
15:15 jnthn azawawi: 64-bit
15:16 jnthn azawawi: Especially since we only have JIT support on x64
15:16 jnthn :)
15:16 azawawi postgresql-x64-9.4
15:17 timotimo i'm having some trouble with :U versions of return type annotations :o
15:18 dalek nqp: e549cf2 | jnthn++ | src/QRegex/NFA.nqp:
15:18 dalek nqp: Fix NFA generation for charrange with ignorecase.
15:18 dalek nqp: review: https://github.com/perl6/nqp/commit/e549cf280a
15:18 dalek nqp: 4570019 | jnthn++ | tools/build/MOAR_REVISION:
15:18 dalek nqp: Bump MOAR_REVISION for NFA improvements.
15:18 dalek nqp: review: https://github.com/perl6/nqp/commit/4570019dcf
15:18 dalek nqp: 367c227 | jnthn++ | src/QRegex/NFA.nqp:
15:18 dalek nqp: Fix charrange NFA to handle ignoremark.
15:18 dalek nqp: review: https://github.com/perl6/nqp/commit/367c22742e
15:18 dalek nqp: ffdc843 | jnthn++ | src/QRegex/NFA.nqp:
15:18 dalek nqp: Fix NFA of literals to handle NFG synthetics.
15:18 dalek nqp: review: https://github.com/perl6/nqp/commit/ffdc8439d1
15:20 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
15:20 timotimo why would that fail to cause errors when returning a defined instance when returns Foo:U is set?
15:20 dalek rakudo/nom: d5c6b61 | jnthn++ | tools/build/NQP_REVISION:
15:20 dalek rakudo/nom: Bump NQP_REVISION for various LTM fixes.
15:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d5c6b61112
15:20 timotimo the accepts_type code is basically istype($thing, $base_type) && isconcrete($thing) == $definite
15:21 jnthn timotimo: Containerization maybe?
15:21 dalek roast: edaeffa | jnthn++ | S05-metasyntax/charset.t:
15:21 dalek roast: Tests for RT #125753.
15:21 dalek roast: review: https://github.com/perl6/roast/commit/edaeffab02
15:21 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=125753
15:21 jnthn Another xmas RT down
15:21 azawawi ouch "The Postgres 8.4 Documentation" in pg.pm6
15:22 timotimo jnthn: i'm testing against the value of $decont
15:22 timotimo just like the stuff before that
15:23 timotimo oh!
15:23 timotimo haha
15:23 timotimo if the type matches, the whole definedness stuff is skipped %)
15:24 dalek roast: 5079079 | jnthn++ | S05-metasyntax/longest-alternative.t:
15:24 dalek roast: Test for RT #126573.
15:24 dalek roast: review: https://github.com/perl6/roast/commit/50790796d8
15:24 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=126573
15:25 timotimo in other words, currently my code would accept a type check failure if and only if the definedness is correct
15:25 timotimo very clever!
15:25 jnthn d'oh :)
15:26 timotimo so i built the same code with || instead of &&
15:27 jnthn Regression reported in RT #126573 fixed too
15:27 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=126573
15:29 skids joined #perl6
15:31 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」]␤»
15:31 zengargoyle good * #perl6
15:32 jnthn m: say 'abcc' ~~ /(.)+$0/; say $0
15:32 camelia rakudo-moar d5c6b6: OUTPUT«「abcc」␤ 0 => 「a」␤ 0 => 「b」␤ 0 => 「c」␤[「a」 「b」 「c」]␤»
15:32 timotimo okay, full spectest run with my fixed-up code
15:32 jnthn m: say Match ~~ Iterable
15:32 camelia rakudo-moar d5c6b6: OUTPUT«False␤»
15:32 jnthn m: say Match ~~ Positional
15:32 camelia rakudo-moar d5c6b6: OUTPUT«False␤»
15:33 jnthn m: say 'abcc' ~~ /(.)+$0/; say $0.WHAT
15:33 camelia rakudo-moar d5c6b6: OUTPUT«「abcc」␤ 0 => 「a」␤ 0 => 「b」␤ 0 => 「c」␤(Array)␤»
15:33 jnthn Ah
15:34 jnthn m: say 'abca' ~~ /(.)+$0/;
15:34 camelia rakudo-moar d5c6b6: OUTPUT«Nil␤»
15:34 azawawi confirmed 9.3.10 on linux working with DBIish, 9.3.10 (x64) is not working on windows...
15:35 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 https://rt.perl.org/Ticket/Display.html?id=88340 - in summry, what should a backreference match when it's to a quantified thing?
15:35 yoleaux jnthn: I'll pass your message to TimToady.
15:37 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
15:38 arnsholt azawawi: If it's in the C pary you can just attach your debugger to the executable
15:39 yqt joined #perl6
15:39 Skarsnik azawawi, does the dll managed to load finaly?
15:39 Ven_ joined #perl6
15:40 khw joined #perl6
15:41 timotimo an extra spec test run with jnthn's latest changes just for safety
15:46 dalek rakudo/nom: 31784a7 | timotimo++ | src/vm/moar/Perl6/Ops.nqp:
15:46 dalek rakudo/nom: make types with :D or :U much cheaper for returning
15:46 dalek rakudo/nom:
15:46 dalek rakudo/nom: through the power & magic of code generation!
15:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/31784a7b14
15:46 timotimo excellent
15:47 yqt joined #perl6
15:47 timotimo in the spesh output for the benchmark the return type checking code completely disappears
15:47 timotimo this makes me happy :)
15:48 jnthn \o/
15:48 yqt joined #perl6
15:48 jnthn timotimo++
15:50 timotimo still not inlined. but see above for my nagging suspicion :P
15:50 timotimo the benchmark also allocates 1000002 IntLexRef and 999996 Int
15:50 timotimo :\
15:51 timotimo with the improved speed, the garbage collection time spending percentage is now 23.64%
15:51 diakopter which benchmark are you using
15:51 timotimo perl6 -e 'my int $i; $i = $i + $_ for ^1000001; say $i'
15:52 timotimo it uses the Int candidate for addition rather than the int version
15:52 diakopter clarify "it"
15:52 diakopter :D
15:52 timotimo for +
15:53 timotimo perl6 -e 'my int $i; for ^1000001 -> int $_ { $i = $i + $_ }; say $i' - this one is much better
15:54 diakopter m: my int $i; for ^1000001 -> int $_ { $i = $i + $_ }; say $i
15:54 camelia rakudo-moar 31784a: OUTPUT«500000500000␤»
15:54 diakopter you'd think camelia could give us a few significant digits of seconds XD
15:54 timotimo there the addition gets inlined
15:54 ilmari 4.5s vs 0.8s here
15:55 timotimo ilmari: after updating rakudo, you should get a bit better baseline time for that
15:55 ilmari m: say time
15:55 camelia rakudo-moar 31784a: OUTPUT«1447257345␤»
15:55 ilmari what, no subsecond precision by default?
15:56 TimToady m: say now
15:56 yoleaux 15:35Z <jnthn> TimToady: for input on https://rt.perl.org/Ticket/Display.html?id=88340 - in summry, what should a backreference match when it's to a quantified thing?
15:56 camelia rakudo-moar 31784a: OUTPUT«Instant:1447257402.853521␤»
15:56 ilmari TimToady: ah
15:56 TimToady time is POSIX
15:56 diakopter yeah I mean for every run
15:56 diakopter maybe mt: for moartimed
15:56 timotimo ilmari: i get 2.52s vs 0.67s on my machine with latest rakudo
15:57 * diakopter watching http://youtu.be/kwxHXgiLsFE
16:00 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 azawawi sample with REPL on windows
16:00 azawawi jnthn++ # Debugger::UI::CommandLine
16:01 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␤»
16:02 jnthn Darn, RT #125285 is a tricky one
16:02 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=125285
16:03 dalek rakudo-star-daily: c2e8cf8 | coke++ | log/ (9 files):
16:03 dalek rakudo-star-daily: today (automated commit)
16:03 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/c2e8cf8408
16:03 dalek perl6-roast-data: f69014b | coke++ | / (9 files):
16:03 dalek perl6-roast-data: today (automated commit)
16:03 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/f69014be2f
16:04 azawawi exception occurred in https://github.com/jnthn/zavolaj/blob/master/lib/NativeCall.pm6#L142
16:06 azawawi in method setup at lib/NativeCall.pm:225
16:07 zakharyas joined #perl6
16:07 azawawi https://github.com/rakudo/rakudo/blob/nom/lib/NativeCall.pm#L225  # to be exact
16:10 diakopter mind boggle at supply/react
16:11 hoelzro o/ #perl6
16:12 CIAvash`` joined #perl6
16:12 aindilis` joined #perl6
16:12 Skarsnik azawawi, witch line in Pg.pm crash?
16:13 * azawawi going home... will connect again in like 45 min depending on traffic
16:13 mr_ron_ joined #perl6
16:13 timotimo star-m: my $a_a=now; my int $i; for ^1000001 -> int $_ { $i = $i + $_ }; say $i; say now -$a_a
16:13 camelia star-m 2015.09: OUTPUT«500000500000␤2.3527282␤»
16:14 PotatoGim_ joined #perl6
16:15 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␤»
16:15 timotimo this must be the effect of the for-loop-to-while-loop optimization
16:15 diakopter m: my int $i; for ^1000001 -> int $_ { $i = $i + $_ }; say $i; say now - INIT now
16:15 camelia rakudo-moar 31784a: OUTPUT«500000500000␤0.6119751␤»
16:15 f3ew_ joined #perl6
16:16 Ven_ joined #perl6
16:16 diakopter ^ look I learned from the youtube
16:16 apejens_ joined #perl6
16:16 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 #perl6
16:16 TimToady yeah, that one's been sitting in my todo file for a while too...
16:17 jnthn TimToady: ^^ or the thing I asked about? :)
16:17 zakharyas joined #perl6
16:17 TimToady ^^
16:17 jnthn TimToady: I got that latest one by golfing the nasty RT
16:17 RabidGravy boom
16:17 jnthn TimToady: How much did you figure out about it?
16:17 ZoffixW joined #perl6
16:17 khw joined #perl6
16:17 TimToady I don't remember offhand, alas, would have to look at it again
16:18 ZoffixW jnthn, so. What's the status of P6 MetaCPAN/PAUSE? Last time we didn't get a chance to discuss it :)
16:18 TimToady but I think it's probably tied in with the lack of proper backtracking primitives
16:18 jnthn ZoffixW: Maybe you mean jdv79? :)
16:18 ZoffixW Or right
16:18 jnthn Phew! :)
16:19 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 :)
16:19 TimToady somehow it's not trimming the list of captures correctly
16:20 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 diakopter jnthn: what is that bug supposed to do
16:21 diakopter (why does that expect just the longest ones
16:21 diakopter )
16:21 diakopter (and if you fix this, will it speed up matching by a few orders of magnitude?) XD XD XD
16:22 jnthn TimToady: That is, we expect [1] is (' foo ', ' bar')
16:22 jnthn diakopter: Unlikely, especially for Perl 6 parsing given we don't backtrack anyway in grammars
16:22 diakopter you hope it doesn't. )_)
16:24 TimToady I think that's the right expectation
16:24 zakharyas joined #perl6
16:25 pyrimidine joined #perl6
16:28 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」␤»
16:28 jnthn Interesting that the first capture in the group isn't ever duped
16:28 jnthn oh, though
16:29 jnthn It is
16:29 jnthn m: say('rule1 foo rule2 far' ~~ /^ [ (\w+?) [1|2] (\sf*?) (<-[f]>+?) ]* $/)
16:29 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 diakopter is there a way to trigger a pessimization that might rule out an optimization as a culprit
16:33 jnthn Output is the same with --optimize=0ff
16:33 jnthn *off
16:34 telex joined #perl6
16:34 diakopter I was thinking more the NFA
16:36 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 =…»
16:36 jnthn Not the NFA; there's no LTM in that case and so the NFA isn't used
16:36 diakopter it's not the Match object reuse thing obviously
16:37 diakopter or Cursor reuse
16:37 diakopter * can't remember
16:38 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␤»
16:39 TimToady I think that's what a backref to a quantified thing should check
16:39 TimToady it could be argued that ~$0 should return that too, except it's already just an Array
16:40 kblagov joined #perl6
16:41 Ven__ joined #perl6
16:43 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:44 jnthn TimToady: I'm suspecting it may be a bug in the subrule backtraking
16:44 jnthn TimToady: We keep the cursor around so we can backtrack into it if needed
16:44 jnthn TimToady: But that keeps the capture around too
16:45 TimToady with a linked list you can have multiple entry points
16:45 TimToady but with the current setup, we'd have to record how many of the list to pay attention to somehow
16:46 TimToady or maybe which element of the list to pay attention to
16:46 TimToady the STD model was a bit cleaner here, and it could just throw away cursors at the right moment
16:47 domidumont joined #perl6
16:55 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]␤»
16:56 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 Ven_ joined #perl6
16:56 ZoffixW s/what/why/;
16:57 ZoffixW 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␤»
16:57 ZoffixW hm. mkay
16:59 ^elyse^ joined #perl6
16:59 ZoffixW m: my $a = (1, 2, 3); .say for @@@@@@@@@@$a;
16:59 camelia rakudo-moar 31784a: OUTPUT«1␤2␤3␤»
16:59 ZoffixW This is fun ^_^
17:00 diakopter ^_^
17:01 PerlJam ZoffixW: are you mapping out all the idempotencies?
17:02 ZoffixW PerlJam, no, I'm slowly reading P6 docs and today's lesson was http://docs.perl6.org/language/containers
17:02 ZoffixW And then I played around a bit :P
17:02 TimToady m: my $a = (1, 2, 3); .say for @@$@@$$@@@$@$@@$a;
17:02 camelia rakudo-moar 31784a: OUTPUT«1␤2␤3␤»
17:03 azawawi joined #perl6
17:04 azawawi im back :)
17:04 azawawi Skarsnik: ping
17:05 Skarsnik pong
17:05 dalek DBIish: ae71b30 | (Sylvain Colinet)++ | lib/DBDish (2 files):
17:05 dalek DBIish: added a fetchrow_typedhash method to have a hash value with correct perl6 type instead of all Str
17:05 dalek DBIish: review: https://github.com/perl6/DBIish/commit/ae71b3073e
17:05 dalek DBIish: bf33b1b | (Sylvain Colinet)++ | README.pod:
17:05 dalek DBIish: Add a small sniped of doc about fetchrow_typedhash
17:05 dalek DBIish: review: https://github.com/perl6/DBIish/commit/bf33b1b207
17:05 dalek DBIish: 7f3cbd6 | (Zoffix Znet)++ | / (3 files):
17:05 dalek DBIish: Merge pull request #25 from Skarsnik/master
17:05 dalek DBIish:
17:05 dalek DBIish: added a fetchrow_typedhash method to have a hash value with correct p…
17:05 dalek DBIish: review: https://github.com/perl6/DBIish/commit/7f3cbd6bd2
17:05 azawawi Skarsnik: It was crashing on DBIish.pm6. i use this repo https://github.com/azawawi/DBIish
17:06 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: https://github.com/azawawi/DBIish/blob/master/lib/DBIish.pm6#L9   # to be exact
17:06 azawawi Skarsnik: are you on windows also?
17:07 Skarsnik No, but I have my nose in DBIsh and Pg.pm x)
17:07 dalek DBIish: 87c02a1 | (Zoffix Znet)++ | README.pod:
17:07 dalek DBIish: Fix typos
17:07 dalek DBIish: review: https://github.com/perl6/DBIish/commit/87c02a148f
17:09 dalek DBIish: 0e62d3b | (Zoffix Znet)++ | README.pod:
17:09 dalek DBIish: Use POD and not Markdown syntax
17:09 dalek DBIish: review: https://github.com/perl6/DBIish/commit/0e62d3bedb
17:09 Skarsnik You don't get in error in Pg.pm (or the drivers used)?
17:09 raiph joined #perl6
17:10 azawawi Skarsnik++ # fetchrow_typedhash
17:13 dalek rakudo/nom: ada0ad8 | TimToady++ | src/core/ (2 files):
17:13 dalek rakudo/nom: add a backref method for Array matches
17:13 dalek rakudo/nom:
17:13 dalek rakudo/nom: For an Array of matches, we need to distinguish stringifying the
17:13 dalek rakudo/nom: Array (which always puts spaces between) from asking for the backref
17:13 dalek rakudo/nom: to what was matched, which includes any intervening delimiters instead
17:13 dalek rakudo/nom: of spaces.
17:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ada0ad88d4
17:13 Skarsnik I am off for a while (2h)
17:17 softmoth_ joined #perl6
17:18 Skarsnik hm I forget today is a day off x)
17:18 timotimo a day of offness?
17:18 diakopter offense
17:20 Skarsnik :m sub foo($something, *%f, :$named = 0) {say %f.perl}; foo(1, :a(0), :b(1), :named(1));
17:21 Skarsnik 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 #perl6
17:22 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));
17:22 camelia rakudo-moar 31784a: OUTPUT«{:a(0), :b(1)}␤»
17:23 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)
17:24 timotimo stmuk_: could very well be; how recent is the rakudo you've measured?
17:25 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 #perl6
17:26 jnthn TimToady: The place I thought we were not chopping enough off the cstack, it seems we actually are.
17:26 jnthn Or at least, I can't figure out why we'd not be
17:26 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
17:27 timotimo ah
17:27 pippo Can anybody tell me if "sink context" means context where lazi things loose their laziness?
17:27 timotimo i wonder if it comes into play noticably there; is that from perl6-bench or something?
17:27 stmuk_ yes it was imported into japh's suite
17:27 timotimo pippo: that sounds like a reasonable explanation for what that means
17:27 TimToady pippo: sink means eager plus throw everything away
17:28 timotimo stmuk_: i can test before/after my patch if it impacts that! :D
17:28 jnthn ooh
17:28 pippo TimToady: timotimo: thank you.
17:28 jnthn Or I did the patch wrong.
17:29 diakopter prof-m: signal(SIGINT).act: { exit }
17:29 camelia prof-m 273e89: OUTPUT«Writing profiler output to /tmp/mprof.html␤»
17:29 camelia .. Prof: http://p.p6c.org/19efb1e
17:30 diakopter heheh, it didn't report the segfault
17:30 timotimo stmuk_: what kind of "scale" would you give as a parameter?
17:31 jnthn TimToady: I have a patch that does seem to fix things
17:31 TimToady YaY
17:32 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 #perl6
17:32 stmuk_ 100000
17:32 llfourn joined #perl6
17:32 * jnthn wonders how long until that's in Unicode...
17:32 timotimo thanks
17:33 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)
17:34 stmuk_ timotimo: sure
17:34 stmuk_ using Int $i?
17:34 timotimo @*ARGS[0] is not an Int unless you .Int it, so <= SCALE intifies the string on every iteration
17:35 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 :))
17:35 AlexDaniel .u ṏ
17:35 yoleaux U+1E4F LATIN SMALL LETTER O WITH TILDE AND DIAERESIS [Ll] (ṏ)
17:35 jnthn TimToady: The regex patch has made it through S06
17:35 TimToady we're glad someone's looking after you now :)
17:35 jnthn Uh, S05, even
17:35 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
17:36 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 "
17:36 timotimo um, camelia?
17:36 camelia rakudo-moar ada0ad: OUTPUT«not intifying the cmdline argument on every iteration makes the benchmark take only 46.159420% of the original time ␤»
17:37 stmuk_ timotimo: actually the one I was using was https://gist.github.com/stmuk/074811935f16a6725f76
17:37 timotimo that'd not have that problem
17:39 TimToady m: my $abc = "  a,b,c,  "; $abc ~~ /(\w)+ % ","/; say $0.backref
17:39 camelia rakudo-moar ada0ad: OUTPUT«a,b,c␤»
17:39 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
17:39 timotimo so not insanely good, but i'll take it :3
17:41 stmuk_ better than a point in the eye with a sharp stick
17:42 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 #perl6
17:43 diakopter lasers are sharp too
17:43 timotimo updating rakudo makes it a bit faster still
17:43 dalek nqp: d181c8b | jnthn++ | src/vm/moar/QAST/QASTRegexCompilerMAST.nqp:
17:43 dalek nqp: Don't keep backtracked over captures around.
17:43 dalek nqp:
17:43 dalek nqp: Otherwise we spew them out in the final results, not to mention can't
17:43 dalek nqp: GC so soon.
17:43 dalek nqp: review: https://github.com/perl6/nqp/commit/d181c8b8d5
17:43 * TimToady has been poked with even more lasers than scalpels
17:43 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␤»
17:44 timotimo stmuk_: wow, i underestimated the savings by almost 2x
17:44 dalek rakudo/nom: 79b68bb | jnthn++ | tools/build/NQP_REVISION:
17:44 dalek rakudo/nom: Get backtracking/captures fix.
17:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/79b68bb259
17:44 timotimo the patch makes a lot of things jit that didn't jit before
17:44 jnthn m: say ('rule1 foo rule2 bar' ~~ /^ ( 'rule1' || 'rule2' )* %% (.+?) $/).caps.elems
17:44 camelia rakudo-moar ada0ad: OUTPUT«11␤»
17:45 jnthn 4 locally :)
17:45 TimToady and here in 6 minutes or so
17:46 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
17:46 azawawi moritz: https://github.com/perl6/DBIish/pull/26  # pending travis CI, please test
17:46 diakopter timotimo: push push push
17:46 raoulvdberge jnthn: hey, I watched like 2 Perl 6 talks of you, love them! :-)
17:46 timotimo diakopter: it's already up
17:47 timotimo jnthn: your intuition was right about inlining code frames in spesh after my patch, compare:
17:47 timotimo 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%).
17:47 timotimo 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%).
17:47 jnthn m: say ('rule1 foo rule2 bar' ~~ /^ ( 'rule1' || 'rule2' )* %% (.+?) $/).caps[1].elems
17:47 camelia rakudo-moar ada0ad: OUTPUT«1␤»
17:48 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␤␤»
17:48 flussence oof, back to «Stage parse      :  90.486» with that last one
17:49 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
17:49 jnthn m: say ('rule1 foo rule2 bar' ~~ /^ ( 'rule1' || 'rule2' )* %% (.+?) $/)[1].elems
17:49 camelia rakudo-moar ada0ad: OUTPUT«9␤»
17:49 jnthn raoulvdberge: Glad you enjoyed them :-)
17:49 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.
17:49 jnthn timotimo: Nice!
17:50 timotimo jnthn: thanks for pushing me into doing this!
17:50 timotimo and assisting :)
17:50 flussence still, I'll take a bit of slowdown over more correctness any day :D
17:50 flussence (-EBADGRAMMER, but still)
17:50 dalek roast: 3082b66 | jnthn++ | S05-match/capturing-contexts.t:
17:50 dalek roast: Tests for RT #125285.
17:50 dalek roast: review: https://github.com/perl6/roast/commit/3082b66b1a
17:50 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=125285
17:51 * 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!
17:53 azawawi https://travis-ci.org/perl6/DBIish/builds/90569673  # looks good, any objections on https://github.com/perl6/DBIish/pull/26 ?
17:53 jnthn TimToady: :)
17:54 jnthn OK, that's me done for today. 2 more xams tickets down. :)
17:54 kb joined #perl6
17:54 * TimToady would dance happy jig but is lying in bed lazing
17:54 jnthn &
17:55 pippo TimToady: you are not in sink context then :-))
17:56 * TimToady is already sunk
17:56 azawawi going to merge it since nobody objected... last chance  :)
17:56 pippo :-)
17:57 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 #perl6
17:58 azawawi now to getting https://github.com/perl6/DBIish/blob/master/examples/pg.p6 to work on windows :)
17:58 srvsh joined #perl6
18:02 Skarsnik azawawi, did you look if Pg set an env variable with the lib location?
18:03 azawawi https://github.com/perl6/DBIish/blob/master/lib/DBDish/Pg.pm6#L6
18:03 azawawi Skarsnik: i will look at it
18:06 timotimo what in the world ...
18:06 diakopter ...
18:06 timotimo &infix:<div> somehow ends up calling .sink on a List
18:07 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:08 jdv79 pause works.   minimally 
18:09 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 #perl6
18:15 sprocket joined #perl6
18:16 nine Just a quick update on that ^^. Sadly no progress since last Thursday since I've cought myself a nasty cold :(
18:18 pippo git pull
18:19 diakopter Already up-to-date.
18:19 rindolf joined #perl6
18:19 pippo Sorry wrong terminla
18:19 jdv79 ok, cool
18:20 pippo :-)
18:20 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 #perl6
18:21 ZoffixW jdv79, so it's basically a https://metacpan.org/ code that loads P6 modules instead?
18:22 timotimo ZoffixW: is fallout 4 already in your hands?
18:22 timotimo if so, i'm surprised we get to see you at all :D
18:22 ZoffixW timotimo, it is. I played 9 hours yester.
18:22 * ugexe was just about to fulfill his fallout addiction
18:22 yoleaux 09:06Z <azawawi> ugexe: please see https://github.com/ugexe/zef/issues/71
18:22 yoleaux 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.
18:22 ZoffixW yesterday
18:23 DrForr He's typing . Ergoo, no.
18:23 ZoffixW timotimo, what can I say. I have a high work ethic.
18:23 ZoffixW (what I mean is I'm at $work right now)
18:23 ZoffixW ^_^
18:24 timotimo hah
18:24 timotimo good job
18:25 diakopter $work is for sleeping with your eyes open
18:26 jdv79 ZoffixW: its a minimally modified seperate instance of that code, yes
18:27 jdv79 since there are virtually no p6 modules on cpan the prototype instance on hack loads up the current ecosystem
18:27 jdv79 this is all in the blogs posts i made a few weeks ago:)
18:27 ZoffixW jdv79, what's the link: I don't think I've read them all
18:27 jdv79 like i said - i've made some progress on the metcpan stuff since then that i'll try to push soon
18:28 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
18:28 jdv79 unless you want to untlaanlge a git mess
18:28 jdv79 i mean force pushed
18:29 jdv79 ZoffixW: http://jdv79.blogspot.ie/search?updated-min=2015-01-01T00:00:00-08:00&amp;updated-max=2016-01-01T00:00:00-08:00&amp;max-results=2
18:30 jdv79 awesome urls, blogspot:(
18:32 timotimo https://twitter.com/gamehawk/status/664496421282803712 ... has a point!
18:33 azawawi ZoffixW: so how is fallout 4? addictive? :)
18:33 kjs_ joined #perl6
18:34 ZoffixW azawawi, it's alright. Skyrim with guns and zombies :P
18:35 ZoffixW And Sims... I guess (you get to build your santuary and tell your citizens what to do; like grow crops, etc)
18:35 samb1 joined #perl6
18:35 ^elyse^ joined #perl6
18:36 jdv79 timotimo: to be expected, right?
18:36 ZoffixW jdv79, Neil has a point: http://jdv79.blogspot.com/2015/10/perl6-and-cpan.html?showComment=1444723380804#c6224724769675273137
18:36 jdv79 that's polish
18:36 ZoffixW Especially since P6 dist names don't have to be unique.
18:36 jdv79 well, relatively
18:38 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.
18:38 timotimo i only have access to the wordpress instance, i *think*, that would be enough
18:38 timotimo but that's another thing we'd have to change each time we do a release
18:38 timotimo ugh, so much stuff to do
18:39 Skarsnik azawawi, ok pg set nothing in the env, maybe in the registry?
18:40 jdv79 think about what it would take to build a cpan ecosystem from scratch
18:41 jdv79 sounds vaguely like the build it all outselves POV that generated parrot
18:41 jdv79 and like parrot the p6 on p5's cpan may be a throw away to be learned from
18:41 jdv79 idk:)
18:41 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?
18:42 jdv79 that's likely not gonna happen because cpan is about actual dists
18:42 jdv79 and metacpan is built on that
18:43 jdv79 we could possibly build one adapted to github and periodic snapshots or tags but that's not what i'm working on
18:44 jdv79 though the way  i fed the ecosystem into the protype instance is basically that
18:44 srvsh joined #perl6
18:45 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 ZoffixW And I was wondering if that effort was a waste. But if you're saying p6 metacpan won't replace modules.perl6.org...
18:45 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\
18:45 camelia rakudo-moar 79b68b: OUTPUT«int␤»
18:45 ZoffixW ¯\_(ツ)_/¯
18:45 jdv79 yeah, so far 2 seperate ecosystems
18:46 psch and i don't quite get what exactly sort_dispatchees_internally actually does... o.o
18:46 psch s/lly/l/
18:46 ZoffixW Alright. I'll continue hacking on it then :)
18:46 azawawi finally... got it :)
18:46 ZoffixW jdv79, And once I finish Fallout4, I'll see if I can give a helping hand with your fork of MetaCPAN.
18:47 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 #perl6
18:47 ZoffixW ^_^
18:47 azawawi :)
18:47 jdv79 if you disappear like sri did with WoW
18:47 azawawi jdv79: im a wow player and im here :)
18:48 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.
18:48 [Coke] (both of which are ticketed, IIRC)
18:48 ZoffixW I clocked about 600 hours on Warframe :P
18:48 azawawi Skarsnik: libpq.dll on windows depends on libeay32.dll... go figure :)
18:48 jdv79 for sure, i'd love to see the whole thing built with p6
18:49 jdv79 but how practical is that - i'm just repaeting myself now.  anyway, back to work.
18:49 ZoffixW Good plan :P)
18:58 * timotimo has clocked 420 hours on Natural Selection 2
18:58 timotimo that's probably the game i have the most time played
18:58 timotimo though, i've played many, many, many hours of smash bros melee, too
19:00 _sri_ jdv79: for the horde!
19:00 ZoffixW :P
19:02 jdv79 so definitiveness doesn't factor into MMD?
19:05 dalek roast: 5c7ae5c | lizmat++ | S32-str/sprintf.t:
19:05 dalek roast: Unfudge now passing tests on rakudo.moar
19:05 dalek roast: review: https://github.com/perl6/roast/commit/5c7ae5c3f5
19:06 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
19:07 TimToady BEGIN %PROCESS::ENV<Path> = ...  maybe
19:07 TimToady or maybe INIT
19:07 TimToady I guess it depends when the DLL is being loaded...
19:08 lizmat m: BEGIN %*ENV<foo> = "bar"
19:08 camelia rakudo-moar 79b68b: ( no output )
19:09 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
19:09 lizmat All tests successful.
19:09 lizmat Files=1073, Tests=50150, 226 wallclock secs (12.40 usr  3.81 sys + 1381.55 cusr 126.72 csys = 1524.48 CPU)
19:10 lizmat feels like we picked up some speed today
19:10 timotimo hey lizmat
19:10 timotimo how was FRA?
19:10 lizmat still not at FRA, we're trying to determine whether it makes sense
19:11 lizmat since the same flight we want to take tomorrow was cancelled today, thanks to LH being on strike
19:11 lizmat so most likely it's going to be cancelled tomorrow as well
19:14 azawawi lizmat: something is magically here... if i set path outside the dll loads just fine, inside the script... nope...
19:14 azawawi TimToady: thx :)
19:14 raiph joined #perl6
19:14 timotimo lizmat: oh, trouble :|
19:15 Skarsnik hm maybe this should be done before compile time?
19:15 Skarsnik for the DLL stuff
19:16 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 #perl6
19:17 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:19 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␤»
19:19 lizmat commuting to FRA anyway :-(   &
19:19 psch oh ehh
19:19 psch m: "abc".trans(/abc/ => '');
19:19 camelia rakudo-moar 79b68b: ( no output )
19:20 pippo psch: so tr/// is gone ?
19:20 psch pippo: no, you saw it work with ~~
19:20 azawawi i bet NativeCall is using another stored environment path variable
19:20 * azawawi takes a look
19:20 psch pippo: it's just that the LHS to ~~ needs to be a container
19:20 psch m: $_ = "abc"; tr/abc//; .say
19:20 camelia rakudo-moar 79b68b: OUTPUT«␤»
19:21 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
19:21 camelia rakudo-moar 79b68b: OUTPUT«DEF␤»
19:21 zengargoylew joined #perl6
19:21 pippo $_ = "abc"; $ ~~ tr/abc//; .say
19:21 pippo m: $_ = "abc"; $ ~~ tr/abc//; .say
19:21 camelia rakudo-moar 79b68b: OUTPUT«Method 'trans' not found for invocant of class 'Any'␤  in block <unit> at /tmp/jl3xfpmcLz:1␤␤»
19:21 pippo m: $_ = "abc"; $_ ~~ tr/abc//; .say
19:21 camelia rakudo-moar 79b68b: OUTPUT«␤»
19:21 pippo psch: TY!
19:22 * psch wonders if we want TR/// to mirror s/// and S///...
19:22 Sqirrel joined #perl6
19:23 abaugher joined #perl6
19:23 azawawi https://github.com/azawawi/DBIish/blob/master/examples/pg.p6  # not working on windows because of libpq.dll needing a path change...
19:24 Skarsnik azawawi, try putting that before the use?
19:26 abaugher joined #perl6
19:26 azawawi same thing
19:26 dalek evalbot: 676118c | TimToady++ | evalbot.pl:
19:26 dalek evalbot: try to not crash on exec failure
19:26 dalek evalbot: review: https://github.com/perl6/evalbot/commit/676118c975
19:27 lucs Question: http://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...
19:27 hoelzro awwaiid: I don't know much about DLL loading on Windows, but does the casing matter? Path vs PATH?
19:27 azawawi hoelzro: it is azawawi :)
19:28 hoelzro oops, sorry!
19:28 azawawi hoelzro: yes case does matter :)
19:28 camelia joined #perl6
19:28 Skarsnik azawawi, does DBI load Pg.pm or it's only done at the create call ?
19:28 TimToady nqp: say(42)
19:28 azawawi Skarsnik: Pg is loaded at connect
19:28 Skarsnik Ok that weird then
19:29 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 camelia ..nqp-moarvm: OUTPUT«42␤»
19:29 camelia ..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␤»
19:29 TimToady \o/
19:29 Skarsnik hm, maybe setting %*ENV does not do a setenv?
19:30 hoelzro it should
19:30 TimToady lovely word, "should"
19:30 hoelzro =)
19:31 moritz iirc it doesn't
19:31 hoelzro it does on my Linux box
19:32 hoelzro hmm
19:32 hoelzro maybe not, actually
19:33 hoelzro my test was poorly chosen, it seems
19:33 hoelzro %*ENV<FOO> = 17; run('env') outputs FOO in the child
19:33 azawawi Did some logging: Changed Path  -> install_driver( Pg ) -> Loaded Pg!
19:33 hoelzro but looking at /proc/self/environ after changing %*ENV doesn't show FOO
19:33 Skarsnik hm nativecall has stuff for c++, I wonder how far that work
19:33 azawawi so basically set env is not picked up or cached somewhere
19:34 hoelzro Skarsnik: it works for a suprising amount
19:35 Skarsnik It can export c++ class?
19:35 Skarsnik or it just C compiled as c++ x)
19:35 hoelzro FROGGS++ included some good examples in the test suite
19:36 hoelzro you can use it to create and call methods on C++ objects
19:37 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
19:37 * azawawi smells weird magic
19:38 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
19:38 hoelzro but I don't think modifying a key under %*ENV actually modifies the current process' env, as moritz said
19:38 timotimo because we can safely pass a new environment on exec
19:38 timotimo you can still use setenv via nativecall
19:38 jdv79 so a BUILD in a role is broken on purpose or just bug or NYI?
19:38 * azawawi tests the child env theory
19:38 hoelzro timotimo: is it unsafe to modify the current process' env?
19:38 jdv79 says it can't touch the attr:(
19:39 azawawi yup, we dont change our own process environment
19:40 azawawi i created a init.p6 which did changed the env and then shell('perl6 test.p6')... worked like a charm
19:41 ZoffixW joined #perl6
19:41 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
19:41 hoelzro I'm kind of surpised that %*ENV isn't a friendly wrapper around getenv/setenv
19:41 ZoffixW lucs, why is the output expected to be 'quzY'?
19:41 ZoffixW lucs, where is that value coming from?
19:41 timotimo azawawi: sub setenv is native(Str)
19:42 lucs ZoffixW: It's about the last line in the code: Foo.new(23).show_quz();
19:42 dalek roast: 53e1022 | usev6++ | S32-str/sprintf.t:
19:42 dalek roast: Move tests for RT #116280 to existing block
19:42 dalek roast:
19:42 dalek roast: Also make tests a bit more varied and unfudge for rakudo.jvm
19:42 dalek roast: review: https://github.com/perl6/roast/commit/53e1022caf
19:42 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=116280
19:42 lucs ZoffixW: D'oh! Sorry, I see what you mean.
19:43 lucs ZoffixW: I've been abstracting away at the code, but I went a bit too far here :)
19:43 lucs ZoffixW: The new() in the FooY class would set the quz to 'quzY' was the intention.
19:44 Ven_ joined #perl6
19:45 nowan joined #perl6
19:45 Skarsnik azawawi, _putenv on win32
19:45 ZoffixW lucs, in its new {} add return self.bless(:quz('quzY'));
19:46 ZoffixW lucs, http://fpaste.scsys.co.uk/501320
19:46 Skarsnik azawawi, like this _puvtenv("VAR=value");
19:46 lucs ZoffixW: Gotcha. Thanks!
19:46 mr_ron joined #perl6
19:47 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 #perl6
19:49 dha joined #perl6
19:49 TimToady jferrero: needs a 'my' in front
19:50 jferrero m: my %x = (a => 1, b => 2); say "{%x}"
19:50 camelia rakudo-moar 79b68b: OUTPUT«a    1 b     2␤»
19:50 jferrero :)
19:50 geraud joined #perl6
19:52 jferrero I'm reading "Using Perl", and page 11 say that Hashes are interpolated with newlines, not spaces.
19:54 TimToady looks like a bug to me; the specs also say newline
19:54 dalek ecosystem: 6f504e5 | cygx++ | META.list:
19:54 dalek ecosystem: Add Image::RGBA::Text
19:54 dalek ecosystem:
19:54 dalek ecosystem: For those of us who prefer to use the text editor for image manipulation.
19:54 dalek ecosystem:
19:54 dalek ecosystem: cf https://github.com/cygx/p6-image-rgba-text
19:54 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/6f504e5435
19:55 Ven__ joined #perl6
19:55 Hotkeys heyo my major and one of my hobbies comes together
19:55 Hotkeys talking about metaphors and teacher used a yoyo in an example
19:56 Hotkeys http://i.imgur.com/ThE1YaD.png
19:57 azawawi fixed on windows finally .... https://github.com/azawawi/DBIish/blob/master/examples/pg.p6   # weird magic but it works :)
19:57 azawawi #perl6 ++
19:58 hoelzro azawawi++
19:59 flussence azawawi++ # keeping DBIish in good shape
20:00 dalek DBIish: 497e727 | azawawi++ | examples/pg.p6:
20:00 dalek DBIish: Update example with code to modify the Path... not working though for some weird reason
20:00 dalek DBIish: review: https://github.com/perl6/DBIish/commit/497e727922
20:00 dalek DBIish: 599e1dd | azawawi++ | examples/pg.p6:
20:00 dalek DBIish: Set our own process environment since %*ENV<Path> is only working on child processes
20:00 dalek DBIish: review: https://github.com/perl6/DBIish/commit/599e1dd51b
20:00 dalek DBIish: 80a65b1 | azawawi++ | examples/pg.p6:
20:00 dalek DBIish: Add back missing code
20:00 dalek DBIish: review: https://github.com/perl6/DBIish/commit/80a65b1814
20:00 dalek DBIish: 3d8467d | azawawi++ | examples/pg.p6:
20:00 dalek DBIish: Merge pull request #27 from azawawi/master
20:00 dalek DBIish:
20:00 dalek DBIish: libpq.dll on windows depends on libeay32.dll
20:00 Skarsnik I think it should probably be something in nativecall like %*Native<PATH> x)
20:00 dalek DBIish: review: https://github.com/perl6/DBIish/commit/3d8467d47d
20:01 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 #perl6
20:02 cygx azawawi: I suspect https://github.com/MoarVM/MoarVM/issues/214 is to blame here
20:03 azawawi as an ex-visual c++-er, i agree :)
20:05 CIAvash`` left #perl6
20:06 azawawi cygx: left a comment. thanks :)
20:07 azawawi so now sqlite, postgresql and mysql are working on linux and windows... Enjoy :)
20:08 ZoffixW azawawi++
20:09 dalek specs: 366d8ad | TimToady++ | S02-bits.pod:
20:09 dalek specs: pairs of hash should be separated by newline
20:09 dalek specs: review: https://github.com/perl6/specs/commit/366d8ad326
20:10 cygx azawawi++ indeed for doing something useful - me, on the other hand, I'm just generating pictures of camelia ( https://github.com/cygx/p6-image-png-inflated/blob/master/camelia.p6 )
20:10 diana_olhovik joined #perl6
20:15 Ven_ joined #perl6
20:16 ZoffixW :o
20:17 kjs_ joined #perl6
20:17 Skarsnik hm is there a nice way to test a .travis.yml? instead of making lot of commit?
20:18 hoelzro Skarsnik: I make commits and push them to a branch
20:18 hoelzro that way, you don't need to clutter up history when you've figured it out
20:20 Skarsnik let find what obscure git command I need to learn for that x)
20:22 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:24 xpen joined #perl6
20:24 ZoffixW Right, there's this: https://github.com/perl6/doc/issues/158
20:24 hoelzro Skarsnik: just git push origin HEAD:travis-test-commits
20:24 hoelzro and then clean up the branch after you're done
20:24 dha I also note the phrase '"item" variables' in there. There does not seem to be any indication of what that means anywhere.
20:24 hoelzro let me know if you need help
20:24 dalek rakudo/nom: 459bc52 | TimToady++ | src/core/Map.pm:
20:24 dalek rakudo/nom: use newlines between Hash.Str pairs, as specced
20:24 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/459bc52eea
20:24 dalek roast: 2147419 | TimToady++ | S02-literals/hash-interpolation.t:
20:24 dalek roast: tests to make sure Hash.Str uses \n separator
20:24 dalek roast:
20:24 dalek roast: (and also that the pairs are sorted before interpolation)
20:24 dalek roast: review: https://github.com/perl6/roast/commit/2147419c75
20:24 dalek roast: ddc7e62 | TimToady++ | integration/advent2014-day13.t:
20:24 dalek roast: more tests of \n in Map.Str
20:24 dalek roast: review: https://github.com/perl6/roast/commit/ddc7e624cb
20:24 ZoffixW hum
20:25 TimToady jferrero++ for reporting a bug
20:25 ZoffixW dha, seems like original grouping title was later undone :) https://github.com/perl6/doc/commit/542b373bd835422c2a28bc6d95957f62eb5aa98b
20:25 Skarsnik hoelzro, I did git branch travis, it's not right?
20:26 dha ZoffixW - well, then... I'm not sure what to make of that.
20:27 ZoffixW Never fear! Zoffix will take care of it!
20:27 dha Yay!
20:28 azawawi https://travis-ci.org/perl6/DBIish/builds/90597841 # waiting for results :)
20:29 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␤»
20:29 dha So, is there a reason that the section on the Scalar sigil refers to '"item" variables"' rather than '"scalar" variables'
20:29 dha ?
20:29 hoelzro Skarsnik: you probably want git checkout -b travis
20:29 dalek doc: cb54df6 | (Zoffix Znet)++ | doc/Language/5to6-nutshell.pod:
20:29 dalek doc: Revert to terser title to maintain grouping
20:29 dalek doc:
20:29 dalek doc: 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
20:29 dalek doc: review: https://github.com/perl6/doc/commit/cb54df6a3f
20:29 hoelzro git branch travis switches to the travis branch if it already exists
20:29 azawawi so DBIish is now missing mainly slow Oracle, MSSQL (which was sybase), and ...?
20:30 Peter_R joined #perl6
20:30 ZoffixW CSV! :)
20:30 dalek roast: 38931b2 | usev6++ | S05-metasyntax/longest-alternative.t:
20:30 dalek roast: Add test (fudged 'todo') for RT #122951
20:30 dalek roast: review: https://github.com/perl6/roast/commit/38931b20b4
20:30 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=122951
20:31 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{}"
20:31 camelia rakudo-moar 459bc5: OUTPUT«a    1␤b     2␤a     1␤b     2␤»
20:31 azawawi CSV is a database? :)
20:31 TimToady zengargoylew: ^^
20:31 ZoffixW hahaha :)
20:32 RabidGravy azawawi, Informix, DB2, Firebird ..... ;-)
20:32 TimToady and jferrero: ^^
20:32 * azawawi DB2 my nemesis... recalls an old project he did
20:33 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.
20:33 hoelzro git push origin travis:travis
20:33 hoelzro Skarsnik: ^
20:34 RabidGravy I'm working on an Xbase thing just for shits and giggles
20:34 raiph joined #perl6
20:34 zengargoylew but it's moot, if you want something specific you can do it yourself.
20:35 zengargoylew that would make me think @ interpolation would also have nl
20:36 Skarsnik thx for the git help ^^
20:36 hoelzro np! gotta start pulling my weight =)
20:37 dalek DBIish: c8c8b2e | azawawi++ | README.pod:
20:37 dalek DBIish: Add Travis CI to README.pod
20:37 dalek DBIish: review: https://github.com/perl6/DBIish/commit/c8c8b2e195
20:37 dalek DBIish: 9571736 | azawawi++ | lib/DBDish/Pg (4 files):
20:37 dalek DBIish: The last great refactor... native, statementhandle, connection to make it stuff more maintainable for the future
20:37 dalek DBIish: review: https://github.com/perl6/DBIish/commit/9571736053
20:37 dalek DBIish: e55f9b5 | azawawi++ | / (5 files):
20:37 dalek DBIish: Merge pull request #28 from azawawi/master
20:37 dalek DBIish:
20:37 dalek DBIish: Add Travis CI to readme and cut Pg into smaller maintainable pieces
20:37 dalek DBIish: review: https://github.com/perl6/DBIish/commit/e55f9b5c0a
20:39 Skarsnik damn I added on travis after making the push
20:40 hoelzro you added? what do you mean?
20:40 Skarsnik azawawi, if you are bored on Pg, add pg_array support x)
20:40 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
20:41 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
20:41 hoelzro ahhh
20:43 dha I think I may be seeing a bug in the code that builds the docs for doc.perl6.org
20:44 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:46 ZoffixW dha, looks correct to me. To render on separate lines, those three lines need to be indented
20:47 dha Oh? ok.
20:47 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 :)
20:48 ZoffixW dha, and the :e :d etc block above should likely also be indented to look nicer
20:48 AlexDaniel jnthn++ RT #125285
20:48 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=125285
20:48 zengargoylew and interpolating % becomes usefull only if it's by itself.
20:48 AlexDaniel jnthn: finally! Thank you very much!
20:48 zengargoylew or a particular single slice
20:48 dha ZoffixW - indeed. will do
20:49 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 #perl6
20:49 ZoffixW \o/
20:49 diana_olhovik joined #perl6
20:50 dalek doc: 813e2e1 | (David H. Adler)++ | doc/Language/5to6-perlfunc.pod:
20:50 dalek doc: Changed heading level of "Alphabetical Listing of Perl Functions" to an
20:50 dalek doc: appropriate level
20:50 dalek doc: review: https://github.com/perl6/doc/commit/813e2e1583
20:50 dalek doc: ea13a15 | (Zoffix Znet)++ | doc/Language/5to6-perlfunc.pod:
20:50 dalek doc: Merge pull request #193 from dha/master
20:50 dalek doc:
20:50 dalek doc: Changed heading level of "Alphabetical Listing of Perl Functions" to an
20:50 dalek doc: review: https://github.com/perl6/doc/commit/ea13a15f5c
20:51 dalek DBIish: 38427db | azawawi++ | .travis.yml:
20:51 dalek DBIish: Explicitly ask Travis CI to start mysql and postgresql. sqlite3 is not a service
20:51 dalek DBIish: review: https://github.com/perl6/DBIish/commit/38427db7c0
20:52 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:57 moritz and you typically don't want to interpolate hashes in any random order anyway
21:01 TEttinger joined #perl6
21:02 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?
21:02 hoelzro you can make one =)
21:02 zengargoylew git commit -a
21:02 zengargoylew skips the add
21:03 zengargoylew for things already tracked
21:03 moritz on the other hand, I like 'git add -p' to review my patches before committing
21:03 hoelzro (git add -p)++
21:04 dha zengargoylew - shouldn't that be -u?
21:04 hoelzro I love that command so much I have a short alias for it
21:04 zengargoylew isn't it add -u and commit -a
21:04 hoelzro that and git commit -v
21:04 dha oh, right. sorry, misread.
21:04 azawawi good night everyone... off to sleep :)
21:04 ZoffixW \o
21:05 hoelzro night azawawi
21:06 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
21:08 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
21:09 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:10 RabidGravy http://docs.travis-ci.com/user/caching/
21:10 dalek modules.perl6.org/mojo-app: 20564ba | (Zoffix Znet)++ | mojo-app/t/0 (7 files):
21:10 dalek modules.perl6.org/mojo-app: Added test suite for ::BuildStats model
21:10 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modules.perl6.org/commit/20564bac0c
21:10 zengargoylew btw, can i steal boilerplate from your modules' documentations
21:11 RabidGravy if that was addressed at me sure
21:11 RabidGravy :)
21:12 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.
21:13 ZoffixW dha, yeah, something like a "DocMap"
21:14 dha *nod*
21:14 dha I'd do it, but I'm not sure I'm qualified to do so.
21:16 Skarsnik does something get changed with nativecall union? I get an error on travis I don't have localy. (1-2 months old rakudo) https://travis-ci.org/Skarsnik/perl6-gumbo (I don't know if you can saw the build)
21:17 moritz fwiw http://doc.perl6.org/type/Parameter explains most of the signature-y stuff, though probably not the way a newcomer would appreciate
21:18 dha moritz - exactly.
21:19 dalek roast: 82d2713 | usev6++ | S05-match/capturing-contexts.t:
21:19 dalek roast: Add test for RT #116895, fudge for JVM
21:19 dalek roast: review: https://github.com/perl6/roast/commit/82d271359f
21:19 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=116895
21:20 zengargoylew off to commute
21:20 zengargoylew left #perl6
21:22 dalek roast: 1a3a3df | usev6++ | S05-match/capturing-contexts.t:
21:22 dalek roast: Fix test descriptions
21:22 dalek roast: review: https://github.com/perl6/roast/commit/1a3a3df6f7
21:25 abc joined #perl6
21:28 dha joined #perl6
21:32 Ven_ joined #perl6
21:34 colomon joined #perl6
21:39 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␤       …»
21:40 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␤      Ã¢â‚¬Â¦Ã‚»
21:41 PerlJam Skarsnik: $anything eq Nil  is a little strange
21:41 PerlJam Skarsnik: but, camelia is complaining because you don't have a ; after your closing } of the sub
21:41 Skarsnik m: sub foo(*%f) { say "set but no value" if %f<a>:exists and %f<AA> eq Any;}; foo(:AA);
21:41 camelia rakudo-moar 459bc5: ( no output )
21:41 Skarsnik oh right
21:42 Skarsnik m: sub foo(*%f) { say "set but no value" if %f<a>:exists and %f<AA> eq Nil;}; foo(:AA);
21:42 camelia rakudo-moar 459bc5: ( no output )
21:42 Skarsnik m: sub foo(*%f) { say %f<AA>;say "set but no value" if %f<a>:exists and %f<AA> eq Nil;}; foo(:AA);
21:42 camelia rakudo-moar 459bc5: OUTPUT«True␤»
21:43 Skarsnik Ah it set to a boolean in this case
21:43 Skarsnik m: sub foo(*%f) { say %f<AA>;say "set but no value" if %f<a>:exists and %f<AA> eq Nil;}; foo(:AA<1>);
21:43 camelia rakudo-moar 459bc5: OUTPUT«1␤»
21:44 PerlJam still weird that you're attempting string equality check against Nil
21:46 Skarsnik I was trying to figure how to know it just written :AA but not :AA<something>
21:47 PerlJam :AA and :!AA are the same as :AA(True) and :AA(False)
21:47 zakharyas joined #perl6
21:47 ifim joined #perl6
21:48 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:50 dalek modules.perl6.org/mojo-app: b4afae1 | (Zoffix Znet)++ | mojo-app/ (12 files):
21:50 dalek modules.perl6.org/mojo-app: ::BuildStats model now passes the test suite
21:50 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modules.perl6.org/commit/b4afae17a6
21:50 dalek doc: 601a8f0 | (David H. Adler)++ | doc/Language/5to6-perlfunc.pod:
21:50 * PerlJam had to do a double take ...
21:50 dalek doc: Indented examples in Filetest for better rendering
21:50 dalek doc: review: https://github.com/perl6/doc/commit/601a8f01b8
21:50 dalek doc: 3bff9ad | (David H. Adler)++ | doc/Language/5to6-perlfunc.pod:
21:50 dalek doc: More indentation for better web rendering
21:50 dalek doc: review: https://github.com/perl6/doc/commit/3bff9ad413
21:50 dalek doc: 241ab68 | (David H. Adler)++ | doc/Language/5to6-perlop.pod:
21:50 dalek doc: Added intenting for better web rendering to 5to6-perlop.pod
21:50 dalek doc: review: https://github.com/perl6/doc/commit/241ab68386
21:50 dalek doc: b9434b1 | (David H. Adler)++ | doc/Language/5to6-perlvar.pod:
21:50 dalek doc: Added intenting for better web rendering to 5to6-perlvar.pod
21:50 dalek doc: review: https://github.com/perl6/doc/commit/b9434b1c3d
21:50 dalek doc: 259d2ad | (Zoffix Znet)++ | doc/Language/5to6-perl (3 files):
21:50 dalek doc: Merge pull request #194 from dha/master
21:50 dalek doc:
21:50 dalek doc: Indentations for better web rendering
21:50 dalek doc: review: https://github.com/perl6/doc/commit/259d2ad107
21:50 PerlJam I thought someone had written Mojo in Perl6 already
21:51 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
21:52 hoelzro no, I think it's a few of the utility things
22:00 dalek modules.perl6.org/mojo-app: 439dc80 | (Zoffix Znet)++ | mojo-app/ (3 files):
22:00 dalek modules.perl6.org/mojo-app: Toss Package::Alias
22:00 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modules.perl6.org/commit/439dc807ab
22:09 kjs_ joined #perl6
22:13 grondilu m: say [&&] False xx *
22:13 camelia rakudo-moar 459bc5: OUTPUT«(timeout)»
22:14 grondilu [&&] is not short-circuiting?
22:15 psch i'd guess it reifies before it evaluates
22:16 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 grondilu no it just keeps on evaluating
22:16 grondilu which is kind of LTA
22:17 psch m: say [&&] False, { die }()
22:17 camelia rakudo-moar 459bc5: OUTPUT«Died␤  in block <unit> at /tmp/j_dRAg575T:1␤␤»
22:17 psch right
22:17 psch m: say False && { die }()
22:17 camelia rakudo-moar 459bc5: OUTPUT«False␤»
22:21 ilbelkyr joined #perl6
22:21 bbkr joined #perl6
22:22 dalek roast: cd2f270 | usev6++ | S05-capture/array-alias.t:
22:22 dalek roast: Add tests for RT #121061
22:22 dalek roast: review: https://github.com/perl6/roast/commit/cd2f27032f
22:22 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=121061
22:23 kjs_ joined #perl6
22:25 ilbelkyr joined #perl6
22:25 xpen joined #perl6
22:26 tardisx joined #perl6
22:31 sno joined #perl6
22:45 zengargoyle i'm going to blame p6doc for formatting =code sections as =para (not honoring formatting very well).
22:46 zengargoyle perl6 --doc Module seems to get it right.
22:48 hankache joined #perl6
22:49 kjs_ joined #perl6
22:55 colomon joined #perl6
22:56 donaldh joined #perl6
22:59 lizmat joined #perl6
23:00 * lizmat waves from FRA
23:00 * donaldh is seeing some weirdness with Capture
23:00 donaldh r: (1..*).Capture.perl.say
23:00 camelia rakudo-moar 459bc5: OUTPUT«\(:max(Inf), :min(1))␤»
23:00 camelia ..rakudo-jvm 459bc5: OUTPUT«java.lang.NullPointerException␤  in block <unit> at /tmp/tmpfile:1␤␤»
23:01 * donaldh was investigating the NPE on JVM but the Moar behaviour looks wrong too.
23:01 donaldh m: (1).Capture.perl.say
23:01 camelia rakudo-moar 459bc5: OUTPUT«\()␤»
23:01 donaldh (1, 2).Capture.perl.say
23:01 donaldh m: (1, 2).Capture.perl.say
23:01 camelia rakudo-moar 459bc5: OUTPUT«\(1, 2)␤»
23:01 kid51 joined #perl6
23:02 donaldh m: (1..*, 1..*).Capture.perl.say
23:02 camelia rakudo-moar 459bc5: OUTPUT«\(1..Inf, 1..Inf)␤»
23:02 diakopter m: (1,).Capture.perl.say
23:02 camelia rakudo-moar 459bc5: OUTPUT«\(1)␤»
23:02 donaldh So it's confusing a single item list for a named?
23:02 * diakopter doesn't know.. lizmat? ^
23:02 jdv79 lizmat: hi
23:03 lizmat diakopter jdv79 o/
23:03 lizmat I think it's falling back to Mu.Capture
23:04 lizmat and that attempts to create a hash of the attributes with a value
23:04 donaldh It looks like it's falling back to precedence parens?
23:04 lizmat m: (^10).Capture.perl.say
23:04 camelia rakudo-moar 459bc5: OUTPUT«\(:max(10), :min(0))␤»
23:05 donaldh (^10,).Capture.perl.say
23:05 lizmat now, oddly enough, that doesn't mention excludes-max
23:05 donaldh m: (^10,).Capture.perl.say
23:05 camelia rakudo-moar 459bc5: OUTPUT«\(^10)␤»
23:05 lizmat that falls back to List.Capture
23:06 lizmat ah, only the attributes that are marked public
23:07 dalek modules.perl6.org/mojo-app: 4103b34 | (Zoffix Znet)++ | mojo-app/ (10 files):
23:07 dalek modules.perl6.org/mojo-app: Entire test suite now passes
23:07 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modules.perl6.org/commit/4103b34088
23:07 lizmat so, code wise, it does what it is supposed to do
23:09 lizmat m: 42.Capture.perl.say
23:09 camelia rakudo-moar 459bc5: OUTPUT«\()␤»
23:10 lizmat the reason why that is, is that Int doesn't have any public attributes
23:10 diakopter m: Capture(Capture).perl.say
23:10 camelia rakudo-moar 459bc5: OUTPUT«Capture(Capture)␤»
23:10 lizmat donaldh: what were you trying to achieve?
23:11 donaldh lizmat, I was golfing the NPE on JVM.
23:12 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.
23:12 diakopter m: ('MAYBE')()
23:12 camelia rakudo-moar 459bc5: OUTPUT«Cannot find method 'CALL-ME'␤  in block <unit> at /tmp/R1tSN3L2yg:1␤␤»
23:12 polettix joined #perl6
23:13 lizmat donaldh: then I suggest at looking at method Capture in Mu.pm
23:13 polettix hello all :)
23:13 donaldh Yep. What is Mu.Capture intended to achieve? I.e. is it's behaviour desirable for something?
23:13 lizmat polettix o/
23:14 lizmat I have *no* idea
23:14 polettix I (re)started playing with Perl6 and it’s more and more amazing, thanks to everyone
23:15 timotimo glad to hear it!
23:15 AlexDaniel polettix: Yeah!
23:18 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:19 donaldh lizmat: I'm guessing that Mu.Capture does the right thing for classes.
23:20 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 lizmat m: my $h = { a => 42, b => 666 }; for $h { .say }
23:20 camelia rakudo-moar 459bc5: OUTPUT«a => 42, b => 666␤»
23:20 lizmat m: my %h = a => 42, b => 666; for %h { .say }
23:20 camelia rakudo-moar 459bc5: OUTPUT«a => 42␤b => 666␤»
23:21 lizmat m: my %h = a => 42, b => 666; for %h { .WHAT.say }
23:21 camelia rakudo-moar 459bc5: OUTPUT«(Pair)␤(Pair)␤»
23:21 lizmat m: my $h = { a => 42, b => 666 }; for $h { .WHAT.say }
23:21 camelia rakudo-moar 459bc5: OUTPUT«(Hash)␤»
23:21 lizmat polettix ^^^   reasons for selecting either a % or a $ for your hash
23:21 psch m: my $a = 1, 2; say $a.perl; my @a = 1, 2; say @a.perl # similarly
23:21 camelia rakudo-moar 459bc5: OUTPUT«WARNINGS:␤Useless use of constant integer 2 in sink context (line 1)␤1␤[1, 2]␤»
23:22 donaldh m: class Bob { has $.name; }; Bob.new.Capture.say
23:22 camelia rakudo-moar 459bc5: OUTPUT«\(:name(Any))␤»
23:22 lizmat m: class Bob { has $!name; method name { $!name } }; Bob.new.Capture.say
23:22 camelia rakudo-moar 459bc5: OUTPUT«\()␤»
23:23 Skarsnik polettix, to type thing you need @ and % :)
23:23 polettix m: my $h = { a => 42, b => 666 }; say $h{a};
23:23 camelia rakudo-moar 459bc5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/PIC5HZ8ZJG␤Undeclared routine:␤    a used at line 1␤␤»
23:24 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 #perl6
23:24 donaldh m: my $h = { a => 42, b => 666 }; say $h<a>
23:24 camelia rakudo-moar 459bc5: OUTPUT«42␤»
23:24 donaldh m: my $h = { a => 42, b => 666 }; say $h{'a'}
23:24 camelia rakudo-moar 459bc5: OUTPUT«42␤»
23:24 lizmat polettix: {a} is a P5ism, it's <a> in P6
23:25 polettix yes, just figured it out on the command line :)
23:26 polettix m: my $h = { a => 42, b => 666 }; say $h<a>;
23:26 camelia rakudo-moar 459bc5: OUTPUT«42␤»
23:26 donaldh lizmat: is that a P5ism that should be hinted in the error message?
23:26 polettix m: my %h = a => 42, b => 666; say %h<a>
23:26 camelia rakudo-moar 459bc5: OUTPUT«42␤»
23:26 lizmat not sure how you could, really
23:27 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
23:27 jdv79 wait.  where is shimmerfairy wanking on about p5?
23:28 lizmat .oO( wanking? )
23:29 jdv79 complaining
23:29 jdv79 maybe i used it too stretched
23:30 donaldh lizmat: yeah, I realized the impossibility of it just after I asked.
23:30 donaldh Still, the error message is LTA in that context.
23:31 lizmat agree, but this would require something like, but more complex, like lost quote tracking
23:33 Ido_ joined #perl6
23:34 Ido_ Hi, anyone here want to let me in on how to hel pdevelop perl6?
23:34 Guest23071 Hi, anyone here want to let me in on how to hel pdevelop perl6?
23:35 woolfy joined #perl6
23:35 woolfy left #perl6
23:37 * psch down-arrows the half-finished response...
23:37 AlexDaniel psch: why not send it anyway
23:40 psch well, it'd probably just a bad condensation of http://rakudo.org/how-to-help/ so it stays down-arrowed :P
23:42 Ven_ joined #perl6
23:44 idodod joined #perl6
23:44 idodod help
23:45 idodod Hi
23:45 idodod how can I get onboard to developing perl 6?
23:45 AlexDaniel hi
23:45 AlexDaniel psch: told ya!
23:45 idodod ?
23:45 AlexDaniel psch: well, now you can do it again :)
23:46 AlexDaniel idodod: well, it seems like psch was writing a full-blown response to you, but then you suddenly quit :)
23:46 psch idodod: http://rakudo.org/how-to-help/ is probably the most comprehensive intro for how you can help
23:46 idodod ok, thanks,  sorry psch
23:47 psch idodod: there's no need to apologize
23:47 AlexDaniel idodod: bug reporting is probably the easiest thing though!
23:47 AlexDaniel all you have to do is complain!
23:47 idodod :), but I wanna do some work
23:47 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
23:48 timotimo hoelzro recently made a little screencast about fixing bugs
23:48 AlexDaniel idodod: then fix bugs? :)
23:48 AlexDaniel timotimo: where can I see that?
23:48 timotimo i can't find it right now :(
23:48 timotimo as in: i tried searching for "hoelzro" on youtube and got nothing
23:49 timotimo oh!
23:49 timotimo https://www.youtube.com/watch?v=adUdmol7cLU
23:49 timotimo that's the video, idodod
23:49 jack_ joined #perl6
23:49 psch there's also https://github.com/perl6/perl6-most-wanted/blob/master/most-wanted/modules.md
23:50 * timotimo heads off to bed, now that i have new medicine
23:52 raiph idodod: fyi the description of the compiler hacking video timotimo linked says "I suggest you start going through the slides at https://docs.google...... first."
23:54 idodod raiph: thank you
23:55 raiph yw
23:55 skids joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo