»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend! Set by moritz on 22 December 2015. |
|||
00:00
Actualeyes joined
|
|||
timotimo | but it's quite clear that you rproblem isn't that one, it's the core setting build | 00:01 | |
or perhasp install-core-distributions or what it's called | |||
but less likely to be a problem | |||
00:04
cpage left
00:05
ugjka left
|
|||
ajr_ | Timotimo - any suggestions for the next step in debugging? | 00:05 | |
timotimo | if you had "stage parse" close to before the crash, it's pretty much 99% sure you're running out of memory | 00:07 | |
ajr_ | Agreed. | ||
00:13
ugjka joined
00:16
abruanese joined
|
|||
dalek | c: d1fe150 | gfldex++ | doc/Type/IO.pod6: tell the trap that is Cool.IO. We need that because searching for |
00:16 | |
synopsebot6 | Link: doc.perl6.org/type/IO | ||
00:16
pierre_ joined
00:18
imcsk8 joined
00:23
huf left,
ajr_ left
00:24
huf joined
|
|||
samcv | hmm anybody know a way to get this working? | 00:33 | |
m: my $a = ' '; 'a b c' ~~ s:sigspace/<$a>/space/ | |||
camelia | rakudo-moar c00061: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0Null regex not allowedat /home/camelia/EVAL_0:1------> 3anon regex { 7⏏5}» | ||
00:34
skids joined
|
|||
samcv | or a suggestion on what i need to read into to be able to do regex with variable interpolation that lets me use spaces in the variable | 00:34 | |
gfldex | m: my $a = 'a'; my $b = 'a b c'; $b ~~ s:sigspace/<$a>/space/ | 00:35 | |
camelia | ( no output ) | ||
AlexDaniel | m: my $a = ' '; say 'a b c' ~~ s/<{$a}>/space/ | ||
camelia | rakudo-moar c00061: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0Null regex not allowedat /home/camelia/EVAL_0:1------> 3anon regex { 7⏏5}» | ||
gfldex | samcv: you may have found a bug | ||
samcv | i was reading the design docs, but didn't see anything about this not being allowed | ||
AlexDaniel | m: my $a = ‘b’; my $b = ‘a b c’; $b ~~ s/<{$a}>/space/; say $b | 00:36 | |
camelia | rakudo-moar c00061: OUTPUT«a space c» | ||
AlexDaniel | m: my $a = ‘ ’; my $b = ‘a b c’; $b ~~ s/<{$a}>/space/; say $b | 00:37 | |
camelia | rakudo-moar c00061: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0Null regex not allowedat /home/camelia/EVAL_0:1------> 3anon regex { 7⏏5}» | ||
AlexDaniel | pffffffft | ||
committable6: 6c my $a = ‘ ’; my $b = ‘a b c’; $b ~~ s/<{$a}>/space/; say $b | |||
committable6 | AlexDaniel, gist.github.com/c951b19cef1635b35a...a8453fae36 | ||
samcv | m: my $a = 'a '; 'a b c' ~~ s:sigspace/<$a>/space/ | ||
camelia | rakudo-moar c00061: OUTPUT«Cannot modify an immutable Str in block <unit> at <tmp> line 1» | ||
AlexDaniel | committable6: all my $a = ‘ ’; my $b = ‘a b c’; $b ~~ s/<{$a}>/space/; say $b | ||
samcv | oops | ||
m: my $a = 'a '; my $b = 'a b c'; $b ~~ s:sigspace/<$a>/space/; say $b | |||
camelia | rakudo-moar c00061: OUTPUT«space b c» | ||
committable6 | AlexDaniel, gist.github.com/283790325417cb4e76...54d298c3f8 | ||
AlexDaniel | wtf is EVAL_0 ??? | 00:38 | |
gfldex | m: my $a = ' '; my $b = 'a b c'; my regex R { <$a> }; say $b ~~ &R | ||
camelia | rakudo-moar c00061: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0Null regex not allowedat /home/camelia/EVAL_0:1------> 3anon regex { 7⏏5}» | ||
samcv | but yeah if you try substituting ' a', it only substitutes the 'a' part. and ignores the space | ||
so ignores spaces for that too | 00:39 | ||
gfldex | m: my $a = ' '; my $b = 'a b c'; my token R { <$a> }; say $b ~~ &R | ||
camelia | rakudo-moar c00061: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0Null regex not allowedat /home/camelia/EVAL_0:1------> 3anon regex { 7⏏5}» | ||
AlexDaniel | samcv: please rakudobug | ||
samcv | ok :) thanks | ||
gfldex | wait | ||
m: my $a = ' '; my $b = 'a b c'; my token R { '<$a>' }; say $b ~~ &R | |||
camelia | rakudo-moar c00061: OUTPUT«Nil» | ||
gfldex | m: my $a = ' '; my $b = 'a b c'; my Regex R { '<$a>' }; say $b ~~ &R | 00:40 | |
camelia | rakudo-moar c00061: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Malformed myat <tmp>:1------> 3my $a = ' '; my $b = 'a b c'; my Regex7⏏5 R { '<$a>' }; say $b ~~ &R» | ||
gfldex | m: my $a = ' '; my $b = 'a b c'; my regex R { '<$a>' }; say $b ~~ &R | ||
camelia | rakudo-moar c00061: OUTPUT«Nil» | ||
gfldex | well, rakudobug away but please note the lack of documentation | ||
AlexDaniel | m: my $a = ‘‘ ’’; my $b = ‘a b c’; $b ~~ s/<{$a}>/space/; say $b | ||
camelia | rakudo-moar c00061: OUTPUT«aspaceb c» | ||
AlexDaniel | m: my $a = ‘‘ ’’; my $b = ‘a b c’; $b ~~ s/<{$a}>/space/g; say $b | ||
camelia | rakudo-moar c00061: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Unsupported use of /g; in Perl 6 please use :gat <tmp>:1------> 3 my $b = ‘a b c’; $b ~~ s/<{$a}>/space/g7⏏5; say $b» | ||
AlexDaniel | m: my $a = ‘‘ ’’; my $b = ‘a b c’; $b ~~ s:g/<{$a}>/space/; say $b | 00:41 | |
camelia | rakudo-moar c00061: OUTPUT«aspacebspacec» | ||
gfldex | samcv: do you understand the difference? | ||
AlexDaniel | m: my $a = ‘‘a’ ~ ‘ ’’; my $b = ‘a b c’; $b ~~ s:g/<{$a}>/space/; say $b | ||
camelia | rakudo-moar c00061: OUTPUT«5===SORRY!5===Unrecognized regex metacharacter ~ (must be quoted to match literally)at /home/camelia/EVAL_0:1------> 3anon regex { ‘a’ ~ ‘ ’7⏏5}Malformed regexat /home/camelia/EVAL_0:1------> 3anon regex { ‘a’ ~ ‘…» | ||
samcv | what AlexDaniel is evaluating right now? | 00:42 | |
gfldex | yes | ||
samcv | <AlexDaniel> m: my $a = ‘‘ ’’; my $b = ‘a b c’; $b ~~ s/<{$a}>/space/; say $b | ||
AlexDaniel | m: my $a = ‘{‘a’ ~ ‘ ’}’; my $b = ‘a b c’; $b ~~ s:g/<{$a}>/space/; say $b | ||
camelia | rakudo-moar c00061: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0Prohibited regex interpolation (use the MONKEY-SEE-NO-EVAL pragma to override this error,but only if you're VERY sure your data contains no injection attacks)at /home/camelia/EVAL_0:1…» | ||
samcv | yeah | ||
i get the {} you are using | |||
the quoting construct no | |||
00:43
espadrine left
|
|||
AlexDaniel | personally I don't get anything | 00:43 | |
how come it is attempting to EVAL it | |||
gfldex | still this is a ENODOC | ||
that's the filename | |||
AlexDaniel | filename of what? | ||
gfldex | at /home/camelia/EVAL_0:1 | ||
AlexDaniel | so why does it use a temp file for that? | ||
gfldex | line 1 in the file | ||
AlexDaniel | and why does it EVAL it at all | 00:44 | |
gfldex | camelia always did it that way | ||
AlexDaniel | no, camelia does not use EVAL file | ||
gfldex | it doesn't eval it | ||
AlexDaniel | it does | ||
00:44
huf left
|
|||
AlexDaniel | that's why I got MONKEY-SEE-NO-EVAL error | 00:44 | |
samcv | gfldex, i'm not sure why ‘‘ ’’ works but ' ' or ‘ ’ doesn't work. is there a difference between them, or is this a part of the bug | 00:46 | |
00:46
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
AlexDaniel | samcv: "' '" is what works, basically | 00:46 | |
samcv | ah so "' '" is like ‘‘ ’’ ? | ||
AlexDaniel | m: say ‘hello ‘world’’ | ||
camelia | rakudo-moar c00061: OUTPUT«hello ‘world’» | ||
gfldex | m: say «hello «world»» | 00:48 | |
camelia | rakudo-moar c00061: OUTPUT«(hello « world »)» | ||
AlexDaniel | that's not a string though | ||
gfldex | indeed | ||
00:48
edehont joined
|
|||
AlexDaniel | so let's say I have a string right | 00:50 | |
and I want it to match it | |||
what do I do? | |||
<{}> EVALs the string as a regex | |||
gfldex | ‘‘ is another ENODOC | ||
AlexDaniel | m: my $a = ‘.’; say ‘hello world.’ ~~ /<{$a}>/ | 00:51 | |
camelia | rakudo-moar c00061: OUTPUT«「h」» | ||
AlexDaniel | no, I want it to match a dot! | ||
00:51
edehont left
|
|||
gfldex | m: my $a = ‘\.’; say ‘hello world.’ ~~ /<$a>/ | 00:51 | |
camelia | rakudo-moar c00061: OUTPUT«「.」» | ||
samcv | that won't match a dot though | ||
gfldex | m: my $a = ‘\.’; say ‘hello world.’ ~~ /<{$a}>/ | 00:52 | |
camelia | rakudo-moar c00061: OUTPUT«「.」» | ||
gfldex | m: my $a = ‘\ ’; say ‘hello world.’ ~~ /<{$a}>/ | ||
camelia | rakudo-moar c00061: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0Null regex not allowedat /home/camelia/EVAL_0:1------> 3anon regex { \ 7⏏5}» | ||
AlexDaniel | well no, I have no idea what's inside $a | ||
gfldex | m: my $a = ‘\ ’; say ‘hello world.’ ~~ /<$a>/ | ||
camelia | rakudo-moar c00061: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0Null regex not allowedat /home/camelia/EVAL_0:1------> 3anon regex { \ 7⏏5}» | ||
samcv | m: my $a = "' '"; my $b = ‘a b c’; $b ~~ s/<$a>/space/; say $b #this is slightly different than <{$a}> right | 00:53 | |
camelia | rakudo-moar c00061: OUTPUT«aspaceb c» | ||
samcv | as i'm seeing in the design docs | 00:54 | |
00:54
cdg left
|
|||
AlexDaniel | m: use MONKEY-SEE-NO-EVAL; my $a = ‘a }; say 42; my regex foo { ‘b’ }#’; say ‘a b c’ ~~ /<{$a}>/ | 00:58 | |
camelia | rakudo-moar c00061: OUTPUT«42「b」» | ||
AlexDaniel | yes, EVAL protection saves it here, but still 🤦 | 00:59 | |
01:09
huf joined
|
|||
AlexDaniel | alright, so to abuse this I have to search for places in Grammar.nqp without <!RESTRICTED> | 01:12 | |
samcv | what does ‘‘ ’’ do if i may ask? | 01:14 | |
though that doesn't get around the problem i'm having where the space is in the variable due to user input and not actually written in the file | 01:15 | ||
AlexDaniel | samcv: if your variable comes from user input, don't do that | ||
samcv: because it will be EVAL-ed | 01:16 | ||
samcv: even though there is partial protection, you don't want that | |||
samcv | yeah | ||
AlexDaniel | now ‘‘ ’’ is just a string "‘ ’" | 01:17 | |
just quote, space, unquote | |||
once it is EVAL-ed, your regex will turn into /‘ ’/ | |||
samcv | ahhh | ||
AlexDaniel | and that's what matches the space | ||
samcv | ok :) | ||
that makes sense | |||
AlexDaniel | but… please don't do that :/ | ||
samcv | so it's not a bug it's just an undocumented thing right. | 01:18 | |
AlexDaniel | um, well… actually… | ||
samcv | it ignores any spaces when you use s:ss with <$var> | ||
even if it's not blank | |||
01:19
girafe left
|
|||
AlexDaniel | well the question here is “how do I match some Str variable from a regex?” | 01:20 | |
because <{}> is clearly not that | |||
ah wait, isn't it just $a? | |||
samcv | well. that makes it literal | 01:21 | |
so like | |||
AlexDaniel | m: my $a = ‘ ’; my $b = ‘a b c’; $b ~~ s:g/$a/space/; say $b | ||
camelia | rakudo-moar c00061: OUTPUT«aspacebspacec» | ||
AlexDaniel | there we go! Alright… | ||
AlexDaniel bangs his head against the wall | |||
samcv | m: my $a = '.'; my $b = 'a b c'; $b ~~ s:ss/$a/space/; | ||
camelia | ( no output ) | ||
samcv | m: my $a = '.'; my $b = 'a b c'; $b ~~ s:ss/<$a>/space/; | 01:22 | |
camelia | ( no output ) | ||
AlexDaniel | why would you need :ss ? :) | ||
samcv | m: my $a = '.'; my $b = 'a b c'; $b ~~ s:ss/<$a>/space/; say $b; | ||
camelia | rakudo-moar c00061: OUTPUT«space b c» | ||
samcv | m: my $a = '.'; my $b = 'a b c'; $b ~~ s:ss/$a/space/; say $b; | ||
camelia | rakudo-moar c00061: OUTPUT«a b c» | ||
samcv | hah AlexDaniel | ||
AlexDaniel | for some reason I forgot that you can just write $a and was expecting it to be <~{}> or whatever… | 01:23 | |
dammit | |||
samcv | but the perl 6 design docs seem to suggest <$a> just does interpolation of the variable | ||
so a space should work i think... | |||
AlexDaniel | NO, it EVALs it!! | ||
samcv | doesn't it eval text you put in there regardless | 01:24 | |
AlexDaniel | github.com/rakudo/rakudo/blob/91a7...or.pm#L466 | ||
↑ here is what happens | |||
no, just matching a variable is not equal to EVAL-ing the damn thing :) | |||
samcv | no that's not what i'm saying | 01:25 | |
01:25
Actualeyes left
|
|||
samcv | s/stuff here/thing/ the 'stuff here' is evaled right | 01:25 | |
you have typed into the file | |||
AlexDaniel | samcv: what part of the “design docs” are you referring to, by the way? | ||
samcv | design.perl6.org/S05.html#Variable...erpolation | 01:26 | |
01:26
kurahaupo__ joined
|
|||
AlexDaniel | samcv: well not really, because stuff in / / is just parsed as a regex language | 01:26 | |
for example | |||
samcv | ah okay | ||
i understand. | |||
AlexDaniel | m: say “hello {“world” ~ “{ 25 + 50}”}” | 01:27 | |
camelia | rakudo-moar c00061: OUTPUT«hello world75» | ||
AlexDaniel | nothing is EVAL-ed, that's just the way it parses it | ||
01:27
Actualeyes joined
|
|||
AlexDaniel | “To interpolate a Regex object, use <$var> instead.” | 01:29 | |
so it does what it says | |||
samcv | ok so by interpolate it does more than just plop the value in there seems to be what you're saying | 01:30 | |
making it less safe than if the code were typed into the regex in the program file | |||
so i guess the interpolation it mentions does more than i thought it? | 01:31 | ||
01:31
Actualeyes left
|
|||
AlexDaniel | gfldex: here ↑, our documentation should clarify all that | 01:32 | |
dalek | c: 810ec37 | coke++ | doc/Type/IO.pod6: fix spelling |
01:33 | |
synopsebot6 | Link: doc.perl6.org/type/IO | ||
01:36
kurahaupo_ joined
01:40
kurahaupo__ left
|
|||
samcv | m: my $a = ' '; $a ~~ m:ss/ /; | 01:46 | |
camelia | rakudo-moar c00061: OUTPUT«5===SORRY!5===Null regex not allowedat <tmp>:1------> 3my $a = ' '; $a ~~ m:ss/ 7⏏5/;Adverb ss not allowed on mat <tmp>:1------> 3my $a = ' '; $a ~~ m:ss/ /7⏏5;» | ||
samcv | ss is not allowed on match but the language section of perl 6 docs do not mention that is the case | ||
AlexDaniel | well, first of all it is just :s | 01:49 | |
secondly, it is allowed | |||
m: say ‘a b c’ ~~ m:s/a b/ | |||
camelia | rakudo-moar c00061: OUTPUT«「a b」» | ||
samcv | ah ok | 01:50 | |
AlexDaniel | but / / is still treated as a Null regex, for whatever reason | ||
so just use quotes | |||
m: say ‘a b c’ ~~ m/‘ ’/ | |||
camelia | rakudo-moar c00061: OUTPUT«「 」» | ||
AlexDaniel | (or whatever other quotes you prefer) | ||
samcv | ah ok. i was getting same space and sigspace mixed up | ||
though ss implies s, but thank you | 01:51 | ||
dalek | c: 19ddd2e | coke++ | util/xt-recent-aspell.p6: provide a much faster spelling test for recent checks |
01:52 | |
01:52
Actualeyes joined
|
|||
samcv | m: my $a = ' a'; say $a ~~ m:s/ a/; | 01:53 | |
camelia | rakudo-moar c00061: OUTPUT«「a」» | ||
samcv | m: my $a = ' '; say $a ~~ m:s/ /; | ||
camelia | rakudo-moar c00061: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Null regex not allowedat <tmp>:1------> 3my $a = ' '; say $a ~~ m:s/ 7⏏5/;» | ||
samcv | yeah it does not like only a space even with sigspace on | ||
AlexDaniel | maybe it is a bug, I don't know | 01:54 | |
01:56
pierre_ left
02:04
pierre_ joined
02:08
aborazmeh left
02:23
tars joined
02:30
tars left
|
|||
jdv79 | is it right to use ${} to pass a hashref to a I::P5 func? | 02:30 | |
seems wrong but i forget | 02:31 | ||
02:33
BenGoldberg joined
02:37
ocbtec left
02:44
imcsk8 left
02:45
imcsk8 joined
|
|||
dalek | c: f0364aa | gfldex++ | doc/Language/typesystem.pod6: not all types have a type object (the paragraph is still not good) |
02:49 | |
synopsebot6 | Link: doc.perl6.org/language/typesystem | ||
samcv | m: my $a = 'a a'; my $b = 'a a', $b ~~ s:s/<$a>/left/; say $b; | 03:15 | |
camelia | rakudo-moar c00061: OUTPUT«Potential difficulties: Space is not significant here; please use quotes or :s (:sigspace) modifier (or, to suppress this warning, omit the space, or otherwise change the spacing) at /home/camelia/EVAL_0:1 ------> 3anon regex { a7⏏5 …» | ||
samcv | interesting... | ||
gfldex | m: my $a = /' '/; my $b = 'a a', $b ~~ s:s/<$a>/left/; say $b; | ||
camelia | rakudo-moar c00061: OUTPUT«alefta» | ||
samcv | yeah quoting works fine but it seems sigspace never applies this way | 03:17 | |
gfldex | m: my $a = rx:s/ /; my $b = 'a a', $b ~~ s:s/<$a>/left/; say $b; | ||
camelia | rakudo-moar c00061: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Null regex not allowedat <tmp>:1------> 3my $a = rx:s/ 7⏏5/; my $b = 'a a', $b ~~ s:s/<$a>/left/; » | ||
gfldex | m: my $a = rx:s/\s/; my $b = 'a a', $b ~~ s:s/<$a>/left/; say $b; | ||
camelia | rakudo-moar c00061: OUTPUT«alefta» | ||
samcv | but it's interesting the error message on for one was telling you to 'use the :s modifier to make space significant' so it might be a bug that it's not using sigspace? | 03:18 | |
gfldex | the problem is the typecast from Str to Regex | ||
samcv: did you check roast for sigspace? | 03:20 | ||
samcv | i will do that now | 03:21 | |
03:25
mayathecat joined,
john51 left
03:26
john51 joined
03:28
john51 left
03:30
mayathecat left
03:31
john51 joined
|
|||
samcv | gfldex, it doesn't test for leading/trailing spaces, or just only whitespace | 03:32 | |
03:33
john51 left
03:34
ilbot3 left
03:36
john51 joined
03:38
john51 left
|
|||
samcv | it seems that maybe this is the correct functionality, that it ignores leading and trailing space, making | 03:39 | |
m: say 'a' ~~ m:s/ a / | |||
camelia | rakudo-moar c00061: OUTPUT«「a」» | ||
03:41
john51 joined
03:42
zacts joined
|
|||
samcv | so it seems trailing whitespace is allowed, from reading more into the docs | 03:43 | |
it seems to imply that, but i will try and read more of it | |||
it seems leading whitespace is ignored, specifically it says that, so i think not matching m:s/ / is not a bug, but not matching m:s/a / may be | 03:44 | ||
03:50
noganex_ joined
03:53
noganex left
03:55
cpage_ left
|
|||
samcv | yes i think it's a bug. the docs say that you can only have whitespace ignored after something. and that m:s/ a b c/ is the same as m/ a <.ws> b <.ws> c / | 03:58 | |
and none of the examples in S05 ever use an extra space at the end in their examples.. but they show a leading space. so that seems intentional | 03:59 | ||
m: say 'a ' ~~ m/ a <.ws> / | |||
camelia | rakudo-moar c00061: OUTPUT«「a 」» | ||
samcv | Only whitespace sequences immediately following a matching construct (atom, quantified atom, or assertion) are eligible. Hence, initial whitespace is ignored at the front of any regex | 04:03 | |
^ what it says | |||
04:06
vendethiel left
04:08
Lucas_One joined
|
|||
samcv | added that info to the rakudo bug with that info | 04:15 | |
04:30
cpage_ joined
04:50
labster left
05:00
ifdog joined,
ifdog left
05:01
Rawriful left
05:11
AlexDaniel left
05:12
AlexDaniel joined
05:19
geekosaur left
05:21
geekosaur joined
05:26
skids left
05:28
Cabanossi left,
kurahaupo_ left
05:31
Cabanossi joined
05:34
Actualeyes1 joined,
Actualeyes left,
pierre_ left
05:43
pierre_ joined
05:48
pierre_ left
05:57
wamba joined
06:01
pierre_ joined
06:05
pierre_ left
06:09
MasterDuke left
06:10
pierre_ joined
06:14
pierre_ left
06:15
BenGoldberg left,
bjz joined
06:21
pierre_ joined,
brillenfux joined
06:31
bjz left
06:40
domidumont joined
06:43
domidumont left
06:44
CIAvash joined
06:47
canopus left,
pierre_ left
06:52
RabidGravy joined,
canopus joined
06:53
kaare_ joined
06:55
pierre_ joined,
wamba left
06:59
pierre_ left
07:00
domidumont joined
07:01
mayathecat joined
07:03
bjz joined
07:06
pierre_ joined,
mayathecat left
07:09
pierre_ left,
pierre_ joined
07:14
andrzejk1 left,
andrzejk1 joined,
darutoko joined
07:23
Jonis left
07:26
neuraload joined
07:27
wamba joined
07:29
firstdayonthejob joined
07:31
xtt joined
07:32
xtt left
07:37
Actualeyes1 left,
firstdayonthejob left
07:38
qub left
07:40
Actualeyes joined
07:44
wamba left
07:51
xtt joined
07:52
ufobat joined
08:01
wamba joined
08:10
abraxxa joined
08:13
domidumont left
08:14
domidumont joined
08:15
espadrine joined
08:17
domidumont left
|
|||
lizmat clickbaits p6weekly.wordpress.com/2016/11/07/...t-a-boost/ | 08:18 | ||
gfldex | while we are at clickbaits, we need to think about our homepage and the docs again: news.ycombinator.com/item?id=12889082 | 08:19 | |
08:21
maybekoo2 joined
|
|||
CIAvash | lizmat++ | 08:23 | |
08:25
bjz left
08:30
pierre_ left
08:32
zakharyas joined
|
|||
El_Che | thank you, lizmat | 08:34 | |
08:37
bjz joined
08:43
zacts left
08:44
pierre_ joined
08:47
wamba left
08:52
wamba joined
08:57
zacts joined
09:00
espadrine left
|
|||
moritz | lizmat++ | 09:03 | |
09:04
skaji joined
09:08
xtt left
09:13
wamba left
09:21
CIAvash left
09:22
rindolf joined
09:24
amalia_ left
09:25
amalia_ joined,
pierre_ left
09:26
brrt joined
09:27
brillenfux_ joined
09:28
brillenfux left,
TEttinger joined,
TEttinger left
09:33
pierre_ joined
09:34
brrt left
09:37
brrt joined,
amalia__ joined
09:38
amalia_ left,
amalia__ is now known as amalia_,
TEttinger joined
09:46
brillenfux__ joined
09:47
domidumont joined
09:49
brillenfux_ left
10:02
wamba joined
10:10
dudz joined,
dudz left,
dudz joined
10:19
sftp left,
sftp joined
10:27
salparadise joined
10:31
g4 joined,
g4 left,
g4 joined,
bjz left
10:32
bjz joined
10:33
brrt left,
Guest22943 joined
10:46
pierre_ left
10:47
domidumont left
10:49
AndyBotwin joined,
AndyBotwin left,
AndyBotwin joined
10:50
brrt joined
11:03
rindolf left
11:08
AlexDaniel left
11:09
rindolf joined,
kurahaupo__ joined
11:14
kurahaupo__ is now known as kurahaupo
11:27
ocbtec joined
11:34
kurahaupo left
11:35
kurahaupo__ joined
11:41
rindolf left
11:46
domidumont joined
11:49
pierre_ joined
11:51
zakharyas left
11:58
itaipu joined
12:02
nadim joined
12:41
seatek left
13:02
MasterDuke_ joined
|
|||
MasterDuke_ | .tell moritz looks like the bot that logs to irclog.perlgeek.de is down on the various Perl 6 related channels | 13:03 | |
yoleaux | MasterDuke_: I'll pass your message to moritz. | ||
13:05
cpin` joined,
ilbot3 joined
|
|||
moritz restarts da logga | 13:06 | ||
yoleaux | 13:03Z <MasterDuke_> moritz: looks like the bot that logs to irclog.perlgeek.de is down on the various Perl 6 related channels | ||
moritz | MasterDuke_: thanks for letting me know! | ||
MasterDuke_ | np | ||
moritz | looks like 10 hours ago, it lost its connection to mysql, retried a few times, and then systemd gave up | 13:07 | |
MasterDuke_ | all that scintillating conversation lost, like tears in the rain... | 13:09 | |
moritz adds RestartSec=60 to the ilbot systemd service file | |||
whta I'd really like to add is a quadratic backoff, but I don't think systemd implements that | 13:10 | ||
MasterDuke_ | maybe hack something in with ExecStartPre? | 13:14 | |
cpin` | hi all - have been looking at RT#129363 and think I have something, but would appreciate some advice/discussion... | 13:15 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129363 | ||
cpin` | initial hacking at: github.com/cpin/rakudo/commit/43cb...68a039257a | ||
spectest passes, as does manually testing - however, new here so might be some naive assumptions in there | 13:16 | ||
moritz | cpin`: the type constraint in the new multi is Associative, but you call hash() as a coercer | 13:17 | |
cpin` | (tests: github.com/cpin/roast/commit/dda25...12a2cdcbd) | ||
moritz | cpin`: maybe try h.WHAT.new(...) instead of hash() ? | ||
cpin` | moritz: ok - that may take some explaining - i took the majority of the existing code from `deepmap`... | 13:18 | |
moritz | cpin`: maybe your version is a good enough first short | 13:22 | |
cpin` | moritz: assume that would be the same for duckmap, deepmap (and coremap) - worthy or a separate change? | ||
moritz | yes | ||
cpin`: background is, we have multiple types that do Associative, including EnumMap and Hash | 13:23 | ||
cpin` | moritz: that's what I wondered; worth PRs on roast and rakudo? | ||
MasterDuke_ | cpin`: just a style thing, but you have a couple 'deep => $deep'. i think most of the core uses the ':$deep' syntax | ||
moritz | cpin`: and Bag, iirc | ||
cpin` | moritz: ah, yes | ||
moritz | cpin`: yes, worth a PR | ||
cpin` | MasterDuke_: ok, will check that out - thanks | ||
moritz | op.WHAT gives the type object of `op`, so op.WHAT.new(...) should reproduce an object with the same type as `op` | 13:24 | |
MasterDuke_ | also, do you need the nqp::stmts() that wraps this line? github.com/cpin/rakudo/commit/43cb...6487ddR563 | ||
cpin` | moritz: great - as I assumed. thanks! | ||
MasterDuke_: nope - don't think so. artifact of debugging... | 13:26 | ||
13:26
aborazmeh joined,
aborazmeh left,
aborazmeh joined,
skids joined
13:28
andrzejk1 left,
zakharyas joined
|
|||
MasterDuke_ | cpin`: you could also ask for comments in #perl6-dev | 13:28 | |
13:30
brillenfux__ left,
domidumont left
13:38
rindolf joined
13:42
Rawriful joined,
domidumont joined
13:48
andrzejku joined
13:50
itaipu left
13:54
bjz left
13:55
grondilu left,
FROGGS joined
|
|||
FROGGS | o/ | 13:55 | |
13:57
grondilu joined,
itaipu joined
14:00
aborazmeh left
|
|||
nadim | Hi P6, just dropped in to say "Keep up the good work" and thank you. | 14:10 | |
14:11
pmurias joined
|
|||
lizmat | nadim: thanks for the kind words | 14:12 | |
14:13
nicq20 joined,
ajr_ joined
14:14
cdg joined
|
|||
nicq20 | Hello o/ | 14:15 | |
MasterDuke_ | cpin`: can't the nqp::if here ( github.com/cpin/rakudo/blob/1ee524...#L558-L566 ) be refactored to: nqp::if($deep && nqp::istype($value, Iterable), ($result := coremap(&!block, $value, :$deep).item), ($result := &!block($value))) | 14:16 | |
14:17
kurahaupo__ is now known as kurahaupo
14:20
rgrinberg joined,
rgrinberg left
|
|||
cpin` | MasterDuke_: i suspect so... | 14:24 | |
14:24
pierre_ left
14:27
CIAvash joined,
CIAvash left
|
|||
nadim | lizmat: greatly deserved | 14:28 | |
14:30
domidumont left
14:32
ajr_ left
14:33
domidumont joined
14:35
skids left
14:39
eater joined
|
|||
viki eyes Xliff | 14:50 | ||
14:59
dalek left,
dalek joined,
ChanServ sets mode: +v dalek
15:03
Rawriful left
|
|||
dalek | c: 1dfcb50 | (Zoffix Znet)++ | doc/Language/typesystem.pod6: Fix incorrect URL |
15:04 | |
synopsebot6 | Link: doc.perl6.org/language/typesystem | ||
15:04
Rawriful joined
|
|||
dalek | c: aa0945b | (Zoffix Znet)++ | doc/Type/DateTime.pod6: Document DateTime.hh-mm-ss |
15:14 | |
synopsebot6 | Link: doc.perl6.org/type/DateTime | ||
15:25
pierre_ joined,
Tonik joined
15:30
pierre_ left
15:34
AlexDaniel joined
15:49
Upasaka joined
15:53
g4 left
15:55
neuraload left,
abraxxa left
15:56
maybekoo2 left
16:00
maybekoo2 joined
16:04
jargan is now known as jast
16:08
domidumont left
16:14
zakharyas left
16:16
Rawriful left
16:24
wamba left
|
|||
viki | It's so quiet in here, I can hear myself breathing... | 16:24 | |
profan | *heavy breathing* | 16:25 | |
nicq20 | Echo! echo, echo.... | ||
viki | I guess the world's on edge as we watch Murica deciding whether to give nuke codes to a rich imbicile or a corrupt pschopathic warmonger. Tough choice! | ||
nicq20 | Huh, I kind of though most countries would mistake this for some weird "American reality show". | 16:28 | |
viki | Sure, today's season's finale :P | ||
dylanwh | there are people in trucks driving around screaming at people here... #florida. | ||
viki | heh | 16:29 | |
[Coke] | well, viki's half right, anyway. | ||
viki | At least I'm already in Canada, so I don't have to move ;) | 16:30 | |
16:35
Actualeyes left
16:37
brrt left
16:43
Rawriful joined
16:49
Actualeyes joined
16:56
cpin` left
17:06
xinming_ left,
zakharyas joined
17:10
itaipu left
17:13
pmurias left
|
|||
nicq20 | When using `start`, where does it store it's promises? I've been using the REPL and it completes them without assigning to a var. | 17:13 | |
viki | It returns it. | 17:15 | |
m: dd start sleep 1; | |||
camelia | rakudo-moar a581bf: OUTPUT«Promise.new(scheduler => ThreadPoolScheduler.new(initial_threads => 0, max_threads => 16, uncaught_handler => Callable), status => PromiseStatus::Planned)» | ||
nicq20 | Huh. So the promise is still kept if it does not get saved to a var? | 17:16 | |
viki | The promise still runs whether or not it's saved anywhere. Whether or not it's kept depends on the code running it. | ||
*running in it | |||
17:17
zakharyas left
|
|||
viki | .oO( if there's nobody there to catch it, is a sunk Promise ever broken? ) |
17:18 | |
:} | |||
m: start { sleep 2; die "egahds" }; sleep 4; say "all'swell" | |||
camelia | rakudo-moar a581bf: OUTPUT«all'swell» | ||
viki | eheh | 17:19 | |
17:19
zakharyas joined
|
|||
viki | m: use MONKEY; augment class Promise { method sink { say self.status } }; start { sleep 2; die "egahds" }; sleep 4; say "all'swell" | 17:19 | |
camelia | rakudo-moar a581bf: OUTPUT«Plannedall'swell» | ||
viki | :o | ||
moritz | a very solipsistic view :-) | ||
viki | Oh, right, it gets sunk before it completes. | 17:20 | |
moritz | m: use MONKEY; augment class Promise { method sink { await self } }; start { sleep 2; die "egahds" }; sleep 4; say "all'swell" | ||
camelia | rakudo-moar a581bf: OUTPUT«===SORRY!===egahds» | ||
viki | m: use MONKEY; augment class Promise { method sink { my $s = self; start { await $s; say $s.status } } }; start { sleep 2; die "egahds" }; sleep 4; say "all'swell" | 17:21 | |
camelia | rakudo-moar a581bf: OUTPUT«all'swell» | ||
viki | :( | ||
Oh, it dies in await | |||
m: use MONKEY; augment class Promise { method sink { my $s = self; start { try await $s; say $s.status } } }; start { sleep 2; die "egahds" }; sleep 4; say "all'swell" | 17:22 | ||
camelia | rakudo-moar a581bf: OUTPUT«BrokenKeptall'swell» | ||
viki | :D | ||
17:24
FROGGS left
17:25
AlexDaniel left
17:30
nicq20 left
17:34
kyclark left
17:39
FROGGS joined,
lichtkind joined
17:40
kyclark joined,
AlexDaniel joined
17:43
wamba joined
17:47
hankache joined
|
|||
hankache | hello #perl6 | 17:48 | |
viki | \o\ | 17:50 | |
17:50
Tonik left
17:55
zakharyas left
17:56
domidumont joined
17:58
girafe joined
18:00
cdg left
18:11
pdcawley left
18:16
tbrowder left
|
|||
viki | m: 42 | 18:16 | |
camelia | rakudo-moar a581bf: OUTPUT«WARNINGS for <tmp>:Useless use of constant integer 42 in sink context (line 1)» | ||
18:16
tbrowder joined
|
|||
viki | m: 42e1000000000000 | 18:16 | |
camelia | ( no output ) | ||
viki | m: Inf | 18:17 | |
camelia | ( no output ) | ||
18:18
gregf_ left
18:20
troys joined
18:26
maybekoo2 left
18:27
cdg joined
18:31
pierre_ joined
18:36
pierre_ left
|
|||
grondilu had never seen use MONKEY; before | 18:46 | ||
18:47
buggable left
|
|||
grondilu | m: use MONKEY-TYPING; | 18:47 | |
camelia | ( no output ) | ||
grondilu | m: use MONKEY; | ||
camelia | ( no output ) | ||
18:47
canopus left
|
|||
perlpilot | there are many MONKEYs | 18:48 | |
18:48
hankache left
|
|||
AlexDaniel | … and most of them do nothing | 18:50 | |
18:55
canopus joined
18:59
troys is now known as troys_
19:03
buggable joined
|
|||
rindolf | Hi all! So I benchmarked my sprintf optimisation and the "before" was much faster than the "after" but there may have been a variance in compile flags. | 19:03 | |
19:06
darutoko left
|
|||
perlpilot | doesn't much sound like an optimization :) | 19:06 | |
19:06
troys_ is now known as troys
|
|||
timotimo | the core setting is compiled with a higher --optimize than your own code | 19:08 | |
tyil | maybe he was trying to make it slower so he has more time to do other stuff | ||
timotimo | you can see the --optimize that gets passed in your "make" output | ||
19:09
hankache joined
|
|||
viki | .oO( just copy the internal sprintf impl. into your bench file and compare next to your own... ) |
19:10 | |
19:10
nicq20 joined
|
|||
viki | It's all nqp code anyway | 19:11 | |
timotimo | good point | ||
19:22
wamba left
19:24
wamba joined
|
|||
viki | m: say ("1." ~ "1" x 308).EVAL | 19:24 | |
camelia | rakudo-moar a581bf: OUTPUT«1.11111111111111109384097517249756492674350738525390625» | ||
viki | m: say ("1." ~ "1" x 309).EVAL | ||
:} | |||
camelia | rakudo-moar a581bf: OUTPUT«(timeout)» | ||
TimToady | yer mean! | 19:25 | |
mst | TimToady: well you're ... ... ... median!" | ||
TimToady | that's my usual mode... | 19:26 | |
19:26
maybekoo2 joined
|
|||
nicq20 | Trying to think of a "range" joke... | 19:26 | |
mst | I prefer to be a non-standard deviant | ||
hankache | hmm outliers :) | 19:27 | |
19:30
pmurias joined
19:35
cdg left
19:42
xinming joined
19:48
pdcawley joined
19:54
bjz joined,
pdcawley left,
vendethiel joined
20:04
ufobat left
20:07
Rawriful left
20:10
Rawriful joined
20:13
ufobat joined
20:15
Rawriful left,
troys is now known as troys_
20:18
Rawriful joined,
domidumont left
20:20
kyclark_ joined
|
|||
kyclark_ | I’m back with more bouncy balls. I got some good feedback on reddit, and I’ve made some changes. pastie.org/10958479 | 20:21 | |
Everything that was said about the enums in the previous version is right. I think the “move” in this version is simpler and cleaner. Also, this version has the balls fight to the death! Collisions cause balls to be removed. | 20:22 | ||
Before I post a new version, I’d like feedback on this, specifically around lines 58-62 | |||
RabidGravy | nice :) | 20:24 | |
20:26
ocbtec left
|
|||
[Coke] | why PosInt? | 20:27 | |
oh. nevermind, missed the subset. :) | |||
[Coke] thinks he was thinking IntStr, maybe. | |||
could be faster with --balls=100_000 :) | 20:28 | ||
viki | kyclark_: just what I've said last night. That do for ^$balls { Ball.new(:$rows, :$cols) }; is just a strange way to write ^$balls .map: Ball.new: :$rows, :$cols; You're mapping values in $balls to a list of new values, so reading that operation as "do for X" just reads weird | 20:30 | |
RabidGravy | I ought to finish Term::Cap at some point | ||
viki | kyclark_: also, my understanding is this won't be thread safe: for $positions.list».kv -> ($pos, $count) { | ||
masak | kyclark_: nice! | 20:31 | |
viki | IIRC jnthn said » would initially be just doing what .hyper does... and that gives a HyperSeq | ||
masak | kyclark_: agree with viki, but the nicest way to write it IMO would be `Ball.new(:$rows, :$cols) xx $balls` | ||
viki | masak++ that is indeed much better | ||
masak | kyclark_: something bothers me about that passing-in of $rows and $cols, by the way. | ||
kyclark_ | Wow, interesting. I would not have come up with that. | ||
masak | kyclark_: somehow they don't really "belong" on the object as attrs (though I see what you're trying to achieve) | 20:32 | |
viki | Also, masak++ your Inf bug is actually much severe than originally reported. | ||
[Coke] | huh. added a --profile when invoking the bouncy balls, but when you hit ^C to exit out, no profile. | ||
viki | m: say say 1.1e307 | 20:33 | |
camelia | rakudo-moar a581bf: OUTPUT«1.1e+307True» | ||
viki | m: say 1.111111e307 | ||
camelia | rakudo-moar a581bf: OUTPUT«Inf» | ||
masak | kyclark_: one way to get around it would be to do `role Ball[$rows, $cols]` and make the appropriate changes | ||
viki | masak: ^ | ||
masak | viki: huh; yes, that's worse. | ||
viki | I'm spectesting a fix ATM | ||
masak | oki | ||
lizmat | [Coke]: if you add a signal handler for control-c and let that exit, then you should get a profile | 20:34 | |
kyclark_ | At line 48, I wanted to iterate over my Bag which has keys like “8 4” and a value of the count of balls at that position. I settled on the “$positions.list».kv” because it worked, but is there a better way to unpack that? I could not come up with a pointy block sig that worked. | ||
Also, I found that Bags don’t work with Lists as the keys, only strings. This is right, yes? | |||
viki | kyclark_: no, that's wrong | 20:35 | |
moritz | viki: are you sure? lists aren't value objects | ||
viki | m: dd Bag.new-from-pairs: [<a b c>] => 42; | ||
camelia | rakudo-moar a581bf: OUTPUT«(["a", "b", "c"]=>42).Bag» | ||
[Coke] | the ball script spends most of its non-sleep time in sink. :? | 20:36 | |
lizmat: I cheated in a while loop. | |||
viki | m: my $b = BagHash.new-from-pairs: [<a b c>] => 42; $b{$[<a b c>]}++; dd $b | ||
camelia | rakudo-moar a581bf: OUTPUT«BagHash $b = (["a", "b", "c"]=>42,["a", "b", "c"]=>1).BagHash» | ||
viki | m: my $b = BagHash.new-from-pairs: $[<a b c>] => 42; $b{$[<a b c>]}++; dd $b | ||
camelia | rakudo-moar a581bf: OUTPUT«BagHash $b = (["a", "b", "c"]=>1,["a", "b", "c"]=>42).BagHash» | ||
viki | Oh right, it's not the same object | ||
m: my $a = [<a b c>]; my $b = BagHash.new-from-pairs: $a => 42; $b{$a}++; dd $b | 20:37 | ||
camelia | rakudo-moar a581bf: OUTPUT«BagHash $b = (["a", "b", "c"]=>43).BagHash» | ||
viki | moritz: seems to work ^. What are value objects? | ||
[Coke] | (sink) ah, gnope. | ||
moritz | viki: objects where two equivalent objects also compare equally with === | 20:38 | |
viki | Ah | ||
moritz | m: say 1 === 1; say [] === []; | ||
camelia | rakudo-moar a581bf: OUTPUT«TrueFalse» | ||
viki | Well, you can still use them as keys. | ||
moritz | ok | ||
viki | m: say 100000 === 100000; say [] === []; | ||
camelia | rakudo-moar a581bf: OUTPUT«TrueFalse» | ||
20:39
hankache left
|
|||
kyclark_ | m: dd ((1,1), (2,2), (1,1)).Bag | 20:40 | |
camelia | rakudo-moar a581bf: OUTPUT«(1=>4,2=>2).Bag» | ||
viki | m: for (<a b c c d>).Bag.list -> (:$key, :$value) { say "$key:$value" } | ||
camelia | rakudo-moar a581bf: OUTPUT«a:1c:2b:1d:1» | ||
viki | kyclark_: ^ an alternative | ||
There may be a better way | |||
kyclark_ | I keep forgetting about that way! | ||
viki | like .kv on just the Bag without .list first? | ||
Yup | 20:41 | ||
m: for (<a b c c d>).Bag.kv -> $k, $v { say "$k:$v" } | |||
camelia | rakudo-moar a581bf: OUTPUT«a:1c:2b:1d:1» | ||
masak | .Bag is a nice short way to say "make a histogram of these things" | ||
Xliff wonders why vikiZoffixBorg was giving him the evil eye, earlier this morning. | 20:43 | ||
viki | I don't get why this conditional is there. Wouldn't multiplication by 0 just give zero anyway? github.com/rakudo/rakudo/blob/nom/...7218-L7220 | ||
Xliff: 'cause you added DateTime.hh-mm-ss but never added tests or docs. An untested code is broken and undocumented code doesn't exists at all. | |||
Xliff | In progress. Not committed. | 20:44 | |
kyclark_ | OK, new version: pastie.org/10958493 | ||
viki | Xliff: I already did it :) | ||
Xliff | :P | ||
Thx | |||
viki | Ah.. Answer for my question: to make stuff like 0e99999999999 return 0 and not NaN | ||
[Coke] | viki - maybe for speed? you avoid invoking 3 opcodes and an .ast | ||
20:44
jameslenz left
|
|||
viki | .oO( I knew I shouldn't have removed it... *rebuilds* ) |
20:44 | |
20:45
bjz left
20:46
bjz joined
|
|||
[Coke] | ah | 20:46 | |
20:48
bjz left
|
|||
AlexDaniel | I wish it had more balls at the same time | 20:54 | |
ahhhh | |||
there is a paramater… | |||
OK | 20:55 | ||
20:56
cdg joined
|
|||
MasterDuke_ | this may be questionable, but if you do 'my %row is default([]); | 20:56 | |
you can get rid of the 'if %row{ $this-row }:exists {' | |||
kyclark_ | MovableType is removing some of my code when I try to post as a comment | 20:57 | |
Specifically it doesn’t like “||” it would seem. Is there a workaround? Do I need to make a new post? Seems a bit overkill to just follow up on my first version | |||
20:59
MasterDuke_ left
|
|||
AlexDaniel | mmhmm 「unless 1 < $!col < $!cols」 | 21:00 | |
viki | kyclark_, just edit the post and add an "Update" section? | 21:07 | |
21:10
BillSussman joined
21:12
AndyBotwin left
21:19
bjz joined
21:22
rindolf left
21:26
bjz left
21:31
kyclark__ joined,
troys_ is now known as troys
21:32
kyclark_ left
21:33
cog_ left
|
|||
Xliff | Hrm. | 21:33 | |
21:33
espadrine joined
|
|||
Xliff | Can you add newlines in grammar definitions without the compiler barfing? | 21:33 | |
viki | barphing how? | 21:34 | |
Xliff | Ala: grammar X { TOP { <t1>\n<t2>\n'STRING'\n\n } } | ||
viki | I think you need to quote them | ||
"\n" | |||
Xliff | No. Those are literals. I want TOP to be readable rather than cluttered on one line. | 21:35 | |
So those represent newlines in the actual code. | 21:36 | ||
lizmat | which would be whitespace, which should work, no ? | ||
viki | Yeah you can use literal newlines just like regular whitespace | ||
Xliff | The complaint I'm getting is "two terms in a row" | ||
viki | Well, prove it :) show code | ||
Xliff | I am, borg! | 21:37 | |
viki | :) | 21:38 | |
Xliff | gist.github.com/Xliff/fef6642960e6...42d9b71914 | 21:39 | |
FROGGS | Xliff: put 'rule' or 'token' before the word 'TOP' | 21:40 | |
Xliff | D'oh! | ||
FROGGS++ | 21:41 | ||
21:41
troys left
|
|||
FROGGS | :o) | 21:41 | |
Xliff | Oooh! Grammar::Tracer is awesome! | 21:43 | |
21:44
bjz joined
21:45
nicq20 left
21:48
ufobat left
21:51
maybekoo2 left
21:55
AlexDaniel left
21:59
bjz left
|
|||
Xliff | Whoop! | 22:00 | |
Xliff does the grammar dance. | 22:01 | ||
22:05
labster joined
22:08
zakharyas joined
22:11
lizmat left,
lizmat joined
22:16
RabidGravy left
22:23
kurahaupo left,
zakharyas left
|
|||
stmuk_ | www.donaldjtrump.com/press-release...al%20basic | 22:26 | |
22:27
pmurias left,
firstdayonthejob joined
22:29
FROGGS left
|
|||
stmuk_ | unicode works too | 22:30 | |
japhb | .ask RabidGravy Would Term::Cap allow us to avoid using tput in github.com/ab5tract/Terminal-Print...ds.pm6#L38 (and thus avoid having to do the crazy dance in which we cache a bunch of terminal escape strings at module precompilation time)? | 22:36 | |
yoleaux | japhb: I'll pass your message to RabidGravy. | ||
geekosaur | and maybe be a bit more portable too? | 22:37 | |
geekosaur now knows not to try to install that under certain broken terminals/terminal types or on old non-ANSI ttys... | 22:38 | ||
(notably emacs still has a non-ANSI terminal emulator in it) | |||
japhb | geekosaur: I'd be happy if we got portability out of it, yeah. | 22:41 | |
geekosaur: Are you saying not to install *Terminal-Print* on non-ANSI ttys, or Term::Cap? | 22:42 | ||
geekosaur | you said Terminal-Print caches strings at precomp time | ||
that's going to screw people not on ANSI emulation, or if it caches strings for one ANSI-extended that differ from other ANSI-extendeds (which can happen) | 22:43 | ||
japhb | Yeah, it gathers the correct termcap info for every "valid" (tested to work) terminal. | ||
geekosaur | ah. that would be better, I figured it was assuming the currently set one was The One | 22:44 | |
japhb | And keys it on the terminal type string | ||
Oh heck no, I wouldn't be that silly. | |||
geekosaur remembers when caching strings for linux console would get you weird bugs when using them on xterm, and vice versa --- linux console has since been redone a few times and is much closer to xterm/standard ANSI now | 22:45 | ||
japhb | It also knows that it has to gather terminal size info at least at program start, and then every time explicitly requested thereafter (and not cache that, which is a common mistake). Doesn't yet handle SIGWINCH, but that's coming. | ||
geekosaur | (sometimes I wish I'd kept the old Beehive terminal, just as a severe stress test for terminal output) | 22:46 | |
japhb | I once had a for-reals TVI-920C (terminals-wiki.org/wiki/index.php/TeleVideo_920) heading my "personal computer", and man I wish I still had that thing .... | 22:47 | |
geekosaur | heh. yep, that'd do it. | 22:48 | |
geekosaur remembers tvi910s | |||
22:49
seatek joined
|
|||
grondilu does not know much about terminals but remembers that linux consoles are supposed (or were supposed?) to be compatible to "vt100" | 22:50 | ||
(somehow the term "vt100" had stuck in my mind) | |||
geekosaur | were supposed. it didn't do a good job of it originally | ||
japhb | grondilu: vt100 was IIRC the big "center of mass" for copycatting and eventually standardization. | 22:51 | |
geekosaur | (older) xterm was literally the reference software vt100 implementation. the DEC folks went to extremes to guarantee 100% vt100 (and in extended mode vt200) compatibility | ||
and ANSI X3.64 is a superset of VT220 | 22:52 | ||
(apparently one of them ran recent xterm against their old test suite and discovered several bugs had crept in since they'd stopped maintaining it) | |||
vt100 won because the other quasistandard used "cookies" to store video attributes --- these displayed as spaces (termcap calls them "sg" / "standout [mode] glitch") | 22:54 | ||
japhb | Of note, as I was researching TUI stuff, I kept coming across this guy: en.wikipedia.org/wiki/Thomas_Dickey | 22:55 | |
All roads lead to Thomas, apparently. | |||
grondilu | geekosaur: those trivia notes of yours suit your nickname very well ;-) | 22:57 | |
22:59
AlexDaniel joined
23:12
MasterDuke joined,
seatek left
23:14
geekosaur left
23:15
geekosaur joined
23:26
nadim_ joined,
nadim left
23:27
Rawriful left
23:28
Rawriful joined
|
|||
samcv | is it normal for perl6 --profile to segfault on running an otherwise working program? | 23:32 | |
i think it might be segfaulting when i start a proc::async process, i'm guessing | |||
MasterDuke | yeah, that's definitely not supported now | 23:33 | |
samcv | i have never used it before so was wondering your experiences with it | ||
ok so segfault is not totally unexpected? | |||
MasterDuke | yep. it's great, but can't be used for concurrent programs. it's not guaranteed to crash, but you can't trust the results if it doesn't | 23:34 | |
samcv | ah kk. are supplies and channels out as well? | ||
because i use those too. or is it just proc::async | 23:35 | ||
MasterDuke | i think anything which uses threads is out, but jnthn or timotimo could definitely give you a more conclusive answer | 23:37 | |
23:37
vendethiel left,
geekosaur left
23:40
geekosaur joined
23:41
kyclark__ left
|
|||
jnthn | So far as I remember, at a low level the profiler should be able to collect data from all running threads, but isn't able to present them. In reality, it's not really had any attention for multi-threaded programs and so there may be some other place it's tripping up. | 23:43 | |
timotimo | yes, if you --profile and have multiple threads, you'll definitely get bogus results, or maybe a crash | ||
jnthn | timotimo: Do you know why it crashes? | ||
timotimo | don't think so | ||
jnthn | timotimo: The instrumentation is guarded, and it uses a per-thread data structure to record data... | ||
k | |||
timotimo | i'm not sure it even looks at other threads right now | ||
jnthn | Right, it ignores their data. | 23:44 | |
timotimo | could just be i'm working off of outdated info, because it's been a while since i last tried it | ||
jnthn | I'd expect it to only give data on the main thread. | ||
timotimo | i've had it actually give data from a non-main thread somehow | ||
jnthn | Guess we'll have to try and catch the issue in gdb/valgrind and see what's going on. :) | 23:45 | |
23:46
espadrine left
|
|||
jnthn | It'd be good to actually get it to present useful data from all threads too, but that's more work. | 23:46 | |
Though more in the UI for presenting it than the VM | |||
MasterDuke | RT #128280 may be a bit out of date now, but i believe i did have some valgrind output | 23:49 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128280 | ||
23:51
firstdayonthejob left
23:53
Rawriful left
23:56
Rawriful joined
|