»ö« 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:13
_28_ria left
00:14
_28_ria joined
00:15
virtualsue left
00:18
adu joined
00:27
sufrostico joined
00:29
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
mspo | github.com/kostya/benchmarks#json <- missing :) | 00:29 | |
00:31
jnm_theMailman joined
00:37
leont left
00:38
adhoc joined
00:40
adu left
00:42
tokuhirom_ left
|
|||
itz_stmuk | a594769 has the Grammar::Debugger breakage but my laptop is about to die (as I am) | 00:46 | |
00:46
llfourn joined
00:47
telex left
|
|||
itz_stmuk | " handle junction on LHS of regex correctly | 00:47 | |
maybe that? | |||
zzz | |||
00:48
cognominal left,
telex joined,
cognominal joined
00:51
llfourn left
00:52
lichtkind left
01:04
adu joined
01:11
colomon left
01:13
jnm_theMailman left
01:17
eliasr left,
yeahnoob joined
01:19
tokuhiro_ joined
01:22
yeahnoob left,
yeahnoob joined
01:24
tokuhiro_ left
01:28
kalkin-_ joined
01:29
colomon joined
01:31
colomon left
01:32
kalkin-__ left
01:34
colomon joined
01:35
jnm_theMailman joined
01:36
sufrostico left
01:41
jnm_theMailman left
01:42
tokuhirom_ joined
01:45
raiph left
01:47
tokuhirom_ left
01:48
adu left
01:50
adu joined
01:51
dayangkun joined
|
|||
dj_goku | so I am using File::Find find function and the only way I have found to us in a for loop is with this: find(:dir<.>).list is that the correct/best way to do that? | 02:01 | |
s/to us/to use/ | 02:02 | ||
02:05
skids joined
02:07
raiph joined
02:09
jacoby_ joined
02:10
noganex_ joined,
_28_ria left,
_28_ria joined
02:12
noganex left
02:13
kid51 left,
jacoby left
02:14
_28_ria left,
_28_ria joined
02:15
tokuhiro_ joined
|
|||
[Coke] | we need info on perl6.org about how to report a bug. | 02:17 | |
02:20
chenryn joined,
_28_ria left
02:21
_28_ria joined
02:22
_28_ria left,
_28_ria joined
02:23
_28_ria left,
_28_ria joined
02:25
_28_ria left,
_28_ria joined,
_28_ria left
02:26
_28_ria joined
02:30
_28_ria left,
_28_ria joined,
_28_ria left
|
|||
dalek | kudo/nom: e303970 | coke++ | docs/announce/2015.10.md: Add a placeholder release announcement |
02:37 | |
02:39
adu left
02:42
colomon left
02:43
tokuhirom_ joined
02:44
y0rl3 joined,
y0rl3 left,
BenGoldberg left,
colomon joined
02:45
BenGoldberg joined
02:46
BenGoldberg left,
BenGoldberg joined
02:48
tokuhirom_ left
02:49
llfourn joined
02:51
BenGoldberg left
02:52
skids left
02:53
colomon left
02:54
llfourn left
02:57
colomon joined
02:58
AlexDaniel left
03:02
kaare_ joined
03:06
aindilis left,
aindilis joined
03:07
raiph left
03:12
SmokeMachine_ is now known as SmokeMachine
|
|||
dalek | roast: 2041303 | hoelzro++ | S17-procasync/kill.t: | 03:13 | |
roast: kill.t: Only test SIGINT | |||
roast: | |||
roast: SIGINT is available on all of our target operating systems, and it has | |||
roast: consistent semantics among them. We shouldn't try every signal | |||
03:13
dalek left,
dalek joined,
ChanServ sets mode: +v dalek
|
|||
hoelzro | hmm, what'd I do to kill dalek? | 03:14 | |
03:14
llfourn joined
|
|||
geekosaur | if the commit message is too long, dalek can get overenthusiastic about it and freenode boots it for flooding | 03:17 | |
hoelzro | ahhh | 03:18 | |
geekosaur | really, dalek just needs to insert a pause after each line starting around the 4th | 03:21 | |
most bots I've seen use a 1 second pause (or just truncate after the 3rd line) ; this may be overkill | 03:22 | ||
03:36
xpen joined
03:39
xpen left
|
|||
timotimo | varlogrant.blogspot.de/2015/10/over...ening.html - someone could have a quick look at this :) | 03:44 | |
03:46
Oatmeal joined
03:54
xpen joined
03:55
raiph joined,
xpen left
03:56
Zoffix joined
04:04
jacoby_ left
04:06
khw left
04:42
raiph left
|
|||
timotimo | perhaps it's just that .permutations wants to get the GLR treatment, because that custom recursion for permutation finding is 2x faster than .permutations | 04:43 | |
gist.github.com/timo/41ecb85a9fad659f6809 | 04:46 | ||
04:50
atweiden left
04:52
gonz_ left
04:57
gonz_ joined
05:00
aborazmeh left
05:19
davido_ joined,
[Sno] left
05:27
[Sno] joined
05:28
baest left
05:29
tokuhirom_ joined
05:33
baest joined,
spollei left,
tokuhirom_ left
05:42
[Sno] left
05:49
rurban joined
05:58
firstdayonthejob joined
06:04
simcop2387 left
06:08
diana_olhovik joined
|
|||
pink_mist | timotimo: well, calling subroutines in perl5 is notoriously slow, so any recursive algorithm will suffer ... try to unwind it into a loop instead perhaps? | 06:09 | |
timotimo: can't really say anything about the perl6 version, but that didn't seem to have been benchmarked anyway :P | 06:11 | ||
timotimo | i'm up again for a little bit | 06:12 | |
(as sleep isn't initiating) | |||
what do you mean "not benchmarked"? | |||
there's a timing at the bottom | |||
the two versions i put up there in the gist (one commented out, the other not) i let run to completion | 06:13 | ||
397.02user 1.21system 6:38.09elapsed 100%CPU (0avgtext+0avgdata 124428maxresident)k | |||
986.12user 1.32system 16:27.02elapsed 100%CPU (0avgtext+0avgdata 203812maxresident)k | |||
the first is the recursive version, the second is with permutations | |||
aand now with for ... -> $foo { &blah($foo) } replaced with .map(&blah) | 06:14 | ||
06:22
chenryn left
|
|||
pink_mist | timotimo: err, I /only/ looked on the blogpost | 06:24 | |
didn't even realise until just now that the gist was related :P | |||
06:25
n0xff left
|
|||
timotimo | oh | 06:30 | |
rarara_ | Algorithm::Permute::Nativecall :p | 06:32 | |
06:42
Ven joined
06:43
O47m341 joined
06:44
firstdayonthejob left
06:46
Oatmeal left
06:48
FROGGS joined
06:50
simcop2387 joined
06:56
murre left
07:03
xfix joined,
danstoner left
07:08
abraxxa joined
07:15
davido_ left
07:30
ely-se joined
07:33
maddingue joined,
maddingu1 joined
07:35
maddingue left,
maddingu1 left
07:36
maddingue joined
07:38
ShimmerFairy left
07:40
[Sno] joined
|
|||
llfourn | m: "pay 'foo'" | 07:43 | |
camelia | rakudo-moar e30397: OUTPUT«WARNINGS:Useless use of constant string "pay 'foo'" in sink context (line 1)» | ||
llfourn | m: "my $x = pay 'foo'" | 07:44 | |
camelia | rakudo-moar e30397: OUTPUT«5===SORRY!5=== Error while compiling /tmp/sRsvXivIIwVariable '$x' is not declaredat /tmp/sRsvXivIIw:1------> 3"my 7⏏5$x = pay 'foo'"» | ||
llfourn | ...anyway I was wondering if there is any way to get Perl 6 to give me error correction suggestions on method names like it does with subs | ||
07:45
araujo_ joined
|
|||
llfourn | if I do perl6 -e 'pay "foo"' => it says did you mean "say"? but if I do "foo".pay it doesn't give me a correction. | 07:45 | |
Ven | a tad harder, because of the dynamic nature (fallback, handles, MOP, etc) | ||
it couldn't be too clever is what I'm saying :) | |||
llfourn | Ven: Yep I see your point | 07:46 | |
07:46
darutoko joined
|
|||
pink_mist | m: my $x = pay 'foo'; # why did you wrap your code in " so it was interpreted as a single string instead of a statement? | 07:47 | |
camelia | rakudo-moar e30397: OUTPUT«5===SORRY!5=== Error while compiling /tmp/S_hAnJjbp5Undeclared routine: pay used at line 1. Did you mean 'say'?» | ||
llfourn | pink_mist: urgh right I was just using -e so...thanks! | ||
07:49
araujo left
07:51
ShimmerFairy joined
|
|||
cosimo | how do I address the PF_INET6 constant in IO::Socket::INET / PIO ? | 07:53 | |
m: use IO::Socket::INET; say 'PF_INET6=', PIO::PF_INET6; | 07:54 | ||
camelia | rakudo-moar e30397: OUTPUT«===SORRY!===Could not find IO::Socket::INET in any of: file#/home/camelia/.perl6/2015.09-442-ge303970/lib inst#/home/camelia/.perl6/2015.09-442-ge303970 file#/home/camelia/rakudo-inst-1/share/perl6/lib file#/home/camelia/rakudo-inst-1/sh…» | ||
moritz | urks | ||
my module PIO { | |||
not at all, I fear | |||
cosimo | no way to get it from there? | ||
moritz | need to patch rakudo first :( | 07:55 | |
cosimo | alright | ||
I'm trying to address all issues on LWP::Simple | |||
at least update them with current info | |||
moritz | cosimo: yes, I've seen a flood of issues updated on github. Very immpressive! | ||
cosimo++ | |||
m: PIO.PF_INET6 | |||
camelia | rakudo-moar e30397: OUTPUT«PIO is disallowed in restricted setting in sub restricted at src/RESTRICTED.setting:1 in method FALLBACK at src/RESTRICTED.setting:50 in any at gen/moar/m-Metamodel.nqp:2864 in any at gen/moar/m-Metamodel.nqp:1674 in block <unit> at /…» | ||
lizmat | m: my $a = ^10; for ^10 { say $a[$_] } | 07:56 | |
camelia | rakudo-moar e30397: OUTPUT«0123456789» | ||
lizmat | ^^^ always hits the AT-POS-SLOWPATH :-( | ||
07:57
kjs_ joined
|
|||
lizmat | which is weird, as we have Range have its own iterator ? | 07:57 | |
07:59
g4 joined
|
|||
cosimo | I used `perl Configure.pl --backends=jvm,moar'. At the end of the make/make install phase, perl6 points to the jvm backend. Any way to switch to moar, or do I need to rebuilt? | 08:01 | |
rebuild? | |||
08:02
kjs_ left
08:03
RabidGravy joined
08:04
Ven left
08:05
FROGGS left
08:06
Ven joined
08:07
eliasr joined,
kjs_ joined
|
|||
Ven | cosimo: use perl6-m | 08:07 | |
lizmat | .tell colomon is very-broken-combinations in List still needd ? | 08:09 | |
yoleaux | lizmat: I'll pass your message to colomon. | ||
cosimo | Ven: I don't seem to have any perl6-* binary? | 08:12 | |
Ven | cosimo: really? strange | 08:13 | |
cosimo | Ven: a find command showed me I indeed have them | ||
just not in $PATH | |||
08:14
espadrine_ joined
08:18
dakkar joined
08:20
chenryn joined
|
|||
timotimo | right, it'll be where you supplied --prefix= | 08:21 | |
08:25
chenryn left,
espadrine_ left
|
|||
lizmat | afk for a few hours& | 08:36 | |
08:37
kjs_ left
08:38
bjz joined
08:39
bjz left
08:52
Ven left
08:53
Ven joined
|
|||
El_Che | #perl6: pack your bags for Fosdem 2016: we're having a devroom Sunday 31th January | 08:58 | |
cosimo | nice | 08:59 | |
09:00
araujo_ left,
araujo joined,
araujo left,
araujo joined
09:08
espadrine_ joined
09:16
ely-se left
09:17
Ven left
09:20
woolfy joined
|
|||
woolfy | El-Che++ | 09:21 | |
09:22
Ven joined
09:24
kjs_ joined
|
|||
nine | Wow, after 16 years of programming in Perl, I now have the first case where I'm porting parts to C for performance improvements. | 09:24 | |
09:26
ely-se joined
|
|||
Ven | nine: good thing our ffi works nicely, then :) | 09:32 | |
09:36
edehont joined
|
|||
nine | Unfortunately this is in Perl 5. I don't even want to know how slow this code would be in Perl 6... | 09:42 | |
09:45
FROGGS joined
09:47
espadrine_ left
09:50
kjs_ left,
virtualsue joined
09:51
yeahnoob left
09:53
brrt joined
|
|||
brrt | \o | 09:54 | |
El_Che | woolfy: no. woolfie++ you mean | 09:55 | |
nine: that's a good exercise (and good to know) | 09:56 | ||
brrt | \o/ | ||
09:56
rindolf joined
|
|||
brrt | El_Che: is that a perl devroom or a perl6 devroom? | 09:56 | |
tokuhiro_ | d.hatena.ne.jp/sugyan/20151022/1445505412 | ||
brrt supposes a general perl devroom | 09:57 | ||
tokuhiro_ | Another Hello world in Perl6 | ||
m: ::('!{.(?'~^'.~!)~'~^')^.^^'~^'?!^?('~^'??)!{')('!?}}~~(!^~{~))(.{~('~^'))?^?.).(?.}?)().!~'~^'~!.?}?~.^.{?!)~}!).'~^'}!!.~(}(!?}~{!}).(('~^')^(^.(.)~?!.()!})?)') | |||
camelia | rakudo-moar e30397: OUTPUT«Hello, world!» | ||
09:57
spider-mario joined
|
|||
brrt | oh, wow | 09:57 | |
El_Che | brrt: a general perl devroom. | ||
brrt | cool | ||
we're one community, after all | 09:58 | ||
El_Che | and there is no way in hell we'll get 2 different devrooms | ||
I see the python 2.7 people starting a riot :) | |||
brrt | i don't see python people starting a riot | 09:59 | |
rubyists, maybe | |||
10:00
geekosaur left
|
|||
mrf | tokuhiro_: because if they're going to call the language linenoise anyway then why not prove it. | 10:01 | |
El_Che | no, actually, the atmosphere at Fosdem is pretty nice | 10:03 | |
no language wars | |||
I like it | |||
btyler | tokuhiro_: that is....that is amazing | 10:04 | |
10:07
espadrine_ joined
|
|||
mrf | If anyone has time I would be really interested in a deconstruction of what that is doing | 10:08 | |
10:12
telex left
10:14
telex joined
|
|||
dakkar | m: 'ab' ~^ 'AB' | 10:18 | |
camelia | rakudo-moar e30397: OUTPUT«WARNINGS:Useless use of "~^" in expression "'ab' ~^ 'AB'" in sink context (line 1)» | ||
dakkar | m: say 'ab' ~^ 'AB' | ||
camelia | rakudo-moar e30397: OUTPUT« » | ||
dakkar | m: say ord('b' ~^ 'B)' | ||
camelia | rakudo-moar e30397: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ROdRevHhA5Unable to parse expression in argument list; couldn't find final ')' at /tmp/ROdRevHhA5:1------> 3say ord('b' ~^ 'B)'7⏏5<EOL>» | ||
dakkar | m: say ord('b' ~^ 'B') | ||
camelia | rakudo-moar e30397: OUTPUT«32» | ||
dakkar | yep, that's the trick | ||
10:21
chenryn joined,
kjs_ joined
|
|||
woolfy | brrt: earlier this year, at FOSDEM, the Python people had a booth next to our Perl-booth. It was their 2nd year, our 7th (??) year. The complained that we had two tables and they had only one table. | 10:22 | |
Our two tables were completely covered with stuff: books, camels, wine, buttons, stickers, tuits, Camelia 3D-puzzles, brochures, pens etc etc. They had 3 books, one pile of t-shirts, and one small pile of stickers. Over 66% of their table was empty. | 10:23 | ||
But that was all. FOSDEM is friendly. | |||
Timbus | they needed the blank space | ||
brrt | camelia 3d puzzles? :-o | 10:25 | |
well, /me is looking forward to it | |||
10:25
chenryn left
10:26
Ven left
|
|||
itz_stmuk | I think the FAQ needs a Q "Why is Rakudo so slow?" and I'm trying to phrase something positive | 10:27 | |
draft at gist.github.com/stmuk/5f2f086733e084d5d829 | |||
I'd be grateful for suggestions | |||
10:27
FROGGS left
|
|||
llfourn | m: ('!{.(?' ~^'.~!)~' ~^')^.^^' ~^'?!^?(' ~^'??)!{').say; ('!?}}~~(!^~{~))(.{~('~^'))?^?.).(?.}?)().!~'~^'~!.?}?~.^.{?!)~}!).'~^'}!!.~(}(!?}~{!}).(('~^')^(^.(.)~?!.()!})?)').say | 10:27 | |
camelia | rakudo-moar e30397: OUTPUT«&EVAL"Hello, world!".say» | ||
lizmat | OMG | 10:28 | |
10:28
ely-se left
|
|||
nine | woolfy: you know how significant whitespace is in Python :) | 10:28 | |
llfourn worries about fun "puzzels" like this on irc with EVAL something dangerous | 10:29 | ||
10:29
ab6tract joined
|
|||
ab6tract | tokuhiro_: WOW :D | 10:29 | |
brrt | itz_stmuk: because perl6 is to awesome for the current generation of computers | 10:30 | |
:-P | |||
(that's not true, though. the real answer is 'we haven't gotten around to making it faster yet, but we know several good ways to do so' | |||
10:31
pmurias joined
|
|||
itz_stmuk | actually I remember emacs being quite unusable on late 80s UNIX systems and being banned by sysadmins and it's faster than the Java IDEs today :) | 10:31 | |
llfourn | we are trying to capture the market for people who like short breaks inbetween development | ||
itz_stmuk | has anyone examples of what is fast and isn't? I'm aware that empty loops are (or were) fast but that isn't that great :) | 10:32 | |
maybe creating objects | 10:33 | ||
10:33
ely-se joined
|
|||
brrt considers emacs to be a perfectly fine java ide | 10:34 | ||
10:34
karim joined
|
|||
karim | how can I create an array of arrays? and how to access it then? | 10:35 | |
brrt | do you want an array of arrays, or do you want a multidimensional array | 10:36 | |
gfldex | m: my @lol = []; @lol[2] = []; @lol[2][1] = 'item'; @lol.perl.say; | ||
camelia | rakudo-moar e30397: OUTPUT«[Any, Any, [Any, "item"]]» | ||
brrt | m: my @a; @a[1][2] = 4; say @a.perl; | ||
camelia | rakudo-moar e30397: OUTPUT«[Any, [Any, Any, 4]]» | ||
brrt | autovivification ftw | 10:37 | |
karim | array of array | ||
s | |||
is that it? | |||
llfourn | m: my $a = [ [ 1 ], ]; say $a; #notice the comma | ||
camelia | rakudo-moar e30397: OUTPUT«[[1]]» | ||
brrt | kind of, yes, karim | ||
karim | I mean, how can I declare a variable of this type? | ||
brrt | hmmm | ||
karim | @var1 - is just an array | ||
brrt | i'm not 100% familiar with that though | 10:38 | |
llfourn | m: my @a = [1],; say @a.perl; | ||
camelia | rakudo-moar e30397: OUTPUT«[[1],]» | ||
llfourn | m: my @a = [1]; say @a.perl; | ||
brrt | m: my Array[Array] @a; @a[1][2] = 3; sa @a.perl; | ||
camelia | rakudo-moar e30397: OUTPUT«[1]» | ||
rakudo-moar e30397: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_I9Us09foEUndeclared routine: sa used at line 1. Did you mean 'so'?» | |||
brrt | y | ||
m: my Array[Array] @a; @a[1][2] = 3; say @a.perl; | 10:39 | ||
camelia | rakudo-moar e30397: OUTPUT«Type check failed in assignment to @a; expected Array[Array] but got Array in block <unit> at /tmp/1JziUJxb_M:1» | ||
llfourn is confused by brrt | |||
RabidGravy | m: my Array @g = [['f'],]; say @g.perl; | ||
camelia | rakudo-moar e30397: OUTPUT«Array[Array].new($["f"])» | ||
llfourn | brrt: that's an array of array of arrays :S? | ||
brrt | yeah, i was wrong | ||
huh, that's actually cooler than i had thought | 10:40 | ||
gfldex | karim: see design.perl6.org/S09.html#Multidime...nal_arrays | 10:41 | |
brrt | m: my Array[Array] $x; say $x.perl; | ||
camelia | rakudo-moar e30397: OUTPUT«Array[Array]» | ||
brrt | m: my Array[Array] $x; $x[1][2] = 0; say $x.perl; | ||
camelia | rakudo-moar e30397: OUTPUT«Type check failed in assignment to $x; expected Array[Array] but got Array in block <unit> at /tmp/JWSXZYZNzj:1» | ||
brrt | m: my Array[Array] $x .= new; say $x.perl; | 10:42 | |
camelia | rakudo-moar e30397: OUTPUT«Array[Array].new()» | ||
brrt | m: my Array[Array] $x .= new; $x[1][2] = 0; say $x.perl; | ||
camelia | rakudo-moar e30397: OUTPUT«Cannot call postcircumfix:<[ ]>(NQPMu, Int, Int); none of these signatures match: (\SELF, Any:U $type, |c is raw) (\SELF, int $pos) (\SELF, int $pos, Mu \assignee) (\SELF, int $pos, Mu :$BIND! is raw) (\SELF, int $pos, :$SINK!…» | ||
10:42
FROGGS joined
|
|||
brrt | aargh | 10:42 | |
ab6tract | brrt: I didn't think that typed arrays were truly supported in that way yet? | 10:45 | |
10:45
ab6tract left
|
|||
brrt | possibly | 10:45 | |
10:46
karim left,
karim joined
|
|||
woolfy | nine++ Python whitespace... :-) | 10:50 | |
DrForr | woolfy: FOSDEM talks coming later today. | 10:51 | |
woolfy | DrForr++ | ||
10:51
Celelibi left
|
|||
itz_stmuk | DrForr: is it January already? | 10:52 | |
DrForr checks with Doc Brown. | |||
10:54
Celelibi joined
|
|||
DrForr | Already giving them at Cluj.pm, may as well go for it. Plus I'll *definitely* be on the list to attend this way :) | 10:56 | |
(plus by then I won't have to do my Dr. House impression.) | 10:58 | ||
10:59
skids joined
11:00
karim left
11:03
TEttinger left
11:05
chenryn joined
11:07
weihan joined,
dayangkun left
|
|||
El_Che | DrForr: coming back to Fosdem? That's great | 11:08 | |
DrForr | Wouldn't miss it, though I'm still going to beg for a few more days 'round it. | 11:09 | |
El_Che | DrForr++ | ||
DrForr | Need to make a more exhaustive evaluation of the chocolate options :) | 11:10 | |
El_Che | About woolfy booth: by far the greatest of all the conference. True story each year | ||
DrForr | And heaviest :) | ||
woolfy | I'm still carrying most of the stuff anyway! | ||
El_Che | DrForr: I've got some extra muscle after a few years :) | 11:11 | |
woolfy | And I already have a nice surprise in the making. Secret secret. | ||
El_Che | woolfy: you're 2 heads bigger than DrForr and me : | ||
:) | |||
woolfy | :-) | ||
In case anybody feels some pressure to also send me a talk proposal: that would be very welcome. wendyga.wordpress.com/2015/10/08/f...-speakers/ | 11:12 | ||
pmurias | itz_stmuk: re "Why is Rakudo slow?", I think it will be hard produce a good answer to that | 11:15 | |
itz_stmuk: in most Perl 6 implementations it has always been "because it's no fast yet" | |||
brrt | yeah, that is the true answer | 11:16 | |
11:16
kjs_ left
|
|||
moritz | too many levels of indirection with too little optimization | 11:17 | |
pmurias | I think a deeper reason might be that it's complex enough that there is no simple way to do things fast, and instead it will require a bunch of special casing and smart optimalizations | ||
11:19
Ven joined
|
|||
pmurias | For really killer performance a few iterations might be required, just like the JavaScript engines have gone through a really complex evolution | 11:19 | |
brrt | and what moritz says, is also true | 11:22 | |
itz_stmuk | gist.github.com/stmuk/5f2f086733e084d5d829 | 11:23 | |
El_Che | the javascript example makes sense | ||
itz_stmuk | I added a very crude benchmark | ||
El_Che | they got eventually very fast | ||
Ven | El_Che: I'm not sure we have the same kind of money to throw at it, though :P | ||
pmurias | stealing designs is cheaper than inventing them | 11:24 | |
El_Che | wait until Oracle forks Perl6 :) | ||
moritz | Unbreakable Perl 6 | ||
(Enterprise) | |||
El_Che | Unbreakable Perl 6 - Java Enterprise Desktop Edition and Exadata Big Cloud Edition | 11:25 | |
11:25
kalkin-_ left
|
|||
itz_stmuk | I thought "Unbreakable" was a particularly clueless marketing name sure to attract the best^uworst of the open source/hacker community :) | 11:25 | |
El_Che | (yes, Sun and Oracle used to call everything Java, even non-Java projects) | 11:26 | |
itz_stmuk: you really don't get it | |||
itz_stmuk: they were talking about the license :) | |||
itz_stmuk | :) | 11:27 | |
hmm should I include a benchmark? any strong views against? I'm very wary of benchmarks | |||
brrt | well, what point do you want to make with it? | 11:28 | |
here's the thing: it's probably best to be upfront with it | |||
hmmm | 11:29 | ||
no wait | |||
itz_stmuk | "A crude benchmark (with all the usual caveats) shows at least in some situations Perl 6 can be marginally faster than Perl 5." | ||
brrt | forget i said that | ||
ruby wasn't upfront about their slowness | |||
11:29
rindolf left
|
|||
brrt | python isn't especially explicit about it | 11:29 | |
itz_stmuk | it will be a frequently asked question | ||
brrt | do you think so? | ||
11:30
tokuhirom_ joined
|
|||
brrt | i'd be surprised if i saw it on ruby-lang.org | 11:30 | |
itz_stmuk | I've no idea about the ruby community I know the perl community very well | ||
brrt | 'why is ruby so slow?' - 'because ruby is very flexible' | ||
hmmm | |||
i have no definitive ideas about it | |||
11:31
weihan left
|
|||
itz_stmuk | maybe it needs a marketing line about how cool the JIT will be | 11:32 | |
11:34
tokuhirom_ left
|
|||
pmurias | itz_stmuk: I wouldn't try to twist things around with a carefully choosen benchmarks | 11:35 | |
itz_stmuk: one problem with JITs is that it's not that obvious how coll they will end up | 11:36 | ||
itz_stmuk: there is a thin line between things being amazing and making stuff slower | 11:37 | ||
11:37
brrt left
|
|||
itz_stmuk | pmurias: that wasnt a carefully chosen benchmark | 11:37 | |
its doing common things | 11:38 | ||
removing the say would have prolly made p6 faster due to perl 5 buffering | 11:40 | ||
Zoffix | itz_stmuk, on my box that bench shows a very slight advantage in P5: gist.github.com/stmuk/5f2f086733e0...nt-1602277 | 11:42 | |
It's Perl5 5.20.. | |||
itz_stmuk | ok I will remove numbers and say common tasks at equivalent speed | 11:43 | |
some common tasks | |||
11:43
Ven left
|
|||
dalek | p: 66c3cd7 | (Pawel Murias)++ | src/QAST/Block.nqp: Print the blocktype for QAST::Block when dumping the AST. |
11:44 | |
p: 24e39b9 | (Pawel Murias)++ | src/vm/js/nqp-runtime/io.js: [js] make nqp::mkdir($file, $mode) do nothing if $file exists just like on moarvm |
|||
11:45
kid51 joined
|
|||
El_Che | I was positively surprised by perl6 for smaller command line applications. Startup wasn't slow. I had Moose from a few years ago in mind (I switched to Moo for that kind of apllications) | 11:46 | |
11:46
chenryn left
|
|||
itz_stmuk | I've seen people try and use Moose for CGI which is pretty insane | 11:46 | |
11:47
Ven joined
|
|||
El_Che | itz_stmuk: 90% of the occidental world is addicted to sugar (source: the internet) | 11:48 | |
RabidGravy | What perl6 is missing is a CGI libray ;-) | 11:52 | |
mrf | itz_stmuk: OOI do you know what the benchmark would be if you hypered the perl6 example. Might be worth showing how the new features can recover some of the lost time? | ||
mrf is unable to figure out how to hyper the example | 11:53 | ||
flussence | it seems like installed modules currently have a quadratic effect on startup time... the diff between "perl6 -e 1" and "perl6" (repl) is ~100ms on my server box with no modules installed... and 16 seconds on my laptop. | ||
11:53
kid51 left
|
|||
itz_stmuk | mrf: I was using directly equivalent code on purpose .. I'm sure it's possible to increase and decrease the speeds of both scripts | 11:54 | |
mrf | itz_stmuk: thats fair. | ||
llfourn | flussence: modules your not using shouldn't affect speed :S (apart frmo Linenoise) | ||
11:55
araujo_ joined
|
|||
flussence | yeah, I don't get it. my desktop takes 5 seconds to start a repl now and that's hardly a weak cpu. | 11:55 | |
RabidGravy | I thought there was a thing due to reading the manifest or something | 11:56 | |
11:56
Ven left,
ely-se left
|
|||
RabidGravy | or was that fixed | 11:56 | |
flussence | I thought that was fixed, guess not :( | ||
(or it unfixed itself) | |||
11:57
edehont left
|
|||
lizmat | flussence: fwiw, that''s exactly what we're trying to fix | 11:57 | |
flussence | oh, if it's being done I'll shut up then :) | ||
11:58
araujo left
12:01
ely-se joined
|
|||
lizmat | flussence: no, please don't shut up | 12:03 | |
just pointing out it's a known problem :-) | 12:04 | ||
12:13
kjs_ joined
|
|||
mrf | Is there a way of delegating to another grammar in a rule rather than a named rule. e.g 'rule TOP { <MY::Other::Grammar> <another-rule>}' | 12:15 | |
I specifically don't want to inherit of compose the other grammar. I wish to delegate to its normal parse. | |||
12:16
anonymouse_ joined
|
|||
RabidGravy | because there's nothing better than a 2014 chateau bottled Vouvray which you can't remember why you bought it, for lunch | 12:17 | |
12:20
Upasaka left
|
|||
mrf | I suppose I could do 'rule TOP { <MY::Other::Grammar::TOP> }' | 12:21 | |
12:21
Upasaka joined
|
|||
moritz | mrf: method TOP(|c) { OtherGrammer.TOP(|c) } | 12:22 | |
flussence | after a bit more poking around it seems it's "just" Linenoise causing the slowdown, installing other modules doesn't significantly add to the delay. that's useful to remember when I reinstall. | ||
mrf | moritz: do grammers always have to have a TOP rule ? | 12:23 | |
RabidGravy | usually | ||
if you don't have one you have to specify the name of the "top" rule to .parse() | |||
DrForr | You can specify that you want to run starting at a different rule during the parse, so I don't think it's *required* per se. | ||
moritz | mrf: you can all call YourGrammar.parse($string, :rule('startrule')) | 12:24 | |
mrf | ok but if you call .parse($string) it looks for a TOP ? | ||
RabidGravy | yep | ||
mrf | awesome. | ||
For context it seems normal for a document to be composed of several descrete parts each of which may have their own distinct grammar (HTTP and MIME) are good examples. and Combining these without namespace clashes seems useful. | 12:25 | ||
lizmat | flussence: could it be that because Linenoise is *not* precomped, that we have the delay ? | 12:27 | |
[Coke] | reminder, there's theoretically a birthday release of the compiler today | ||
mrf | so grammar HTTP::Message { rule TOP { <HTTP::StartLine::TOP> [<HTTP::Header::TOP>]+ \n <HTTP::Body::TOP>}} | ||
12:27
skids left
|
|||
mrf | flussence: Concure that installing Linenoise has caused a >2s delay for the repl | 12:28 | |
itz_stmuk | [Coke]: will there be cake and ice cream? | ||
lizmat | flussence: what if you do | ||
time perl6 -MLinenoise -e'' | |||
? | |||
DrForr | The cake... never mind. | 12:29 | |
dalek | kudo/nom: 084e462 | lizmat++ | src/core/List.pm: Nativy and GLRify List.combinations It's now about 25x faster |
12:30 | |
flussence | lizmat: on my good computer, 2.62s user time, compared to 3.30s for starting the repl. No -MLinenoise is 0.12s | ||
lizmat | yeah, so that's pure parsing of Linenoise that's the delay then | ||
flussence | (and I've just figured out how to manually precomp it with the *right* file extension, that helps a huge amount!) | 12:34 | |
llfourn | m: <one two three>.grep: { not 1 == 1 or not /./ } | 12:35 | |
camelia | rakudo-moar e30397: OUTPUT«Method 'match' not found for invocant of class 'Any' in block <unit> at /tmp/ZCNpjhUlSO:1» | ||
llfourn | ^^ bug yes? | ||
12:35
ely-se left
|
|||
lizmat | m: <one two three>.grep: { /./ } | 12:36 | |
camelia | ( no output ) | ||
lizmat | m: <one two three>.grep: { not /./ } | ||
camelia | rakudo-moar e30397: OUTPUT«Method 'match' not found for invocant of class 'Any' in block <unit> at /tmp/u67oVswSGh:1» | ||
lizmat | hmmm... | ||
m: <one two three>.grep: { !/./ } | |||
camelia | rakudo-moar e30397: OUTPUT«Method 'match' not found for invocant of class 'Any' in block <unit> at /tmp/tVujcsKWam:1» | ||
lizmat | m: <one two three>.grep: { not( /./ ) } | ||
camelia | rakudo-moar e30397: OUTPUT«Method 'match' not found for invocant of class 'Any' in block <unit> at /tmp/4qXRniSfWb:1» | ||
lizmat | <one two three>.grep: { not 1 == 1 or not m/./ } | 12:37 | |
m: <one two three>.grep: { not 1 == 1 or not m/./ } | |||
camelia | ( no output ) | ||
lizmat | that's exactly the reason I would not allow { // } to work | ||
12:37
rindolf joined
|
|||
lizmat | / is just a Regex | 12:38 | |
m: dd (//).WHAT | |||
camelia | rakudo-moar e30397: OUTPUT«5===SORRY!5=== Error while compiling /tmp/IeLy36zwQxNull regex not allowedat /tmp/IeLy36zwQx:1------> 3dd (//7⏏5).WHAT» | ||
lizmat | m: dd (/./).WHAT | ||
camelia | rakudo-moar e30397: OUTPUT«Regex $var = Regex» | ||
lizmat | m: dd (/./).Bool | ||
camelia | rakudo-moar e30397: OUTPUT«Method 'match' not found for invocant of class 'Any' in block <unit> at /tmp/kddF9WkA79:1» | ||
12:39
sufrostico joined,
virtualsue left
|
|||
lizmat | m: (/./).Bool # the problem golfed | 12:39 | |
camelia | rakudo-moar e30397: OUTPUT«Method 'match' not found for invocant of class 'Any' in block <unit> at /tmp/tsPKKhr7JS:1» | ||
lizmat | to make this work, I think we should Regex.Bool do a match on $_ | ||
llfourn | lizmat: hmm yep that explains everything I was completely stuck. The original thing I was trying to do was: | 12:41 | |
m: my $rx = /./; <one two three>.grep: { not $rx or so $rx } | |||
camelia | rakudo-moar e30397: OUTPUT«Method 'match' not found for invocant of class 'Any' in block <unit> at /tmp/Xmh9Jnqox4:1» | ||
llfourn | I was trying to see if the $rx was not defined with the first not and then if it was test it against $_ | 12:42 | |
ShimmerFairy | m: say (m/./).Bool | ||
camelia | rakudo-moar e30397: OUTPUT«Method 'match' not found for invocant of class 'Any' in block <unit> at /tmp/_pwXAMyKLn:1» | ||
ShimmerFairy | m: say (rx/./).Bool | ||
camelia | rakudo-moar e30397: OUTPUT«Method 'match' not found for invocant of class 'Any' in block <unit> at /tmp/1N_dsoKuSc:1» | ||
llfourn | m: my $rx = /./; <one two three>.grep: { not $rx or $_ ~~ $rx } # actually more like | ||
camelia | rakudo-moar e30397: OUTPUT«Method 'match' not found for invocant of class 'Any' in block <unit> at /tmp/U4PasoknDL:1» | ||
moritz | lizmat: it already does a match on $_. But $_ is Any, hence the error | ||
llfourn | m: my $rx = /./; <one two three>.grep: { not $rx.defined or $_ ~~ $rx } # actually more like | 12:43 | |
camelia | ( no output ) | ||
ShimmerFairy | The problem really is that !/./ doesn't do a match and negate, which I happen to think is reasonable :) | ||
llfourn | ^^ that is what I wanted :S | ||
moritz | m: $_ = (class MyFunnyClass {}); /./.Bool | ||
camelia | rakudo-moar e30397: OUTPUT«Method 'match' not found for invocant of class 'MyFunnyClass' in block <unit> at /tmp/8tj_BvwVrP:1» | ||
moritz | m: $_ = (class MyFunnyClass {}); !/./ | ||
camelia | rakudo-moar e30397: OUTPUT«WARNINGS:Useless use of "!" in expression "!/./" in sink context (line 1)Method 'match' not found for invocant of class 'Any' in block <unit> at /tmp/sK90YKEb4C:1» | ||
moritz | ShimmerFairy: no, the problem is that prefix:<!> seems to clobber $_ | 12:44 | |
ShimmerFairy | I still think trying to negate a regex doesn't make sense :) | ||
moritz | yes yes, we're used to your arguments by now :-) | ||
12:45
tokuhirom_ joined
12:46
ShimmerFairy left
12:47
virtualsue joined
12:49
rurban left
12:50
tokuhirom_ left
12:51
ely-se joined
12:54
rurban joined
|
|||
tadzik | today I learned about --b, which is like o/ but for "thumbs up" | 12:55 | |
12:55
anonymouse_ left
|
|||
flussence looked to see if that's in the default XCompose files but only found one for "o/" -> "🙌" | 12:59 | ||
dalek | c: 9dbc09c | (Steve Mynott)++ | doc/Language/faq.pod: [FAQ] Is Perl 6 fast enough for me |
13:01 | |
c: 6e7a9f3 | (Steve Mynott)++ | doc/Language/faq.pod: [FAQ] minor tweaks |
|||
jdv79 | it'd be cool if we had more optimizer type devs. are they hard to create? | 13:03 | |
13:03
sunnavy left
|
|||
tadzik | hm, perl6.org/compilers/features looks a bit outdated | 13:04 | |
moritz | well, you need a pretty solid understanding of large parts of the language AND the stack before you can really optimize | ||
that makes them hard to come by, yes | 13:05 | ||
nine | And if you have that kind of understanding, you're currently probably busy making Rakudo work right, rather than fast. | ||
13:05
zakharyas joined
13:06
araujo_ left,
araujo joined
|
|||
RabidGravy | right now, working is good. with working will come optimization inclined people | 13:06 | |
13:06
araujo left
|
|||
dalek | kudo/nom: eee3442 | lizmat++ | src/core/Any.pm: Oops, we don't want any flattening for dd |
13:08 | |
kudo/nom: 987cdee | lizmat++ | src/core/List.pm: Remove debug code (at least for the release) |
|||
lizmat | .tell colomon I've removed the code with 987cdeec38 | ||
yoleaux | lizmat: I'll pass your message to colomon. | ||
lizmat | m: my @a; @a[^5] = ^5; dd @a # sigh | 13:13 | |
camelia | rakudo-moar 084e46: OUTPUT«block <unit>» | ||
13:13
Ven joined
|
|||
lizmat | m: my @a; @a[^5] = ^5; say @a | 13:13 | |
camelia | rakudo-moar 084e46: OUTPUT«[]» | ||
lizmat | m: my @a = ^10; say @a[^15] # I would argue this is also wrong | 13:15 | |
camelia | rakudo-moar 084e46: OUTPUT«(0 1 2 3 4 5 6 7 8 9)» | ||
lizmat | there is no Whatever involved with [^15], so it should continue | ||
the fact that it doesn't, is what causes the @a[^5] = ^5 fail | |||
13:17
rurban left
13:18
Ven left
|
|||
rarara_ | itz_stmuk: I think it makes no sense to troll Perl 6 in the Perl 6 FAQ: the question "why is it slow?" does not really make sense, what would make sense would be "why it is slower than XXX in performing XXX thing?" | 13:18 | |
Zoffix | +1 | 13:20 | |
itz_stmuk | rarara_: that's not the question it's "Is Perl 6 fast enough for me?" | 13:21 | |
Zoffix | Ah :) | ||
itz_stmuk | rarara_: if you can suggest XXX type info please supply pull requests | ||
13:24
rurban joined
|
|||
[Coke] | lizmat: do you still have any blockers for the release today? | 13:26 | |
lizmat | looking at making array slices faster | 13:28 | |
but if you want to start releasing now, it will just have to wait post-release... | 13:29 | ||
itz_stmuk | is the Grammar::Debugger breakage mentioned in the scrollback the fault of that module? | ||
the recent regexp signature change one | |||
lizmat | someone had bisected a commit ? | 13:30 | |
itz_stmuk | I *think* it's fairly obvious the change | ||
FROGGS | there was a regex signature change? | 13:31 | |
itz_stmuk | the error suggests 5d83db | ||
13:31
loren joined
|
|||
FROGGS | ohh, that was me | 13:31 | |
itz_stmuk | ==> Testing Grammar::Debugger | 13:32 | |
===SORRY!=== | |||
Cannot call ACCEPTS(Regex: Mu); none of these signatures match: | |||
FROGGS | hmmmm | ||
itz_stmuk: can you no-paste a backtrace? | 13:34 | ||
ohh nvm | |||
I can reproduce | |||
lizmat | [Coke]: trying to a simple [^5] speedup, should know if ok in the next 20 mins or so | 13:35 | |
13:38
ely-se left
13:39
sunnavy joined
|
|||
FROGGS | itz_stmuk: I'll PR Grammar::Debugger... | 13:39 | |
13:41
araujo joined,
araujo left
|
|||
itz_stmuk | I guess it's the sort of module fragile to rakudo changes! | 13:41 | |
FROGGS | itz_stmuk: see: github.com/jnthn/grammar-debugger/pull/21 | 13:42 | |
itz_stmuk: aye | |||
13:42
ely-se joined
13:44
raiph joined
|
|||
lizmat | #76676 | 13:46 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...l?id=76676 | ||
lizmat | [Coke]: ok, forget it, seems we need clipping for slices after all :-( | ||
we just need to implement it better and that is going to be.... interesting | 13:47 | ||
jdv79 | i was trying to optimze some stuff but had a hard time determining the hotspots | 13:50 | |
are there any cool tools anyone uses or is it just trial and error and experience at this point? | |||
PerlJam | jdv79: and --profile | 13:51 | |
jdv79 | for instance, --profile, for a few things was essentially flat for a few | ||
death by a thousand cuts type of thing | 13:52 | ||
13:52
Sqirrel left
13:53
grondilu left,
geekosaur joined
13:59
tokuhirom_ joined
14:03
Ven joined
14:05
Sqirrel joined
14:06
Hotkeys left,
Hotkeys joined
14:07
ely-se left
14:10
khw joined
14:11
ely-se joined
14:12
araujo joined,
araujo left,
araujo joined
|
|||
rarara_ | I am just starting to learn perl 6, may I ask your opinion? which of the two version of a method would you think is more proper? gist.github.com/anonymous/d548488b1c3ad9abde3c (or if you have any other suggestions) | 14:13 | |
14:13
zakharyas left
|
|||
rarara_ | it is a boring task, just a style advice | 14:14 | |
dalek | ast: 4e63f72 | (Steve Mynott)++ | S32-num/rat.t: add test for RT #126391 - wrong div by 0 error |
||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=126391 | ||
PerlJam | rarara_: "more proper" is really a design decision that's up to you :) | ||
rarara_: though, I wonder why you're backwhacking your constants. That seems a little weird to me. | 14:15 | ||
rarara_ | PerlJam so that they are grouped | ||
PerlJam | grouped? | 14:16 | |
why not use an enum then? | |||
(though, I still don't understand how the \ in constant \foo implies some grouping) | |||
rarara_ | I didn't know you had enum :) This seems good. Regarding the \ it resembles more the Perl5 constants | 14:17 | |
you didn't type $ there | 14:18 | ||
pink_mist | because they were subroutines :P | ||
PerlJam | rarara_: you don't need a $ or a \ though in P6 | ||
rarara_: constant FOO = 7; is just fine | 14:19 | ||
rarara_ | true also | ||
PerlJam | (also, I'm not sure you need the := either :) | ||
pink_mist | well with the \ the := might have been needed? or am I overthinking things? :P | 14:20 | |
rarara_ | good to learn all this things! | ||
PerlJam | pink_mist: nah. | ||
rarara_ | pink_mist I checked: nop | ||
14:21
g4 left
|
|||
mrf | rarara_: I am not sure you need \FOO in p5 either. | 14:22 | |
PerlJam | afaik, constant initialization already happens at BEGIN time and since your assigning a literal, there should be no difference between binding and assignment | ||
s/your/you're/ | 14:23 | ||
14:25
pmurias_ joined
|
|||
pink_mist | mrf: no that was just that rarara_ didn't want to put $ on his constants, so he thought he had to use \ | 14:25 | |
(or maybe rarara_ is a she?) | 14:26 | ||
mrf | pink_mist: Constants in P5 are barewords (they are odd subs) not scalars. The \ in p5 creates a reference | ||
pink_mist | mrf: yes I know | 14:27 | |
mrf: but rarara_ thought he needed a \ in p6 | |||
rarara_ | mrf: pink_mist is right | ||
pink_mist | mrf: we've spent some time convincing him he doesn't | ||
14:27
Zoffix left
|
|||
mrf | ok. :) | 14:27 | |
rarara_ | I just wanted to avoid the $ in perl 6, which you don't need to | 14:28 | |
14:28
pmurias left,
Zoffix joined,
pmurias_ left
|
|||
lizmat | [Coke]: I have one optimization for array slice assignment (about 3x as fast) | 14:29 | |
[Coke]: still ok to commit that ? | |||
PerlJam | rarara_: actually, the answer to you original question is ... the first one is least Perlian, so I wouldn't do that one. :) | ||
rarara_: so perhaps the second one but with an enum instead of the constants | 14:30 | ||
14:30
virtualsue left
|
|||
gfldex | m: my $foo = 'foo'; my \bar = 'bar'; say "Without sigils you lose the ability to say $foo. However, you can still say {bar}."; | 14:32 | |
camelia | rakudo-moar 987cde: OUTPUT«Without sigils you lose the ability to say foo. However, you can still say bar.» | ||
rarara_ | PerlJam the second one with enum seems the best fit for this situation. There is no need to hide the user about the values of flags | ||
PerlJam | gfldex: good point. | ||
hoelzro | o/ #perl6 | ||
14:33
ely-se left
|
|||
PerlJam | rarara_: also, with an enum, you don't have to say "is export" so many times | 14:34 | |
RabidGravy | I've got an example of initialising an enum from some bit masks in one of my modules even, can't remember which one though | 14:35 | |
dalek | kudo/nom: 49fd9ff | lizmat++ | src/core/array_slice.pm: Make $foo[slice] = list about 3x as fast |
14:36 | |
rarara_ | I'm trying to search for that | 14:39 | |
RabidGravy | github.com/jonathanstowe/Audio-Snd...le/Info.pm for example, but I'm sure there's one that has some bit shifting involved | 14:41 | |
PerlJam | rarara_: see S12:1939 perhaps | ||
synbot6 | Link: design.perl6.org/S12.html#line_1939 | ||
14:45
tokuhiro_ left
|
|||
rarara_ | m: enum End( :File(0x00000000), :Little(0x10000000), :Big(0x20000000), :Cpu(0x30000000)); say End(Big).Int.base(16) | 14:46 | |
camelia | rakudo-moar 987cde: OUTPUT«20000000» | ||
14:46
ely-se joined
|
|||
rarara_ | m: enum End( :File(0x00000000), :Little(0x10000000), :Big(0x20000000), :Cpu(0x30000000)); say End(Big).base(16) | 14:46 | |
camelia | rakudo-moar 987cde: OUTPUT«20000000» | ||
FROGGS | m: enum End( :File(0x00000000), :Little(0x10000000), :Big(0x20000000), :Cpu(0x30000000)); say End(0x20000000) | 14:47 | |
camelia | rakudo-moar 987cde: OUTPUT«Big» | ||
ilmari | m: enum End( :File(0x00000000), :Little(0x10000000), :Big(0x20000000), :Cpu(0x30000000)); say Big.base(16) | ||
camelia | rakudo-moar 987cde: OUTPUT«20000000» | ||
PerlJam | ilmari++ FROGGS++ I was just about to do those! : ) | 14:48 | |
er, :) | |||
FROGGS | hehe | ||
:\ ) # unspace allowed | |||
itz_stmuk | t/spec/S17-supply/throttle.t fails for me on a mac | ||
14:49
sqirrel_ joined
|
|||
FROGGS | it fails on my box when my system is busy running a windows VM | 14:49 | |
moritz | .oO( hello, I'm a Mac. And I fail your spectests ) |
||
FROGGS | :P | ||
itz_stmuk | oops wrong screen session .. I meant linux | ||
:) | |||
rarara_ | Thanks | ||
14:50
Zoffix left,
ely-se left,
jnm_theMailman joined
|
|||
itz_stmuk | just trying nuke | 14:51 | |
14:53
FROGGS left,
jnm_theMailman_ joined
14:55
jnm_theMailman_ left
14:56
noganex joined,
dj_goku_ joined
|
|||
[Coke] | lizmat: I'm not getting to the release until after $dayjob. | 14:57 | |
14:57
jnm_theMailman left,
CurtisOvidPoe_ joined
|
|||
[Coke] | so, go to otwn. | 14:57 | |
*town | |||
14:57
ggoebel2 joined
|
|||
itz_stmuk | refactor all the things! | 14:57 | |
14:59
sqirrel_ left,
jdv79_ joined
15:00
xinming joined,
erxeto joined,
sergot_ joined,
diakopte1 joined,
BooK_ joined
15:01
mspo_ joined,
zakharyas joined,
sufrostico left
15:02
PotatoGim_ joined,
Ven left
15:03
kjs_ left,
ggherdov_ joined
15:04
timbunce_ joined,
mjgardner joined,
agentzh left,
edehont joined,
edehont left
15:05
n0tjack left
|
|||
hoelzro | itz_stmuk: throttle.t fails sometimes; it probably has a race condition or something | 15:06 | |
15:06
dalek left,
colomon left,
noganex_ left,
dj_goku left,
ggherdov left,
CurtisOvidPoe left,
mspo left,
sergot left,
synbot6 left,
BooK left,
lsm-desktop left,
xinming_ left,
ggoebel left,
[Tux] left,
Gardner left,
hobbified left,
samb1 left,
PotatoGim left,
jdv79 left,
diakopter left,
oha left,
erxeto_ left,
keix left,
isacloud left,
skarn left,
timbunce left,
CurtisOvidPoe_ is now known as CurtisOvidPoe,
mjgardner is now known as Gardner,
timbunce_ is now known as timbunce
15:07
jdv79_ is now known as jdv79
|
|||
itz_stmuk | ah | 15:08 | |
[Coke] | CurtisOvidPoe: hio. Find any good bugs today? | ||
CurtisOvidPoe | Haven’t have a chance today. Been grading Perl 5 tests all week. | 15:09 | |
PerlJam | Found any good candidates? | ||
lizmat | itz_stmuk: re t/spec/S17-supply/throttle.t , doesn't fail for me on a Mac | ||
PerlJam | I got the impression after your blog post that you were flooded with not-so-good applicants | ||
lizmat | but OTOH, maybe the timing tests are a bit too tight | ||
CurtisOvidPoe | And still trying to get ready for Amsterdam. I need to find a better example for the concurrency work since the examples I’ve created are now rakudobugs :) | ||
[Coke] | uhoh. and jnthn++'s on holiday this week. | 15:10 | |
all of the S17 tests are fiddly and need examining. :| | |||
lizmat | CurtisOvidPoe: do you have gists of the errors, or are they RT'd ? | ||
CurtisOvidPoe | PerlJam: yes, but it’s not a call we make until everyone finishes the process. | ||
[Coke] | Anyone has suggestions for more text on the birthday release, please read the placeholder release announcement and let me know. | 15:11 | |
lizmat | itz_stmuk: which test specifically fail ? | ||
15:11
isacloud joined
|
|||
CurtisOvidPoe | lizmat: one is simple. Setting the environment variable PERL5LIB to ‘lib’ causes ‘rakudobrew build panda’ to break. | 15:11 | |
[Coke] | lurkers: want to help out? write a perl 6 script that grabs the list of Perl Monger groups in json, and compares it to the list of rakudo tag names, and gives a list of unused PM groups to use for a release name. | ||
RabidGravy | :) | 15:12 | |
PerlJam | [Coke]++ | ||
lizmat | [Coke]: shouldn't we just call this release "Birthday" ? | ||
PerlJam | lizmat: there is no Birthday.pm :) | ||
CurtisOvidPoe | liamat: gist.github.com/Ovid/8d3085d466110d78aeda is the gist in question. | ||
[Coke] | (i.e. www.pm.org/groups/perl_mongers.json) | ||
15:12
diana_olhovik left
|
|||
[Coke] | lizmat: this release gets 3 tags. the monthly, the PM, and v6b (or however we're spelling it) | 15:13 | |
lizmat | CurtisOvidPoe: that's the PERL5LIB one ? | ||
15:13
jnm_theMailman joined
|
|||
CurtisOvidPoe | Yes. Should be an easy fix once the Perl 5 call is found. | 15:13 | |
itz_stmuk | v6β | 15:14 | |
[Coke] | ooooh, I think I have a PM group with a good name to use. :) | ||
15:14
ely-se joined
15:15
colomon joined
|
|||
CurtisOvidPoe | And this is the one which is causing me to redo some slides for my talk: rt.perl.org/Public/Bug/Display.html?id=126390 | 15:15 | |
15:16
PotatoGim_ is now known as PotatoGim
15:17
ely-se left,
ggherdov_ is now known as ggherdov
15:18
govt joined
|
|||
itz_stmuk | [Coke]: which one? | 15:19 | |
lizmat | CurtisOvidPoe: sorry, won't be able to fix that before Mon | 15:20 | |
CurtisOvidPoe | Kind of figured that one :) | ||
It looks non-trivial. | |||
RabidGravy | CurtisOvidPoe, that latter if you put a URI.new anywhere outside the start { } will work | ||
CurtisOvidPoe | Can someone point me to an example of *interesting* concurrent code that will fit on a slide? | 15:21 | |
RabidGravy | the problem is tracked right down to something in the way URI loads the grammar | ||
[Coke] | itz_stmuk: itz_a_surprise | ||
CurtisOvidPoe | Note: sleepsort is funny, not interesting :) | ||
Hmm, grammars have deadlocks? | 15:22 | ||
lizmat | afk for a bit, maybe longer | ||
RabidGravy | who knows? There's quite a lot of stuff going on in the constructor | 15:23 | |
CurtisOvidPoe | Time to break out the coffman conditions. Though I’d be surprised if merely parsing a grammar grabs an unshareable resource. | ||
15:23
rindolf left
|
|||
RabidGravy | i.e. perl6 -MHTTP::UserAgent -MURI -e 'my $url = "www.rakudo.org/"; URI.new; my $ua = HTTP::UserAgent.new; await start { say $ua.get($url) }' # works fine | 15:24 | |
15:24
govt left
15:25
hobbs joined
|
|||
RabidGravy | as long as it has required the grammar before hitting the thread | 15:25 | |
itz_stmuk | It's a pity Advent.pm was used | ||
and that none of these contain spaces | 15:26 | ||
RabidGravy | CurtisOvidPoe, so you could use the original example you had in mind but just gloss over the seemingly useless URI.new at the top of the code | 15:27 | |
CurtisOvidPoe | RabidGravy: Hmm, I’ll give that a try. | ||
15:28
tokuhirom_ left
15:31
raiph left
|
|||
jdv79 | or apply my PR | 15:34 | |
15:34
oha joined
|
|||
jdv79 | it seems to be something with require'ing something that's already loaded and threads | 15:35 | |
15:35
rindolf joined
|
|||
jdv79 | but the code that triggers it in URI is lame imo | 15:35 | |
RabidGravy: do you even get that constructor? | 15:36 | ||
RabidGravy | yeah | 15:37 | |
it works | |||
[Coke] | anyone run the inline Perl 5 tests recently? | ||
jdv79 | i know it works. lots of stuff can work and be lame. | ||
RabidGravy | er, I thought you meant something else | 15:38 | |
PerlJam | What's the P6 equivalent ot P5's s///r ? /me is drawing a blank | ||
15:39
kjs_ joined,
Ataul joined
|
|||
psch | PerlJam: S/// i think? | 15:40 | |
m: $_ = "foo"; say S/o/u/; .say | |||
camelia | rakudo-moar 782b13: OUTPUT«「o」foo» | ||
psch | ISTR something changed there recently, though | ||
m: my $x = "foo"; my $y = $x ~~ S/o/O/; say $x; say $y | 15:41 | ||
camelia | rakudo-moar 782b13: OUTPUT«foo「o」» | ||
PerlJam | I thought it was S/// too, but then I tried it :) | ||
[Coke] | t/spec/S17-supply/throttle.t failing for me locally (no surprise. :( | ||
TimToady | someone broke S/// | ||
Ataul | Can someone help me with the GUI part of Perl | 15:42 | |
15:42
[Tux] joined
|
|||
psch | i think the S/// breakage is from 32d7b083 | 15:42 | |
TimToady | my fault for not writing tests | ||
PerlJam | Ataul: GUI part of Perl 6? | ||
psch | s/is/might be/ | ||
Ataul | Yes | ||
PerlJam | Ataul: what's the question? | 15:43 | |
or problem | |||
or whatever | |||
Ataul | will Tk module work fine in Perl 6 | ||
lizmat | [Coke]: which test is failing for Supply.throttle ? | ||
Ataul | i haven't installed perl 6 yet. just curious to know about perl 6 | 15:44 | |
itz_stmuk | Ataul: no but GTK might | ||
Ataul | ok. Thanks | ||
15:45
colomon left
|
|||
lizmat | moritz: looks like dalek is awol again | 15:45 | |
15:46
skarn joined
|
|||
PerlJam | Ataul: you could make a Tk binding for Perl 6 :) | 15:46 | |
15:46
tokuhiro_ joined
|
|||
Ataul | What do you guys think best module to work for perl GUI? | 15:46 | |
Tk? or do u suggest something else | |||
15:47
mattn joined,
mattn left
|
|||
PerlJam | There aren't as many options for GUIs for Perl 6 as there are for Perl 5 (yet). | 15:47 | |
[Coke] | lizmat: didn't save it. "S17 fails under load" is an unfortunate reality. :| | 15:48 | |
Ataul | ok | ||
PerlJam | If I were going to write a GUI app right now in Perl, I would use Perl 5. | ||
Ataul | ok.. Thanks [perlJam] | ||
15:48
telex left
|
|||
pink_mist | . o O ( if PerlJam is [PerlJam], does that mean [Coke] is [[Coke]]? ) | 15:49 | |
15:49
lsm-desktop joined
|
|||
PerlJam | pink_mist: only if you speak POSIX | 15:49 | |
pink_mist | hah | ||
15:50
dalek joined
|
|||
RabidGravy | bindings for GUI libraries tend to be a lot of work so you have to be peculiarly motivated I guess ;-) | 15:50 | |
15:50
telex joined,
ChanServ sets mode: +v dalek
|
|||
PerlJam | or have figured out a way to automate most of the work. | 15:50 | |
15:50
tokuhiro_ left
|
|||
RabidGravy | indeed | 15:50 | |
15:50
colomon joined
15:52
zakharyas left,
grondilu joined
|
|||
nine | I dare say there aren't even that many good options for GUIs in Perl 5... | 15:53 | |
15:53
keix joined
|
|||
Ataul | @nine I agree | 15:54 | |
itz_stmuk | I wouldn't even write a GUI in perl 5 TBH | 15:55 | |
15:56
abraxxa left
15:57
pollei joined
15:58
mattn_jp joined
|
|||
dalek | kudo/nom: 0e26a47 | lizmat++ | / (2 files): Oops, forgot to also change the generator |
15:58 | |
15:59
pollei left
16:00
mattn_jp left,
mattn_jp joined
|
|||
ilmari | [Coke]: ’ is not an apostrophe | 16:01 | |
' is an apostrophe | |||
16:01
pollei joined,
mattn_jp left
|
|||
ilmari | ’ - U+02019 - RIGHT SINGLE QUOTATION MARK | 16:01 | |
that's for closing a quotation started by ‘ - U+02018 - LEFT SINGLE QUOTATION MARK | |||
tedclancy.wordpress.com/2015/06/03...ery-wrong/ | |||
16:01
mattn_jp joined,
mattn_jp left
|
|||
ilmari | if you absolutely want something unicodey, use ʼ - U+002BC - MODIFIER LETTER APOSTROPHE | 16:02 | |
masak | 'night, #perl6 | ||
dalek | ast: 22d8cbe | lizmat++ | S17-supply/throttle.t: Hopefully make test less load sensitive |
16:04 | |
pink_mist | ilmari: I read that blog post a month or two ago .. he has some very good points imo | ||
ilmari | pink_mist: yeah | ||
16:05
Ataul left
16:06
mattn_jp joined
16:08
rbk_ joined
|
|||
[Coke] | ilmari: thank you. | 16:10 | |
16:11
Ven joined
|
|||
loren | night, #perl6 .. o/ | 16:13 | |
16:13
loren left
|
|||
rbk_ | msg I downloaded rakudo-star-2015.09.tar.gz and did tar zxvf into the directory rakudo-star-2015.09 | 16:13 | |
When I run perl Configure.pl --backend=moar --gen-moar | |||
I get the following errors | 16:14 | ||
3rdparty/libuv/src/unix/fs.c: In function ‘uv__fs_read’: 3rdparty/libuv/src/unix/fs.c:248:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] static int no_preadv; ^ 3rdparty/libuv/src/unix/fs.c: In function ‘uv__fs_write’: 3rdparty/libuv/src/unix/fs.c:606:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] static int no_pwritev; | 16:17 | ||
16:17
jevin left
|
|||
grondilu | what's your compiler? | 16:17 | |
rbk_ | I am using gcc version 4.8.2 | ||
on linux | 16:18 | ||
gfldex | gcc (Debian 4.9.2-10) 4.9.2 works fine for me | ||
16:19
n0tjack joined
|
|||
rbk_ | Oh, ok. Thank you gfldex and grondilu | 16:19 | |
I will try with 4.9.2 | |||
RabidGravy | yeah 5.1.1 here and a few warnings but no error | ||
rbk_ | Thanks, RabidGravy | 16:20 | |
grondilu | gcc (Raspbian 4.9.2-10) 4.9.2 | ||
Copyright (C) 2014 Free Software Foundation, Inc. | |||
This is free software; see the source for copying conditions. There is NO | |||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |||
(sorry for the verbose output, ran /exec -out gcc --version) | |||
rbk_ | How about gcc 5.2? Did anybody try that? | ||
16:20
araujo left
|
|||
grondilu | looks fairly bleeding edge | 16:21 | |
give it a try and report to us :) | |||
RabidGravy | I just take what I get ;-) | ||
rbk_ | Yeah, I will try and report back :) | 16:22 | |
Yesterday I tried to install git so I can do git clone | 16:24 | ||
git installed successfully, but when I tried to clone, it said "No remote helper for https" available | 16:25 | ||
16:25
mattn_jp left
16:26
mattn_jp joined,
mattn_jp left
|
|||
dalek | kudo/nom: d70ff74 | coke++ | docs/release_guide.pod: use more -correct- unicode ilmari++ |
16:27 | |
rbk_ | Any ideas on how to make enable https for git? | ||
[Coke] | ilmari: ^^ better? | ||
16:27
mattn_jp joined
|
|||
ilmari | rbk_: use an https url | 16:27 | |
16:27
eliasr left
|
|||
itz_stmuk | lizmat++ # 100% passes now | 16:27 | |
16:27
araujo joined
|
|||
ilmari | [Coke]: yes | 16:29 | |
rbk_ | ilmari: I tried the url git clone github.com/tadzik/rakudobrew ~/.rakudobrew | ||
16:29
araujo left
|
|||
gfldex | rbk_: what's your git --version ? | 16:29 | |
[Coke] | rbk_: github.com/tadzik/rakudobrew.git | ||
ilmari | rbk_: and what happened? | ||
[Coke] | You appear to be missing a .git | 16:30 | |
ilmari | [Coke]: theres's a bunch of ’ being used as apostrophes in docs/announce/ as well | ||
rbk_ | git version 2.6.1 | ||
dalek | kudo/nom: a76c349 | coke++ | docs/announce/2015.10.md: use more -correct- unicode ilmari++ |
16:31 | |
[Coke] | ilmari: done. | ||
ilmari | coke++ | ||
rbk_ | ilamari: I got the message Unable to find remote helper for https | ||
16:32
PrometheusX_ joined
|
|||
gfldex | rbk_: you may be missing curl | 16:32 | |
[Coke] | rbk_: how did you install git? | ||
(missing .git on that url doesn't seem to matter, ah well) | |||
ilmari | gfldex: does git really use curl?! | ||
do you mean libcurl? | |||
gfldex | libcurl actually, last time i checked | 16:33 | |
ilmari | yeah, /usr/lib/git-core/git-remote-http on my system is linked against libcurl-gnutls.so.4 | ||
rbk_ | I followed the isntructions from git-scm.com/book/en/v2/Getting-Sta...alling-Git | ||
mattn_jp | why don't use single quote? because avoiding issues on markdown? | ||
gfldex | on debian/stable dep: libcurl3-gnutls (>= 7.16.2) | ||
ilmari | rbk_: which linux distribution are you using? | ||
gfldex | rbk_: if you are on debian you could try to install git-all | 16:34 | |
rbk_ | I am using RedHat | ||
16:34
kmel joined
|
|||
gfldex | there is your problem! :-> | 16:34 | |
ilmari | rbk_: that page has many different ways of installing it. which did you use? | 16:35 | |
16:35
AlexDaniel joined
|
|||
rbk_ | I followed the instructions at the end of that page under the heading "Then, compile and install:" | 16:36 | |
ilmari | rbk_: why did you not not use the "installing on linux" instructions at the top? | ||
"sudo yum install git" | |||
16:37
^elyse^ joined
|
|||
rbk_ | ilmari: I don't have root access this linux box | 16:37 | |
ilmari | rbk_: ask whoever has root to install it for you | ||
or at least openssl-devel, so you can build your own with https support | |||
rbk_ | ilmari: Thank you, I will that | 16:38 | |
gfldex | or you try to substitute https with http or git | ||
ilmari | for the specific case of github, yes | ||
mattn_jp | anyone help me please. | ||
16:38
Hor|zon_ joined
|
|||
mattn_jp | now I'm trying to port Plack::Middleware::ErrorDocument. | 16:38 | |
And I'm having problem to pass arguments like perl5 as below | 16:39 | ||
500 => '/path/to/500.html' | |||
dalek | kudo/nom: fb39bda | PerlJam++ | / (2 files): tool for Coke++ |
||
rbk_ | gfldex: I tried replacing https with http. Even for http, it gave me remote helper not found message | ||
mattn_jp | But perl6 occur errors when arguments are defined as *%args | 16:40 | |
for example: sub enable(*%args) { say %args; } | |||
gfldex | mattn_jp: see design.perl6.org/S06.html#Named_arguments | ||
ilmari | rbk_: looks like you don't have curl-devel either | ||
rbk_ | gfldex: I tried with git:// and it just hangs there | ||
ilmari | rbk_: looks like you're firewalled | ||
rbk_: just get your sysadmin to install git using yum already | |||
PerlJam | mattn_jp: What's the error(s) you get ? | ||
mattn_jp | gfldex: yes, i know. but: this should work. enable foo => 1, bar => 2; | ||
but enable 500 => 1; | 16:41 | ||
this doesn't | |||
gfldex | rbk_: are you in some educational institution? | ||
mattn_jp | Too many positionals passed; expected 0 arguments but got 1 | ||
16:41
Ven left,
Hor|zon left
|
|||
gfldex | mattn_jp: try '500' => 1 | 16:41 | |
rbk_ | I am working for a telcom company | ||
psch | m: sub enable (*%args) { say %args }; enable 500 => 1 | ||
camelia | rakudo-moar 0e26a4: OUTPUT«Too many positionals passed; expected 0 arguments but got 1 in sub enable at /tmp/d1Rss6TeA4:1 in block <unit> at /tmp/d1Rss6TeA4:1» | ||
mattn_jp | but not same as perl5 way. | ||
gfldex | rbk_: i'm sorry to hear that :-> | ||
ilmari | m: sub (*%args) { say %args }( '500' => 1 ) | ||
psch | m: sub enable (*%args) { say %args }; enable foo => 1 | ||
camelia | rakudo-moar 0e26a4: OUTPUT«Too many positionals passed; expected 0 arguments but got 1 in sub at /tmp/wECqwQHWTp:1 in block <unit> at /tmp/wECqwQHWTp:1» | ||
rakudo-moar 0e26a4: OUTPUT«foo => 1» | |||
ilmari | m: sub (*%args) { say %args }( 'foo' => 1 ) | 16:42 | |
camelia | rakudo-moar 0e26a4: OUTPUT«Too many positionals passed; expected 0 arguments but got 1 in sub at /tmp/rI3GYMkA76:1 in block <unit> at /tmp/rI3GYMkA76:1» | ||
ilmari | m: sub (*%args) { say %args }( foo => 1 ) | ||
camelia | rakudo-moar 0e26a4: OUTPUT«foo => 1» | ||
nine | mattn_jp: named arguments must be valid identifiers | ||
mattn_jp: they cannot start with numbers | |||
ilmari | m: sub (%args) { say %args }( (500 => 1) ) | ||
camelia | rakudo-moar 0e26a4: OUTPUT«500 => 1» | ||
mattn_jp | m: sub enable(|args) { say args; }; enable 500 => 1; | 16:43 | |
camelia | rakudo-moar 0e26a4: OUTPUT«\(500 => 1)» | ||
mattn_jp | i know this way works fine but. can't define with types. | ||
16:43
Hor|zon joined
|
|||
psch | m: sub enable(|args) { say args.hash; }; enable 500 => 1; | 16:43 | |
camelia | rakudo-moar 0e26a4: OUTPUT«Map.new()» | ||
psch | mattn_jp: as nine says, '500 => 1' is not a valid named argument | 16:44 | |
rbk_ | ilmari: gfldex: Thanks a lot for your suggestions, I will try them | ||
nine | m: sub foo(:$500) { } | ||
camelia | rakudo-moar 0e26a4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/qw45WtLJN4Cannot declare a numeric parameterat /tmp/qw45WtLJN4:1------> 3sub foo(:$5007⏏5) { }» | ||
16:44
Hor|zon_ left
|
|||
mattn_jp | psch: is it spec of perl6? | 16:44 | |
search.cpan.org/dist/Plack/lib/Plac...ocument.pm | 16:45 | ||
nine | mattn_jp: why are you trying to pass that as named argument anyway? Couldn't you just accept a positional one? You will get a Pair. | ||
psch | mattn_jp: i'm pretty confident it is, yes | ||
nine | m: sub foo($arg) { say "{$arg.key}, {$arg.value}"; }; foo 500 => 1; | ||
camelia | rakudo-moar 0e26a4: OUTPUT«500, 1» | ||
16:46
adu joined
|
|||
PerlJam | mattn_jp: S06:Named arguments | 16:46 | |
mattn_jp: S06:778 | |||
oh, no bot | |||
16:47
PrometheusX_ left
|
|||
psch | m: my enum HTTPCodes <200, 400, 500>; sub f(%h) { %h.perl.say }; f 500 => 1; | 16:47 | |
camelia | rakudo-moar 0e26a4: OUTPUT«500 => 1» | ||
psch | vOv | ||
that's just hacking around it, and i'd actually discourage it :P | |||
16:47
synbot6 joined
|
|||
mattn_jp | m: sub foo($arg) { say "{$arg.key}, {$arg.value}"; }; foo foo => 1; | 16:47 | |
camelia | rakudo-moar 0e26a4: OUTPUT«Too few positionals passed; expected 1 argument but got 0 in sub foo at /tmp/hLn_VS62Hv:1 in block <unit> at /tmp/hLn_VS62Hv:1» | ||
16:47
tokuhiro_ joined
|
|||
mattn_jp | my fault | 16:47 | |
ilmari | m: grep { / ^ <[A..Z]> \w+ / }, <foo Bar bat Zoot> | 16:48 | |
camelia | ( no output ) | ||
ilmari | m: say grep { / ^ <[A..Z]> \w+ / }, <foo Bar bat Zoot> | ||
camelia | rakudo-moar 0e26a4: OUTPUT«(Bar Zoot)» | ||
mattn_jp | m: sub enable($arg) { say "{$arg.key}, {$arg.value}"; }; enable foo => 1; | ||
camelia | rakudo-moar 0e26a4: OUTPUT«Too few positionals passed; expected 1 argument but got 0 in sub enable at /tmp/d6rNy5ybwe:1 in block <unit> at /tmp/d6rNy5ybwe:1» | ||
ilmari | bah, my rakudo is too old | ||
ilmari nukes and rebuilds | |||
mattn_jp | P::M::E should take multiple arguments with number prefixed keys. | 16:49 | |
nine | m: sub enable($arg) { say "{$arg.key}, {$arg.value}"; }; enable "foo" => 1; | ||
camelia | rakudo-moar 0e26a4: OUTPUT«foo, 1» | ||
nine | mattn_jp: ^^^ | 16:50 | |
mattn_jp | m: sub enable($arg) { say "{$arg.key}, {$arg.value}"; }; enable "foo" => 1, "bar" => 2; | ||
camelia | rakudo-moar 0e26a4: OUTPUT«Too many positionals passed; expected 1 argument but got 2 in sub enable at /tmp/JKkEasrROq:1 in block <unit> at /tmp/JKkEasrROq:1» | ||
ilmari | m: sub enable (%args) { say %args }; enable foo => 42, 500 => 37 | ||
camelia | rakudo-moar 0e26a4: OUTPUT«Unexpected named parameter 'foo' passed in sub enable at /tmp/G8p0gkfBtk:1 in block <unit> at /tmp/G8p0gkfBtk:1» | ||
16:50
espadrine_ left
|
|||
ilmari | m: sub enable (%args) { say %args }; enable (foo => 42, 500 => 37) | 16:50 | |
camelia | rakudo-moar 0e26a4: OUTPUT«Type check failed in binding %args; expected Associative but got List in sub enable at /tmp/htVJ3kBfy7:1 in block <unit> at /tmp/htVJ3kBfy7:1» | ||
ilmari | m: sub enable (%args) { say %args }; enable {foo => 42, 500 => 37} | ||
camelia | rakudo-moar 0e26a4: OUTPUT«500 => 37, foo => 42» | ||
nine | m: sub enable(@args) { say "{$_.key}, {$_.value}" for @args; }; enable "foo" => 1, 500 => 37; | 16:51 | |
camelia | rakudo-moar 0e26a4: OUTPUT«Too many positionals passed; expected 1 argument but got 2 in sub enable at /tmp/hUgfTNzQWr:1 in block <unit> at /tmp/hUgfTNzQWr:1» | ||
16:51
rurban left
|
|||
nine | m: sub enable(*@args) { say "{$_.key}, {$_.value}" for @args; }; enable "foo" => 1, 500 => 37; | 16:51 | |
camelia | rakudo-moar 0e26a4: OUTPUT«foo, 1500, 37» | ||
mattn_jp | needless braces... | ||
so quote is required? | 16:52 | ||
nine | m: sub enable(*@args, *%args) { say "{$_.key}, {$_.value}" for flat @args, %args; }; enable foo => 1, 500 => 37; | ||
camelia | rakudo-moar 0e26a4: OUTPUT«500, 37foo, 1» | ||
16:52
rurban joined,
tokuhiro_ left,
araujo joined
|
|||
nine | mattn_jp: there's a way around that ^^^ | 16:52 | |
psch | mattn_jp: it really depends on your motivation | ||
mattn_jp | yes man! | ||
awesome. | |||
psch | mattn_jp: from what i can see you want to copy the interface 1:1 from perl5, which i don't know if that's a good idea | ||
nine | mattn_jp: what psch++ said. | 16:53 | |
psch | mattn_jp: if you're set on that there's two ways around it, the one shown by nine++ probably the cleaner one | ||
16:53
edehont joined
|
|||
mattn_jp | thanks. nine/psch | 16:53 | |
will apply this into github.com/tokuhirom/p6-Crust/blob...cument.pm6 :) | 16:55 | ||
16:55
edehont left
|
|||
n0tjack | What is MoarVM written in? | 16:55 | |
ilmari | n0tjack: C | ||
mattn_jp | AFAIK, C. | ||
16:56
zakharyas joined
|
|||
n0tjack | wow, I applaud anyone who's willing to write C so the rest of us never have to write C | 16:56 | |
ilmari | 97.2% C, 1.7% Perl, 1.1% other, according to github | ||
n0tjack | Perl as in "Perl 5", or Perl as in "Perl 6"? | 16:57 | |
psch | the Perl in moar is probably mostly Configure.pl | ||
Perl 5 | |||
ilmari | n0tjack: a bit of both. Configure is perl5, tools/* is perl6 | ||
psch | oh | ||
ilmari | (and a bit of perl 5, sh and python) | ||
n0tjack | python! heretics. | ||
psch | well, i'm not really in the mvm codebase either... the C sentiment holds :) | 16:58 | |
ilmari | n0tjack: it's for extending gdb | ||
psch goes back to debugging java... :P | |||
n0tjack | what are the major barriers to a self-hosting p6? | ||
(I suppose I mean above the VM level) | |||
why nqp instead of qp? | 16:59 | ||
psch | S99:Circularity_Saw | ||
synbot6 | Link: design.perl6.org/S99.html#Circularity_Saw | ||
psch | some pieces don't fit together to well | ||
nine came across a spot with Bool, and the bit on jvm i'm working could probably also be argued to have similar causes underneath | |||
n0tjack | that link doesn't really answer thr question so much as punt it | 17:00 | |
psch | m: say Attribute.^attributes[0].WHAT | ||
camelia | rakudo-moar a76c34: OUTPUT«Method 'gist' not found for invocant of class 'BOOTSTRAPATTR' in block <unit> at /tmp/s3ny_JjIBG:1» | ||
n0tjack | psch: ah, well, it's an academic question anyway | ||
psch | n0tjack: ^^^ that's one of the obvious things lie beyond the vm-level | ||
n0tjack | psch: I've seen a lot of Type.^something recently -- what's with the ^? | ||
psch | n0tjack: Foo.^meth is Foo.HOW.meth(Foo) | 17:01 | |
n0tjack | ah, htanks | ||
also, and in addition, thanks. | |||
psch | n0tjack: HOW is the Higher Order Workings, i.e. the meta object | ||
m: Any.HOW.^name.say | |||
camelia | rakudo-moar a76c34: OUTPUT«Perl6::Metamodel::ClassHOW» | ||
n0tjack | m: Mu.HOW.say; | 17:02 | |
camelia | rakudo-moar a76c34: OUTPUT«Perl6::Metamodel::ClassHOW.new» | ||
mattn_jp | one more question. | ||
is it possible to inherit Any? | |||
psch | mattn_jp: everything automatically inherits from Any | ||
mattn_jp | for example, making to-json method for all types. | ||
psch | m: class Foo { }; Foo.^mro.say | 17:03 | |
camelia | rakudo-moar a76c34: OUTPUT«((Foo) (Any) (Mu))» | ||
psch | (terms and conditions may apply) | ||
17:03
virtualsue joined
|
|||
psch | mattn_jp: you want to mixin into Any, which currently has strong caveats - i.e. you need to recompose every object that's supposed to know about the mixin | 17:03 | |
17:03
tokuhirom_ joined,
ggoebel2 left
|
|||
psch | mattn_jp: if this is only about supplying and object-y notation you can use object notation with routine names directly | 17:04 | |
mattn_jp | psch: it's not possible to add_method on Any. | ||
Should be mu? | |||
dalek | kudo/nom: 75e92fc | diakopter++ | src/Perl6/Actions.nqp: fix S/// |
17:05 | |
kudo/nom: 6c810d8 | diakopter++ | / (3 files): Merge branch 'nom' of github.com:rakudo/rakudo into nom |
|||
psch | m: Any.^add_method("foo", method (Any: ) { say "impossible" }); Any.foo | ||
camelia | rakudo-moar a76c34: OUTPUT«impossible» | ||
gfldex | mattn_jp: it is possible to add_method to Any but it wont bubble up to childs | ||
17:05
firstdayonthejob joined
|
|||
psch | mattn_jp: it is clearly possible to add_method on Any, but you need to recompose every child that should know the method | 17:05 | |
mattn_jp | gfldex: yes, that's right. | ||
psch | m: Any.^add_method("foo", method (Any: ) { say "impossible" }); Int.^compose; Int.foo | ||
camelia | rakudo-moar a76c34: OUTPUT«impossible» | ||
psch | m: Any.^add_method("foo", method (Any: ) { say "impossible" }); Int.foo | ||
camelia | rakudo-moar a76c34: OUTPUT«Method 'foo' not found for invocant of class 'Int' in block <unit> at /tmp/_i5IfdSLP2:1» | ||
psch | (recomposing the class that had the method added is also something you probably want to do, due to caching) | 17:06 | |
PerlJam | mattn_jp: besides ... you could just use the to-json multi-sub that comes with Rakudo :) | ||
psch | m: Any.&to-json.say | ||
camelia | rakudo-moar a76c34: OUTPUT«null» | ||
psch | ^^^ that's the object-y notation i was talking about a bit before | ||
mattn_jp | hmm. | ||
ilmari | m: Any.new.&to-json.say | ||
camelia | rakudo-moar a76c34: OUTPUT«Can't serialize an object of type Any in block <unit> at /tmp/KffYLvQ4zH:1» | ||
ilmari | m: Date.today.&to-json.say | 17:07 | |
camelia | rakudo-moar a76c34: OUTPUT«Can't serialize an object of type Date in block <unit> at /tmp/dvWYTXYABm:1» | ||
ilmari | m: Date.today.say | ||
camelia | rakudo-moar a76c34: OUTPUT«2015-10-22» | ||
ilmari | m: Date.today.Str.&to-json.say | ||
camelia | rakudo-moar a76c34: OUTPUT«"2015-10-22"» | ||
diakopte1 | m: $_="foo"; say S/o/l/ | ||
camelia | rakudo-moar a76c34: OUTPUT«「o」» | ||
mattn_jp | m: Any.^add_method( 'to-json', method () { say "Jesus"; }); 1.to-json; | ||
camelia | rakudo-moar a76c34: OUTPUT«Method 'to-json' not found for invocant of class 'Int' in block <unit> at /tmp/hhkt13jiVd:1» | ||
17:07
diakopte1 is now known as diakopter
|
|||
psch | m: Any.^add_method( 'to-json', method () { say "Jesus"; }); Int.^compose; 1.to-json; | 17:07 | |
camelia | rakudo-moar a76c34: OUTPUT«Jesus» | ||
17:08
tokuhirom_ left
|
|||
mattn_jp | oh, i/stand | 17:08 | |
psch: thanks! | |||
psch | mattn_jp: it's actually not a good idea to want to do that, in my opinion | ||
mattn_jp | psch: i see. | ||
PerlJam | .oO( but, but, ruby does it! ) |
17:09 | |
(sorta) | |||
mattn_jp | lol | ||
psch | m: Any.^add_method("foo", my method foo { say "foo" }); class Bar { method foo { say "bar" } }; Bar.new.foo | ||
camelia | rakudo-moar a76c34: OUTPUT«bar» | ||
dalek | ast: e82eb2d | TimToady++ | S05-substitution/subst.t: add tests for S/// |
17:11 | |
nine | psch: I just can't shake the feeling that my Bool problem and your JVM Attribute thing are connected | ||
diakopter | sorry for the merge commit | 17:12 | |
17:12
Hor|zon left
17:13
raiph joined
|
|||
diakopter | raiph: heya | 17:13 | |
17:15
kmel left
17:17
dakkar left,
rbk_ left
|
|||
psch | nine: you can try applying this diff to nqp gist.github.com/peschwa/e63482bc9c260a654f96 | 17:19 | |
nine: err, no, not that one hold on | |||
nine: updated the gist at the same link | 17:20 | ||
nine: if it's related you should get "type object: Bool from SC: gen/jvm/BOOTSTRAP.nqp to SC: gen/jvm/CORE.setting" on stderr during CORE compilation | 17:21 | ||
nine: on your branch that is | |||
17:21
ggoebel joined
|
|||
psch | nine: the curious bit is, that according to all i can see from the outside moar has the same problem but just doesn't care, in contrast to jvm | 17:22 | |
i'll readily admit that might be because i have no clue how to verify that moar does the same stuff behind the scenes - printf debugging somehow didn't work the last time i tried :P | |||
17:24
leont joined
|
|||
[Coke] | yay, looks like if I ever roll out a perl 6 web app at $dayjob, it won't have to be in java. | 17:25 | |
17:25
Ch0c0late joined
|
|||
[Coke] | diakopter++ welcome back. :) | 17:25 | |
17:27
^elyse^ left,
FROGGS joined
17:28
jevin joined
|
|||
diakopter | FROGGS: sry I mangled your codegen code | 17:28 | |
m: $_="foo"; say S:Fuuuuuuuuuu/o/l/ | 17:30 | ||
camelia | rakudo-moar 6c810d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/WvLsGU5XjpAdverb Fuuuuuuuuuu not allowed on substitutionat /tmp/WvLsGU5Xjp:1------> 3$_="foo"; say S:Fuuuuuuuuuu/o/l/7⏏5<EOL>» | ||
diakopter | m: $_="foo"; say S:g/o/l/ | ||
camelia | rakudo-moar 6c810d: OUTPUT«fll» | ||
17:30
samb1 joined
|
|||
diakopter | ^ Ft Lauderdale | 17:30 | |
17:31
st_iron joined
|
|||
st_iron | good afternoon | 17:31 | |
FROGGS | diakopter: you did what? O.o | ||
diakopter | hiiii | ||
st_iron | wow this channel is growing | ||
it's almost Christmas | |||
[Coke] tries to find "S" on the doc site. | |||
diakopter | [Coke]: see TimToady's last commit to roast | ||
mattn_jp | similar to ruby: gist.github.com/mattn/6550bc27cf55f11d1136 | ||
FROGGS | diakopter: and there is no spectest fallout? what does your patch solve? | 17:32 | |
diakopter | TimToady wrote tests for it | ||
I dunno; we didn't run the whole spectest suite | |||
probably should... | |||
[Coke] | diakopter: sure, but I still can't find it on the doc site. :) | ||
TimToady | I ran the tests | 17:34 | |
FROGGS | hah! | ||
TimToady is also unbreaking the S/// in smartmatch warning | |||
FROGGS | TimToady: now S/// does what I proposed it might should do :o) | ||
TimToady | I don't know what you proposed | ||
FROGGS | and also what my local code did before I changed it | ||
TimToady | S/// returned the modified string before | ||
S/// was an experiment at the time, so was sub-documented :) | 17:35 | ||
FROGGS | ahh yes | 17:36 | |
dalek | kudo/nom: 006526c | TimToady++ | src/Perl6/Actions.nqp: restore S/// in smartmatch warning |
||
FROGGS | I proposed to return the replacement for s/// instead... irclog.perlgeek.de/perl6/2015-10-17#i_11393001 | ||
so, nvm | |||
n0tjack | .mangle my bonnie lies over the ocean | 17:39 | |
yoleaux | Further builders are above sea level | ||
n0tjack | .mangle life, the universe, and everything | ||
yoleaux | Life, the universe and everything | ||
n0tjack | .mangle Neither snow nor rain nor heat nor gloom of night stays these couriers from the swift completion of their appointed rounds. | 17:40 | |
yoleaux | Neither snow nor rain nor heat nor darkness of night, the completion of their appointed rounds this fast couriers. | ||
n0tjack | meh | ||
17:42
mattn_jp left,
muraiki joined
|
|||
leont | How can I detect if I'm running rakudo-moar or rakudo-jvm? | 17:44 | |
n0tjack | perl6 --version | ||
psch | r: say $*VM | ||
FROGGS | m: say $*PERL.compiler.name | ||
camelia | rakudo-jvm 6c810d: OUTPUT«jvm (1.7)» | ||
..rakudo-moar 6c810d: OUTPUT«moar (2015.9.79.gee.9.fc.2.b)» | |||
rakudo-moar 6c810d: OUTPUT«rakudo» | |||
FROGGS | ohh, $*VM... | 17:45 | |
m: sub foo { @_ = 42; if @_ -> { say &?BLOCK } }; foo # a pointy does not set &?BLOCK? | |||
camelia | rakudo-moar 6c810d: OUTPUT«sub foo (*@_) { #`(Sub|76137832) ... }» | ||
diakopter | m: say $*VM | 17:46 | |
camelia | rakudo-moar 6c810d: OUTPUT«moar (2015.9.79.gee.9.fc.2.b)» | ||
leont | $*VM.name it is | ||
m: say $*VM.name | |||
camelia | rakudo-moar 6c810d: OUTPUT«moar» | ||
[Coke] | t/spec/S17-procasync/kill hanging on a stress test run; killing it, everything still passes. | 17:47 | |
FROGGS | m: if 42 -> $a { say $a }; if 42 -> *@_ { say @_ } | 17:48 | |
camelia | rakudo-moar 6c810d: OUTPUT«42[]» | ||
FROGGS | that is quite strange | ||
psch | m: if 42 -> $a { say $a }; if 42 -> *@b { say @b } | 17:49 | |
camelia | rakudo-moar 6c810d: OUTPUT«42[]» | ||
psch | m: if [42] -> *@b { say @b } | ||
camelia | rakudo-moar 6c810d: OUTPUT«[]» | ||
psch | m: (-> *@_ { say @_ })(42) | 17:50 | |
camelia | rakudo-moar 6c810d: OUTPUT«[42]» | ||
FROGGS | weird | ||
psch | m: if 42 -> @b { say @b } | 17:51 | |
camelia | rakudo-moar 6c810d: OUTPUT«Type check failed in binding @b; expected Positional but got Int in block <unit> at /tmp/xrhayv4KnY:1» | ||
psch | m: if [42] -> @b { say @b } | ||
camelia | rakudo-moar 6c810d: OUTPUT«[42]» | ||
psch | huh | ||
FROGGS | do we just check for the arity? | ||
psch | no idea | 17:54 | |
FROGGS | P6::A:7085 is interesting | ||
psch | i have something more of a clue wrt the jvm SC stuff though | ||
FROGGS | as well as this comment: $pb.arity(1); # gotta force this, or Block node gets optimized away | ||
\o/ | |||
psch: I love you :o) | 17:55 | ||
psch | uh.. :x | ||
FROGGS | *g* | ||
psch | afaiu, BEGIN blocks *always* add the result to the current SC | ||
which is probably not quite right | |||
and 'BEGIN Attribute.^compose;' returns the new Attribute | |||
- self.add_object($r); | 17:57 | ||
+ self.add_object_if_no_sc($r); | |||
in Perl6/World.nqp:2400 might be enough... | |||
eh, line 2403 actually | |||
misread the git diff :) | |||
FROGGS | hmmmm | 17:59 | |
psch | not sure how much we actually can/(want to) use .add_object in Perl6::World, especially if this is actually the reason for the bug | ||
FROGGS | I guess you have to add it to the current SC | 18:00 | |
how do you want to alter the other SC? I mean, you can only load it | |||
that's reposession, no? | |||
psch | FROGGS: we don't want to alter the SC, the type object doesn't have any state | ||
FROGGS: we want to alter the STable which knows the methods though | 18:01 | ||
18:01
^elyse^ joined
|
|||
psch | at least that's my understanding from what jnthn said about this whole thing... :s | 18:01 | |
FROGGS | what if we reparent a type object... do we want to own it then? | 18:02 | |
psch | reparent? | ||
FROGGS | like moving a type underneath a just created type... like we move stuff under Any | ||
just as an example | 18:03 | ||
but for Attribute, won't the recomposed Attribute not have a new STable? | |||
psch | (fwiw, make runs through with that change) | ||
gotta take care of some stuff quickly, back in around 10 or so | 18:04 | ||
FROGGS | a precomp test might give insights | ||
k | |||
ahh I guess you don't even need a precomp test... | 18:06 | ||
18:06
espadrine_ joined
|
|||
FROGGS | if we recompose Attribute at compile time of the setting, and dont add it to the SC of the setting, we would already know when we run the setting later | 18:06 | |
18:06
llfourn left
|
|||
FROGGS | like, we run perl6-j and the Attribute we see would still have an STable from BOOTSTRAP | 18:07 | |
18:08
xpen joined
18:09
softmoth joined
18:13
kjs_ left,
diana_olhovik_ joined
|
|||
psch | $ ./perl6-j -e'Attribute.map({ .say })' | 18:13 | |
(Attribute) | |||
FROGGS: i think that proves enough, doesn't it? | |||
FROGGS: 'cause .map gets added during CORE.setting compilation | |||
nine | psch: you're a genius! | 18:16 | |
jdv79 | gist.github.com/anonymous/e329f07eca6b0f894162 | ||
anyone get why the p6 one is failing? | |||
i don't see it ^H | |||
psch | nine: err, ok..? :) | ||
jdv79 | hmm, well that p5 one has my user hardcoded:( | 18:17 | |
18:17
vendethiel joined
|
|||
nine | psch: the good news is that with self.add_object_if_no_sc($rc); my Bool issue is finally gone! Bool.isa(Bool) now. The bad news is that I get segfaults with e.g. Bool.pick(*).elems | 18:19 | |
timotimo | ah, i've finally caught up with backlog | ||
lizmat | nine: I just found out that Regex.Bool should do what I discussed earlier | ||
it doesn't | |||
timotimo | itz_stmuk: do you realize that 10000 iterations of creating an object, assigning an attribute, and stringifying the object basically measures start-up time? | ||
psch | nine: i suspect moar is cheating somewhere with its SC handling. no idea if that's behind your segfault though | 18:20 | |
timotimo | itz_stmuk: if you add a couple zeroes, you'll be measuring our implementation of for-ing over ranges (soon to be automatically converted into a proper loop loop again, hopefully) | ||
lizmat | seems like it expects to find $_ one level up, but it needs to look up 2 levels | ||
m: $_ = "foo"; say ?/./ # this should work, right ? | 18:22 | ||
camelia | rakudo-moar 006526: OUTPUT«Method 'match' not found for invocant of class 'Any' in block <unit> at /tmp/XfPgP7MSjL:1» | ||
FROGGS | psch: does that mean that the new STable get added to the SC anyway? | ||
18:22
diana_olhovik_ left
|
|||
FROGGS | m: $_ = "foo"; say ?m/./ | 18:23 | |
camelia | rakudo-moar 006526: OUTPUT«True» | ||
FROGGS | lizmat: this should | ||
lizmat | apparently, Regex.Bool is now 2 call frames away from the callee | 18:24 | |
if I look up one more level, it all works | |||
FROGGS | I wonder why ?/./ tries to match at all... is it meant to? | ||
lizmat | it is meant to, looking at Regex.Bool | ||
FROGGS | star-m: $_ = "foo"; say ?/./ | ||
camelia | star-m 2015.09: OUTPUT«Method 'match' not found for invocant of class 'Any' in block <unit> at /tmp/IUHuTqbuKG:1» | ||
lizmat | so it's been broken for a while :-) | 18:25 | |
but Regex.Bool tries to find $_ to match with and return its result | |||
and even set $/ | |||
psch | FROGGS: afaiu, there's a fixup for the STable during deserialization of CORE | 18:26 | |
18:26
xpen left
|
|||
psch | FROGGS: the type object itself gets deserialized from BOOTSTRAP | 18:26 | |
FROGGS | hmmm, so the STable makes it to the new SC | ||
lizmat | FROGGS: question is now whether the fact that the proto is not oprtimized away, is the bug | ||
FROGGS | otherwise there would be no fixup | ||
nine | lizmat: when code depends on an optimization to work, I become nervous | 18:27 | |
lizmat | yeah | ||
FROGGS | lizmat: and I guess the (perhaps more expensive) CALLERS does not work there? | ||
lizmat | will try | 18:28 | |
CALLER::CALLER worked :-) | |||
FROGGS | nine: there is low level code that does not ignore protos, and then there is high level code that does | ||
lizmat: CALLER*S* | |||
lizmat | yeah... :-) | ||
18:29
Hor|zon joined
|
|||
FROGGS | CALLER # Contextual symbols in the immediate caller's lexical scope | 18:29 | |
CALLERS # Contextual symbols in any caller's lexical scope | |||
not quite what I thought but it might still work | |||
itz_stmuk | timotimo: I had more zeros at first but got bored of waiting | ||
timotimo: I'll experiment and probably update | 18:30 | ||
FROGGS | CLIENT might not work in this case though | ||
timotimo | hah | ||
lizmat | FROGGS: CALLERS doesn't cut it | 18:31 | |
psch | FROGGS: actually, i remember having debug-seen repossession of the Attribute STable to CORE | ||
FROGGS | :/ | ||
psch: that's good then | |||
lizmat | FROGGS: trying CLIENT | 18:32 | |
psch | FROGGS: i'm still wondering what's behind moar never having cared about the reassignment of the SC... | ||
FROGGS | lizmat: if the $_ is now always to frames away, then just add another nqp::ctxcaller or what it is called... | 18:33 | |
lizmat | FROGGS: yeah, that works, tried that | ||
but it feels fragile | |||
FROGGS | lizmat: why? because someone might remove the proto? | ||
lizmat | or it might be optimized away ? | 18:34 | |
nine | lizmat: how do you feel about rebasing curli on nom? Right now there are more merge commits in it than real ones. | ||
18:34
kjs_ joined
|
|||
lizmat | nine: not a good idea, because it contains some WIP of mine | 18:34 | |
psch | MVM_sc_set_obj_sc calls MVM_sc_set_collectable_sc, and the latter doesn't really make sense to me | ||
lizmat | which breaks precomp atm | ||
nine | lizmat: understood | ||
FROGGS | lizmat: I guess the optimization should either not optimize/inline stuff that fiddles with caller or it should fake the inlined frames so caller works | ||
itz_stmuk | 90 wallclock s for perl 6 v 120 for perl5 with 1m objs | 18:35 | |
YMMV | |||
lizmat | well, sometime in the past, something happened there, and Regex.Bool broke | ||
wonder if that happened during the GLE | |||
GLR | |||
itz_stmuk | . o O ( I should compile the perl5 with threads ) | ||
psch | itz_stmuk: that's object creation on Moose vs rakudo-m? | ||
(just guessing :s ) | |||
itz_stmuk | basically yes | 18:36 | |
nine | itz_stmuk: is it with immutable Moose classes? | ||
itz_stmuk | no | ||
nine | The __PACKAGE__->meta->make_immutable; has huge performance impact on object creation | 18:37 | |
Since it inlines the constructor | |||
itz_stmuk | its a naive test .. I didn't want to customize too heavily | ||
I suppose I could have used ints on the loop | |||
and not used say since ours isn't buffered | 18:38 | ||
etc etc | |||
jdv79 | moose without make_immutable is unthinkable! | ||
itz_stmuk | I've seen plenty of production code without it | 18:39 | |
jdv79 | must not be perf sensitive then | ||
lizmat | FROGGS: Regex.ACCEPTS uses the same idea to access $/, but that *does* work correctly with only 1 level | 18:40 | |
jdv79 | seems H::UA may not know how to consume cookies very well | ||
dalek | c: 7e45aeb | (Steve Mynott)++ | doc/Language/faq.pod: [FAQ] bump example to 1m objs timotimo++ |
18:41 | |
18:42
rurban left
|
|||
xenu | win 11 | 18:42 | |
oops | |||
;) | |||
FROGGS | :o) | 18:43 | |
timotimo | itz_stmuk: and the timings? | 18:44 | |
also, i really like putting _ into numbers that match 1 0+ | |||
FROGGS | m: $_ = "foo"; (/./).Bool; say $/ | ||
camelia | rakudo-moar 006526: OUTPUT«「f」» | ||
FROGGS | m: $_ = "foo"; ?/./; say $/ | 18:45 | |
camelia | rakudo-moar 006526: OUTPUT«WARNINGS:Useless use of "?" in expression "?/./" in sink context (line 1)Method 'match' not found for invocant of class 'Any' in block <unit> at /tmp/PiG1Xw6LUd:1» | ||
itz_stmuk | see above .. just trying immutable moose | ||
FROGGS | m: $_ = "foo"; ?(/./); say $/ | ||
camelia | rakudo-moar 006526: OUTPUT«WARNINGS:Useless use of "?" in expression "?(/./)" in sink context (line 1)Method 'match' not found for invocant of class 'Any' in block <unit> at /tmp/RqNEa1VxP3:1» | ||
FROGGS | lizmat: that's why I dont understand currently | ||
itz_stmuk | immutable moose doesn't seem to make much difference | ||
timotimo | that's very weird | 18:46 | |
BBIAB | |||
jdv79 | gist.github.com/anonymous/3af1447cd2859ff2a54b seems like a solid lead on the issue | ||
itz_stmuk | maybe recent Moose is clever | ||
lizmat | FROGGS: $ 6 '$_ = "foo"; ?/./; say $/' | ||
WARNINGS: | |||
Useless use of "?" in expression "?/./" in sink context (line 1) | |||
「f」 | |||
but with this change, I get quite a lot of spectest breakage | |||
FROGGS | m: $_ = "foo"; (/./).Bool; say $/ # lizmat: does this still work? | ||
camelia | rakudo-moar 006526: OUTPUT«「f」» | ||
itz_stmuk | or maybe reini is right about recent perl 5s ;) *joke* | 18:47 | |
FROGGS | hehe | ||
lizmat | FROGGS: no it's not :-( | ||
grrr | 18:48 | ||
FROGGS | lizmat: that means ?/./ compiles wrongish? | ||
lizmat | ah, hmmm... good point | ||
18:49
tokuhiro_ joined
|
|||
lizmat | lemme check | 18:49 | |
RabidGravy | jdv79, can you make that into a test and PR it on github? A fix would be better of course, but unless there's a test or an issue or something it won't get done | 18:50 | |
FROGGS | m: $_ = "foo"; prefix:<?>(/./) | ||
camelia | rakudo-moar 006526: OUTPUT«WARNINGS:Useless use of "prefix:<?>(/./)" in expression "prefix:<?>(/./)" in sink context (line 1)Method 'match' not found for invocant of class 'Any' in block <unit> at /tmp/K8tRWY4RsX:1» | ||
jdv79 | i'm still having energy to dig | ||
i'll at least bug it | 18:51 | ||
FROGGS | lizmat: does that just mean that the prefix:<?>() call adds another indirection? | ||
lizmat | the proto for Bool occurs in the stack trace | 18:52 | |
with ?/./ | |||
18:52
zostay joined
|
|||
FROGGS | m: sub booly(Mu $thing) { $thing.Bool }; $_ = "foo"; booly(/./); say $/ | 18:52 | |
camelia | rakudo-moar 006526: OUTPUT«Method 'match' not found for invocant of class 'Any' in sub booly at /tmp/MMRlsTZTp7:1 in block <unit> at /tmp/MMRlsTZTp7:1» | ||
FROGGS | lizmat: like in here | ||
that's the same as what prefix:<?> does I guess | 18:53 | ||
lizmat checks | |||
dalek | kudo/nom: 582661f | TimToady++ | src/Perl6/Actions.nqp: Allow list assoc and meta ops to autoprime |
||
FROGGS | m: sub booly(Mu $thing) { $_ := CALLER::<$_>; $thing.Bool }; $_ = "foo"; booly(/./); say $/ | ||
camelia | rakudo-moar 006526: OUTPUT«Nil» | ||
lizmat | multi sub prefix:<?>(Mu \a) { a.Bool } | ||
18:53
tokuhiro_ left,
zakharyas left
|
|||
dalek | ast: 113c002 | TimToady++ | S02-types/whatever.t: tests for * with X and Z metaops |
18:54 | |
FROGGS | m: sub booly(Mu $thing) { $_ := CALLERS::<$_>; $thing.Bool }; $_ = "foo"; booly(/./); say $/ | ||
camelia | rakudo-moar 006526: OUTPUT«Nil» | ||
FROGGS | m: sub booly(Mu $thing) { say $_ := CALLER::<$_>; $thing.Bool }; $_ = "foo"; booly(/./); say $/ | ||
camelia | rakudo-moar 006526: OUTPUT«fooNil» | ||
zostay | someone suggested an interesting method call operator for perl 5 just now as a shortcut for (ref $a && $a->do): $a//->do; | ||
FROGGS | m: sub booly(Mu \thing) { say $_ := CALLER::<$_>; thing.Bool }; $_ = "foo"; booly(/./); say $/ | ||
camelia | rakudo-moar 006526: OUTPUT«fooNil» | ||
FROGGS | why is that Nil? | ||
lizmat | FROGGS: all of the Bool prefixes where last changed almost a year ago | ||
TimToady | m: say 'foo' ~~ S/o/O/ | 18:55 | |
camelia | rakudo-moar 006526: OUTPUT«Potential difficulties: Smartmatch with S/// can never succeed because the subsequent string match will fail at /tmp/bIfqTYwJJ4:1 ------> 3say 'foo' ~~ S/o/O/7⏏5<EOL>False» | ||
timotimo | itz_stmuk: i'm very surprised we're faster than p5 on this | ||
FROGGS | lizmat: and you know how long it is broken? | ||
TimToady | m: say S/o/O/ given 'foo' | ||
camelia | rakudo-moar 006526: OUTPUT«fOo» | ||
lizmat | well, at least since Rakudo 2015.09 :-) | ||
is what you established | |||
FROGGS | zostay: that's nice indeed... :o) | 18:56 | |
itz_stmuk | timotimo: its roughly the same .. my systems seem to have p6 slightly faster but YMMV | ||
FROGGS | lizmat: and you know that it worked every before? | ||
ever* | |||
lizmat | well, looking at the code in Regex.Bool, I think it is expected ? | ||
I think the problem really is that prefix:? is no longer inlined or so | 18:57 | ||
FROGGS: I'll put in some code to look for the first defined $_ now | |||
so at least it works in the release | |||
FROGGS | even if we inlined it, it should not have an effect of the caller ops | ||
lizmat | ok, then it maybe has never worked | 18:58 | |
the prefix:<?> just adds another level | |||
FROGGS | *nod* | ||
lizmat | so I'll create a separate candidate to be used by prefix:<?> | ||
FROGGS | m: $_ = "foo"; !/./; say $/ | 19:01 | |
camelia | rakudo-moar 006526: OUTPUT«WARNINGS:Useless use of "!" in expression "!/./" in sink context (line 1)Method 'match' not found for invocant of class 'Any' in block <unit> at /tmp/DdQtAtMogV:1» | ||
dalek | c: 5d7b737 | (Steve Mynott)++ | doc/Language/faq.pod: [FAQ] underscores in 1m and immutable moose |
||
FROGGS | m: $_ = "foo"; so /./; say $/ | ||
camelia | rakudo-moar 006526: OUTPUT«WARNINGS:Useless use of "so " in expression "so /./" in sink context (line 1)Method 'match' not found for invocant of class 'Any' in block <unit> at /tmp/viP_UsrLLP:1» | ||
itz_stmuk | 45s p6 v 55s p5 on another system with those versions | ||
zostay | m: class Foo { method foo(Foo:D:) { say 'foo' } }; my Foo $f; $f.?foo; | ||
camelia | rakudo-moar 006526: OUTPUT«Invocant requires an instance of type Foo, but a type object was passed. Did you forget a .new? in method foo at /tmp/09atUd0VAT:1 in block <unit> at /tmp/09atUd0VAT:1» | ||
FROGGS | m: $_ = "foo"; say ~/./; say $/ | 19:02 | |
camelia | rakudo-moar 006526: OUTPUT«Regex object coerced to string (please use .gist or .perl to do that) in block <unit> at /tmp/4lUQxJ49ii:1Nil» | ||
FROGGS | lizmat: there are so many ops that would need adjustment... | ||
zostay | m: class Foo { }; my Foo $f; $f.?foo; | ||
camelia | ( no output ) | ||
dalek | kudo/nom: cc67265 | peschwa++ | src/Perl6/World.nqp: Only add constant folded results to the current SC if they don't have one. This fixes a bug on JVM where the Attribute type object gets reassigned to the CORE.setting serialization context (from BOOTSTRAP.nqp), which broke runtime-creation of Attributes due to an SC-mismatch during Attribute attribute lookup. |
||
zostay | that feels like a bug to me | ||
lizmat | prefix ? ! so not ^ afaics | ||
dalek | p: 255ddbf | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/P6OpaqueBaseInstance.java: Revert "Only compare STables when looking for the nameToHintMap." This reverts commit 52e409ec22755de7d9dd6309e10996a88f4ec872. Conflicts: src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/P6OpaqueBaseInstance.java With Rakudo commit cc672654 we don't need this workaround anymore. |
19:03 | |
FROGGS | lizmat: also ~ | ||
lizmat: basically every op that you can imagine | |||
psch | zostay: why? .? means "call method if there is one, otherwise Nil" | 19:04 | |
[Coke] | moarvm 2015.10 tagged; no upload or macport until jnthn returns, I think. | ||
itz_stmuk | conversely I've noticed pure maths on perl6 to be an order of magnitude slower (based on a pi calculation) | ||
psch | m: class Foo { method foo { say "ok" } }; my Foo $f; $f.?foo | ||
camelia | rakudo-moar 006526: OUTPUT«ok» | ||
zostay | psch: but there isn't one, right? no signature matches my call | ||
FROGGS | [Coke]: we only need the upload for star, right? | ||
psch | zostay: right, which is why it returns Nil | ||
m: class Foo { }; my Foo $f; say $f.?foo | |||
camelia | rakudo-moar 006526: OUTPUT«Nil» | ||
zostay | yes, i know, i think you missed my first m: up there | 19:05 | |
leont | What's the right way to do catfile/catdir in perl6? I'm not seeing any such method documented on IO::Path :-s | ||
psch | zostay: oh, yes i did | ||
zostay: with that added information i'd still say "not a bug", though | |||
[Coke] | FROGGS: macports needs it. I think Star just bundles it, someone can manually finagle that if needed. | ||
psch | zostay: there is a method, and the signature doesn't fit, which is what it complains about | ||
leont | And IO::Spec is a bit low-level for my taste (though it'd work fine probably) | ||
FROGGS | m: say $*SPEC.catpath('foo', 'bar', 'baz') # | 19:06 | |
camelia | rakudo-moar 006526: OUTPUT«bar/baz» | ||
psch | zostay: .? doesn't check "can we dispatch to this", it only checks "does the method exist" | ||
FROGGS | leont: ^^ | ||
flussence | m: '/foo'.IO.child('bar').say | ||
camelia | rakudo-moar 006526: OUTPUT«"/foo/bar".IO» | ||
19:06
raiph left
|
|||
leont | flussence: thanks, that's what I was looking for :-) | 19:06 | |
zostay | psch: yes, i think that's wrong... convince me that that's the right way to think about it | 19:07 | |
dalek | c: b0392f9 | ugexe++ | doc/Type/Supply.pod: Fix zip-latest signature and throttle header |
||
psch | zostay: i don't understand how it can be wrong, fwiw. it's implemented as written. | ||
FROGGS | zostay: if the question mark only means "if there is no method", then it is implemented correctly. | 19:08 | |
zostay | yes, and all of my code always works as written too, but that doesn't mean that's the right implementation | ||
psch | m: class Foo { method f(Foo:D:) { } }; Foo.^can('f')[0]() # that's what .? means | ||
camelia | rakudo-moar 006526: OUTPUT«Too few positionals passed; expected 1 argument but got 0 in method f at /tmp/BibxCS_LKs:1 in block <unit> at /tmp/BibxCS_LKs:1» | ||
FROGGS | zostay: if it instead should mean "if there is no applicable method" on the other hand... | ||
zostay | but SHOULD it mean that? why should it mean that? | ||
FROGGS | zostay: check the design docs | ||
psch | zostay: oh, that's a very different question :) | 19:09 | |
zostay | RTFM? really? | ||
psch | zostay: as it stands, the behavior in rakudo is not a bug, because it conforms to the design/tests | ||
FROGGS | zostay: no, RTFDD... that's for the cool ppl :o) | ||
timotimo | i'm a little surprised that @array == 5 is measurably slower than @array.elems == 5 | 19:10 | |
nine | m: subset CompUnit::PrecompilationId of Str:D where { 2 < .chars < 64 && /^<[A..Za..z0..9_]>$/ }; | ||
camelia | ( no output ) | ||
zostay | i didn't specify what whether it's a design bug or a rakudo bug, i just say it feels like a bug to me | ||
FROGGS | timotimo: sounds like a job for The Timomizer™ :o) | 19:11 | |
timotimo | not sure; it's probably just that it adds one more call to the call chain | ||
as in: @arr == 5 would call @arr.Int which then calls @arr.elems? | |||
leont | My program has a --help flag, how do I make it display the Pod to the user? | ||
ugexe | its nice for providing hooks for roles, like `my $conn-host = self.?proxy // $header<host>;` where your default implementation has no proxy role but you are welcome to apply one and it will be handled | 19:12 | |
lizmat | psch: do we need an NQP bump or not ? | ||
psch | lizmat: oh, right, i missed that, yes | ||
lizmat: thanks | |||
19:12
pecastro joined
|
|||
FROGGS | lizmat: btw, the fact that /./ in combination with ops does not do the right thing hints to using m/./ instead | 19:13 | |
lizmat | timotimo: .elems is optimized in the iterator as doing count-only, maybe that's the difference ? | ||
dalek | kudo/nom: a91a75e | peschwa++ | tools/build/NQP_REVISION: Bump NQP_REVISION for the jvm SC fix. |
||
zostay | psgh, FROGGS: as far as i can tell the RTFDD doesn't justify the description and doesn't really imply psch's implementation either, it just says "it does this" | 19:14 | |
FROGGS | lizmat: so please don't make it work, if the solution is hacky and the semantics might not survive anyway | ||
psch | design.perl6.org/S12.html#Calling_s...of_methods say "$object.?meth(@args) # calls method if there is one, otherwise Nil" | ||
lizmat | FROGGS: now spectesting .Bool going up the stack until it finds the first .DEFINITE $_ | 19:15 | |
this seems to pass all tests *and* makes ?/./ work | |||
zostay | yes, but what does "if there is one" mean? that's not specific | ||
the roast tests don't demonstrate this case at all, i say it's not specified what it means | |||
psch | zostay: yes, i concede that the wording is a bit terse. i read it as "calls method meth if it exists in $object, otherwise return Nil" | ||
FROGGS | lizmat: that sounds better then adding another .Bool candidate | ||
lizmat | yup | ||
19:16
st_iron left
|
|||
psch | zostay: i also recognize that it could be understood to mean "calls method meth if it exists in $object and can be dispatched to, otherwise return Nil" | 19:16 | |
FROGGS | zostay: to me a method 'is there' if it implemented... even if it is implemented in a way that it will never be callable | ||
psch | zostay: that's where roast is probably the better DD to R, as it tests actual behavior | ||
zostay | i'll submit a PR and it can get hashed out further there :) | 19:17 | |
thx! | |||
FROGGS | zostay++ | ||
19:17
virtualsue left
|
|||
dalek | kudo/nom: 3c9c459 | lizmat++ | src/core/Regex.pm: Make both /./.Bool as well as ?/./ work Turns out that most likely, ?/./ has never worked, because the code in Regex.Bool was looking in the wrong caller frame. This commit makes it adaptive: Regex.Bool will use the first DEFINITE $_ it finds up the call stack: 1 level for direct calls like /./.Bool, 2 levels when using a boolean prefix such as ? ! so not ^. |
19:18 | |
leont | When are state's initialized? First entry of that scope? | ||
timotimo | m: say "out"; do { say "begin"; state $foo = say "hi"; say "end"; } | 19:19 | |
camelia | rakudo-moar 006526: OUTPUT«outbeginhiend» | ||
timotimo | m: say "out"; for ^3 { say "begin"; state $foo = say "hi"; say "end"; } | ||
camelia | rakudo-moar 006526: OUTPUT«outbeginhiendbeginendbeginend» | ||
19:19
tokuhirom_ joined
|
|||
timotimo | apparently the first time it gets encountered | 19:19 | |
leont | Excellent! | 19:20 | |
timotimo | m: say "out"; for ^3 { say "begin"; state $foo = say "hi" if Bool.pick; say "end"; } | ||
camelia | rakudo-moar 006526: OUTPUT«outbeginendbeginendbeginend» | ||
timotimo | m: say "out"; for ^3 { say "begin"; state $foo = say "hi" if Bool.pick; say "end"; } | ||
camelia | rakudo-moar 006526: OUTPUT«outbeginhiendbeginendbeginend» | ||
timotimo | m: say "out"; for ^3 { say "begin"; state $foo = say "hi" if Bool.pick; say "end"; } | ||
camelia | rakudo-moar 006526: OUTPUT«outbeginhiendbeginendbeginend» | ||
timotimo | m: say "out"; for ^3 { say "begin"; state $foo = say "hi" if Bool.pick; say "end"; } | ||
camelia | rakudo-moar 006526: OUTPUT«outbeginendbeginendbeginend» | ||
timotimo | m: say "out"; for ^3 { say "begin"; state $foo = say "hi" if Bool.pick; say "end"; } | ||
camelia | rakudo-moar 006526: OUTPUT«outbeginendbeginendbeginend» | ||
timotimo | interesting | ||
lizmat | psch: error: pathspec '2015.09.1-150-g0b8fc76' did not match any file(s) known to git | 19:21 | |
??? | |||
19:21
martinf82 joined
|
|||
lizmat cannot build rakudo atm | 19:21 | ||
psch | uh | ||
nine | m: subset CompUnit::PrecompilationId of Str:D where { 2 < .chars < 64 && /^<[A..Za..z0..9_]>$/ }; CompUnit::PrecompilationID $foo = 'abc123'; | 19:22 | |
camelia | rakudo-moar 006526: OUTPUT«5===SORRY!5=== Error while compiling /tmp/a4_i0JIq4RVariable '$foo' is not declaredat /tmp/a4_i0JIq4R:1------> 030..9_]>$/ }; CompUnit::PrecompilationID 7⏏5$foo = 'abc123';» | ||
psch | err | ||
lizmat | even on a clean install :-( | ||
psch | yeah, wrong workflow | ||
nine | m: subset CompUnit::PrecompilationId of Str:D where { 2 < .chars < 64 && /^<[A..Za..z0..9_]>$/ }; my CompUnit::PrecompilationID $foo = 'abc123'; | ||
camelia | rakudo-moar 006526: OUTPUT«5===SORRY!5===Type 'CompUnit::PrecompilationID' is not declaredat /tmp/vtkYsIjPYh:1------> 3.9_]>$/ }; my CompUnit::PrecompilationID7⏏5 $foo = 'abc123';Malformed myat /tmp/vtkYsIjPYh:1------> 3& /^<[A..Za..z0..9_]>$/ }; my Comp…» | ||
psch | i messed up the bump | ||
nine | m: subset CompUnit::PrecompilationId of Str:D where { 2 < .chars < 64 && /^<[A..Za..z0..9_]>$/ }; my CompUnit::PrecompilationId $foo = 'abc123'; | ||
camelia | rakudo-moar 006526: OUTPUT«Method 'match' not found for invocant of class 'Any' in any accepts_type at gen/moar/m-Metamodel.nqp:3232 in block <unit> at /tmp/jj_bk7trXu:1» | ||
nine | m: subset CompUnit::PrecompilationId of Str:D where { 2 < .chars < 64 && /^<[A..Za..z0..9_]>$/ }; my CompUnit::PrecompilationId $foo; | ||
camelia | ( no output ) | ||
hoelzro | someone forgot to push a tag? | ||
nine | m: subset CompUnit::PrecompilationId of Str:D where { 2 < .chars < 64 && /^<[A..Za..z0..9_]>$/ }; sub foo(CompUnit::PrecompilationId $foo) {}; | ||
camelia | rakudo-moar 006526: OUTPUT«===SORRY!===Cannot find method 'nominalize'» | ||
nine | Ah, there it is. | ||
m: subset CompUnit::PrecompilationId of Str where { 2 < .chars < 64 && /^<[A..Za..z0..9_]>$/ }; sub foo(CompUnit::PrecompilationId $foo) {}; | |||
camelia | ( no output ) | ||
FROGGS | uhh | 19:23 | |
nine: can you RT it? | |||
hoelzro | not even 0b8fc76 resolves in nqp =S | ||
nine | FROGGS: on it | ||
FROGGS | nine++ | ||
19:23
jevin left
|
|||
psch | lizmat, hoelzro: yes, that was nqp-j --version output without the commit actually commit | 19:23 | |
my bad | |||
+ed | 19:24 | ||
nine | FROGGS: any reason why Perl6::Metamodel::DefiniteHOW is not nominal? | ||
19:24
tokuhirom_ left
|
|||
psch actually verifies the new NQP_REVISION is correct this time | 19:24 | ||
dalek | kudo/nom: 97e0a36 | peschwa++ | tools/build/NQP_REVISION: Correctly bump NQP_REVISION. |
19:25 | |
psch | it builds here | ||
so i *think* i did it right this time... :S | |||
again, sorry | |||
lizmat checks | 19:26 | ||
psch: no worries :-) | |||
19:26
raiph joined
|
|||
PerlJam | psch++ (for giving us another opportunity to display forgiveness ;) | 19:26 | |
lizmat | looks ok so far :-) | ||
19:27
jevin joined
|
|||
FROGGS | nine: I dunno | 19:27 | |
19:28
skids joined
|
|||
FROGGS does not even know what it means | 19:28 | ||
nine | FROGGS: from my very limited understanding I think it should be :nominalizable and have the same method nominalize as SubsetHOW | ||
FROGGS | hmmm, I thought this was tied to SubsetHOW | 19:31 | |
but that was just a guess | |||
jdv79 | sergot_: around? | 19:32 | |
19:32
woolfy left
|
|||
dalek | ast: c7e7bde | lizmat++ | S05-metasyntax/regex.t: Add some tests for ? ! so not /./.Bool |
19:35 | |
19:37
flussence left
|
|||
lizmat | m: my $rx = /./; say <one two three>.grep: { not $rx or so $rx } | 19:39 | |
camelia | rakudo-moar cc6726: OUTPUT«Method 'match' not found for invocant of class 'Any' in block <unit> at /tmp/StQ9jLjr3K:1» | ||
lizmat | this should work soon :-) | ||
.tell llfourn commit 3c9c4591cf0f666607dd made my $rx = /./; say <one two three>.grep: { not $rx or so $rx } DWIM | 19:40 | ||
yoleaux | lizmat: I'll pass your message to llfourn. | ||
dalek | kudo/nom: 31146cc | TimToady++ | src/Perl6/Actions.nqp: don't need these can('returns') guards now since we catch infix:<,> upstream from this now |
19:41 | |
kudo/nom: f45ed86 | TimToady++ | src/Perl6/Actions.nqp: also need to not curry invocant variant of comma |
|||
19:41
rindolf left
19:42
pullphinger joined,
pullphinger left,
travis-ci joined
|
|||
travis-ci | Rakudo build failed. Pepe Schwarz 'Bump NQP_REVISION for the jvm SC fix.' | 19:42 | |
travis-ci.org/rakudo/rakudo/builds/86891917 github.com/rakudo/rakudo/compare/c...1a75e1f822 | |||
19:42
travis-ci left
|
|||
dalek | ast: 6a07e75 | usev6++ | S05-match/capturing-contexts.t: Add test for RT #118453 |
19:42 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=118453 | ||
psch | /o\ | ||
but travis, i fixed it already :/ | |||
FROGGS | psch: give travis some time | ||
19:42
pullphinger joined
19:44
raiph left
|
|||
jdv79 | RabidGravy: quite a little pile... | 19:45 | |
19:47
flussence joined
19:48
travis-ci joined
|
|||
travis-ci | Rakudo build failed. Elizabeth Mattijsen 'Make both /./.Bool as well as ?/./ work | 19:48 | |
travis-ci.org/rakudo/rakudo/builds/86892922 github.com/rakudo/rakudo/compare/a...9c4591cf0f | |||
19:48
travis-ci left
|
|||
lizmat | in further news, psch's fix is still underway to Travis | 19:50 | |
19:50
raiph joined
19:51
Mhoram left
|
|||
PerlJam | maybe during periods of "high activity" travis should only attempt a build every N minutes or M commits or something. | 19:51 | |
I don't even know if you can configure travis that way, but if you could it would save on confusion and resources | |||
19:52
Mhoram joined,
Mhoram is now known as abaugher
19:54
zakharyas joined
|
|||
hoelzro | PerlJam: I don't think you can; I remember looking into it a while ago | 19:54 | |
we have a very similar problem @ work =/ | |||
19:55
xinming left,
xinming joined,
[Sno] left
19:56
abraxxa joined,
abraxxa left
|
|||
psch | nine: fwiw, bool_enum fails on jvm with "Attribute '$!value' is not a native int" in the bindattr_i for Int | 20:00 | |
nine: which makes sense, 'cause Int!value is a bigint | |||
nine: maybe that helps with your moar efforts there | |||
nine | And again something that moar doesn't complain about... | ||
psch: thanks for the hint! | 20:01 | ||
psch | ("for Int" means "in the Bool area where Int!value for Bool::False is set, but that's probably already understood...) | 20:02 | |
s/,/",/ | |||
(and s/",/,"/ for people who like english quotes-and-commas rules :P ) | 20:03 | ||
jdv79 | RabidGravy: any idea why form fields end up as http header fields? | 20:04 | |
nine | psch: FWIW I didn't even know if I should use bindattr_i or bindattr. It's all cargo culted ;) | ||
20:04
sufrostico joined
|
|||
jdv79 | RabidGravy: or why header values are split on comma? | 20:05 | |
those are what i've found yet | |||
haven't fixed them well enough though and dinner & | |||
cosimo | seems that travis doesn't resolve IPv6 addresses | ||
RabidGravy | what form fields? | ||
psch | nine: the hint is usually the declared type of the attribute. if that's native, use the bindattr_* form, otherwise bindattr | ||
nine: i at least haven't found a spot where that's the wrong approach :)= | 20:06 | ||
-= | |||
nine | jnthn++ # dropping subtle little errors in his gists for added debugging fun :) | ||
jdv79 | oh right, ha. well that's cool. | 20:07 | |
so POST is essentially unimplemented as far as payload | |||
RabidGravy | yes | ||
jdv79 | so one bug and one feature then instead of 2 bugs | 20:08 | |
maybe tomorrow | |||
[Coke] | nqp-j has a failing test. | 20:09 | |
RabidGravy | you can add payload, just you have to have it in the correct format | ||
20:10
pierrot left
|
|||
psch | [Coke]: i'll look at that in a bit. it's probably my fault anyway... :s | 20:10 | |
lizmat confirms jvm builds on OS-X | |||
20:10
TEttinger joined
|
|||
Hotkeys | Why does the second one work but the first doesn't | 20:11 | |
pastebin.com/tkUGe41F | |||
am I just bad at syntax | |||
RabidGravy | jdv79, see also the HTTP::Request::Common that has helpers to do a lot of the for you | ||
Hotkeys | am I using map incorrectly | ||
RabidGravy | I think it needs a cookbook | ||
FROGGS | Hotkeys: .elems yields an integer, and you basically call .map on that | 20:12 | |
psch | m: say .elems | 20:13 | |
camelia | rakudo-moar 97e0a3: OUTPUT«1» | ||
geekosaur | *.elems ? | ||
psch | m: say map .elems, ^10 | ||
camelia | rakudo-moar 97e0a3: OUTPUT«Cannot call map(Int, Range); none of these signatures match: (&code, + is raw) in block <unit> at /tmp/6bMBRh2CM2:1» | ||
geekosaur | m: say map *.elems, ^10 | 20:14 | |
camelia | rakudo-moar 97e0a3: OUTPUT«(1 1 1 1 1 1 1 1 1 1)» | ||
Hotkeys | *.elems just gives me a list of 1s | ||
geekosaur | m: say map {.elems}, ^10 | ||
camelia | rakudo-moar 97e0a3: OUTPUT«(1 1 1 1 1 1 1 1 1 1)» | ||
psch | i think there's also a do { } missing? | ||
Hotkeys | oh | ||
right | |||
psch | maybe not, i think i'm slightly over-eager with do-blocks, sometimes :) | ||
Hotkeys | does the bot keep things, can I define a function in one line and then call it in another | 20:15 | |
or does it only do one line statements | |||
(with ';') | |||
lizmat | [Coke]: FWIW, I'm seeing a lot of fails on JVM in spectest | ||
RabidGravy | one line only | ||
geekosaur | but you can feed it a gist, I think | 20:16 | |
FROGGS | lizmat: the jvm spectest was very unclean since the GLR | ||
geekosaur | (as in gist.github.com url) | ||
psch | there's a failure in 51-multi.t on nqp-j | ||
i suspect that's (part of) what [Coke]++ is talking about | 20:17 | ||
Hotkeys | m: sub collatz($x) { return $x, -> $a { $a %% 2 ?? $a / 2 !! 3 * $a + 1 } ... 1; } say map { .elems }, (collatz($_) for 1, 3 ... 10) | ||
camelia | rakudo-moar 97e0a3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/veVOTxHnv6Strange text after block (missing semicolon or comma?)at /tmp/veVOTxHnv6:1------> 3 %% 2 ?? $a / 2 !! 3 * $a + 1 } ... 1; }7⏏5 say map { .elems }, (collatz($_) for 1, expecting an…» | ||
Hotkeys | m: sub collatz($x) { return $x, -> $a { $a %% 2 ?? $a / 2 !! 3 * $a + 1 } ... 1; }; say map { .elems }, (collatz($_) for 1, 3 ... 10) | ||
camelia | rakudo-moar 97e0a3: OUTPUT«(1 8 6 17 20)» | ||
Hotkeys | what | ||
I just tried it locally and it didn't work | |||
geekosaur | how recent is your build? | 20:18 | |
FROGGS | lizmat: it is at 30%ish since mid September | ||
Hotkeys | 2015.09 msi of rakudo | ||
geekosaur | camelia's version moves quickly with bugfixes | ||
FROGGS | lizmat: github.com/coke/perl6-roast-data/b..._rates.csv | ||
20:18
zakharyas left
|
|||
Hotkeys | running on windows | 20:18 | |
lizmat | ok... so nothing new then... :-( | ||
20:18
darutoko left
|
|||
psch | lizmat: i'm confident that the lowest breakage is fixed now, so i can start looking at spectests agian | 20:18 | |
lizmat | psch++ | ||
psch | well, and nqp-j first... :s | ||
geekosaur | Hotkeys, there have been a LOT of fixes since then | 20:19 | |
Hotkeys | ah | ||
FROGGS | lizmat: correct... the Attribute conversation this evening is still a result of the GLR and other stuff | ||
Hotkeys | should I just build from source | ||
geekosaur | I don;t even recall if that release had the initial GLR implementation yet --- that change made a lot of things more rational | ||
FROGGS | Hotkeys: there will be a 2015.10 msi soonish | ||
gnight #perl6 | 20:20 | ||
20:20
FROGGS left
|
|||
dalek | kudo/nom: 416b5aa | (Stefan Seifert)++ | src/Perl6/Metamodel/DefiniteHOW.nqp: Fix subtypes of definite types Fixes subtype Foo of Str:D; failing with "Cannot find method 'nominalize'" |
20:21 | |
cosimo | RabidGravy: did you have a chance to look at Cache::Memcached failures? | 20:22 | |
nine | .tell FROGGS github.com/rakudo/rakudo/commit/416b5aa612 | ||
yoleaux | nine: I'll pass your message to FROGGS. | ||
bartolin | psch++ # rakudo.jvm fixes | 20:23 | |
Hotkeys | I'm going to attempt building from source | 20:24 | |
psch | huh, the test that fails is barely two weeks old | 20:26 | |
nine | psch: with bindattr I get P6opaque: representation mismatch when storing value to attribute | ||
RabidGravy | cosimo, I sent A PR - it's all worky here | ||
psch | i think that means we just didn't know it's broken... | ||
20:27
Ch0c0late left
|
|||
RabidGravy | :) There were only or two things that needed changing | 20:27 | |
[Coke] | lizmat: we shipped a broken jvm last month, will probably do so again. :| | 20:28 | |
psch | nine: looking a bit closer, i wonder why you add a second int-typed $!value attribute to Bool | 20:29 | |
20:29
jnm_theMailman left,
xfix left
|
|||
psch | nine: you get one for free from Int, which should probably be enough | 20:29 | |
RabidGravy | cosimo, github.com/cosimo/perl6-cache-memcached/pull/6 | ||
20:29
abraxxa joined
|
|||
leont | I have a list of arguments, that I want to separate on "does it start with -- or not", is there a cleaner way than grepping twice? | 20:29 | |
20:30
abraxxa left
|
|||
nine | psch: good questions. It's been a while since I've been working on this code. And it took me quite some time to figure out how all of this works | 20:30 | |
psch | nine: the repr mismatch is probably the reason for the workaround in src/core/allomorphic.pm for IntStr | ||
cosimo | RabidGravy: cool, thanks | ||
psch | nine: line 4 in that file, to be precise. an IntStr is Int is Str, but we can't bindattr{,_i} because bigints aren't quite nqp-level exposed | ||
leont | @all.classify({...}).{True,False} is the best I can come up with, but not being able to use @variables is meh | ||
cosimo | RabidGravy: indeed, it's passing for me too, with the 2 todo tests passing too | 20:31 | |
psch | nine: you could co-opt the workaround from allomorphic.pm or try to not have a secondary $!value - the latter would be my suggestion, because in contrast to IntStr you don't have two attributes called $!value | ||
20:31
kjs_ left
|
|||
cosimo | RabidGravy: awesome, thanks | 20:31 | |
nine | psch: even if I loose the $!value from Bool, I still have to bind to the $!value from Int which is where the problem lies | 20:32 | |
RabidGravy | cosimo, I found the timeout tests somewhat flaky, sometimes don't work | ||
so I TODOd them | |||
psch | nine: oh. right, Int brings the bigint, which means the nqp::add_I workaround is probably the workable solution | 20:33 | |
cosimo | RabidGravy: understood | ||
[Coke] | ilmari: someone disagrees with you: | ||
github.com/rakudo/rakudo/commit/d7...t-13935958 | 20:34 | ||
nine | psch: nqp::add_I($false, 0, Int);? | ||
psch | nine: hrm, but that's kinda troublesome too, 'cause you don't have a convenient peg to hang the binding onto... | ||
oh, nvm, you do | |||
nine: not quite. $false := nqp::add_I(0, 0, Bool); | |||
nine: and the bindattr_s for "False" after that | 20:35 | ||
nine: actually, just replace the nqp::create call with the add_I call | |||
nine: and delete the bindattr_i calls | |||
nine: because Bool is Int, you can create a Bool with add_I | |||
nine: and onto the Bool created thus you bindattr_s the $!key | |||
nine | This representation (P6int) cannot unbox to other types | 20:36 | |
m: use nqp; nqp::add_I(0, 0, Int); | 20:37 | ||
camelia | ( no output ) | ||
nine | m: use nqp; class B is Int {}; nqp::add_I(0, 0, B); | ||
camelia | ( no output ) | ||
PerlJam | leont: what do you mean about not being able to use @variables? | ||
leont | I preferred to have them end up in two @variable, but I don't think I can do that without breaking it up in multiple lines | 20:38 | |
But I decided to get rid of that entire piece of code, so I'm not actively looking anymore | |||
20:39
rurban joined,
martinf82 left
|
|||
psch | nine: EnumHOW and ClassHOW repr mismatch i guess..? | 20:40 | |
20:40
Greg__ joined
|
|||
psch | nine: IntStr clearly still has a ClassHOW underneath... | 20:40 | |
nine | psch: or nqp 0 is no Perl 6 0 | 20:41 | |
I guess nqp's 0 is an int which is repr P6int | |||
leont | It seems MAIN's argument handling doesn't understand :@multi-arg parameters :-( | ||
The way Getopt::Long does… | |||
vendethiel | leont: named mutli-args? | ||
multi | |||
20:42
yqt joined
|
|||
psch | nine: right, maybe that too | 20:42 | |
vendethiel | m: sub MAIN(:@arg) {}; say USAGE; | 20:43 | |
camelia | rakudo-moar f45ed8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/XQIPBUEDL_Undeclared name: USAGE used at line 1» | ||
leont | In Getopt::Long, you can declare an argument "bar=s@", and then do «foo --bar=1 --bar=42», and it will end up in | ||
nine | I hope nqp::create(Int) gives me a 0. But how on earth do I create a 1? | ||
PerlJam | leont: I think you have to do your own arg processing for that | 20:44 | |
ugexe | do $multi-arg not @Multi-arg | ||
20:44
mspo_ is now known as mspo
|
|||
leont | That kind of sucks :-/ | 20:45 | |
leont sometimes has high expectations from perl6 | |||
20:46
n0tjack left
20:47
kjs_ joined
|
|||
nine | psch: ah, basic mathematics: nqp::pow_I(nqp::create(Int), nqp::create(Int), Int, Int) # I guess this code is so obvious, it doesn't even warrant a comment... | 20:48 | |
garu | leont: check github.com/tokuhirom/p6-Getopt-Tiny :) | 20:49 | |
it should DWYW | |||
lizmat | m: sub a(:$a) { dd $a }; a( :42a, :666a) # leont: underlying reason | 20:50 | |
camelia | rakudo-moar f45ed8: OUTPUT«Int $var = 666» | ||
20:50
tokuhiro_ joined
|
|||
leont | garu: yeah, was considering that, but it's for rakudo-core ;-) | 20:51 | |
nine | psch: unfortunatly it still segfaults :/ | ||
lizmat | m: sub a(:@a) { dd @a }; a( :42a, :666a) # now if this would work :-) | ||
camelia | rakudo-moar f45ed8: OUTPUT«Type check failed in binding @a; expected Positional but got Int in sub a at /tmp/Gnu4_lRDqm:1 in block <unit> at /tmp/Gnu4_lRDqm:1» | ||
leont | Anyway, I'm very close to having a functional harness for rakudo. | 20:54 | |
20:55
tokuhiro_ left
|
|||
leont | How important is archiving? There's a target for it in the jvm makefile, but not the moar one | 20:55 | |
nine | But except for those weird segfaults in Bool.pick(*) and Bool.roll, all other spec test failures are out of date tests :) | 20:57 | |
psch | nine: what does Bool.list do for you locally? | 20:58 | |
nine: nevermind, just saw Bool has its own .roll and .pick | 20:59 | ||
m: my enum Foo <a b>; say (Foo::a, Foo::b).pick | 21:00 | ||
camelia | rakudo-moar 416b5a: OUTPUT«a» | ||
psch | m: my enum Foo <a b>; say Foo.pick | ||
camelia | rakudo-moar 416b5a: OUTPUT«b» | ||
psch | m: my enum Foo <a b>; say Foo.pick(*) | ||
camelia | rakudo-moar 416b5a: OUTPUT«(a b)» | ||
leont | Why is IO::Spec::Win32 ~~ IO::Spec::Unix? | 21:01 | |
That's the sort of mistake we made in perl5 that wasn't good to repeat, really | |||
psch | nine: re: "warrant a comment", i'd probably at least document it with "0 ** 0 == 1" or something succint like that | 21:03 | |
21:03
kaare_ left
|
|||
ugexe | m: say IO::Spec::Win32.ACCEPTS(IO::Spec::Unix); | 21:04 | |
camelia | rakudo-moar 416b5a: OUTPUT«False» | ||
lizmat | leont: in what way was that a mistake ? | ||
21:04
rindolf joined
|
|||
psch | m: say IO::Spec::Win32.isa(IO::Spec::Unix) | 21:04 | |
camelia | rakudo-moar 416b5a: OUTPUT«True» | ||
21:04
geraud joined
|
|||
leont | I wanted to check if I had a IO::Spec::Unix or not, and I got the wrong answer! | 21:05 | |
It's leaking out an implementation detail | 21:06 | ||
psch .oO( $thing ~~ $typeobj is more of a instanceof, not isInstance... shush java-think!) | |||
s/isInstance/$thing.getClass().equals($typeobj.getClass())/ # i confuse those, occassionally... | 21:07 | ||
21:07
sufrostico left
|
|||
psch | leont: i can your concern though (the java-detour aside) | 21:08 | |
+understand | |||
leont | I want to rewrite from Unix filename to local filename, but only when necessary. | ||
psch | leont: .WHAT === .WHAT is probably the best for type identity | 21:09 | |
leont: infix:<~~> always allows subclasses, which might still be wonky in case someone decided OSX.isa(Unix) for example | |||
or whathaveyou | 21:10 | ||
leont | I understand how ~~ works | ||
I just hadn't expected something to be a subclass when it actually fails the Liskov substitution principle | 21:11 | ||
21:11
Greg__ left
21:12
pullphinger left
|
|||
leont | You can not use an IO::Spec::Win32 in place of an IO::Spec::Unix, and expect your program to continue functioning the way it did before. | 21:13 | |
TimToady | probably means something should in a role rather than in a class | ||
pink_mist | IO::Spec::Unixy! | ||
leont | IO::Spec::Base, pretty much | 21:14 | |
Or whatever one wants to call it | |||
lizmat | FWIW, in my opinion IO::Spec should die | ||
leont | Isn't IO::Spec a thing already? | ||
psch | didn't newio throw them out? | ||
or did that get suspended | |||
leont | lizmat: I suspect we will need the functionality somewhere, but we may be able to do better than what we have inherited | 21:16 | |
lizmat | psch: newio is dead in the water after GLR | ||
and was pretty dormant before it | 21:17 | ||
leont | Great, my naive solution false triggers QNX and Cygwin as non-unix :-s | ||
21:17
kmel joined
|
|||
psch | lizmat: oh alright, thanks for the info | 21:18 | |
lizmat: ooc, was that decision about GLR specifically or more of "adapting this is gonna be too horrible"? | 21:19 | ||
s/GLR/something in GLR/ | |||
Hotkeys | Anyone have any idea why I'm getting this err when trying to build rakudo pastebin.com/RBwprw5F | ||
can't find anything on the google | 21:20 | ||
lizmat | no, it's just that many things were broken during the GLR: merges are not clean atm | ||
and since there was no consensus on the work I had done in there | |||
I figured I wouldn't spend any more time on it | |||
hoelzro | Hotkeys: I don't know, but let me know if you figure it out; I've been trying to set up a Windows dev env forever | 21:21 | |
ooc, which version of Windows and which compiler are you using? | |||
Hotkeys | 7 | ||
geekosaur guesses an exception, and the moar version needs to be verified | |||
Hotkeys | using the visual studio 2015 nmake | 21:22 | |
geekosaur | nmake is just the messenger there | 21:23 | |
itz_stmuk | I could only build 32 bit rakudo on VS2015 myself | 21:25 | |
leont is fine with IO::Spec leaving tomorrow, but prefers having a sensible thing today (unless you beat me to it while away for the weekend) | 21:26 | ||
lizmat | leont: not going to happen :-( | ||
so please beat us! | |||
Hotkeys | gonna try rakudobrew | ||
hoelzro | I think I did 64bit VS2015 and got an access violation | 21:27 | |
maybe I should try the 32bit vers | |||
itz_stmuk | I ended up downgrading VS | 21:28 | |
psch | hm, the 51-multi.t failure in nqp is because named arguments don't count as arguments | 21:29 | |
which seems wrong on the surface, but simply counting them doesn't quite work out | |||
21:29
adu left
|
|||
hoelzro | itz_stmuk: I tried that too =/ | 21:30 | |
I tried VS2015, VS2013, and Mingw on Win8 | |||
and VS2013 on Win7 | |||
itz_stmuk | I had no problems at all with VS2010 | 21:31 | |
psch | unfortunately that's again an area where i'm not sure i can derive useful information from the corresponding bits in mvm, if i can even find them... | ||
itz_stmuk | I think jnthn said he used VS2013 | ||
21:32
lichtkind joined
|
|||
itz_stmuk | with VS2010 I installed SP1 for it and SDK 7.1 (for 64bit support) and it still worked on Windows 10 | 21:32 | |
21:32
kmel left
|
|||
dalek | oblem_solver_tutorial: 6c85e5f | lichtkind++ | chapter/self1.pl6: selfprinting example |
21:33 | |
oblem_solver_tutorial: 80be9e0 | lichtkind++ | chapter/text0.md: completed paragraph 5 chapter 0 |
|||
lichtkind | latest part is about perl philosophy | ||
21:33
captian-adequate left
|
|||
lichtkind | especially larry please check if it correctly represents your views - thank you | 21:33 | |
21:34
sufrostico joined
21:36
muraiki left
|
|||
Hotkeys | brb going to school | 21:37 | |
hooray for night lectures /s | |||
dalek | p: 9b68e81 | coke++ | tools/build/MOAR_REVISION: bump MOAR_REVISION to latest release |
21:40 | |
p: e4334e6 | coke++ | VERSION: bump VERSION to 2015.10 |
|||
retupmoca | re: rakudo windows build failure: I have a ticket created, but it looks like a jitbug to me github.com/MoarVM/MoarVM/issues/284 | 21:41 | |
21:43
^elyse^ left
|
|||
[Coke] | oh, hey, I have no idea what passphrase I used to create my key when I did the release last month. | 21:43 | |
lizmat | [Coke]: :-( | 21:45 | |
pink_mist | that seems to not be ideal | ||
skids | :( (Neither do I :) | ||
leont | Meh, I can't make IO::Spec a role without getting rid of the IO::Spec.select method | 21:47 | |
lizmat | leont: welcome to my newio world :-) | ||
good night, #perl6! | 21:48 | ||
21:48
kjs_ left
|
|||
psch | night lizmat o/ | 21:48 | |
spider-mario | <dalek> nqp: bump VERSION to 2015.10 | ||
2015.10? | |||
2015.10! | |||
that’s a release | |||
leont | IO::Spec::Any it is! | 21:50 | |
21:50
tokuhirom_ joined
|
|||
[Coke] | spider-mario: I'm working on it. | 21:51 | |
stuck on the (&#@$# tagging step. | |||
21:54
cygx joined
|
|||
cygx | o/ | 21:54 | |
Hotkeys, hoelzro: try building Rakudo with MVM_SPESH_DISABLE=1 set | |||
hoelzro | cygx: thanks, I'll give that a shot! | 21:55 | |
21:55
tokuhirom_ left
|
|||
cygx | hoelzro: setting that variable is the only way I get the setting to build, but it works fine otherwise | 21:56 | |
hoelzro | the setting? I couldn't even get NQP to build =/ | ||
21:57
zakharyas joined
|
|||
cygx | I have yet to see the NQP build fail... | 21:57 | |
(Win 7 64-bit, Strawberry Perl 5.20.2 / MSWin32-x64-multi-thread) | 21:59 | ||
psch | hrm, the naive fix for the nqp-j test failure probably messes up our arity caching there... | 22:02 | |
i guess that mean i have to actually understand what's going on there... /o\ | |||
leont | Have a patch, superficially seems to work, now lets test for real | 22:04 | |
psch | leont++ | ||
22:07
vike left
|
|||
psch | .tell zostay some research suggests C# has a ?. operator, which means "if the LHS is not null, call the RHS as method on it" | 22:11 | |
yoleaux | psch: I'll pass your message to zostay. | ||
22:11
vike joined
|
|||
leont | Weird, it dies during compilation with: Error while constructing error object:Could not locate compile-time value for symbol X::InvalidType | 22:11 | |
psch | leont: that usually means you have a failure of the type of the exception it can't load before that exception is composed properly | 22:12 | |
leont: it usually dumps the hash it would use to construct that exception below, which should have a hint or two | 22:13 | ||
leont | suggestions: (unstringifiable object) typename: IO::Spec::Any | ||
psch | .tell zostay the semantic difference, as i see it, is that we can have methods that work as class methods or instance methods but don't (neccessarily) know before we try to dispatch | ||
yoleaux | psch: I'll pass your message to zostay. | ||
psch | .tell zostay whereas C# can say "ok this is{,n't} always an instance method" during compile time | 22:14 | |
yoleaux | psch: I'll pass your message to zostay. | ||
leont | It seems my sourcefile isn't included in the setting | ||
How do I cause it to be there? | |||
psch | leont: add it to tools/build/Makefile-$backends.in | 22:15 | |
leont | ack suggests tools/build/moar_core_sources | ||
22:15
lichtkind left
|
|||
leont | Makefile-$backends seems logical too | 22:15 | |
psch | leont: oh, right, i think there's something i'm not 100% up-to-date about whether we generate bits or not | 22:16 | |
leont | It seems I need to update Makefile-JVM and moar-core-sources | ||
psch | leont: as in, i'm not sure if Makefile-$backends.in are generated or not - pmurias++ recently said Makefile-JS.in is generated, but i'm pretty sure Makefile-JVM.in isn't... | 22:17 | |
TimToady | m: say (* X+ 42 X+ *)(41,43) | 22:18 | |
camelia | rakudo-moar 416b5a: OUTPUT«Too many positionals passed; expected 1 argument but got 2 in block <unit> at /tmp/T9rWXt3LUG:1» | ||
22:18
tokuhiro_ joined
|
|||
TimToady testing a patch for this | 22:18 | ||
[Coke]: are you tagging nqp or rakudo? I hope I have time to get this patch in... | 22:20 | ||
dalek | ast: 78701f5 | TimToady++ | S02-types/whatever.t: fixed multiple * on autopriming call ops |
22:22 | |
kudo/nom: 1f2ea21 | TimToady++ | src/Perl6/Actions.nqp: fix multiple * on autoprimed call ops This fixes things like * X+ * |
22:23 | ||
22:25
tokuhiro_ left
|
|||
jdv79 | RabidGravy: why is that not in Request.pm? | 22:26 | |
that's wrong | 22:27 | ||
dalek | kudo/nom: 75db4a5 | TimToady++ | docs/ChangeLog: list assoc can now autoprime |
||
RabidGravy | why? | ||
jdv79 | because doing that stuff is basic | ||
it should be "core"'ed | 22:28 | ||
RabidGravy | no it's a common use, but not basic | ||
jdv79 | performing a useful POST is basic | 22:30 | |
leont | Meh, now the restricted setting doesn't compile :-/ | ||
RabidGravy | you meaning performing an form/x-url-encoded is basic? | ||
22:31
vendethiel left
|
|||
jdv79 | either url-encoded or multi-part | 22:31 | |
leont | Probably fixed it, but this recompile cycle is slow :-s | ||
RabidGravy | I could argue that so is performing a text/javascript post is basic | ||
or application/xml | 22:32 | ||
or whatever | |||
jdv79 | are you being serious? | ||
RabidGravy | yes | ||
psch | ...i'm starting to question the design of org.perl6.nqp.reprs.MultiCacheInstance | 22:34 | |
oh, but that's probably because i'm not paying enough attention, carry on! | |||
jdv79 | in my 15 year career i can only remember seeing url-encoded or multi-part POSTS. | ||
leont | That's what browsers would do | 22:35 | |
If you're not a browser, you can do anything, really | |||
RabidGravy | never used REST or SOAP or XML::RPC? | ||
22:36
rurban left
|
|||
jdv79 | i'm merely advocating for making the common paths the defaults/easiest | 22:36 | |
RabidGravy | that's my point | ||
everyone has a different common path | 22:37 | ||
psch | hrm, but something is weird there | ||
m: sub f($, :$a) { }; say &f.arity | |||
camelia | rakudo-moar 416b5a: OUTPUT«1» | ||
psch | assuming that semantic carries down to nqp, at least | 22:38 | |
RabidGravy | I spent the last five years building a system that used HTTP as an interface between parts and not once did it use url-encoded posts but posted a lot of data | ||
jdv79 | ok | 22:42 | |
the very concept of a ::Common ns seems ridiculous to me but ok | 22:43 | ||
if its common then perhaps that should be the base | |||
itz_stmuk | oh no | 22:47 | |
act.yapc.eu/lpw2015/talk/6436 | |||
22:49
virtualsue joined
|
|||
leont | It's working at last! \o/ | 22:50 | |
psch | itz_stmuk: that's a bit discouraging | ||
i've seen bits of Zefram++, mostly RTs and a bit of discussion | |||
22:51
telex left
|
|||
RabidGravy | itz_stmuk, I saw that earlier, got a bit confused, ignored it and decided that I wouldn't be going to LPW | 22:51 | |
psch | irclog.perlgeek.de/perl6/2015-09-24#i_11268124 that's where he went, afair | ||
where "went" means "left" | |||
22:52
telex joined
|
|||
itz_stmuk | he's heavily into scheme now | 22:53 | |
or rather his own version | |||
psch | i really just don't understand the motivation behind that | 22:55 | |
reminds me of this C3 talk about the vulnerability in bugzilla and how that means perl5 is a bad language | 22:56 | ||
jdv79 | i feel there have been a few of those over the years | 22:58 | |
RabidGravy | jdv79, this not all to say I'm averse to putting in some convenient and simple .post method into the UserAgent class it's just not high on my personal priorities :) | 22:59 | |
jdv79 | my motivation is simply to have the lib be as useful as possible. if someone has to dig to find something "common" that's a problem. | 23:00 | |
no big deal | |||
i just lied. it is: | 23:02 | ||
:) | |||
[Coke] | I'm still working on nqp | 23:03 | |
jdv79 | how's that going? | ||
RabidGravy | my motivation is simply to have the lib be as useful to *me* as possible, and I have no interest at the moment in the things you think are "common" | 23:04 | |
[Coke] | Guess I have to throw out that key and create a new one. | ||
RabidGravy | ;-p | ||
23:06
firstdayonthejob left
|
|||
RabidGravy | I'm only fixing it up to the extent that I can make some very specific interfaces with it | 23:06 | |
23:07
spider-mario left
23:10
virtualsue left,
espadrine_ left,
tokuhirom_ joined
23:13
colomon left
|
|||
TimToady | m: say (* X+ 42 X+ *)(41,43) | 23:16 | |
camelia | rakudo-moar 75db4a: OUTPUT«(126)» | ||
TimToady | \o/ | ||
23:18
cygx left
|
|||
RabidGravy | the crack is strong in this one ;-) | 23:19 | |
23:19
rindolf left
|
|||
TimToady | m: say &infix:<+>(*, 42) | 23:22 | |
camelia | rakudo-moar 75db4a: OUTPUT«Inf» | ||
TimToady | I'm not sure I like this | ||
rather than defaulting to Inf, the conservative thing would be to blow up if * is used where it's not expected, because then we can add more meanings to * later | 23:24 | ||
psch | sounds sound | ||
TimToady | as it is, people will start relying on * mapping to Inf | ||
psch | m: say Whatever.new.Numeric | ||
camelia | rakudo-moar 75db4a: OUTPUT«Inf» | ||
TimToady | lemme take it out and see what blows up in roast... | ||
psch | m: say Whatever.new.Str | 23:25 | |
camelia | rakudo-moar 75db4a: OUTPUT«Whatever<140427946008856>» | ||
psch | m: say Whatever.new.Stringy | ||
camelia | rakudo-moar 75db4a: OUTPUT«Whatever<140242053959960>» | ||
[Coke] | Does the changelog need care? | 23:30 | |
RabidGravy | if I want to "require Foo" at runtime and use a type defined therein is "::($typename)" my only option, or is there another trick? | 23:38 | |
[Coke] | nqp cut and on the site. | ||
23:38
yqt left
|
|||
psch | RabidGravy: i think you can still assign the result of that lookup to a sigilless variable | 23:41 | |
RabidGravy: that only changes the look slighty, of course, but maybe that's the motivation vOv | |||
RabidGravy | ooh, yes that hadn't occurred to me | 23:42 | |
[Coke] | TimToady: you going to try to cram anything else in, or can I start on the rakudo release? | 23:48 | |
23:50
jnm_theMailman joined
23:52
softmoth left
23:54
jnm_theMailman left
|
|||
TimToady | I think I'm done | 23:55 | |
well, excpet the * -> Inf thing... | 23:56 | ||
dalek | kudo/nom: 4e35e80 | TimToady++ | src/core/Whatever.pm: * no longer defaults to Inf This is to protect extensibility of * to other dwimmy situations. |
23:58 | |
ast: 690dbe4 | TimToady++ | S02-types/whatever.t: R- now works better with * too |
|||
TimToady | now I'm doner :) | 23:59 |