Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-09-16

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:03 ingy is the 6model in current use?
00:07 eternaleye joined #perl6
00:12 timotimo yes
00:12 timotimo leont: @<foo> should dwim to @($<foo>)
00:26 chenryn joined #perl6
00:26 chenryn m:say 3 ∈ [2, 3, 5, 6];my @w=[2,3,5,6];say  3 ∈ @w;
00:27 chenryn m: say 3 ∈ [2, 3, 5, 6];my @w=[2,3,5,6];say  3 ∈ @w;
00:27 camelia rakudo-moar de1626: OUTPUT«True␤False␤»
00:35 timotimo m: my @w = [2, 3, 5, 6]; say @w.perl; say @w.elems
00:35 camelia rakudo-moar de1626: OUTPUT«Array.new([2, 3, 5, 6])␤1␤»
00:35 timotimo ^- it's a one-element array with a list inside
00:36 timotimo (the [ ] makes a list that's "itemified", so it will turn into a single element)
00:37 araujo joined #perl6
00:38 timotimo o/ araujo
00:40 timotimo do you think we can convince gentoo developers to rewrite that terrible codebase called "emerge" in p6? :P
00:45 cognome joined #perl6
00:48 cognome joined #perl6
00:58 gtodd can camelia do a rough sort of immitation of "timing" a bit of code to eval?
00:58 BenGoldberg m: say now - BEGIN { now };
00:58 camelia rakudo-moar de1626: OUTPUT«0.0279894␤»
00:59 gtodd ah right
00:59 BenGoldberg m: my $a; $a += 1 for 1..1e5; say now - BEGIN { now };
00:59 camelia rakudo-moar de1626: OUTPUT«1.42114722␤»
00:59 gtodd k goodie
00:59 BenGoldberg :)
00:59 gtodd camelia: my apologies for waking you ...
01:01 gtodd hmm lines() can be "eager" now ?
01:01 gtodd cool :)
01:01 BenGoldberg m: .say for eager lines;
01:01 camelia rakudo-moar de1626: OUTPUT«Céad slán ag sléibhte maorga Chontae Dhún na nGall␤Agus dhá chéad slán ag an Eireagal ard ina stua os cionn caor is coll;␤Nuair a ghluais mise thart le Loch Dhún Lúich’ go ciúin sa ghleann ina luí␤I mo dhiaidh bhí gleanntáin ghlas’ G…»
01:02 BenGoldberg Not that I can tell the difference between eager and non-eager, in this case.
01:04 gtodd heh ... oh I see it has to go through a loop once first
01:04 gtodd or something
01:04 Ben_Goldberg joined #perl6
01:05 gtodd well it took the recent perlmonks log parsing "benchmark" from 70 second to 64 seconds my machine
01:05 gtodd doing   perl6 -e 'for eager lines() {  say ~$/ if  m/(<<\w**5>>)/}' 150k-lines-of-log.txt
01:07 gtodd hmm a ~9% speed up I guess ... I always think I should know how to warn perl6 that "the list you are about to use will definitely not be lazy/infinite" or something like that
01:08 araujo timotimo, hi there :)
01:08 araujo timotimo, hehe, it'd be an interesting experiment for sure ;)
01:11 gtodd perl6 -MPerl5 -n -e 'say $1 if /\b(\w{5})\b/' 150k-lines-of-log.txt takes longer ... despite using Perl5 ;-)
01:19 FROGGS_ joined #perl6
01:21 diakopter o_O
01:22 gtodd j/k
01:22 dalek ecosystem: e4aa843 | segomos++ | META.list:
01:22 dalek ecosystem: Add role module 'Pluggable'
01:22 dalek ecosystem:
01:22 dalek ecosystem: Role 'Pluggable' lets you find plugins for your cool module (and other modules)
01:22 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/e4aa8431d7
01:24 slmult0 joined #perl6
01:34 timotimo gtodd, BenGoldberg: the "eager" flag is currently just used by passing :eager to the sub itself
01:34 timotimo we don't have a proper mechanism for the eager prefix to understand the meaning of the :eager flag
01:35 yeahnoob joined #perl6
01:40 Akagi201 joined #perl6
01:45 cognome joined #perl6
01:49 dayangkun joined #perl6
02:11 chenryn joined #perl6
02:11 chenryn joined #perl6
02:21 eternaleye joined #perl6
02:26 dayangkun joined #perl6
02:45 cognome joined #perl6
02:47 noganex joined #perl6
02:55 diakopter https://www.youtube.com/watch?v=wIuFFU8T0kI#t=1525
03:17 molaf joined #perl6
03:18 eternaleye joined #perl6
03:31 rindolf joined #perl6
03:45 cognome joined #perl6
04:02 tokuhirom left #perl6
04:03 kaare_ joined #perl6
04:06 robinsmidsrod joined #perl6
04:14 rindolf joined #perl6
04:31 jerrycheung joined #perl6
04:45 cognome joined #perl6
05:01 dayangkun joined #perl6
05:17 xenoterracide joined #perl6
05:19 kaare_ joined #perl6
05:24 yeahnoob joined #perl6
05:31 anaeem1_ joined #perl6
05:35 anaeem1_ joined #perl6
05:37 FROGGS_ joined #perl6
05:45 cognome joined #perl6
05:47 denis_boyun_ joined #perl6
05:53 denis_boyun_ joined #perl6
05:55 SamuraiJack joined #perl6
05:55 FROGGS_ joined #perl6
05:57 [Sno] joined #perl6
06:03 mr-foobar joined #perl6
06:04 eternaleye joined #perl6
06:21 ren1us joined #perl6
06:22 ren1us weird question.  my very simple code takes up all of my memory in about 20 seconds.  watching it go, it quickly starts jumping a few hundred megs per second.  am i doing something very obviously wrong?
06:22 ren1us https://github.com/ren1us/CO​M320/blob/master/HW1/xmer.p6 <--- the demon code
06:24 darutoko joined #perl6
06:38 FROGGS joined #perl6
06:42 grondilu joined #perl6
06:43 grondilu ren1us: there are quite a few things that are wrong in your code
06:44 grondilu like in '[+] %hash.values ~~ $file.chars - $_'  You probably need some parenthesis here
06:45 grondilu because that means [+] (%hash.values ~~ $file.chars - $_), which I have hard to believe that's what you wanted.
06:45 cognome joined #perl6
06:47 grondilu also:  given foo() -> $str {...}  does not make much sense.  Either you write for foo() -> $str {...} or given foo() {...} but not a mix
06:50 grondilu but in any case I have very little idea of what your code does.
06:50 grondilu (or is supposed to do)
06:51 grondilu you may consider adding a short description of your program in a comment when publishing.
06:51 denis_boyun_ joined #perl6
06:51 ren1us oddly enough, swapping out the givens in there fixed my problem.  i have absolutely no idea why.
06:51 ren1us i'm guessing there's some weird memory suckage happening there
06:53 rhr joined #perl6
06:53 grondilu m: given "foo" -> $str { say "$str" }
06:53 camelia rakudo-moar de1626: OUTPUT«foo␤»
06:54 grondilu I'm amazed this is even syntactically correct.  Maybe it shouldn't?
06:54 grondilu std: given "foo" -> $str { say "$str" }
06:55 ren1us that's an interesting effect
06:55 nine wow, must me very wrong
06:55 aborazmeh joined #perl6
06:55 grondilu did that kill camelia or something?
06:55 ren1us if it works how i suspect it does, it seems like a way to keep large, constant objects from sitting in memory longer than they're actually needed, despite being in scope
06:56 camelia joined #perl6
06:56 grondilu m: say "hi"
06:57 nine grondilu: no, camelia seems to have issues at the moment: http://irclog.perlgeek.de/​perl6/2014-09-15#i_9361228
06:57 camelia std : OUTPUT«Can't chdir to '/home/p6eval/std/snap': No such file or directory at lib/EvalbotExecuter.pm line 163.␤     EvalbotExecuter::_auto_execute('HASH(0x1944cf0)', 'given "foo" -> $str { say "$str" }', 'GLOB(0x1884ec0)', '/tmp/XJAH5cWlLk', 'std') called at lib/EvalbotExecuter.pm…»
06:57 camelia rakudo-moar de1626: OUTPUT«hi␤»
06:57 grondilu ok
06:57 TimToady also, /[^ATCG]/ is very much a Perl 5 regex, you want /<-[ATCG]>/ in P6
06:59 ren1us i'm still quite interested in where the memory exploded
07:01 ren1us found it.  %hash{$file.substr([+] %hash.values, $_)}++; causes the memory usage to skyrocket, but %hash{$file.substr(([+] %hash.values), $_)}++; does not
07:02 telex joined #perl6
07:05 eternaleye joined #perl6
07:06 grondilu quite understably.  You were getting very long substrings in the first case.
07:07 * grondilu is mused by his "understably" typo
07:10 zakharyas joined #perl6
07:11 grondilu lizmat: not sure you want to link π to pi.  Someone may want to have different values and write for instance 'constant π = 355/113;'
07:14 * grondilu refers to commit de1626553c6d83a948040d881c60856da3ed63bf
07:17 FROGGS m: say π; { constant π = 'hi grondilu'; say π }; say π
07:17 camelia rakudo-moar de1626: OUTPUT«3.14159265358979␤hi grondilu␤3.14159265358979␤»
07:18 FROGGS grondilu: argument invalidated :P
07:20 slmult0 joined #perl6
07:21 FROGGS grondilu: also, a for loop sets topic unless you put a param in the signature of the pointy block... why shouldn't given do the same?
07:23 FROGGS grondilu: putting something in a variable for use in a given scope is a nice and useful thing after all... 'given' does not imply to use 'when' on the topic always
07:24 FROGGS same goes for 'if' statements... that's a very very useful thing
07:28 camelia joined #perl6
07:28 FROGGS m: given 42 { when * -> $fortee-too { say $fortee-too } } # I also consider this valid, even when (haha!) it explodes
07:28 FROGGS TimToady: ^^ ?
07:28 FROGGS would be handy to alias the topic to something to e.g. pass it on as nameds to a routine
07:29 FROGGS variable names have a job after all
07:29 camelia rakudo-moar de1626: OUTPUT«Too few positionals passed; expected 1 argument but got 0␤  in block  at /tmp/AHu2YEVLbo:1␤  in block <unit> at /tmp/AHu2YEVLbo:1␤␤»
07:30 FROGGS diakopter: can you please 'mkdir /home/p6eval/std/snap' on feather08?
07:31 FROGGS TimToady: would I be able to do that? given @list { when :(Int,Str) -> $a, $b { ... } }
07:33 FROGGS and I could also imagine that some does a .grep in the 'when' clause and likes to fetch the result
07:38 FROGGS someone*
07:43 FROGGS .tell leont about the 9 revisions of the perl6-p bisect: git bisect log | grep -P '^#' | wc -l # 47  :o(
07:43 yoleaux FROGGS: I'll pass your message to leont.
07:45 grondilu m: say π; constant π = 'hi grondilu'; say pi
07:45 camelia rakudo-moar de1626: OUTPUT«3.14159265358979␤3.14159265358979␤»
07:45 cognome joined #perl6
07:45 grondilu it does work indeed.  My bad.
07:46 FROGGS m: constant π = 'hi grondilu'; say pi
07:46 camelia rakudo-moar de1626: OUTPUT«3.14159265358979␤»
07:47 FROGGS ahh
07:47 FROGGS m: constant π = 'hi grondilu'; say π
07:47 camelia rakudo-moar de1626: OUTPUT«hi grondilu␤»
07:47 grondilu that's good, isn't it?
07:47 FROGGS yes yes
07:47 lizmat gtodd: re http://irclog.perlgeek.de/​perl6/2014-09-16#i_9362201, for now you would have to add :eager to the call to .lines
07:48 lizmat it is intended as a temporary way to give you eagernes
07:49 lizmat ah, I see timotimo already said that
07:49 * lizmat continues backlogging
07:49 slmult0 joined #perl6
07:55 FROGGS p: my int $chars; say $chars + 1 + nqp::add_i(0,0)
07:55 camelia rakudo-parrot de1626: OUTPUT«0␤»
07:55 FROGGS p: my int $chars; say $chars + 1 + nqp::add_i(0,1)
07:55 camelia rakudo-parrot de1626: OUTPUT«2␤»
07:55 FROGGS *g*
07:55 FROGGS that's just insane
07:56 kaleem joined #perl6
07:57 lizmat so it's for all nqp:: ops this happens ?
07:58 FROGGS for all native ops
07:58 FROGGS there is an optimization that gets applied in case the return value is a native... I bet that triggers it
07:58 FROGGS p: my int $chars; say $chars + 1 + nqp::add_I(0,1, Int)
07:58 camelia rakudo-parrot de1626: OUTPUT«2␤»
07:58 FROGGS p: my int $chars; say $chars + 1 + nqp::add_I(0,0, Int)
07:58 camelia rakudo-parrot de1626: OUTPUT«1␤»
07:58 FROGGS yeah, that might be it
07:59 lizmat seems so:
07:59 lizmat $ perl6-p --optimize=0 -e 'my int $chars; say $chars + 1 + nqp::add_i(0,0)'
07:59 lizmat 1
08:00 lizmat $ perl6-p --optimize=2 -e 'my int $chars; say $chars + 1 + nqp::add_i(0,0)'
08:00 lizmat 0
08:00 lizmat optimize=1 is also ok
08:00 FROGGS ohh, good to know :o)
08:00 * lizmat adds this to the ticket
08:00 FROGGS it is the optimization of p6decontrv if I am right
08:04 kjs_ joined #perl6
08:06 FROGGS timotimo: what do you think, will an ordat be much faster than this in Perl6::Optimizer? nqp::substr($op, nqp::chars($op) - 1, 1) eq 'I'
08:07 FROGGS timotimo: in case yes, we should consider changing every nqp::substr(..., 1) to ordat, because like in the shown case we do that for many nodes
08:07 lizmat nqp::ordat is a lot faster, I think, judging from the opt jnthn did to Str.lines
08:08 * grondilu notices optimization stage was extremely long on his machine today
08:08 FROGGS then we should do that
08:10 * grondilu notices mast stage was even longer
08:10 FROGGS rakudo/src$ grep -R 'nqp::substr' * | grep -P '1\s*\)' | wc -l
08:10 FROGGS 57
08:10 FROGGS though, there are also quite some false positives
08:10 FROGGS m: say nqp::ordat("foo", -1)
08:11 camelia rakudo-moar de1626: OUTPUT«Invalid string index: max 2, got -1␤  in block <unit> at /tmp/EzR2Uuk4rc:1␤␤»
08:11 FROGGS p: say nqp::ordat("foo", -1)
08:11 camelia rakudo-parrot de1626: OUTPUT«111␤»
08:11 FROGGS would be handy (and faster) to allow negatives...
08:15 grondilu compilation timings for reference:  http://pastebin.com/4a8BRT0i
08:16 FROGGS grondilu: is that an 486? that's awful
08:17 eternaleye joined #perl6
08:19 grondilu x586
08:19 grondilu sorry i686
08:19 virtualsue joined #perl6
08:20 FROGGS perl6-p "only" takes 116s here for stage parse, and moar only 34s
08:20 grondilu (it's a EeePC netbook, so not the fastest beast ever)
08:20 FROGGS ahhh
08:20 FROGGS still somewhat painful :o)
08:21 grondilu still, usually the longest stage is the parse one, by far.
08:21 grondilu not the optimize one
08:22 grondilu also, the parse stage usually goes below or aroung 200s.  It's been getting worse lately.
08:23 dalek rakudo/nom: 3fae8d2 | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm:
08:23 dalek rakudo/nom: Implement Proc::Async.stdout/stderr
08:23 dalek rakudo/nom:
08:23 dalek rakudo/nom: .stdout_chars/.stdout_bytes/​.stderr_chars/.stderr_bytes not yet removed.
08:23 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3fae8d2061
08:24 dalek roast: 68d79bf | (Elizabeth Mattijsen)++ | S17-procasync/ (2 files):
08:24 dalek roast: Use new Proc::Async.stdout/stderr methods
08:24 dalek roast: review: https://github.com/perl6/roast/commit/68d79bfc41
08:26 dakkar joined #perl6
08:45 cognome joined #perl6
08:58 FROGGS joined #perl6
09:02 AW3i joined #perl6
09:11 timotimo FROGGS: i seem to recall having implemented a compile-time optimization that turns an eqat that compares with a one-character-string into an ordat with the correct ordinal number
09:12 timotimo oh
09:13 timotimo that's only in parrot
09:13 timotimo https://github.com/perl6/nqp/blob/master​/src/vm/parrot/QAST/Operations.nqp#L2174
09:13 timotimo and yeah, ordat should be a whole lot faster
09:13 timotimo and eqat should be a bit faster than substr + eq, too
09:14 nwc10 timotimo: so, you were asking brrt what you should do next... :-)
09:15 timotimo heh.
09:16 timotimo yeah, i can do that. would look like a simple port
09:17 nwc10 can you do it at a level that works on both MoarVM and JVM?
09:20 timotimo not really
09:20 timotimo there isn't a stage that nqp:: ops go through before they reach the QAST Compiler
09:20 timotimo the optimizer could in theory do it
09:20 timotimo but it'd seem cheaper to me to build it directly into the compiler
09:20 timotimo that way we don't have the discovery logic multiple times
09:22 virtualsue joined #perl6
09:23 eternaleye joined #perl6
09:25 * grondilu was reading http://p6weekly.wordpress.com/, most particularily the part about Bags and Mixes and suddenly started wondering if his MultiVector class should not implement the Mixy role or something.
09:27 grondilu (or maybe QuantHash)
09:28 FROGGS >.< https://gist.github.com/FR​OGGS/02305f2e46d8fb3ef0b9
09:29 grondilu std: my UInt $
09:29 * grondilu had forgotten about camelia being gone
09:30 grondilu Isn't UInt supposed to be a thing?  It's apparently NYI on rakudo.
09:30 timotimo d'oh, FROGGS! :(
09:30 camelia joined #perl6
09:31 bjz joined #perl6
09:32 camelia std : OUTPUT«Can't chdir to '/home/p6eval/std/snap': No such file or directory at lib/EvalbotExecuter.pm line 163.␤     EvalbotExecuter::_auto_execute('HASH(0x1944cf0)', 'my UInt $', 'GLOB(0x1b90b80)', '/tmp/59zcGTipgV', 'std') called at lib/EvalbotExecuter.pm line 114␤  EvalbotExecu…»
09:33 grondilu ouch
09:37 denis_boyun_ joined #perl6
09:41 grondilu (subset UInt of Int where * >= 0;) should be easy to add in Int.pm
09:45 cognome joined #perl6
09:48 ggoebel1111119 joined #perl6
09:50 timotimo subsets with a where clause are immensely expensive; this should be handled at the VM level, imo
09:57 jaffa4 joined #perl6
09:59 jaffa4 m: module b; sub c() {} ; module main; use b; b::c();
09:59 camelia rakudo-moar 3fae8d: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/lS5PvnoVdEâ�¤Too late for semicolon form of module definitionâ�¤at /tmp/lS5PvnoVdE:1â�¤------> [32mmodule b; sub c() {} ; module main; [33mâ��[31muse b; b::c();[0mâ�¤    expecting any of:â�¤    â€¦Â»
09:59 leont joined #perl6
10:03 JimmyZ joined #perl6
10:03 JimmyZ timotimo: s/abbrevation /abbreviation/
10:04 timotimo oops, that's an aggrevating mistake :P
10:05 diakopter FROGGS: simply creating that directory will solve it?
10:07 JimmyZ_ joined #perl6
10:09 JimmyZ__ joined #perl6
10:10 diakopter std: 1
10:10 camelia std : OUTPUT«Can't open perl script "tryfile": No such file or directory␤»
10:11 FROGGS diakopter: obviously not :o)
10:11 eternaleye joined #perl6
10:12 jaffa4 hi all what is the search path of dlls in nativecall?
10:14 FROGGS jaffa4: PATH and cwd on windows
10:17 diakopter http://msdn.microsoft.com/en-us/library/wi​ndows/desktop/ms682586(v=vs.85).aspx#stand​ard_search_order_for_desktop_applications
10:20 thilp joined #perl6
10:20 kaleem joined #perl6
10:23 cognome joined #perl6
10:33 JimmyZ_ joined #perl6
10:34 JimmyZ__ joined #perl6
10:46 jantore joined #perl6
10:50 cognome joined #perl6
10:55 jaffa4 m: BEGIN {my $p = 'D:\m\p6\guiultimate\lib\\GUI\Upp.pm6'; say $p.subst(/(.+)\\.+$/,{$0});}
10:55 camelia rakudo-moar 3fae8d: OUTPUT«␤»
10:55 jaffa4 m:  {my $p = 'D:\m\p6\guiultimate\lib\\GUI\Upp.pm6'; say $p.subst(/(.+)\\.+$/,{$0});}
10:55 camelia rakudo-moar 3fae8d: OUTPUT«D:\m\p6\guiultimate\lib\GUI␤»
10:55 jaffa4 bug!!!!!!!!!!!!!!!
10:57 colomon smoker appears to have hung in panda rebootstrap overnight?!?
10:59 FROGGS m: BEGIN { my $p = 'D:\m\p6\guiultimate\lib\\GUI\Upp.pm6'; say $p.match(/(.+)\\.+$/) }
10:59 camelia rakudo-moar 3fae8d: OUTPUT«「D:\m\p6\guiultimate\lib\GUI\Upp.pm6」␤ 0 => 「D:\m\p6\guiultimate\lib\GUI」␤␤»
10:59 FROGGS m: BEGIN { my $p = 'D:\m\p6\guiultimate\lib\\GUI\Upp.pm6'; say $p.match(/(.+)\\.+$/); say $/ }
10:59 camelia rakudo-moar 3fae8d: OUTPUT«「D:\m\p6\guiultimate\lib\GUI\Upp.pm6」␤ 0 => 「D:\m\p6\guiultimate\lib\GUI」␤␤「D:\​m\p6\guiultimate\lib\GUI\Upp.pm6」␤ 0 => 「D:\m\p6\guiultimate\lib\GUI」␤␤»
11:05 cognome joined #perl6
11:13 Woodi joined #perl6
11:17 mattp_ joined #perl6
11:20 jaffa4 m : say "hello"[0..2];
11:20 jaffa4 m: say "hello"[0..2];
11:20 camelia rakudo-moar 3fae8d: OUTPUT«hello␤»
11:20 jaffa4 m: say ("hello"[0..2]);
11:20 camelia rakudo-moar 3fae8d: OUTPUT«hello␤»
11:22 FROGGS m: say "hello"[0]
11:22 camelia rakudo-moar 3fae8d: OUTPUT«hello␤»
11:22 FROGGS that makes it more clear
11:23 leont joined #perl6
11:24 leont Occasionally observing «P6opaque: no such attribute '$!tappers_lock'» errors (from inside the Supply guts), not sure how to handle them
11:24 yoleaux 07:43Z <FROGGS> leont: about the 9 revisions of the perl6-p bisect: git bisect log | grep -P '^#' | wc -l # 47  :o(
11:25 FROGGS leont: that probably means that an nqp::decont is needed somewhere in the gust of rakudo
11:26 * leont doesn't even know what a decont is ;-)
11:26 jnthn More like there's a data race somewhere.
11:26 leont Yeah, I would guess it to be some kind of data race too
11:26 jnthn leont: About the double free, ASAN or Valgrind tends to be good at helping hunt those, without needing to reduce it to something tiny.
11:27 leont Fair point, though I think it was a freak accident anyway. Didn't save the exact code when I hit it :-/
11:28 leont Also, I seem to be observing spinlocking again in Proc::Async :-s
11:28 leont Or at least some part of the async code
11:29 jnthn There's some issue I'm aware of which can result in a core being kept way too busy by the IO event loop thread.
11:29 jnthn That one at least is already on my todo list. :)
11:29 leont :-)
11:29 jnthn So hopefully it's that you're seeing, not some other nasty.
11:30 leont prove6 seems to trigger it quite reliably
11:32 eternaleye joined #perl6
11:32 ab5tract joined #perl6
11:32 jnthn Good to know.
11:33 * jnthn is into the last couple of weeks of this consulting gig in China, and so will have some quality bug-hunting time again in not too long. :)
11:34 ab5tract colomon: hi there
11:35 * jnthn figures he should go nom something :)
11:35 jnthn bbl o/
11:35 nwc10 this is JIT nom?
11:37 dalek rakudo/nom: e99b04b | (Tobias Leich)++ | tools/build/Makefile- (3 files):
11:37 dalek rakudo/nom: allow fudging of Perl6::Optimizer
11:37 dalek rakudo/nom:
11:37 dalek rakudo/nom: It is cheaper to fudge the source compared to check the backend at runtime.
11:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e99b04b67a
11:39 kaleem joined #perl6
11:39 kaleem joined #perl6
11:46 fhelmberger joined #perl6
11:46 mattp_ joined #perl6
11:48 kjs_ joined #perl6
12:05 carlin is there a way to die and suppress the backtrace?
12:05 FROGGS carlin: you could: $*ERR.say("ohh noes!"); exit 1;
12:07 carlin problem with exit is it kills tests
12:07 carlin m: use Test; dies_ok { exit 1 }
12:07 camelia rakudo-moar 3fae8d: ( no output )
12:07 carlin m: use Test; dies_ok { die 1 }
12:07 camelia rakudo-moar 3fae8d: OUTPUT«ok 1 - ␤»
12:09 colomon ab5tract: o/
12:09 colomon ab5tract: I'll try to think about / check on the Bag code today.
12:09 colomon ab5tract: apologies for slow
12:10 brrt joined #perl6
12:11 lizmat FROGGS: you mean: note "ohh noes"; exit 1  :-)
12:13 * carlin would like something like die('oh noes', :!backtrace)
12:13 FROGGS lizmat: probably :o)
12:14 lizmat carlin: you mean the full --ll-exception one ?
12:14 lizmat ah, *no* backtrace
12:19 dayangkun joined #perl6
12:20 lizmat carlin: is this for testing only?
12:20 lizmat if so, I used to have an "urgh" at former $work
12:20 lizmat sub urgh($text) { note $test; exit }
12:21 lizmat then, whenever I was working on a test and wanted it to abort then and there if something went wrong
12:21 dalek rakudo-star-daily: 79728a1 | coke++ | log/ (15 files):
12:21 dalek rakudo-star-daily: today (automated commit)
12:21 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/79728a1507
12:21 [Coke] we're going to be missing a day of the daily run due to server issues, sorry.
12:21 lizmat I did a "urgh"  , or an urgh "something"
12:22 eternaleye joined #perl6
12:23 lizmat [Coke]: too bad, but there are worse things: like continuing server problems
12:23 diakopter hopefully host08 will be stable since it's prepaid forever, supposedly
12:23 diakopter (cloudatcost.com)
12:24 [Coke] diakopter++
12:24 ab5tract colomon: no worries :)
12:24 diakopter although it may fall prey to the same thing host07 did, which is non-upgradability of the kernel due to the virtualization architecture, preventing upgrading of ubuntu release
12:24 carlin lizmat: no, not only for testing
12:24 carlin lizmat: I could use exit, but exit makes tests abort
12:24 diakopter .. but which should be solvable by off-machine backup then re-image and restore
12:25 carlin my use case is a connection is failing, so I want to show an error saying "connection failed, is the daemon running" without spewing out the extra info
12:26 lizmat make it a fail and check for ~~ Failure ?
12:26 lizmat then print the Failure instead of throwing it ?
12:29 dayangkun joined #perl6
12:32 brrt ooh os x has color inversion for the whole monitor
12:32 brrt very amaze
12:33 lizmat also contrast enhance or grayscaling and sizable cursor
12:33 Ulti https://software.intel.com/en-us​/articles/vectorization-in-julia <--- maybe of interest given talk of a list rewrite and the new moar-jit being a thing :P
12:33 yoleaux 13 Sep 2014 19:03Z <raiph> Ulti: Were your 8-22 and 9-11 BioPerl profile reports for the exact same codebase?
12:33 brrt it's not quite font-size enlarging, but it is actually quite nice
12:34 lizmat brrt: and a shortcut key to size the screen
12:34 brrt is that so
12:34 lizmat zoom I should say
12:34 brrt ah
12:34 brrt but zoom is never very useful
12:34 brrt i.e. i only use it when the need is very very high
12:34 brrt because you lose overview of the screen
12:35 lizmat true, but even I use it every now and then when looking at a picture and am too lazy to put it into some kind of editor
12:35 brrt :-)
12:36 Ulti .tell raiph yes the code base was identical but 8-22 might have been without the JIT, which at the time made no difference to the execution time
12:36 yoleaux Ulti: I'll pass your message to raiph.
12:37 brrt Ulti: anything wrong with JIT?
12:38 Ulti nope use it all the time now, and it does speed up the code now so some new optimisation is making itself felt
12:39 nine diakopter: I'm curious. How prevented the virtualization architecture upgrades of the kernel?
12:40 diakopter nine: I think it's Shared Kernel Virtualization
12:40 diakopter such as VServer, Zones/Containers, FreeVPS, OpenVZ
12:40 nine ah
12:41 ivanshmakov joined #perl6
12:41 carlin lizmat: is it possible to do that and still make the program stop running?
12:42 diakopter nine: I suppose it could also be KVM, but I/we don't know how to update the kernel properly
12:43 brrt Ulti: good to hear
12:43 brrt we strive to keep adding features to the JIT :-)
12:46 lizmat carlin: like exit() does?  or what ?
12:46 carlin lizmat: like die() does but without a backtrace
12:47 ab5tract carlin: so, like exit() ? :)
12:47 carlin ab5tract: exit makes tests abort
12:47 carlin otherwise it would work
12:48 ab5tract ah, gotcha
12:48 lizmat carlin: exit makes the current test *file* abort, not all tests, afaik
12:49 carlin lizmat: yeah, that's a problem because I want to test dies_ok
12:49 * jnthn back
12:50 nwc10 sucessfully nommed?
12:50 eternaleye joined #perl6
12:52 carlin and in Perl 5 this is as easy as die("oh noes\n")
12:53 FROGGS carlin: so you want to test dies_ok but you do not want to see a backtrace, right?
12:53 FROGGS m: use Test; dies_ok { die 1 }
12:53 jnthn nwc10: Beef, rice, and a big iron pot cooking it JIT for me at the table seemed pretty successful, yes. :)
12:53 camelia rakudo-moar e99b04: OUTPUT«ok 1 - ␤»
12:54 nwc10 sounds awesome
12:54 FROGGS carlin: this does not print a backtrace, so I don't understand your issue
12:54 jnthn nwc10: Food was. My Chinese is awful though. :)
12:55 carlin FROGGS: it will when the actual code runs
12:55 FROGGS carlin: sure, that is how it is meant to be
12:55 * jnthn should probably learn something more than "hello", "beer", "this thingy", "thanks", and "the bill" :)
12:56 tadzik :P
12:56 carlin waht I want to do is; IO::Socket::INET.new(...); CATCH { die "could not connect, is the daemon running?") }
12:56 carlin but with no backtrace printed
12:57 carlin I could use exit(1) but then dies_ok won't when I test that
12:57 carlin * won't work
12:58 nwc10 jnthn: but you have those 5 working quite well?
12:58 carlin I could just live with it printing the backtrace, but it really should be possible not to
12:58 ivanshmakov joined #perl6
13:00 jnthn m: class QuietException is Exception { has $.message; method gist() { $.message } }; sub die-quietly($message) { QuietException.new(:$message).throw } die-quietly "on noes!"
13:00 camelia rakudo-moar e99b04: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/jWhvljW1ZPâ�¤Two terms in a rowâ�¤at /tmp/jWhvljW1ZP:1â�¤------> [32m{ QuietException.new(:$message).throw } [33mâ��[31mdie-quietly "on noes!"[0mâ�¤    expecting any of:â�¤        method argumen…»
13:00 nine jnthn: is there more to learn?
13:00 jnthn m: class QuietException is Exception { has $.message; method gist() { $.message } }; sub die-quietly($message) { QuietException.new(:$message).throw }; die-quietly "on noes!"
13:00 camelia rakudo-moar e99b04: OUTPUT«on noes!␤»
13:00 jnthn carlin: Maybe something like that :)
13:01 jnthn nwc10: Appears so... :)
13:01 gtodd jnthn: with about 300 words and ~1000 phrases and good pronunciation you are as fluent as many native speakers
13:01 brrt jnthn: do we have support for udp sockets, by the way?
13:01 jnthn brrt: No
13:01 brrt :-o
13:01 jnthn brrt: libuv offers it, but nobody wired things up :)
13:01 brrt i have a project in which i'm going to use udp sockets
13:01 brrt ah
13:01 brrt hmm
13:01 brrt what would be necessary to do it?
13:02 jnthn Do you need sync or async?
13:02 brrt i think udp is async by default?
13:02 jnthn heh, true :)
13:02 brrt you don't get acknowledgment after all
13:02 jnthn aye, though receive can still be blocking or non-blocking...
13:02 brrt receiving a message would be sync
13:03 dalek rakudo/nom: e1ae1db | (Tobias Leich)++ | src/ (2 files):
13:03 dalek rakudo/nom: fudge problematic optimization for parrot
13:03 dalek rakudo/nom:
13:03 dalek rakudo/nom: Also unfudge Str.lines which suffered from this optimization.
13:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e1ae1db000
13:03 jnthn Well, in that case see syncsocket.c in MoarVM and make a syncudpsocket.c or so, then whatever is needed in Rakudo to expose it.
13:03 lizmat FROGGS++
13:03 carlin jnthn: yes, perfect :)
13:03 carlin jnthn++
13:03 JimmyZ joined #perl6
13:04 FROGGS lizmat: now the p-spectest look better
13:04 lizmat cool!
13:04 FROGGS lizmat: https://gist.github.com/FR​OGGS/f4f082706daec56ed5fd - RT122783 is what I just pushed, nom is what it was before
13:04 [Coke] S99:RSN
13:04 synopsebot Link: http://perlcabal.org/syn/S99.html#RSN
13:05 [Coke] ^^ LHF - someone was asking about this on list.
13:05 lizmat as in Real Soon Now ?
13:06 [Coke] aye
13:06 jnthn Repetitive Spec-change Nausea
13:06 aindilis joined #perl6
13:07 brrt jnthn: ok, good to know. thanks :-)
13:07 dalek specs: 59013c3 | (Elizabeth Mattijsen)++ | S99-glossary.pod:
13:07 dalek specs: Add lemma for RSN
13:07 dalek specs: review: https://github.com/perl6/specs/commit/59013c3311
13:08 eternaleye joined #perl6
13:08 travis-ci joined #perl6
13:08 travis-ci [travis-ci] Rakudo build failed. Tobias Leich 'fudge problematic optimization for parrot
13:08 travis-ci [travis-ci] http://travis-ci.org/rakudo/rakudo/builds/35431321 https://github.com/rakudo/rakudo/c​ompare/e99b04b67a06...e1ae1db0005c
13:08 travis-ci left #perl6
13:08 dalek rakudo/nom: decb9aa | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm:
13:08 dalek rakudo/nom: Proc::Async methods used as instance methods only
13:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/decb9aab7e
13:08 dalek rakudo/nom: 7d62b8d | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm:
13:08 dalek rakudo/nom: Bring Proc::Async.kill up to spec
13:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7d62b8da57
13:09 FROGGS :o(
13:09 lizmat $is-parrot undeclared
13:09 LLamaRider joined #perl6
13:10 dalek rakudo/nom: 9517345 | (Tobias Leich)++ | src/Perl6/Optimizer.nqp:
13:10 dalek rakudo/nom: unbreak the build real quick
13:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9517345cea
13:11 lizmat too quick: Unable to parse expression in blockoid; couldn't find final '}'
13:12 FROGGS I don't spot it
13:12 FROGGS lizmat: did you reconfigure?
13:12 travis-ci joined #perl6
13:12 travis-ci [travis-ci] Rakudo build failed. Elizabeth Mattijsen 'Bring Proc::Async.kill up to spec'
13:12 travis-ci [travis-ci] http://travis-ci.org/rakudo/rakudo/builds/35431787 https://github.com/rakudo/rakudo/c​ompare/e1ae1db0005c...7d62b8da57ed
13:12 travis-ci left #perl6
13:12 lizmat nope
13:13 FROGGS lizmat: the Perl6::Optimizer is now fudged, so I updated the Makefile-*.in
13:13 lizmat ah, will try
13:13 FROGGS I should add an irc highlight on 'build failed'
13:14 lizmat builds now
13:14 PerlJam FROGGS: especially when it says "Tobias Leich"?  ;)
13:14 FROGGS PerlJam: no, every time :o)
13:15 lizmat will travis do a reconfig ?
13:15 FROGGS lizmat: it starts with a fresh virtual machine, fresh MoarVM, nqp, ...
13:15 lizmat and tell us the build's ok now ?
13:16 FROGGS it will tell when the status changes, and when the build faild
13:16 FROGGS so, yes
13:16 FROGGS two out of three builds passed already
13:16 eternaleye joined #perl6
13:17 FROGGS https://travis-ci.org/rakudo/rakudo
13:17 travis-ci joined #perl6
13:17 travis-ci [travis-ci] Rakudo build passed. Tobias Leich 'unbreak the build real quick'
13:17 travis-ci [travis-ci] http://travis-ci.org/rakudo/rakudo/builds/35431918 https://github.com/rakudo/rakudo/c​ompare/7d62b8da57ed...9517345cea40
13:17 travis-ci left #perl6
13:17 FROGGS there we go :o)
13:17 FROGGS travis++
13:17 PerlJam FROGGS++
13:19 jerrycheung joined #perl6
13:20 guru joined #perl6
13:27 JimmyZ_ joined #perl6
13:28 gtodd timotimo:  was searching iPhone6 info and found  https://github.com/timo/iperl6kernel   (appears I googled iPerl6  instead of iPhone6)
13:32 dalek rakudo-star-daily: 57679a5 | coke++ | log/ (15 files):
13:32 dalek rakudo-star-daily: today (automated commit)
13:32 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/57679a5b29
13:37 carlin isn't iPerl6 called Swift? :p
13:42 FROGGS ./perl6-j --target=jar --output=lib/lib.pm6.jar lib/lib.pm6
13:42 FROGGS ===SORRY!===
13:42 FROGGS P6int representation does not support natively typed attributes
13:42 FROGGS >.<
13:44 eternaleye joined #perl6
13:47 gtodd carlin: :)
13:48 lizmat FROGGS: --ll-exception ?
13:48 FROGGS lizmat: yes, in a mo' :o)
13:49 gtodd carlin: interesting how Swift  uses a bird metaphor  like Parrot :-)
13:49 FROGGS lizmat: from looking at the bt it could be very well related to local modifications, so nvm for now
13:51 alexghacker m: sub t( :$abc ) { say $abc }; my $def = "abc"; my %t = $def => 456; t( |%t )
13:51 camelia rakudo-moar e99b04: OUTPUT«456␤»
13:51 alexghacker m: sub t( :$abc ) { say $abc }; my $def = "abc"; t( $def => 456 )
13:51 camelia rakudo-moar e99b04: OUTPUT«Too many positionals passed; expected 0 arguments but got 1␤  in sub t at /tmp/UofwmjwC68:1␤  in block <unit> at /tmp/UofwmjwC68:1␤␤»
13:51 alexghacker can someone explain why the first works but the second does not?
13:51 FROGGS alexghacker: that is the difference between a named parameter and a pair
13:52 kjs_ joined #perl6
13:52 FROGGS m: sub t( :$abc ) { say $abc }; my $def = "abc"; t( "$def" => 456 )
13:52 camelia rakudo-moar e99b04: OUTPUT«Too many positionals passed; expected 0 arguments but got 1␤  in sub t at /tmp/ARPhal7vfs:1␤  in block <unit> at /tmp/ARPhal7vfs:1␤␤»
13:52 alexghacker but doesn't => construct a Pair?
13:52 FROGGS yes
13:52 FROGGS and you are passing a Pair as a positional parameter
13:52 FROGGS m: sub t( :$abc ) { say $abc }; my $def = "abc"; t( |($def => 456) )
13:52 camelia rakudo-moar e99b04: OUTPUT«456␤»
13:53 alexghacker ok
13:53 alexghacker up until then in my experiementation it had looked like pairs automatically filled named parameters
13:53 FROGGS see also:
13:53 alexghacker thanks for the clarification
13:53 FROGGS m: sub t( :$abc ) { say $abc }; my $def = "abc"; t( abc => 456 )
13:53 camelia rakudo-moar e99b04: OUTPUT«456␤»
13:53 FROGGS m: sub t( :$abc ) { say $abc }; my $def = "abc"; t( "abc" => 456 )
13:53 camelia rakudo-moar e99b04: OUTPUT«Too many positionals passed; expected 0 arguments but got 1␤  in sub t at /tmp/tCJbODX3uW:1␤  in block <unit> at /tmp/tCJbODX3uW:1␤␤»
13:54 alexghacker the difference between those last to is very subtle
13:55 PerlJam m: sub t( :$abc ) { say $abc }; t(  ( abc => 456 ) );
13:55 camelia rakudo-moar e99b04: OUTPUT«Too many positionals passed; expected 0 arguments but got 1␤  in sub t at /tmp/W5LEAL4_mN:1␤  in block <unit> at /tmp/W5LEAL4_mN:1␤␤»
13:55 PerlJam alexghacker: that one too
13:55 PerlJam But yet, it all makes sense :)
13:56 alexghacker the last one I can understand, as I can see the () encapsulating the Pair in a List that tries to fill positional parameters
13:57 alexghacker I'm still not seeing the difference that explicitly quoting the key makes, though
13:57 JimmyZ joined #perl6
13:58 alexghacker m: my %t = abc => 123; say %t
13:58 camelia rakudo-moar e99b04: OUTPUT«"abc" => 123␤»
13:58 gtodd what is the embarassingly simple explanation for why from the shell I can do:  perl6 -e 'say SETTING::.keys'  and get a list ... but in the REPL if I can only do it once  ... (subsequent runs produce different output)
13:58 alexghacker m: my %t = "abc" => 123; say %t
13:58 camelia rakudo-moar e99b04: OUTPUT«"abc" => 123␤»
13:59 alexghacker m: say abc => 123
13:59 camelia rakudo-moar e99b04: OUTPUT«Unexpected named parameter 'abc' passed␤  in sub say at src/gen/m-CORE.setting:15105␤  in block <unit> at /tmp/4tNbf5M_PK:1␤␤»
13:59 alexghacker heh
13:59 alexghacker m: say( abc => 123 )
13:59 camelia rakudo-moar e99b04: OUTPUT«Unexpected named parameter 'abc' passed␤  in sub say at src/gen/m-CORE.setting:15105␤  in block <unit> at /tmp/ctuPwCvvKU:1␤␤»
14:00 alexghacker m: say "abc" => 123
14:00 camelia rakudo-moar e99b04: OUTPUT«"abc" => 123␤»
14:00 alexghacker at least it's consistent
14:00 gtodd oh in the the REPL I can use CORE::keys
14:01 alexghacker m: say ( abc => 123 )
14:01 camelia rakudo-moar e99b04: OUTPUT«"abc" => 123␤»
14:01 lizmat m: sub a (:$foo) { $foo }; say a( (foo => "bar") )   # it's a pair
14:01 camelia rakudo-moar e99b04: OUTPUT«Too many positionals passed; expected 0 arguments but got 1␤  in sub a at /tmp/NmgSS5ELTz:1␤  in block <unit> at /tmp/NmgSS5ELTz:1␤␤»
14:01 FROGGS alexghacker: I see it as: "an indirection indicates passing a Pair"
14:01 lizmat m: sub a (:$foo) { $foo }; say a( |(foo => "bar") )   # it's flattened to a named param
14:01 camelia rakudo-moar e99b04: OUTPUT«bar␤»
14:02 lizmat m: sub a (:$foo) { $foo }; say a( foo => "bar" )   # as it was like this
14:02 camelia rakudo-moar e99b04: OUTPUT«bar␤»
14:02 lizmat m: sub a (:$foo) { $foo }; say a( :foo<bar> )   # or this
14:02 camelia rakudo-moar e99b04: OUTPUT«bar␤»
14:03 alexghacker m: sub t( :$abc ) { say $abc }; my $def = "abc"; t( |( $def => 456 ) )
14:03 camelia rakudo-moar e99b04: OUTPUT«456␤»
14:03 alexghacker that's where I wanted to end up
14:03 alexghacker tyvm, all
14:04 alexghacker lizmat++, PerlJam++, FROGGS++
14:04 alexghacker and TimToady++ (for his clarification last night)
14:04 leont lizmat++ # Bring Proc::Async.kill up to spec
14:05 lizmat leont: writing tests now
14:05 lizmat m: {say +Nil; CONTROL { }}; 1
14:05 camelia rakudo-moar e99b04: OUTPUT«use of uninitialized value of type Nil in numeric context  in block <unit> at /tmp/DzxNttSoNz:1␤␤Trying to unwind over wrong handler␤»
14:06 lizmat jnthn, brrt: ^^^ "trying to unwind over wrong handler" ???
14:07 lizmat m: +Nil; CONTROL { }
14:07 camelia rakudo-moar e99b04: OUTPUT«WARNINGS:␤Useless use of "+" in expression "+Nil" in sink context (line 1)␤use of uninitialized value of type Nil in numeric context  in block <unit> at /tmp/J794S5UuDW:1␤␤»
14:07 lizmat m: {+Nil; CONTROL { }}
14:07 camelia rakudo-moar e99b04: OUTPUT«use of uninitialized value of type Nil in numeric context  in block <unit> at /tmp/WC_Le_ZAB0:1␤␤Trying to unwind over wrong handler␤»
14:11 masak got a TODO: passed on test 12 of t/spec/S17-procasync/print.rakudo.moar
14:11 masak otherwise, all-passing stresstest suite. moritz++ others++
14:11 eternaleye joined #perl6
14:12 dalek roast: e3291a2 | (Elizabeth Mattijsen)++ | S02-types/nil.t:
14:12 dalek roast: Add some Nil related tests, as per S02:491
14:12 synopsebot Link: http://perlcabal.org/syn/S02.html#line_491
14:12 dalek roast: review: https://github.com/perl6/roast/commit/e3291a2956
14:19 lizmat masak: I'm afraid that's a flapper  :-(
14:20 kaleem joined #perl6
14:26 kaleem joined #perl6
14:27 jnthn lizmat: Weird error...
14:27 jnthn lizmat: Though
14:27 jnthn m: last
14:27 camelia rakudo-moar e99b04: ( no output )
14:27 jnthn Hm
14:27 jnthn There's something odd tehre too
14:27 jnthn I'd not be surprised if they're related...
14:28 jnthn Also
14:28 jnthn m: Thread.start({ last }).join # weird too
14:28 camelia rakudo-moar e99b04: OUTPUT«(signal )»
14:28 * jnthn hopes he'll find the same thing at the root of all 3 :)
14:28 * lizmat hopes so too...
14:28 brrt lizmat: dunno :-o
14:29 brrt never seen that actually
14:29 * lizmat neither, so I thought I'd report it
14:29 jnthn Makes me wonder if it's a corruption issue of some kind...
14:29 lizmat as it may indicate a general problem with warnings
14:29 lizmat well, then I hope we have a simple case to test now  :-)
14:30 jnthn So, with the updates I did to the allocation profile, I can now see that 50 frames of rc-forest-fire allocates 1.2 million Ints.
14:31 timotimo oh my
14:32 jnthn Amazingly, only 7% of the time is spent in GC
14:32 timotimo when we have escape analysis, we'd be able to throw boxing/unboxing away in some cases, no?
14:32 tadzik how much in allocator? :P
14:33 timotimo do we measure that?
14:33 timotimo i don't think so
14:33 tadzik or is it part of GC
14:33 jnthn Well, allocating is rather hard to measure
14:33 jnthn I mean, it's cheap
14:33 JimmyZ GC is sometimes strange, run samecase once cause a GC, while twice doesn't
14:33 timotimo yeah, we just bump the pointer
14:33 jnthn It's a bump-the-pointer algorithm.
14:33 jnthn So allocating is just "compare two numbers, then add two numbers"
14:34 JimmyZ and always does that
14:34 tadzik that's provided that we have a preallocated poll for 1.2 million ints
14:34 tadzik isn't that so?
14:34 jnthn No, it's more than we alloate in a nursery
14:34 kaare_ joined #perl6
14:34 timotimo yeah, one of the allocations will trigger a gc run
14:34 jnthn Almost all of these die on the first collect, I think.
14:34 jnthn Yeah, the promotion rate is relaly low
14:35 timotimo right, and an Int will not really cause many things to be traversed
14:35 jnthn As low as 2KB of promotion
14:35 jnthn It's so low that we do 76 GC runs and don't accumulate enough promoted data for any of them to need to be full collects
14:36 timotimo (yay, i wrote the beginning of that code)
14:36 jnthn Aye :)
14:36 jnthn Very worth it.
14:36 hoelzro good * #perl6!
14:36 timotimo good hoelzro, *!
14:37 hoelzro o/ timotimo
14:37 aborazmeh joined #perl6
14:40 jnthn o/ hoelzro
14:41 hoelzro o/ jnthn
14:41 eternaleye joined #perl6
14:44 lizmat jnthn: sanity check: we should allow more than one signal to be tapped at a time, right ?
14:45 jnthn lizmat: aye
14:45 lizmat putting this in a file:
14:45 lizmat signal(SIGHUP).act: -> { }; signal(SIGINT).act: -> { }; sleep 5;
14:45 lizmat running it and pressing CTRL-c gives a very strange backtrace
14:46 lizmat Unhandled exception in code scheduled on thread 4527849472
14:46 lizmat Cannot call 'postcircumfix:<[ ]>'; none of these signatures match:
14:46 lizmat no line numbers, not even with --ll-exception
14:47 jnthn Odd
14:48 lizmat rakudobug it?
14:50 jnthn yeah
14:52 jnthn $*DYNAMICALLY_COMPILED in the optimizer is really getting in the way of optimizing osme aspects of CORE.setting...
14:53 alexghacker m: sub t( |cap ) { say cap }; t( abc => 123 )
14:53 camelia rakudo-moar 951734: OUTPUT«\(abc => 123)␤»
14:53 alexghacker m: sub t( |cap ) { say cap }; t( "abc" => 123 )
14:53 camelia rakudo-moar 951734: OUTPUT«\("abc" => 123)␤»
14:53 alexghacker m: sub t( |cap ) { say cap }; t( |( abc => 123 ) )
14:53 camelia rakudo-moar 951734: OUTPUT«\(abc => 123)␤»
14:53 alexghacker m: sub t( |cap ) { say cap }; t( |( "abc" => 123 ) )
14:53 camelia rakudo-moar 951734: OUTPUT«\(abc => 123)␤»
14:54 timotimo jnthn: that gets set when we have begin blocks and constant definitions?
14:54 jnthn timotimo: Yeah, or in the case I'm looking at when the code gets run uring the compile.
14:54 jnthn timotimo: trait mods can cause it also
14:54 timotimo i can imanige that'd happen many, many times
14:54 timotimo when that is set we just give up on lots of stuff, right?
14:54 jnthn Basically it prevents block flattening.
14:54 jnthn No, not much
14:55 timotimo oh. well, block flattening is quite a dramatic thing to lack nowadays :)
14:55 timotimo what with lexical elimination depending on it
14:55 jnthn Right, precisely
14:55 jnthn And because it gets in the way of void analysis too
14:55 jnthn Since it becomes inter-frame and the QAST compiler is in a less good place to do much about it.
14:55 jnthn So we're doing all kinds of boxing.
14:56 jnthn So yeah, big knock-on effect.
14:56 jnthn Of course, removing it immediately breaks the build :)
14:56 timotimo aye, that would have been way to easy. can't have that!
14:59 alexghacker m: sub t( |cap ) { say cap }; t( ( abc => 123 ) )
14:59 camelia rakudo-moar 951734: OUTPUT«\("abc" => 123)␤»
14:59 timotimo m: sub t( |cap ) { say cap.perl }; t( ( abc => 123 ) )
14:59 camelia rakudo-moar 951734: OUTPUT«Capture.new(list => ("abc" => 123,))␤»
15:00 woolfy1 left #perl6
15:01 alexghacker timotimo: I had figured that out, but doing .perl does make it more clear (and is new to me)
15:02 woolfy joined #perl6
15:02 alexghacker I still don't understand *why* the distinction is made there between « abc => 123 » and « "abc" => 123 », but for the moment I'm willing to live with it since it is well-behaved
15:03 alexghacker I just started writing perl6 code yesterday, so I shouldn't expect to understand it all yet.  :)
15:04 lizmat afk&
15:07 PerlJam alexghacker: how about this ... the quotes are a syntactic marker than says "treat this thing literally", whereas without the quotes it's a "name" and you're telling Perl that you want to give the name a value.
15:08 alexghacker OIC
15:08 FROGGS +1
15:08 FROGGS where name == identifier
15:08 eternaleye joined #perl6
15:08 PerlJam aye
15:08 alexghacker It's that way because we want it to be that way, not because of something more subtle crawling out of the depths
15:08 PerlJam alexghacker: right.
15:09 PerlJam alexghacker: you could say that foo => 123  is the same as :foo(123) with regards to the "nameiness" of foo
15:10 anaeem1 joined #perl6
15:10 treehug88 joined #perl6
15:11 alexghacker is this deliberate distinction unique to the implicit creation of Captures, or are there other contexts in which it applies?
15:19 ajr joined #perl6
15:24 flussence joined #perl6
15:24 timotimo alexghacker: you can write "foo bar baz" => 123, but you can never have a variable named $foo bar baz
15:25 timotimo the rules for what is allowed to come before a => are the same as for an identifier in general
15:25 flussence joined #perl6
15:25 flussence joined #perl6
15:27 timotimo i mean: literals before a =>
15:27 timotimo you can of course still get the datum from a variable, like $foo => $bar
15:28 timotimo the fact that it's entirely syntactic, i.E. { my $foo = "abc"; mysub($foo => 123) } will not give you a named parameter "abc" just because "abc" happens to be an identifier, makes it much less confusing
15:28 timotimo but it's still a little bit of a gotcha
15:30 jerrycheung joined #perl6
15:32 alexghacker I can see the utility of the distinction, and I believe I understand the mechanics of it too.
15:32 eternaleye joined #perl6
15:32 timotimo yeah, it's easy to understand, but surprising if you don't know about it yet
15:33 timotimo (and the "flattening" operator still allows you to pass named arguments where the name comes from a variable)
15:33 xinming joined #perl6
15:33 alexghacker Currently it appears to me to be something that is exclusive to Captures, but I don't yet know enough perl6 to know if there's anyplace else where we might have chosen to do it the same way
15:34 timotimo as far as i know it's only in argument lists
15:39 mattp_ joined #perl6
15:41 mr-foobar joined #perl6
15:44 telex joined #perl6
15:44 Brock Any StrangeLoop attendees here? I'll be heading to STL tonight
15:47 dalek rakudo/nom: 6b8aac1 | jonathan++ | src/core/ (2 files):
15:47 dalek rakudo/nom: Some allocation-reducing micro-opts.
15:47 dalek rakudo/nom:
15:47 dalek rakudo/nom: Eliminate a bunch of Int boxings on some hot paths.
15:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6b8aac1094
15:49 jnthn 'night o/
15:50 timotimo gnite jnthn!
15:50 eternaleye joined #perl6
15:53 rurban joined #perl6
15:55 FROGGS joined #perl6
15:57 mst joined #perl6
16:01 timotimo a friend suggests we use qemu-in-emscripten to run moarvm in a browser
16:04 hoelzro timotimo: why would qemu be necessary?
16:04 timotimo because we can't just translate libuv to js
16:04 hoelzro ah
16:04 timotimo if you can get libuv and the other stuff working in emscripten, that'd be fine
16:05 timotimo but with the qemu approach, our jit should also work! :P
16:05 FROGGS *lol* #swag #yolo
16:05 FROGGS my first blade arrived at home
16:05 rurban joined #perl6
16:06 timotimo blade server or knife blade? :)
16:06 FROGGS from an ibm bladecenter
16:06 FROGGS :o)
16:09 timotimo from the kitchen?
16:12 fhelmberger joined #perl6
16:16 FROGGS hell's kitchen :o)
16:16 carlin while trying to precompile, what would cause; STable conflict detected during deserialization.
16:16 carlin (also panda-build doesn't stop if a module fails to compile, but that's another issue)
16:18 FROGGS ewww
16:19 FROGGS I think we had/have a bug where our scoped subs/var could case that... but I'm not sure
16:20 carlin ah, the file that's failing to compiling has a lot of our scoped subs
16:21 [Sno] joined #perl6
16:21 FROGGS do you access my scoped vars from within these subs that are outside of these subs?
16:23 carlin no, does access our-scoped vars from a different module though
16:23 FROGGS yay, I think my MATCH-patch works! (CAPHASH removal)
16:23 treehug88 joined #perl6
16:23 FROGGS carlin: that still might be it though
16:23 [Coke] lizmat: if I try signal(SIGHUP).act: -> { say "WAT!"; }; sleep 5;        locally, hitting ^C just kills the program. (moar)
16:26 [Coke] (same with loop {} instead of sleep)
16:27 [Coke] S17-procasync/print.rakudo.moar failing on daily run on jit, but ok without.
16:27 [Coke] parrot is MUCH better today, still 10 failures.
16:28 [Coke] JVM got wrecked.
16:28 dalek perl6-roast-data: 8471c54 | coke++ | / (6 files):
16:28 dalek perl6-roast-data: today (automated commit)
16:28 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/8471c54616
16:29 [Coke] looks like the eval server is dying again.
16:30 [Coke] diakopter: Did you kill anything on host08 earlier today?
16:31 liztormato joined #perl6
16:32 [Coke] I'll try doing just a jvm run.
16:32 carlin hmm, nope, removing the uses of the our-scoped vars didn't fix it
16:32 liztormato_ joined #perl6
16:34 liztormato_ [Coke]: Did the control-c break the sleep or not?  It shouldn't!
16:34 [Coke] it did.
16:34 [Coke] and also did not say WAT.
16:34 liztormato_ Zen we haz a bug ;-(
16:34 carlin oh, it uses a module that has my-scoped vars...
16:35 [Coke] this is with a recent but not HEAD rakudo
16:35 [Coke] (on moar)
16:36 [Coke] is anyone bothered (enough to open a ticket) that rakudo puts nqp next to parrot, but puts moarvm inside nqp?
16:36 [Coke] (during the build process)
16:38 FROGGS [Coke]: no :o)
16:39 FROGGS timotimo: btw, I got my tent^Wshirt also >.<
16:45 FROGGS timotimo: I'd like to bench my Cursor.MATCH fiddling... any ideas about good tests?
16:51 kaleem joined #perl6
16:53 carlin bah, removing all the my-scoped vars from the other module didn't fix it... I don't know what the problem is
16:58 vendethiel joined #perl6
16:58 slmult0 joined #perl6
17:00 spider-mario joined #perl6
17:00 vendethiel o/
17:07 vendethiel ingy: please merge my PR, I feel bad :P
17:09 carlin oh no :( It's `use Inline::Perl5` that makes it fail...
17:12 liztormato Oh noes!
17:12 * nine never tried it on anything but Rakudo HEAD
17:20 liztormato left #perl6
17:30 tony-o panda isn't finding Pluggable, what am i doing wrong?
17:30 tony-o did i update the wrong repo for panda packages?
17:32 carlin Last-Modified: Fri, 12 Sep 2014 07:32:25 GMT
17:32 carlin tadzik: panda isn't updating it's projects.json again
17:34 carlin I wonder if it would be useful if panda read the last-modified header when it downloads tte list and warns if it's older than ~24 hours or something
17:39 colomon Or just to have a more distributed set of places to get projects.json, in an effort to make things more reliable.
17:41 tadzik the cronjob seems to not work
17:41 [Coke] isn't projects.json available in a git repo?
17:41 tadzik nope
17:41 tadzik a perl script is regenerating it
17:41 tadzik it should do that every hour, for some reason it does not
17:41 tadzik I have no idea how to investigate
17:42 [Coke] any idea where the script is running?
17:42 [Coke] where is the script?
17:42 [Coke] (source)
17:43 colomon do we have the script somewhere?
17:43 tadzik it's on my feather account
17:43 tadzik I should turn it into a service that any admin can manage
17:45 colomon upload the script to github?
17:46 tadzik can do that, but that doesn't quite solve the problem :)
17:46 tadzik the script itself is okay
17:46 tadzik or you mean for someone to set it up?
17:47 colomon so anyone can run it locally
17:48 tadzik ah, good point
17:48 colomon actually, that would be a great option for panda, no?  github is basically always up
17:48 ajr joined #perl6
17:49 tadzik true
17:49 tadzik the script could be turned into Perl 6
17:50 retupmoca either that or teach panda what mirrors are
17:51 vendethiel tadzik: please post it, would be fun to translate it :-)
17:52 tadzik okay :)
17:52 tony-o i'd mirror it
17:54 [Coke] diakopter: something happen to host08? ssh is hanging.
17:54 tadzik there
17:54 dalek ecosystem: 0c645a5 | tadzik++ | updatelist.pl:
17:54 dalek ecosystem: Add a script producing projects.json
17:54 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/0c645a5eb1
17:57 vendethiel tadzik: lwp::simple brings getstore()?
17:57 [Coke] I could set that up to run on host08 if we wanted.
17:58 ingy vendethiel: I'm thought I did merge it
17:58 colomon tadzik++
17:58 vendethiel ingy: you made a follow-up commit then
17:58 vendethiel ingy: where you broke it
17:59 camelia joined #perl6
17:59 vendethiel (so I re-PR'd to fix it)
17:59 vendethiel o/, camelia
17:59 ingy I see
17:59 ingy let me try
17:59 vendethiel what you thought was a typo... was not a typo :-)
17:59 tadzik vendethiel: that's right
17:59 vendethiel but you just "fixed" it and pushed without even testing :(
17:59 tadzik not sure why I used wget :)
17:59 vendethiel so I re-pr'd to fix it
18:00 vendethiel tadzik: haha was wondering as well.
18:00 [Coke] hey, host08 is wicked slow. bet a java test is hanging and not dying properly under ulimit...
18:01 ingy vendethiel: the test fails for me with your "fix"
18:01 vendethiel ingy: I don't believe so.
18:01 ingy :)
18:01 vendethiel ingy: you *need* the s because that's how scala interpolation works
18:01 vendethiel i.e. "$a!" is "$a!", s"$a!" is (a + "!")
18:02 ingy vendethiel: https://gist.github.com/099f25325019f9809f8b
18:02 vendethiel ingy: which scala version?
18:03 vendethiel I'm running 2.11.
18:03 Ven joined #perl6
18:03 ingy Scala compiler version 2.9.2 -- Copyright 2002-2011, LAMP/EPFL
18:03 [Coke] ok, finally finished catchup with me typing "htop". (wow)
18:04 ingy it's the ubuntu 12.04 pkg
18:04 Ven ingy: 2.9 doesn't have string interpolation
18:04 Ven hence the error message
18:04 ingy I'll try to upgrade since I have 14.04 now
18:04 Ven (2.9.2 is from 2012-04)
18:04 ingy ok
18:04 ingy I'll add a test for it
18:05 Ven add a test for what?
18:05 ingy 2.11
18:07 Ven right. the perl5 test also blew up here
18:08 ingy on Mo?
18:08 ingy I'll fix that too
18:10 colomon tadzik: huh, the script doesn't seem to work for me.
18:11 tadzik colomon: that might be because it's rigged to write into /home/tjs :P
18:11 colomon tadzik: already fixed that, still doesn't work
18:11 tadzik colomon: how doesn't it work?
18:11 ingy Ven: I fetch/rebase/push and that closed PR/2. fyi
18:11 [Coke] lizmat: "as gong awry" might be too esoteric.
18:11 colomon tadzik: projects.json comes out with exactly two bytes in it.
18:12 tadzik weierd
18:12 [Coke] (and or simply incorrect. feels like you were going for gang aft a-gley)
18:13 [Coke] colomon: oh, so maybe my problem is related to this problem. (where I get a mostly empty projects.json...)
18:13 colomon [Coke]: could be
18:13 leont I may be observing Proc::Async supplies having some serious ordering issues. Trying to get a small example
18:14 tadzik I can't reproduce the problem
18:15 colomon tadzik: should it say 501 after each github URL printed when it runs?
18:15 tadzik colomon: definitely not :)
18:16 colomon tadzik: so I gets the getstore call is failing?
18:16 colomon *guess
18:16 dwarring joined #perl6
18:16 tadzik colomon: yes
18:16 [Coke] "async" and "ordering issues" doesn't sound like a problem, per se.
18:17 colomon tadzik: "Protocol scheme 'https' is not supported"
18:17 tadzik that explains it
18:18 treehug88 joined #perl6
18:19 [Coke] lizmat: few places in the spec still found with: ack '"SIG' -- should those be using, e.g. SIGHUP instead of "SIHUP" ?
18:19 * colomon tries installing LWP::Protocol::https
18:20 [Coke] (one of them is ok, given it's an example of using the string, but there's at least one other that might want be "canonical"
18:22 slavik joined #perl6
18:25 dalek ecosystem: fdc6d93 | (Solomon Foster)++ | updatelist.pl:
18:25 dalek ecosystem: Remove hard link into tadzik's directory.
18:25 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/fdc6d93204
18:26 timotimo leont: is that about a "process has shut down" fires before you read the last stuff out of stdout?
18:27 colomon okay, http://www.harmonyware.com/files/projects.json should be a workable, current projects.json, if anyone still needs it.
18:27 leont No. Actually I may have a fix for that one, but I'm sometimes observing my input characters in not quite the expected order
18:28 timotimo your input characters?
18:29 leont I'm receiving stuff like this: «ok 1 - Test would have returned 0ok 2 - Expected 3 test», note the missing newline there :-/
18:30 timotimo receiving, as in? you're reading that from a process' stdout?
18:30 leont Proc::Async is giving me a Supply, I've act()ed it
18:31 timotimo that should be the right way to get at the stdout's stuff, yeah
18:31 leont New test, actually confirmed a case of getting my "ok 6" after my "ok 7"…
18:31 timotimo d'oh
18:32 leont This gives "interesting" parsing results…
18:32 leont Worse yet, get stuff like "ok7ok6\n\n"
18:33 timotimo blergh. that is pretty sucky.
18:34 FROGGS do we have to flush the handles or some such?
18:35 leont Something must be wrong on a moarvm level. I don't quite grok that code yet…
18:36 timotimo i'm looking over the procops.c code right now
18:37 leont What I think is happening, is that it schedules multiple reading tasks that push to the supply, but the scheduler doesn't guarantee any ordering between them
18:39 leont Don't understand enough of how moar works to fix that though
18:39 FROGGS damn, I've got a BOOTInt in my MATCH code, and dunno how to cope with it :/
18:41 timotimo too much code for me to grok at once ...
18:49 [Coke] leont: what code are you running? again, i wouldn't expect proc async to return things in order.
18:49 liztormato joined #perl6
18:52 leont [Coke]: I expect stdout_chars Supply to give my the output of the command in order
18:53 zakharyas joined #perl6
18:53 leont Anything else is nothing short of useless
18:53 liztormato leont: I expect that as well
18:56 diakopter leont: you'll want to cause them to print in a synchronous order, then, not asynchronous.
18:58 dalek Inline-Perl5: 8b07781 | nine++ | / (4 files):
18:58 dalek Inline-Perl5: Allow passing Callables from P6 to P5 and call them from P5.
18:58 dalek Inline-Perl5: review: https://github.com/niner/Inl​ine-Perl5/commit/8b0778181d
18:58 leont The printing in the command is synchronous, and works fine. It's the reading on the other side that's the issue
18:59 diakopter they're not each printing directly to stdout while racing in separate threads?
19:00 FROGGS getting my "ok 6" after my "ok 7"… <--- that sounds like it comes from one file
19:00 FROGGS err process
19:00 ingy vendethiel: I added Makefile conditionals for the tests that had extra requirements (scala, perl5). `make test` should run to completion now, regardless of your install situation.
19:01 ingy vendethiel: let me know if it doesn't
19:02 brrt joined #perl6
19:04 Ven joined #perl6
19:04 Ven ingy: oke :) thanks
19:05 Ven ingy: would you be interested in lispy stuff?
19:06 slmult0 joined #perl6
19:18 timotimo should we have a constructor sub like "set" for keysets?
19:19 liztormato Keysets?
19:19 leont At least I now grok my parser error: it doesn't handle empty lines well
19:21 liztormato timotimo: Do you mean SetHashes?
19:21 timotimo er, SetHash
19:21 timotimo yes
19:22 FROGGS I am totally SetBack by all these names
19:22 liztormato Spec it and I'll implement it ;-)
19:23 liztormato m: <a b c>.SetHash.perl.say
19:23 [Coke] leont: can you provide code showing the issue?
19:25 [Coke] .ask masak if he's on target for the release in 2 days
19:25 yoleaux [Coke]: I'll pass your message to masak.
19:25 leont https://github.com/Leont/tap-harness6. I'm trying to reduce it to a simpler case, but it's a rather non-deterministic bug :-/
19:25 [Coke] If folks could beef up the changelog, that will help him come thursday.
19:26 [Coke] leont: ok, but what code are you running?
19:26 [Coke] ufo && make test?
19:27 leont PERL6LIB=lib perl6 bin/prove6 t/generator.t
19:29 [Coke] FYI, I only get this for output: t/generator.t .. 1/?
19:31 leont That should be outputted during the testing
19:31 leont It should give a summary later
19:31 leont Which may or may not contain the described error
19:31 camelia joined #perl6
19:35 [Coke] it outputs that and terminates immediately.
19:36 [Coke] running the test with perl6 directly gives expected TAP output.
19:36 [Coke] This is perl6 version 2014.08-358-gde16265 built on MoarVM version 2014.08-139-gb37f93e
19:37 retupmoca leont: I can duplicate your sporadic out-of-order process output with: This is perl6 version 2014.08-356-g8002629 built on MoarVM version 2014.08-135-gb6f6b29
19:37 [Coke] need a more recent rakudo?
19:37 leont [Coke]: the point is that it only happens part of the time, it's non-deterministic
19:38 leont My rakudo is only a few days old, I doubt that's the problem
19:38 retupmoca [Coke]: also, the test file is fine as I understand it - the issue is reading that test output with Proc::Async
19:39 [Coke] leont: I'm saying I can't get your code to do anything other than print that line.
19:39 carlin a golf of my precomp issue from earlier: https://gist.github.com/ca​rbin/8401f4443407ce0697f6
19:39 [Coke] repeatedly, nothing else is output using the command line you provided above with prove6
19:40 * retupmoca runs git pull
19:40 [Coke] are you saying I should see the issue with just perl6 t/generator.t ?
19:40 carlin so what does I::P5 do that breaks precomp...
19:40 * lizmat is back
19:40 [Coke] (or is the issue only appearing when run through prove6?)
19:40 lizmat leont: I've seen that kind of flapping behaviour in the Proc::Async tests as well  :-(
19:40 retupmoca the issue was only appearing with prove6
19:41 [Coke] ok. I can't prove 6 to show me anything other than the test plan; sorry.
19:41 [Coke] can't -get-
19:41 jaffa4 joined #perl6
19:42 ggoebel11111110 joined #perl6
19:44 liztormato joined #perl6
19:46 lizmat timotimo: wrt to sethash(), I seem to recall that TimToady had an opinion about that, prohibiting its existence
19:47 lizmat oth, I don't see the use much for set(), bag() and mix() myself, but that's another thing
19:47 timotimo OK
19:48 TimToady the difference is that immutables have to be built completely at the start, whereas mutables are generally built-up bit by bit, so don't really need the composers so much
19:48 timotimo ah
19:48 timotimo not a bad explanation
19:48 * timotimo is pair-programming/teaching a little hangman game with a programming newbie :3
19:49 vendethiel timotimo: I did a *full* hangman (reading from file etc included) in p6 in .. 10 lines :P
19:49 retupmoca leont: still has issues with latest rakudo: This is perl6 version 2014.08-365-g6b8aac1 built on MoarVM version 2014.08-139-gb37f93e
19:49 timotimo vendethiel: cute. but did it also have an ascii art gallows?
19:50 vendethiel timotimo: no clue what a gallow is! tho I can guess
19:53 timotimo i think the singular i sactually "gallows"
19:53 vendethiel timotimo: https://gist.github.com/Nam​i-Doc/67dc9304a75d4980b16d 9 lines actually
19:54 dalek roast: 40a7cc7 | (Elizabeth Mattijsen)++ | S17-procasync/kill.t:
19:54 dalek roast: Add tests for Proc::Async.kill
19:54 dalek roast:
19:54 dalek roast: Which basically fails because signal(SIGNAL).act seems busted
19:54 dalek roast: review: https://github.com/perl6/roast/commit/40a7cc756b
19:55 PerlJam vendethiel: Did you try running it?
19:55 PerlJam vendethiel: because $word.substr(-1) doesn't make any sense.
19:55 vendethiel PerlJam: right :P
19:55 vendethiel I know I tried to run it; because else I wouldn't know about substr-rw
19:56 nine I give up. How can I pass on all parameters passed to a postcircumfix:<( )> to a method call? I end up getting a Capture.new(list => (5,)) instead of just the single int.
19:57 geekosaur that is actually what you want, I think? but I don't recall how you use it. I do know that what you think you want loses context
19:57 timotimo nine: you want to | that capture into the new method call
19:57 PerlJam nine: |@stuff  ?
19:57 lizmat flatten it!
19:58 nine Can you give me some example? I think I've tried all permutations of |, @, *@, .list, |flat and whatever else I could find.
19:58 nine This is absolutely over complicated
19:59 dalek rakudo/nom: abbd376 | (Elizabeth Mattijsen)++ | t/spectest.data:
19:59 dalek rakudo/nom: Add Proc::Async.kill tests
19:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/abbd376768
20:01 lizmat m: sub a(|c) { b(|c) }; sub b(*@_,*%_) { say @_.perl; say %_.perl }; a( 23, a=>42 )  # an example for nine ?
20:01 camelia rakudo-moar 6b8aac: OUTPUT«Array.new(23)␤("a" => 42).hash␤»
20:02 jaffa4 hello all, I found a problem, if I called a function in a module like this modulename::functionname(); and the function was not found...
20:02 nine lizmat: this gives me Capture.new(list => (5,))
20:02 lizmat [Coke]: the "gong awry" was just a misspelling for "going awry"
20:03 lizmat "awry |əˈrʌɪ| adverb & adjective away from the usual or expected course; "
20:03 PerlJam leont: I can get generator.t to random give me "Tests out of sequence", but when I output the data that's about to be sent to the lexer, it always appears in the correct order.  However there are some mysterious extra newlines between them sometimes.
20:03 FROGGS m: use Test; say Test::functionnotfound(); say "surely not alive"
20:03 camelia rakudo-moar 6b8aac: OUTPUT«Could not find symbol '&functionnotfound'␤  in method <anon> at src/gen/m-CORE.setting:13508␤  in any find_method_fallback at src/gen/m-Metamodel.nqp:2662␤  in any find_method at src/gen/m-Metamodel.nqp:972␤  in block <unit> at /tmp/HQSTpime1P:1␤␤»
20:03 FROGGS jaffa4: like that ^^
20:04 nine m: sub test(*@a) { say @a.perl; }; class Foo { method postcircumfix:<( )>(|args) { test(|args); } }; my $foo = Foo.new; $foo(5);
20:04 camelia rakudo-moar 6b8aac: OUTPUT«Array.new(Capture.new(list => (5,)))␤»
20:05 nine lizmat: ^^^ this is what I have
20:05 xragnar_ joined #perl6
20:05 PerlJam std: class Foo { method postcircumfix:<( )>(|args) { test(|args); } }
20:06 jaffa4 FROGGS: yes
20:06 lizmat SERVICE ANNOUNCEMENT: "std:" kills camelia at the moment, please don't use until further notice
20:07 camelia joined #perl6
20:07 PerlJam nine: in any case,  method postcircumfix:<( )>(|args) looks wrong.
20:07 FROGGS jaffa4: where is the bug?
20:07 PerlJam m: sub test(*@a) { say @a.perl; }; class Foo { method postcircumfix:<( )>(\args) { test(|args); } }; my $foo = Foo.new; $foo(5);
20:07 jaffa4 the function exsts
20:08 jaffa4 one should be able to call it in that way too?
20:08 FROGGS jaffa4: ahh.... did you declare it 'our'?
20:08 camelia std : OUTPUT«Can't chdir to '/home/p6eval/std/snap': No such file or directory at lib/EvalbotExecuter.pm line 163.␤     EvalbotExecuter::_auto_execute('HASH(0x1944cf0)', 'class Foo { method postcircumfix:<( )>(|args) { test(|args); } }', 'GLOB(0x1b98108)', '/tmp/M5sMDZ_sp7', 'std') ca…»
20:08 camelia rakudo-moar 6b8aac: OUTPUT«Array.new(5)␤»
20:08 Woodi joined #perl6
20:08 jaffa4 FROOGS: I can call it without namespace designation, but not with namespace
20:09 jaffa4 no our
20:09 FROGGS jaffa4: you have to declare it 'our' scoped to do that
20:09 FROGGS jaffa4: you probably put an 'is export' trait on it, that's why you can call it without the namespace in front of it
20:10 nine PerlJam: that's it!
20:10 jaffa4 I did not use export, yet I could call it in short form
20:11 jaffa4 I did not put export
20:11 dalek Inline-Perl5: 8462b03 | nine++ | / (3 files):
20:11 dalek Inline-Perl5: Allow passing code refs from P5 to P6 and call them from P6.
20:11 dalek Inline-Perl5:
20:11 dalek Inline-Perl5: Thanks to PerlJam++ and lizmat++ for helping with Perl 6 syntax.
20:11 dalek Inline-Perl5: review: https://github.com/niner/Inl​ine-Perl5/commit/8462b03e89
20:13 nine ^^^ this was the last big feature on my list.
20:14 carlin golf of what in Inline::Perl5 does that stops precomp: https://gist.github.com/ca​rbin/25b38908d8df607c33ee
20:14 dalek roast: cc38937 | (Elizabeth Mattijsen)++ | S17-procasync/kill.t:
20:14 dalek roast: Make sure we will never hang
20:14 dalek roast: review: https://github.com/perl6/roast/commit/cc38937b47
20:14 carlin if have a file that uses a file that uses Inline::Perl5 it won't precompile
20:16 lizmat carlin: is the add_fallback needed for this problem?
20:17 carlin lizmat: yes. removing the add_fallback lets it precompile
20:17 lizmat and Kaboom by itself precomps ok
20:18 carlin yep
20:19 carlin and you can 'use kaboom' directly and it works
20:19 carlin it's only when using a file that has `use Kaboom`
20:19 carlin (or `use Inline::Perl5`)
20:20 lizmat no, it's the Bar that blows up, so it's one use removed from that, no?
20:20 lizmat carlin: anyway, this should work, afaics
20:20 lizmat so please rakudobug it
20:21 virtualsue joined #perl6
20:21 lizmat perhaps rewrite it using CompUnit.new('lib/Kaboom.pm6').precomp
20:21 lizmat for simplicity (then you shouldn't need Panda
20:21 lizmat )
20:26 cibs joined #perl6
20:30 gtodd any suggestions for a terminal font (i.e. for use with vim or emacs -nw) that will show 「」?  on a  modernish Xorg / xterm on Unix
20:31 cognome http://levien.com/type/myfonts/inconsolata.html
20:32 colomon tony-o: BTW, after I generated a fresh projects.json I ran the module smoke test, and Pluggable passes nicely.  :)
20:32 gtodd well notjust 「」  but other cool perl6 syntax bits ..\
20:32 gtodd cognome: cool thanks
20:34 * nine uses Deja Vu Sans Mono
20:34 cognome gtodd, apparently it has not 「」
20:34 gtodd 「 right
20:35 cognome I have lost track what fonts my different tools use :(
20:35 vike joined #perl6
20:35 tony-o colomon: thank you!!!
20:36 cognome_ joined #perl6
20:36 ggoebel11111110 joined #perl6
20:36 dalek roast: c41eb8a | (Elizabeth Mattijsen)++ | S17-procasync/kill.t:
20:36 dalek roast: It helps if you actually try to kill the process
20:36 dalek roast: review: https://github.com/perl6/roast/commit/c41eb8a318
20:37 timotimo ohai tony-o
20:42 timotimo i feel like the .IO method on Cool should accept named parameters and pass them on to the open call
20:43 timotimo so i could do things like "my @lines_with_nl = 'foobar.txt'.IO(:!chomp).lines"
20:43 lizmat fwiw, I feel that .IO should return a IO::Path, rather than an unopened IO::Handle
20:43 gtodd that's one that doesn't show up often ... was thinking of making a multi-key dead-key combo for inserting 「 and 」  but they won't show up in a terminal
20:43 timotimo er, .IO gives you an *unopened* handle?
20:43 timotimo indeed it does
20:43 timotimo fortunately, lines() on an unopened handle opens it for you
20:43 timotimo so that's nice
20:44 lizmat yes, but it makes it hard to make a difference between a path and an open handle
20:44 lizmat you can't see from the type of object
20:44 lizmat which is really yuck if you think about it
20:44 timotimo um
20:44 timotimo i'm not really sure i understand that correctly?
20:45 lizmat "foo".IO.e is used to check for existence of a file
20:45 lizmat it will never open the file, just check the FS for existence
20:46 lizmat still, we create an IO::Handle for that, and then don't use any of the feature of an IO::Handle, just it's path
20:46 lizmat *its
20:47 lizmat I'm *this* close to overhauling the IO spec (of which TimToady claims he lost track some years ago)
20:47 timotimo mhm mhm
20:47 lizmat if IO returns an IO.path, we could e.g. only once make sure it's absolute
20:47 Timbus_ do it!
20:47 lizmat instead of over and over again
20:48 Timbus_ i patched the isDir and PIO checks out of .get and sped it up.. i thought the same thing
20:51 Timbus_ timotimo, the scheduler for GTK::Simple doesnt work, btw
20:51 timotimo why not? :(
20:51 Timbus_ you attach an idle handler but since it returns false, it detaches immediately.
20:51 timotimo oh!
20:51 timotimo didn't know that (also, i didn't implement that :P)
20:51 Timbus_ oh
20:52 timotimo feel free to pullrequest or would you like a commit bit instead?
20:52 Timbus_ well, i fixed it but its still broken D;
20:53 timotimo damn :(
20:53 timotimo i have no past experience with gtk3, sadly ;(
20:53 Timbus_ i made .cue attach an idle handler every time theres an event to process -- which is the best way to do it really. but it often simply wont call .cue?
20:54 Timbus_ i dont fully understand the scheduler role. also gtk is 'pausing' threads. its very confusing
20:54 timotimo :\
20:55 mst joined #perl6
20:57 * lizmat wonders ho much of moar's async stress breakage is really libuv immaturity  :-(
20:57 lizmat *how
20:58 timotimo hopefully not much
20:59 * lizmat hopes so too
21:00 Timbus_ also if i make the idle handler return 'true' to work around it the other way, ignoring that that is pretty inefficient to have a permanent idle handler.. it crashes for some reason. i guess perl6 cant return values to a C library?
21:00 Timbus_ perl6 callbacks*
21:00 timotimo it should be able to
21:01 diakopter I don't think it's libuv immaturity; these cases sound like things for which there are quick-for-jnthn-to-find-given​-suitable-available-attention corner cases with obvious fixes. :)
21:01 timotimo you put a "returns" thingie there, right?
21:01 diakopter [and/or corrective user education]
21:07 dalek rakudo/nom: fa7a1cc | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm:
21:07 dalek rakudo/nom: Bring Proc::Async up to spec
21:07 dalek rakudo/nom:
21:07 dalek rakudo/nom: I wanted to make sure we don't bring out a documented release of Proc::Async
21:07 dalek rakudo/nom: of which the API may change later.
21:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fa7a1cc97d
21:08 dalek roast: 52c0144 | (Elizabeth Mattijsen)++ | S17-procasync/ (3 files):
21:08 dalek roast: Bring Proc::Async tests in line with specced API
21:08 dalek roast: review: https://github.com/perl6/roast/commit/52c0144105
21:08 lizmat leont: ^^^^ Proc::Async flag day
21:08 [Coke] lizmat: an appropriate phrase to spell wrong! :)
21:09 [Coke] (mono font) source code pro is nice.
21:09 lizmat it made me chuckle when I fixed that in the spec  :-)
21:10 [Coke] diakopter: did you have to kill anything gone wild on host08 today?
21:11 [Coke] or did the rakudo-jvm tests eventually just starve?
21:11 leont Hmmm, I just sent a patch for Proc::Async, but I now have the impression it would no longer apply :-s
21:11 [Coke] (the machine was nearly dead after I tried to run just the jvm tests, and when I could finally get back in, the tests had failed). Assuming there's some nasty spectest.
21:12 leont (my checkout was only a few days old)
21:12 PerlJam lizmat: does this mean that jnthn's slides from YAPC::EU on Proc::Async will no longer work?
21:14 lizmat PerlJam: yes
21:14 lizmat leont: where did you send it ?
21:15 leont https://rt.perl.org/Ticket/Display.html?id=122722
21:15 lizmat PerlJam: jnthn has had to change slides after changes before...
21:16 FROGGS his slides are not made of stone after all :o)
21:16 PerlJam aye.  I was just thinking that those slides are probably the most wide-spread example and now it's (perhaps temporarily0 broken.
21:17 lizmat I could add a deprecation cycle
21:17 leont But I don't think anyone was using them for serious things, except me.
21:17 leont If they were, they would have reported the bugs I reported
21:18 lizmat but it felt premature for thst
21:18 PerlJam leont: good point.
21:18 lizmat *that
21:18 lizmat leont: looking at applying your patch
21:38 dalek rakudo/nom: 124893c | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm:
21:38 dalek rakudo/nom: Add deprecation cycle for Proc::Async
21:38 dalek rakudo/nom:
21:38 dalek rakudo/nom: So that jnthn's examples from the YAPC::EU presentation still work
21:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/124893c5f3
21:39 lizmat but with a deprecation message  :-)
21:39 lizmat $ 6 'my $pc=Proc::Async.new(:path<echo>,:args<Hello World>)'
21:39 lizmat Saw 1 call to deprecated code during execution.
21:39 lizmat ========================================​========================================
21:39 lizmat new(:path(),:args()) (from Proc::Async) called at:
21:39 lizmat -e, line 1
21:39 lizmat Please use new($path,@args) instead.
21:40 lizmat continuing to look at leont's patch
21:44 leont Actually, it looks like it should still apply cleanly :-)
21:46 lizmat yes, but I'm not sure about the sanity of the patch yet
21:50 * leont neither. I think the current behavior is wrong, and your fix didn't really fix it. Not entirely sure what else it should do.
21:51 leont Fix is the other way around (call done when done reading, not when process ended) would be another option
21:51 [Sno] joined #perl6
21:51 leont s/is/it/
21:54 lizmat leont: I'm just adding sanity checks atm
21:54 lizmat like not being able to print if not opened with :w
21:54 lizmat and not being able to print until started
21:54 timotimo IMO you shouldn't conflate "process exited" and "finished reading from stdout/stderr"
21:54 timotimo but "process exited" should close the async stdin part
21:58 dalek rakudo/nom: b33f353 | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm:
21:58 dalek rakudo/nom: Put in sanity checks and appropriate exceptions
21:58 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b33f353f96
22:02 dalek rakudo/nom: 4c79228 | (Tobias Leich)++ | src/core/Cursor.pm:
22:02 dalek rakudo/nom: port MATCH object construction patch from nqp
22:02 dalek rakudo/nom:
22:02 dalek rakudo/nom: I cannot see a speed improvement, but we allocate less objects.
22:02 dalek rakudo/nom: Hopefully the jvm specific fudges can be removed by a more smarter
22:02 dalek rakudo/nom: hacker. :o)
22:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4c7922850a
22:02 bjz_ joined #perl6
22:02 FROGGS tomorrowish I'll look into the nqp::substr optimizations on hot paths
22:03 FROGGS gnight #perl6
22:03 lizmat good night FROGGS++
22:08 dalek rakudo/nom: 5620d40 | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm:
22:08 dalek rakudo/nom: Oops, forgot one sanity check
22:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5620d408d8
22:10 lizmat .tell FROGGS feels like 4c7922850a is adding ~ .5 second to setting parsing
22:10 yoleaux lizmat: I'll pass your message to FROGGS.
22:24 ingy vendethiel: re:lisp, most certainly
22:24 ingy attempt to do it using similar OO idioms if possible
22:24 ingy is there a regex lib you can pull in?
22:25 ingy vendethiel: also I just added Bash: https://github.com/ingydotnet/pig-lati​n-acme/blob/master/lib/Pig/Latin.bash
22:25 ingy OO Bash!
22:25 ingy I gave a talk on OO Bash last spring in Taiwan
22:26 lizmat leont: I'm wondering whether the problem isn't deeper with Supply
22:26 lizmat specifically, if a .done is executed before all pending .more's are done
22:27 leont I have been wondering the same
22:28 leont I think that would require 'done' to also use 'on', but I'm not fully understanding 'on' yet
22:29 leont But in this case P::A can legitimately give data after the process is ended, so fixing only Supply isn't good enough
22:31 Psyche^_ joined #perl6
22:36 lizmat seems the difference in handling 'seq' between stdout and stderr is bogus, so I will at least fix that
22:36 mls joined #perl6
22:38 telex joined #perl6
22:38 lizmat I'm also not sure whether .start will wait until the process has actually been spawned
22:42 leont spawning is not well defined across platforms, but on unix there's not reason to wait after the fork, really
22:42 lizmat if not, we have a race conditiion wrt to print/say/write
22:42 leont Yeah, the difference in seq handling is silly
22:43 leont Why? As soon as the pipes are set up, you could write to them. I'd assume libuv is at least that sane.
22:44 lizmat ok, let's assume that sanity is there  :-)
22:48 lizmat hmm... it looks like the callbacks.done is never called
22:49 firnsy joined #perl6
22:49 leont Huh?
22:50 lizmat if you do "await $pc.start", you are waiting for the promise to be kept
22:50 lizmat but apparently, if the promise disappears too soon, the "done" is not done
22:51 lizmat hmmm... not true
22:51 lizmat it's just flapping  :-(
22:54 ivanshmakov joined #perl6
22:56 ponbiki joined #perl6
22:58 aborazmeh joined #perl6
23:02 lizmat ok, something definitely wrong in the order of things:
23:02 lizmat every now and then I get 'Hello World\nStarted\nDone"
23:03 lizmat which would indeed imply that the channel back to the P:A object is not being fed in order
23:03 dalek rakudo/nom: ee805ae | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm:
23:03 dalek rakudo/nom: Make stdout handling same as stderr handling
23:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ee805ae7f6
23:04 lizmat $ perl6 t/spec/S17-procasync/print.t
23:04 lizmat run that a few times, and you should see it about 1 in 10 times
23:05 cognome joined #perl6
23:05 diakopter [Coke]: no, I didn't; someone else may have though
23:05 lizmat ok, maybe 1 in 20
23:07 leont lizmat: I still suspect that is the wrong fix. It means P::A done will call the Supply's done even though there may still be data in the pipe.
23:08 lizmat but your solution blocks on the $proc.start
23:08 lizmat and that's not good either
23:08 lizmat it should block awaiting on the returned promise
23:09 leont Ah, I see
23:09 leont Then I had misunderstood how .then works
23:09 lizmat well, maybe I'm not reading it right
23:10 lizmat ah, no, your idea is sound
23:11 lizmat in any case, this would still not explain the order issues I've seen 1/20 times
23:13 diakopter [Coke]: p6eval user is monopolizing the cpu with oodles of java processes
23:16 jantore joined #perl6
23:16 ivanshmakov joined #perl6
23:17 leont I mentioned my theory about that. If they're read separately, there may be two tasks for different pieces of data. If they're not scheduled in the right order…
23:17 xragnar joined #perl6
23:18 raiph joined #perl6
23:18 raiph joined #perl6
23:23 leont But moar's async code is not particularly accessible, haven't been able to test my hypothesis.
23:29 maxp joined #perl6
23:30 lizmat leont: I think I've pulled in your code now, with small changes
23:31 leont :-)
23:32 lizmat hmm... sort of expected that Promise.keep would default to True, and break to False
23:32 lizmat I guess for later :)
23:35 jerrycheung joined #perl6
23:37 dalek rakudo/nom: 567da3e | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm:
23:37 dalek rakudo/nom: Basically pull patch of leont++ (RT #122722)
23:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/567da3e207
23:37 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=122722
23:38 lizmat leont: I hope this brings improvement for you
23:38 lizmat I'm not seeing it yet
23:39 lizmat but it makes sense  :-)  Hope it does for jnthn as well
23:39 lizmat for now, I'm going to get some shuteye
23:39 lizmat good night, #perl6!
23:39 diakopter o/
23:43 leont My version brought me improvements in the test that I also posted in that ticket
23:48 leont Unlike before, the done is always after the associated output
23:51 BenGoldberg joined #perl6
23:51 geekosaur joined #perl6

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

Perl 6 | Reference Documentation | Rakudo