|
»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
| ingy | is the 6model in current use? | 00:03 | |
|
00:07
eternaleye joined
|
|||
| timotimo | yes | 00:12 | |
| leont: @<foo> should dwim to @($<foo>) | |||
|
00:14
eternaleye left
00:26
chenryn joined
|
|||
| chenryn | m:say 3 ∈ [2, 3, 5, 6];my @w=[2,3,5,6];say 3 ∈ @w; | 00:26 | |
| m: say 3 ∈ [2, 3, 5, 6];my @w=[2,3,5,6];say 3 ∈ @w; | 00:27 | ||
| camelia | rakudo-moar de1626: OUTPUT«TrueFalse» | ||
|
00:29
chenryn left
|
|||
| 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» | ||
| timotimo | ^- it's a one-element array with a list inside | ||
| (the [ ] makes a list that's "itemified", so it will turn into a single element) | 00:36 | ||
|
00:37
araujo joined
|
|||
| timotimo | o/ araujo | 00:38 | |
| do you think we can convince gentoo developers to rewrite that terrible codebase called "emerge" in p6? :P | 00:40 | ||
|
00:45
cognome joined
00:48
cognome left,
cognome joined
00:53
cognome left
|
|||
| 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 }; | ||
| camelia | rakudo-moar de1626: OUTPUT«0.0279894» | ||
| gtodd | ah right | 00:59 | |
| BenGoldberg | m: my $a; $a += 1 for 1..1e5; say now - BEGIN { now }; | ||
| camelia | rakudo-moar de1626: OUTPUT«1.42114722» | ||
| gtodd | k goodie | ||
| BenGoldberg | :) | ||
| gtodd | camelia: my apologies for waking you ... | ||
| hmm lines() can be "eager" now ? | 01:01 | ||
| cool :) | |||
| BenGoldberg | m: .say for eager lines; | ||
| camelia | rakudo-moar de1626: OUTPUT«Céad slán ag sléibhte maorga Chontae Dhún na nGallAgus 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…» | ||
| BenGoldberg | Not that I can tell the difference between eager and non-eager, in this case. | 01:02 | |
| gtodd | heh ... oh I see it has to go through a loop once first | 01:04 | |
| or something | |||
|
01:04
Ben_Goldberg joined,
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg
|
|||
| gtodd | well it took the recent perlmonks log parsing "benchmark" from 70 second to 64 seconds my machine | 01:05 | |
| doing perl6 -e 'for eager lines() { say ~$/ if m/(<<\w**5>>)/}' 150k-lines-of-log.txt | |||
| 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:07 | ||
| araujo | timotimo, hi there :) | 01:08 | |
| timotimo, hehe, it'd be an interesting experiment for sure ;) | |||
| gtodd | perl6 -MPerl5 -n -e 'say $1 if /\b(\w{5})\b/' 150k-lines-of-log.txt takes longer ... despite using Perl5 ;-) | 01:11 | |
|
01:19
FROGGS_ joined
|
|||
| diakopter | o_O | 01:21 | |
| gtodd | j/k | 01:22 | |
| dalek | osystem: e4aa843 | segomos++ | META.list: Add role module 'Pluggable' Role 'Pluggable' lets you find plugins for your cool module (and other modules) |
||
|
01:23
FROGGS left
01:24
slmult0 joined
|
|||
| timotimo | gtodd, BenGoldberg: the "eager" flag is currently just used by passing :eager to the sub itself | 01:34 | |
| we don't have a proper mechanism for the eager prefix to understand the meaning of the :eager flag | |||
|
01:35
yeahnoob joined,
bjz left
01:40
Akagi201 joined
01:45
cognome joined
01:49
dayangkun joined,
cognome left
01:52
slmult0 left
02:11
chenryn joined,
chenryn left,
chenryn joined
02:13
dayangkun left
02:17
leont left
02:21
eternaleye joined
02:22
xinming left
02:26
dayangkun joined,
eternaleye left
02:45
cognome joined
02:47
noganex joined
02:50
cognome left,
noganex_ left
|
|||
| diakopter | www.youtube.com/watch?v=wIuFFU8T0kI#t=1525 | 02:55 | |
|
03:17
molaf joined
03:18
eternaleye joined
03:22
eternaleye left
03:31
rindolf joined
03:35
molaf left
03:45
cognome joined
03:50
cognome left
04:02
tokuhirom left
04:03
kaare_ joined,
yeahnoob left
04:04
robinsmidsrod left
04:06
robinsmidsrod joined,
rindolf left
04:14
rindolf joined
04:17
[Sno] left
04:31
jerrycheung joined
04:35
BenGoldberg left
04:40
mr-foobar left
04:44
dayangkun left
04:45
cognome joined
04:49
kaare_ left
04:50
cognome left
05:01
dayangkun joined
05:17
xenoterracide joined
05:19
kaare_ joined
05:24
yeahnoob joined
05:27
xenoterracide left
05:29
FROGGS_ left
05:31
anaeem1_ joined
05:34
anaeem1_ left
05:35
anaeem1_ joined
05:37
FROGGS_ joined
05:45
cognome joined
05:47
FROGGS_ left,
denis_boyun_ joined
05:50
cognome left
05:52
denis_boyun_ left
05:53
denis_boyun_ joined,
dayangkun left
05:55
SamuraiJack joined,
FROGGS_ joined
05:57
[Sno] joined
05:59
rindolf left
06:03
mr-foobar joined
06:04
eternaleye joined
06:13
eternaleye left
06:20
rhr left
06:21
ren1us joined
|
|||
| 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 | |
| github.com/ren1us/COM320/blob/mast...W1/xmer.p6 <--- the demon code | |||
|
06:24
darutoko joined
06:25
FROGGS_ left
06:38
FROGGS joined
06:42
grondilu joined
06:43
baest_ is now known as baest
|
|||
| grondilu | ren1us: there are quite a few things that are wrong in your code | 06:43 | |
| like in '[+] %hash.values ~~ $file.chars - $_' You probably need some parenthesis here | 06:44 | ||
| because that means [+] (%hash.values ~~ $file.chars - $_), which I have hard to believe that's what you wanted. | 06:45 | ||
|
06:45
cognome joined
|
|||
| grondilu | also: given foo() -> $str {...} does not make much sense. Either you write for foo() -> $str {...} or given foo() {...} but not a mix | 06:47 | |
|
06:47
denis_boyun_ left
06:50
cognome left
|
|||
| grondilu | but in any case I have very little idea of what your code does. | 06:50 | |
| (or is supposed to do) | |||
| you may consider adding a short description of your program in a comment when publishing. | 06:51 | ||
|
06:51
denis_boyun_ joined
|
|||
| ren1us | oddly enough, swapping out the givens in there fixed my problem. i have absolutely no idea why. | 06:51 | |
| i'm guessing there's some weird memory suckage happening there | |||
|
06:53
rhr joined
|
|||
| grondilu | m: given "foo" -> $str { say "$str" } | 06:53 | |
| camelia | rakudo-moar de1626: OUTPUT«foo» | ||
| grondilu | I'm amazed this is even syntactically correct. Maybe it shouldn't? | 06:54 | |
| std: given "foo" -> $str { say "$str" } | |||
|
06:54
camelia left
|
|||
| ren1us | that's an interesting effect | 06:55 | |
| nine | wow, must me very wrong | ||
|
06:55
aborazmeh joined
|
|||
| 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
|
|||
| grondilu | m: say "hi" | 06:56 | |
| nine | grondilu: no, camelia seems to have issues at the moment: 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
ChanServ sets mode: +v camelia
|
|||
| camelia | rakudo-moar de1626: OUTPUT«hi» | 06:57 | |
| grondilu | ok | ||
| TimToady | also, /[^ATCG]/ is very much a Perl 5 regex, you want /<-[ATCG]>/ in P6 | ||
| ren1us | i'm still quite interested in where the memory exploded | 06:59 | |
| found it. %hash{$file.substr([+] %hash.values, $_)}++; causes the memory usage to skyrocket, but %hash{$file.substr(([+] %hash.values), $_)}++; does not | 07:01 | ||
|
07:01
telex left
07:02
telex joined
07:05
eternaleye joined
|
|||
| grondilu | quite understably. You were getting very long substrings in the first case. | 07:06 | |
| grondilu is mused by his "understably" typo | 07:07 | ||
|
07:10
zakharyas joined
|
|||
| 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:11 | |
|
07:11
denis_boyun_ left
|
|||
| grondilu refers to commit de1626553c6d83a948040d881c60856da3ed63bf | 07:14 | ||
|
07:15
eternaleye left
|
|||
| FROGGS | m: say π; { constant π = 'hi grondilu'; say π }; say π | 07:17 | |
| camelia | rakudo-moar de1626: OUTPUT«3.14159265358979hi grondilu3.14159265358979» | ||
| FROGGS | grondilu: argument invalidated :P | 07:18 | |
|
07:20
slmult0 joined
|
|||
| 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:21 | |
| 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:23 | ||
| same goes for 'if' statements... that's a very very useful thing | 07:24 | ||
|
07:27
camelia left
07:28
camelia joined
|
|||
| FROGGS | m: given 42 { when * -> $fortee-too { say $fortee-too } } # I also consider this valid, even when (haha!) it explodes | 07:28 | |
| TimToady: ^^ ? | |||
| would be handy to alias the topic to something to e.g. pass it on as nameds to a routine | |||
| variable names have a job after all | 07:29 | ||
|
07:29
ChanServ sets mode: +v camelia
|
|||
| 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:29 | |
| FROGGS | diakopter: can you please 'mkdir /home/p6eval/std/snap' on feather08? | 07:30 | |
| TimToady: would I be able to do that? given @list { when :(Int,Str) -> $a, $b { ... } } | 07:31 | ||
| and I could also imagine that some does a .grep in the 'when' clause and likes to fetch the result | 07:33 | ||
|
07:37
yeahnoob left
|
|||
| FROGGS | someone* | 07:38 | |
| .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. | ||
| grondilu | m: say π; constant π = 'hi grondilu'; say pi | 07:45 | |
| camelia | rakudo-moar de1626: OUTPUT«3.141592653589793.14159265358979» | ||
|
07:45
cognome joined,
kurahaupo left
|
|||
| grondilu | it does work indeed. My bad. | 07:45 | |
| FROGGS | m: constant π = 'hi grondilu'; say pi | 07:46 | |
| camelia | rakudo-moar de1626: OUTPUT«3.14159265358979» | ||
| FROGGS | ahh | 07:47 | |
| m: constant π = 'hi grondilu'; say π | |||
| camelia | rakudo-moar de1626: OUTPUT«hi grondilu» | ||
| grondilu | that's good, isn't it? | ||
| FROGGS | yes yes | ||
| lizmat | gtodd: re irclog.perlgeek.de/perl6/2014-09-16#i_9362201, for now you would have to add :eager to the call to .lines | ||
| it is intended as a temporary way to give you eagernes | 07:48 | ||
|
07:48
slmult0 left
|
|||
| lizmat | ah, I see timotimo already said that | 07:49 | |
| lizmat continues backlogging | |||
|
07:49
slmult0 joined
07:50
cognome left
|
|||
| FROGGS | p: my int $chars; say $chars + 1 + nqp::add_i(0,0) | 07:55 | |
| camelia | rakudo-parrot de1626: OUTPUT«0» | ||
| FROGGS | p: my int $chars; say $chars + 1 + nqp::add_i(0,1) | ||
| camelia | rakudo-parrot de1626: OUTPUT«2» | ||
| FROGGS | *g* | ||
| that's just insane | |||
|
07:56
kaleem joined
|
|||
| lizmat | so it's for all nqp:: ops this happens ? | 07:57 | |
| FROGGS | for all native ops | 07:58 | |
| there is an optimization that gets applied in case the return value is a native... I bet that triggers it | |||
| p: my int $chars; say $chars + 1 + nqp::add_I(0,1, Int) | |||
| camelia | rakudo-parrot de1626: OUTPUT«2» | ||
| FROGGS | p: my int $chars; say $chars + 1 + nqp::add_I(0,0, Int) | ||
| camelia | rakudo-parrot de1626: OUTPUT«1» | ||
| FROGGS | yeah, that might be it | ||
| lizmat | seems so: | 07:59 | |
| $ perl6-p --optimize=0 -e 'my int $chars; say $chars + 1 + nqp::add_i(0,0)' | |||
| 1 | |||
| $ perl6-p --optimize=2 -e 'my int $chars; say $chars + 1 + nqp::add_i(0,0)' | 08:00 | ||
| 0 | |||
| optimize=1 is also ok | |||
| FROGGS | ohh, good to know :o) | ||
| lizmat adds this to the ticket | |||
| FROGGS | it is the optimization of p6decontrv if I am right | ||
|
08:04
kjs_ joined
|
|||
| 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:06 | |
| 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 | ||
|
08:07
jack_rabbit left
|
|||
| lizmat | nqp::ordat is a lot faster, I think, judging from the opt jnthn did to Str.lines | 08:07 | |
| grondilu notices optimization stage was extremely long on his machine today | 08:08 | ||
| FROGGS | then we should do that | ||
| grondilu notices mast stage was even longer | 08:10 | ||
| FROGGS | rakudo/src$ grep -R 'nqp::substr' * | grep -P '1\s*\)' | wc -l | ||
| 57 | |||
| though, there are also quite some false positives | |||
| m: say nqp::ordat("foo", -1) | |||
| 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) | ||
| camelia | rakudo-parrot de1626: OUTPUT«111» | ||
| FROGGS | would be handy (and faster) to allow negatives... | ||
| grondilu | compilation timings for reference: pastebin.com/4a8BRT0i | 08:15 | |
| FROGGS | grondilu: is that an 486? that's awful | 08:16 | |
|
08:17
eternaleye joined
|
|||
| grondilu | x586 | 08:19 | |
| sorry i686 | |||
|
08:19
virtualsue joined
|
|||
| 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) | ||
| FROGGS | ahhh | ||
| still somewhat painful :o) | |||
| grondilu | still, usually the longest stage is the parse one, by far. | 08:21 | |
| not the optimize one | |||
| also, the parse stage usually goes below or aroung 200s. It's been getting worse lately. | 08:22 | ||
|
08:22
eternaleye left
|
|||
| dalek | kudo/nom: 3fae8d2 | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm: Implement Proc::Async.stdout/stderr .stdout_chars/.stdout_bytes/.stderr_chars/.stderr_bytes not yet removed. |
08:23 | |
| ast: 68d79bf | (Elizabeth Mattijsen)++ | S17-procasync/ (2 files): Use new Proc::Async.stdout/stderr methods |
08:24 | ||
|
08:26
dakkar joined,
virtualsue left
08:41
aborazmeh left
08:45
cognome joined
08:46
FROGGS left
08:50
cognome left
08:58
FROGGS joined
08:59
jerrycheung left
09:02
slmult0 left,
AW3i joined
|
|||
| 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:11 | |
| oh | 09:12 | ||
| that's only in parrot | 09:13 | ||
| github.com/perl6/nqp/blob/master/s....nqp#L2174 | |||
| and yeah, ordat should be a whole lot faster | |||
| and eqat should be a bit faster than substr + eq, too | |||
| nwc10 | timotimo: so, you were asking brrt what you should do next... :-) | 09:14 | |
| timotimo | heh. | 09:15 | |
| yeah, i can do that. would look like a simple port | 09:16 | ||
| nwc10 | can you do it at a level that works on both MoarVM and JVM? | 09:17 | |
| timotimo | not really | 09:20 | |
| there isn't a stage that nqp:: ops go through before they reach the QAST Compiler | |||
| the optimizer could in theory do it | |||
| but it'd seem cheaper to me to build it directly into the compiler | |||
| that way we don't have the discovery logic multiple times | |||
|
09:22
virtualsue joined
09:23
eternaleye joined
09:24
AW3i left
|
|||
| grondilu was reading 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:25 | ||
|
09:27
eternaleye left
|
|||
| grondilu | (or maybe QuantHash) | 09:27 | |
| FROGGS | >.< gist.github.com/FROGGS/02305f2e46d8fb3ef0b9 | 09:28 | |
| grondilu | std: my UInt $ | 09:29 | |
|
09:29
camelia left
|
|||
| grondilu had forgotten about camelia being gone | 09:29 | ||
| Isn't UInt supposed to be a thing? It's apparently NYI on rakudo. | 09:30 | ||
| timotimo | d'oh, FROGGS! :( | ||
|
09:30
camelia joined
09:31
bjz joined
|
|||
| 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:32 | |
|
09:32
ChanServ sets mode: +v camelia
|
|||
| grondilu | ouch | 09:33 | |
|
09:37
denis_boyun_ joined
09:38
ren1us left
|
|||
| grondilu | (subset UInt of Int where * >= 0;) should be easy to add in Int.pm | 09:41 | |
|
09:45
cognome joined
09:48
ggoebel1111119 joined
09:49
ggoebel1111118 left
09:50
cognome left
|
|||
| timotimo | subsets with a where clause are immensely expensive; this should be handled at the VM level, imo | 09:50 | |
|
09:57
jaffa4 joined
|
|||
| jaffa4 | m: module b; sub c() {} ; module main; use b; b::c(); | 09:59 | |
| camelia | rakudo-moar 3fae8d: OUTPUT«===SORRY!=== Error while compiling /tmp/lS5PvnoVdEToo late for semicolon form of module definitionat /tmp/lS5PvnoVdE:1------> module b; sub c() {} ; module main; ⏏use b; b::c(); expecting any of: …» | ||
|
09:59
leont joined
10:03
JimmyZ joined
|
|||
| JimmyZ | timotimo: s/abbrevation /abbreviation/ | 10:03 | |
| timotimo | oops, that's an aggrevating mistake :P | 10:04 | |
| diakopter | FROGGS: simply creating that directory will solve it? | 10:05 | |
|
10:07
JimmyZ_ joined,
leont left
10:09
JimmyZ left,
JimmyZ__ joined,
JimmyZ__ is now known as JimmyZ
|
|||
| diakopter | std: 1 | 10:10 | |
| camelia | std : OUTPUT«Can't open perl script "tryfile": No such file or directory» | ||
| FROGGS | diakopter: obviously not :o) | 10:11 | |
|
10:11
eternaleye joined
|
|||
| jaffa4 | hi all what is the search path of dlls in nativecall? | 10:12 | |
|
10:13
JimmyZ_ left
|
|||
| FROGGS | jaffa4: PATH and cwd on windows | 10:14 | |
|
10:16
kaleem left
10:17
eternaleye left
|
|||
| diakopter | msdn.microsoft.com/en-us/library/wi...plications | 10:17 | |
|
10:20
thilp joined,
kaleem joined
10:23
cognome joined
10:33
JimmyZ_ joined
10:34
JimmyZ__ joined
10:36
JimmyZ left,
JimmyZ__ is now known as JimmyZ
10:38
JimmyZ_ left
10:45
JimmyZ left
10:46
jantore left,
jantore joined
10:49
cognome left
10:50
cognome joined
|
|||
| jaffa4 | m: BEGIN {my $p = 'D:\m\p6\guiultimate\lib\\GUI\Upp.pm6'; say $p.subst(/(.+)\\.+$/,{$0});} | 10:55 | |
| camelia | rakudo-moar 3fae8d: OUTPUT«» | ||
| jaffa4 | m: {my $p = 'D:\m\p6\guiultimate\lib\\GUI\Upp.pm6'; say $p.subst(/(.+)\\.+$/,{$0});} | ||
| camelia | rakudo-moar 3fae8d: OUTPUT«D:\m\p6\guiultimate\lib\GUI» | ||
| jaffa4 | bug!!!!!!!!!!!!!!! | ||
| colomon | smoker appears to have hung in panda rebootstrap overnight?!? | 10:57 | |
| 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」» | ||
| FROGGS | m: BEGIN { my $p = 'D:\m\p6\guiultimate\lib\\GUI\Upp.pm6'; say $p.match(/(.+)\\.+$/); say $/ } | ||
| 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:04
cognome left
11:05
cognome joined
11:13
Woodi left,
Woodi joined
11:14
mattp_ left
11:17
mattp_ joined
|
|||
| jaffa4 | m : say "hello"[0..2]; | 11:20 | |
| m: say "hello"[0..2]; | |||
| camelia | rakudo-moar 3fae8d: OUTPUT«hello» | ||
| jaffa4 | m: say ("hello"[0..2]); | ||
| camelia | rakudo-moar 3fae8d: OUTPUT«hello» | ||
|
11:21
kjs_ left
|
|||
| FROGGS | m: say "hello"[0] | 11:22 | |
| camelia | rakudo-moar 3fae8d: OUTPUT«hello» | ||
| FROGGS | that makes it more clear | ||
|
11:23
mattp_ left,
leont joined
|
|||
| 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( | ||
| FROGGS | leont: that probably means that an nqp::decont is needed somewhere in the gust of rakudo | 11:25 | |
| leont doesn't even know what a decont is ;-) | 11:26 | ||
| jnthn | More like there's a data race somewhere. | ||
| leont | Yeah, I would guess it to be some kind of data race too | ||
| 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
kaleem left
|
|||
| leont | Fair point, though I think it was a freak accident anyway. Didn't save the exact code when I hit it :-/ | 11:27 | |
| Also, I seem to be observing spinlocking again in Proc::Async :-s | 11:28 | ||
| Or at least some part of the async code | |||
|
11:28
chenryn left
|
|||
| 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 | |
| That one at least is already on my todo list. :) | |||
| leont | :-) | ||
| jnthn | So hopefully it's that you're seeing, not some other nasty. | ||
| leont | prove6 seems to trigger it quite reliably | 11:30 | |
|
11:32
eternaleye joined,
ab5tract joined
|
|||
| jnthn | Good to know. | 11:32 | |
| 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:33 | ||
| ab5tract | colomon: hi there | 11:34 | |
| jnthn figures he should go nom something :) | 11:35 | ||
| bbl o/ | |||
| nwc10 | this is JIT nom? | ||
|
11:36
eternaleye left
|
|||
| dalek | kudo/nom: e99b04b | (Tobias Leich)++ | tools/build/Makefile- (3 files): allow fudging of Perl6::Optimizer It is cheaper to fudge the source compared to check the backend at runtime. |
11:37 | |
|
11:39
kaleem joined,
kaleem left,
kaleem joined
11:46
fhelmberger joined,
mattp_ joined
11:48
kjs_ joined
12:01
kjs_ left
|
|||
| carlin | is there a way to die and suppress the backtrace? | 12:05 | |
| FROGGS | carlin: you could: $*ERR.say("ohh noes!"); exit 1; | ||
| carlin | problem with exit is it kills tests | 12:07 | |
| m: use Test; dies_ok { exit 1 } | |||
| camelia | ( no output ) | ||
| carlin | m: use Test; dies_ok { die 1 } | ||
| camelia | rakudo-moar 3fae8d: OUTPUT«ok 1 - » | ||
| colomon | ab5tract: o/ | 12:09 | |
| ab5tract: I'll try to think about / check on the Bag code today. | |||
| ab5tract: apologies for slow | |||
|
12:10
brrt joined
|
|||
| lizmat | FROGGS: you mean: note "ohh noes"; exit 1 :-) | 12:11 | |
| carlin would like something like die('oh noes', :!backtrace) | 12:13 | ||
| FROGGS | lizmat: probably :o) | ||
| lizmat | carlin: you mean the full --ll-exception one ? | 12:14 | |
| ah, *no* backtrace | |||
|
12:19
dayangkun joined
|
|||
| lizmat | carlin: is this for testing only? | 12:20 | |
|
12:20
dayangkun left
|
|||
| lizmat | if so, I used to have an "urgh" at former $work | 12:20 | |
| sub urgh($text) { note $test; exit } | |||
| then, whenever I was working on a test and wanted it to abort then and there if something went wrong | 12:21 | ||
| dalek | kudo-star-daily: 79728a1 | coke++ | log/ (15 files): today (automated commit) |
||
| [Coke] | we're going to be missing a day of the daily run due to server issues, sorry. | ||
| lizmat | I did a "urgh" , or an urgh "something" | ||
|
12:22
eternaleye joined
|
|||
| 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 | ||
| (cloudatcost.com) | |||
| [Coke] | diakopter++ | 12:24 | |
| ab5tract | colomon: no worries :) | ||
| 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 | ||
| carlin | lizmat: no, not only for testing | ||
| lizmat: I could use exit, but exit makes tests abort | |||
| diakopter | .. but which should be solvable by off-machine backup then re-image and restore | ||
| 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:25 | |
| lizmat | make it a fail and check for ~~ Failure ? | 12:26 | |
| then print the Failure instead of throwing it ? | |||
|
12:27
SamuraiJack left
12:29
dayangkun joined
12:31
eternaleye left
|
|||
| brrt | ooh os x has color inversion for the whole monitor | 12:32 | |
| very amaze | |||
| lizmat | also contrast enhance or grayscaling and sizable cursor | 12:33 | |
| Ulti | software.intel.com/en-us/articles/...n-in-julia <--- maybe of interest given talk of a list rewrite and the new moar-jit being a thing :P | ||
| 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
aindilis left
|
|||
| brrt | it's not quite font-size enlarging, but it is actually quite nice | 12:33 | |
| lizmat | brrt: and a shortcut key to size the screen | 12:34 | |
| brrt | is that so | ||
| lizmat | zoom I should say | ||
| brrt | ah | ||
| but zoom is never very useful | |||
| i.e. i only use it when the need is very very high | |||
|
12:34
ivanshmakov left
|
|||
| brrt | because you lose overview of the screen | 12:34 | |
| 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 | :-) | ||
| 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. | ||
| brrt | Ulti: anything wrong with JIT? | 12:37 | |
| 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:38 | |
| nine | diakopter: I'm curious. How prevented the virtualization architecture upgrades of the kernel? | 12:39 | |
|
12:39
jaffa4 left
|
|||
| diakopter | nine: I think it's Shared Kernel Virtualization | 12:40 | |
| such as VServer, Zones/Containers, FreeVPS, OpenVZ | |||
| nine | ah | ||
|
12:41
ivanshmakov joined
|
|||
| carlin | lizmat: is it possible to do that and still make the program stop running? | 12:41 | |
| diakopter | nine: I suppose it could also be KVM, but I/we don't know how to update the kernel properly | 12:42 | |
| brrt | Ulti: good to hear | 12:43 | |
| we strive to keep adding features to the JIT :-) | |||
| lizmat | carlin: like exit() does? or what ? | 12:46 | |
| carlin | lizmat: like die() does but without a backtrace | ||
| ab5tract | carlin: so, like exit() ? :) | 12:47 | |
| carlin | ab5tract: exit makes tests abort | ||
| otherwise it would work | |||
| ab5tract | ah, gotcha | 12:48 | |
| lizmat | carlin: exit makes the current test *file* abort, not all tests, afaik | ||
| carlin | lizmat: yeah, that's a problem because I want to test dies_ok | 12:49 | |
| jnthn back | |||
| nwc10 | sucessfully nommed? | 12:50 | |
|
12:50
eternaleye joined
|
|||
| carlin | and in Perl 5 this is as easy as die("oh noes\n") | 12:52 | |
| FROGGS | carlin: so you want to test dies_ok but you do not want to see a backtrace, right? | 12:53 | |
| m: use Test; dies_ok { die 1 } | |||
| jnthn | nwc10: Beef, rice, and a big iron pot cooking it JIT for me at the table seemed pretty successful, yes. :) | ||
| camelia | rakudo-moar e99b04: OUTPUT«ok 1 - » | ||
| nwc10 | sounds awesome | 12:54 | |
| FROGGS | carlin: this does not print a backtrace, so I don't understand your issue | ||
| jnthn | nwc10: Food was. My Chinese is awful though. :) | ||
| carlin | FROGGS: it will when the actual code runs | 12:55 | |
|
12:55
anaeem1_ left
|
|||
| 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" :) | |||
| tadzik | :P | 12:56 | |
| carlin | waht I want to do is; IO::Socket::INET.new(...); CATCH { die "could not connect, is the daemon running?") } | ||
| but with no backtrace printed | |||
| I could use exit(1) but then dies_ok won't when I test that | 12:57 | ||
| * won't work | |||
| 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 left,
ivanshmakov joined
|
|||
| 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«===SORRY!=== Error while compiling /tmp/jWhvljW1ZPTwo terms in a rowat /tmp/jWhvljW1ZP:1------> { QuietException.new(:$message).throw } ⏏die-quietly "on noes!" expecting any of: method argumen…» | ||
| nine | jnthn: is there more to learn? | ||
| jnthn | m: class QuietException is Exception { has $.message; method gist() { $.message } }; sub die-quietly($message) { QuietException.new(:$message).throw }; die-quietly "on noes!" | ||
| camelia | rakudo-moar e99b04: OUTPUT«on noes!» | ||
| jnthn | carlin: Maybe something like that :) | ||
| 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 | ||
| brrt | jnthn: do we have support for udp sockets, by the way? | ||
| jnthn | brrt: No | ||
| brrt | :-o | ||
| jnthn | brrt: libuv offers it, but nobody wired things up :) | ||
| brrt | i have a project in which i'm going to use udp sockets | ||
| ah | |||
| hmm | |||
| what would be necessary to do it? | |||
| jnthn | Do you need sync or async? | 13:02 | |
| brrt | i think udp is async by default? | ||
| jnthn | heh, true :) | ||
| brrt | you don't get acknowledgment after all | ||
| jnthn | aye, though receive can still be blocking or non-blocking... | ||
| brrt | receiving a message would be sync | ||
| dalek | kudo/nom: e1ae1db | (Tobias Leich)++ | src/ (2 files): fudge problematic optimization for parrot Also unfudge Str.lines which suffered from this optimization. |
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. | ||
| lizmat | FROGGS++ | ||
| carlin | jnthn: yes, perfect :) | ||
| jnthn++ | |||
|
13:03
JimmyZ joined,
kaare_ left
|
|||
| FROGGS | lizmat: now the p-spectest look better | 13:04 | |
| lizmat | cool! | ||
| FROGGS | lizmat: gist.github.com/FROGGS/f4f082706daec56ed5fd - RT122783 is what I just pushed, nom is what it was before | ||
| [Coke] | S99:RSN | ||
| synopsebot | Link: perlcabal.org/syn/S99.html#RSN | ||
|
13:04
eternaleye left
|
|||
| [Coke] | ^^ LHF - someone was asking about this on list. | 13:05 | |
| lizmat | as in Real Soon Now ? | ||
| [Coke] | aye | 13:06 | |
| jnthn | Repetitive Spec-change Nausea | ||
|
13:06
aindilis joined
|
|||
| brrt | jnthn: ok, good to know. thanks :-) | 13:07 | |
| dalek | ecs: 59013c3 | (Elizabeth Mattijsen)++ | S99-glossary.pod: Add lemma for RSN |
||
|
13:08
eternaleye joined,
travis-ci joined
|
|||
| travis-ci | [travis-ci] Rakudo build failed. Tobias Leich 'fudge problematic optimization for parrot | 13:08 | |
| [travis-ci] travis-ci.org/rakudo/rakudo/builds/35431321 github.com/rakudo/rakudo/compare/e...ae1db0005c | |||
|
13:08
travis-ci left
|
|||
| dalek | kudo/nom: decb9aa | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm: Proc::Async methods used as instance methods only |
13:08 | |
| kudo/nom: 7d62b8d | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm: Bring Proc::Async.kill up to spec |
|||
| FROGGS | :o( | 13:09 | |
| lizmat | $is-parrot undeclared | ||
|
13:09
LLamaRider joined
|
|||
| dalek | kudo/nom: 9517345 | (Tobias Leich)++ | src/Perl6/Optimizer.nqp: unbreak the build real quick |
13:10 | |
| lizmat | too quick: Unable to parse expression in blockoid; couldn't find final '}' | 13:11 | |
| FROGGS | I don't spot it | 13:12 | |
| lizmat: did you reconfigure? | |||
|
13:12
travis-ci joined
|
|||
| travis-ci | [travis-ci] Rakudo build failed. Elizabeth Mattijsen 'Bring Proc::Async.kill up to spec' | 13:12 | |
| [travis-ci] travis-ci.org/rakudo/rakudo/builds/35431787 github.com/rakudo/rakudo/compare/e...62b8da57ed | |||
|
13:12
travis-ci left
|
|||
| lizmat | nope | 13:12 | |
| FROGGS | lizmat: the Perl6::Optimizer is now fudged, so I updated the Makefile-*.in | 13:13 | |
| lizmat | ah, will try | ||
| FROGGS | I should add an irc highlight on 'build failed' | ||
| lizmat | builds now | 13:14 | |
| PerlJam | FROGGS: especially when it says "Tobias Leich"? ;) | ||
| FROGGS | PerlJam: no, every time :o) | ||
| lizmat | will travis do a reconfig ? | 13:15 | |
|
13:15
eternaleye left
|
|||
| FROGGS | lizmat: it starts with a fresh virtual machine, fresh MoarVM, nqp, ... | 13:15 | |
| lizmat | and tell us the build's ok now ? | ||
| FROGGS | it will tell when the status changes, and when the build faild | 13:16 | |
| so, yes | |||
| two out of three builds passed already | |||
|
13:16
eternaleye joined
|
|||
| FROGGS | travis-ci.org/rakudo/rakudo | 13:17 | |
|
13:17
travis-ci joined
|
|||
| travis-ci | [travis-ci] Rakudo build passed. Tobias Leich 'unbreak the build real quick' | 13:17 | |
| [travis-ci] travis-ci.org/rakudo/rakudo/builds/35431918 github.com/rakudo/rakudo/compare/7...17345cea40 | |||
|
13:17
travis-ci left
|
|||
| FROGGS | there we go :o) | 13:17 | |
| travis++ | |||
| PerlJam | FROGGS++ | ||
|
13:18
LLamaRider left
13:19
jerrycheung joined
13:20
guru joined,
guru is now known as Guest18977,
Guest18977 is now known as ajr_
13:27
JimmyZ_ joined
|
|||
| gtodd | timotimo: was searching iPhone6 info and found github.com/timo/iperl6kernel (appears I googled iPerl6 instead of iPhone6) | 13:28 | |
|
13:29
JimmyZ left,
JimmyZ_ is now known as JimmyZ
|
|||
| dalek | kudo-star-daily: 57679a5 | coke++ | log/ (15 files): today (automated commit) |
13:32 | |
|
13:36
eternaleye left,
JimmyZ left
|
|||
| carlin | isn't iPerl6 called Swift? :p | 13:37 | |
| FROGGS | ./perl6-j --target=jar --output=lib/lib.pm6.jar lib/lib.pm6 | 13:42 | |
| ===SORRY!=== | |||
| P6int representation does not support natively typed attributes | |||
| >.< | |||
|
13:44
eternaleye joined
|
|||
| gtodd | carlin: :) | 13:47 | |
| lizmat | FROGGS: --ll-exception ? | 13:48 | |
| FROGGS | lizmat: yes, in a mo' :o) | ||
| 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:50 | |
| alexghacker | m: sub t( :$abc ) { say $abc }; my $def = "abc"; my %t = $def => 456; t( |%t ) | 13:51 | |
| camelia | rakudo-moar e99b04: OUTPUT«456» | ||
| alexghacker | m: sub t( :$abc ) { say $abc }; my $def = "abc"; t( $def => 456 ) | ||
| 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» | ||
| alexghacker | can someone explain why the first works but the second does not? | ||
| FROGGS | alexghacker: that is the difference between a named parameter and a pair | ||
|
13:52
kjs_ joined
|
|||
| 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» | ||
| alexghacker | but doesn't => construct a Pair? | ||
| FROGGS | yes | ||
| and you are passing a Pair as a positional parameter | |||
| m: sub t( :$abc ) { say $abc }; my $def = "abc"; t( |($def => 456) ) | |||
| camelia | rakudo-moar e99b04: OUTPUT«456» | ||
| alexghacker | ok | 13:53 | |
| up until then in my experiementation it had looked like pairs automatically filled named parameters | |||
| FROGGS | see also: | ||
| alexghacker | thanks for the clarification | ||
| FROGGS | m: sub t( :$abc ) { say $abc }; my $def = "abc"; t( abc => 456 ) | ||
| camelia | rakudo-moar e99b04: OUTPUT«456» | ||
| FROGGS | m: sub t( :$abc ) { say $abc }; my $def = "abc"; t( "abc" => 456 ) | ||
| 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
mattp_ left
|
|||
| alexghacker | the difference between those last to is very subtle | 13:54 | |
| 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» | ||
| PerlJam | alexghacker: that one too | ||
| But yet, it all makes sense :) | |||
|
13:56
kjs_ left
|
|||
| 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:56 | |
| I'm still not seeing the difference that explicitly quoting the key makes, though | 13:57 | ||
|
13:57
JimmyZ joined
|
|||
| alexghacker | m: my %t = abc => 123; say %t | 13:58 | |
| camelia | rakudo-moar e99b04: OUTPUT«"abc" => 123» | ||
| 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) | ||
| alexghacker | m: my %t = "abc" => 123; say %t | ||
| camelia | rakudo-moar e99b04: OUTPUT«"abc" => 123» | ||
| 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» | ||
| alexghacker | heh | ||
| m: say( abc => 123 ) | |||
| 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» | ||
| alexghacker | m: say "abc" => 123 | 14:00 | |
| camelia | rakudo-moar e99b04: OUTPUT«"abc" => 123» | ||
| alexghacker | at least it's consistent | ||
| gtodd | oh in the the REPL I can use CORE::keys | ||
| alexghacker | m: say ( abc => 123 ) | 14:01 | |
| camelia | rakudo-moar e99b04: OUTPUT«"abc" => 123» | ||
| lizmat | m: sub a (:$foo) { $foo }; say a( (foo => "bar") ) # it's a pair | ||
| 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» | ||
| FROGGS | alexghacker: I see it as: "an indirection indicates passing a Pair" | ||
| lizmat | m: sub a (:$foo) { $foo }; say a( |(foo => "bar") ) # it's flattened to a named param | ||
| camelia | rakudo-moar e99b04: OUTPUT«bar» | ||
|
14:01
eternaleye left
|
|||
| lizmat | m: sub a (:$foo) { $foo }; say a( foo => "bar" ) # as it was like this | 14:02 | |
| camelia | rakudo-moar e99b04: OUTPUT«bar» | ||
| lizmat | m: sub a (:$foo) { $foo }; say a( :foo<bar> ) # or this | ||
| camelia | rakudo-moar e99b04: OUTPUT«bar» | ||
| alexghacker | m: sub t( :$abc ) { say $abc }; my $def = "abc"; t( |( $def => 456 ) ) | 14:03 | |
| camelia | rakudo-moar e99b04: OUTPUT«456» | ||
| alexghacker | that's where I wanted to end up | ||
| tyvm, all | |||
| lizmat++, PerlJam++, FROGGS++ | 14:04 | ||
| and TimToady++ (for his clarification last night) | |||
| leont | lizmat++ # Bring Proc::Async.kill up to spec | ||
| lizmat | leont: writing tests now | 14:05 | |
|
14:05
mr-foobar left
|
|||
| 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:1Trying to unwind over wrong handler» | ||
| lizmat | jnthn, brrt: ^^^ "trying to unwind over wrong handler" ??? | 14:06 | |
| 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» | ||
| lizmat | m: {+Nil; CONTROL { }} | ||
| camelia | rakudo-moar e99b04: OUTPUT«use of uninitialized value of type Nil in numeric context in block <unit> at /tmp/WC_Le_ZAB0:1Trying to unwind over wrong handler» | ||
|
14:07
kaleem left
|
|||
| masak | got a TODO: passed on test 12 of t/spec/S17-procasync/print.rakudo.moar | 14:11 | |
| otherwise, all-passing stresstest suite. moritz++ others++ | |||
|
14:11
eternaleye joined
|
|||
| dalek | ast: e3291a2 | (Elizabeth Mattijsen)++ | S02-types/nil.t: Add some Nil related tests, as per S02:491 |
14:12 | |
| synopsebot | Link: perlcabal.org/syn/S02.html#line_491 | ||
| lizmat | masak: I'm afraid that's a flapper :-( | 14:19 | |
|
14:20
kaleem joined
14:25
kaleem left
14:26
kaleem joined
14:27
kaleem left
|
|||
| jnthn | lizmat: Weird error... | 14:27 | |
| lizmat: Though | |||
| m: last | |||
| camelia | ( no output ) | ||
| jnthn | Hm | ||
| There's something odd tehre too | |||
| I'd not be surprised if they're related... | |||
| Also | 14:28 | ||
| m: Thread.start({ last }).join # weird too | |||
| camelia | rakudo-moar e99b04: OUTPUT«(signal )» | ||
| jnthn hopes he'll find the same thing at the root of all 3 :) | |||
| lizmat hopes so too... | |||
| brrt | lizmat: dunno :-o | ||
| never seen that actually | 14:29 | ||
| lizmat neither, so I thought I'd report it | |||
| jnthn | Makes me wonder if it's a corruption issue of some kind... | ||
| lizmat | as it may indicate a general problem with warnings | ||
| well, then I hope we have a simple case to test now :-) | |||
| 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:30 | |
| timotimo | oh my | 14:31 | |
|
14:31
[Sno] left
|
|||
| 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? | ||
| tadzik | how much in allocator? :P | ||
| timotimo | do we measure that? | 14:33 | |
| i don't think so | |||
| tadzik | or is it part of GC | ||
| jnthn | Well, allocating is rather hard to measure | ||
| I mean, it's cheap | |||
| JimmyZ | GC is sometimes strange, run samecase once cause a GC, while twice doesn't | ||
| timotimo | yeah, we just bump the pointer | ||
| jnthn | It's a bump-the-pointer algorithm. | ||
| So allocating is just "compare two numbers, then add two numbers" | |||
| JimmyZ | and always does that | 14:34 | |
| tadzik | that's provided that we have a preallocated poll for 1.2 million ints | ||
| isn't that so? | |||
| jnthn | No, it's more than we alloate in a nursery | ||
|
14:34
kaare_ joined,
eternaleye left
|
|||
| 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. | ||
| Yeah, the promotion rate is relaly low | |||
| timotimo | right, and an Int will not really cause many things to be traversed | 14:35 | |
| jnthn | As low as 2KB of promotion | ||
| 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 | |||
| timotimo | (yay, i wrote the beginning of that code) | 14:36 | |
| jnthn | Aye :) | ||
| Very worth it. | |||
| hoelzro | good * #perl6! | ||
| timotimo | good hoelzro, *! | ||
| hoelzro | o/ timotimo | 14:37 | |
|
14:37
aborazmeh joined,
aborazmeh left
|
|||
| jnthn | o/ hoelzro | 14:40 | |
| hoelzro | o/ jnthn | 14:41 | |
|
14:41
eternaleye joined,
eternaleye is now known as eternaley
|
|||
| lizmat | jnthn: sanity check: we should allow more than one signal to be tapped at a time, right ? | 14:44 | |
| jnthn | lizmat: aye | 14:45 | |
| lizmat | putting this in a file: | ||
| signal(SIGHUP).act: -> { }; signal(SIGINT).act: -> { }; sleep 5; | |||
| running it and pressing CTRL-c gives a very strange backtrace | |||
| Unhandled exception in code scheduled on thread 4527849472 | 14:46 | ||
| Cannot call 'postcircumfix:<[ ]>'; none of these signatures match: | |||
| no line numbers, not even with --ll-exception | |||
| jnthn | Odd | 14:47 | |
| lizmat | rakudobug it? | 14:48 | |
| jnthn | yeah | 14:50 | |
| $*DYNAMICALLY_COMPILED in the optimizer is really getting in the way of optimizing osme aspects of CORE.setting... | 14:52 | ||
| alexghacker | m: sub t( |cap ) { say cap }; t( abc => 123 ) | 14:53 | |
| camelia | rakudo-moar 951734: OUTPUT«\(abc => 123)» | ||
| alexghacker | m: sub t( |cap ) { say cap }; t( "abc" => 123 ) | ||
| camelia | rakudo-moar 951734: OUTPUT«\("abc" => 123)» | ||
| alexghacker | m: sub t( |cap ) { say cap }; t( |( abc => 123 ) ) | ||
| camelia | rakudo-moar 951734: OUTPUT«\(abc => 123)» | ||
| alexghacker | m: sub t( |cap ) { say cap }; t( |( "abc" => 123 ) ) | ||
| camelia | rakudo-moar 951734: OUTPUT«\(abc => 123)» | ||
| 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. | ||
| timotimo: trait mods can cause it also | |||
| timotimo | i can imanige that'd happen many, many times | ||
| when that is set we just give up on lots of stuff, right? | |||
| jnthn | Basically it prevents block flattening. | ||
| No, not much | |||
| timotimo | oh. well, block flattening is quite a dramatic thing to lack nowadays :) | 14:55 | |
| what with lexical elimination depending on it | |||
| jnthn | Right, precisely | ||
| And because it gets in the way of void analysis too | |||
| Since it becomes inter-frame and the QAST compiler is in a less good place to do much about it. | |||
| So we're doing all kinds of boxing. | |||
| So yeah, big knock-on effect. | 14:56 | ||
| Of course, removing it immediately breaks the build :) | |||
| timotimo | aye, that would have been way to easy. can't have that! | ||
| alexghacker | m: sub t( |cap ) { say cap }; t( ( abc => 123 ) ) | 14:59 | |
| camelia | rakudo-moar 951734: OUTPUT«\("abc" => 123)» | ||
| timotimo | m: sub t( |cap ) { say cap.perl }; t( ( abc => 123 ) ) | ||
| camelia | rakudo-moar 951734: OUTPUT«Capture.new(list => ("abc" => 123,))» | ||
|
15:00
woolfy1 left
|
|||
| alexghacker | timotimo: I had figured that out, but doing .perl does make it more clear (and is new to me) | 15:01 | |
|
15:02
woolfy joined
|
|||
| 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:02 | |
| I just started writing perl6 code yesterday, so I shouldn't expect to understand it all yet. :) | 15:03 | ||
| lizmat | afk& | 15:04 | |
|
15:05
eternaley left,
ab5tract left
15:06
denis_boyun_ left
|
|||
| 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:07 | |
| alexghacker | OIC | 15:08 | |
| FROGGS | +1 | ||
| where name == identifier | |||
|
15:08
eternaleye joined
|
|||
| 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 | ||
| PerlJam | alexghacker: right. | ||
| alexghacker: you could say that foo => 123 is the same as :foo(123) with regards to the "nameiness" of foo | 15:09 | ||
|
15:10
anaeem1 joined,
treehug88 joined
|
|||
| alexghacker | is this deliberate distinction unique to the implicit creation of Captures, or are there other contexts in which it applies? | 15:11 | |
|
15:16
jerrycheung left
15:18
JimmyZ left
15:19
ajr joined,
ajr_ left
15:20
ajr is now known as Guest84835,
Guest84835 is now known as ajr_
15:24
flussence left,
flussence joined,
flussence left
|
|||
| timotimo | alexghacker: you can write "foo bar baz" => 123, but you can never have a variable named $foo bar baz | 15:24 | |
| the rules for what is allowed to come before a => are the same as for an identifier in general | 15:25 | ||
|
15:25
flussence joined,
flussence left,
flussence joined
15:26
dayangkun left
|
|||
| timotimo | i mean: literals before a => | 15:27 | |
| you can of course still get the datum from a variable, like $foo => $bar | |||
|
15:27
eternaleye left
|
|||
| 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 | |
| but it's still a little bit of a gotcha | |||
|
15:30
jerrycheung joined
|
|||
| alexghacker | I can see the utility of the distinction, and I believe I understand the mechanics of it too. | 15:32 | |
|
15:32
eternaleye joined,
eternaleye is now known as eternaley
|
|||
| timotimo | yeah, it's easy to understand, but surprising if you don't know about it yet | 15:32 | |
| (and the "flattening" operator still allows you to pass named arguments where the name comes from a variable) | 15:33 | ||
|
15:33
xinming joined
|
|||
| 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:33 | |
| timotimo | as far as i know it's only in argument lists | 15:34 | |
|
15:34
jerrycheung left
15:35
zakharyas left
15:37
FROGGS left
15:39
brrt left,
mattp_ joined
15:41
mr-foobar joined
15:43
telex left,
eternaley left
15:44
telex joined
|
|||
| Brock | Any StrangeLoop attendees here? I'll be heading to STL tonight | 15:44 | |
| dalek | kudo/nom: 6b8aac1 | jonathan++ | src/core/ (2 files): Some allocation-reducing micro-opts. Eliminate a bunch of Int boxings on some hot paths. |
15:47 | |
| jnthn | 'night o/ | 15:49 | |
| timotimo | gnite jnthn! | 15:50 | |
|
15:50
eternaleye joined
15:53
rurban joined
15:55
FROGGS joined
15:56
Brock is now known as awwaiid
15:57
mst joined
15:58
eternaleye left
|
|||
| timotimo | a friend suggests we use qemu-in-emscripten to run moarvm in a browser | 16:01 | |
|
16:02
rurban left
|
|||
| hoelzro | timotimo: why would qemu be necessary? | 16:04 | |
| timotimo | because we can't just translate libuv to js | ||
| hoelzro | ah | ||
| timotimo | if you can get libuv and the other stuff working in emscripten, that'd be fine | ||
| but with the qemu approach, our jit should also work! :P | 16:05 | ||
| FROGGS | *lol* #swag #yolo | ||
| my first blade arrived at home | |||
|
16:05
rurban joined
|
|||
| timotimo | blade server or knife blade? :) | 16:06 | |
| FROGGS | from an ibm bladecenter | ||
| :o) | |||
| timotimo | from the kitchen? | 16:09 | |
|
16:11
fhelmberger left
16:12
fhelmberger joined
16:16
fhelmberger left
|
|||
| FROGGS | hell's kitchen :o) | 16:16 | |
| carlin | while trying to precompile, what would cause; STable conflict detected during deserialization. | ||
| (also panda-build doesn't stop if a module fails to compile, but that's another issue) | |||
| FROGGS | ewww | 16:18 | |
| I think we had/have a bug where our scoped subs/var could case that... but I'm not sure | 16:19 | ||
| carlin | ah, the file that's failing to compiling has a lot of our scoped subs | 16:20 | |
|
16:20
dwarring left
16:21
[Sno] joined
|
|||
| FROGGS | do you access my scoped vars from within these subs that are outside of these subs? | 16:21 | |
|
16:23
treehug88 left
|
|||
| 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
|
|||
| 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) | ||
| (same with loop {} instead of sleep) | 16:26 | ||
| S17-procasync/print.rakudo.moar failing on daily run on jit, but ok without. | 16:27 | ||
| parrot is MUCH better today, still 10 failures. | |||
| JVM got wrecked. | 16:28 | ||
| dalek | rl6-roast-data: 8471c54 | coke++ | / (6 files): today (automated commit) |
||
|
16:28
treehug88 left
|
|||
| [Coke] | looks like the eval server is dying again. | 16:29 | |
| diakopter: Did you kill anything on host08 earlier today? | 16:30 | ||
|
16:31
liztormato joined
|
|||
| [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
|
|||
| liztormato_ | [Coke]: Did the control-c break the sleep or not? It shouldn't! | 16:34 | |
| [Coke] | it did. | ||
| and also did not say WAT. | |||
| liztormato_ | Zen we haz a bug ;-( | ||
| carlin | oh, it uses a module that has my-scoped vars... | ||
| [Coke] | this is with a recent but not HEAD rakudo | 16:35 | |
| (on moar) | |||
| is anyone bothered (enough to open a ticket) that rakudo puts nqp next to parrot, but puts moarvm inside nqp? | 16:36 | ||
| (during the build process) | |||
|
16:36
liztormato left,
liztormato_ is now known as liztormato
|
|||
| FROGGS | [Coke]: no :o) | 16:38 | |
| timotimo: btw, I got my tent^Wshirt also >.< | 16:39 | ||
|
16:42
virtualsue left
|
|||
| FROGGS | timotimo: I'd like to bench my Cursor.MATCH fiddling... any ideas about good tests? | 16:45 | |
|
16:51
kaleem joined
|
|||
| 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:53 | |
|
16:58
vendethiel joined,
slmult0 joined
16:59
ajr_ left
17:00
spider-mario joined
|
|||
| vendethiel | o/ | 17:00 | |
|
17:00
dakkar left
|
|||
| vendethiel | ingy: please merge my PR, I feel bad :P | 17:07 | |
| carlin | oh no :( It's `use Inline::Perl5` that makes it fail... | 17:09 | |
| liztormato | Oh noes! | 17:12 | |
| nine never tried it on anything but Rakudo HEAD | |||
|
17:20
liztormato left,
camelia left
17:22
kaleem left
|
|||
| tony-o | panda isn't finding Pluggable, what am i doing wrong? | 17:30 | |
| did i update the wrong repo for panda packages? | |||
| carlin | Last-Modified: Fri, 12 Sep 2014 07:32:25 GMT | 17:32 | |
| tadzik: panda isn't updating it's projects.json again | |||
| 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:34 | ||
| colomon | Or just to have a more distributed set of places to get projects.json, in an effort to make things more reliable. | 17:39 | |
| tadzik | the cronjob seems to not work | 17:41 | |
| [Coke] | isn't projects.json available in a git repo? | ||
| tadzik | nope | ||
| a perl script is regenerating it | |||
| it should do that every hour, for some reason it does not | |||
| I have no idea how to investigate | |||
| [Coke] | any idea where the script is running? | 17:42 | |
| where is the script? | |||
| (source) | |||
| colomon | do we have the script somewhere? | 17:43 | |
| tadzik | it's on my feather account | ||
| I should turn it into a service that any admin can manage | |||
| colomon | upload the script to github? | 17:45 | |
| tadzik | can do that, but that doesn't quite solve the problem :) | 17:46 | |
| the script itself is okay | |||
| or you mean for someone to set it up? | |||
| colomon | so anyone can run it locally | 17:47 | |
| 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,
ajr is now known as Guest4704,
Guest4704 is now known as akr_
|
|||
| tadzik | true | 17:49 | |
| the script could be turned into Perl 6 | |||
|
17:50
akr_ is now known as ajr_
|
|||
| retupmoca | either that or teach panda what mirrors are | 17:50 | |
| vendethiel | tadzik: please post it, would be fun to translate it :-) | 17:51 | |
| tadzik | okay :) | 17:52 | |
| tony-o | i'd mirror it | 17:53 | |
| [Coke] | diakopter: something happen to host08? ssh is hanging. | 17:54 | |
| tadzik | there | ||
| dalek | osystem: 0c645a5 | tadzik++ | updatelist.pl: Add a script producing projects.json |
||
| vendethiel | tadzik: lwp::simple brings getstore()? | 17:57 | |
| [Coke] | I could set that up to run on host08 if we wanted. | ||
| ingy | vendethiel: I'm thought I did merge it | 17:58 | |
| colomon | tadzik++ | ||
| vendethiel | ingy: you made a follow-up commit then | ||
| ingy: where you broke it | |||
|
17:59
camelia joined
|
|||
| vendethiel | (so I re-PR'd to fix it) | 17:59 | |
| o/, camelia | |||
| ingy | I see | ||
| let me try | |||
| vendethiel | what you thought was a typo... was not a typo :-) | ||
| tadzik | vendethiel: that's right | ||
| vendethiel | but you just "fixed" it and pushed without even testing :( | ||
| tadzik | not sure why I used wget :) | ||
| vendethiel | so I re-pr'd to fix it | ||
| 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... | ||
| ingy | vendethiel: the test fails for me with your "fix" | 18:01 | |
| vendethiel | ingy: I don't believe so. | ||
| ingy | :) | ||
| vendethiel | ingy: you *need* the s because that's how scala interpolation works | ||
| i.e. "$a!" is "$a!", s"$a!" is (a + "!") | |||
| ingy | vendethiel: gist.github.com/099f25325019f9809f8b | 18:02 | |
| vendethiel | ingy: which scala version? | ||
| I'm running 2.11. | 18:03 | ||
|
18:03
Ven joined
|
|||
| 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:03
camelia left
|
|||
| ingy | it's the ubuntu 12.04 pkg | 18:04 | |
| Ven | ingy: 2.9 doesn't have string interpolation | ||
| hence the error message | |||
| ingy | I'll try to upgrade since I have 14.04 now | ||
| Ven | (2.9.2 is from 2012-04) | ||
| ingy | ok | ||
| I'll add a test for it | |||
| Ven | add a test for what? | 18:05 | |
| ingy | 2.11 | ||
| Ven | right. the perl5 test also blew up here | 18:07 | |
| ingy | on Mo? | 18:08 | |
| I'll fix that too | |||
|
18:08
slavik left
|
|||
| colomon | tadzik: huh, the script doesn't seem to work for me. | 18:10 | |
| 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 | ||
| tadzik | colomon: how doesn't it work? | ||
| ingy | Ven: I fetch/rebase/push and that closed PR/2. fyi | ||
| [Coke] | lizmat: "as gong awry" might be too esoteric. | ||
| colomon | tadzik: projects.json comes out with exactly two bytes in it. | ||
| tadzik | weierd | 18:12 | |
| [Coke] | (and or simply incorrect. feels like you were going for gang aft a-gley) | ||
|
18:13
Ven left
|
|||
| [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 | ||
| leont | I may be observing Proc::Async supplies having some serious ordering issues. Trying to get a small example | ||
| tadzik | I can't reproduce the problem | 18:14 | |
| colomon | tadzik: should it say 501 after each github URL printed when it runs? | 18:15 | |
| tadzik | colomon: definitely not :) | ||
| colomon | tadzik: so I gets the getstore call is failing? | 18:16 | |
| *guess | |||
|
18:16
dwarring joined
|
|||
| 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" | ||
| tadzik | that explains it | ||
|
18:18
treehug88 joined
|
|||
| [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 | |||
| [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:20 | |
|
18:22
slavik joined
|
|||
| dalek | osystem: fdc6d93 | (Solomon Foster)++ | updatelist.pl: Remove hard link into tadzik's directory. |
18:25 | |
| timotimo | leont: is that about a "process has shut down" fires before you read the last stuff out of stdout? | 18:26 | |
| colomon | okay, 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 | ||
| timotimo | your input characters? | 18:28 | |
| leont | I'm receiving stuff like this: «ok 1 - Test would have returned 0ok 2 - Expected 3 test», note the missing newline there :-/ | 18:29 | |
| 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 | ||
| 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"… | ||
| timotimo | d'oh | ||
| leont | This gives "interesting" parsing results… | 18:32 | |
| Worse yet, get stuff like "ok7ok6\n\n" | |||
| timotimo | blergh. that is pretty sucky. | 18:33 | |
| FROGGS | do we have to flush the handles or some such? | 18:34 | |
| leont | Something must be wrong on a moarvm level. I don't quite grok that code yet… | 18:35 | |
| timotimo | i'm looking over the procops.c code right now | 18:36 | |
| 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:37 | |
| 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 :/ | ||
| timotimo | too much code for me to grok at once ... | 18:41 | |
| [Coke] | leont: what code are you running? again, i wouldn't expect proc async to return things in order. | 18:49 | |
|
18:49
liztormato joined
18:50
darutoko left
|
|||
| leont | [Coke]: I expect stdout_chars Supply to give my the output of the command in order | 18:52 | |
|
18:53
zakharyas joined
|
|||
| leont | Anything else is nothing short of useless | 18:53 | |
| liztormato | leont: I expect that as well | ||
| diakopter | leont: you'll want to cause them to print in a synchronous order, then, not asynchronous. | 18:56 | |
| dalek | line-Perl5: 8b07781 | nine++ | / (4 files): Allow passing Callables from P6 to P5 and call them from P5. |
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 | ||
| diakopter | they're not each printing directly to stdout while racing in separate threads? | 18:59 | |
| FROGGS | getting my "ok 6" after my "ok 7"… <--- that sounds like it comes from one file | 19:00 | |
| err process | |||
| 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. | ||
| vendethiel: let me know if it doesn't | 19:01 | ||
|
19:02
brrt joined
19:04
Ven joined
|
|||
| Ven | ingy: oke :) thanks | 19:04 | |
| ingy: would you be interested in lispy stuff? | 19:05 | ||
|
19:05
slmult0 left
19:06
slmult0 joined
|
|||
| timotimo | should we have a constructor sub like "set" for keysets? | 19:18 | |
| liztormato | Keysets? | 19:19 | |
| leont | At least I now grok my parser error: it doesn't handle empty lines well | ||
| liztormato | timotimo: Do you mean SetHashes? | 19:21 | |
| timotimo | er, SetHash | ||
| yes | |||
| FROGGS | I am totally SetBack by all these names | 19:22 | |
| liztormato | Spec it and I'll implement it ;-) | ||
| m: <a b c>.SetHash.perl.say | 19:23 | ||
| [Coke] | leont: can you provide code showing the issue? | ||
| .ask masak if he's on target for the release in 2 days | 19:25 | ||
| yoleaux | [Coke]: I'll pass your message to masak. | ||
| leont | github.com/Leont/tap-harness6. I'm trying to reduce it to a simpler case, but it's a rather non-deterministic bug :-/ | ||
| [Coke] | If folks could beef up the changelog, that will help him come thursday. | ||
| leont: ok, but what code are you running? | 19:26 | ||
| ufo && make test? | |||
| leont | PERL6LIB=lib perl6 bin/prove6 t/generator.t | 19:27 | |
| [Coke] | FYI, I only get this for output: t/generator.t .. 1/? | 19:29 | |
| leont | That should be outputted during the testing | 19:31 | |
|
19:31
liztormato left
|
|||
| leont | It should give a summary later | 19:31 | |
| Which may or may not contain the described error | |||
|
19:31
camelia joined
19:33
ChanServ sets mode: +v camelia
|
|||
| [Coke] | it outputs that and terminates immediately. | 19:35 | |
| running the test with perl6 directly gives expected TAP output. | 19:36 | ||
| This is perl6 version 2014.08-358-gde16265 built on MoarVM version 2014.08-139-gb37f93e | |||
| 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? | ||
| leont | [Coke]: the point is that it only happens part of the time, it's non-deterministic | ||
| 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 | ||
| [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: gist.github.com/carbin/8401f4443407ce0697f6 | ||
| [Coke] | repeatedly, nothing else is output using the command line you provided above with prove6 | ||
| retupmoca runs git pull | 19:40 | ||
| [Coke] | are you saying I should see the issue with just perl6 t/generator.t ? | ||
| carlin | so what does I::P5 do that breaks precomp... | ||
| lizmat is back | |||
| [Coke] | (or is the issue only appearing when run through prove6?) | ||
| lizmat | leont: I've seen that kind of flapping behaviour in the Proc::Async tests as well :-( | ||
| retupmoca | the issue was only appearing with prove6 | ||
| [Coke] | ok. I can't prove 6 to show me anything other than the test plan; sorry. | 19:41 | |
| can't -get- | |||
|
19:41
jaffa4 joined
19:42
ggoebel11111110 joined,
ggoebel1111119 left
19:44
liztormato joined
|
|||
| lizmat | timotimo: wrt to sethash(), I seem to recall that TimToady had an opinion about that, prohibiting its existence | 19:46 | |
| oth, I don't see the use much for set(), bag() and mix() myself, but that's another thing | 19:47 | ||
|
19:47
liztormato left
|
|||
| timotimo | OK | 19:47 | |
| 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 | ||
| not a bad explanation | |||
| timotimo is pair-programming/teaching a little hangman game with a programming newbie :3 | |||
| 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 | ||
| timotimo | vendethiel: cute. but did it also have an ascii art gallows? | ||
| vendethiel | timotimo: no clue what a gallow is! tho I can guess | 19:50 | |
| timotimo | i think the singular i sactually "gallows" | 19:53 | |
| vendethiel | timotimo: gist.github.com/Nami-Doc/67dc9304a75d4980b16d 9 lines actually | ||
| dalek | ast: 40a7cc7 | (Elizabeth Mattijsen)++ | S17-procasync/kill.t: Add tests for Proc::Async.kill Which basically fails because signal(SIGNAL).act seems busted |
19:54 | |
| PerlJam | vendethiel: Did you try running it? | 19:55 | |
| vendethiel: because $word.substr(-1) doesn't make any sense. | |||
| vendethiel | PerlJam: right :P | ||
| I know I tried to run it; because else I wouldn't know about substr-rw | |||
| 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:56 | |
| 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 | ||
| PerlJam | nine: |@stuff ? | ||
| lizmat | flatten it! | ||
| 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 | |
| This is absolutely over complicated | |||
| dalek | kudo/nom: abbd376 | (Elizabeth Mattijsen)++ | t/spectest.data: Add Proc::Async.kill tests |
19:59 | |
| 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» | ||
| 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,)) | ||
| lizmat | [Coke]: the "gong awry" was just a misspelling for "going awry" | ||
| "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. | ||
| FROGGS | m: use Test; say Test::functionnotfound(); say "surely not alive" | ||
| 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» | ||
| FROGGS | jaffa4: like that ^^ | ||
| 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,)))» | ||
| nine | lizmat: ^^^ this is what I have | 20:05 | |
|
20:05
xragnar_ joined,
xragnar left,
xragnar_ is now known as xragnar
|
|||
| PerlJam | std: class Foo { method postcircumfix:<( )>(|args) { test(|args); } } | 20:05 | |
|
20:05
camelia left
|
|||
| 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
|
|||
| PerlJam | nine: in any case, method postcircumfix:<( )>(|args) looks wrong. | 20:07 | |
| FROGGS | jaffa4: where is the bug? | ||
|
20:07
Woodi left
|
|||
| 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 | ||
| one should be able to call it in that way too? | 20:08 | ||
| FROGGS | jaffa4: ahh.... did you declare it 'our'? | ||
| 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
ChanServ sets mode: +v camelia
|
|||
| camelia | rakudo-moar 6b8aac: OUTPUT«Array.new(5)» | 20:08 | |
|
20:08
Woodi joined
|
|||
| jaffa4 | FROOGS: I can call it without namespace designation, but not with namespace | 20:09 | |
| no our | |||
| FROGGS | jaffa4: you have to declare it 'our' scoped to do that | ||
| jaffa4: you probably put an 'is export' trait on it, that's why you can call it without the namespace in front of it | |||
| nine | PerlJam: that's it! | 20:10 | |
| jaffa4 | I did not use export, yet I could call it in short form | ||
| I did not put export | 20:11 | ||
| dalek | line-Perl5: 8462b03 | nine++ | / (3 files): Allow passing code refs from P5 to P6 and call them from P6. Thanks to PerlJam++ and lizmat++ for helping with Perl 6 syntax. |
||
| nine | ^^^ this was the last big feature on my list. | 20:13 | |
| carlin | golf of what in Inline::Perl5 does that stops precomp: gist.github.com/carbin/25b38908d8df607c33ee | 20:14 | |
| dalek | ast: cc38937 | (Elizabeth Mattijsen)++ | S17-procasync/kill.t: Make sure we will never hang |
||
| carlin | if have a file that uses a file that uses Inline::Perl5 it won't precompile | ||
| lizmat | carlin: is the add_fallback needed for this problem? | 20:16 | |
| carlin | lizmat: yes. removing the add_fallback lets it precompile | 20:17 | |
| lizmat | and Kaboom by itself precomps ok | ||
|
20:18
brrt left,
vikeOne left
|
|||
| carlin | yep | 20:19 | |
| and you can 'use kaboom' directly and it works | |||
| it's only when using a file that has `use Kaboom` | |||
| (or `use Inline::Perl5`) | |||
| lizmat | no, it's the Bar that blows up, so it's one use removed from that, no? | 20:20 | |
| carlin: anyway, this should work, afaics | |||
| so please rakudobug it | |||
|
20:21
slmult0 left,
virtualsue joined
|
|||
| lizmat | perhaps rewrite it using CompUnit.new('lib/Kaboom.pm6').precomp | 20:21 | |
| for simplicity (then you shouldn't need Panda | |||
| ) | |||
|
20:26
cibs joined
20:29
virtualsue left
|
|||
| 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:30 | |
| cognome | levien.com/type/myfonts/inconsolata.html | 20:31 | |
| 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 ..\ | ||
| cognome: cool thanks | |||
| nine uses Deja Vu Sans Mono | 20:34 | ||
| cognome | gtodd, apparently it has not 「」 | ||
| gtodd | 「 right | ||
| cognome | I have lost track what fonts my different tools use :( | 20:35 | |
|
20:35
vike joined
|
|||
| tony-o | colomon: thank you!!! | 20:35 | |
|
20:35
ggoebel11111110 left
20:36
cognome_ joined,
ggoebel11111110 joined
|
|||
| dalek | ast: c41eb8a | (Elizabeth Mattijsen)++ | S17-procasync/kill.t: It helps if you actually try to kill the process |
20:36 | |
|
20:37
spider-mario left
|
|||
| timotimo | ohai tony-o | 20:37 | |
|
20:39
cognome left
|
|||
| timotimo | i feel like the .IO method on Cool should accept named parameters and pass them on to the open call | 20:42 | |
| 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 | ||
| 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 | ||
| timotimo | er, .IO gives you an *unopened* handle? | ||
|
20:43
grondilu left
|
|||
| timotimo | indeed it does | 20:43 | |
| fortunately, lines() on an unopened handle opens it for you | |||
| so that's nice | |||
|
20:44
zakharyas left
|
|||
| lizmat | yes, but it makes it hard to make a difference between a path and an open handle | 20:44 | |
| you can't see from the type of object | |||
| which is really yuck if you think about it | |||
| timotimo | um | ||
| i'm not really sure i understand that correctly? | |||
| lizmat | "foo".IO.e is used to check for existence of a file | 20:45 | |
| it will never open the file, just check the FS for existence | |||
| 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 | ||
| *its | |||
| I'm *this* close to overhauling the IO spec (of which TimToady claims he lost track some years ago) | 20:47 | ||
| timotimo | mhm mhm | ||
| lizmat | if IO returns an IO.path, we could e.g. only once make sure it's absolute | ||
| Timbus_ | do it! | ||
| lizmat | instead of over and over again | ||
| Timbus_ | i patched the isDir and PIO checks out of .get and sped it up.. i thought the same thing | 20:48 | |
|
20:50
Ven left
|
|||
| Timbus_ | timotimo, the scheduler for GTK::Simple doesnt work, btw | 20:51 | |
| timotimo | why not? :( | ||
| Timbus_ | you attach an idle handler but since it returns false, it detaches immediately. | ||
| timotimo | oh! | ||
|
20:51
kaare_ left
|
|||
| timotimo | didn't know that (also, i didn't implement that :P) | 20:51 | |
| Timbus_ | oh | ||
| 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; | ||
| timotimo | damn :( | 20:53 | |
| i have no past experience with gtk3, sadly ;( | |||
| 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? | ||
| i dont fully understand the scheduler role. also gtk is 'pausing' threads. its very confusing | 20:54 | ||
| timotimo | :\ | ||
|
20:55
mst left,
mst joined
20:56
jaffa4 left
|
|||
| lizmat wonders ho much of moar's async stress breakage is really libuv immaturity :-( | 20:57 | ||
| *how | |||
| timotimo | hopefully not much | 20:58 | |
| lizmat hopes so too | 20:59 | ||
|
21:00
DarthGandalf left
|
|||
| 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 | |
| perl6 callbacks* | |||
| timotimo | it should be able to | ||
| 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? | ||
| diakopter | [and/or corrective user education] | ||
|
21:02
[Sno] left
|
|||
| dalek | kudo/nom: fa7a1cc | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm: Bring Proc::Async up to spec I wanted to make sure we don't bring out a documented release of Proc::Async of which the API may change later. |
21:07 | |
| ast: 52c0144 | (Elizabeth Mattijsen)++ | S17-procasync/ (3 files): Bring Proc::Async tests in line with specced API |
21:08 | ||
| lizmat | leont: ^^^^ Proc::Async flag day | ||
| [Coke] | lizmat: an appropriate phrase to spell wrong! :) | ||
| (mono font) source code pro is nice. | 21:09 | ||
| lizmat | it made me chuckle when I fixed that in the spec :-) | ||
| [Coke] | diakopter: did you have to kill anything gone wild on host08 today? | 21:10 | |
| 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 | ||
| [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. | ||
| 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:13
mst left
|
|||
| lizmat | PerlJam: yes | 21:14 | |
| leont: where did you send it ? | |||
| leont | rt.perl.org/Ticket/Display.html?id=122722 | 21:15 | |
| lizmat | PerlJam: jnthn has had to change slides after changes before... | ||
| 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. | ||
| lizmat | I could add a deprecation cycle | 21:17 | |
| leont | But I don't think anyone was using them for serious things, except me. | ||
| If they were, they would have reported the bugs I reported | |||
| lizmat | but it felt premature for thst | 21:18 | |
| PerlJam | leont: good point. | ||
| lizmat | *that | ||
| leont: looking at applying your patch | |||
|
21:25
mr-foobar left,
BinGOs left
|
|||
| dalek | kudo/nom: 124893c | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm: Add deprecation cycle for Proc::Async So that jnthn's examples from the YAPC::EU presentation still work |
21:38 | |
| lizmat | but with a deprecation message :-) | 21:39 | |
| $ 6 'my $pc=Proc::Async.new(:path<echo>,:args<Hello World>)' | |||
| Saw 1 call to deprecated code during execution. | |||
| ================================================================================ | |||
| new(:path(),:args()) (from Proc::Async) called at: | |||
| -e, line 1 | |||
| Please use new($path,@args) instead. | |||
| continuing to look at leont's patch | 21:40 | ||
| leont | Actually, it looks like it should still apply cleanly :-) | 21:44 | |
|
21:45
avuserow left
|
|||
| lizmat | yes, but I'm not sure about the sanity of the patch yet | 21:46 | |
| 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:50 | ||
| Fix is the other way around (call done when done reading, not when process ended) would be another option | 21:51 | ||
|
21:51
[Sno] joined
|
|||
| leont | s/is/it/ | 21:51 | |
| lizmat | leont: I'm just adding sanity checks atm | 21:54 | |
| like not being able to print if not opened with :w | |||
| and not being able to print until started | |||
| timotimo | IMO you shouldn't conflate "process exited" and "finished reading from stdout/stderr" | ||
| but "process exited" should close the async stdin part | |||
| dalek | kudo/nom: b33f353 | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm: Put in sanity checks and appropriate exceptions |
21:58 | |
| kudo/nom: 4c79228 | (Tobias Leich)++ | src/core/Cursor.pm: port MATCH object construction patch from nqp I cannot see a speed improvement, but we allocate less objects. Hopefully the jvm specific fudges can be removed by a more smarter hacker. :o) |
22:02 | ||
|
22:02
bjz_ joined,
bjz left
|
|||
| FROGGS | tomorrowish I'll look into the nqp::substr optimizations on hot paths | 22:02 | |
| gnight #perl6 | 22:03 | ||
| lizmat | good night FROGGS++ | ||
| dalek | kudo/nom: 5620d40 | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm: Oops, forgot one sanity check |
22:08 | |
| 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:12
treehug88 left
|
|||
| ingy | vendethiel: re:lisp, most certainly | 22:24 | |
| attempt to do it using similar OO idioms if possible | |||
| is there a regex lib you can pull in? | |||
| vendethiel: also I just added Bash: github.com/ingydotnet/pig-latin-ac...Latin.bash | 22:25 | ||
| OO Bash! | |||
| I gave a talk on OO Bash last spring in Taiwan | |||
| lizmat | leont: I'm wondering whether the problem isn't deeper with Supply | 22:26 | |
| specifically, if a .done is executed before all pending .more's are done | 22:27 | ||
| leont | I have been wondering the same | ||
| I think that would require 'done' to also use 'on', but I'm not fully understanding 'on' yet | 22:28 | ||
| But in this case P::A can legitimately give data after the process is ended, so fixing only Supply isn't good enough | 22:29 | ||
|
22:31
Psyche^_ joined
22:36
Psyche^ left,
mls left
|
|||
| lizmat | seems the difference in handling 'seq' between stdout and stderr is bogus, so I will at least fix that | 22:36 | |
|
22:36
mls joined
22:37
telex left
22:38
telex joined
|
|||
| lizmat | I'm also not sure whether .start will wait until the process has actually been spawned | 22:38 | |
| 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 | ||
| leont | Yeah, the difference in seq handling is silly | ||
| Why? As soon as the pipes are set up, you could write to them. I'd assume libuv is at least that sane. | 22:43 | ||
| lizmat | ok, let's assume that sanity is there :-) | 22:44 | |
| hmm... it looks like the callbacks.done is never called | 22:48 | ||
|
22:49
ivanshmakov left,
firnsy joined
|
|||
| leont | Huh? | 22:49 | |
| lizmat | if you do "await $pc.start", you are waiting for the promise to be kept | 22:50 | |
| but apparently, if the promise disappears too soon, the "done" is not done | |||
| hmmm... not true | 22:51 | ||
| it's just flapping :-( | |||
|
22:54
ivanshmakov joined
22:55
ponbiki left
22:56
ponbiki joined
22:58
aborazmeh joined
23:01
ajr_ left
|
|||
| lizmat | ok, something definitely wrong in the order of things: | 23:02 | |
| every now and then I get 'Hello World\nStarted\nDone" | |||
| which would indeed imply that the channel back to the P:A object is not being fed in order | 23:03 | ||
| dalek | kudo/nom: ee805ae | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm: Make stdout handling same as stderr handling |
||
| lizmat | $ perl6 t/spec/S17-procasync/print.t | 23:04 | |
|
23:04
cognome_ left
|
|||
| lizmat | run that a few times, and you should see it about 1 in 10 times | 23:04 | |
|
23:05
cognome joined
|
|||
| diakopter | [Coke]: no, I didn't; someone else may have though | 23:05 | |
| lizmat | ok, maybe 1 in 20 | ||
| 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:07 | |
| lizmat | but your solution blocks on the $proc.start | 23:08 | |
| and that's not good either | |||
| it should block awaiting on the returned promise | |||
| leont | Ah, I see | 23:09 | |
| Then I had misunderstood how .then works | |||
| lizmat | well, maybe I'm not reading it right | ||
|
23:10
cognome left
|
|||
| lizmat | ah, no, your idea is sound | 23:10 | |
| in any case, this would still not explain the order issues I've seen 1/20 times | 23:11 | ||
|
23:13
ivanshmakov left,
xragnar left
|
|||
| diakopter | [Coke]: p6eval user is monopolizing the cpu with oodles of java processes | 23:13 | |
|
23:15
rurban left,
jantore left
23:16
jantore joined,
ivanshmakov joined
|
|||
| 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 | |
|
23:17
xragnar joined
23:18
raiph joined,
raiph left,
raiph joined
|
|||
| leont | But moar's async code is not particularly accessible, haven't been able to test my hypothesis. | 23:23 | |
|
23:29
maxp joined
|
|||
| lizmat | leont: I think I've pulled in your code now, with small changes | 23:30 | |
| leont | :-) | 23:31 | |
| lizmat | hmm... sort of expected that Promise.keep would default to True, and break to False | 23:32 | |
| I guess for later :) | |||
|
23:35
jerrycheung joined
|
|||
| dalek | kudo/nom: 567da3e | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm: Basically pull patch of leont++ (RT #122722) |
23:37 | |
| synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122722 | ||
| lizmat | leont: I hope this brings improvement for you | 23:38 | |
| I'm not seeing it yet | |||
| but it makes sense :-) Hope it does for jnthn as well | 23:39 | ||
| for now, I'm going to get some shuteye | |||
| good night, #perl6! | |||
| diakopter | o/ | ||
| leont | My version brought me improvements in the test that I also posted in that ticket | 23:43 | |
| Unlike before, the done is always after the associated output | 23:48 | ||
|
23:49
bjz_ left
23:50
geekosaur left
23:51
BenGoldberg joined,
geekosaur joined
23:54
anaeem1 left
23:55
maxp left
|
|||