»ö« 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
|