»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by masak on 12 May 2015. |
|||
00:00
Psyche^_ joined
|
|||
RabidGravy | boom | 00:05 | |
right bed | |||
00:05
llfourn left
00:08
espadrine left
00:09
RabidGravy left
00:19
rindolf left
00:22
rindolf joined
00:27
tardisx left
00:28
Skarsnik left
|
|||
cygx | (quit | 00:28 | |
00:28
cygx left
00:43
isBEKaml joined
00:55
kid51 left
00:57
kid51 joined
01:00
tardisx joined
01:06
rindolf left
01:11
softmoth_ joined,
tardisx left
01:12
tardisx joined
01:21
tardisx left
01:22
tardisx joined
01:26
BenGoldberg joined
01:27
tardisx left
01:28
ShimmerFairy joined
01:29
tardisx joined,
Zoffix joined
01:31
tardisx left
01:32
tardisx joined
|
|||
zengargoyle | anybody have good examples of using LibraryMake / Find::Bundled | 01:33 | |
i can get my library build and put in blib/lib but can't get it to load w/o using LD_LIBRARY_PATH | |||
will the magic only work once installed? | 01:34 | ||
looks like it searches INC which should contain blib/lib | |||
01:37
Actualeyes joined
01:38
dayangkun_ joined
01:39
dayangkun_ left,
tardisx left,
dayangkun_ joined
01:40
dayangkun_ left
01:41
dayangkun_ joined
01:42
dayangkun_ left,
raoulvdberge left,
dayangkun_ joined
01:43
dayangkun_ left,
tardisx joined
01:44
dayangkun_ joined
01:45
dayangkun_ left,
dayangkun_ joined
01:46
dayangkun_ left
|
|||
zengargoyle | weird... p6doc LibraryMake gives me different docs than what's on github even after a `panda install LibraryMake` | 01:49 | |
it still has the old find-bundled vs the new Find::Bundled.find | 01:50 | ||
01:51
raiph joined
01:56
sprocket left
|
|||
zengargoyle | when i panda look LibraryMake, the README is utf16 | 01:56 | |
if i panda install . from the look directory and exit out, p6doc is still showing the old doc. | 01:58 | ||
01:59
tardisx left
|
|||
zengargoyle | and moar-nom/install/share/perl6/site/lib/LibraryMake.pm6 is still the old version | 01:59 | |
removing LibraryMake.pm and panda install still gets the old version. | 02:03 | ||
zengargoyle o/ | |||
02:04
perlawhirl left
02:05
diakopter joined
|
|||
raiph | hi zengargoyle, mebbe stackoverflow.com/a/27936867/1077672 is of interest re pod and $=data though it doesn't alter your point that it's hard to know what's implemented | 02:05 | |
hi diakopter | |||
'scool to see you appearing back on channel :) | 02:06 | ||
02:07
eliasr left
|
|||
zengargoyle | raiph: i did a $=pod.perl.say and the blocks are there, they're also a Paragraph type vs Code/Verbatim/Raw so the contents are mangled like Paragraphs | 02:08 | |
so, yeah, they're parsed but there's not a handler for them. i was thinking of trying to clone the =code handling stuff | 02:09 | ||
and tweak it to be more =data-ish | |||
or there seemed to be a Raw type thing for the =NotPod sections | 02:10 | ||
raiph | zengargoyle: er, =NotPod ? | 02:18 | |
zengargoyle | lowercase and UPPERCASE are sorta reserved. MixedCase is for 3rd party processors and i think the contents are left untouched. | 02:19 | |
well, maybe not, =Data still gets squished. | 02:22 | ||
just saw a Pod::something::Raw class that only had the attribute $.contents. assume it's used for unprocessed stuff. | 02:23 | ||
zengargoyle only took a quick look and known nothing about moar/rakudo internals. | 02:24 | ||
02:25
mr_ron left
|
|||
raiph | zengargoyle: Ah. "Blocks whose names contain at least one uppercase and one lowercase letter are assumed to be destined for specialized renderers or parser plug-ins" from S26 | 02:25 | |
zengargoyle | and i think a matching M<Module; $stuff for Module> like thing. | 02:27 | |
02:29
xpen joined
02:31
ifim joined
02:32
nys joined,
wbill joined
02:37
wbill left
|
|||
dalek | osystem: a4df334 | (David Warring)++ | META.list: Add Crypt::RC4 Perl 5 -> 6 Port of RC4 encryption. A simple encryption algorithm, that's still in common use (e.g. PDF) |
02:44 | |
BenGoldberg | This is probably a silly question, but does perl6 have anything like lisp's with-open-file, or like python's with? | ||
02:47
isBEKaml left
|
|||
grondilu | m: class V { has @.c handles <AT-POS> }; my $v = V.new(:c(^10)); $v[1] = pi; say $v | 02:48 | |
camelia | rakudo-moar 4422d8: OUTPUT«V.new(c => [0, 3.14159265358979e0, 2, 3, 4, 5, 6, 7, 8, 9])» | ||
grondilu | m: class V { has @.c handles <AT-POS> }; my $v = V.new(:c(^10)); $v[1,2] = pi, e; say $v | ||
camelia | rakudo-moar 4422d8: OUTPUT«V.new(c => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9])» | ||
grondilu | ^seems inconsistent to me | 02:49 | |
raiph | m: with "BenGoldBerg".IO { .spurt("foo\nbar\nbaz"); .slurp.say }; # not really even superficially close but uses a `with` keyword :) | 02:53 | |
camelia | rakudo-moar 4422d8: OUTPUT«foobarbaz» | ||
BenGoldberg | The most impostant part of python's 'with' is that the object's __exit__ method is called at the end of the block, regardless of whether the block finished normally or threw an exception. | 02:56 | |
So it's sort of like a finally clause to a try block. | 02:57 | ||
grondilu | m: loop (my ($i, $j) = 0, 0; $i < 3; ($i, $j) Z[+=] 1, 0.1) { say "$i $j"; if $++ > 10 { say "oops"; last } }; | ||
camelia | rakudo-moar 4422d8: OUTPUT«0 00 00 00 00 00 00 00 00 00 00 00 0oops» | ||
BenGoldberg is not attached to the name 'with', but wants a convenient way of automatically cleaning up open file handles, open databases, etc. | 02:58 | ||
grondilu | m: my ($a, $b) = 0 xx 2; ($a, $b) Z[+=] 1, 2; say "$a $b"; | ||
camelia | rakudo-moar 4422d8: OUTPUT«1 2» | ||
grondilu | Z[+=] does not work in a loop? | ||
grondilu was considering using Z[+=] for instance in rosettacode.org/wiki/Runge-Kutta#Perl_6 | 03:00 | ||
(but apparently that would not work) | 03:01 | ||
03:03
kid51 left
03:04
mr_ron joined
|
|||
lucs | I'd like to have a heredoc containing PostScript code, which uses curlies in its syntax, with interpolated closures, curlies also. Can the latter somehow use some other character? | 03:05 | |
03:06
tardisx joined,
Herby_ joined
|
|||
Herby_ | Hello! | 03:06 | |
03:07
kaare_ joined
|
|||
TimToady | grondilu: it is a bug, the nature of which you can show by adding a sink: | 03:09 | |
m: loop (my ($i, $j) = 0, 0; $i < 3; sink $i, $j Z[+=] 1, 0.1) { say "$i $j"; if $++ > 10 { say "oops"; last } }; | |||
camelia | rakudo-moar 4422d8: OUTPUT«0 01 0.12 0.2» | ||
grondilu | lucs: you heredoc is delimited by an arbitrary string. Just pick one that will not appear in your PostScript code. | ||
TimToady | the first and third clauses should be sunk; the middle one is, of course, evaluated as a boolean | ||
grondilu | first time I see this sink word | 03:10 | |
TimToady | you can also put the Z[+=] as the last statement | ||
yes, because it's generally applied on your behalf without you knowing it :) | 03:11 | ||
lucs | grondilu: Oh, it's not the heredoc delimiter that is the problem, it's the closure expression. For example: q:to'EoPS' ... 0 1 5 { /foo exch def /bar {$val *2} def ... } for ... EoPS | ||
Herby_ | I'm trying to write a small script for work. It parses a folder full of files, looking for certain strings. I'm running into a problem | 03:12 | |
lucs | (And that should have been q:to:c'EoPS' I suppose) | ||
grondilu | lucs: use qq: | ||
Herby_ | the file type is proprietary to a program, its a .vgr file ... A few files are causing my script to error out with: Malformed UTF-8 in block <unit> | ||
grondilu | qq:to 'EoPS' should interpolate | ||
lucs | grondilu: Won't the PS vs closure curlies get confused? | ||
grondilu | oh | 03:13 | |
yeah, my bad | |||
ifim | o/ | ||
grondilu | well that's tricky | ||
lucs | I was hoping for something like special closure curlies (some UTF-8 for example) | ||
ifim | what's the closest thing Perl 6 has to Python decorators? | ||
grondilu | lucs: good question | 03:14 | |
Herby_ | Any ideas on where I should start to figure this out? | ||
grondilu | I doubt there are. In q: there is no interpolation at all, no matter which curlies you try. | 03:15 | |
03:15
pippo joined
|
|||
grondilu | Herby_: if it's not utf8 and you don't know the encoding, open with :binary I suppose. | 03:16 | |
Herby_ | When I open the file in sublime, the troublesome character looks like an empty space. some detective work makes me believe it is: | ||
BenGoldberg | ifim, perl6 has macros. | ||
Herby_ | I can't say I'm smart enough to understand how to work with the binary | ||
03:17
cognominal joined
|
|||
pippo | Herby_: try different encodings enc=> 'latin-1'? | 03:17 | |
Herby_ | within the perl script? | 03:18 | |
pippo | yes. | ||
Herby_ | Could you show me how that would look? | ||
pippo | slurp 'filename', enc => 'latin-1'; | ||
Herby_ | you're a genius : ) | 03:19 | |
works like a champ, no errors | |||
pippo | Glad it helped. | ||
good night! | |||
03:20
pippo left
|
|||
Herby_ | by default, is enc => 'utf-8'? | 03:20 | |
grondilu | yes | ||
latin-1 was very common not so long ago, still is quite common. I should have guessed it as well. | |||
Herby_ | i've never been able to really understand how encoding / decoding works | 03:22 | |
should probably read up on it | |||
i'm trying to slowly convert some of my small work scripts from perl/python to perl 6 | |||
grondilu | yeah you may encounter some issues with encodings indeed. | ||
but being explicit with the encodings you use to read or write, you should be fine. | 03:24 | ||
another similar hassle is dealing with "\n" vs "\r\n" and stuff. Quite a pain sometimes. | 03:25 | ||
BenGoldberg | m: say "\r\n".ords | ||
camelia | rakudo-moar 4422d8: OUTPUT«(13 10)» | ||
Herby_ | right now I have the rakudo star 2015-9 installl | ||
BenGoldberg | m: say "\r\n".comb | ||
camelia | rakudo-moar 4422d8: OUTPUT«( | ||
Herby_ | when a new one comes out, is there a simple way to upgrade rakudo? | 03:26 | |
grondilu | Herby_: looks decently recent | ||
Herby_ | on windows that is | ||
grondilu | rakudobrew I suppose | ||
but using rakudo star should be fine | |||
Herby_ | hmm i'll have to research that | ||
BenGoldberg | m: say "\rtest" | ||
camelia | rakudo-moar 4422d8: OUTPUT« | ||
BenGoldberg | Does that look odd to anyone else? | 03:27 | |
grondilu | m: say "foo\rtest" | ||
camelia | rakudo-moar 4422d8: OUTPUT«foo | ||
BenGoldberg | I see that as, "rakudo-moar 4422d8: OUTPUT«foo" | 03:28 | |
grondilu | $ echo -n "foo\rbar" # echoes "bar" | ||
(which makes some sense) | 03:29 | ||
\r is the "go back to the left" command on a typewriter. | |||
(IIRC) | |||
so it discards everything that precedes \r and prints what follows | 03:30 | ||
thinking about it, it's a neat way to put secret messages in a string. | 03:31 | ||
m: say "secret\rHello".chars | 03:32 | ||
camelia | rakudo-moar 4422d8: OUTPUT«12» | ||
grondilu | m: say "secret\rHello" | ||
camelia | rakudo-moar 4422d8: OUTPUT«secret | ||
grondilu | Perl6 ruins the fun here | ||
TimToady | that's the bot's fault, I suspect | 03:34 | |
grondilu | oh, indeed: | ||
TimToady | works perfectly fine locally: | ||
> p6 'say "secret\rHello"' | |||
Hellot | |||
grondilu | $ perl6 -e 'say "foo\rbar";' | ||
bar | |||
Herby_ | I have a line that grabs all the text files in a folder, copied it from the perl 6 documentation. Could someone tell me how it works? my @files = "c:/iForms/live".IO.dir(test => /'.vgr' $/)>>.Str; | 03:35 | |
what does the >>.Str do at the end? | 03:36 | ||
grondilu | it stringify all the elements of the array | ||
TimToady | >> is a hyperoperator that distributes an operator over multiple elements | 03:37 | |
grondilu | @a».method means map *.method, @a | ||
unicode equivalent is » | |||
TimToady | grondilu: btw, your loop also works with ($i, $j) »+=« (1, 0.1) since hypers aren't lazy | 03:38 | |
grondilu | indeed | 03:39 | |
more parenthesis, though | 03:40 | ||
grondilu does not like parenthesis | |||
03:40
tardisx left
|
|||
dalek | osystem: 51fab76 | (David Warring)++ | META.list: blobo |
03:41 | |
03:41
tardisx joined
|
|||
grondilu | hum... is rosettacode.org/wiki/Runge-Kutta#Perl_6 broken? | 03:42 | |
TimToady | well, if you hate parens that much, you should realize you don't need them on the left of $i, $j Z[+=] 1, 0.1 :P | ||
hmm | 03:43 | ||
03:43
raiph left
|
|||
TimToady | m: my $i, my $j Z= 1,2; say "$i $j" | 03:43 | |
camelia | rakudo-moar 4422d8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/iG_6yGaOzZCannot zip with = because list assignment operators are too fiddlyat /tmp/iG_6yGaOzZ:1------> 3my $i, my $j Z=7⏏5 1,2; say "$i $j"» | ||
TimToady | aww | 03:44 | |
m: my $i, my $j Z+= 1,2; say "$i $j" | |||
camelia | rakudo-moar 4422d8: OUTPUT«1 2» | ||
TimToady | maybe we can relax the fiddliness of = a bit there | ||
hahainternet | saw the SF.pm talk | ||
thoroughly excellent | |||
TimToady | such that Z= becomes the equivalent of Python's list assignment | ||
TimToady bows | 03:45 | ||
hahainternet | thorough, succinct, decently in depth | ||
grondilu | m: my ($a, $b) = 0 xx 2; $a, $b Z[+=] 1, 2; say "$a $b"; | ||
camelia | rakudo-moar 4422d8: OUTPUT«1 2» | ||
hahainternet | i've got to find a way of writing more perl6 | ||
i have one question though, but it's more about implementation than anything else | |||
lets say i have a hash (it's actually in python and a dict) representing a simple heirarchy | 03:46 | ||
{ a => {}, b => {c => {}, d => {}} } | |||
and i want to concatenate the children to the parent, ie come out with 'a', 'bc', 'bd' | |||
a simple loop is obviously fine | 03:47 | ||
grondilu | m: say (5/1).narrow.WHAT; | ||
camelia | rakudo-moar 4422d8: OUTPUT«(Int)» | ||
hahainternet | but i expect there's some extremely fancy way to do this i'm unaware of | ||
and i liked your use of 'high falutin' TimToady :D | |||
03:47
raiph joined
|
|||
grondilu | m: say (0.9 + 0.1).narrow.WHAT; | 03:47 | |
camelia | rakudo-moar 4422d8: OUTPUT«(Rat)» | ||
grondilu | ^that breaks runge-kutta on RC | 03:48 | |
m: say (0.9 + 0.1).perl; | |||
camelia | rakudo-moar 4422d8: OUTPUT«1» | ||
grondilu | m: say (0.9 + 0.1).nude; | ||
camelia | rakudo-moar 4422d8: OUTPUT«(1 1)» | ||
grondilu | m: say (0.9 + 0.1).narrow ~~ Int; | ||
camelia | rakudo-moar 4422d8: OUTPUT«False» | ||
zengargoyle | m: my $x = 'foo'; my $s = q :x< « » > "stuff {with braces} and {«$x»} {could} be nice"; say $s; | ||
camelia | rakudo-moar 4422d8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/JyHg3Y6SWTTwo terms in a rowat /tmp/JyHg3Y6SWT:1------> 3my $x = 'foo'; my $s = q :x< « » >7⏏5 "stuff {with braces} and {«$x»} {could} expecting any of: infix infix …» | ||
TimToady | looks like a bug | ||
hahainternet: I'd have to think about it, something that takes snapshots of recursion paths left to right in a tree is not something that comes up too often | 03:49 | ||
zengargoyle | luks: is that sorta what you mean? | 03:50 | |
hahainternet | TimToady: it's actually recreating the django ORM simplified search names | ||
so if you have a foreign key 'a', which has a column 'b', the name is a__b | |||
zengargoyle | lucs: is that sorta what you mean? oops... | ||
hahainternet | it's a rather ugly method really, and speaks against python for succinctness | 03:51 | |
anyhow, it's essentially a recursive grep i think, but i don't know of the right idiom | |||
zengargoyle | m: my $x = 'foo'; my $s = q :c< « » > "stuff {with braces} and {«$x»} {could} be nice"; say $s; | 03:52 | |
camelia | rakudo-moar 4422d8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/FjfVu2TlMjTwo terms in a rowat /tmp/FjfVu2TlMj:1------> 3my $x = 'foo'; my $s = q :c< « » >7⏏5 "stuff {with braces} and {«$x»} {could} expecting any of: infix infix …» | ||
Herby_ | dumb question | 03:53 | |
TimToady | m: { a => {}, b => {c => {}, d => {}} }.deepmap: *.key.say | ||
camelia | ( no output ) | ||
TimToady | m: say { a => {}, b => {c => {}, d => {}} }.deepmap: *.key | ||
camelia | rakudo-moar 4422d8: OUTPUT«a => , b => c => , d => » | ||
Herby_ | where can I see the extra options available with slupr? | ||
TimToady | hmm | ||
Herby_ | slurp | ||
TimToady | m: say &slurp.signature | 03:54 | |
camelia | rakudo-moar 4422d8: OUTPUT«(| is raw)» | ||
Herby_ | how did pippo know I could do enc => 'latin-1'? | ||
hahainternet | TimToady: don't feel you have to give me an answer, it just struck me as a particularly ugly wart on python | ||
as the whole search__method stuff is a hack to begin with | |||
and now i'm hacking a recursive loop to hack around their hack | |||
zengargoyle | doc.perl6.org/routine/slurp | ||
hahainternet | in the one true language | 03:55 | |
hahainternet sniggers | |||
Herby_ | thanks zengar | ||
zengargoyle | Herby_: bookmark that and let us know if you can't find something. docs do need a bit of work but a lot of stuff is there somewhere. | 03:56 | |
lucs | zengargoyle: Yep, pretty much. Was your example supposed to work? | ||
zengargoyle | no, just my best guess as to how it could work. | 03:57 | |
lucs | Ah. | ||
zengargoyle | have q :capture take open/close parameter. | ||
i'm not sure how qq detects whether {} contains code.... you could maybe declare a function and interpolate &func() like | 03:59 | ||
03:59
ribasushi left
|
|||
zengargoyle | m: my $FOO = sub { 'hello' }; my $s = "{stuff} with {postscripty braces} but $FOO.()"; say $s; | 04:00 | |
camelia | rakudo-moar 4422d8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/y3SdAWGBFcUndeclared routines: braces used at line 1 postscripty used at line 1 stuff used at line 1» | ||
zengargoyle | well maybe not. | ||
:{ | |||
lucs | :) | ||
zengargoyle | m: my $FOO = sub { 'hello' }; my $s = q :s:f "{stuff} with {postscripty braces} but $FOO.()"; say $s; | 04:01 | |
camelia | rakudo-moar 4422d8: OUTPUT«{stuff} with {postscripty braces} but hello» | ||
Hotkeys | is there a nor operator | ||
lucs | Aha. | ||
Hotkeys | or a convenient way to to check if a list is all false | ||
or wait | |||
I want nand for that don't I | |||
TimToady | m: say True if 42 == none(1,2,3) | ||
camelia | rakudo-moar 4422d8: OUTPUT«True» | ||
04:01
stmuk joined
|
|||
zengargoyle | m: my $FOO = sub { 'hello' }; my $s = q :s:f "{stuff} with {postscripty braces} but $FOO()"; say $s; | 04:01 | |
camelia | rakudo-moar 4422d8: OUTPUT«{stuff} with {postscripty braces} but hello» | ||
Hotkeys | wait no | 04:02 | |
oh | |||
none | |||
forgot about that | |||
thanks TimToady | |||
04:02
kaare_ left
|
|||
zengargoyle still wants :capture<« »> | 04:02 | ||
lucs | m: my $FOO = sub ($x) { $x + 3 }; my $s = q :s:f "{stuff} with {postscripty braces} but $FOO.(39)"; say $s; | ||
camelia | rakudo-moar 4422d8: OUTPUT«{stuff} with {postscripty braces} but 42» | ||
zengargoyle | for no real reason | 04:03 | |
lucs | zengargoyle: What you showed me there is useful enough for me for now. | ||
Thanks. | |||
zengargoyle | cool | 04:04 | |
m: my $FOO = sub { 'hello' }; my $s = q :!c "{stuff} with {postscripty braces} but $FOO()"; say $s; | |||
camelia | rakudo-moar 4422d8: OUTPUT«{stuff} with {postscripty braces} but $FOO()» | ||
zengargoyle | m: my $FOO = sub { 'hello' }; my $s = q :!c:f "{stuff} with {postscripty braces} but $FOO()"; say $s; | 04:05 | |
camelia | rakudo-moar 4422d8: OUTPUT«{stuff} with {postscripty braces} but $FOO()» | ||
dalek | kudo/nom: dc246d9 | TimToady++ | src/Perl6/Actions.nqp: sink the 3rd loop arg |
||
zengargoyle | m: my $FOO = sub { 'hello' }; my $s = q :!c:s "{stuff} with {postscripty braces} but $FOO()"; say $s; | ||
camelia | rakudo-moar 4422d8: OUTPUT«{stuff} with {postscripty braces} but hello» | ||
TimToady | grondilu: fixed it for you, so you can use it in RC now :) | ||
04:09
AlexDaniel left,
ribasushi joined
|
|||
TimToady | m: loop (my ($i, $j) = 0, 0; $i < 3; $i, $j Z[+=] 1, 0.1) { say "$i $j"; if $++ > 10 { say "oops"; last } }; | 04:11 | |
camelia | rakudo-moar dc246d: OUTPUT«0 01 0.12 0.2» | ||
TimToady | there you go | ||
04:11
hartenfels left
04:12
sprocket joined
04:15
Herby_ left
04:16
finanalyst joined
|
|||
TimToady | grondilu: have a fix for the Rat problem as well, not to mention Z= will now work | 04:19 | |
dalek | kudo/nom: 0f5603d | TimToady++ | src/Perl6/Grammar.nqp: meta = should always be taken as item assignment |
04:24 | |
kudo/nom: ffc5dfd | TimToady++ | src/core/Rational.pm: must reduce before attempting to narrow |
|||
TimToady | we'll have to remove the tests that require meta-assignment to fail :) | ||
TimToady --> pick up diakopter at SFO & | 04:27 | ||
diakopter | heh | 04:29 | |
04:31
ifim left
04:34
sprocket left
|
|||
grondilu re-compiles and will update the aforementioned RC tasks | 04:38 | ||
04:48
mr_ron left
05:14
vendethiel joined
05:16
zengargoyle joined
05:18
BenGoldberg left
05:23
nys left
05:28
sno joined
|
|||
TimToady | m: say (0.9 + 0.1).narrow.WHAT | 05:28 | |
camelia | rakudo-moar ffc5df: OUTPUT«(Int)» | ||
05:31
[Sno] left
05:38
skids left
05:39
vendethiel left
05:41
finanalyst left
05:56
softmoth_ left
|
|||
TimToady | m: my $i, my $j Z= 1,2; say "$i $j" | 05:56 | |
camelia | rakudo-moar ffc5df: OUTPUT«1 2» | ||
TimToady | m: my $i, my $j [Z]= 1,2; say "$i $j" | 05:58 | |
camelia | rakudo-moar ffc5df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ct1vWlImA4Invalid typename 'Z' in parameter declaration.at /tmp/ct1vWlImA4:1------> 3my $i, my $j [Z7⏏5]= 1,2; say "$i $j"» | ||
TimToady | m: my $i, my $j; $i, $j [Z]= 1,2; say "$i $j" | 05:59 | |
camelia | rakudo-moar ffc5df: OUTPUT«WARNINGS:Useless use of variable $i in sink context (line 1)Use of uninitialized value $i of type Any in string contextAny of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/zpvgzp2ADF:1 » | ||
TimToady | that seems right, since assignops are item-assignment-y | 06:00 | |
m: 1 R= my $x; say $x | 06:02 | ||
camelia | rakudo-moar ffc5df: OUTPUT«1» | ||
06:04
dayangkun joined
06:07
d4l3k_ joined,
d4l3k_ is now known as dalek,
ChanServ sets mode: +v dalek
06:10
CIAvash joined
|
|||
dalek | ast: c4d0f91 | TimToady++ | S03-metaops/ (4 files): meta assign now works, fix tests that require fail |
06:15 | |
ast: e10bcfe | TimToady++ | S03-operators/fiddly.t: remove obsolete test file |
|||
kudo/nom: 3dc1a8d | TimToady++ | t/spectest.data: remove bogus test file |
06:16 | ||
06:38
travis-ci joined
|
|||
travis-ci | Rakudo build errored. TimToady 'remove bogus test file' | 06:38 | |
travis-ci.org/rakudo/rakudo/builds/90464693 github.com/rakudo/rakudo/compare/f...c1a8d91bfd | |||
06:38
travis-ci left
06:39
CIAvash left
06:40
telex left,
CIAvash joined
06:42
CIAvash left,
telex joined
06:43
tardisx left
06:45
khw left
|
|||
masak | morning, #perl6 | 06:58 | |
07:01
raiph left
|
|||
cognominal | morning | 07:03 | |
m: no strict; say %ENV; use strict; say %*ENV; say MY.WHO.perl ~~ m/\,<-[,]>*?ENV.*?\,/ | |||
camelia | rakudo-moar 3dc1a8: OUTPUT«「,"\%ENV" => {},」» | ||
cognominal | should autovivification happens in no strict mode? this hides the global variable when back in strict mode | 07:05 | |
relevant documentation : github.com/perl6/specs/blame/maste....pod#L2815 | |||
s/happens/happen/ | 07:06 | ||
masak | don't really see what autovivification's got to do with it... | ||
cognominal | the variable is created in the MY scope so the variable by the same name in GLOBAL is hidden | 07:08 | |
masak | ok. | 07:09 | |
cognominal | m: no strict; say %ENV; use strict; say %*ENV; say MY.WHO.perl ~~ m/\,<(<-[,]>*?ENV.*?)>\,/ # without the pesky commas | ||
camelia | rakudo-moar 3dc1a8: OUTPUT«「"\%ENV" => {}」» | ||
masak | maybe I'm a bit weak on implementation here, but it feels to me that %*ENV and %ENV would be in completely different namespaces. | ||
cognominal | from the doc : When "strict" is in effect (which is the default except for one-liners), | 07:10 | |
2818non-qualified variables (such as C<$x> and C<@y>) are only looked up from | |||
2819lexical scopes, but never from package scopes. | |||
07:10
CIAvash joined
|
|||
cognominal | it implicitely means that in non strict mode we look from package scopes | 07:11 | |
07:12
diana_olhovik_ joined
|
|||
masak | I think I understand what you're saying, but I'm still confused. | 07:14 | |
the lookup for dynamic variables (those with a '*' in them) is completely different to ordinary lexical lookup. | 07:15 | ||
which is why the former fails at runtime and the latter at compile time. | |||
cognominal | I forgot to say what masak mentionned, that in non strict mode, %ENV does not get to %*ENV | ||
masak | "does not get to"? unclear. | 07:16 | |
in my mind, they are completely distinct. does 'no strict' change that somehow? | 07:17 | ||
cognominal | forget my last sentence. | 07:18 | |
masak: that's what is implied by the doc snippet I pasted. | 07:19 | ||
masak | forgive me for saying so, but such a feature seems entirely orthogonal to the core use of 'no strict'. | 07:20 | |
either that, or I still don't understand the whole context. | |||
why would 'no strict' muddle together lexical and dynamic? | 07:21 | ||
and... how could that possible work? | |||
possibly* | |||
cognominal | I now agree. I confuse with Perl 5 semantic | 07:22 | |
Anyway, the %*ENV is hidden by the MY::<%ENV>. That's no good. | 07:24 | ||
masak | agree. | 07:25 | |
cognominal | if you do it explicitely, ok. But the autovivification is plain weird. | 07:26 | |
masak | as far as the autovivification goes, that seems OK and in line with 'no strict' | 07:27 | |
it's the hiding that's weird. | |||
[Tux] | test 50000 23.242 23.127 | ||
test-t 50000 19.106 18.991 | |||
masak | mornin', [Tux] | 07:29 | |
cognominal | masak, nope, %*ENV, if not hidden is %GLOBAL::ENV, not GLOBAL::%*ENV | ||
[Tux] | o/ | ||
cognominal | or is that %PROCESS::ENV? not sure. | ||
* not GLOBAL::<%*ENV> # sorry | 07:30 | ||
there are many things going there. Easy to get confused :( | 07:31 | ||
masak | yeah | 07:32 | |
m: no strict; say %AAA; use strict; say %*AAA | |||
camelia | rakudo-moar 3dc1a8: OUTPUT«» | ||
cognominal | Also, "Dynamic variable creation | 07:33 | |
It is illegal to assign or bind a dynamic variable that does not already | |||
exist. It will not be created in C<GLOBAL> (or C<PROCESS>) automatically, | |||
nor is it created in any lexical scope." | |||
07:38
RabidGravy joined
|
|||
masak | yeah. | 07:39 | |
except that it's %ENV that gets created in MY, not %*ENV | 07:40 | ||
07:40
tardisx joined
|
|||
cognominal | m: say %*AA.WHAT | 07:43 | |
camelia | rakudo-moar 3dc1a8: OUTPUT«(Failure)» | ||
cognominal | good | ||
m: say %*AA.perl | 07:44 | ||
camelia | rakudo-moar 3dc1a8: OUTPUT«Failure.new(exception => X::Dynamic::NotFound.new(name => "\%*AA"), backtrace => Backtrace.new)» | ||
07:46
zacts joined
|
|||
cognominal | m: say MY.WHO.keys | 07:49 | |
camelia | rakudo-moar 3dc1a8: OUTPUT«($=pod !UNIT_MARKER EXPORT $_ $! ::?PACKAGE GLOBALish $¢ $=finish @?INC $/ $?PACKAGE)» | ||
cognominal | m: { say MY.WHO.keys } | ||
camelia | rakudo-moar 3dc1a8: OUTPUT«($_ $*DISPATCHER)» | ||
07:50
sno left
07:53
darutoko joined
|
|||
cognominal | m: sub a { say MY.WHO.keys }; a | 07:55 | |
camelia | rakudo-moar 3dc1a8: OUTPUT«($_ $! $*DISPATCHER RETURN $¢ $/)» | ||
07:56
tardisx left
07:57
tardisx joined
|
|||
cognominal | my: sub a { say MY::WAAT.WHO }; a | 07:58 | |
oops | |||
08:02
tardisx left
08:10
sftp joined
08:12
ely-se joined
08:18
azawawi joined
|
|||
azawawi | good morning | 08:18 | |
github.com/atom/language-perl/pull/56/files # Better highlighting of Perl 6 identifiers in Atom editor PR got merged :) | 08:19 | ||
tadzik: ping | 08:20 | ||
panda and zef build status on windows are still broken | 08:22 | ||
azawawi starts working on them | |||
RabidGravy | marning! | 08:32 | |
08:35
eliasr joined
08:36
zakharyas joined
08:39
Fleurety joined,
ywpg joined,
ywpg left
|
|||
azawawi | RabidGravy: :) | 08:40 | |
cognominal | azawawi++ atom++ | ||
azawawi | atom is an editor :) | 08:42 | |
anyone here on windows? | 08:43 | ||
masak | Windows, the '90s DOS windowing environment? | 08:44 | |
cognominal | azawawi, I know, atom is the new emacs : Eradication of Memory Accomplished with Complete Simplicity | 08:45 | |
otherwise excellent | |||
or we could "Eight Megabytes And Constantly Swapping" ~~ s/Mega/Giga/ | 08:46 | ||
08:48
sno joined
|
|||
azawawi | cognominal: the best argument to using atom is that it works out of the box in windows and linux (for me at least) | 08:51 | |
cognominal: and has great packages | |||
ugexe: ping | 08:53 | ||
cognominal: the funny thing padre had the same functionality as atom but was not polished enough :) | 08:55 | ||
cognominal: we were faster also with less memory | |||
cognominal: but stability in core & plugins were our Achilles heel | 08:56 | ||
08:58
domidumont joined
09:03
domidumont left,
domidumont joined
|
|||
azawawi | .tell ugexe please see github.com/ugexe/zef/issues/71 | 09:06 | |
yoleaux | azawawi: I'll pass your message to ugexe. | ||
azawawi zef is working again on windows :) | |||
09:13
ely-se left
09:15
ely-se joined
|
|||
RabidGravy | I'm not going to "release" what I am currently doing until December 3 so that it will have taken exactly a year | 09:17 | |
DrForr | . o ( Anticip... ) | 09:18 | |
azawawi | a caveat I found on windows for all *nix people here, `cd $dir` should be on windows `cd /D $dir` because you need to change the drive also as the directory... go figure :) | 09:19 | |
DrForr | ation. | ||
masak | DrForr++ # Rocky Horror reference | 09:21 | |
DrForr | You've heard about the epic Twitter one, I assume. | 09:22 | |
azawawi | link it :) | ||
masak | DrForr: have not, no. | ||
RabidGravy | the fact that I started it in Perl 5 for a completely different project and then decided it would take too long so shelved it is by the by | ||
DrForr | The guy that owns @FrankNFurter posted "I see you shiver with antici..." back in 2010 or so. | 09:23 | |
Nothing was heard from the account again until the last few months, just one word.. 'pation.' Well played, sir. | |||
09:24
dakkar joined
|
|||
masak | ;) | 09:24 | |
09:25
Begi1119 joined
|
|||
azawawi | :) | 09:26 | |
09:29
zakharyas left
09:35
mr-foobar left,
mr-foobar joined
09:44
dayangkun left
09:47
dayangkun joined
09:48
stmuk_ joined
09:50
stmuk left
09:51
gfldex left
|
|||
cognominal | awawawi: coffeescript as an extension language is nicer than elisp. I wish I could use Perl 6 so. | 10:00 | |
mrf | morning #perl6 | 10:06 | |
10:06
vendethiel joined
|
|||
mrf | .tell ugexe Ok I will investigate replacing some of the | with || (Though some of them specifically should be |) and see if that helps. | 10:06 | |
yoleaux | mrf: I'll pass your message to ugexe. | ||
10:09
g4 joined
10:15
vike joined
|
|||
cognominal | A discrepancy between the implementation and the spec : | 10:19 | |
m: say MY::<$_>.readonly | |||
camelia | rakudo-moar 3dc1a8: OUTPUT«Method 'readonly' not found for invocant of class 'Any' in block <unit> at /tmp/yriKXzbOqj:1» | ||
cognominal | m: say MY::<$_>.VAR.readonly | ||
camelia | rakudo-moar 3dc1a8: OUTPUT«Method 'readonly' not found for invocant of class 'Any' in block <unit> at /tmp/J6ciQriUZ3:1» | ||
cognominal | m: say $_.VAR.readonly | 10:20 | |
camelia | rakudo-moar 3dc1a8: OUTPUT«Method 'readonly' not found for invocant of class 'Any' in block <unit> at /tmp/mLt8mUAccG:1» | ||
cognominal | "You can also get at the container through the appropriate symbol table: | ||
if MY::<$scalar>.readonly {...}" | |||
10:20
TEttinger left
|
|||
cognominal | m: say $_.VAR.WHAT | 10:21 | |
camelia | rakudo-moar 3dc1a8: OUTPUT«(Scalar)» | ||
cognominal | m: say MY::<$_>.WHAT | ||
camelia | rakudo-moar 3dc1a8: OUTPUT«(Any)» | ||
RabidGravy | m: $_ = "aa"; say MY::<$_>.readonly | 10:22 | |
camelia | rakudo-moar 3dc1a8: OUTPUT«Method 'readonly' not found for invocant of class 'Str' in block <unit> at /tmp/ewkaDoXmYr:1» | ||
10:27
Begi11110 joined
10:28
brrt joined
10:29
Begi1119 left
|
|||
moritz | m: $_ = "aa"; say $_.VAR.readonly | 10:31 | |
camelia | rakudo-moar 3dc1a8: OUTPUT«Method 'readonly' not found for invocant of class 'Str' in block <unit> at /tmp/TpaJliaRVt:1» | ||
moritz | m: say Scalar.^methods(:local) | ||
camelia | rakudo-moar 3dc1a8: OUTPUT«(<anon> <anon> name of default dynamic WHICH)» | ||
moritz | m: my Int $x = 42; say $x.VAR.of | 10:32 | |
camelia | rakudo-moar 3dc1a8: OUTPUT«(Int)» | ||
cognominal | m: say $x.VAR.methods | 10:35 | |
camelia | rakudo-moar 3dc1a8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/nq6IgthYBuVariable '$x' is not declaredat /tmp/nq6IgthYBu:1------> 3say 7⏏5$x.VAR.methods» | ||
cognominal | m: my $x; say $x.VAR.methods | ||
camelia | rakudo-moar 3dc1a8: OUTPUT«Method 'methods' not found for invocant of class 'Any' in block <unit> at /tmp/oh0B1N2N25:1» | ||
cognominal | m: my $x; say $x.VAR.^methods | 10:36 | |
camelia | rakudo-moar 3dc1a8: OUTPUT«(<anon> <anon> name of default dynamic WHICH)» | ||
azawawi is testing modified dbiish on windows :) | 10:38 | ||
jnthn | morning, #perl6 | 10:41 | |
10:42
doublec_ joined
|
|||
RabidGravy | marnin | 10:42 | |
jnthn | m: use strict; say %ENV; no strict; say %*ENV | ||
camelia | rakudo-moar 3dc1a8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ymvZfEeFYqVariable '%ENV' is not declaredat /tmp/ymvZfEeFYq:1------> 3use strict; say 7⏏5%ENV; no strict; say %*ENV» | ||
jnthn | oops | ||
m: no strict; say %ENV; use strict; say %*ENV | |||
camelia | rakudo-moar 3dc1a8: OUTPUT«» | ||
jnthn | m: say GLOBAL::.keys | 10:43 | |
camelia | rakudo-moar 3dc1a8: OUTPUT«()» | ||
jnthn | d'oh | ||
m: no strict; say %ENV; say GLOBAL::.keys | |||
camelia | rakudo-moar 3dc1a8: OUTPUT«(%ENV)» | ||
jnthn | So, you start out in the GLOBAL package. %ENV is auto-declared in the current package. And we look in GLOBAL as a fallback for dynamics, stripping the * out | ||
10:45
[Tux] joined
|
|||
cognominal | jnthn: agreed. But why the autovivification in my example? | 10:46 | |
jnthn | What autovivification? | 10:47 | |
Under no strict, variables you use are magically declared. That's not auto-viv. | |||
cognominal | ok, so I use the wrong word. | 10:48 | |
10:48
doublec_ left
|
|||
cognominal | I still feel it is wrong to autodeclare a variable when reading it. | 10:48 | |
jnthn | Well, more than that; if it was auto-viv then you'd expect a read not to do anything | 10:49 | |
Well, that's what no strict in Perl 6 does. | |||
10:49
doublec joined
|
|||
cognominal | I would expect to do that only when writing. Wrong expectation, apparently | 10:50 | |
jnthn++ for clarifying | |||
10:52
mr-foobar left
|
|||
cognominal | The word autovivif* is used a lot in the spec. Not sure it is defined anywhere. | 10:53 | |
pink_mist | jnthn: in perl5, autoviv can happen when you read a sub-key/index ... so "if ($foo->{bar}->{baz}) <-- this could autoviv $foo->{bar} | ||
cognominal | en.wikipedia.org/wiki/Autovivification | 10:54 | |
10:55
doublec left,
doublec joined
|
|||
azawawi | how can i re-import a module symbols that has been inside another module im use-ing? :) | 10:56 | |
s/has been/has been used/ | |||
jnthn | pink_mist: Yes, that case is fixed in Perl 6 :) | 11:00 | |
11:00
doublec left
|
|||
jnthn | pink_mist: We just don't treat "no strict" as autoviv semantics, but rather auto-declare. | 11:00 | |
RabidGravy | azawawi, I was thinking about the self same thing the other day and didn't come to a satisfactory conclusion | 11:03 | |
11:04
zakharyas joined
|
|||
azawawi | RabidGravy: the thing is 'use NativeCall;' is used inside ::SQLite and i want to re-use it instead of adding a 'use NativeCall' to all sub classes (i.e. Connection, and StatementHandle) | 11:05 | |
arnsholt | Wait, you want the NativeCall stuff to be available in other compilation units from a single use statement? | 11:06 | |
azawawi | arnsholt: yup | ||
11:07
doublec joined
|
|||
arnsholt | That's precisely the opposite of how Perl 6's modules work | 11:07 | |
11:07
dayangkun left
|
|||
arnsholt | What you can do is making your top-level module re-export the symbols you want | 11:07 | |
azawawi | arnsholt: atm DBIish SQLite is one single file that has 4 classes inside it | ||
arnsholt | Right. And you want to split it into several files? | 11:08 | |
11:08
doublec left
11:11
virtualsue joined
|
|||
azawawi | yup | 11:12 | |
11:12
doublec joined
|
|||
azawawi | re github.com/azawawi/DBIish/tree/mas...ish/SQLite | 11:12 | |
and github.com/azawawi/DBIish/blob/mas...SQLite.pm6 | |||
that is separate native module from OOP abstractions | 11:13 | ||
s/OOP/OO | |||
timotimo | o/ | ||
RabidGravy | right, off out now. Have fun. | 11:14 | |
azawawi got it :) | 11:15 | ||
jnthn | So, guess today is the day I fix the NFA engine issues... | ||
11:16
andreoss joined
|
|||
azawawi | arnsholt: much better github.com/azawawi/DBIish/blob/mas...SQLite.pm6 :) | 11:16 | |
arnsholt: and github.com/azawawi/DBIish/tree/mas...ish/SQLite | 11:17 | ||
11:17
doublec_ joined
|
|||
arnsholt | azawawi: FWIW, I'd just import NativeCall in all the modules that need to interact with NativeCall | 11:17 | |
It's less magical | |||
11:17
doublec left
|
|||
azawawi | arnsholt: DBDish::SQLite::Native can a role but then a lot of changes need to be made | 11:18 | |
arnsholt: like our-scoped enums etc | 11:19 | ||
11:19
RabidGravy left
|
|||
azawawi | im also adding environment variables for loading your own libs instead of hardcoded stuff (e.g. it is sqlite3.dll on windows, not libsqlite3.so) | 11:21 | |
arnsholt | Right, so the problem seems to be that the other modules need to import NativeCall to get some of the C data types | ||
I'd solve that by implementing slightly higher level Perl 6 interfaces in the ::Native module | |||
Then the rest of the code can interact with the ::Native API on purely Perl 6 terms | |||
11:22
doublec joined
|
|||
arnsholt | Heck, I'd even make all the is native subs not exported | 11:22 | |
11:22
doublec_ left
|
|||
timotimo | i've seen "my sub ... is native" put into classes multiple times in the past | 11:23 | |
that makes them very not exported | |||
arnsholt | Yeah | ||
IMO a successful native wrapper should work quite hard to not expose any kind of NativeCall stuff to the user | 11:24 | ||
timotimo | agreed | ||
azawawi | true | ||
arnsholt | 'Cause then you're probably going to have to deal with some aspect or other of non-managed code, and that's gonna suck | 11:25 | |
Probably with similar effects to what we've seen when people who are quite inexperienced with C try to use NativeCall to wrap a library | |||
It's very hard to do without pretty good knowledge of C | |||
azawawi | anyway sqlite is working now on windows... Horray :) | 11:26 | |
azawawi now to mysql | |||
arnsholt | Awesome! | ||
azawawi | typically anyone coming to DBI access wants to know to work with his database... | 11:27 | |
not generic instructions but specific instructions | |||
because he/she needs to interface to the database to actually work on other more important stuff | 11:28 | ||
as it stands github.com/perl6/DBIish/ is so generic... | |||
arnsholt | In terms of documentation, you mean? | ||
11:29
kaare_ joined
|
|||
azawawi | yup | 11:30 | |
arnsholt | Yeah, that's a problem we have at almost all levels | ||
Although the core language is getting pretty well documented on doc.perl6 | |||
azawawi | a big synopsis example is useful but not useful at the same time | ||
because people want to accomplish task x in cookbook style | 11:31 | ||
and we need to provide them how we do it in Perl 6 DBIish | |||
and DBIish name is not newbie friendly also | |||
11:33
Skarsnik joined
|
|||
timotimo | yeah, they'll not know what "DBI" is, and will get confused by the "ish" suffix | 11:33 | |
in my imagination | 11:34 | ||
azawawi | it is the same feeling i had when i first heard of zavolaj (aka NativeCall) | 11:35 | |
jnthn | We only call it NativeCall now :) | ||
Agree we could call DBIish something less confusing | 11:36 | ||
It's the best thing we have for DB access in Perl 6 so far. | |||
azawawi | i know. im just saying we need to update all our documentation before christmas release to be user friendly (and remove Parrot references) | ||
arnsholt | Agreed | 11:38 | |
I think the DBI name was left open since Tim Bunce was (is?) working on an improved DBI interface | |||
azawawi | then why not DB :) | 11:40 | |
jnthn | Yeah, I'm not really suggesting squatting the DBI name either | ||
DB is fine enough | |||
azawawi | use DB; | ||
jnthn | otoh | ||
DBIish having a DBI-like API is valuable for migrationy purposes | 11:41 | ||
Having a DB module that uses DBIish and wraps it in a 6-ier API may be a viable way to go | |||
lizmat | good *, #perl6! | 11:42 | |
azawawi | i see. so 'DB' uses DBIish and exposes simpler API for common tasks | ||
lizmat: hi :) | 11:43 | ||
lizmat | I think metacpan.org/pod/DBIx::Simple could be a form of inspiration ? | ||
jnthn | azawawi: I was thinking "more idiomatic" over "simpler" | 11:44 | |
azawawi | quick q, is there a way to pass values to a 'use'-ed module? | ||
jnthn | But yeah, the name DBI will likely only be meaningful to folks coming to Perl 6 from Perl 5, and that's just a subset. | ||
azawawi: Yes, you pass them after the module name, and then write an EXPORT sub in the module to receive them | 11:45 | ||
azawawi | jnthn: thx | 11:46 | |
azawawi starts reading doc.perl6.org/language/modules | 11:47 | ||
lizmat | azawawi: lib/lib.pm6 is a non typical example, but it shows the use of EXPORT | 11:48 | |
jnthn | My static vs dynamic talk has an example too | 11:50 | |
11:57
sufrostico joined
|
|||
lizmat | I will either be mostly offline the coming few days | 11:59 | |
or bored silly waiting for a flight at FRA and be online a lot | 12:00 | ||
preparing for commute& | |||
jnthn | lizmat: Safe travels | 12:01 | |
masak | yes, safe travels, lizmat | 12:07 | |
12:11
pmurias joined
|
|||
timotimo | that must be France Airport, right? | 12:16 | |
DrForr | Frankfurt IIRC. | ||
moritz | frankfurt, I believe :-) | ||
vendethiel | timotimo: frankfurt | ||
timotimo | :S | 12:17 | |
jnthn | .oO( France. It only has one airport. ;) ) |
12:21 | |
DrForr | Hey, I had to get in to Geneva... | 12:23 | |
Begi11110 | Any problem with France ? | ||
There is not enough Perl programmer... | 12:24 | ||
azawawi DBIish mysql is now working on my windows box :) | 12:25 | ||
DrForr | There was at least one more last week :) | ||
No *problem* with France here. | 12:27 | ||
azawawi is now working on making postgresql work on windows with DBIish | |||
timotimo | of course vendethiel had to defend france's amount of airports :) | ||
Zoffix | step 1: "get a better OS" :) | ||
Skarsnik | Hello there | 12:28 | |
Zoffix | \o | ||
brrt | france has high-speed trains to compensate, of course :-) | 12:29 | |
moritz | fwiw windows will soon ship SQLite as a core component | ||
Zoffix | 0.o | ||
Skarsnik | hm, interesting | ||
Zoffix | Will it be MS-flavoured buggy version, I wonder. | 12:30 | |
moritz | why should it? | 12:31 | |
it wouldn't help them much :-) | |||
jnthn | Zoffix: Relaitvely unlikely; MS seem to have done some growing up over the last years. | ||
moritz | engineering.microsoft.com/2015/10/2...indows-10/ | ||
it's a bit of a marketing fluff, but it sounds kinda plausible | 12:32 | ||
jnthn | At least Windows treat filenames as strings :P | ||
*treats | |||
Skarsnik | about DBI I have a small snipped of code for Pg that does fetchhash and return typed value, should I add this to DBI? | 12:33 | |
moritz | Skarsnik: yes please | ||
Skarsnik | The issue it return copies instead of binding to the native code. | 12:35 | |
azawawi | moritz: github.com/azawawi/DBIish/tree/master/examples :) | ||
12:36
xpen left
|
|||
moritz | azawawi: nice | 12:38 | |
azawawi | moritz: i was wondering how to solve the windows problem... given that client DLLs are not always found on windows land out of the box or through a package manager. Bundle it in a DBIsh::Windows ? | 12:41 | |
timotimo | have a look at GTK::Simple for inspiration, azawawi | 12:42 | |
azawawi runs `zef install GTK::Simple` | 12:43 | ||
timotimo | i would have suggested "panda look GTK::Simple" instead | 12:44 | |
but oh well :) | |||
moritz | azawawi: uhm, submit a bug report against mysql-client for not installing the .dll files where the system can find them? Or is that a usual thing under windows? | 12:45 | |
azawawi | moritz: it is normal | ||
moritz: on windows, this is the normal behavior... deal with it :) | 12:46 | ||
timotimo | i thought all dll files get installed into c:/windows/system | ||
azawawi | moritz: even firefox doesnt install itself in %PATH% under windows... | ||
timotimo: nope, wrong assumptions | |||
C:\Program Files\PostgreSQL\9.4\lib | 12:47 | ||
moritz | timotimo: I think this was true in windows 95 :-) | ||
azawawi | C:\Program Files\MySQL\MySQL Server 5.6\lib | ||
moritz | no wonder unix devs are suspicious of windows :-) | ||
azawawi | timotimo: technically use %windir%\system to be portable :) | 12:48 | |
timotimo: and it is %windir%\system32 :) | |||
i faced this problem in Selenium::WebDriver, finding browsers executables through File::Which is fine on *nix but is a no-no on windows | 12:50 | ||
that's why i think we need a module to find stuff on windows :) | |||
File::Find::Windows ? | 12:51 | ||
moritz | Stuff::Find::Windows :-) | ||
12:51
yqt joined
|
|||
azawawi | Windows::StuffFinder :) | 12:51 | |
moritz | File::Find::Windows sounds like you want to recursively search through the whole file systme | 12:52 | |
that... might not be clever. | |||
12:52
perlawhirl joined
|
|||
azawawi | i know but think of it... other modules will benefit from it auto detecting weird software locations on windows :) | 12:52 | |
azawawi starts working on it | 12:53 | ||
12:53
domidumont left
|
|||
moritz | Windows::PathMagic | 12:53 | |
Skarsnik | some lib set env variable, like gstreamer if you install it | ||
but the basic rule when you dev in windows: provide the lib you depend x) | 12:54 | ||
12:54
Actualeyes left
|
|||
azawawi | Skarsnik: true and you need also to provide both 32-bit and 64-bit versions... and you need to LICENSE them to include them in your software in the first place :) | 12:55 | |
12:57
eliasr left
|
|||
Begi11110 | Can we make nice GUI with Perl 6 now ? or not yet ? | 13:00 | |
Skarsnik | Probably not, there is Gtk::Simple | 13:01 | |
13:02
ely-se left
13:05
tomoko_ joined
|
|||
perlawhirl | hi everybody | 13:06 | |
tomoko_ | hi perl6! I have a small question about this. I run 'say 123' 0.3s, but 53 second for run 'say [+] ^1000001' | 13:07 | |
why it is so slow? | |||
Skarsnik | because perl6 is slow ~~ | 13:08 | |
I know it's not an answer x) | |||
DrForr | Because one's printing a number and the other one is making a long calculation? | 13:09 | |
arnsholt | IIRC the reduce metaop is more expensive than for example a for loop doing the sum | ||
DrForr | We could take a page from VW and preoptimize that :) | ||
lizmat | fwiw, say [+] ^1000001 runs 20 secs on my meachine | ||
the equivalent: my int $i; $i = $i + $_ for ^1000001; say $i | |||
runs about 4 secs on my machine: and that's as fast as it can pretty much get atm without resorting to nqp | 13:10 | ||
tomoko_ | thta's too bad? | ||
13:11
AlexDaniel joined
|
|||
Skarsnik | gah vim is slow with p6 coloration :( | 13:11 | |
jnthn | There's plenty of room for the various optimizers to improve on both cases | ||
perlawhirl | hi all... i was in here about 12 hours ago asking about ways to use a new rule with an existing grammar and token. is there a better way than adding a method to the grammar? example => pastebin.com/QUBpXWjF | ||
jnthn | But that's not going to happen this side of Christmas, because we're too busy nailing the semantic issues. | 13:12 | |
arnsholt | perlawhirl: Subclass it =) | ||
jnthn | Subclass, or mix a role in | ||
Don't use .^add_method in normal code | |||
perlawhirl | yeah i figured... the ^ is pointy and dangerous | 13:13 | |
jnthn | If you stick that code in a module, that module will not be able to support precompilation. | ||
perlawhirl | i'm just playing with grammars for now... dates seems like a good place to start | ||
lizmat | m: use nqp; my int $i; my int $j = -1; while nqp::islt_i($j = nqp::add_i($j,1),1000001) { $i = nqp::add_i($i,$j) }; say $i # almost wholly optimized case | ||
camelia | rakudo-moar 3dc1a8: OUTPUT«500000500000» | ||
lizmat | which runs at .150 seconds for me | ||
timotimo | still too slow! :P | 13:14 | |
jnthn | lizmat: I think you would write that without NQP ops and get the same result though | ||
13:14
Actualeyes joined
|
|||
lizmat | well, reality is different :-( | 13:14 | |
jnthn | perlawhirl: You can write a regex that uses rules from a grammar too | ||
13:15
tomoko_ left
|
|||
jnthn | lizmat: Curiously, that code on my box runs in 0.16s | 13:15 | |
perlawhirl | jnthn: oh? so I could simply to "Tue ~~ <weekday>" outside of the grammar and it would work? | 13:16 | |
timotimo | perlawhirl: more like / <weekday> / | ||
jnthn | lizmat: And this runs in exactly the same time: | ||
perl6-m -e "use nqp; my int $i; my int $j = -1; while ($j = $j + 1) < 1000001 { $i = $i + $j }; say $i" | |||
uh, and the use nqp can go | 13:17 | ||
perlawhirl: You'd ahve to qualify the names | |||
timotimo | interestingly, in the "$i = $i + $_ for ^1000001" thing, we don't inline the calculation | ||
arnsholt | jnthn In case you think lizmat said 150 seconds, there's a dot in front there. So she's got basically the same runtime as you | ||
perlawhirl | jnthn: im sorry... how to i 'qualify' the names? | ||
timotimo | so we're cloning a block and invoking it each time | ||
jnthn | $date ~~ / <Dateish::weekday> / | ||
perlawhirl | ahhh | 13:18 | |
jnthn | arnsholt: oops, duh | ||
timotimo | er | ||
perlawhirl | of course | ||
timotimo | only cloning it once | ||
perlawhirl | facepalm | ||
jnthn | So yeah, we get the same. But still | ||
I was right; you don't need nqp:: ops | |||
lizmat | ok, good to know | ||
still, that looks to me we still haven't got the for loop optimization back :-( | 13:19 | ||
jnthn | Well, was worth checking; there have been optimizer regressions in the past | ||
perlawhirl | jnthm: that leads me to one more question... can i export tokens from a Grammar ? just as one can export subs from a module? | ||
jnthn | perlawhirl: Yes, and then import them | ||
perlawhirl | sweeet | 13:20 | |
jnthn | And then use them unqualified | ||
timotimo | spesh also doesn't inline that call :( | ||
jnthn | timotimo: To the block? No, it can't | ||
It doesn't understanding inlining closure-y things yet | |||
timotimo | oh | ||
that would explain it, yeah | |||
jnthn | (It's tricky) | ||
I mean, inlining is *already* a tricky opt, but... :) | 13:21 | ||
lizmat | afk again& | ||
timotimo | ugh, it looks like the $i = $i + $_ part also doesn't inline the + operator | 13:22 | |
jnthn | That's not good | ||
timotimo | it uses a lexref for one of the parameters, that's quite likely what causes that problem. | ||
jnthn | I think many of our non-inlines are thanks to the "let Nil through on the return" | 13:23 | |
timotimo | it's always fun to see our code bindlex and a tiny bit later getlex from the same variable ... | 13:24 | |
yeah, infix:<+> in this case also gets the Failure check emitted | 13:26 | ||
i'm not sure why that'd cause inlining trouble, though? | |||
13:26
ely-se joined
|
|||
jnthn | timotimo: The never-hit and thus unresolved getlexstatic_o | 13:27 | |
Skarsnik | damn you really need to call private method with self!method? it's realy weird x) | 13:28 | |
timotimo | jnthn: oh, ugh! | ||
can we perhaps generate better code on the rakudo side? | 13:29 | ||
jnthn | timotimo: If we can fix the code-gen to spit out a wval there instead, we'll be better off | ||
timotimo | yeah, i thought the same thing | ||
jnthn | Well, depending what it's looking up | ||
timotimo | if it's Failure, that'd be easy; do we even want users to be able to override that? | ||
jnthn | Skarsnik: You have to declare them that way too; it matches :) | ||
timotimo: No | |||
Or at least, I don't care for now :) | 13:30 | ||
timotimo | all right, then i'd just look for the place that emits the "failure would be okay, too" code and replace the getlexstatic part with a wval | ||
does the optimizer ever get to see that code as a QAST? or is it an op or desugar? | |||
jnthn | timotimo: I think it's a desugar | 13:31 | |
But not totally sure | 13:32 | ||
timotimo | i think that'll be all i need to know to get started and maybe finished | ||
jnthn | k | 13:33 | |
timotimo | it's an hll op, not a desugar | ||
jnthn returns to regex engine fixing | |||
timotimo | hm. maybe i'll allow p6typecheckrv to take a third parameter and the optimizer just shoves in Failure as a WVal every time it sees that op … | 13:38 | |
Skarsnik | is there something like now in perl5? | 13:39 | |
timotimo | m: say now; say time | ||
camelia | rakudo-moar 3dc1a8: OUTPUT«Instant:1447249196.5893631447249160» | ||
timotimo | now gives you fractions of a second, time gives you seconds | ||
one is with leap seconds, the other without | |||
Skarsnik | I mean in perl5, not in perl6 x) | ||
timotimo | oh | ||
Timer::HiRes? | 13:40 | ||
jnthn | timotimo: I don't think I'd do it as the optimizer | ||
*at | |||
timotimo: I'd just always shove Failure into that node | |||
In Actions | |||
Then we can rely on it | |||
timotimo | oh, i can just grab it from $*W | 13:41 | |
silly me! | |||
13:42
pippo joined
|
|||
pippo | o/ #perl6 | 13:42 | |
pink_mist | is $*W something like a haskell world? (which I don't quite know what /that/ is either anyway) | ||
arnsholt | $*W is a compiler-internal thing | 13:43 | |
jnthn | pink_mist: Very unlikely :) | 13:44 | |
And yeah, it's part of the compiler | |||
moritz | it's basically an entry point the symbol tables, lexical scopes etc. of the code currently being compiled, as well as the objects (types, routines) defined therein | ||
timotimo | it keeps around all the declarative things | ||
jnthn | As we parse/analyze Perl 6 code, there's 3 things at work: grammar (syntax), actions (execution semantics), and world (declarations) | ||
timotimo | yeah | ||
jnthn | In the earliest Rakudos there was no world, and the code was scattered over the grammar and actions | 13:45 | |
pink_mist | ohh, cool | ||
jnthn | This was hard to maintain. | ||
Skarsnik | I try to find what is really slow in my code. and just creating an object 10k times take 0.02 sec in p5 and 0.5 in p6 | ||
pink_mist | Skarsnik: creating an object in p5 is very different from doing it in p6 | 13:46 | |
Skarsnik | I was too lazy to write c++ code to have a comparaison x) | ||
moritz | you should compare it to creating an object of a class using Moose | ||
at the very least | |||
jnthn | BUILDALL is the costly thing, generally | 13:47 | |
timotimo | the thing about object creation in perl6 is that at the moment BUILDALL is like a tiny interpreter that doesn't have its own jit | ||
jnthn | And we've plenty we can do about that | ||
But again, very unlikely this side of Christmas | |||
Skarsnik | root@testperl6:~/piko/perl6-gumbo# perl6 -Ilib gumbo.pl /home/skarsnik/Téléchargements/favourites.htm | 13:49 | |
gumbo_parse call : 0.058758 | |||
xml tree creation : 1.74880802 | |||
(my Int % = :elements(4126), :whitespaces(2908), :xml_objects(8383)) | |||
13:49
RabidGravy joined
|
|||
Skarsnik | It's sad to loose all the time in p6 just creating object x) | 13:50 | |
moritz | Skarsnik: did you profile it? | 13:51 | |
timotimo | jnthn: now we get code that's a tiny bit prettier - as in, it has a wval rather than getlexstatic - but it 1) doesn't get inlined, 2) for some reason spesh doesn't kick out the istype, even though it knows what type goes into add_I and what type comes out of the wval for the type check | ||
Skarsnik | I remember when I profile it was like lot of time spend in new/bless | ||
moritz | Skarsnik: I mean, it could also be a slow looping construct, not just the .new calls | ||
ok | |||
timotimo | investigating that in spesh may give us a bit more, but i still think the reason we don't inline that in spesh is the lexref argument | 13:52 | |
13:52
xpen joined
|
|||
Skarsnik | Also I use a recursive solution to parcours the C struct, I don't know how p6 far well with that | 13:52 | |
jnthn | timotimo: Yeah...but I suspect you'll have fixed a bunch of other non-inlines | 13:53 | |
timotimo | oh damn. i was working with code before TimToady changed the relationship Failure and Nil have | ||
timotimo re-does the changes | 13:54 | ||
Skarsnik | I can cut 0.2 sec ignoring whitespace, hm, lets add an option for it since most of the time having whitespaces in the xml is useless ~~ | ||
DrForr | Re: 'parcours...' I wonder if I could come up with an algorithm that could reasonably be described as parkour over an octree... | 13:55 | |
timotimo | oh, it's just a matter of using Nil instead of Failure | ||
13:55
virtualsue left
13:56
camelia joined,
gfldex joined
13:57
ChanServ sets mode: +v camelia
|
|||
hahainternet | another thought about an area that is frustrating in python | 13:58 | |
try: something, catch exception.that.cannot.occur: do something else | |||
this should be statically checked and warned against | |||
no idea if p6 has that capability, but i think noting warts in other languages is valuable, so tell me to shut up if not :) | |||
timotimo | as soon as you have a method call, that turns impossible | ||
13:59
camelia left
|
|||
hahainternet | timotimo: yeah p6 binds very late doesn't it | 13:59 | |
timotimo | as opposed to java, perl6 methods don't have "can throw these kinds of exceptions:" annotated and even if they did, methods from subclasses are allowed to change the signature drastically, and that information would probably not be part of that | ||
hahainternet | i mean this is something you'd more expect from Go | ||
but i just thought i'd mention it | |||
as it resulted in me missing an obvious bug when i changed a method call | |||
14:00
nys joined
|
|||
hahainternet | and it returnes 0 instead of an exception, because consistency in python is a dirty word :p | 14:00 | |
14:00
camelia joined
14:01
mr_ron joined,
ChanServ sets mode: +v camelia
|
|||
arnsholt | You probably can't even guarantee that some exception will never happen even in Java | 14:02 | |
hahainternet | yeah possibly, it's just a little wart | ||
changed some code, missed the implication because it's not very consistent, doubt there's anything p6 can do | |||
but out of all the language channels, people here are genuinely interested and conversational :) | 14:03 | ||
timotimo | the only thing p6 can do is encourage some behaviors among coders | 14:04 | |
dalek | kudo/nom: a62a00e | timotimo++ | src/ (4 files): "allow Failure/Nil to be returned" is now a tiny bit cheaper |
14:05 | |
hahainternet | timotimo: you got a second to talk about something else related to python v p6? | ||
i'm quite ignorant of the extent of p6 features, so i'd like to chat about how something could be done | 14:06 | ||
14:06
broquaint joined
|
|||
timotimo | sure | 14:06 | |
hope it's not too complicated for me :P | |||
dalek | p: 8013acd | jnthn++ | src/QRegex/P6Regex/Actions.nqp: Forbid synthetics as charrange endpoints. Which in turn makes it fine that it works in terms of codepoints. |
14:07 | |
hahainternet | so, in django's orm, they use a little hack, so lets say you have a one to many relationship from 'users' to 'game scores' | ||
you could say Users.filter(game_score__score_gt=0) | |||
timotimo | ah, that thing | ||
hahainternet | that is rather a terribly ugly wart imo | ||
dalek | osystem: 7ef1329 | cygx++ | META.list: add Image::PNG::Inflated Generates uncompressed PNG images in pure Perl6 |
||
timotimo | you know how SQLAlchemy does it? | ||
hahainternet | i do not | 14:08 | |
14:08
pmurias left,
diakopter left
|
|||
timotimo | wait, i'm not actually sure it's what i had in mind | 14:08 | |
hahainternet | i'll have a read regardless | ||
timotimo | but i *think* you can Users.game_score.score > 0 in that same place | ||
hahainternet | yeah, see that makes much more sense, i don't understand why that isn't the case for Django | ||
and i'd very much hope it could be the case for p6 eventually | 14:09 | ||
timotimo | it's just a simple OOP trick | ||
hahainternet | well, it gets a bit more complex | ||
so i have an issue with the django orm | |||
i have a table with a postgres array field | |||
and i'm trying to compare this against a python array | |||
timotimo | hehehe | ||
hahainternet | however, the database column is character varying[] | ||
and django's pg module constructs a comparison array of text[] | |||
and i can find no way to 'hint' the right type to it | 14:10 | ||
timotimo | no clue about that :| | ||
hahainternet | well don't worry about the python side | ||
i'm more interested in thoughts about p6 | |||
timotimo | well, p6 has parametric roles, so you can pass something like that to the ORM to tell it what you mean | 14:11 | |
RabidGravy | but that's an external module thing | ||
hahainternet | so, in the hypothetical case of Users.game_score.game_options = [1,2,3] | ||
timotimo | or the ORM can itrospect the thing you're comparing against for its type | ||
hahainternet | timotimo: indeed, but in that case text and character varying are indistinguishable | ||
timotimo | in which case, you'd Array[Int].new(1, 2, 3) or something | ||
hahainternet | right, that's what i was thinking | ||
and your db driver would define specific types for each db type | |||
arnsholt | SQLAlchemy lets you do stuff like filter(User.origin == "stuff") | ||
(Through metaclass trickery, I think | 14:12 | ||
hahainternet | yeah, django's orm has endless trickery and hackery | ||
but still comes out with an unsatisfactory solution | |||
arnsholt | The SQLAlchemy solution is reasonable I think | ||
timotimo | SQLAlchemy does trickery, too ... but it doesn't seem as hacky to me | ||
hahainternet | i'm reading about it now :) | ||
arnsholt | Yeah, I've only touched SQLAlchemy briefly, but it seems very well thought out | 14:13 | |
And not very hacky | |||
I'm sure the implementation has some really hairy parts, but the API itself seems very slick | |||
hahainternet | excellent, well i hope to see similar for p6 at some point, although i doubt i have the skills to write it | ||
arnsholt | Anyways, it should be possible to do something similar for Perl 6, I think | ||
hahainternet | yeah i hope so, Array["CharacterVarying"].new(1,2,3) is a little verbose but perfectly clear | 14:15 | |
and it seems reasonable you could define postgres operators in language too, so @> for example | |||
timotimo | you wouldn't put that in quotation marks | ||
that'd give you an Array[Str] | |||
14:15
pmurias joined,
diakopter joined,
sivoais joined,
Jonis joined
|
|||
Skarsnik | hm, How I should add a new fetchrow_ in DBIsh? just put it in DBD like that fetchrow_ {...} and add it in every backend? but I am not sure every backend can have it working (fetchrow_typedhash) | 14:15 | |
hahainternet | oh sorry, my mistake | ||
14:16
sivoais left,
sivoais joined
14:17
raiph joined
|
|||
arnsholt | Skarsnik: IIRC the DBDs share a superclass, so adding a default implementation that just dies should work | 14:18 | |
14:21
sprocket joined
|
|||
moritz | or simply put it in the one DBD that supports it | 14:21 | |
then you can only call it on the statement handle of that class | 14:22 | ||
14:23
pmurias left
|
|||
timotimo | damn, type check against Nil seems to *suck* performance-wise, because the cache isn't authoritative | 14:24 | |
or something like that? | 14:25 | ||
jnthn | Odd, not sure why it'd not be | ||
timotimo | well, all i can tell is that the istype doesn't get changed into a literal int, even though the known type flag are set on both its operands | 14:26 | |
since i expect a 0 as the answer, the cache wouldn't contain a hit and that means it'd go to the "not TYPE_CHECK_THEN_METHOD and also not TYPE_CHECK_NEEDS_ACCEPT" check and fails that | |||
either there's a flaw to my logic, or one of those bits gets set for some weird reason | 14:28 | ||
14:31
sprocket left,
travis-ci joined
|
|||
travis-ci | Rakudo build passed. Timo Paulssen '"allow Failure/Nil to be returned" is now a tiny bit cheaper' | 14:31 | |
travis-ci.org/rakudo/rakudo/builds/90525734 github.com/rakudo/rakudo/compare/3...2a00e9393f | |||
14:31
travis-ci left
|
|||
timotimo | oh wow, make test has quite a few failures on the jvm :| | 14:32 | |
14:35
sprocket joined,
ely-se left
14:39
sprocket left
|
|||
RabidGravy | chocolate lager is weird | 14:41 | |
dalek | k-simple: fe6a42c | azawawi++ | / (7 files): - Make examples executables on *nix - Add instructions for Debian Linux package installation |
||
jnthn | RabidGravy: I'd imagine... | 14:43 | |
RabidGravy: Though licorice lager kinda worked. | |||
vendethiel | timotimo: not quite. (but I made the same mistake the first time) | 14:44 | |
ilmari would think both of those flavours would work better in a porter or stout | |||
jnthn | Indeed. | 14:45 | |
timotimo | oh fun! | ||
RabidGravy | there's plenty o' chocolate porter in the house | ||
timotimo | jnthn: a profile of the for ^1000001 thing says infix:<+> is spending 51% of its time inside metamodel's accepts_type | 14:46 | |
arnsholt | Ooh, liquorice porter would be neat | ||
timotimo | wow, this is weird, too | ||
ilmari | untappd.com/b/to-ol-liquorice-confidence/984532 # yum | 14:47 | |
timotimo | the GC tab shows 59 GC runs - and all in all 13.8% of the time is spent in GC - and after the 16th GC run, the times oscillate between 7ms and 14ms | ||
as in: precisely every other GC run is twice as slow | 14:48 | ||
jnthn | timotimo: Is a :D type at play? | ||
14:48
ely-se joined
|
|||
timotimo | oh, that could totally be a thing | 14:48 | |
gimme a sec | |||
jnthn | timotimo: If so we should probably disassemble those into the base type and the modifier | ||
timotimo | yup, that's in there | 14:49 | |
both for the parameters and for the return value | |||
14:49
CIAvash` joined
|
|||
timotimo | not exactly sure where that'd splitting would happen | 14:49 | |
can the perl6 optimizer already do that? is it possible at all to do it in spesh? | |||
jnthn | When compiling the check return type op perhaps | ||
Not in spesh, no | |||
It's too Perl 6 semantic for that | |||
timotimo | thought so | 14:50 | |
looks like i'll be wanting to call .^base_type to get Int from Int:D | |||
dalek | k-simple: 1b19ba7 | azawawi++ | / (2 files): Enable travis CI for GTK::Simple :) |
||
jnthn | aye | ||
timotimo | and check the HOW against DefiniteHOW | ||
that seems doable | 14:51 | ||
jnthn | No | ||
.HOW.archetypes.definite or so | |||
timotimo | ah | ||
jnthn | Is mroe reliable | ||
timotimo | MROe reliable, eh? | ||
14:51
sprocket joined
|
|||
jnthn | :P | 14:51 | |
I just fixed two LTM bugs, I'm allowed to typo :) | |||
Or maybe three LTM bugs, depending how you count :) | 14:52 | ||
14:52
Actualeyes left
|
|||
jnthn spectests the bunch of patches | 14:52 | ||
masak .oO( ...I'm allowed to off-by-one! ) :P | |||
azawawi | can someone with admin rights for perl6 travis ci enable gtk-simple? | 14:53 | |
jnthn | Well, it's two RTs, but I found a third related issue :) | ||
14:53
CIAvash left
|
|||
jnthn is happy to see folks working on GTK::Simple :) | 14:53 | ||
timotimo too | |||
jnthn | I wrote the original in 4 hours on a train to demo how supplies could be used to handle UI events :) | ||
14:54
rindolf joined
|
|||
jnthn hopes it still does make nice use of supplies :) | 14:54 | ||
I bet you can write some really cute code with the react/supply/whenever stuff | |||
14:55
yqt left
|
|||
timotimo | azawawi: i have no idea how to do it, because it's in perl6/ rather than timo/ | 14:55 | |
azawawi | visit travis ci, sign in with your github, and click accounts... and click the toggle :) | 14:56 | |
jnthn | Darn, seems I bust something :/ | ||
timotimo | azawawi: there's only toggles for timo/ in there | 14:57 | |
azawawi | click Perl 6 on the left... | 14:58 | |
timotimo | clicked it! | 15:00 | |
DrForr | IT'S A TRAP! | ||
azawawi | :) | ||
uploading virus in... | |||
15:01
zakharyas left
|
|||
dalek | k-simple: 27afc89 | azawawi++ | LICENSE: Add a LICENSE file to make travis CI build something :) |
15:02 | |
azawawi | timotimo: travis-ci.org/perl6/gtk-simple/builds/90536389 # booting... | 15:03 | |
interesting libpq.dll on windows is not working with NativeCall, how can i debug it? | 15:04 | ||
15:06
Actualeyes joined
|
|||
timotimo | m: say "making DefiniteHOW a first-class citizen of p6typecheckrv reduces run time of that simple benchmark to { 2.33 * 100 / 3.52 }% of what it used to be" | 15:06 | |
camelia | rakudo-moar a62a00: OUTPUT«making DefiniteHOW a first-class citizen of p6typecheckrv reduces run time of that simple benchmark to 66.193182% of what it used to be» | ||
azawawi | what does "Cannot locate native library 'C:\Program Files\PostgreSQL\9.4\lib\libpq.dll': error 0x7e" really mean? | 15:07 | |
timotimo | it means we should probably mate it output whether we're on dyncall or libffi, for one :) | 15:08 | |
azawawi | english? | ||
:) | |||
15:08
espadrine joined
|
|||
jnthn | timotimo: Nice! :) | 15:10 | |
azawawi | so? :) | ||
timotimo: it worked ... travis-ci.org/perl6/gtk-simple/bui...36389#L949 :) | 15:11 | ||
timotimo++ | 15:12 | ||
jnthn: perl6 built on windows is 64-bit or 32-bit on a 64-bit host? | 15:14 | ||
timotimo | cool | 15:15 | |
azawawi downloads 32-bit postgresql to test | |||
jnthn | azawawi: 64-bit | ||
azawawi: Especially since we only have JIT support on x64 | 15:16 | ||
:) | |||
azawawi | postgresql-x64-9.4 | ||
timotimo | i'm having some trouble with :U versions of return type annotations :o | 15:17 | |
dalek | p: e549cf2 | jnthn++ | src/QRegex/NFA.nqp: Fix NFA generation for charrange with ignorecase. |
15:18 | |
p: 4570019 | jnthn++ | tools/build/MOAR_REVISION: Bump MOAR_REVISION for NFA improvements. |
|||
p: 367c227 | jnthn++ | src/QRegex/NFA.nqp: Fix charrange NFA to handle ignoremark. |
|||
p: ffdc843 | jnthn++ | src/QRegex/NFA.nqp: Fix NFA of literals to handle NFG synthetics. |
|||
timotimo | if the .definite of the original type is 0, i emit an unless_i to jump to the finish line, otherwise i emit an if_i | 15:20 | |
azawawi upgrades postgresql from 64-bit 9.4.1 to 9.4.5 | |||
timotimo | why would that fail to cause errors when returning a defined instance when returns Foo:U is set? | ||
dalek | kudo/nom: d5c6b61 | jnthn++ | tools/build/NQP_REVISION: Bump NQP_REVISION for various LTM fixes. |
||
timotimo | the accepts_type code is basically istype($thing, $base_type) && isconcrete($thing) == $definite | ||
jnthn | timotimo: Containerization maybe? | 15:21 | |
dalek | ast: edaeffa | jnthn++ | S05-metasyntax/charset.t: Tests for RT #125753. |
||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125753 | ||
jnthn | Another xmas RT down | ||
azawawi | ouch "The Postgres 8.4 Documentation" in pg.pm6 | ||
timotimo | jnthn: i'm testing against the value of $decont | 15:22 | |
just like the stuff before that | |||
oh! | 15:23 | ||
haha | |||
if the type matches, the whole definedness stuff is skipped %) | |||
dalek | ast: 5079079 | jnthn++ | S05-metasyntax/longest-alternative.t: Test for RT #126573. |
15:24 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=126573 | ||
timotimo | in other words, currently my code would accept a type check failure if and only if the definedness is correct | 15:25 | |
very clever! | |||
jnthn | d'oh :) | ||
timotimo | so i built the same code with || instead of && | 15:26 | |
jnthn | Regression reported in RT #126573 fixed too | 15:27 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=126573 | ||
15:29
skids joined
|
|||
jnthn | m: say 'aaaa' ~~ /(\w)+$0/; say $0 | 15:31 | |
camelia | rakudo-moar a62a00: OUTPUT«「aaaa」 0 => 「a」 0 => 「a」 0 => 「a」[「a」 「a」 「a」]» | ||
zengargoyle | good * #perl6 | ||
jnthn | m: say 'abcc' ~~ /(.)+$0/; say $0 | 15:32 | |
camelia | rakudo-moar d5c6b6: OUTPUT«「abcc」 0 => 「a」 0 => 「b」 0 => 「c」[「a」 「b」 「c」]» | ||
timotimo | okay, full spectest run with my fixed-up code | ||
jnthn | m: say Match ~~ Iterable | ||
camelia | rakudo-moar d5c6b6: OUTPUT«False» | ||
jnthn | m: say Match ~~ Positional | ||
camelia | rakudo-moar d5c6b6: OUTPUT«False» | ||
jnthn | m: say 'abcc' ~~ /(.)+$0/; say $0.WHAT | 15:33 | |
camelia | rakudo-moar d5c6b6: OUTPUT«「abcc」 0 => 「a」 0 => 「b」 0 => 「c」(Array)» | ||
jnthn | Ah | ||
m: say 'abca' ~~ /(.)+$0/; | 15:34 | ||
camelia | rakudo-moar d5c6b6: OUTPUT«Nil» | ||
azawawi | confirmed 9.3.10 on linux working with DBIish, 9.3.10 (x64) is not working on windows... | ||
zengargoyle | managed to grok enough LibraryMake/LibraryCheck/Find::Bundled to get Altorithm::Trie::libdatrie to build it's own libdatrie. woot | 15:35 | |
jnthn | .ask TimToady for input on rt.perl.org/Ticket/Display.html?id=88340 - in summry, what should a backreference match when it's to a quantified thing? | ||
yoleaux | jnthn: I'll pass your message to TimToady. | ||
15:36
brrt left
|
|||
azawawi | so how can i debug NativeCall's problem with DBIish Pg driver (libpq.dll) on windows? Any pointers? | 15:37 | |
timotimo | cool, my code seems to work | ||
arnsholt | azawawi: If it's in the C pary you can just attach your debugger to the executable | 15:38 | |
15:39
yqt joined
|
|||
Skarsnik | azawawi, does the dll managed to load finaly? | 15:39 | |
15:39
Ven_ joined
15:40
khw joined
|
|||
timotimo | an extra spec test run with jnthn's latest changes just for safety | 15:41 | |
dalek | kudo/nom: 31784a7 | timotimo++ | src/vm/moar/Perl6/Ops.nqp: make types with :D or :U much cheaper for returning through the power & magic of code generation! |
15:46 | |
timotimo | excellent | ||
15:46
yqt left
15:47
yqt joined
|
|||
timotimo | in the spesh output for the benchmark the return type checking code completely disappears | 15:47 | |
this makes me happy :) | |||
15:47
yqt left
|
|||
jnthn | \o/ | 15:48 | |
15:48
yqt joined
|
|||
jnthn | timotimo++ | 15:48 | |
timotimo | still not inlined. but see above for my nagging suspicion :P | 15:50 | |
the benchmark also allocates 1000002 IntLexRef and 999996 Int | |||
:\ | |||
with the improved speed, the garbage collection time spending percentage is now 23.64% | 15:51 | ||
diakopter | which benchmark are you using | ||
timotimo | perl6 -e 'my int $i; $i = $i + $_ for ^1000001; say $i' | ||
it uses the Int candidate for addition rather than the int version | 15:52 | ||
diakopter | clarify "it" | ||
:D | |||
timotimo | for + | ||
perl6 -e 'my int $i; for ^1000001 -> int $_ { $i = $i + $_ }; say $i' - this one is much better | 15:53 | ||
diakopter | m: my int $i; for ^1000001 -> int $_ { $i = $i + $_ }; say $i | 15:54 | |
camelia | rakudo-moar 31784a: OUTPUT«500000500000» | ||
diakopter | you'd think camelia could give us a few significant digits of seconds XD | ||
timotimo | there the addition gets inlined | ||
ilmari | 4.5s vs 0.8s here | ||
timotimo | ilmari: after updating rakudo, you should get a bit better baseline time for that | 15:55 | |
ilmari | m: say time | ||
camelia | rakudo-moar 31784a: OUTPUT«1447257345» | ||
ilmari | what, no subsecond precision by default? | ||
TimToady | m: say now | 15:56 | |
yoleaux | 15:35Z <jnthn> TimToady: for input on rt.perl.org/Ticket/Display.html?id=88340 - in summry, what should a backreference match when it's to a quantified thing? | ||
camelia | rakudo-moar 31784a: OUTPUT«Instant:1447257402.853521» | ||
ilmari | TimToady: ah | ||
TimToady | time is POSIX | ||
diakopter | yeah I mean for every run | ||
maybe mt: for moartimed | |||
timotimo | ilmari: i get 2.52s vs 0.67s on my machine with latest rakudo | ||
diakopter watching youtu.be/kwxHXgiLsFE | 15:57 | ||
azawawi | i cannot debug it with perl6-debug-m on windows because after installing Debugger::UI::CommandLine, first ENTER works and then gets stuck... | 16:00 | |
sample with REPL on windows | |||
jnthn++ # Debugger::UI::CommandLine | |||
16:01
Ven_ left
|
|||
diakopter | m: my $a_a=now; my int $i; for ^1000001 -> int $_ { $i = $i + $_ }; say $i; say now -$a_a | 16:01 | |
camelia | rakudo-moar 31784a: OUTPUT«5000005000000.6249112» | ||
jnthn | Darn, RT #125285 is a tricky one | 16:02 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125285 | ||
dalek | kudo-star-daily: c2e8cf8 | coke++ | log/ (9 files): today (automated commit) |
16:03 | |
rl6-roast-data: f69014b | coke++ | / (9 files): today (automated commit) |
|||
azawawi | exception occurred in github.com/jnthn/zavolaj/blob/mast...l.pm6#L142 | 16:04 | |
in method setup at lib/NativeCall.pm:225 | 16:06 | ||
16:07
zakharyas joined
|
|||
azawawi | github.com/rakudo/rakudo/blob/nom/...ll.pm#L225 # to be exact | 16:07 | |
diakopter | mind boggle at supply/react | 16:10 | |
hoelzro | o/ #perl6 | 16:11 | |
16:12
CIAvash`` joined,
aindilis` joined
|
|||
Skarsnik | azawawi, witch line in Pg.pm crash? | 16:12 | |
azawawi going home... will connect again in like 45 min depending on traffic | 16:13 | ||
16:13
mr_ron_ joined
|
|||
timotimo | star-m: my $a_a=now; my int $i; for ^1000001 -> int $_ { $i = $i + $_ }; say $i; say now -$a_a | 16:13 | |
16:13
azawawi left
|
|||
camelia | star-m 2015.09: OUTPUT«5000005000002.3527282» | 16:13 | |
16:14
PotatoGim_ joined
|
|||
timotimo | star-m: my $a_a=now; my int $i; for ^1000001 -> int $_ { $i = $i + $_ }; say $i; say now -$a_a | 16:15 | |
camelia | star-m 2015.09: OUTPUT«5000005000002.3779308» | ||
timotimo | this must be the effect of the for-loop-to-while-loop optimization | ||
diakopter | m: my int $i; for ^1000001 -> int $_ { $i = $i + $_ }; say $i; say now - INIT now | ||
camelia | rakudo-moar 31784a: OUTPUT«5000005000000.6119751» | ||
16:15
f3ew_ joined
16:16
Ven_ joined
|
|||
diakopter | ^ look I learned from the youtube | 16:16 | |
16:16
apejens_ joined
|
|||
jnthn | m: say('rule1 foo rule2 bar' ~~ /^ [ ('rule1' || 'rule2') (.+?) ]* $/) | 16:16 | |
camelia | rakudo-moar 31784a: OUTPUT«「rule1 foo rule2 bar」 0 => 「rule1」 1 => 「 」 1 => 「 f」 1 => 「 fo」 1 => 「 foo」 1 => 「 foo 」 0 => 「rule2」 1 => 「 」 1 => 「 b」 1 => 「 ba」 1 => 「 bar」» | ||
16:16
cxreg2 joined
|
|||
TimToady | yeah, that one's been sitting in my todo file for a while too... | 16:16 | |
jnthn | TimToady: ^^ or the thing I asked about? :) | 16:17 | |
16:17
khw left,
CIAvash` left,
mr_ron left,
zakharyas left,
zakharyas joined
|
|||
TimToady | ^^ | 16:17 | |
jnthn | TimToady: I got that latest one by golfing the nasty RT | ||
16:17
mr_ron_ is now known as mr_ron
|
|||
RabidGravy | boom | 16:17 | |
jnthn | TimToady: How much did you figure out about it? | ||
16:17
ZoffixW joined,
khw joined
|
|||
TimToady | I don't remember offhand, alas, would have to look at it again | 16:17 | |
ZoffixW | jnthn, so. What's the status of P6 MetaCPAN/PAUSE? Last time we didn't get a chance to discuss it :) | 16:18 | |
16:18
PotatoGim_ is now known as PotatoGim
|
|||
TimToady | but I think it's probably tied in with the lack of proper backtracking primitives | 16:18 | |
jnthn | ZoffixW: Maybe you mean jdv79? :) | ||
ZoffixW | Or right | ||
jnthn | Phew! :) | ||
ZoffixW | jdv79, so. What's the status of P6 MetaCPAN/PAUSE? Last time we didn't get a chance to discuss it :) | 16:19 | |
jnthn has too much compiler stuff on his plate; ecosystem stuff is definitely SEP :) | |||
TimToady | somehow it's not trimming the list of captures correctly | ||
jnthn | TimToady: Just to check: we do expect the inner captures to be implicitly quantified by the * on the [...]? | 16:20 | |
[Coke] yawns | |||
16:20
xpen left
|
|||
diakopter | jnthn: what is that bug supposed to do | 16:20 | |
16:20
zakharyas left
|
|||
diakopter | (why does that expect just the longest ones | 16:21 | |
) | |||
(and if you fix this, will it speed up matching by a few orders of magnitude?) XD XD XD | |||
jnthn | TimToady: That is, we expect [1] is (' foo ', ' bar') | 16:22 | |
diakopter: Unlikely, especially for Perl 6 parsing given we don't backtrack anyway in grammars | |||
diakopter | you hope it doesn't. )_) | ||
TimToady | I think that's the right expectation | 16:24 | |
16:24
zakharyas joined
16:25
pyrimidine joined
16:27
ely-se left
|
|||
jnthn | m: say('rule1 foo rule2 far' ~~ /^ [ (\w+?1 || \w+?2) (\sf*?) (<-[f]>+?) ]* $/) | 16:28 | |
camelia | rakudo-moar 31784a: OUTPUT«「rule1 foo rule2 far」 0 => 「rule1」 1 => 「 」 1 => 「 f」 2 => 「o」 2 => 「oo」 2 => 「oo 」 0 => 「rule2」 1 => 「 」 1 => 「 f」 2 => 「a」 2 => 「ar」» | ||
jnthn | Interesting that the first capture in the group isn't ever duped | ||
oh, though | |||
It is | 16:29 | ||
m: say('rule1 foo rule2 far' ~~ /^ [ (\w+?) [1|2] (\sf*?) (<-[f]>+?) ]* $/) | |||
camelia | rakudo-moar 31784a: OUTPUT«「rule1 foo rule2 far」 0 => 「r」 0 => 「ru」 0 => 「rul」 0 => 「rule」 1 => 「 」 1 => 「 f」 2 => 「o」 2 => 「oo」 2 => 「oo 」 0 => 「r」 0 => 「ru」 0 => 「rul」 0 => 「rule」 1 =…» | ||
16:32
diana_olhovik_ left
|
|||
diakopter | is there a way to trigger a pessimization that might rule out an optimization as a culprit | 16:32 | |
jnthn | Output is the same with --optimize=0ff | 16:33 | |
*off | |||
16:33
telex left
16:34
telex joined
|
|||
diakopter | I was thinking more the NFA | 16:34 | |
jnthn | m: say('rule1 foo rule2 far' ~~ /^ [ (\w+?) [1||2] (\sf*?) (<-[f]>+?) ]* $/) | 16:36 | |
camelia | rakudo-moar 31784a: OUTPUT«「rule1 foo rule2 far」 0 => 「r」 0 => 「ru」 0 => 「rul」 0 => 「rule」 1 => 「 」 1 => 「 f」 2 => 「o」 2 => 「oo」 2 => 「oo 」 0 => 「r」 0 => 「ru」 0 => 「rul」 0 => 「rule」 1 =…» | ||
jnthn | Not the NFA; there's no LTM in that case and so the NFA isn't used | ||
diakopter | it's not the Match object reuse thing obviously | ||
or Cursor reuse | 16:37 | ||
* can't remember | |||
TimToady | m: my $abc = " a,b,c, "; $abc ~~ /(\w)+ % ","/; say $abc.substr($0.from ..^ $0.to) | 16:38 | |
camelia | rakudo-moar 31784a: OUTPUT«a,b,c» | ||
TimToady | I think that's what a backref to a quantified thing should check | 16:39 | |
it could be argued that ~$0 should return that too, except it's already just an Array | |||
16:41
kblagov joined,
Ven__ joined,
kblagov left,
Ven_ left
|
|||
TimToady | jnthn: I seem to recall thinking that it would be easier to trim on backtracking if we had a linked list stored in the opposite order | 16:43 | |
jnthn | TimToady: I'm suspecting it may be a bug in the subrule backtraking | 16:44 | |
TimToady: We keep the cursor around so we can backtrack into it if needed | |||
TimToady: But that keeps the capture around too | |||
TimToady | with a linked list you can have multiple entry points | 16:45 | |
but with the current setup, we'd have to record how many of the list to pay attention to somehow | 16:46 | ||
or maybe which element of the list to pay attention to | |||
the STD model was a bit cleaner here, and it could just throw away cursors at the right moment | |||
16:47
domidumont joined
16:50
Ven__ left
|
|||
ZoffixW | m: my @a = (1, 2, 3); my $a = @a; say [$a.^name, $a.VAR.^name, $a.VAR.VAR.VAR.VAR.VAR.VAR.VAR.VAR.^name, $a[2]] | 16:55 | |
camelia | rakudo-moar 31784a: OUTPUT«[Array Scalar Scalar 3]» | ||
ZoffixW | That's pretty weird :P A Scalar container containing and Array container... but what can I go on doing .VAR stuff forever. ? | 16:56 | |
16:56
Ven_ joined
|
|||
ZoffixW | s/what/why/; | 16:56 | |
m: my $x = 42; say $x.VAR.VAR.VAR.VAR.VAR.VAR.VAR.VAR.VAR.VAR.VAR.VAR.VAR.VAR.VAR.VAR.VAR.VAR.VAR.^name | 16:57 | ||
camelia | rakudo-moar 31784a: OUTPUT«Scalar» | ||
ZoffixW | hm. mkay | ||
16:59
^elyse^ joined
|
|||
ZoffixW | m: my $a = (1, 2, 3); .say for @@@@@@@@@@$a; | 16:59 | |
camelia | rakudo-moar 31784a: OUTPUT«123» | ||
ZoffixW | This is fun ^_^ | ||
diakopter | ^_^ | 17:00 | |
17:00
zakharyas left
17:01
Ven_ left,
dakkar left
|
|||
PerlJam | ZoffixW: are you mapping out all the idempotencies? | 17:01 | |
ZoffixW | PerlJam, no, I'm slowly reading P6 docs and today's lesson was docs.perl6.org/language/containers | 17:02 | |
And then I played around a bit :P | |||
TimToady | m: my $a = (1, 2, 3); .say for @@$@@$$@@@$@$@@$a; | ||
camelia | rakudo-moar 31784a: OUTPUT«123» | ||
17:03
azawawi joined
|
|||
azawawi | im back :) | 17:04 | |
Skarsnik: ping | |||
Skarsnik | pong | 17:05 | |
dalek | Iish: ae71b30 | (Sylvain Colinet)++ | lib/DBDish (2 files): added a fetchrow_typedhash method to have a hash value with correct perl6 type instead of all Str |
||
Iish: bf33b1b | (Sylvain Colinet)++ | README.pod: Add a small sniped of doc about fetchrow_typedhash |
|||
Iish: 7f3cbd6 | (Zoffix Znet)++ | / (3 files): Merge pull request #25 from Skarsnik/master added a fetchrow_typedhash method to have a hash value with correct p… |
|||
azawawi | Skarsnik: It was crashing on DBIish.pm6. i use this repo github.com/azawawi/DBIish | ||
AlexDaniel | “I put all my POD at the end of the file, because the '=begin pod' lines seem to confuse cperl-mode's syntax highlighting in emacs” – why if there is perl6-mode? | 17:06 | |
azawawi | Skarsnik: github.com/azawawi/DBIish/blob/mas...ish.pm6#L9 # to be exact | ||
Skarsnik: are you on windows also? | |||
Skarsnik | No, but I have my nose in DBIsh and Pg.pm x) | 17:07 | |
dalek | Iish: 87c02a1 | (Zoffix Znet)++ | README.pod: Fix typos |
||
17:08
raiph left
|
|||
dalek | Iish: 0e62d3b | (Zoffix Znet)++ | README.pod: Use POD and not Markdown syntax |
17:09 | |
Skarsnik | You don't get in error in Pg.pm (or the drivers used)? | ||
17:09
raiph joined
|
|||
azawawi | Skarsnik++ # fetchrow_typedhash | 17:10 | |
17:10
yqt left
|
|||
dalek | kudo/nom: ada0ad8 | TimToady++ | src/core/ (2 files): add a backref method for Array matches For an Array of matches, we need to distinguish stringifying the Array (which always puts spaces between) from asking for the backref to what was matched, which includes any intervening delimiters instead of spaces. |
17:13 | |
Skarsnik | I am off for a while (2h) | ||
17:17
softmoth_ joined
|
|||
Skarsnik | hm I forget today is a day off x) | 17:18 | |
timotimo | a day of offness? | ||
diakopter | offense | ||
Skarsnik | :m sub foo($something, *%f, :$named = 0) {say %f.perl}; foo(1, :a(0), :b(1), :named(1)); | 17:20 | |
m: sub foo($something, *%f, :$named = 0) {say %f.perl}; foo(1, :a(0), :b(1), :named(1)); | 17:21 | ||
camelia | rakudo-moar 31784a: OUTPUT«{:a(0), :b(1), :named(1)}» | ||
17:21
xpen joined
|
|||
Skarsnik | interesting, how I work around that? | 17:22 | |
ilmari | m: sub foo($something, :$named = 0, *%f) {say %f.perl}; foo(1, :a(0), :b(1), :named(1)); | ||
camelia | rakudo-moar 31784a: OUTPUT«{:a(0), :b(1)}» | ||
Skarsnik | oh thx, so *% does not count as positional? | 17:23 | |
stmuk_ | hmmm rakudo is maybe a little faster than a week or so back (according to one superficial and probably misleading benchmark) | ||
timotimo | stmuk_: could very well be; how recent is the rakudo you've measured? | 17:24 | |
jnthn | TimToady: I ain't having much luck with the backtracking/capture bug :( | 17:25 | |
timotimo | stmuk_: because i just landed a patch today that makes :D and :U return types noticably cheaper | ||
17:25
dakkar joined
17:26
ZoffixW left
|
|||
jnthn | TimToady: The place I thought we were not chopping enough off the cstack, it seems we actually are. | 17:26 | |
Or at least, I can't figure out why we'd not be | |||
17:26
xpen left
|
|||
diakopter | jnthn: what's the line no | 17:26 | |
stmuk_ | timotimo: I built a few mins ago and this is using a sequential iteration for pi | ||
timotimo | ah | 17:27 | |
pippo | Can anybody tell me if "sink context" means context where lazi things loose their laziness? | ||
timotimo | i wonder if it comes into play noticably there; is that from perl6-bench or something? | ||
stmuk_ | yes it was imported into japh's suite | ||
timotimo | pippo: that sounds like a reasonable explanation for what that means | ||
TimToady | pippo: sink means eager plus throw everything away | ||
timotimo | stmuk_: i can test before/after my patch if it impacts that! :D | 17:28 | |
jnthn | ooh | ||
pippo | TimToady: timotimo: thank you. | ||
jnthn | Or I did the patch wrong. | ||
17:29
rindolf left
|
|||
diakopter | prof-m: signal(SIGINT).act: { exit } | 17:29 | |
camelia | prof-m 273e89: OUTPUT«Writing profiler output to /tmp/mprof.html» | ||
.. Prof: p.p6c.org/19efb1e | |||
diakopter | heheh, it didn't report the segfault | 17:30 | |
timotimo | stmuk_: what kind of "scale" would you give as a parameter? | ||
jnthn | TimToady: I have a patch that does seem to fix things | 17:31 | |
TimToady | YaY | ||
jnthn | It passes all the NQP qregex tests, and doesn't bust the NQP/Rakudo build; spectesting now | 17:32 | |
TimToady | (politician with combover flashing double victory) | ||
17:32
pat_js joined
|
|||
stmuk_ | 100000 | 17:32 | |
17:32
llfourn joined
|
|||
jnthn wonders how long until that's in Unicode... | 17:32 | ||
timotimo | thanks | ||
TimToady | jnthn: the backref matcher wants to use the new backref method, or an unreasonable facsimile thereof | 17:33 | |
timotimo | stmuk_: wanna know how to make that benchmark 2x faster with a very simple change? | 17:34 | |
stmuk_ | timotimo: that takes about 11 secs on a 4 yr old macbook which is maybe a sec or two faster than before (v roughly) | ||
timotimo: sure | |||
using Int $i? | |||
timotimo | @*ARGS[0] is not an Int unless you .Int it, so <= SCALE intifies the string on every iteration | ||
TimToady | arguably the from/to/backref methods are almost worth mixing into List/Array as a role when those are used to return lists of matches | 17:35 | |
jnthn | TimToady: OK; I won't have time for that today (gotta go run an errand, then cook us some dinner, and then I'm meant to rest :)) | ||
AlexDaniel | .u ṏ | ||
yoleaux | U+1E4F LATIN SMALL LETTER O WITH TILDE AND DIAERESIS [Ll] (ṏ) | ||
jnthn | TimToady: The regex patch has made it through S06 | ||
TimToady | we're glad someone's looking after you now :) | ||
jnthn | Uh, S05, even | ||
stmuk_ | I did wonder about specifying data types but it didn't make much difference when I first tried it .. and then I wouldn't be comparing the same thing historically | ||
diakopter | jnthn: push, push push! | 17:36 | |
timotimo | m: say "not intifying the cmdline argument on every iteration makes the benchmark take only { 6.37 * 100 / 13.8 }% of the original time " | ||
um, camelia? | |||
camelia | rakudo-moar ada0ad: OUTPUT«not intifying the cmdline argument on every iteration makes the benchmark take only 46.159420% of the original time » | ||
stmuk_ | timotimo: actually the one I was using was gist.github.com/stmuk/074811935f16a6725f76 | 17:37 | |
timotimo | that'd not have that problem | ||
TimToady | m: my $abc = " a,b,c, "; $abc ~~ /(\w)+ % ","/; say $0.backref | 17:39 | |
camelia | rakudo-moar ada0ad: OUTPUT«a,b,c» | ||
timotimo | ah, i see here that my patch - which will remove calls to accepts_type - would throw out about 4% of the total run time | ||
so not insanely good, but i'll take it :3 | |||
stmuk_ | better than a point in the eye with a sharp stick | 17:41 | |
TimToady | well, depends on whether the sharp stick is called a 'scalpel' :) | 17:42 | |
TimToady having been poked in the eye with several of those over the years... | |||
17:43
raoulvdberge joined
|
|||
diakopter | lasers are sharp too | 17:43 | |
timotimo | updating rakudo makes it a bit faster still | ||
dalek | p: d181c8b | jnthn++ | src/vm/moar/QAST/QASTRegexCompilerMAST.nqp: Don't keep backtracked over captures around. Otherwise we spew them out in the final results, not to mention can't GC so soon. |
||
TimToady has been poked with even more lasers than scalpels | |||
timotimo | m: say "went down to about { 5.7 * 100 / 6.12 }% from before" | 17:44 | |
camelia | rakudo-moar ada0ad: OUTPUT«went down to about 93.137255% from before» | ||
timotimo | stmuk_: wow, i underestimated the savings by almost 2x | ||
dalek | kudo/nom: 79b68bb | jnthn++ | tools/build/NQP_REVISION: Get backtracking/captures fix. |
||
timotimo | the patch makes a lot of things jit that didn't jit before | ||
jnthn | m: say ('rule1 foo rule2 bar' ~~ /^ ( 'rule1' || 'rule2' )* %% (.+?) $/).caps.elems | ||
camelia | rakudo-moar ada0ad: OUTPUT«11» | ||
jnthn | 4 locally :) | 17:45 | |
TimToady | and here in 6 minutes or so | ||
stmuk_ | 1 sec off 12 is about 8% | 17:46 | |
TimToady | we now recompile moar at 8, 28, and 48, since it's decoupled from jvm | ||
azawawi | moritz: github.com/perl6/DBIish/pull/26 # pending travis CI, please test | ||
diakopter | timotimo: push push push | ||
raoulvdberge | jnthn: hey, I watched like 2 Perl 6 talks of you, love them! :-) | ||
timotimo | diakopter: it's already up | ||
jnthn: your intuition was right about inlining code frames in spesh after my patch, compare: | 17:47 | ||
In total, 8703573 call frames were entered and exited by the profiled code. Inlining eliminated the need to create 2496707 call frames (that's 22.29%). | |||
In total, 7004544 call frames were entered and exited by the profiled code. Inlining eliminated the need to create 3195721 call frames (that's 31.33%). | |||
jnthn | m: say ('rule1 foo rule2 bar' ~~ /^ ( 'rule1' || 'rule2' )* %% (.+?) $/).caps[1].elems | ||
camelia | rakudo-moar ada0ad: OUTPUT«1» | ||
jnthn | m: say ('rule1 foo rule2 bar' ~~ /^ ( 'rule1' || 'rule2' )* %% (.+?) $/)[1].caps.elems | 17:48 | |
camelia | rakudo-moar ada0ad: OUTPUT«Method 'caps' not found for invocant of class 'Array' in block <unit> at /tmp/n4XMLvKVvJ:1» | ||
flussence | oof, back to «Stage parse : 90.486» with that last one | ||
diakopter | is that lower or higher XD | 17:49 | |
timotimo | flussence: the difference between with jnthn's latest bump and without was 0 for me | ||
jnthn | m: say ('rule1 foo rule2 bar' ~~ /^ ( 'rule1' || 'rule2' )* %% (.+?) $/)[1].elems | ||
camelia | rakudo-moar ada0ad: OUTPUT«9» | ||
jnthn | raoulvdberge: Glad you enjoyed them :-) | ||
flussence | I wonder how much of these numbers is just noise. Last compile I did was an hour or two ago, it was 87 there. | ||
jnthn | timotimo: Nice! | ||
timotimo | jnthn: thanks for pushing me into doing this! | 17:50 | |
and assisting :) | |||
flussence | still, I'll take a bit of slowdown over more correctness any day :D | ||
(-EBADGRAMMER, but still) | |||
dalek | ast: 3082b66 | jnthn++ | S05-match/capturing-contexts.t: Tests for RT #125285. |
||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125285 | ||
TimToady deletes that line from his todo | 17:51 | ||
timotimo | japhb: how do you feel about changing pi-sequential-iteration to include .Int for the SCALE assignment from the commandline? it reduces the run time to less than half, so it feels like we're really testing int parsing as much as rat arithmetic there! | ||
azawawi | travis-ci.org/perl6/DBIish/builds/90569673 # looks good, any objections on github.com/perl6/DBIish/pull/26 ? | 17:53 | |
jnthn | TimToady: :) | ||
OK, that's me done for today. 2 more xams tickets down. :) | 17:54 | ||
17:54
kb joined
|
|||
TimToady would dance happy jig but is lying in bed lazing | 17:54 | ||
jnthn | & | ||
17:55
kb is now known as Guest48709
|
|||
pippo | TimToady: you are not in sink context then :-)) | 17:55 | |
TimToady is already sunk | 17:56 | ||
azawawi | going to merge it since nobody objected... last chance :) | ||
pippo | :-) | ||
timotimo | azawawi: i didn't review the code, but i +1 the idea behind that pr :) | 17:57 | |
dalek | Heuristic branch merge: pushed 18 commits to DBIish by azawawi | ||
17:58
Mhoram joined
|
|||
azawawi | now to getting github.com/perl6/DBIish/blob/maste...ples/pg.p6 to work on windows :) | 17:58 | |
17:58
srvsh joined
17:59
sprocket left
|
|||
Skarsnik | azawawi, did you look if Pg set an env variable with the lib location? | 18:02 | |
azawawi | github.com/perl6/DBIish/blob/maste.../Pg.pm6#L6 | 18:03 | |
Skarsnik: i will look at it | |||
18:03
dakkar left
|
|||
timotimo | what in the world ... | 18:06 | |
diakopter | ... | ||
timotimo | &infix:<div> somehow ends up calling .sink on a List | ||
jdv79 | Zoffix: not much has changed since i wrote about it. I just have some local changes for metacpan that i'll try to push up tonight | 18:07 | |
pause works. minimally ^H | 18:08 | ||
18:09
Actualeyes left
|
|||
timotimo | it grabs a WVal from somewhere and calls .sink on it ... why?! | 18:09 | |
jdv79 | next big thing is proabbly installer support but we're kinda blocked i think until hte CUR work is sufficiently complete | ||
18:11
abaugher left
18:15
sprocket joined
|
|||
nine | Just a quick update on that ^^. Sadly no progress since last Thursday since I've cought myself a nasty cold :( | 18:16 | |
18:18
pat_js left
|
|||
pippo | git pull | 18:18 | |
diakopter | Already up-to-date. | 18:19 | |
18:19
rindolf joined
|
|||
pippo | Sorry wrong terminla | 18:19 | |
jdv79 | ok, cool | 18:20 | |
pippo | :-) | ||
timotimo | nine: yeah, i'm also in the nasty cold place ... this one i have right now seems to have an extraordinarily long tail :( | ||
18:20
ZoffixW joined
|
|||
ZoffixW | jdv79, so it's basically a metacpan.org/ code that loads P6 modules instead? | 18:21 | |
timotimo | ZoffixW: is fallout 4 already in your hands? | 18:22 | |
if so, i'm surprised we get to see you at all :D | |||
ZoffixW | timotimo, it is. I played 9 hours yester. | ||
ugexe was just about to fulfill his fallout addiction | |||
yoleaux | 09:06Z <azawawi> ugexe: please see github.com/ugexe/zef/issues/71 | ||
10:06Z <mrf> ugexe: Ok I will investigate replacing some of the | with || (Though some of them specifically should be |) and see if that helps. | |||
ZoffixW | yesterday | ||
DrForr | He's typing . Ergoo, no. | 18:23 | |
ZoffixW | timotimo, what can I say. I have a high work ethic. | ||
(what I mean is I'm at $work right now) | |||
^_^ | |||
18:24
Guest48709 left
|
|||
timotimo | hah | 18:24 | |
good job | |||
diakopter | $work is for sleeping with your eyes open | 18:25 | |
jdv79 | ZoffixW: its a minimally modified seperate instance of that code, yes | 18:26 | |
since there are virtually no p6 modules on cpan the prototype instance on hack loads up the current ecosystem | 18:27 | ||
this is all in the blogs posts i made a few weeks ago:) | |||
ZoffixW | jdv79, what's the link: I don't think I've read them all | ||
jdv79 | like i said - i've made some progress on the metcpan stuff since then that i'll try to push soon | ||
ZoffixW | I mean the blog posts | 18:28 | |
jdv79 | also have ot cleanup some namings so those brances will be rebased shortly so maybe don't do anything big on them | ||
unless you want to untlaanlge a git mess | |||
i mean force pushed | |||
18:29
^elyse^ left
|
|||
jdv79 | ZoffixW: jdv79.blogspot.ie/search?updated-mi...-results=2 | 18:29 | |
awesome urls, blogspot:( | 18:30 | ||
timotimo | twitter.com/gamehawk/status/664496421282803712 ... has a point! | 18:32 | |
azawawi | ZoffixW: so how is fallout 4? addictive? :) | 18:33 | |
18:33
kjs_ joined
|
|||
ZoffixW | azawawi, it's alright. Skyrim with guns and zombies :P | 18:34 | |
And Sims... I guess (you get to build your santuary and tell your citizens what to do; like grow crops, etc) | 18:35 | ||
18:35
samb1 joined,
^elyse^ joined
|
|||
jdv79 | timotimo: to be expected, right? | 18:36 | |
ZoffixW | jdv79, Neil has a point: jdv79.blogspot.com/2015/10/perl6-an...9675273137 | ||
jdv79 | that's polish | ||
ZoffixW | Especially since P6 dist names don't have to be unique. | ||
jdv79 | well, relatively | ||
18:37
srvsh left
|
|||
timotimo | well, who can do something about that directory listing? | 18:38 | |
jdv79 | ZoffixW: i know. i decided to try the paht of least resistance. | ||
timotimo | i only have access to the wordpress instance, i *think*, that would be enough | ||
but that's another thing we'd have to change each time we do a release | |||
ugh, so much stuff to do | |||
Skarsnik | azawawi, ok pg set nothing in the env, maybe in the registry? | 18:39 | |
jdv79 | think about what it would take to build a cpan ecosystem from scratch | 18:40 | |
sounds vaguely like the build it all outselves POV that generated parrot | 18:41 | ||
and like parrot the p6 on p5's cpan may be a throw away to be learned from | |||
idk:) | |||
ZoffixW | jdv79, on a scale from 0% to 100%, how close do you think we are from replacing modules.perl6.org with that metacpan instance? | ||
jdv79 | that's likely not gonna happen because cpan is about actual dists | 18:42 | |
and metacpan is built on that | |||
18:42
sufrostico left
|
|||
jdv79 | we could possibly build one adapted to github and periodic snapshots or tags but that's not what i'm working on | 18:43 | |
though the way i fed the ecosystem into the protype instance is basically that | 18:44 | ||
18:44
srvsh joined
|
|||
ZoffixW | jdv79, the reason I ask is because I'm working on a mojolicious powered version of modules.perl6.org; So far it's essentially what we currently have, but I was wondering how far I should take it... For example, I'm replacing the current badge system with a single Kwalitee metric. | 18:45 | |
And I was wondering if that effort was a waste. But if you're saying p6 metacpan won't replace modules.perl6.org... | |||
psch | m: multi f(int $x is rw) { "rwint" }; multi f(int $y) { "int" }; my int $z = 0; say f $z # this is standing in the way of my multicacheadd work... /o\ | ||
camelia | rakudo-moar 79b68b: OUTPUT«int» | ||
ZoffixW | ¯\_(ツ)_/¯ | ||
jdv79 | yeah, so far 2 seperate ecosystems | ||
psch | and i don't quite get what exactly sort_dispatchees_internally actually does... o.o | 18:46 | |
s/lly/l/ | |||
ZoffixW | Alright. I'll continue hacking on it then :) | ||
azawawi | finally... got it :) | ||
ZoffixW | jdv79, And once I finish Fallout4, I'll see if I can give a helping hand with your fork of MetaCPAN. | ||
jdv79 | by then it'll likely be done | 18:47 | |
azawawi | set PATH=%PATH%;C:\Program Files\PostgreSQL\9.3\bin # libpq.dll on windows depends on libeay32.dll | ||
18:47
Sqirrel joined
|
|||
ZoffixW | ^_^ | 18:47 | |
azawawi | :) | ||
jdv79 | if you disappear like sri did with WoW | ||
azawawi | jdv79: im a wow player and im here :) | ||
jdv79 | iirc he disappeared for weeks to months in the early ays of Catalyst | 18:48 | |
[Coke] | (make test jvm) recent history, it's been two failing test files. | ||
(both of which are ticketed, IIRC) | |||
ZoffixW | I clocked about 600 hours on Warframe :P | ||
azawawi | Skarsnik: libpq.dll on windows depends on libeay32.dll... go figure :) | ||
jdv79 | for sure, i'd love to see the whole thing built with p6 | ||
but how practical is that - i'm just repaeting myself now. anyway, back to work. | 18:49 | ||
ZoffixW | Good plan :P) | ||
timotimo has clocked 420 hours on Natural Selection 2 | 18:58 | ||
that's probably the game i have the most time played | |||
though, i've played many, many, many hours of smash bros melee, too | |||
_sri_ | jdv79: for the horde! | 19:00 | |
ZoffixW | :P | ||
19:01
andreoss left
|
|||
jdv79 | so definitiveness doesn't factor into MMD? | 19:02 | |
19:02
Mhoram is now known as abaugher
19:04
raiph left
|
|||
dalek | ast: 5c7ae5c | lizmat++ | S32-str/sprintf.t: Unfudge now passing tests on rakudo.moar |
19:05 | |
TimToady | grondilu: you can actually get away with Z+= there because of basic parser greediness, though maybe you want the brackets for clarity | 19:06 | |
azawawi | quick question, how can modify %*ENV<Path> inside a script that is going to load a DLL | ||
TimToady | BEGIN %PROCESS::ENV<Path> = ... maybe | 19:07 | |
or maybe INIT | |||
I guess it depends when the DLL is being loaded... | 19:08 | ||
lizmat | m: BEGIN %*ENV<foo> = "bar" | ||
camelia | ( no output ) | ||
lizmat | I don't think there're a need to refer to PROCESS:L | 19:09 | |
TimToady | grondilu: I daresay Z+= may become a enough of an idiom that we don't need the brackets | ||
lizmat | All tests successful. | ||
Files=1073, Tests=50150, 226 wallclock secs (12.40 usr 3.81 sys + 1381.55 cusr 126.72 csys = 1524.48 CPU) | |||
feels like we picked up some speed today | 19:10 | ||
timotimo | hey lizmat | ||
how was FRA? | |||
lizmat | still not at FRA, we're trying to determine whether it makes sense | ||
since the same flight we want to take tomorrow was cancelled today, thanks to LH being on strike | 19:11 | ||
so most likely it's going to be cancelled tomorrow as well | |||
19:12
ZoffixW left
|
|||
azawawi | lizmat: something is magically here... if i set path outside the dll loads just fine, inside the script... nope... | 19:14 | |
TimToady: thx :) | |||
19:14
raiph joined,
abaugher left
|
|||
timotimo | lizmat: oh, trouble :| | 19:14 | |
Skarsnik | hm maybe this should be done before compile time? | 19:15 | |
for the DLL stuff | |||
pippo | m: "abc" ~~ tr/abc//; | 19:16 | |
camelia | rakudo-moar 79b68b: OUTPUT«Cannot modify an immutable Str in block <unit> at /tmp/ilKOWsP9lE:1» | ||
19:17
abaugher joined
|
|||
pippo | m: "abc".tr/abc//; | 19:17 | |
camelia | rakudo-moar 79b68b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/VvRawwXQDTMissing required term after infixat /tmp/VvRawwXQDT:1------> 3"abc".tr/abc//7⏏5; expecting any of: prefix term» | ||
19:17
abaugher left
19:18
zacts left
|
|||
psch | m: "abc".trans/abc//; | 19:19 | |
camelia | rakudo-moar 79b68b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/cuCVXko_oMMissing required term after infixat /tmp/cuCVXko_oM:1------> 3"abc".trans/abc//7⏏5; expecting any of: prefix term» | ||
lizmat | commuting to FRA anyway :-( & | ||
psch | oh ehh | ||
m: "abc".trans(/abc/ => ''); | |||
camelia | ( no output ) | ||
pippo | psch: so tr/// is gone ? | 19:20 | |
psch | pippo: no, you saw it work with ~~ | ||
azawawi | i bet NativeCall is using another stored environment path variable | ||
azawawi takes a look | |||
psch | pippo: it's just that the LHS to ~~ needs to be a container | ||
m: $_ = "abc"; tr/abc//; .say | |||
camelia | rakudo-moar 79b68b: OUTPUT«» | ||
DrForr | The Hilton at FRA isn'... but they won't worry about that. | 19:21 | |
psch | m: $_ = "abcDEF"; tr/abc//; .say # a bit more meaningful | ||
camelia | rakudo-moar 79b68b: OUTPUT«DEF» | ||
19:21
zengargoylew joined
|
|||
pippo | $_ = "abc"; $ ~~ tr/abc//; .say | 19:21 | |
m: $_ = "abc"; $ ~~ tr/abc//; .say | |||
camelia | rakudo-moar 79b68b: OUTPUT«Method 'trans' not found for invocant of class 'Any' in block <unit> at /tmp/jl3xfpmcLz:1» | ||
pippo | m: $_ = "abc"; $_ ~~ tr/abc//; .say | ||
camelia | rakudo-moar 79b68b: OUTPUT«» | ||
pippo | psch: TY! | ||
psch wonders if we want TR/// to mirror s/// and S///... | 19:22 | ||
19:22
Sqirrel left,
Sqirrel joined
19:23
abaugher joined
|
|||
azawawi | github.com/azawawi/DBIish/blob/mas...ples/pg.p6 # not working on windows because of libpq.dll needing a path change... | 19:23 | |
Skarsnik | azawawi, try putting that before the use? | 19:24 | |
19:25
abaugher left
19:26
abaugher joined
|
|||
azawawi | same thing | 19:26 | |
dalek | albot: 676118c | TimToady++ | evalbot.pl: try to not crash on exec failure |
||
lucs | Question: fpaste.scsys.co.uk/501318 | 19:27 | |
azawawi | somewhere %*ENV<Path> is being saved in nativecall... im using rakudo star 2015.09 at my home PC... | ||
hoelzro | awwaiid: I don't know much about DLL loading on Windows, but does the casing matter? Path vs PATH? | ||
azawawi | hoelzro: it is azawawi :) | ||
19:27
camelia left
|
|||
hoelzro | oops, sorry! | 19:28 | |
azawawi | hoelzro: yes case does matter :) | ||
19:28
camelia joined
|
|||
Skarsnik | azawawi, does DBI load Pg.pm or it's only done at the create call ? | 19:28 | |
TimToady | nqp: say(42) | ||
azawawi | Skarsnik: Pg is loaded at connect | ||
Skarsnik | Ok that weird then | ||
19:29
ChanServ sets mode: +v camelia
|
|||
camelia | nqp-parrot: OUTPUT«Can't exec "./rakudo-inst/bin/nqp-p": No such file or directory at lib/EvalbotExecuter.pm line 193.exec (./rakudo-inst/bin/nqp-p /tmp/tmpfile) failed: No such file or directoryLost connection to server irc.freenode.org.» | 19:29 | |
..nqp-moarvm: OUTPUT«42» | |||
..nqp-jvm: OUTPUT«## There is insufficient memory for the Java Runtime Environment to continue.# pthread_getattr_np# An error report file with more information is saved as:# /tmp/jvm-6428/hs_error.log» | |||
TimToady | \o/ | ||
Skarsnik | hm, maybe setting %*ENV does not do a setenv? | ||
hoelzro | it should | 19:30 | |
TimToady | lovely word, "should" | ||
hoelzro | =) | ||
moritz | iirc it doesn't | 19:31 | |
hoelzro | it does on my Linux box | ||
hmm | 19:32 | ||
maybe not, actually | |||
my test was poorly chosen, it seems | 19:33 | ||
%*ENV<FOO> = 17; run('env') outputs FOO in the child | |||
azawawi | Did some logging: Changed Path -> install_driver( Pg ) -> Loaded Pg! | ||
hoelzro | but looking at /proc/self/environ after changing %*ENV doesn't show FOO | ||
Skarsnik | hm nativecall has stuff for c++, I wonder how far that work | ||
azawawi | so basically set env is not picked up or cached somewhere | ||
hoelzro | Skarsnik: it works for a suprising amount | 19:34 | |
Skarsnik | It can export c++ class? | 19:35 | |
or it just C compiled as c++ x) | |||
hoelzro | FROGGS++ included some good examples in the test suite | ||
you can use it to create and call methods on C++ objects | 19:36 | ||
azawawi | hoelzro: did a `shell "SET Path";` which should list paths and the path is set correctly... something is wrong here | 19:37 | |
hoelzro | azawawi: I think that child processes are getting the correct env | ||
azawawi smells weird magic | |||
Skarsnik | na it's probably set env for child | 19:38 | |
timotimo | hoelzro: i'm pretty sure we only change the environment when calling children, but we're not modifying our own process' environment | ||
hoelzro | but I don't think modifying a key under %*ENV actually modifies the current process' env, as moritz said | ||
timotimo | because we can safely pass a new environment on exec | ||
you can still use setenv via nativecall | |||
jdv79 | so a BUILD in a role is broken on purpose or just bug or NYI? | ||
azawawi tests the child env theory | |||
hoelzro | timotimo: is it unsafe to modify the current process' env? | ||
jdv79 | says it can't touch the attr:( | ||
azawawi | yup, we dont change our own process environment | 19:39 | |
i created a init.p6 which did changed the env and then shell('perl6 test.p6')... worked like a charm | 19:40 | ||
19:41
mr_ron left,
ZoffixW joined
|
|||
azawawi | timotimo: how can i do that? | 19:41 | |
ugexe | my %custom-env = $*ENV; $custom-env<some-path> = "blah"; shell('perl6 test.p6', :env(%custom-env)) should work | ||
hoelzro | I'm kind of surpised that %*ENV isn't a friendly wrapper around getenv/setenv | ||
ZoffixW | lucs, why is the output expected to be 'quzY'? | ||
lucs, where is that value coming from? | |||
timotimo | azawawi: sub setenv is native(Str) | ||
lucs | ZoffixW: It's about the last line in the code: Foo.new(23).show_quz(); | 19:42 | |
dalek | ast: 53e1022 | usev6++ | S32-str/sprintf.t: Move tests for RT #116280 to existing block Also make tests a bit more varied and unfudge for rakudo.jvm |
||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=116280 | ||
lucs | ZoffixW: D'oh! Sorry, I see what you mean. | ||
ZoffixW: I've been abstracting away at the code, but I went a bit too far here :) | 19:43 | ||
ZoffixW: The new() in the FooY class would set the quz to 'quzY' was the intention. | |||
19:44
Ven_ joined
19:45
nowan joined
|
|||
Skarsnik | azawawi, _putenv on win32 | 19:45 | |
ZoffixW | lucs, in its new {} add return self.bless(:quz('quzY')); | ||
lucs, fpaste.scsys.co.uk/501320 | 19:46 | ||
Skarsnik | azawawi, like this _puvtenv("VAR=value"); | ||
lucs | ZoffixW: Gotcha. Thanks! | ||
19:46
mr_ron joined
19:47
srvsh left
|
|||
jferrero | m: %x = (a => 1, b => 2); say "{%x}" | 19:47 | |
camelia | rakudo-moar 79b68b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/8C1f0oiWtwVariable '%x' is not declaredat /tmp/8C1f0oiWtw:1------> 3<BOL>7⏏5%x = (a => 1, b => 2); say "{%x}"» | ||
19:48
srvsh joined
19:49
dha joined
|
|||
TimToady | jferrero: needs a 'my' in front | 19:49 | |
jferrero | m: my %x = (a => 1, b => 2); say "{%x}" | 19:50 | |
camelia | rakudo-moar 79b68b: OUTPUT«a 1 b 2» | ||
jferrero | :) | ||
19:50
geraud joined
|
|||
jferrero | I'm reading "Using Perl", and page 11 say that Hashes are interpolated with newlines, not spaces. | 19:52 | |
TimToady | looks like a bug to me; the specs also say newline | 19:54 | |
dalek | osystem: 6f504e5 | cygx++ | META.list: Add Image::RGBA::Text For those of us who prefer to use the text editor for image manipulation. cf github.com/cygx/p6-image-rgba-text |
||
19:55
Ven_ left,
Ven__ joined,
rindolf left
|
|||
Hotkeys | heyo my major and one of my hobbies comes together | 19:55 | |
talking about metaphors and teacher used a yoyo in an example | |||
i.imgur.com/ThE1YaD.png | 19:56 | ||
azawawi | fixed on windows finally .... github.com/azawawi/DBIish/blob/mas...ples/pg.p6 # weird magic but it works :) | 19:57 | |
#perl6 ++ | |||
hoelzro | azawawi++ | 19:58 | |
19:59
kjs_ left
|
|||
flussence | azawawi++ # keeping DBIish in good shape | 19:59 | |
dalek | Iish: 497e727 | azawawi++ | examples/pg.p6: Update example with code to modify the Path... not working though for some weird reason |
20:00 | |
Iish: 599e1dd | azawawi++ | examples/pg.p6: Set our own process environment since %*ENV<Path> is only working on child processes |
|||
Iish: 80a65b1 | azawawi++ | examples/pg.p6: Add back missing code |
|||
Iish: 3d8467d | azawawi++ | examples/pg.p6: Merge pull request #27 from azawawi/master libpq.dll on windows depends on libeay32.dll |
|||
Skarsnik | I think it should probably be something in nativecall like %*Native<PATH> x) | ||
azawawi | Skarsnik: true also %*ENV<...> documentation should be updated to reflect this vital information | 20:01 | |
hoelzro | it should probably be spec'd, too | ||
20:01
cygx joined
|
|||
cygx | azawawi: I suspect github.com/MoarVM/MoarVM/issues/214 is to blame here | 20:02 | |
azawawi | as an ex-visual c++-er, i agree :) | 20:03 | |
20:05
CIAvash`` left
|
|||
azawawi | cygx: left a comment. thanks :) | 20:06 | |
so now sqlite, postgresql and mysql are working on linux and windows... Enjoy :) | 20:07 | ||
ZoffixW | azawawi++ | 20:08 | |
dalek | ecs: 366d8ad | TimToady++ | S02-bits.pod: pairs of hash should be separated by newline |
20:09 | |
20:09
darutoko left,
Ven__ left
|
|||
cygx | azawawi++ indeed for doing something useful - me, on the other hand, I'm just generating pictures of camelia ( github.com/cygx/p6-image-png-infla...camelia.p6 ) | 20:10 | |
20:10
diana_olhovik joined
20:11
raiph left
20:15
Ven_ joined
|
|||
ZoffixW | :o | 20:16 | |
20:17
domidumont left,
kjs_ joined
|
|||
Skarsnik | hm is there a nice way to test a .travis.yml? instead of making lot of commit? | 20:17 | |
hoelzro | Skarsnik: I make commits and push them to a branch | 20:18 | |
that way, you don't need to clutter up history when you've figured it out | |||
Skarsnik | let find what obscure git command I need to learn for that x) | 20:20 | |
dha | I notice that 5to6-nutshell has been titled so it doesn't sort with the other 5to6 docs. Wasn't that the point of renaming it? | 20:22 | |
20:24
xpen joined
|
|||
ZoffixW | Right, there's this: github.com/perl6/doc/issues/158 | 20:24 | |
hoelzro | Skarsnik: just git push origin HEAD:travis-test-commits | ||
and then clean up the branch after you're done | |||
dha | I also note the phrase '"item" variables' in there. There does not seem to be any indication of what that means anywhere. | ||
hoelzro | let me know if you need help | ||
dalek | kudo/nom: 459bc52 | TimToady++ | src/core/Map.pm: use newlines between Hash.Str pairs, as specced |
||
ast: 2147419 | TimToady++ | S02-literals/hash-interpolation.t: tests to make sure Hash.Str uses \n separator (and also that the pairs are sorted before interpolation) |
|||
ast: ddc7e62 | TimToady++ | integration/advent2014-day13.t: more tests of \n in Map.Str |
|||
ZoffixW | hum | ||
20:25
Ven_ left
|
|||
TimToady | jferrero++ for reporting a bug | 20:25 | |
ZoffixW | dha, seems like original grouping title was later undone :) github.com/perl6/doc/commit/542b37...62eb5aa98b | ||
Skarsnik | hoelzro, I did git branch travis, it's not right? | ||
dha | ZoffixW - well, then... I'm not sure what to make of that. | 20:26 | |
ZoffixW | Never fear! Zoffix will take care of it! | 20:27 | |
dha | Yay! | ||
azawawi | travis-ci.org/perl6/DBIish/builds/90597841 # waiting for results :) | 20:28 | |
20:28
xpen left
|
|||
zengargoylew | m: my %x = (a => 1, b => 2); say "{%x}"; say "%x{}" | 20:29 | |
camelia | rakudo-moar 79b68b: OUTPUT«a 1 b 2a 1 b 2» | ||
dha | So, is there a reason that the section on the Scalar sigil refers to '"item" variables"' rather than '"scalar" variables' | ||
? | |||
hoelzro | Skarsnik: you probably want git checkout -b travis | ||
dalek | c: cb54df6 | (Zoffix Znet)++ | doc/Language/5to6-nutshell.pod: Revert to terser title to maintain grouping With the more expressive title, the doc moves down to the middle of the list instead of being grouped with the rest of 5to6 docs. To make the title more explanatory, I expanded the subtitle |
||
hoelzro | git branch travis switches to the travis branch if it already exists | ||
azawawi | so DBIish is now missing mainly slow Oracle, MSSQL (which was sybase), and ...? | ||
20:30
Peter_R joined
|
|||
ZoffixW | CSV! :) | 20:30 | |
dalek | ast: 38931b2 | usev6++ | S05-metasyntax/longest-alternative.t: Add test (fudged 'todo') for RT #122951 |
||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=122951 | ||
ZoffixW | Though we mostly need a Text::CSV module. But there is DBD::CSV in P5 land, IIRC | 20:31 | |
TimToady | m: my %x = (a => 1, b => 2); say "{%x}"; say "%x{}" | ||
camelia | rakudo-moar 459bc5: OUTPUT«a 1b 2a 1b 2» | ||
azawawi | CSV is a database? :) | ||
TimToady | zengargoylew: ^^ | ||
ZoffixW | hahaha :) | ||
RabidGravy | azawawi, Informix, DB2, Firebird ..... ;-) | 20:32 | |
TimToady | and jferrero: ^^ | ||
azawawi DB2 my nemesis... recalls an old project he did | |||
Skarsnik | hoelzro, how do I push? it does not want to push because the branche does not exist (I did: git branch travis; git checkout travis; git add .travis.yml; git commit;) | 20:33 | |
zengargoylew | not sure if i expect "{%x}" to behave differently or not... or expect nl even if that's the spec. | ||
hoelzro | git push origin travis:travis | ||
Skarsnik: ^ | |||
RabidGravy | I'm working on an Xbase thing just for shits and giggles | 20:34 | |
20:34
raiph joined
|
|||
zengargoylew | but it's moot, if you want something specific you can do it yourself. | 20:34 | |
that would make me think @ interpolation would also have nl | 20:35 | ||
Skarsnik | thx for the git help ^^ | 20:36 | |
hoelzro | np! gotta start pulling my weight =) | ||
dalek | Iish: c8c8b2e | azawawi++ | README.pod: Add Travis CI to README.pod |
20:37 | |
Iish: 9571736 | azawawi++ | lib/DBDish/Pg (4 files): The last great refactor... native, statementhandle, connection to make it stuff more maintainable for the future |
|||
Iish: e55f9b5 | azawawi++ | / (5 files): Merge pull request #28 from azawawi/master Add Travis CI to readme and cut Pg into smaller maintainable pieces |
|||
Skarsnik | damn I added on travis after making the push | 20:39 | |
hoelzro | you added? what do you mean? | 20:40 | |
Skarsnik | azawawi, if you are bored on Pg, add pg_array support x) | ||
TimToady | zengargoylew: the point of the default is to make it easy for other programs to split on newlines and tabs, and secondarily to make it readable-ish if you print it out | ||
Skarsnik | hoelzro, I added the repository on travis-ci.org | 20:41 | |
TimToady | but spaces is definitely wrongish for separating pairs, since it can very easily be part of one of the values | ||
hoelzro | ahhh | ||
dha | I think I may be seeing a bug in the code that builds the docs for doc.perl6.org | 20:43 | |
stmuk_ | it doesn't (or didn't) rebuild correctly after the first run | 20:44 | |
dha | There's a section in 5to6-perlfunc.pod that reads "C<-M $fh> => C<$fh.modified>\nC<-A $fh> => C<$fh.accessed>\nC<-C $fh> => C<$fh.changed>" but the web page renders that as a single line. | 20:45 | |
ZoffixW | dha, looks correct to me. To render on separate lines, those three lines need to be indented | 20:46 | |
dha | Oh? ok. | 20:47 | |
20:47
srvsh left,
diana_olhovik left
|
|||
zengargoylew | yeah, i see the good but think to myself "my stuff %stuff{}" is going to be weird. | 20:47 | |
azawawi | Skarsnik: sure... please open an issue :) | ||
ZoffixW | dha, and the :e :d etc block above should likely also be indented to look nicer | 20:48 | |
AlexDaniel | jnthn++ RT #125285 | ||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125285 | ||
zengargoylew | and interpolating % becomes usefull only if it's by itself. | ||
AlexDaniel | jnthn: finally! Thank you very much! | ||
zengargoylew | or a particular single slice | ||
dha | ZoffixW - indeed. will do | ||
ZoffixW | dha, and on line 59 and 64 there too seem to be code examples that aren't indented to be rendered as code blocks | 20:49 | |
dha | In fact, now that I know this, I see a bunch of things that should be indented. | ||
20:49
yqt joined
|
|||
ZoffixW | \o/ | 20:49 | |
20:50
diana_olhovik joined
|
|||
dalek | c: 813e2e1 | (David H. Adler)++ | doc/Language/5to6-perlfunc.pod: Changed heading level of "Alphabetical Listing of Perl Functions" to an |
20:50 | |
c: ea13a15 | (Zoffix Znet)++ | doc/Language/5to6-perlfunc.pod: Merge pull request #193 from dha/master Changed heading level of "Alphabetical Listing of Perl Functions" to an |
|||
Iish: 38427db | azawawi++ | .travis.yml: Explicitly ask Travis CI to start mysql and postgresql. sqlite3 is not a service |
20:51 | ||
zengargoylew | not that interpolating a hash ever made much sense before unless you were expecting just a flat list of kv of no particular usefullness. | 20:52 | |
20:55
diana_olhovik left,
sno left
|
|||
moritz | and you typically don't want to interpolate hashes in any random order anyway | 20:57 | |
21:01
TEttinger joined
|
|||
zengargoylew | i can see it being nice in qq:to// blocks. and the like. otherwise it'll always be "something\n%x{}\nrest of stuff" | 21:02 | |
Skarsnik | is there a shortcut to git add; git commit; git push? | ||
hoelzro | you can make one =) | ||
zengargoylew | git commit -a | ||
skips the add | |||
for things already tracked | 21:03 | ||
moritz | on the other hand, I like 'git add -p' to review my patches before committing | ||
hoelzro | (git add -p)++ | ||
dha | zengargoylew - shouldn't that be -u? | 21:04 | |
hoelzro | I love that command so much I have a short alias for it | ||
zengargoylew | isn't it add -u and commit -a | ||
hoelzro | that and git commit -v | ||
dha | oh, right. sorry, misread. | ||
azawawi | good night everyone... off to sleep :) | ||
ZoffixW | \o | ||
hoelzro | night azawawi | 21:05 | |
21:05
azawawi left
|
|||
Skarsnik | travis computers are quite fast x) | 21:06 | |
zengargoylew wishes travis didn't have to re-install perl6 each time. | 21:07 | ||
RabidGravy | It's possible it can be cached | ||
zengargoylew | maybe after christmas they'll add a standard perl6-released or something. | 21:08 | |
ZoffixW | There's still no perl-5.22 on Travis, so I wouldn't my breath on seeing built p6 :P | ||
zengargoylew | RabidGravy: yeah saw something like that in the docs while troubleshooting other stuff. don't really know how deep i want to dig into travis though... | 21:09 | |
RabidGravy | docs.travis-ci.com/user/caching/ | 21:10 | |
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 20564ba | (Zoffix Znet)++ | mojo-app/t/0 (7 files): Added test suite for ::BuildStats model |
||
zengargoylew | btw, can i steal boilerplate from your modules' documentations | ||
RabidGravy | if that was addressed at me sure | 21:11 | |
:) | |||
zengargoylew | i think it's to you :P not knowing.... i followed links until i saw a mention of Rabid Gravy and thought aha. | 21:12 | |
dha | I suddenly remember that it might be a good idea for there to be a doc in the docs a out how to read the docs. Probably most importantly including a beginner's guide to reading method signatures. | ||
ZoffixW | dha, yeah, something like a "DocMap" | 21:14 | |
dha | *nod* | ||
I'd do it, but I'm not sure I'm qualified to do so. | |||
Skarsnik | does something get changed with nativecall union? I get an error on travis I don't have localy. (1-2 months old rakudo) travis-ci.org/Skarsnik/perl6-gumbo (I don't know if you can saw the build) | 21:16 | |
moritz | fwiw doc.perl6.org/type/Parameter explains most of the signature-y stuff, though probably not the way a newcomer would appreciate | 21:17 | |
dha | moritz - exactly. | 21:18 | |
dalek | ast: 82d2713 | usev6++ | S05-match/capturing-contexts.t: Add test for RT #116895, fudge for JVM |
21:19 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=116895 | ||
zengargoylew | off to commute | 21:20 | |
21:21
zengargoylew left
21:22
raoulvdberge left,
dha left
|
|||
dalek | ast: 1a3a3df | usev6++ | S05-match/capturing-contexts.t: Fix test descriptions |
21:22 | |
21:25
abc joined,
cygx left,
abc is now known as Guest82703
21:28
dha joined
21:30
Guest82703 left
21:32
Ven_ joined
21:34
colomon joined
|
|||
Skarsnik | m: sub foo(*%f) { say "set but no value" if %f<a>:exists and %f<a> eq Nil;} foo(:a); | 21:39 | |
camelia | rakudo-moar 459bc5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tL5fE4DD49Strange text after block (missing semicolon or comma?)at /tmp/tL5fE4DD49:1------> 3alue" if %f<a>:exists and %f<a> eq Nil;}7⏏5 foo(:a); expecting any of: infix …» | ||
Skarsnik | m: sub foo(*%f) { say "set but no value" if %f<a>:exists and %f<AA> eq Any;} foo(:AA); | 21:40 | |
camelia | rakudo-moar 459bc5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/vH5ZoZ1U7PStrange text after block (missing semicolon or comma?)at /tmp/vH5ZoZ1U7P:1------> 3lue" if %f<a>:exists and %f<AA> eq Any;}7⏏5 foo(:AA); expecting any of: infix …» | ||
PerlJam | Skarsnik: $anything eq Nil is a little strange | 21:41 | |
Skarsnik: but, camelia is complaining because you don't have a ; after your closing } of the sub | |||
Skarsnik | m: sub foo(*%f) { say "set but no value" if %f<a>:exists and %f<AA> eq Any;}; foo(:AA); | ||
camelia | ( no output ) | ||
Skarsnik | oh right | ||
m: sub foo(*%f) { say "set but no value" if %f<a>:exists and %f<AA> eq Nil;}; foo(:AA); | 21:42 | ||
camelia | ( no output ) | ||
Skarsnik | m: sub foo(*%f) { say %f<AA>;say "set but no value" if %f<a>:exists and %f<AA> eq Nil;}; foo(:AA); | ||
camelia | rakudo-moar 459bc5: OUTPUT«True» | ||
21:42
Ven_ left
|
|||
Skarsnik | Ah it set to a boolean in this case | 21:43 | |
m: sub foo(*%f) { say %f<AA>;say "set but no value" if %f<a>:exists and %f<AA> eq Nil;}; foo(:AA<1>); | |||
camelia | rakudo-moar 459bc5: OUTPUT«1» | ||
PerlJam | still weird that you're attempting string equality check against Nil | 21:44 | |
Skarsnik | I was trying to figure how to know it just written :AA but not :AA<something> | 21:46 | |
PerlJam | :AA and :!AA are the same as :AA(True) and :AA(False) | 21:47 | |
21:47
zakharyas joined,
ifim joined
|
|||
Skarsnik | XML::Elements bother me to no end that I have to write $xml.elements(find stuff, :RECURSE<42>) (because it take the depth passed in parameter) | 21:48 | |
21:49
dha left
|
|||
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: b4afae1 | (Zoffix Znet)++ | mojo-app/ (12 files): ::BuildStats model now passes the test suite |
21:50 | |
c: 601a8f0 | (David H. Adler)++ | doc/Language/5to6-perlfunc.pod: Indented examples in Filetest for better rendering |
|||
PerlJam had to do a double take ... | |||
c: 3bff9ad | (David H. Adler)++ | doc/Language/5to6-perlfunc.pod: More indentation for better web rendering |
|||
c: 241ab68 | (David H. Adler)++ | doc/Language/5to6-perlop.pod: Added intenting for better web rendering to 5to6-perlop.pod |
|||
c: b9434b1 | (David H. Adler)++ | doc/Language/5to6-perlvar.pod: Added intenting for better web rendering to 5to6-perlvar.pod |
|||
c: 259d2ad | (Zoffix Znet)++ | doc/Language/5to6-perl (3 files): Merge pull request #194 from dha/master Indentations for better web rendering |
|||
PerlJam | I thought someone had written Mojo in Perl6 already | ||
hoelzro | PerlJam: [Coke] started a repo for it | 21:51 | |
PerlJam | yeah, I knew about that, but it didn't get far enough to make an app last time I looked | ||
hoelzro | no, I think it's a few of the utility things | 21:52 | |
21:53
zakharyas left
21:56
kjs_ left
|
|||
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 439dc80 | (Zoffix Znet)++ | mojo-app/ (3 files): Toss Package::Alias |
22:00 | |
22:03
skids left
22:09
kjs_ joined
22:11
Begi11110 left
22:13
colomon left
|
|||
grondilu | m: say [&&] False xx * | 22:13 | |
camelia | rakudo-moar 459bc5: OUTPUT«(timeout)» | ||
grondilu | [&&] is not short-circuiting? | 22:14 | |
psch | i'd guess it reifies before it evaluates | 22:15 | |
grondilu | m: my $n = 0; say [&&] map { $n++; rand < 0.5 }, ^1000; say $n | 22:16 | |
camelia | rakudo-moar 459bc5: OUTPUT«False1000» | ||
22:16
kjs_ left
|
|||
grondilu | no it just keeps on evaluating | 22:16 | |
which is kind of LTA | 22:17 | ||
22:17
kaare_ left
|
|||
psch | m: say [&&] False, { die }() | 22:17 | |
camelia | rakudo-moar 459bc5: OUTPUT«Died in block <unit> at /tmp/j_dRAg575T:1» | ||
psch | right | ||
m: say False && { die }() | |||
camelia | rakudo-moar 459bc5: OUTPUT«False» | ||
22:21
ilbelkyr joined,
bbkr joined
|
|||
dalek | ast: cd2f270 | usev6++ | S05-capture/array-alias.t: Add tests for RT #121061 |
22:22 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=121061 | ||
22:22
ilbelkyr left
22:23
kjs_ joined,
vendethiel left
22:25
ilbelkyr joined,
xpen joined,
ilbelkyr left
22:26
tardisx joined
22:27
^elyse^ left
22:28
kjs_ left
22:30
TEttinger left,
xpen left,
tardisx left
22:31
sno joined
|
|||
zengargoyle | i'm going to blame p6doc for formatting =code sections as =para (not honoring formatting very well). | 22:45 | |
perl6 --doc Module seems to get it right. | 22:46 | ||
22:48
hankache joined
22:49
kjs_ joined
22:55
colomon joined
22:56
donaldh joined
22:59
lizmat joined
|
|||
lizmat waves from FRA | 23:00 | ||
donaldh is seeing some weirdness with Capture | |||
r: (1..*).Capture.perl.say | |||
camelia | rakudo-moar 459bc5: OUTPUT«\(:max(Inf), :min(1))» | ||
..rakudo-jvm 459bc5: OUTPUT«java.lang.NullPointerException in block <unit> at /tmp/tmpfile:1» | |||
donaldh was investigating the NPE on JVM but the Moar behaviour looks wrong too. | 23:01 | ||
m: (1).Capture.perl.say | |||
camelia | rakudo-moar 459bc5: OUTPUT«\()» | ||
donaldh | (1, 2).Capture.perl.say | ||
m: (1, 2).Capture.perl.say | |||
camelia | rakudo-moar 459bc5: OUTPUT«\(1, 2)» | ||
23:01
kid51 joined
|
|||
donaldh | m: (1..*, 1..*).Capture.perl.say | 23:02 | |
camelia | rakudo-moar 459bc5: OUTPUT«\(1..Inf, 1..Inf)» | ||
diakopter | m: (1,).Capture.perl.say | ||
camelia | rakudo-moar 459bc5: OUTPUT«\(1)» | ||
donaldh | So it's confusing a single item list for a named? | ||
diakopter doesn't know.. lizmat? ^ | |||
jdv79 | lizmat: hi | ||
lizmat | diakopter jdv79 o/ | 23:03 | |
I think it's falling back to Mu.Capture | 23:04 | ||
and that attempts to create a hash of the attributes with a value | |||
donaldh | It looks like it's falling back to precedence parens? | ||
lizmat | m: (^10).Capture.perl.say | ||
camelia | rakudo-moar 459bc5: OUTPUT«\(:max(10), :min(0))» | ||
donaldh | (^10,).Capture.perl.say | 23:05 | |
lizmat | now, oddly enough, that doesn't mention excludes-max | ||
donaldh | m: (^10,).Capture.perl.say | ||
camelia | rakudo-moar 459bc5: OUTPUT«\(^10)» | ||
lizmat | that falls back to List.Capture | ||
ah, only the attributes that are marked public | 23:06 | ||
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 4103b34 | (Zoffix Znet)++ | mojo-app/ (10 files): Entire test suite now passes |
23:07 | |
23:07
ZoffixW left
|
|||
lizmat | so, code wise, it does what it is supposed to do | 23:08 | |
23:08
hankache left
|
|||
lizmat | m: 42.Capture.perl.say | 23:09 | |
camelia | rakudo-moar 459bc5: OUTPUT«\()» | ||
lizmat | the reason why that is, is that Int doesn't have any public attributes | 23:10 | |
diakopter | m: Capture(Capture).perl.say | ||
camelia | rakudo-moar 459bc5: OUTPUT«Capture(Capture)» | ||
lizmat | donaldh: what were you trying to achieve? | ||
donaldh | lizmat, I was golfing the NPE on JVM. | 23:11 | |
timotimo | Zoffix: you're coding on the new modules.perl6.org rather than playing fallout? i'm touched! | 23:12 | |
donaldh | lizmat: when I noticed the MoarVM behaviour seems weird. | ||
diakopter | m: ('MAYBE')() | ||
camelia | rakudo-moar 459bc5: OUTPUT«Cannot find method 'CALL-ME' in block <unit> at /tmp/R1tSN3L2yg:1» | ||
23:12
polettix joined
|
|||
lizmat | donaldh: then I suggest at looking at method Capture in Mu.pm | 23:13 | |
polettix | hello all :) | ||
donaldh | Yep. What is Mu.Capture intended to achieve? I.e. is it's behaviour desirable for something? | ||
lizmat | polettix o/ | ||
I have *no* idea | 23:14 | ||
polettix | I (re)started playing with Perl6 and it’s more and more amazing, thanks to everyone | ||
timotimo | glad to hear it! | 23:15 | |
AlexDaniel | polettix: Yeah! | ||
polettix | while playing, I wondered if %hash is still relevant provided that we can equivalently use a scalar pointing to a hash reference (sorry if I’m using Perl5 terminology but this is what I know at the moment :)) | 23:18 | |
donaldh | lizmat: I'm guessing that Mu.Capture does the right thing for classes. | 23:19 | |
polettix | similar considerations go for @array of course. Is there any advantage, other than conveying a sense of “we’re playing with multiple items here” (which is good for readability anyway)? | 23:20 | |
23:20
kjs_ left
|
|||
lizmat | m: my $h = { a => 42, b => 666 }; for $h { .say } | 23:20 | |
camelia | rakudo-moar 459bc5: OUTPUT«a => 42, b => 666» | ||
lizmat | m: my %h = a => 42, b => 666; for %h { .say } | ||
camelia | rakudo-moar 459bc5: OUTPUT«a => 42b => 666» | ||
lizmat | m: my %h = a => 42, b => 666; for %h { .WHAT.say } | 23:21 | |
camelia | rakudo-moar 459bc5: OUTPUT«(Pair)(Pair)» | ||
lizmat | m: my $h = { a => 42, b => 666 }; for $h { .WHAT.say } | ||
camelia | rakudo-moar 459bc5: OUTPUT«(Hash)» | ||
lizmat | polettix ^^^ reasons for selecting either a % or a $ for your hash | ||
psch | m: my $a = 1, 2; say $a.perl; my @a = 1, 2; say @a.perl # similarly | ||
camelia | rakudo-moar 459bc5: OUTPUT«WARNINGS:Useless use of constant integer 2 in sink context (line 1)1[1, 2]» | ||
donaldh | m: class Bob { has $.name; }; Bob.new.Capture.say | 23:22 | |
camelia | rakudo-moar 459bc5: OUTPUT«\(:name(Any))» | ||
23:22
espadrine left
|
|||
lizmat | m: class Bob { has $!name; method name { $!name } }; Bob.new.Capture.say | 23:22 | |
camelia | rakudo-moar 459bc5: OUTPUT«\()» | ||
Skarsnik | polettix, to type thing you need @ and % :) | 23:23 | |
polettix | m: my $h = { a => 42, b => 666 }; say $h{a}; | ||
camelia | rakudo-moar 459bc5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/PIC5HZ8ZJGUndeclared routine: a used at line 1» | ||
Skarsnik | m: my Str @a = 'a', 'b'; my Str $a = ('a', 'b'); | 23:24 | |
camelia | rakudo-moar 459bc5: OUTPUT«Type check failed in assignment to $a; expected Str but got List in block <unit> at /tmp/13lhRq9V8k:1» | ||
23:24
ilbelkyr joined
|
|||
donaldh | m: my $h = { a => 42, b => 666 }; say $h<a> | 23:24 | |
camelia | rakudo-moar 459bc5: OUTPUT«42» | ||
donaldh | m: my $h = { a => 42, b => 666 }; say $h{'a'} | ||
camelia | rakudo-moar 459bc5: OUTPUT«42» | ||
lizmat | polettix: {a} is a P5ism, it's <a> in P6 | 23:25 | |
polettix | yes, just figured it out on the command line :) | ||
m: my $h = { a => 42, b => 666 }; say $h<a>; | 23:26 | ||
camelia | rakudo-moar 459bc5: OUTPUT«42» | ||
donaldh | lizmat: is that a P5ism that should be hinted in the error message? | ||
polettix | m: my %h = a => 42, b => 666; say %h<a> | ||
camelia | rakudo-moar 459bc5: OUTPUT«42» | ||
lizmat | not sure how you could, really | ||
psch | it'd probably be too broad | 23:27 | |
lizmat | as the error comes out of the optimizer, and by that time, it doesn't really know it was used inside a slice | ||
jdv79 | wait. where is shimmerfairy wanking on about p5? | ||
lizmat | .oO( wanking? ) |
23:28 | |
jdv79 | complaining | 23:29 | |
maybe i used it too stretched | |||
donaldh | lizmat: yeah, I realized the impossibility of it just after I asked. | 23:30 | |
Still, the error message is LTA in that context. | |||
lizmat | agree, but this would require something like, but more complex, like lost quote tracking | 23:31 | |
23:33
Ido_ joined
|
|||
Ido_ | Hi, anyone here want to let me in on how to hel pdevelop perl6? | 23:34 | |
23:34
Ido_ is now known as Guest23071
|
|||
Guest23071 | Hi, anyone here want to let me in on how to hel pdevelop perl6? | 23:34 | |
23:34
Peter_R left
23:35
woolfy joined,
woolfy left
23:36
Guest23071 left
|
|||
psch down-arrows the half-finished response... | 23:37 | ||
AlexDaniel | psch: why not send it anyway | ||
psch | well, it'd probably just a bad condensation of rakudo.org/how-to-help/ so it stays down-arrowed :P | 23:40 | |
23:42
Ven_ joined
23:44
idodod joined
|
|||
idodod | help | 23:45 | |
Hi | |||
how can I get onboard to developing perl 6? | |||
AlexDaniel | hi | ||
psch: told ya! | |||
idodod | ? | ||
AlexDaniel | psch: well, now you can do it again :) | ||
idodod: well, it seems like psch was writing a full-blown response to you, but then you suddenly quit :) | 23:46 | ||
psch | idodod: rakudo.org/how-to-help/ is probably the most comprehensive intro for how you can help | ||
idodod | ok, thanks, sorry psch | ||
psch | idodod: there's no need to apologize | 23:47 | |
AlexDaniel | idodod: bug reporting is probably the easiest thing though! | ||
all you have to do is complain! | |||
idodod | :), but I wanna do some work | ||
timotimo | right, you can use perl6 for anything that comes up and tell us what goes wrong, what's too slow, what the documentation doesn't properly explains etc etc | 23:48 | |
idodod | develop | ||
timotimo | hoelzro recently made a little screencast about fixing bugs | ||
AlexDaniel | idodod: then fix bugs? :) | ||
timotimo: where can I see that? | |||
timotimo | i can't find it right now :( | ||
as in: i tried searching for "hoelzro" on youtube and got nothing | |||
oh! | 23:49 | ||
www.youtube.com/watch?v=adUdmol7cLU | |||
that's the video, idodod | |||
23:49
jack_ joined
|
|||
psch | there's also github.com/perl6/perl6-most-wanted...modules.md | 23:49 | |
23:49
Ven_ left
|
|||
timotimo heads off to bed, now that i have new medicine | 23:50 | ||
raiph | idodod: fyi the description of the compiler hacking video timotimo linked says "I suggest you start going through the slides at docs.google...... first." | 23:52 | |
idodod | raiph: thank you | 23:54 | |
raiph | yw | 23:55 | |
23:55
skids joined
23:57
polettix left
23:58
RabidGravy left
|