»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by masak on 12 May 2015. |
|||
00:01
espadrine left
00:02
n0tjack left
|
|||
RabidGravy | right finally fixed that last to the ecosystem | 00:04 | |
me-- # typotastic | |||
00:06
_dolmen_ left
|
|||
dalek | rl6-most-wanted: 8181e56 | timo++ | most-wanted/modules.md: add azawawi++ 's File::Zip as a WIP |
00:06 | |
00:07
raiph joined
|
|||
lizmat | .tell rarara__ I've completed GLRifying Str.split, but still need to look at a few spectest fails, will continue after some sleep | 00:07 | |
yoleaux | lizmat: I'll pass your message to rarara__. | ||
lizmat | good night, #perl6! | ||
RabidGravy | right, that's enough. See you all in the morning | 00:10 | |
00:11
f33r3x joined
00:12
f33r3x left
00:14
xpen joined
00:15
RabidGravy left,
softmoth left,
spider-mario left
00:19
xpen left
00:25
tokuhirom joined
00:28
leont left
00:29
yeahnoob joined,
tokuhirom left
00:33
ChoHag left
00:42
kid51 joined,
_dolmen_ joined
00:44
rangerprice joined
00:48
n0tjack joined
00:49
Actualeyes joined
00:52
n0tjack left
01:08
BenGoldberg left,
BenGoldberg joined
01:09
tokuhirom joined,
BenGoldberg left
01:10
BenGoldberg joined
01:13
lsm-desktop joined
01:20
TimToady joined
01:21
n0tjack joined
01:22
_dolmen_ left
01:32
rurban left
01:47
AlexDaniel left
|
|||
tokuhirom | Is there a ruby's Thread.kill(thr) in perl6? | 01:48 | |
gfldex | not yet | ||
01:49
rangerprice left
|
|||
tokuhirom | oh | 01:49 | |
01:50
kid51 left
|
|||
tokuhirom | my test script never stop since it runs thread and the script never join the thread :( | 01:53 | |
01:54
adu joined
|
|||
tokuhirom | until a few days ago it was running | 01:54 | |
since done-testing calls exit(0). | |||
gfldex | such are the way of a beta release | ||
tokuhirom | but now, it never call exit(0) github.com/rakudo/rakudo/commit/60...36f9d24de3 | ||
yah, i know | |||
01:56
n0tjack left
|
|||
gfldex | you could file a rakudobug or your provide a gist so somebody with sufficient knowledge can have a look | 01:56 | |
01:56
softmoth joined
|
|||
adu | exit(0) in a test? | 01:57 | |
That seems like a poorly written test | |||
tokuhirom | yes. my test case is not good | 01:58 | |
adu | oh wait, that's lib test | ||
02:01
softmoth left
|
|||
tokuhirom | i want to test a script like | 02:01 | |
Thread.start({ (server runs here) }); (client access to the server); done-testing; | |||
02:04
adu left
02:11
n0tjack joined
|
|||
japhb | .ask nine Why did you use reified.push in 07f186d rather than nqp::push and .CREATE instead of nqp::create? | 02:11 | |
yoleaux | japhb: I'll pass your message to nine. | ||
japhb | Grepping the Rakudo source, there are 93 CREATE and 198 nqp::create; it's not at all clear to me when to prefer one to the other, given that Mu.CREATE just calls nqp::create(self) | 02:13 | |
02:15
xpen joined
02:16
n0tjack left
02:19
Oatmeal left,
xpen left
02:20
xpen joined
02:26
Juerd left
02:29
Oatmeal joined
02:30
Juerd joined
02:36
Oatmeal left
02:37
vendethiel joined
02:42
dayangkun joined
02:43
Actualeyes left
02:46
ilbot3 joined
02:47
Oatmeal joined
02:50
llfourn joined
02:51
Oatmeal left
02:57
Oatmeal joined
03:03
Oatmeal left
03:06
kaare_ joined
03:10
Oatmeal joined,
Oatmeal left
03:11
adu joined
03:14
dayangkun left
03:16
dayangkun joined
03:31
BenGoldberg left
03:32
vendethiel left
03:44
softmoth joined
03:49
softmoth left
03:51
CJKinni_ left
04:00
Zoffix left
04:07
TimToady left
04:08
TimToady joined
04:22
Actualeyes joined
04:24
adu left
04:32
MadcapJake joined
04:38
n0tjack joined
04:42
n0tjack left
04:54
jasanj joined
04:57
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
Hotkeys | I can't seem to get to pages on doc.perl6.org that have a '/' | 05:03 | |
I assume because of url funkiness | |||
eg doc.perl6.org/syntax/%24%2F | |||
($/) | |||
05:07
Zoffix joined
|
|||
Hotkeys | then again it doesn't even exist in doc.perl6.org/syntax/ | 05:09 | |
05:09
skids left
|
|||
mst | if it's apache, maybe it needs AllowEncodedSlashes | 05:11 | |
05:11
raiph left
05:17
pollei left
05:19
domm joined
05:23
domm left
05:24
ingy joined
05:33
softmoth joined
05:36
FROGGS joined
05:37
softmoth left
05:43
aborazmeh left,
uruwi joined
05:47
protium joined
05:49
crux joined
05:54
khw left
05:58
domm joined
|
|||
dalek | kudo/nom: e154644 | TimToady++ | src/Perl6/Grammar.nqp: recognize metaop categoricals that need autogen The actual autogen is NYI, but at least we report that now. |
06:06 | |
TimToady | m: &infix:<X+> # before | 06:19 | |
camelia | rakudo-moar 07f186: OUTPUT«5===SORRY!5=== Error while compiling /tmp/oyRnITEL_oUndeclared routine: &infix:<X+> used at line 1. Did you mean '&infix:<∖>', '&infix:<lt>', '&infix:<eq>', '&infix:<o>', '&infix:<~|>'?» | ||
06:19
adhoc joined
|
|||
psch | TimToady: the patch misses e.g. &infix:['X+'], doesn't it? | 06:22 | |
TimToady | hmm, I thought we were post-canonicalization there... | 06:23 | |
psch | oh, that might be, yes. i'm asking because i don't know :) | 06:24 | |
TimToady | m: &infix:<X+> # after | ||
camelia | rakudo-moar e15464: OUTPUT«5===SORRY!5=== Error while compiling /tmp/idyQIfBS8IAutogeneration of X+ infix not yet implemented. Sorry. at /tmp/idyQIfBS8I:1------> 3&infix:<X+>7⏏5 # after expecting any of: postfix» | 06:25 | |
psch | m: &infix:['X+'] | ||
camelia | rakudo-moar e15464: OUTPUT«5===SORRY!5=== Error while compiling /tmp/3vzfBfORhwUndeclared routine: &infix:<X+> used at line 1. Did you mean '&infix:<∖>', '&infix:<lt>', '&infix:<eq>', '&infix:<o>', '&infix:<~|>'?» | ||
TimToady | but it doesn't seem to work right | ||
06:25
domm left
|
|||
TimToady | note it's canonicalized by the time it gives that error though, hmm | 06:25 | |
06:31
abaugher joined
06:41
FROGGS_ joined
06:42
FROGGS left
|
|||
dalek | kudo/nom: f69d5d7 | TimToady++ | src/Perl6/Grammar.nqp: use pre-canonicalized name of function, psch++ |
06:44 | |
TimToady | anyway, it already parses the metaop inside and produces the ast for it; someone just needs to wrap that up in a function and poke it back into the symbol | 06:47 | |
06:47
FROGGS__ joined
|
|||
TimToady is going to bed soon, so will leave that for someone else to do, if they want to work on that while I sleep :) | 06:48 | ||
06:48
FROGGS_ left
|
|||
TimToady | any, should work with :[] in half an hour or so | 06:49 | |
*anyway | |||
works locally, even with &infix:['X' ~ '+'] | 06:50 | ||
06:51
FROGGS__ left
06:53
ChoHag joined
06:57
geraud left
07:05
domm joined,
n0tjack joined
|
|||
nine | Good morning, #perl6! | 07:07 | |
yoleaux | 02:11Z <japhb> nine: Why did you use reified.push in 07f186d rather than nqp::push and .CREATE instead of nqp::create? | ||
07:10
n0tjack left,
RabidGravy joined
07:11
cognominal joined
|
|||
nine | .tell japhb the truth? I cargo culted .CREATE without thinking that much about it. I had a look at IterationBuffer.push, saw that it just does nqp::push and thought that if we cannot inline that, we have much bigger problems. So I rather avoided breaking encapsulation. | 07:11 | |
yoleaux | nine: I'll pass your message to japhb. | ||
07:13
domm left,
domm joined
|
|||
nine | .tell japhb The good news is, that indeed, it does not matter all that much. Using nqp::push directly would be about 3 % faster. My guess is that once spesh did it's work, they're equal. | 07:14 | |
yoleaux | nine: I'll pass your message to japhb. | ||
[Tux] | test 50000 40.446 40.329 | 07:15 | |
test-t 50000 40.058 39.941 | |||
07:15
rindolf joined
07:17
_dolmen_ joined
07:19
risou joined
07:21
softmoth joined
07:22
domm left,
azawawi joined
|
|||
azawawi | good morning #perl6 | 07:22 | |
TimToady | m: &infix:['X' ~ '+'] | 07:25 | |
camelia | rakudo-moar f69d5d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/RO3scemCYFAutogeneration of X+ infix not yet implemented. Sorry. at /tmp/RO3scemCYF:1------> 3&infix:['X' ~ '+']7⏏5<EOL> expecting any of: postfix» | ||
TimToady | there we go | ||
night everyone & | |||
07:25
softmoth left
|
|||
RabidGravy | marning! | 07:26 | |
07:28
cognominal left,
cognominal joined
|
|||
azawawi | RabidGravy: im seeing 7.8 seconds to 8 seconds on File::Zip test today with the latest rakudo... :) | 07:33 | |
RabidGravy | yay! groovy | ||
07:33
darutoko joined
|
|||
azawawi | Groovy is cool also as a language :) | 07:34 | |
oops lol | |||
RabidGravy | found the module I was thinking of when someone asked about enums the other day github.com/jonathanstowe/Log-Syslo.../Native.pm | ||
azawawi | Groovy is good btw for embedding changing business logic in Java land | ||
RabidGravy | I'd actually forgotten I wrote that | ||
azawawi | btw what happened to seek(..., $whence) constants? | 07:35 | |
why not adverbs also? | 07:36 | ||
seek( $offset, :first | :last | :current ) | |||
RabidGravy | I think I fixed it to use multis just before I went on holiday and then forgot about it | 07:37 | |
moritz | adverbs are better when they compose | ||
seek($offset, :first, :last) | |||
WAT? | |||
azawawi | moritz: i see | ||
moritz: good morning | |||
RabidGravy | but an enum would be good | 07:38 | |
moritz | azawawi: good morning :-) | ||
azawawi | moritz: but then again enums would be faster | ||
azawawi time to test zef | 07:39 | ||
so why not make git tags useful for a command like the following "panda install $module@$tag-version" | 07:43 | ||
like github.com/tadzik/panda/tags | |||
07:44
FROGGS joined
07:45
lolisa joined
07:48
bjz joined
07:52
_dolmen_ left
07:56
yeahnoob left
07:57
abraxxa joined
|
|||
moritz | azawawi: I'd prefer it if we actually released modules, gave them versions, uploaded them seomewhere (PAUSE?), and then taught panda to install released versions | 07:58 | |
azawawi | moritz: so then we have actual archives with checksums to verify them | 07:59 | |
07:59
yeahnoob joined
|
|||
azawawi | zef is so slow fyi compared to panda | 08:02 | |
why is it "Initializing" on every run? | |||
moritz | but I think zef still precompiles, no? | 08:06 | |
FROGGS | and zef can install stuff concurrently | 08:08 | |
azawawi: maybe so you can an updated distribution list every time? | |||
the Perl 5 cpan client does it once a day by default I think | 08:09 | ||
azawawi | i think the panda approach is the safest way | 08:10 | |
though it can be enhanced when failing to install a module to say to the user "maybe use `panda update` and reinstall?" | 08:11 | ||
or better ask the user to issue an update and reinstall | |||
or go automated to try to do it anyway without asking the user | 08:12 | ||
panda install XYZ # if it fails, panda runs update and try to installs it again | |||
azawawi tries panda on windows again | 08:15 | ||
08:19
espadrine joined
|
|||
azawawi | failed t\01-sanity\55-use-trace.t on windows | 08:21 | |
hmmm | 08:23 | ||
no .bat for binaries on windows | |||
panda has no panda.bat | |||
s/binaries/scripts | |||
FROGGS: i remember that you fixed it last time, right? | 08:24 | ||
08:25
Actualeyes left
08:26
ely-se joined
|
|||
moritz | m: sub f(:$*A) { say $*A }; my $*A = 42; await start f :$*A | 08:30 | |
camelia | rakudo-moar f69d5d: OUTPUT«Dynamic variable $*A not found in block <unit> at /tmp/5rYG6okbFW:1» | ||
moritz | :( | ||
m: sub f { say $*A }; my $*A = 42; f; | 08:31 | ||
camelia | rakudo-moar f69d5d: OUTPUT«42» | ||
moritz | m: sub f { say $*A }; my $*A = 42; await start f; | ||
camelia | rakudo-moar f69d5d: OUTPUT«Dynamic variable $*A not found in block <unit> at /tmp/jDdv9_jkJO:1» | ||
moritz | is that by design? | 08:32 | |
and if yes, how do I get dynamic variables into a thread? | |||
FROGGS | azawawi: no, I didnt | 08:33 | |
moritz | m: sub f(:$*A) { say $*A }; my $*A = 42; my $A = $*A; await start f :$A | ||
camelia | rakudo-moar f69d5d: OUTPUT«42» | ||
moritz | this seems to work | ||
08:34
espadrine left
|
|||
azawawi | Perl 6 is now mentioned on Selenium HQ website www.seleniumhq.org/download/#thirdP...geBindings after github.com/SeleniumHQ/www.selenium...rg/pull/48 . About 9 days of wait time and followup :) | 08:34 | |
moritz | 9 days is pretty good | 08:36 | |
moritz still waits on this one: github.com/OTRS/otrs/pull/656 | |||
08:38
kjs_ joined
|
|||
azawawi starts working on github.com/tadzik/panda/issues/112 | 08:39 | ||
moritz: nice | 08:42 | ||
dalek | kudo/nom: 26e461a | (Sterling Hanenkamp)++ | src/core/IO/Handle.pm: Signal done when the handle closes |
08:47 | |
kudo/nom: da88815 | lizmat++ | src/core/IO/Handle.pm: Merge pull request #566 from zostay/handle-supply-is-done Signal done when the handle closes |
|||
RabidGravy | just waiting for the electricity to go off here as the gas guy services thee boiler | 08:49 | |
08:52
mr-foobar joined
|
|||
RabidGravy | azawawi, what is that "lukeis" guy's problem? He seems to think that he gets to decide on how any particular language bindings get made, without doing anything in that regard himself | 08:54 | |
azawawi | RabidGravy: but we have "Perl 6" on their website so it is a win :) | 08:57 | |
RabidGravy | azawawi++ # great diplomatic skills, I think I would have made with the full on raving about half way through that exchange | 08:58 | |
08:59
rindolf left
09:04
rindolf joined
09:09
softmoth joined
|
|||
RabidGravy | yay, boiler guy managed to service the boiler without killing the electricity | 09:10 | |
09:10
dakkar joined
09:12
rindolf left
09:13
softmoth left
09:14
kjs_ left
|
|||
RabidGravy | which does of course mean I have shut down all these little computers for nothing | 09:16 | |
09:20
ely-se left
09:21
ollej left
09:22
Begi1115 joined,
rarara_ joined
|
|||
rarara_ | Good day! | 09:22 | |
09:23
ely-se joined
09:24
FROGGS left
|
|||
rarara_ | lizmat++ | 09:24 | |
09:24
zakharyas joined
09:25
telex left,
diana_olhovik_ joined
09:26
telex joined
09:29
yeahnoob left
09:30
Psyche^_ joined,
grondilu joined,
espadrine joined
|
|||
azawawi | so panda does not use CUR::Inst or will use it in the future? | 09:30 | |
09:31
[Sno] left
|
|||
lizmat | panda will use whatever Rakudo will provide for installation... | 09:32 | |
afk for a few hours& | |||
09:32
n0tjack joined,
[Sno] joined
09:34
Psyche^ left
09:36
n0tjack left
09:52
lolisa left
09:53
azawawi left
09:55
RabidGravy left
10:05
_mg_ joined
10:09
Hor|zon left
10:12
kjs_ joined
|
|||
jnthn | morning, #perl6 | 10:13 | |
mrf | morning | 10:15 | |
jnthn | .tell tokuhirom If you Thread.start, you can also pass :app_lifetime which will have the thread automatically killed at the end of the program | ||
yoleaux | jnthn: I'll pass your message to tokuhirom. | ||
jnthn | moritz: There's an RT about start and dynamics already. | 10:19 | |
(Long story short, it should work as you wish.) | 10:20 | ||
moritz | jnthn: great | ||
tokuhirom | jnthn: oh, thanks! i'll use it | 10:21 | |
yoleaux | 10:15Z <jnthn> tokuhirom: If you Thread.start, you can also pass :app_lifetime which will have the thread automatically killed at the end of the program | ||
10:22
risou is now known as risou_awy,
kid51 joined
10:23
risou_awy is now known as risou
10:24
pmurias joined
|
|||
dalek | p: 1fbf6c5 | (Pawel Murias)++ | src/vm/js/nqp-runtime/reprs.js: [js] Add a noop compose for NFA |
10:25 | |
rarara_ | m: my $compfiles=$("a", "b", "c"); my $comp-prom = do for |$compfiles -> $comparison { start {($comparison ~ "1", $comparison ~ "2", $comparison ~ "3")}}; my @g = await |$comp-prom; say @g.perl; say [Z] @g; | 10:35 | |
camelia | rakudo-moar da8881: OUTPUT«[("a1", "a2", "a3"), ("b1", "b2", "b3"), ("c1", "c2", "c3")]((a1 b1 c1) (a2 b2 c2) (a3 b3 c3))» | ||
rarara_ | m: my $compfiles=$("a",); my $comp-prom = do for |$compfiles -> $comparison { start {($comparison ~ "1", $comparison ~ "2", $comparison ~ "3")}}; my @g = await |$comp-prom; say @g.perl; say [Z] @g; | ||
camelia | rakudo-moar da8881: OUTPUT«["a1", "a2", "a3"]((a1 a2 a3))» | ||
rarara_ | This ^^ doesn't seems consistent to me | ||
but maybe I'm making mess | 10:36 | ||
can be golfed down removing any async stuff | 10:37 | ||
10:39
g4 joined
10:44
tokuhirom left
|
|||
ab5tract_ | rarara_: what is incondidtrnt? | 10:45 | |
*inconsistent | |||
also, i think those slips are not necessary | |||
rarara_ | I am learning | ||
10:46
jasanj left
|
|||
ab5tract_ | no worries, didn't mean it aggressively | 10:47 | |
rarara_ | m: my $g=$("a",); my @o = do for |$g -> $e { ($e ~ "1", $e ~ "2", $e ~ "3") }; say @o.perl;' | ||
camelia | rakudo-moar da8881: OUTPUT«5===SORRY!5=== Error while compiling /tmp/j3bKm3eBtzUnable to parse expression in single quotes; couldn't find final "'" at /tmp/j3bKm3eBtz:1------> 031", $e ~ "2", $e ~ "3") }; say @o.perl;'7⏏5<EOL> expecting any of: sin…» | ||
rarara_ | m: my $g=$("a",); my @o = do for |$g -> $e { ($e ~ "1", $e ~ "2", $e ~ "3") }; say @o.perl; | ||
camelia | rakudo-moar da8881: OUTPUT«[("a1", "a2", "a3"),]» | ||
ab5tract_ | the one-arg rule will flatten a list if it is a single arg | ||
m: my $g=$("a",); my @o = do for $g -> $e { $e X~ <1 2 3> }; say @o.perl; | 10:48 | ||
camelia | rakudo-moar da8881: OUTPUT«[("a1", "a2", "a3").Seq,]» | ||
rarara_ | m: my $g=$("a",); my @o = do for |$g -> $e { ($e ~ "1", $e ~ "2", $e ~ "3") }; say @o.perl; say [Z] @o; | ||
camelia | rakudo-moar da8881: OUTPUT«[("a1", "a2", "a3"),]((a1 a2 a3))» | ||
rarara_ | m: my $g=$("a",); my @o = do for |$g -> $e { ($e ~ "1", $e ~ "2", $e ~ "3") }; say @o.perl; my @o2 = [Z] @o; say @o2; | 10:49 | |
camelia | rakudo-moar da8881: OUTPUT«[("a1", "a2", "a3"),][(a1 a2 a3)]» | ||
rarara_ | m: my $g=$("a",); my @o = do for |$g -> $e { ($e ~ "1", $e ~ "2", $e ~ "3") }; say @o.perl; my @o2 = [Z] @o; say @o2; | ||
camelia | rakudo-moar da8881: OUTPUT«[("a1", "a2", "a3"),][(a1 a2 a3)]» | ||
rarara_ | m: my $g=$("a","b"); my @o = do for |$g -> $e { ($e ~ "1", $e ~ "2", $e ~ "3") }; say @o.perl; my @o2 = [Z] @o; say @o2; | ||
camelia | rakudo-moar da8881: OUTPUT«[("a1", "a2", "a3"), ("b1", "b2", "b3")][(a1 b1) (a2 b2) (a3 b3)]» | ||
ab5tract_ | rarara_: can you clarifywhat the strangeness you are finding is? | ||
10:49
brrt joined
|
|||
rarara_ | it is the [Z] | 10:49 | |
ab5tract_ | but I'm not personally seeing anything inconsistent | 10:50 | |
brrt | good * #perl6 | ||
ab5tract_ | can you clarify what you are expecting? | ||
rarara_ | I would have supposed it to return [(a1) (a2) (a3)] | ||
my $g=$("a",); my @o = do for |$g -> $e { ($e ~ "1", $e ~ "2", $e ~ "3") }; say @o.perl; my @o2 = [Z] @o; say @o2; | |||
ab5tract_ | but it is a list with a single element | 10:51 | |
rarara_ | yes but in some cases you cannot know in advance | ||
ab5tract_ | so the list is flattened, and then that single element is zipped with... nothing, as there is no second element | ||
rarara_ | and then you have to add an if and check the number of elements | ||
zipped with nothing for me is [$(a1,) ,$(a2,) ,$(a3,)] | 10:52 | ||
ab5tract_ | m: my $g=$("a",); my @o = do for $g -> $e { $e X~ <1 2 3> }; say (flat @o).perl; | ||
camelia | rakudo-moar da8881: OUTPUT«(("a1", "a2", "a3").Seq,).Seq» | ||
rarara_ | you see: it zips with nothing | ||
now it just don't zip | |||
ab5tract_ | rarara_: yes. that's due to the behavior I described | ||
rarara_ | ah ok, the one arg rule | 10:53 | |
10:54
TEttinger left
10:56
cschwenz joined
|
|||
ab5tract_ | I agree that your case is a bit confusing | 10:56 | |
10:56
cschwenz left
|
|||
rarara_ | I am thinking.. Maybe is just me not adapting in the right way | 10:56 | |
For sure adding if s everywhere to check the number of elements is not the solution to adapt | 10:57 | ||
10:57
softmoth joined
|
|||
moritz | why would you need to check for the number of elements? | 10:58 | |
rarara_ | the same as adding flat and eager everywhere | ||
moritz because I don't know if the 1 arg rule will be applied or not | |||
ab5tract_ | rarara_: I would tend to not use [Z] for that use case, tbh | ||
10:58
domm joined
|
|||
rarara_ | not knowing the number of elements of the list | 10:58 | |
ab5tract_ | m: my @t = do for (<a b c d>, <e f g h>) -> $t { $t.map({[$_]}) }; @t.say | ||
camelia | rakudo-moar da8881: OUTPUT«[([a] [b] [c] [d]) ([e] [f] [g] [h])]» | ||
moritz | rarara_: the one-arg rule is syntactic in nature | ||
rarara_: if you call something(@foo), then the one-arg rule applies to @foo because it's one argument | 10:59 | ||
10:59
lucasb_ joined
|
|||
ab5tract_ | note how this approach maintains the list groupings and array-ifies each individual element | 10:59 | |
moritz | rarara_: independent of the number of elements inside @foo | ||
rarara_ | something weird is happening with [Z] | ||
ab5tract_ | rarara_: have you explored the [] meta-op much besides the [Z] case? | 11:00 | |
rarara_ | not | ||
ab5tract_ | maybe playing with some other examples might clear some stuff up | ||
m: sub infix:<fun> ( $old-level, $new-level ) { say "moving from -Ofun=$old-level to -Ofun=$new-level" }; say [fun] ^6 | 11:01 | ||
camelia | rakudo-moar da8881: OUTPUT«moving from -Ofun=0 to -Ofun=1moving from -Ofun=True to -Ofun=2moving from -Ofun=True to -Ofun=3moving from -Ofun=True to -Ofun=4moving from -Ofun=True to -Ofun=5True» | ||
11:01
softmoth left
|
|||
ab5tract_ | which can and maybe should include some custom infix operator exploration :) | 11:02 | |
11:02
_mg_ left
|
|||
ab5tract_ | that version is messed up because say is interfering somehow.. interesting | 11:02 | |
m: sub infix:<fun> ( $old-level, $new-level ) { say "moving from -Ofun=$old-level to -Ofun=$new-level" }; ([fun] ^6)>>.say | |||
camelia | rakudo-moar da8881: OUTPUT«moving from -Ofun=0 to -Ofun=1moving from -Ofun=True to -Ofun=2moving from -Ofun=True to -Ofun=3moving from -Ofun=True to -Ofun=4moving from -Ofun=True to -Ofun=5True» | ||
ab5tract_ | derp | ||
Timbus | its the ret.. | 11:03 | |
ab5tract_ | m: sub infix:<fun> ( $old-level, $new-level ) { "moving from -Ofun=$old-level to -Ofun=$new-level" }; ([fun] ^6).say | ||
camelia | rakudo-moar da8881: OUTPUT«moving from -Ofun=moving from -Ofun=moving from -Ofun=moving from -Ofun=moving from -Ofun=0 to -Ofun=1 to -Ofun=2 to -Ofun=3 to -Ofun=4 to -Ofun=5» | ||
11:03
ely-se left
|
|||
flussence | ideally you'd just slap "--> $new-level" in the signature and it'd work... | 11:05 | |
ab5tract_ | flussence: what do you mean? | 11:06 | |
flussence | returning the input value instead of the return value of "say" | ||
ab5tract_ | m: sub infix:<fun> ( $old-level, $new-level ) { state $level; say $old-level; $new-level="moving from -Ofun={$level} to -Ofun={++$level}" }; ([fun] ^6).say | 11:09 | |
camelia | rakudo-moar da8881: OUTPUT«0Use of uninitialized value $level of type Any in string contextAny of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in sub infix:<fun> at /tmp/L4nuFI9wuc:1Cannot assign to a readonly variable or a value in sub infi…» | ||
11:09
RabidGravy joined
|
|||
ab5tract_ | anyway, looks like I've got some learning up to do too | 11:09 | |
RabidGravy | learning is over-rated | 11:10 | |
11:10
rindolf joined
|
|||
RabidGravy | but I have replenished my beer stock now so all is good | 11:10 | |
why did I think that it was possible to directly compare arrays with '~~' | 11:19 | ||
jnthn | m: my @a = 1..5; my @b = 2..6; my @c = 1..5; say @a ~~ @b; say @a ~~ @c; | 11:20 | |
camelia | rakudo-moar da8881: OUTPUT«FalseTrue» | ||
jnthn | 'cus you can? ;) | ||
moritz | though note that * has a special meaning in ~~ array comparison | ||
m: say [1, 2, 3, 4, 5] ~~ [1, 2, *] | 11:21 | ||
camelia | rakudo-moar da8881: OUTPUT«False» | ||
moritz | huh, or maybe not anymore? | ||
RabidGravy | me being dumb again | 11:23 | |
11:23
adhoc left
|
|||
RabidGravy | m: my @a = <1 2 3>; my @b = <3 1 2>; say @a.sort ~~ @b.sort; | 11:23 | |
camelia | rakudo-moar da8881: OUTPUT«False» | ||
ab5tract_ | m: sub infix:<f>($o,$n) { state $s; my $t = $s ?? "Moving from -Ofun={$s} to -Ofun={$n}" !! "Starting at -Ofun=$n"; $s = $n; $t }; say [f] ^6 | 11:24 | |
camelia | rakudo-moar da8881: OUTPUT«Moving from -Ofun=4 to -Ofun=5» | ||
11:24
adhoc joined
|
|||
RabidGravy | the Seq returned by sort doesn't compare that way | 11:24 | |
lucasb_ | m: say @(<1 2 3>.sort) ~~ @(<1 2 3>.sort) | 11:25 | |
camelia | rakudo-moar da8881: OUTPUT«True» | ||
lucasb_ | is this the idiomatic way of unrolling a Seq? | ||
ab5tract_ | why does that example I just pasted only return 4-5 ? | ||
I would have expected a list of things, not just the final case | 11:26 | ||
timotimo | moritz: i thought a single * would match any element on the other side? perhaps a ** does what you meant there? | 11:29 | |
(or should mean) | |||
moritz | m: say [1, 2, 3] ~~ [1, 2, *] | 11:30 | |
camelia | rakudo-moar da8881: OUTPUT«True» | ||
moritz | m: say [1, 2, 3, 4] ~~ [1, 2, **] | ||
camelia | rakudo-moar da8881: OUTPUT«True» | ||
moritz | timotimo: you seem to be correct, as usual :-) | ||
timotimo | oh i'm sorry ;) | 11:31 | |
lizmat | m: dd "abc".split("",2,:all) # returns 2 elements, as expected | 11:32 | |
camelia | rakudo-moar da8881: OUTPUT«Seq $var = ("", "abc").Seq» | ||
lizmat | m: m: dd "abc".split("b",2,:all) # returns 3 elements??? that seems incorrect ? | 11:33 | |
camelia | rakudo-moar da8881: OUTPUT«Seq $var = ("a", "b", "c").Seq» | ||
jnthn | :all is kinda confusigly named :) | ||
(When you see it together with a limit) | 11:34 | ||
lucasb_ | I was going to ask what :all do... | ||
rarara_ | m: my $a=Array.new(1,2,3); say $a; my $c=($a).List; say $c.perl; | ||
camelia | rakudo-moar da8881: OUTPUT«[1 2 3]$(1, 2, 3)» | ||
rarara_ | m: my $a=1; say $a; my $c=($a).List; say $c.perl; | ||
camelia | rakudo-moar da8881: OUTPUT«1$(1,)» | ||
rarara_ | why do we get a different number of elements in the two cases? | 11:35 | |
11:35
kid51 left
|
|||
lucasb_ | from syn: "If the :all adverb is supplied to the string delimiter form, the delimiter will be returned in alternation with the split values." | 11:35 | |
rarara_ | m: my $a=Array.new(1); say $a; my $c=($a).List; say $c.perl; | ||
camelia | rakudo-moar da8881: OUTPUT«[1]$(1,)» | ||
lucasb_ | so, the first example "abc".split("",2,:all) should return ("", "", "abc") ? | ||
rarara_ | m: Array.new(1) == 1 | 11:36 | |
camelia | rakudo-moar da8881: OUTPUT«WARNINGS:Useless use of "==" in expression ".new(1) == 1" in sink context (line 1)» | ||
rarara_ | m: say Array.new(1) == 1 | ||
camelia | rakudo-moar da8881: OUTPUT«True» | ||
rarara_ | m: say Array.new(1).WHAT; say 1.WHAT; | ||
camelia | rakudo-moar da8881: OUTPUT«(Array)(Int)» | ||
lucasb_ | ok, maybe :all is a little misnamed, maybe :interpolate, :intercalate, :interpose, I don't know :) | 11:39 | |
rarara_ | it is the one arg rule.. pff | 11:40 | |
but $a could have been an array or not.. so flatten or not.. so get a list with 1 element or N.. How can you know all of this in advance? | 11:41 | ||
timotimo | what piece of code are we talking about right now? | 11:45 | |
gfldex | rarara_: if you don't know what is returned in advance you need more multies to untangle it | 11:49 | |
11:51
grondilu left
|
|||
RabidGravy | (more multis)++ | 11:54 | |
11:59
ely-se joined
12:02
dayangkun left
|
|||
moritz | or you can ge coercive | 12:03 | |
slurpies are good that | |||
12:11
ambs left,
spider-mario joined
12:14
pmurias_ joined
12:18
pmurias left
|
|||
JimmyZ | m: slice | 12:18 | |
camelia | rakudo-moar da8881: OUTPUT«5===SORRY!5=== Error while compiling /tmp/6gicncw6DCUndeclared routine: slice used at line 1. Did you mean 'splice', 'slip'?» | ||
JimmyZ | m: splice | 12:19 | |
camelia | rakudo-moar da8881: OUTPUT«5===SORRY!5=== Error while compiling /tmp/SnKVOzG9EvCalling splice() will never work with declared signature (@arr, |c is raw)at /tmp/SnKVOzG9Ev:1------> 3<BOL>7⏏5splice» | ||
12:22
_mg_ joined
|
|||
dalek | c: df1b189 | moritz++ | html/.htaccess: Install redirect for a renamed document |
12:25 | |
lucasb_ | m: $_ = 'abc'; ss/a/x/; .say | 12:26 | |
camelia | rakudo-moar da8881: OUTPUT«xbc» | ||
lucasb_ | ^ what adverb is getting concatenated here to form "ss"? | 12:27 | |
timotimo | :samespace | ||
lucasb_ | how come only 'ss' works and the other regex adverbs don't? | 12:29 | |
timotimo | you mean "why does only :samespace have a short-hand"? | ||
lucasb_ | yes | ||
why? :) | |||
timotimo | dunno | ||
there's also one for "same accent" ... :keepmarks? | 12:30 | ||
i've never used any of those two, tbh | |||
oh | |||
ignoremarks | |||
lucasb_ | S02 says "You may omit the first colon by joining an initial Q, q, or qq with a single short form adverb" | ||
timotimo | that may refer to quoting, though | 12:31 | |
er | |||
that definitely only refers to quoting | |||
that's why it says "initial Q, q or qq" | |||
lucasb_ | so I thought this only works with q/qq and not s/// | ||
timotimo | right | ||
12:33
Skarsnik joined
|
|||
lucasb_ | oh, I found it in S05. the special forms are only ss/// and ms// | 12:34 | |
timotimo: thanks! | |||
timotimo | glad to help! (i don't know how i helped, but ...) | 12:35 | |
Skarsnik | Hello, is there a way to type a hash? | 12:40 | |
timotimo | sure | ||
m: my %foo{Int}; %foo{1} = "hi"; say %foo.perl | |||
camelia | rakudo-moar da8881: OUTPUT«(my Any %{Int} = 1 => "hi")» | ||
moritz | that's for the keys | 12:42 | |
and for the values: | |||
m: my Int %foo; %foo<a> = 1; say 'alive'; %foo<b> = 'c' | |||
camelia | rakudo-moar da8881: OUTPUT«aliveType check failed in assignment to %foo; expected Int but got Str in block <unit> at /tmp/32F_k7N2v8:1» | ||
dalek | ecs: d9d22e6 | (Kamil Kułaga)++ | S26-documentation.pod: added missing semicollon |
12:45 | |
12:45
softmoth joined
12:46
sufrostico joined
|
|||
ilmari | m: my Int %Foo{Int} = (42 => 37); say %foo.perl | 12:47 | |
camelia | rakudo-moar da8881: OUTPUT«5===SORRY!5=== Error while compiling /tmp/n8gnKoisYmVariable '%foo' is not declared. Did you mean '%Foo'?at /tmp/n8gnKoisYm:1------> 3my Int %Foo{Int} = (42 => 37); say 7⏏5%foo.perl» | ||
ilmari | m: my Int %foo{Int} = (42 => 37); say %foo.perl | ||
camelia | rakudo-moar da8881: OUTPUT«(my Int %{Int} = 42 => 37)» | ||
Skarsnik | Oh thx you. I was wondering how to to to write stuff like that %addr = (0 => "header", 512 => "something"); and keep the key as number | 12:49 | |
timotimo | in that case you want an object hash literal | 12:50 | |
m: say :{0 => "header", 512 => "something"}.perl | |||
camelia | rakudo-moar da8881: OUTPUT«:{0 => "header", 512 => "something"}» | ||
timotimo | m: say dd :{0 => "header", 512 => "something"} | ||
camelia | rakudo-moar da8881: OUTPUT«Hash[Mu,Any] $var = :{0 => "header", 512 => "something"}Nil» | ||
12:50
ely-se left
|
|||
timotimo | you can := that into a %foo variable | 12:50 | |
(otherwise it'll be a regular assignment and stringify again) | |||
12:50
softmoth left
|
|||
lucasb_ | It seems that plain %h has type Hash[Mu,Any] and %h{Foo} has type Hash[Foo,Str]. I would argue that the second type should be Hash[Foo,Any]. Would anyone agree? | 12:54 | |
12:55
[Tux] joined
|
|||
timotimo | m: dd my %foo | 12:55 | |
camelia | rakudo-moar da8881: OUTPUT«Hash $var = {}» | ||
timotimo | m: (my %foo).of.perl.say | ||
camelia | rakudo-moar da8881: OUTPUT«Mu» | ||
timotimo | m: (my %foo).^roles.perl.say | ||
camelia | rakudo-moar da8881: OUTPUT«Method 'iterator' must be implemented by Iterable because it is required by a role in any compose_method_table at gen/moar/m-Metamodel.nqp:2661 in any apply at gen/moar/m-Metamodel.nqp:2671 in any compose at gen/moar/m-Metamodel.nqp:2807 in…» | ||
timotimo | ah, duh | ||
that thing again | |||
lucasb_ | ^^ I meant 'my Foo %h' and not 'my %h{Foo}', sorry | 12:57 | |
timotimo | ah | ||
why is the key type Mu and not Str(Any)? | |||
lucasb_ | m: my Int %h = 1,Any | ||
camelia | rakudo-moar da8881: OUTPUT«Type check failed in binding key; expected Str but got Int in block <unit> at /tmp/mfGaOP06xb:1» | ||
lucasb_ | it's inverted: Hash[ValueType,KeyType], not Hash[KeyType,ValueType] | 12:58 | |
timotimo | ooooh | ||
Skarsnik | hm interesting, it work directly pastebin.com/WMMJ4NxU | ||
timotimo | of course | ||
lucasb_ | m: my Int %h = Any,1 # <-- I meant this, sorry agaaain | ||
camelia | rakudo-moar da8881: OUTPUT«Type check failed in binding key; expected Str but got Any in block <unit> at /tmp/SVtIyGFFge:1» | ||
timotimo | right, the LHS of a pair will only be automatically turned into a string if it's a valid identifier | 12:59 | |
numbers aren't, so they won't | |||
lucasb_ | m: my %h = Any,1 | 13:01 | |
camelia | rakudo-moar da8881: OUTPUT«Use of uninitialized value of type Any in string contextAny of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/0guOraYaXe:1» | ||
13:01
ribasushi joined
13:02
bitmap joined
|
|||
colomon | timotimo: my RT foo is weak. can you point out to Kamil that Rat arithmetic is explicitly spec’d to not be limited to resulting in a Rat? | 13:03 | |
timotimo | colomon: did you get that per mail? if so, just use the "reply to list" function of your mail client to respond | ||
colomon | timotimo: got it in mail, but in a mail client that is hard to respond from. Still, hmmm. | 13:04 | |
timotimo | give me a link to the relevant part of the spec and i'll send it | 13:05 | |
timotimo makes tea in the hopes of calming his cough | |||
colomon is working on a reply now. | |||
13:07
lucasb_ left
|
|||
RabidGravy | is there a standalone META parser thingy out there that I am missing? | 13:07 | |
tadzik | nope | ||
RabidGravy might make one then | |||
reason being that I would like to make something that tests that the one in a distribution is likely to work | 13:08 | ||
timotimo | instead of making tea, i think i'll just lie down to sleep for another bit and hope i'll miraculously recover | 13:09 | |
RabidGravy | sounds like a plan | ||
both wife and cat are asleep here | |||
timotimo | colomon: does "working on a reply" imply you can sand it out yourself? | 13:10 | |
lizmat is contemplating a nap in the sun as well | |||
colomon | timotimo: yes | ||
RabidGravy | boiler man came an hour earlier than anticipated so we'd done everything we needed to do before we usually go out ;-) | 13:11 | |
dalek | kudo/nom: 3cc1955 | jnthn++ | src/core/Str.pm: Prepare Str.perl for upcoming NFG changes. Updates to the NFG algorithm mean that we will can get isolated marks in the middle of a string, after control characters. |
||
timotimo | okay | 13:15 | |
timotimo takes that nap | |||
colomon | timotimo: mail (hypothetically) sent | ||
jnthn | timotimo: nap well :) | ||
13:20
perl6fun joined
|
|||
Skarsnik | Is there a defined solution for modules that provide the same service? I mean like the 5 jsons modules are easy to change because they mainly only provide a parse-json function. But like I have a module that parse hmtl using a c lib and there is already html::parser:xml. It could be good the user can just select the implementation he want; without changing deeply his code (like sub module) | 13:33 | |
13:34
pmurias_ is now known as pmurias
|
|||
pmurias | Skarsnik: do the modules provide an identical API? | 13:34 | |
Skarsnik | not exactly. h:p:x provide a class when I just provide a parse-html function. but basicly you provide a html string and it return a XML::Document | 13:36 | |
13:37
raiph joined
|
|||
pmurias | I don't think there is a defined solution, or that one is even possible. | 13:38 | |
Skarsnik | I was trying to come with a solution to override all the h:p:x call/symbol with my own one (providing a 'fake' h:p:x class) but I don't think it's possible | 13:40 | |
I was also thinking something like a 'fake' module Service::Parse::HTML and it use by default h:p:x but if you write use OtherImpl; OtherImpl can say to s:p:h to use him | 13:44 | ||
perl6fun | I need a good analytics module like pandas and good visualisation like ggplot2 and seaborn in perl 6. | 13:46 | |
13:47
skids joined
|
|||
dalek | c: 8df205d | moritz++ | util/sync: Synchronize .htaccess too |
13:47 | |
13:48
apotheon joined
|
|||
moritz | perl6fun: the either use Inline::Python, or port them to Perl 6 | 13:48 | |
brrt | actually ggplot2 is an R library :-) | 13:49 | |
(i'm not sure about seaborn) | |||
and it is indeed awesome | |||
moritz | stanford.edu/~mwaskom/software/seaborn/ "Seaborn is a Python visualization library based on matplotlib. It provides a high-level interface for drawing attractive statistical graphics." | ||
well, write Inline::R, use it :-) | 13:50 | ||
perl6fun | Porting these libraries to perl 6 would be better :) | 13:53 | |
moritz | it seems I deleted quite a few files from doc.perl6.org that I shouldn't have :( | ||
I hope that the next automatic sync restores them | |||
unless I misunderstood rsync, and github.com/perl6/doc/commit/8df205d3ce is to blame | 13:55 | ||
13:55
Actualeyes joined
13:56
_mg_ left
13:58
CJKinni_ joined,
softmoth joined
|
|||
hahainternet | is there a nice way to get the unicode name for a character? | 13:58 | |
am i missing some key function here? | |||
moritz | m: say uniname(42) | ||
camelia | rakudo-moar 3cc195: OUTPUT«ASTERISK» | ||
hahainternet | oh, bare uniname | 13:59 | |
merc | |||
i | |||
moritz | m: say uniname('ä'.ord) | ||
camelia | rakudo-moar 3cc195: OUTPUT«LATIN SMALL LETTER A WITH DIAERESIS» | ||
moritz | m: say uniname('ä') | ||
camelia | rakudo-moar 3cc195: OUTPUT«LATIN SMALL LETTER A WITH DIAERESIS» | ||
moritz | ah, both work | ||
brrt | m: say uniname(0x1234) | ||
camelia | rakudo-moar 3cc195: OUTPUT«ETHIOPIC SYLLABLE SEE» | ||
perl6fun | When is perl 6 released officially?? I mean for production use. Any fixed date please?? | ||
brrt | m: say uniname(0xcafe) | ||
camelia | rakudo-moar 3cc195: OUTPUT«<Hangul Syllable>» | ||
moritz | perl6fun: we aim for a Christmas release | 14:00 | |
brrt | perl6fun: the standard answer is 'whenever it is ready for you' | ||
(wrt to 'production') | |||
perl6fun | moritz Any exact date? | ||
brrt | and there is a very significant chance that the release of perl6.christmas will not meet your standards of production | 14:01 | |
that is the normal way of programming languages, fwiw | |||
no exact date as far as i know perl6fun | |||
14:01
ely-se joined
|
|||
PerlJam | perl6fun: note that there are also people using Rakudo Perl 6 "in production" right now. | 14:01 | |
brrt | that too | ||
ely-se | fools | ||
14:01
Hor|zon joined
|
|||
brrt | hi ely-se | 14:01 | |
moritz | PerlJam: even people using it in production, without scare quotes | ||
PerlJam | yeah, I wasn't actually meaning those to be scare quotes :) | 14:02 | |
dalek | osystem: 4ad66f0 | RabidGravy++ | META.list: Add Object::Permission::Group github.com/jonathanstowe/Object-Pe...sion-Group |
||
PerlJam | .oO( We need more quoting constructs! ;) |
||
brrt | there is more than one way to 'scare quote' something :-P | ||
dalek | c: 542b373 | moritz++ | doc/Language/5to6-nutshell.pod: Give 5to6-nutshell a less terse title |
14:03 | |
Skarsnik | hm, where is nativecall.pod? the link at the bottom of doc.perl6.org/language/nativecall is 404 | ||
moritz | Skarsnik: try again | ||
irclog.perlgeek.de/perl6/2015-10-29#i_11450883 | |||
ely-se | PerlJam: write about it on www.reddit.com/r/UnnecessaryQuotes/ | 14:04 | |
moritz | why am I not surprised that there's a reddit for that? | ||
PerlJam | because it's no surprise that there's a reddit for almost anything? | 14:05 | |
Skarsnik | Well the github.com/perl6/doc/raw/master/li...vecall.pod is missing x) | ||
brrt | moritz: correct link is raw.githubusercontent.com/perl6/do...ecall.pod, actual link is github.com/perl6/doc/raw/master/li...vecall.pod | ||
basically, those urls are no longer how github refers to raw pages, apparently | |||
Skarsnik | oh thx | ||
brrt | so s/github.com/raw.githubusercontent.com/ and s@/raw@@ | 14:06 | |
14:07
crux left
|
|||
RabidGravy | if you want scare quotes it should 👻Scare👻 | 14:07 | |
PerlJam | yes, those are scary | ||
14:07
crux joined
|
|||
perl6fun | I would love to see perl 6 documentation in readthedocs format | 14:08 | |
RabidGravy | (still haven't worked out how to enter unicode characters directly into xchat) | ||
perl6fun, simple matter of making the appropriate pod renderer | 14:09 | ||
I'm sure you'll have fun making it ;-) | |||
perl6fun | RabidGravy where can I find the help for that? I would love to do that :-) | ||
PerlJam | huh. NativeCall is quite different (bigger) from the last time I looked at it. | 14:10 | |
:n | |||
oops | |||
FROGGS++ | 14:11 | ||
jnthn | novapatch: Don't suppose you're about for a Unicode question? | 14:12 | |
(Or anyone else who knows a good amount about normalization.) | 14:13 | ||
pmurias | perl6fun: re use in production, I don't think there will be a hard date line between ready and not ready | ||
ely-se | I know a guy who does, but he isn't on IRC. | ||
mrf | jnthn: Is there any way to make Grammar::Tracer show the string its attempting to match against the rule? | 14:14 | |
jnthn | mrf: iirc it only shows the things it actually matched | 14:15 | |
Don't think there's an option to do otherwise | |||
mrf | jnthn: damn. | ||
jnthn | You may be able to figure out where it is from looking at what was recently matched | 14:16 | |
14:17
sufrostico left
|
|||
RabidGravy | perl6fun, probably a good place to start would be the code in github.com/perl6/doc which has the bits that render it as HTML | 14:17 | |
mrf | jnthn: Yeah. I think the error is my lack of understanding on how grammars actually work on text | ||
14:19
sufrostico joined,
fildon joined
14:25
diana_olhovik_ left
|
|||
mrf | Is there any way to make a token match greedy. | 14:27 | |
perl6fun | RabidGravy Yeah I went through that | ||
14:27
CJKinni__ joined
14:28
diana_olhovik joined
|
|||
jnthn | mrf: :!r maybe | 14:28 | |
mrf: Well, wait | |||
mrf | so token foo { [<[ab>] | <[ab]>} on 'aaa' would all be consumed in the first capture | ||
jnthn | mrf: It is greedy, do you mean "and backtrack2? | ||
mrf | assuming some *'s in there | 14:29 | |
perl6fun | jnthn I want to have a good reading on regex "Grammar" of perl 6, I heard is a big thing. I want to have a good reading. Can you point to some resources or video? | ||
mrf | jnthn: I don't know. Maybe. It might need to use regex I suppose. | ||
jnthn | mrf: The thing you jsut wrote looks malformed? ] in a wrong place? | 14:30 | |
14:31
CJKinni_ left,
pollei joined
|
|||
jnthn | perl6fun: doc.perl6.org has some tutorials; jnthn.net/papers/2014-fosdem-perl6-today.pdf has a walkthrough of building up a grammar | 14:31 | |
mrf | m: grammar G {token foo { [ <[ab]>* | <[ab]>* ] } }; G.parse('aaa', :rule<foo>).say; | ||
camelia | rakudo-moar 3cc195: OUTPUT«「aaa」» | ||
mrf | m: grammar G {token foo { [ <[ab]>* | <[ab]>* ] } }; G.parse('aaa', :rule<foo>).perl.say; | ||
jnthn | perl6fun: There's a video of that FOSDEM talk I think...I don't have a link handy | ||
camelia | rakudo-moar 3cc195: OUTPUT«Match.new(ast => Any, list => (), hash => Map.new(), orig => "aaa", to => 3, from => 0)» | ||
dalek | kudo/nom: 0cdb974 | lizmat++ | src/core/Str.pm: Make Str.split on strings a bit faster - about 2x faster for specific limit case - if no limit, 10x faster for pull-one, 15x faster for push-all case |
14:32 | |
14:32
CJKinni__ left
|
|||
jnthn | mrf: That seems to be matching correctly, but I don't get why you have two identical things in the alternation :) | 14:33 | |
mrf | jnthn: for example. The example I am working on is a with a grammar for RFC5234. which has "token repeat { <DIGIT>* | [<DIGIT> '*' <DIGIT>] }" and "token repetition { <repeat>? <element> }" the string "1*1" should get all consumed by the repeat capture but it instead only captures "1" | 14:35 | |
PerlJam | mrf: looks like a job for % (but that's orthogonal to your issue) | 14:36 | |
rarara_ | lizmat++ | ||
14:36
llfourn left
|
|||
mrf | PerlJam: yes. I am mostly copying the rfcs ABNF then I will perl6ify later | 14:36 | |
rarara_ | To put myself under public ridicule, this is my first Perl6 script, AKA how-to-work-around-things-u-dont-understand : gist.github.com/anonymous/db7f9dcb00f4dd817ea1 | 14:37 | |
14:37
tokuhiro_ joined
|
|||
rarara_ | it works | 14:37 | |
mrf | jnthn: tests for the repeat token work fine but the repetition finds that 1 matches the repeat so throws the *1 into the element. Or so it seems. | 14:38 | |
14:38
ely-se left
|
|||
moritz | rarara_: is there a reason why you avoid array variables? | 14:40 | |
PerlJam | m: grammar G { token repeat { \d* | [ \d '*' \d ] }; token element { .* }; token TOP { <repeat>? <element> } }; G.parse("1*1"); | ||
camelia | ( no output ) | ||
PerlJam | m: grammar G { token repeat { \d* | [ \d '*' \d ] }; token element { .* }; token TOP { <repeat>? <element> } }; say G.parse("1*1"); | ||
camelia | rakudo-moar 3cc195: OUTPUT«「1*1」 repeat => 「1*1」 element => 「」» | ||
moritz | rarara_: also, note($string) is a bit nicer to write than $*ERR.say($string) | 14:41 | |
mrf | PerlJam: No I am confused. We go back and check my grammar I think? | ||
s/We/will/ | |||
moritz | PerlJam: there's usually no reason to put a ? quantifer after a regex that matches the empty string, like token repeat does | ||
rarara_ | moritz: no idea why array variables are there at all! | 14:42 | |
14:42
mattn_jp_ joined
|
|||
rarara_ | in perl5 you use them because they are the default | 14:42 | |
PerlJam | moritz: i'm just parroting mrf's grammar | ||
mrf | moritz: I suspect they are aware but were helping debug my exampl | ||
rarara_ | you have even a sigil for tat | ||
moritz | rarara_: well, one reason is documentation; instead of $head-array you can write @head, and you still know it's an array | 14:43 | |
PerlJam | mrf: If you show your grammar + input, maybe I or someone else can spot something? | ||
mrf | PerlJam: I will see if I can figure out this gist malarky | 14:44 | |
moritz | rarara_: another is that you can iterate over it without any ugly | prefix, so just "for @head -> $a { ... }" | ||
rarara_ | this explains things a bit :) | ||
14:46
perl6fun left
|
|||
mrf | PerlJam: gist.github.com/ungrim97/7c0d17e1846cd002377d | 14:48 | |
14:51
khw joined
14:54
ely-se joined
14:55
mattn_jp_ left
|
|||
PerlJam | mrf: so ... that code works exactly as I expect (once I remove the whitespace that your grammar does not match) | 14:57 | |
mrf | FFS. PerlJam++++++ Thank you I am apparently and ejit | 14:58 | |
14:58
sufrostico left
|
|||
mrf | PerlJam: I appologise for wasting you time | 14:59 | |
jnthn | novapatch: Don't worry; the issue was actually a bug in canonical composition where it accidentally missed looking for primary composites for starter/starter combinations. | 15:00 | |
15:02
llfourn joined
15:04
fildon left
|
|||
[Coke] | we have a scheduled date for the december release, it's ok to hand that out if someone is looking for a date, I think. | 15:05 | |
moritz | oh, the 24th happens to be a Thursday after the third Tuesday of a month :-) | ||
lizmat | cycling& | 15:06 | |
[Coke] | the 17th is the release date, not the 24th. | ||
(the 1st is a tuesday, so it's earlier than normal) | 15:07 | ||
moritz | oh | ||
[Coke] | perhaps we can simplify our release date logic after christmas. | 15:08 | |
dalek | href="https://perl6.org:">perl6.org: f120673 | (Nelo Onyiah)++ | source/compilers/index.html: Correct the links to Perlito The links in the page were not accurate: - www.perlito.org/ => *Server not found* error - perlcabal.org/~fglock/perlito6.html => redirected to perl6.org/ There also issues with the *Pugs* links but I don't know what those should be :) |
||
href="https://perl6.org:">perl6.org: 21c46af | moritz++ | source/compilers/index.html: Merge pull request #41 from j1n3l0/patch-1 Correct the links to Perlito |
|||
ast: a33a710 | jnthn++ | S05-mass/properties- (4 files): Fix tests for upcoming NFG semantic changes. We stick in a control char to force a grapheme extender to stand alone and so be available for matching in isolation. Note that these tests are rather contrived, since they pair together graphemes from multiple (natural) languages. Another possible change would have been to pick a non-extending character in place of the extending ones for the tests in question, but this change was the less effort. |
15:13 | ||
jnthn | Could whoever fixed the Buf.list/Blob.list to return a List, not an Array, please take a look at S32-str/pack.t which seems to need updates to match. | 15:16 | |
(Or anyone else with time) | 15:17 | ||
15:18
g4 left
|
|||
PerlJam | [Coke]: I think we should simplify the release date logic at some point; christmas sounds like a good pivot point for that. | 15:18 | |
15:18
andreoss joined
|
|||
andreoss | can i write something like proto token number { * { make +$/ } } ; ? | 15:20 | |
[Coke] | I vote: third Saturday of the month. more likely a volunteer can find time to do this on the weekend. | ||
andreoss | or i have to use Actions class here? | ||
PerlJam | andreoss: you can write that, but better would be a valid regex :) | 15:21 | |
andreoss | so i should something else indead of WhatEver? | ||
*should put | |||
PerlJam | andreoss: but, no you don't *need* an action class. you can sprinkle { make ... } through out your grammar | ||
andreoss: that's not a Whatever | 15:22 | ||
andreoss | i mean can i do make inside proto token? | ||
what is that? | |||
PerlJam | oh, I totally didn't see that it was proto | 15:23 | |
andreoss: I don't think there's a way to use an onlystar and other actions in a proto regex | 15:28 | ||
andreoss: I think you can only say proto token number {*} (and that's why it's called an "onlystar") | |||
15:29
ely-se left
|
|||
PerlJam | If you could do other actions, I'd expect it to be something like proto token number { {*} { ... } } But that feels dubious | 15:29 | |
dalek | ast: bd54140 | jnthn++ | S32-io/IO-Socket-INET. (2 files): Change unfortunate choice in socket tests. While 0xbeef and 0xbabe were cute hex codes to pick, it turns out they both are Hangul syllables, which under the improved NFG implementation form a single grapheme, thus breaking the tests. |
15:30 | |
15:31
pippo joined
|
|||
jnthn | Yeah, you can't do such things in a proto token/regex/rule, at least not in 6.c | 15:31 | |
pippo | o/ #perl6 | ||
jnthn | OK, I now have almost all of the NFG changes done, and I think I'm going to do a revision bump so they can get some testing in the wild | 15:32 | |
The only exception is that I didn't yet turn on \r\n becoming a single grapeheme 'cus it seems to break things rather impressively. | |||
masak | doing it on the proto level feels overly complex. usually the proto gets called by a non-proto rule, and the action could be done there. | ||
I won't say "it's bad to want that", but waiting for a convincing use case does not seem all that unreasonable. | 15:33 | ||
PerlJam | masak: I think andreoss is just trying to avoid writing { make +$/ } over and over again. | 15:34 | |
masak | it seems to me that in the token you'd have the *least* detailed information about what was actually captured in $/ | ||
jnthn | I suspect it will also cause some minor ecosystem fallout when I do, since "\r\n".chars will be 1, and .substr(*-2) eq "\r\n" will thus never work. OTOH, .chomp will do the Right Thing, and I hope most folks will be using that. :) | ||
masak | PerlJam: yeah. writing it over and over again in this case does not seem all that unreasonable to me. | ||
PerlJam: the only reason those are all the same is that Perl 6 happens to correctly numify them already. | |||
jnthn | masak: Also, it's not in any way clear that the $/ of the proto token is anythign to do with the $/ of the token you called, and it's not clear how we'd even talk about the $/ of the rule that was called. | 15:35 | |
masak | right. | ||
jnthn | And this'd complicate LTM a good bit too I suspect | ||
So yeah, we'd better *really* want it. | |||
PerlJam | yeah. | ||
masak | that's a good unpacking of what I vagely meant by "overly complex" :) | ||
15:36
tokuhiro_ left
|
|||
masak | basically, it's orders of magnitude easier to explain why it'd be a bad idea, than to implement it. :) | 15:36 | |
PerlJam | In general though, (if I can read andreoss' mind a little) grammars in practice seem to be less DRY than one would want. I imagine at some point we'll figure out how to make that better. Maybe via a module :) | 15:37 | |
dalek | p: ad7b8cb | jnthn++ | tools/build/MOAR_REVISION: Bump MOAR_REVISION for NFG improvements. |
||
masak | PerlJam: oh, I'm all for that. | ||
PerlJam: specifically, I feel I'm hitting interesting limits of grammars in my 007 work. | |||
PerlJam | oh really? | ||
masak | ya. | ||
moritz finds it much easier to write a simple grammar than one that generates good error messages on parse failures | 15:38 | ||
PerlJam | got an example? | ||
(masak) | |||
pippo | .tell azawawi Is there a way to tell Selenium::Webdriver::Firefox not to look for the prefs.json in the subdir it is executed from? | ||
yoleaux | pippo: I'll pass your message to azawawi. | 15:39 | |
masak | PerlJam: perhaps the clearest one is that we're planning to allow something like `{{{t @ Q::Trait}}}` (that's 007 syntax, but hopefully easy to read) | ||
PerlJam: when the parser sees such an unquote, it doesn't get the actual *trait* that goes there -- it gets a *promise* of a future trait, kind of like a parse-level parameter. | 15:40 | ||
moritz | and the trait influences the grammar? | ||
masak | PerlJam: and so the parser goes "OK, well if I get that hypothetical trait, then afterwards I'll be in *this* parsing state..." and continues on parsing. | ||
moritz: yes ^ | |||
PerlJam | and what happens if the promise is never fulfilled? | 15:41 | |
masak | you mean if no-one evaluates that quasi? | 15:42 | |
it's kind of like no-one evaluating a qq string. nothing of import happens. | |||
I imagine if someone tried to put a square literal in the round trait hole, they'd get a nice type error. | 15:43 | ||
PerlJam | I was thinking more of debugging in the presence of quasi, so that makes sense | ||
masak | m: class Q::Trait {}; class Q::Literal::Str {}; die X::TypeCheck.new(:operation<unquote>, :got(Q::Literal::Str), :expected(Q::Trait)) | 15:44 | |
camelia | rakudo-moar 3cc195: OUTPUT«Type check failed in unquote; expected Q::Trait but got Q::Literal::Str in block <unit> at /tmp/_mcnA98wYk:1» | ||
masak | PerlJam: I'd like parse errors that show where in the code things went wrong to show both a "before" and an "after" view wrt macro applications. | 15:45 | |
haven't tried out that idea in practice, but looking forward to it ;) | |||
PerlJam | It sounds nice from here :) | ||
masak | I can recommend github.com/masak/007/issues for some light reading about near-future 007 plans | 15:47 | |
(also planning to put together a bit of a roadmap soonish) | |||
dalek | kudo/nom: d138617 | jnthn++ | tools/build/NQP_REVISION: Bump to get improved NFG in MoarVM. This aligns our definition of "grapheme" with that of grapheme cluster in Unicode Annex #29. There is one exception: we don't treat \r\n as a single grapheme yet (we will, but need to further debug the fallout of doing so). The changes so far should hopefully cause little fallout in the ecosystem, aside from more correct semantics with the characters of various languages. The other notable changes is that we no longer produce synthetics for combining chars placed on control chars (so a combiner after a control char is now an isolated combiner). |
15:48 | |
RabidGravy | from the above it sounds like I may need to test some HTTP clients against that | 15:50 | |
masak | 'night, #perl6 | 15:51 | |
RabidGravy | toodlepip | ||
PerlJam | masak++ roadmap. Someone was asking me about the state of macros in P6 the other day and told them to ask you about it. Having a roadmap would help answer some of their questions I'm sure | ||
dalek | ast: 2906649 | jnthn++ | S15-nfg/grapheme-break.t: Fudge \r\n grapheme test. |
||
masak | well, it's a roadmap for *007*, a project whose purpose it is to inform Perl 6 macros by making all the interesting mistakes *quickly* in a toy project. so far that's working very well, as evidenced by the issue queue. | 15:52 | |
jnthn | RabidGravy: Please do; also again after the \r\n thing, though I'm hopeful it'll be mostly harmless | ||
masak | but it's important also to realize that once 007 has filled that role, *then* the real implementation work begins in Rakudo. | ||
really 'night | |||
PerlJam | good night masak | ||
jnthn | masak++ # understanding the importance of exploring/prototyping/building one to throw away | 15:53 | |
'night, masak | |||
dalek | kudo/nom: 300d5be | jnthn++ | t/spectest.data: Run S15-nfg/grapheme-break.t on Moar. |
15:54 | |
ast: a177726 | jnthn++ | S15-nfg/cgj.t: Unfudge some NFG tests that now pass. |
15:55 | ||
jnthn | 405 new passing tests :) | 15:56 | |
*newly | |||
RabidGravy | yay! | 15:58 | |
mrf | Hopefuly not another stupid mistake on my part but I appear to have a reproducable test that fails if I 'use Grammar::Tracer' in my grammar but passes without! | ||
psch | the reverse of #123452 | 15:59 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=123452 | ||
psch | mrf: as linked by synbot6, Grammar::Tracer can influence your grammar | 16:00 | |
dalek | kudo-star-daily: 2dae47f | coke++ | log/ (9 files): today (automated commit) |
||
rl6-roast-data: 3d7640c | coke++ | / (9 files): today (automated commit) |
|||
rl6-roast-data: 3b1afb1 | coke++ | / (9 files): today (automated commit) |
|||
psch | mrf: the ticket is rejected, but the pitfall still exists apparently | 16:01 | |
mrf | psch: will take a read. | ||
psch | mrf: as in, it's not rakudos fault, but Grammar::Tracer | ||
jnthn | Yes, Grammar::Tracer issue | 16:02 | |
jnthn really should look at it, but that applies to a lot of things :/ | |||
psch | jnthn: did you see the SEGV yesterday? | 16:03 | |
jnthn | m: say «நி กำ षि "\r\n"»».chars | ||
camelia | rakudo-moar 3cc195: OUTPUT«(2 2 2 2)» | ||
jnthn | psch: Yes, and hope it got RT'd 'cus I don't remember what it was :) | ||
mrf | Thats fair. Will see if I can golf my example into something more consise and add it to the ticket | 16:04 | |
psch | jnthn: no, i'll RT it | ||
jnthn | psch: Thanks | ||
mrf | * on Grammar::Tracer | ||
jnthn | The NFG stuff is taking all my concentration at the moment | ||
(Nearly there with that issue now) | |||
andreoss | can Grammar::Debugger have lexical effect? | 16:05 | |
jnthn | It does? | ||
(Only affects the grammars in the lexical scope where you use the module) | |||
psch | i'll make a general-ish ticket for the control exception stuff i suppose | 16:06 | |
andreoss | seems not working | ||
psch | as in, i have a suspicion that whatever makes moar SEGV is what allows it to handle loop CXs, which is why the handling is broken on jvm | 16:07 | |
16:07
raiph left
|
|||
andreoss | paste.debian.net/318742/ | 16:07 | |
jnthn | andreoss: It's a MOP module, so it works at compile time | 16:08 | |
andreoss: So it's the lexical scope the grammar itself is in that matters, not its usage | |||
RabidGravy | well it looks like HTTP::UserAgent doesn't have a problem with any of the changes | ||
jnthn | RabidGravy: \o/ | ||
andreoss: Guess what you want is a way to turn the tracing output on/off at runtime... | 16:09 | ||
RabidGravy | I suspected that as it actual does any searching for '\r\n' in a Buf before decoding it | ||
andreoss | yes | ||
jnthn | I don't think there's a way to do that | ||
Feel free to file a ticket | |||
(In the github issues) | |||
I can see lots of people seem to find Grammar::Tracer useful, so it's worth a bit of my time to do fixes/improvements :) | 16:10 | ||
ugexe | Grammar::Tracer++ jnthn++ | 16:11 | |
16:12
bacek left
|
|||
moritz | jnthn: it's my go-to solution for debugging grammars when I'm tired of inserting "{say "step 1.2.42"}" at all the places :-) | 16:15 | |
16:16
abraxxa left
|
|||
PerlJam | mine too | 16:17 | |
16:21
abraxxa joined
|
|||
dalek | rl6-roast-data: 254ebdc | coke++ | log/ (4 files): Archive old test logs |
16:22 | |
psch | ticketed as #126490 | ||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=126490 | ||
[Coke] | jvm: failing 1316 tests. moar:312; moar-nojit: 385 | 16:23 | |
new S32-str/pack.t tests failing everywhere, please fudge those. | |||
16:23
lucasb_ joined
|
|||
[Coke] | also: S03-operators/arith.t 151 - infix<!+> is not iffy enough; RT #73386 | 16:24 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...l?id=73386 | ||
16:25
Hor|zon left
16:26
bacek joined,
_mg_ joined
16:27
zengargoyle joined
|
|||
dalek | ast: b0cad93 | jnthn++ | S32-str/pack.t: Fix pack.t after return type changes. |
16:28 | |
16:28
pmurias_ joined
16:29
pippo left,
pkv joined
16:31
_mg_ left,
pmurias left
|
|||
lucasb_ | m: sub a::b { say 'hi' }; module a { b } | 16:32 | |
camelia | rakudo-moar 3cc195: OUTPUT«5===SORRY!5=== Error while compiling /tmp/u5kCzdWtuPUndeclared routine: b used at line 1» | ||
lucasb_ | ^^ Is this supposed to work? It seems a::b is treated as a simple name, not compound, so no namespace "a" is autovivified. | ||
perl -E 'sub a::b { say "hi" }; package a; b' #=> P5, outputs "hi" | |||
moritz | lucasb_: no, subroutine invocation with identifies is purely lexical | ||
[Coke] | colomon: rejected the Rat/Num ticket. | 16:33 | |
16:33
diana_olhovik left
16:34
brrt left
|
|||
[Coke] | RT: 1026; GLR: 5; NOM: 8; LTA: 86; WEIRD: 11; TESTS: 10; XMAS: 66 | 16:35 | |
lucasb_ | moritz: ok, thanks. Do you think 'sub a::b' should be valid or emit a warning? | 16:36 | |
m: say class { has $.a::b::c }.^methods | 16:37 | ||
camelia | rakudo-moar 3cc195: OUTPUT«(a::b::c)» | ||
lucasb_ | ^^ IMO, this should clearly be invalid. method names should be "simple", not compound | ||
uruwi | ab5stract_ Should I consider Terminal::Print stable? | 16:39 | |
[Coke] | psch: did you update roast with RT info for #126490 ? | ||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=126490 | ||
moritz | m: our sub a::b { 42 }; say a::b() | 16:43 | |
camelia | rakudo-moar 3cc195: OUTPUT«Could not find symbol '&b' in block <unit> at /tmp/Iy_qZ_tfVv:1Actually thrown at: in block <unit> at /tmp/Iy_qZ_tfVv:1» | ||
moritz | lucasb_: well, either it should work or throw a proper error | 16:44 | |
RabidGravy | uruwi you may need to define what you mean by stable | ||
psch | [Coke]: oh, no. i could fudge the jvm tests i guess, yeah | ||
[Coke]: we don't have a test that shows the SEGV on moar though, maybe that wants adding too... | |||
RabidGravy | with a lot of modules there is a good chance they may change in some regard before Perl 6 makes a final release | 16:45 | |
psch | ...why is S04-statments/redo.t a+x..? o.o | 16:46 | |
lucasb_ | m: sub a::b {}; say ::.keys.grep(/a/) | 16:47 | |
camelia | rakudo-moar 3cc195: OUTPUT«(&a::b)» | ||
lucasb_ | I don't fully understand what "::" is, but it seems that a::b is inserted in the "symbol table" as a whole, not splitted into subnames and inserted accordingly into namespaces. So, yes, either it should work or throw an error. | 16:48 | |
[Coke] | psch: please fudge the tests, yes. will help anyone else doing roast triage. | ||
uruwi | RabidGravy ab5tract_ developed enough for production use | 16:54 | |
dalek | osystem: a213f9d | PerlJam++ | META.list: Add HexDump::Tiny |
16:56 | |
lucasb_ | nothing is production stable in this world... in this life... This is a *journey* | ||
uruwi | That it's unlikely that a future build will break programs using it. | 16:57 | |
I have to leave pretty soon. | |||
RabidGravy | I would say the interface is unlikely to change, but what lucasb_ said | 16:59 | |
17:00
tokuhiro_ joined,
lostinfog joined
|
|||
RabidGravy | has IO::Path.watch changed or stopped working recently? | 17:00 | |
i.e. it appears that such as "react { whenever '/tmp'.IO.watch { .... } }' isn't doing anything when I create a file in /tmp | 17:02 | ||
jnthn | RabidGravy: I think somebody recently reported some oddity with /tmp and IO::Notification | 17:03 | |
RabidGravy: Does it work outside of /tmp? | 17:04 | ||
17:04
uruwi left
|
|||
dalek | ast: d3a7f93 | peschwa++ | S04-statements/label.t: Add test for #126490. |
17:08 | |
ast: f9f4522 | peschwa++ | S04-statements/ (4 files): JVM-fudge a few tests with common failure mode. |
|||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=126490 | ||
17:08
pmurias_ left
|
|||
RabidGravy | jnthn, it appears not | 17:15 | |
jnthn | ugh | 17:16 | |
We do have spectests for it | |||
So it's a bit odd it's regressed | |||
PerlJam | RabidGravy: what OS are you on, OOC? | ||
RabidGravy | that is "react { whenever '.'.IO.watch { say $_; } }" doesn't do anything if I change a file | ||
or add a file | |||
17:17
^elyse^ joined
|
|||
RabidGravy | PerlJam, Fedora 22 4.2.3-200.fc22.x86_64 | 17:17 | |
jnthn | RabidGravy: Ugh, that does work on Windows. | 17:18 | |
RabidGravy: So, platform-specific | |||
17:20
llfourn left
|
|||
PerlJam | (works on ubuntu too fwiw) | 17:21 | |
RabidGravy: also, I assume there's nothing weird about how the fs is mounted? | |||
17:22
kjs_ left
|
|||
dalek | p: 2ed0a13 | jnthn++ | src/QRegex/P6Regex/Actions.nqp: Temporary fix so \v can handle \r\n grapheme. We will be able to do better than this once the LTM NFAs are updated to better grok NFG. |
17:23 | |
p: e00d482 | jnthn++ | src/HLL/Compiler.nqp: Cope with NFG's \r\n semantics in lineof. |
|||
RabidGravy | PerlJam, nah, inasmuch as it hasn't changed since last time it worked | ||
^elyse^ | PerlGem | 17:24 | |
RabidGravy | it's implemented in libuv at the bottom isn't | ||
PerlJam | aye | 17:25 | |
well, afaik anyway | |||
ilmari | yes, moarvm/src/io/filewatchers.c | 17:36 | |
uses uv_fs_event_{init,start} | 17:37 | ||
WFM on Debian stable too | 17:39 | ||
works on tmpfs (/run/user/$uid) too | 17:40 | ||
diakopter | prof-m: say 33 | 17:41 | |
camelia | prof-m 3cc195: OUTPUT«33Writing profiler output to /tmp/mprof.html» | ||
.. Prof: p.p6c.org/18dda46 | |||
ilmari | it appears to consider creation and deletion to be renames | ||
17:41
raiph joined
|
|||
diakopter | does that still work with gists? | 17:41 | |
RabidGravy | I'm not precluding that this is some weird selinux thing | 17:42 | |
diakopter | prof-m: gist.github.com/anonymous/c3303e1f975c607ab2bb | 17:45 | |
camelia | prof-m 3cc195: OUTPUT«Usage: /tmp/Ee90k3wEGg <w> <h> <steps> Writing profiler output to /tmp/mprof.html» | ||
.. Prof: p.p6c.org/18ddb4c | |||
diakopter | prof-m: gist.github.com/anonymous/c3303e1f975c607ab2bb 10 10 20 | 17:46 | |
camelia | prof-m 3cc195: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ykVJ9B46SiConfusedat /tmp/ykVJ9B46Si:1------> 3https:7⏏5//gist.github.com/anonymous/c3303e1f975c expecting any of: colon pair» | ||
.. Prof: p.p6c.org/18ddb6a | |||
diakopter | hehehe | ||
RabidGravy | okay I may have ruled out an OS thing as I just run the self same code on the little computer <- there which is running the same kernel and everything | ||
17:47
rarara_ left
|
|||
RabidGravy | and worky | 17:47 | |
SooOOOOoo | |||
PerlJam | selinux on both? | ||
diakopter | moritz: can the gist version of evalbot accept parameters? | ||
17:47
ambs joined
|
|||
RabidGravy | yep | 17:48 | |
17:48
^elyse^ left
|
|||
RabidGravy | the only difference is that the other machine has a way older rakudo (i.e. 2015.09-412-g32d7b08 ) | 17:49 | |
so I'm gwine make me a new rakudo and see what happens | 17:50 | ||
moritz | diakopter: no | ||
17:51
tokuhiro_ left,
raiph left
|
|||
diakopter | *could XD | 17:51 | |
17:53
Actualeyes left
17:54
dakkar left
|
|||
moritz | diakopter: I'm against cramming too much sophistication into camelia; it's a an evalbot, not "Perl 6 as a service" | 17:54 | |
plus undocumented features that aren't documented tend to bitrot and/or be forgotten | 17:55 | ||
diakopter | :) | ||
moritz | in fact, prof-m was probably a mistake | ||
RabidGravy | yeah, I see it as a way of demonstrating code in public and/or replicating bugs | 17:56 | |
moritz | it was temping, and cool, but ultimately it's very seldomly used | ||
17:56
ambs left
|
|||
moritz | and of course a nightmare to debug when the scp step fails | 17:57 | |
17:59
andreoss left
18:02
espadrine left
|
|||
RabidGravy | Ooof "Stage parse : 170.759" okay the poor things only a "Intel(R) Celeron(R) CPU N2807 @ 1.58GHz" but nonetheless | 18:03 | |
18:04
abaugher left,
abaugher joined
18:06
kjs_ joined
|
|||
RabidGravy | okay that's very very strange a "2015.10-60-g300d5be" on the other machine *does* work | 18:07 | |
so, let's just rebuild it again on the laptop | |||
18:08
Calibellus joined
18:09
zakharyas left,
diana_olhovik_ joined
18:10
^elyse^ joined
|
|||
tony-o | is there a mechanism to make 'die' bubble up to the block a start { } was started in? | 18:14 | |
m: CATCH { default { "CAUGHT IN MAIN $_".say; } }; start { die 'died'; } | 18:15 | ||
camelia | ( no output ) | ||
moritz | tony-o: start { } returns a promise. If you access it's .result, and the block died, than accessing the .result also dies | ||
m: await start { die 42 } | |||
camelia | rakudo-moar 3cc195: OUTPUT«42 in block <unit> at /tmp/8E9nb4IG2Z:1» | ||
moritz | tony-o: as does "await" | ||
tony-o | moritz: i'm looking for a way to do flow control on a blocking socket, .poll won't tell me if there is anything to read (yet) and i don't have a way to kill the socket if nothing is read otherwise | 18:16 | |
moritz | tony-o: and you should handle all your promises (await them, which .result does implicitly) | ||
tony-o | so i want to do a start { sleep 1; die; }; $sock.recv; | ||
RabidGravy | okay, identical kernel with 2015.10-60-g300d5be on this machine doesn't work | 18:17 | |
18:17
tokuhiro_ joined,
llfourn joined,
raiph joined
|
|||
moritz | tony-o: can you .recv inside a thread? | 18:17 | |
18:18
zakharyas joined
|
|||
tony-o | moritz: no because the socket stuff doesn't work across thread | 18:19 | |
moritz | tony-o: if so, you could just do my $p = start { $sock.recv }; if $p.status === Planned { nothing to read } else { say $p.result } | ||
:( | |||
tony-o | the handles have to be copied to the thread when it's started and there was some issue jnthn can probably expand on where they didn't want to do that on moar yet :-( | ||
18:20
_mg_ joined
|
|||
moritz | tony-o: another idea would be to have a thread dedicated to reading, and fill a Supply or a Channel whenever a value is available | 18:20 | |
you can query a Channel in a non-blocking way | |||
18:21
ambs joined,
llfourn left
|
|||
tony-o | the .recv fails randomly unless it's in the same thread as the socket was created | 18:22 | |
18:22
karim32 joined
|
|||
karim32 | Can I debug Perl 6 applications the same I can python ones using pdb (pdb.set_trace()) or | 18:22 | |
ruby ones using pry (binding.pry). That is, setting a break point and moving step by step and being able to see the values of the variables. | |||
tony-o | karim32: check out: github.com/jnthn/rakudo-debugger/ | 18:23 | |
karim32 | is that the only one or are there any most popular libraries? | 18:25 | |
as well | |||
seems outdated | |||
RabidGravy | "outdated"? | ||
PerlJam | yeah, it was last updated like 1.5 months ago! It's *old* ;) | 18:26 | |
tony-o | moritz: i think i understand what you mean, i wonder if that can work with the way reads are happening. i'll give it a shot | 18:27 | |
MadcapJake | Is there an equivalent function for strings that acts like `index` but you can use a regex? | ||
karim32 | 2 years ago, no? | 18:28 | |
tony-o | MadcapJake: you can use a regex in index | ||
MadcapJake | oh :P docs say $needle is a `Str:D` | ||
18:28
leont joined
|
|||
psch | m: "foo bar baz".index(/bar/).say | 18:28 | |
camelia | rakudo-moar 3cc195: OUTPUT«Cannot call index(Str: Regex); none of these signatures match: (Cool:D $: Cool $needle, *%_) (Cool:D $: Cool $needle, Cool $pos, *%_) in block <unit> at /tmp/qVJWwvoiYV:1» | ||
karim32 | yeah, 2 months, you're right | ||
tony-o | karim32: that's when it was created | ||
m: "foo bar baz".match(/bar/).say; | 18:29 | ||
camelia | rakudo-moar 3cc195: OUTPUT«「bar」» | ||
psch | m: "foo bar baz".match(/bar/).from.say; | ||
camelia | rakudo-moar 3cc195: OUTPUT«4» | ||
karim32 | yeah, I know, I just saw "2" everywhere | ||
tony-o | m: "foo bar baz".match(/bar/).hash.say; | ||
camelia | rakudo-moar 3cc195: OUTPUT«Map.new()» | ||
karim32 | thx | ||
tony-o | m: "foo bar baz".match(/bar/).perl.say; | ||
camelia | rakudo-moar 3cc195: OUTPUT«Match.new(ast => Any, list => (), hash => Map.new(), orig => "foo bar baz", to => 7, from => 4)» | ||
tony-o | m: "foo bar baz".match(/'ba' [ 'z' | 'r' ]/).perl.say; | 18:30 | |
PerlJam | MadcapJake: $/.from is your best bet if you need the position of the match. | ||
camelia | rakudo-moar 3cc195: OUTPUT«Match.new(ast => Any, list => (), hash => Map.new(), orig => "foo bar baz", to => 7, from => 4)» | ||
karim32 | by they way, what's the news about Perl 6 release, what happened on Oct 9th (or 10th)? Will it be released by the end of this year for sure? | ||
tony-o | m: "foo bar baz".match(/'ba' [ 'z' || 'r' ]/).perl.say; | ||
camelia | rakudo-moar 3cc195: OUTPUT«Match.new(ast => Any, list => (), hash => Map.new(), orig => "foo bar baz", to => 7, from => 4)» | ||
MadcapJake | ok thanks! | 18:31 | |
18:31
kjs_ left
|
|||
[Coke] | karim32: nothing happened on the 9th or 10th that I know of. on the 22nd we released the beta compiler: www.nntp.perl.org/group/perl.perl6....11547.html | 18:32 | |
there is one more beta release next month, then christmas on the 17th of december or so | |||
karim32 | it's not known when the stable version 1.0 will be released? | 18:33 | |
[Coke] | ? | ||
"the 17th of december" | 18:34 | ||
PerlJam | karim32: "christmas" is the "stable version 1.0" version | ||
karim32 | I see. | ||
18:34
karim32 left
|
|||
[Coke] | please try out the beta release (2015.10) and provide feedback. | 18:35 | |
dalek | kudo/nom: 64ae8f1 | coke++ | docs/release_guide.pod: Note the v6.c release is December. |
18:36 | |
18:40
FROGGS joined
18:42
vendethiel joined
18:45
karim32 joined
|
|||
karim32 | I have a simple method | 18:45 | |
sub method1(:$a1, :$b1) { } | |||
How can I check in "method1" whether the argument(s) is(are) passed or not? That is, | |||
method1(a1 => 3) # a1 passed, b1 not | |||
moritz | karim32: often checking $a1.defined is good enough | ||
karim32: if not, you can do help with a nested signature | |||
karim32 | won't calling "b1" throw an exception in my case? | 18:46 | |
I mean, calling b1.defined | |||
moritz | m: sub f(*%named ( :$a1, :$b1 ) ) { say %named<b1>:exists }; f :b1(Mu) | ||
camelia | rakudo-moar 3cc195: OUTPUT«cannot stringify this in sub f at /tmp/Lyh_cD_Lcu:1 in block <unit> at /tmp/Lyh_cD_Lcu:1» | ||
moritz | karim32: no | 18:47 | |
m: sub f(:$a1, :$b1) { say $b1.defined }; f(a1 => 3) | |||
camelia | rakudo-moar 3cc195: OUTPUT«False» | ||
karim32 | ok, what's "you can do help with a nested signature "? | ||
PerlJam | karim32: you can make the named parameters required and then the compiler will check for you ;) | 18:48 | |
moritz | m: sub f(*%named ( :$a1, :$b1 ) ) { say %named<b1>:exists }; f b1 => Any | ||
camelia | rakudo-moar 3cc195: OUTPUT«True» | ||
moritz | karim32: ^^ see above | ||
there by checking that b1 exists in the %named hash, you know that a value was passed, even thoug it was a type object (and thus not .defined) | |||
gfldex | karim32: see: rosettacode.org/wiki/Undefined_values#Perl_6 | 18:49 | |
karim32 | tnx | ||
moritz | karim32: another option is to write separate multis | ||
karim32 | ok | ||
18:49
karim32 left
|
|||
moritz | m: multi f(:$a!) { say "a passed: $a" }; multi f(:$b!) { say "b passed: $b" }; f :a<x> | 18:49 | |
camelia | rakudo-moar 3cc195: OUTPUT«a passed: x» | ||
gfldex | m: sub foo(:$a){ say $a.VAR.WHAT; $a.VAR.defined }; foo; # $a is a container. The container is defined, it's content is not. | 18:51 | |
camelia | rakudo-moar 3cc195: OUTPUT«(Scalar)» | ||
gfldex | m: sub foo(:$a){ say $a.VAR.WHAT, $a.VAR.defined }; foo; # $a is a container. The container is defined, it's content is not. | ||
camelia | rakudo-moar 3cc195: OUTPUT«(Scalar)False» | ||
PerlJam | karim32 quit (unfortunately) | 18:53 | |
psch | j: my @a := (gather do for ^5 { take $_; last if $_ == 3 }).cache; say @a # golf for the UnwindException in j-roast relating to .match(:x) (and thus e.g. .comb as well) | ||
camelia | ( no output ) | ||
psch | assignment instead of binding works, leaving out the last also works | ||
thus probably at least somewhat related to #126940... | |||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=126940 | ||
psch | not sure why the UnwindException doesn't arrive through camelia though... | 18:54 | |
moritz | j: say 42 | 18:55 | |
camelia | rakudo-jvm 3cc195: OUTPUT«42» | ||
ugexe | sometimes the unwind exception turns into a bunch of permgen errors | ||
moritz | psch: iirc camelia uses the eval-server, which might catch it | ||
RabidGravy | right, I'm going to reboot this laptop to see if the surprisingly coincidental sepolicy update has anything to do with this | 18:57 | |
18:58
tokuhiro_ left
|
|||
psch | moritz: right, it does, and then prints it to the original STDERR | 19:01 | |
that fits with UnwindException being a ControlException, so we deal with it internally until we exit the CompUnit because the UWE doesn't go away and it sticks around | 19:02 | ||
in contrast to e.g. NPEs which straight up break out of the CompUnit via dieInternal | 19:03 | ||
not sure if we want the EvalServer to keep printing those kind of failure modes to the combined STD{OUT,ERR} it uses for eval-ish output | |||
as i see it that really only influences camelia - when running roast via evalserver it usually goes onto a terminal anyway | 19:04 | ||
19:07
RabidGravy left
|
|||
[Coke] | psch: I'm going to start fudging the remaining failing java tests. | 19:09 | |
(tonight, not right now) please let me know if any of those new tickets can be combined. | 19:10 | ||
psch | [Coke]: okay, i'll look over new tickets tomorrow and add whatever i can make sound coherent from my notes | 19:11 | |
[Coke] | Danke. We need to get the board clean on that again, I'd rather be working off tickets than failing test. | 19:12 | |
19:14
RabidGravy joined
|
|||
bartolin | [Coke], psch: the other day I looked at S32-list/squish.t: irclog.perlgeek.de/perl6/2015-10-24#i_11429176 | 19:14 | |
19:14
telex left
|
|||
bartolin | I guess there will be more tests failing for the same reason | 19:14 | |
RabidGravy | rest easy folks, the .watch works there was just something weird going on with the laptop, I suspect that they messsed up the selinux policy as there was another update rather quick on the heels of an earlier one | 19:16 | |
19:16
telex joined,
atweiden joined
|
|||
psch | bartolin: i saw something with lots of Mu.new in S03-metaops/hyper.t too, but that seems to work currently... | 19:16 | |
...i think, maybe i'm not running the right test, gotta verify when r-j finished building | 19:17 | ||
bartolin | my r-j is also rebuilding atm :-) | 19:18 | |
psch | bartolin: ah, the test is actually ".squish is nodal", so yeah.. | ||
j: say [[2, 3], [4, [5, 6]]]».squish | 19:19 | ||
camelia | rakudo-jvm 3cc195: OUTPUT«((2 3 Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new…» | ||
19:19
AlexDaniel joined,
gonz_ joined
|
|||
^elyse^ | How do interpreters like YARV, MoarVM, Lua etc deal with rooting of pointers the GC needs to know about? Calls to GC functions all over the place? | 19:19 | |
19:19
ambs left
|
|||
^elyse^ | i.e. the part that is not the JIT part | 19:20 | |
19:20
ambs joined
|
|||
^elyse^ | JIT knows about call stack layout, so that's not an issue. | 19:20 | |
MadcapJake | how do I turn a command-line argument into a string? I tried wrapping it in `~(...)` but I'm still getting this: "Use of uninitialized value <element> of type Any in string context" | 19:21 | |
wait, i think the problem is that i'm using `.words.map: ...` on a string, is that not allowed? | 19:22 | ||
[Coke] | m: "this is what".words.say | ||
camelia | rakudo-moar 3cc195: OUTPUT«(this is what)» | ||
psch | m: say "abc def ghi".words.map: &uc | ||
camelia | rakudo-moar 3cc195: OUTPUT«(ABC DEF GHI)» | ||
psch | m: .say for "abc def ghi".words.map: &uc | ||
camelia | rakudo-moar 3cc195: OUTPUT«ABCDEFGHI» | ||
moritz | ^elyse^: they typically don't use the OS stack for referencing GC'ed objects at all | 19:23 | |
gfldex | MadcapJake: see: design.perl6.org/S06.html#Declaring...subroutine | ||
moritz | ^elyse^: control flow typically happens on the heap in such VMs | ||
^elyse^ | oh ok | ||
MadcapJake | well i'm trying to run a function in the map and I am doing this: `"asd asd asd".words.map: translate(*)` | 19:24 | |
19:24
kjs_ joined
|
|||
MadcapJake | is that the wrong use of whatever symbol? | 19:24 | |
moritz | MadcapJake: that doesn't work. Use .words.map: &translate | ||
MadcapJake | ohh ok cool, thanks! | ||
TimToady | or *.&translate | ||
but &translate will probably do okay | 19:25 | ||
moritz | MadcapJake: in short, * doesn't do it's magic when it's in an argument list. Otherwise one couldn't pass a Whatever object anywhere | ||
MadcapJake | ok good to know! | 19:27 | |
psch | bartolin: S32-list/squish.t locally aborts in the first test with "expected Positional but got Seq", fwiw | ||
bartolin | oops, something in 0cdb974ecd seems to have broken the jvm build (around "?? $!todo = 0") | 19:29 | |
psch: were you able to build r-j on HEAD? | |||
psch | oh, no, didn't pull | 19:30 | |
bartolin | psch: wrt S32-list/squish.t -- I see that error as well ... (with a build from last night) | 19:32 | |
MadcapJake | i'm passing a string into a script and when i .say it, it's outputting `(Any)`. Here's how I'm running it: `perl6 script.p6 -e "hello world"` the first arg is captured as a string but the second is just an `(Any)`. | ||
psch | MadcapJake: there is only one argument? | 19:35 | |
19:36
raiph left
|
|||
gfldex | if perl6 is suppiled both with a script and -e '<your code here>', will it run MAIN? | 19:37 | |
psch | gfldex: if you run <perl6 -e 'code' $file> $file will be in $*ARGFILES, if you run <perl6 file -e 'code'>, -e will be an argument to file.MAIN | 19:38 | |
19:38
rarara_ joined
|
|||
psch | as in, the first case doesn't execute file, it executes the -e as perl6 code | 19:38 | |
19:40
rarara_ left,
rarara_ joined,
kjs_ left,
lucasb_ left
19:41
raiph joined
|
|||
bartolin | hmm, adding parenthesis lets r-j build: gist.github.com/usev6/8bd78b697a2e1367e381 | 19:41 | |
I wonder why this caused no problem with r-m | 19:42 | ||
psch | r: my $f; 1 < 0 ?? $f = 1 !! $f = 0 | ||
camelia | rakudo-{moar,jvm} 3cc195: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfilePrecedence of = is too loose to use inside ?? !!; please parenthesizeat /tmp/tmpfile:1------> 3my $f; 1 < 0 ?? $f7⏏5 = 1 !! $f = 0 expecting any of: infix i…» | ||
psch | r: my $f; 1 < 0  ?? $f = 1  !! $f = 0 | 19:43 | |
camelia | rakudo-{moar,jvm} 3cc195: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfilePrecedence of = is too loose to use inside ?? !!; please parenthesizeat /tmp/tmpfile:2------> 3 ?? $f7⏏5 = 1  expecting any of: infix infix stopper» | ||
psch | definitely curious | ||
i've already seen Perl6::Grammar-level things differing between r-j and r-m, but not like this | 19:44 | ||
19:45
raiph left
|
|||
timotimo stopped napping, reads backlog now | 19:48 | ||
19:52
_mg_ left
19:54
Begi1115 left,
tokuhiro_ joined
19:57
Begi1115 joined
19:58
tokuhiro_ left
|
|||
lizmat notices 2 test-files in spectest die when run under harness, but not when run directly | 20:00 | ||
20:02
zakharyas left
|
|||
hoelzro | lizmat: which two? is that based on the load the system's under? | 20:04 | |
lizmat | S32-array/pop.t and t/spec/S32-num/complex.t | 20:05 | |
load doesn't seem to matter, just whether they run under the harness or not | |||
aka, with "make" they die, with "perl6" they do not | 20:06 | ||
I'm also looking at a segfault trying to fix #126487 :-( | 20:07 | ||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=126487 | ||
psch | gosh this parsing difference in split is creepy | 20:08 | |
lizmat | psch: ?? | ||
psch | m: my $f; 1 < 0  ?? $f = 1  !! $f = 0 | ||
camelia | rakudo-moar 3cc195: OUTPUT«5===SORRY!5=== Error while compiling /tmp/XnwMVxI_K5Precedence of = is too loose to use inside ?? !!; please parenthesizeat /tmp/XnwMVxI_K5:2------> 3 ?? $f7⏏5 = 1  expecting any of: infix infix stopper» | ||
20:08
rarara_ left
|
|||
psch | lizmat: that's from core/Str.pm:910 | 20:09 | |
lizmat: r-m HEAD builds with it, but apparently shouldn't | |||
lizmat: r-j doesn't build with it, with the same error as camelia | |||
lizmat | aha... ok, lemme fix that | ||
bartolin | lizmat: S32-num/complex.t fails for me with 'PERL6LIB=lib perl6-m t/spec/S32-num/complex.t' | ||
lizmat: though somtimes it runs more than 100 tests, sometimes only a few | 20:10 | ||
psch | lizmat: well, the scary bit is that the difference happens in the first place... | ||
lizmat | psch: indeed | ||
20:10
kjs_ joined
|
|||
bartolin | lizmat: oh, once in a while it passes :-/ | 20:11 | |
psch | probably related to the fails-on-jvm-but-works-on-moar in S06-operator-overloading/sub.t... | ||
20:12
kjs_ left
|
|||
psch | r: sub circumfix:['@', '@'] { $^a.say }; @ 5 @ | 20:12 | |
camelia | rakudo-jvm 3cc195: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfileTwo terms in a rowat /tmp/tmpfile:1------> 3sub circumfix:['@', '@'] { $^a.say }; @7⏏5 5 @ expecting any of: infix infix stopper statement end …» | ||
..rakudo-moar 3cc195: OUTPUT«5» | |||
psch | vOv | ||
hoelzro | crazy | ||
lizmat | psch: running spectest now, will commit if ok(ish) | 20:13 | |
20:15
espadrine joined
|
|||
[Coke] | do we have a page somewhere summarizing all the various testing bits? | 20:16 | |
20:16
bacek left,
llfourn joined
|
|||
[Coke] | like my daily runs, the module testing ?colomon runs... | 20:16 | |
20:17
bacek joined
|
|||
jnthn | ^elyse^: You generally have a choice: scan the system stack for things that could be pointers and accept false positives (means you can't do things like moving collectors) or explicitly track things (which is what MoarVM does, though it's done with an inline static function and is so relatively cheap) | 20:17 | |
^elyse^ | ok | ||
colomon | oooo, just realized today was the first day my smoker’s made it through without messing up in the reporting stages in weeks. (Whoever fixed panda)++ | ||
jnthn | (Moar's collector moves objects, so it really needs to know.) | ||
dalek | kudo/nom: 078d813 | lizmat++ | src/core/Str.pm: Fix ternary thinko spotted by psch++ Odd thing is that the core setting build ok with this on Moar. But apparently not on the JVM. Hope this unbreaks the build there. |
20:19 | |
[Coke] | IWBNI if we had something that combined those, the old smolder parrot service, cpantesters... | ||
the build wasn't broken on the JVM, was it? | |||
lizmat | ah, sorry, perhaps only the test S06-operator-overloading/sub.t ? | 20:20 | |
20:20
kaare_ left
|
|||
[Coke] | the daily run ran today. | 20:21 | |
20:21
llfourn left
|
|||
[Coke] | ah. it broken since then, I guess. | 20:21 | |
bartolin | [Coke]: yeah, build was broken, see irclog.perlgeek.de/perl6/2015-10-29#i_11452793 | ||
lizmat | [Coke]: breakage was only on JVM, apparently | ||
[Coke] | rant: IWBNI I could reconfig and remake and if no config changes were needed, have it just do a normal make. | ||
hoelzro | [Coke]: we have github.com/perl6/infrastructure-doc | 20:22 | |
[Coke] | (rather than rebuild everything) | ||
hoelzro | but I don't think that includes what you're looking for | ||
so maybe it should | |||
20:22
darutoko left
|
|||
flussence | kind of off the wall question: suppose I wanted to make a quoting construct like «q{ }» or «rx{ }», where would I even start? | 20:22 | |
psch | flussence: i think your best bet is poking masak or helping with 007 | 20:24 | |
as a starting point | |||
because subs don't really do that | |||
moritz | flussence: I'd start by investigating slangs | ||
flussence: iirc FROGGS++ has written two or three slangs | 20:25 | ||
flussence | yeah, I'm looking through the specs and it keeps telling me "macros!"... | ||
moritz | not sure how powerful they are, and how deep you have to dig | ||
psch | oh, slangs are more on the "this works now" side, but they come with a lot more "understanding Perl6::Grammar" than macros would i think | 20:26 | |
but well, that's the trade off right there | |||
flussence | I guess whatever the answer is, it won't be as easy as "hey p6, here's my prefix letters gimme all those fancy quoting character pairs for free kthx" | 20:27 | |
20:28
TEttinger joined
|
|||
psch | flussence: well, the main catch is TTIAR | 20:29 | |
oh, no, i think i misassumed something there | |||
but yes, getting the quoting pairs for free currently should be workable with a slang, but it's some digging around | 20:30 | ||
[Coke] | r: say ?(42 but False) | 20:33 | |
camelia | rakudo-{moar,jvm} 3cc195: OUTPUT«False» | ||
[Coke] | r: my $value = 42 but False; say $?value; | ||
camelia | rakudo-{moar,jvm} 3cc195: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfileVariable '$?value' is not declared. Did you mean '$value'?at /tmp/tmpfile:1------> 3my $value = 42 but False; say 7⏏5$?value;» | ||
[Coke] | r: my $value = 42 but False; say ?$value; | ||
camelia | ( no output ) | ||
..rakudo-moar 3cc195: OUTPUT«False» | |||
20:35
_mg_ joined
|
|||
jnthn | m: BEGIN { %*LANG<MAIN> := %*LANG<MAIN> but role { token quote:sym<omg> { 'omg' {} <quibble(%*LANG<Quote>)> } }; %*LANG<MAIN-actions> := %*LANG<MAIN-actions> but role { method quote:sym<omg>(Mu $/) { $/.'!make'($/.hash.<quibble>.ast) } } }; say omg/wtf/ | 20:36 | |
camelia | rakudo-moar 3cc195: OUTPUT«wtf» | ||
20:36
sufrostico joined
|
|||
jnthn | flussence: It's hacky but something like ^ | 20:36 | |
dalek | ast: 7266412 | coke++ | integration/advent2010-day19.t: Fudge RT #126491 for JVM |
||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=126491 | ||
20:36
_mg_ left
20:37
kjs_ joined
|
|||
lizmat | m: use nqp; class A { has str $!a; method BUILD() { nqp::chars($!a) } }; A.new # tada | 20:38 | |
camelia | rakudo-moar 3cc195: OUTPUT«(signal SEGV)» | ||
lizmat | m: use nqp; my str $foo; say $foo | ||
camelia | rakudo-moar 3cc195: OUTPUT«» | ||
lizmat | I always thought that native strings initialized to the empty string ? | 20:39 | |
jnthn: ^^^ ?? | |||
jnthn | lizmat: In Rakudo I think we make that happen. | ||
In NQP maybe not | |||
lizmat | m: use nqp; my str $foo; say nqp::chars($foo) | ||
camelia | rakudo-moar 3cc195: OUTPUT«0» | ||
lizmat | apparently it only goes wrong with native string attributes ? | 20:40 | |
jnthn: this is rakudo, so bug? | |||
jnthn | lizmat: oh, mis-read... | 20:41 | |
Yeah, bug then | |||
lizmat | ok, will rakudobug it | 20:42 | |
jnthn | Thanks | ||
At least that should be an easy one to fix :) | |||
jnthn is tired and will continue with (and maybe complete) the rn -> 1 grapheme thingy tomorrow | 20:43 | ||
jdv79 | why is that a thing? crlf as two chars feels normal. | 20:44 | |
leont | It seems my harness does work on p6-j, it's just the eval-server bindings that fail for some unknown reason (haven't tested that path on moar, so odds are it's an issue in my code) | 20:45 | |
jnthn | jdv79: Because Unicode says it's one grapheme :) | ||
jdv79 | ok | 20:46 | |
AlexDaniel | m: say flip 6e-9; | ||
camelia | rakudo-moar 3cc195: OUTPUT«90-e6» | ||
[Coke] | m: say ~6e-9 | 20:47 | |
camelia | rakudo-moar 3cc195: OUTPUT«6e-09» | ||
jnthn | (And I'm pretty sure picking and choosing Unicode rules won't end well for us. :)) | ||
AlexDaniel | jnthn: ah, what a relief… I was already going to defend it :) | 20:50 | |
20:50
sufrostico left
|
|||
psch | leont: moar doesn't have an eval-server afaik | 20:50 | |
lizmat | #126492 has arrived in RT | 20:51 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=126492 | ||
leont | jnthn: you can always do the thing khw did (implement some part of Unicode no one has implemented before, and then discover that their specs are contradicting themselves, then having to argue with them because why admit you made a mistake) | 20:52 | |
[Coke] | r: use Test; is-deeply (produce *+*, 1..10), +«<1 3 6 10 15 21 28 36 45 55> | ||
camelia | rakudo-jvm 3cc195: OUTPUT«Type check failed in binding @a; expected Positional but got Seq in sub is-deeply at lib/Test.pm:422 in block <unit> at /tmp/tmpfile:1» | ||
..rakudo-moar 3cc195: OUTPUT«ok 1 - » | |||
leont | ;-) | ||
20:52
sufrostico joined
|
|||
[Coke] | psch, bartolin - is that the failure mode you were discussing earlier? | 20:52 | |
jnthn | leont: I thought I might be heading to such a situation today, but no, it was my bug. Phew. :) | 20:53 | |
20:53
raiph joined
|
|||
leont | psch: correct. I guess I should treat jvm as low priority anyway. | 20:53 | |
jnthn | leont: Which bit was it, ooc? | 20:54 | |
leont | Something about folding case and negative character groups | ||
psch | [Coke]: squish was what we talked about i think | ||
20:54
kjs_ left
|
|||
psch | j: say [[2, 3], [4, [5, 6]]].map: &squish # this one | 20:54 | |
camelia | rakudo-jvm 078d81: OUTPUT«(([2 3] Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.n…» | ||
leont | In fully folded mode, any negative character set containing an s would now suddenly also match the two characters ss, because of ß | 20:55 | |
This patch led to madness | |||
path | |||
lizmat | m: [[2, 3], [4, [5, 6]]].map: &say | ||
camelia | rakudo-moar 078d81: OUTPUT«[2 3][4 [5 6]]» | ||
leont | (well, not match, but you get the point) | 20:56 | |
jnthn | Such a patch probably would lead to madness too :P | 20:58 | |
lizmat | psch: what is that code supposed to do? | ||
bartolin | j: say squish("a", "b", "b", "a") # a bit simpler, even | ||
camelia | rakudo-jvm 078d81: OUTPUT«(a b a Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.ne…» | ||
lizmat | m: say [[2, 3], [4, [5, 6]]].squish | ||
camelia | rakudo-moar 078d81: OUTPUT«([2 3] [4 [5 6]])» | ||
lizmat | m: say squish("a", "b", "b", "a") | 20:59 | |
camelia | rakudo-moar 078d81: OUTPUT«(a b a)» | ||
lizmat | bartolin psch I think it's another ternary precedence issue | ||
AlexDaniel | m: printf '', :l'l; | ||
camelia | rakudo-moar 078d81: OUTPUT«Unexpected named parameter 'l'l' passed in block <unit> at /tmp/vPvUIHeS6Y:1» | ||
AlexDaniel | Hm, I don't really like how error messages are using single quotes | 21:00 | |
especially considering that variables can have ' in their names | |||
.oO( maybe that's the main problem ) |
|||
psch | lizmat: it's a test, from S03-metaops/hyper.t:443 | ||
bartolin | lizmat: oh! the other day I tried to debug that and found that somehow IterationEnd =:= $pulled did not match within 'push-exactly' (src/core/Iterator.pm) | 21:01 | |
psch | lizmat: well, not literally, but » instead of map does the same | ||
lizmat: oh, that could be i guess... i didn't look closely at it | |||
21:04
Oatmeal joined
|
|||
dalek | kudo/nom: 4e50aa2 | lizmat++ | src/core/Any-iterable-methods.pm: Fix precedence issue in squish |
21:04 | |
bartolin | lizmat++ | 21:05 | |
lizmat | still building jvm, not sure if that fixes it, though :-( | ||
jnthn | m: say «நி กำ षि "\r\n"»».chars | ||
camelia | rakudo-moar 078d81: OUTPUT«(1 1 1 2)» | ||
jnthn | 3 out of 4 :) | ||
lizmat | »» ?? | 21:06 | |
jnthn | m: say «நி กำ षि \r\n»».chars | ||
camelia | rakudo-moar 078d81: OUTPUT«(1 1 1)» | ||
lizmat | ah, ok | ||
jnthn | Oh, duh, not scarequotes :) | ||
lizmat: heh, yeah, I mighta chosen a different qqw form there :) | 21:07 | ||
(Just copied it from the RT) | |||
m: say "नि".chars | |||
camelia | rakudo-moar 078d81: OUTPUT«1» | ||
dalek | ast: cc9a364 | coke++ | S32-list/produce.t: Fudge RT #126493 for JVM |
21:08 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=126493 | ||
21:10
firstdayonthejob joined
|
|||
[Coke] | was 4e50aa2f18e6d915c278548dfd7962b7011e513b to fix an issue on the JVM? | 21:10 | |
jnthn | Anyways, 'night o/ | ||
21:10
diana_olhovik_ left
|
|||
[Coke] | night | 21:10 | |
psch | [Coke]: the actual issue is that it worked before on mvm, i think | 21:11 | |
[Coke]: but practically, yes | |||
lizmat | night jnthn | ||
[Coke] | anytime we change perl6 code that worked on mvm but didn't on jvm, it worries me. | 21:12 | |
lizmat | [Coke] hopefully so | ||
[Coke] | feels like we're missing an underlying issue somewhere. | ||
timotimo | so many lines of text today | ||
psch nods | |||
lizmat | [Coke]: agree | ||
psch | there's something underlying grammars that's weird | ||
21:13
sufrostico left
|
|||
psch | m: my $x; 0 ?? $x = 5 !! $x = 0; | 21:13 | |
camelia | rakudo-moar 078d81: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ni6cAuL8i7Precedence of = is too loose to use inside ?? !!; please parenthesizeat /tmp/ni6cAuL8i7:1------> 3my $x; 0 ?? $x7⏏5 = 5 !! $x = 0; expecting any of: infix infi…» | ||
psch | heh | 21:14 | |
TimToady guesses a bootstrapping issue | |||
21:15
raiph left
|
|||
bartolin | lizmat: I'm afraid 4e50aa2 does not fix the Mu.new issue | 21:15 | |
lizmat | ok, then I should probably revert that one | ||
bartolin | maybe you can wait for your build to finish and double check? | 21:16 | |
21:16
skids left
|
|||
psch | TimToady: we're still changing things relevant for ?? !! during CORE.setting compilation? | 21:16 | |
lizmat | bartolin: build finished and indeed not fixed :-( | 21:17 | |
TimToady | some exceptions don't exist till partway through, and I've had trouble calling note() sometimes | ||
psch | but shouldn't it still die and complain about "can't build exception object" or somesuch | ||
bartolin | psch: that was what the failing jvm build compained about | 21:18 | |
dalek | ast: 246b9ea | coke++ | integration/weird-errors.t: add test for RT #115326 |
||
ast: f95820a | coke++ | S03-operators/assign.t: merge two RTs |
|||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=115326 | ||
21:18
raiph joined
|
|||
TimToady | psch: unless it's in a try somewhere | 21:19 | |
21:19
kjs_ joined
21:21
geraud joined
|
|||
[Coke] | hurm. after lizmat's commit, I'm getting the "Type check failed in binding @a; expected Positional but got Seq" on squish now | 21:21 | |
and we have other things failing that way. | |||
#126493 | 21:22 | ||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=126493 | ||
[Coke] | -> | ||
bartolin | for the records: the jvm build failed like this: gist.github.com/usev6/9be71bd04ea7d34c9595 | 21:23 | |
21:23
dg left
|
|||
itz_stmuk | has anyone used gcc 5.1.1 successfully? | 21:24 | |
bartolin is very curious why moar had no problem with that | |||
TimToady | lizmat: 4e50aa2 looks like superstitious parens to me | 21:25 | |
=:= is chaining, which is tighter than || | |||
21:26
dg joined
|
|||
dalek | kudo/nom: 8fcc28f | lizmat++ | src/core/Any-iterable-methods.pm: Revert "Fix precedence issue in squish" This reverts commit 4e50aa2f18e6d915c278548dfd7962b7011e513b. Superstitious parens don't fix no JVM issues :-( |
21:27 | |
21:29
abelman joined,
diana_olhovik joined
21:33
zakharyas joined
21:38
diana_olhovik__ joined
|
|||
RabidGravy | itz_stmuk, yes | 21:38 | |
21:38
diana_olhovik left
21:39
JustThisGuy joined
|
|||
psch | hrm, this is really weird | 21:41 | |
perl6-m --setting=NULL still bails on assignment in ?? !! | |||
i mean, with 85de7fd2 reverted as well | 21:42 | ||
err, not 85de7fd2, 078d813a | |||
85de7fd2 is my local revert commit... :S | |||
JustThisGuy | Hi all! I'm putting together a intro presentation, and I was trying to translate the Perl 5 idiom "while (<>) {...}" to Perl 6. I found how to do this on perl6advent.wordpress.com/2011/12/...c-perl-6/. | 21:43 | |
21:44
Alina-malina left
|
|||
JustThisGuy | My program is "for lines() { .say }". It works file if I only specify one filename on the command line. If I specify 2 or more, it cats them all as it should, but hangs at the end. | 21:44 | |
s/file/fine/ | |||
21:45
Alina-malina joined
|
|||
lizmat | JustThisGuy: that feels like a bug then | 21:46 | |
gfldex | JustThisGuy: what does perl6 --version say and what OS do you use? | 21:47 | |
JustThisGuy | OK, thanks lizmat! Just wanted to make sure I wasn't doing something wrong. | ||
Linux Mint 17.2 and "2015.10-49-ga333147 built on MoarVM version 2015.10" | 21:48 | ||
gfldex | m: .say for lines | 21:49 | |
camelia | rakudo-moar 4e50aa: 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…» | ||
dalek | kudo/nom: 3b212a0 | lizmat++ | src/core/IO/Handle.pm: Fix for #126487 Should also handle cases where a word or whitespace would extend for more than one entire chunk. |
21:50 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=126487 | ||
JustThisGuy | OK, thanks for the help. I'm off to file a bug... | ||
lizmat | JustThisGuy: you know how to do that ? | 21:51 | |
just send an email to [email@hidden.address] | |||
21:51
FROGGS left
|
|||
JustThisGuy | Yeah, I did that before with "[BUG]" in the Subject. | 21:51 | |
lizmat | okidoki :-) | ||
JustThisGuy | bye! | 21:52 | |
lizmat | will have a look at it tomorrow: | ||
bye! | |||
21:52
JustThisGuy left
|
|||
lizmat gets an early night | 21:53 | ||
itz_stmuk | libuv in moar is 1.0.0? | ||
japhb | I count at least 5 different modules in the ecosystem (>1%!) that are HTTP/HTTPS clients: LWP::Simple, Net::HTTP, HTTP::UserAgent, HTTP::Client, and HTTP::Tinyish. Any guidance on which one to use? My main requirements are: solid HTTPS support, both GET and POST, and proper cookie and proxy handling. Probably in that order, too. | ||
yoleaux | 07:11Z <nine> japhb: the truth? I cargo culted .CREATE without thinking that much about it. I had a look at IterationBuffer.push, saw that it just does nqp::push and thought that if we cannot inline that, we have much bigger problems. So I rather avoided breaking encapsulation. | ||
07:14Z <nine> japhb: The good news is, that indeed, it does not matter all that much. Using nqp::push directly would be about 3 % faster. My guess is that once spesh did it's work, they're equal. | |||
itz_stmuk | (probably asking on the wrong channel I know) | ||
japhb | Thanks, nine++! | ||
flussence | japhb: I'd probably go with Net::Curl, that way the stability is Someone Else's Problem :) | 21:54 | |
japhb | flussence: *chuckle* OK, I guess that's 6 different modules then ... | 21:55 | |
Does it use the library via NativeCall, or shell out to the CLI client? | 21:56 | ||
flussence | NativeCall | ||
japhb | Excellent. OK, that's probably the best plan then. | ||
Hmmm, and I can actually make use of having SCP available too ... thanks for the pointer, flussence++ | 21:57 | ||
flussence | azawawi++ # writing the module in the first place | 21:58 | |
japhb | Yeah, I was about to say azawawi++ for just piles of modules. | 21:59 | |
22:00
rindolf left,
rindolf joined
22:01
_dolmen_ joined
|
|||
itz_stmuk | Net::Curl::Easy for the lazy as well :) | 22:01 | |
it even pasts at least one of the w3c broken ecoding tests | 22:02 | ||
22:03
abelman left,
firstdayonthejob left
|
|||
japhb | itz_stmuk: Broken encoding tests? | 22:07 | |
tony-o | moritz: just an FYI, the channel/supply thing runs in whatever thread the data was emitted from so that causes cross thread problems too | ||
22:07
firstdayonthejob joined
|
|||
tony-o | m: my $s = Supply.new; $s.tap: -> $r { $*THREAD.name.say; }; await Thread.start({ $s.emit("from thread"); }, :name<from thread>); $s.emit('from main'); | 22:08 | |
camelia | rakudo-moar 8fcc28: OUTPUT«from threadMust specify a Promise or Channel to await on (got a Thread) in block <unit> at /tmp/2BN_ZkGhag:1» | ||
tony-o | m: my $s = Supply.new; $s.tap: -> $r { $*THREAD.name.say; }; Thread.start({ $s.emit("from thread"); }, :name<from thread>); $s.emit('from main'); | 22:09 | |
camelia | rakudo-moar 8fcc28: OUTPUT«from threadInitial thread» | ||
itz_stmuk | github.com/azawawi/perl6-net-curl/...encoding.t | 22:13 | |
japhb: most of the pure perl 6 web client don't handle wrongly encoded web pages | |||
japhb: there are a number of such test pages on the w3c.org site | 22:14 | ||
22:14
diana_olhovik__ left
22:17
kid51 joined
|
|||
tony-o | i believe the one ugexe is working also handles that | 22:18 | |
22:20
tokuhiro_ joined,
tokuhiro_ left,
Zoffix left,
tokuhiro_ joined
|
|||
itz_stmuk | Net::HTTP? | 22:21 | |
22:25
bjz left
22:27
lostinfog left
|
|||
itz_stmuk | I don't see any decode logic | 22:32 | |
22:33
vendethiel left
|
|||
Skarsnik | is that at http level or at html level? | 22:34 | |
ugexe | i havent broke that part out from zef::net::http yet, so currently its $response.body.unpack('A*') heh | ||
22:37
zakharyas left
|
|||
itz_stmuk | www.w3.org/2006/11/mwbp-tests/ | 22:40 | |
22:44
kjs_ left
|
|||
ugexe | i have some code for guessing decoding from places other than the header github.com/ugexe/Perl6-MediaType/b...iaType.pm6 | 22:44 | |
once i got ot heuristics i said enough | 22:46 | ||
22:47
zengargoyle left
22:49
zengargoyle joined
22:52
Begi1115 left
|
|||
itz_stmuk | ah cool | 22:53 | |
22:59
lucasb joined
23:01
rindolf left
23:10
^elyse^ left
|
|||
lucasb | do I have to be logged on RT to avoid these "Possible cross-site request forgery" warnings? I don't remeber if I have a account there or not... | 23:19 | |
timotimo | Actually while the main characters do not have a subclass the Class Mastery XP they earn is basically wasted. It's a good idea to always set a subclass to the story characters. | 23:21 | |
lucasb | timotimo: hmm, interesting. but I didn't understand anything :) | 23:22 | |
timotimo | timotimo: cat walked over touchpad :) | 23:23 | |
23:32
kmel_ joined
23:38
Kmel__ joined
|
|||
lucasb | m: @*ARGS = '/dev/null' xx 2; .say for lines | 23:42 | |
camelia | rakudo-moar 3b212a: OUTPUT«Memory allocation failed; could not allocate 32768 bytes» | ||
23:42
Kmel__ left
|
|||
lucasb | ^^ it's this new ticket: for lines() Hangs on 2 or More Files #126494 | 23:42 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=126494 | ||
RabidGravy | tadzik, I've done a PR on JSON::Unmarshal if you get a minute | 23:44 | |
23:44
espadrine left
|
|||
tadzik | oh, sure | 23:48 | |
RabidGravy: thanks a lot :) | |||
23:52
RabidGravy left
23:54
sufrostico joined
23:56
lucasb left
23:58
bacek left
|