»ö« 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. |
|||
Zoffix | cygx, oh yeah, fails for any R == G == B actually. | 00:00 | |
Skarsnik, (providing 'abgr' conversion is implemented), it would be Color.new('AABBCCDD').abgr to get a list or Color.new('AABBCCDD').to-string('abgr') to get a string :) | 00:01 | ||
RabidGravy | ugexe, there are Perl 6 contracts? | ||
cygx | Zoffix: really? I don't see that | ||
RabidGravy should start looking for remunerative employment at some point | |||
cygx | C_max + C_min must be 0 or 2 for the code to fail | 00:02 | |
pink_mist | why is the order 'abgr'? 0_o I've mostly seen it as 'rgba' | ||
cygx | pink_mist: endianness | ||
(at a guess) | |||
Zoffix | cygx, oh, ok. | ||
RabidGravy | yeah "hardware" | ||
Zoffix has a few brews | |||
*had | |||
RabidGravy | brews++ | ||
Zoffix | by has as well | ||
:) | |||
pink_mist | cygx: I guess that makes sense .. thanks :) | ||
Zoffix | pink_mist, <Skarsnik> I work with a subtitle file format that is coded like that for color: {c:$color} where color is (A)BGR, aka *** this | 00:03 | |
pink_mist | Zoffix: ah | ||
RabidGravy | anyway the wind has died down now I think I may be able to sleep | 00:04 | |
toodlepip | |||
play nicely | |||
cygx | o/ | ||
Zoffix | \o | ||
Skarsnik | from some code from gstreamer | 00:05 | |
"{ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR," \ | |||
" I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444," \ | |||
" NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }" | |||
Zoffix | :o | 00:06 | |
Skarsnik | they are video format | ||
Zoffix | Hm. my operators test is 0m6.245s vs ~0m30s on my $work box. I wonder how much of that is my using newer perl6 at $home | 00:08 | |
s/is/runs for/l; | |||
00:08
pippo left
00:09
RabidGravy left
|
|||
Skarsnik | bgrx is for premultiplied alpha | 00:09 | |
Zoffix | This channel needs a Markov chain bot | ||
Which reminds me. I need to write a New Years bot in Perl 6. :) Gonna advertise Perl 6 Freenode's New Years party | 00:10 | ||
*during Freenode's* | |||
Zoffix can't type anymore | |||
ugexe | camelia should write a program using the history of user input markov chained | ||
Skarsnik | spend new year on irc is sad x) | ||
Zoffix | Skarsnik, why? | ||
Skarsnik, I meet people I've known for a decade but don't get to talk to any more. | 00:11 | ||
Plus, I can just pass out when i'm drunk... I'm home already :) | |||
Skarsnik | I done it once, I feel sad not being with friends x) | ||
ahah nice point | |||
cygx | 'night o/ | 00:16 | |
Zoffix | \o | ||
00:16
cygx left
|
|||
jdv79 | timotimo: idk. how do i check that easily? | 00:22 | |
00:23
lostinfog left,
BenGoldberg joined
00:28
telex left,
BenGoldberg left
|
|||
arnsholt | timotimo: The Net::ZMQ tests pass for me. What kinds of error are you getting? | 00:29 | |
jdv79 | i commented though i'm not sure. | 00:30 | |
00:30
BenGoldberg joined,
telex joined
00:37
n0tjack left
00:38
johan left,
synbot6 left
00:45
Peter__R left
|
|||
timotimo | jdv79: what is that in reference to? | 00:46 | |
arnsholt: i'll gist it | |||
jdv79 | a lame moarvm ticket | ||
timotimo | oh, that | 00:47 | |
jdv79: i suppose build a simple c program and supply that flag? | |||
jdv79 | i did in the comment | ||
i think | |||
timotimo | gist.github.com/timo/cafd71a06a2a81a95a04 | ||
ah | 00:48 | ||
that helps | |||
you see, i advertised that as an "easy to get into our project" issue on the weekly | |||
jdv79 | i did not | 00:49 | |
timotimo | i'm feeling maximum exhausted, so i think i'll go to bed real soon now | 00:50 | |
arnsholt | timotimo: That's odd. What distro/OS are you on, and what ZMQ version do you have? | ||
Skarsnik | good night here x) | ||
timotimo | on the other hand, the more adorable of the two cats just lied down next to me | ||
Skarsnik | x) | ||
left your keyboard and cuddle them to death | 00:51 | ||
timotimo | i have both libzmq.so.3 and libzmq.so.4 | ||
jdv79 | oh, i see it now. did you add that later? | ||
timotimo | i added the third one | ||
jdv79 | i only remember the profiler and abi ones | ||
ah | |||
arnsholt | Right, that's a bit more modern than Ubuntu, I think | ||
IIRC I have 2.2.0 or something like that | |||
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 0a0fe74 | (Zoffix Znet)++ | mojo-app/DEPLOYMENT.md: Add instructions for brewing Perl 5 in a virgin Debian env |
00:52 | |
timotimo | libzmq.so points at the one with the 3, though | ||
Zoffix: a debian env without alcohol? | 00:53 | ||
arnsholt | Right. On my system it points to libzmq.so.1.0.1 | ||
Zoffix | timotimo, huh? | ||
arnsholt | So it could actually just be something to do with you having a more modern ZMQ | ||
timotimo | lol | ||
jdv79 | nite | 00:54 | |
00:56
yeahnoob joined
|
|||
timotimo | good night! | 00:56 | |
00:56
Skarsnik left
|
|||
arnsholt | Yeah, it's bedtime here too, really | 00:57 | |
timotimo: I'll try to have a look at what happens if I use ZMQ 3 instead | 00:58 | ||
Likely it'll blow up | |||
Zoffix | Hm, just remembered there was a rendering issue I wanted to fix in mojo-app branch for uber long module names. | ||
so now PR today :) Tomorrow's the day. | |||
*no | |||
zengargoyle | timezones are such funny things on #perl6 | 01:01 | |
dalek | kudo-star-daily: 598b7f7 | coke++ | log/ (3 files): today (automated commit) |
01:08 | |
[Coke] wonders what the odds are of getting a clean r-j run for this release. :| | 01:19 | ||
01:19
n0tjack joined
01:20
Zoffix left
01:24
dbohdan joined
01:30
n0tjack left
01:35
n0tjack joined
01:40
n0tjack left
01:44
tokuhiro_ joined
01:48
tokuhiro_ left
02:07
yary joined
|
|||
zengargoyle | haven't even tried the java backend in ages, never had the patience to wait for it to start and never had anything time consuming enough to make it worth checking out. | 02:10 | |
02:10
kid51 joined
02:11
molaf_ joined
|
|||
yary | Hello p6 people, been talking to camelia, I think this qualifies as an LTA error- | 02:14 | |
p6: use 6.000; print "OK"; | |||
camelia | rakudo-moar 1ca52f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfileUndeclared routine: use used at line 1» | ||
yary | in p5 I use something like the above... I know in p6 I should say "use v6.0.0.0"... would be nice if error was more readable in this case | 02:15 | |
02:15
molaf left
|
|||
zengargoyle wonders about getting the last bits of POD $=data sections working. i worry nqp and compile time is too much for my brain. | 02:16 | ||
02:16
tokuhiro_ joined
|
|||
zengargoyle | m: use 6.0000; say "OK"; | 02:16 | |
camelia | rakudo-moar 1ca52f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/6IdbsHBMn5Undeclared routine: use used at line 1» | ||
yary | m: use v6.Birthday; print "OK"; | ||
camelia | rakudo-moar 1ca52f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/AaTv9zuyrJNo compiler available for Perl v6.Birthdayat /tmp/AaTv9zuyrJ:1------> 3use v6.Birthday7⏏5; print "OK";» | ||
zengargoyle | m: use 6.b; say "OK"; | 02:17 | |
camelia | rakudo-moar 1ca52f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/HKJ69Jclh2Undeclared routine: use used at line 1» | ||
zengargoyle | m: use v6.b; say "OK"; | ||
camelia | rakudo-moar 1ca52f: OUTPUT«OK» | ||
zengargoyle | that i think they shortened. | ||
yary | ok, that much makes sense (b vs Birthday) | 02:18 | |
zengargoyle | m: need v6; say "OK"; | 02:19 | |
camelia | rakudo-moar 1ca52f: OUTPUT«OK» | ||
zengargoyle | m: need v6.0000; say "OK"; | ||
camelia | rakudo-moar 1ca52f: OUTPUT«OK» | ||
zengargoyle | sorta think the 'use' may just be for Perl 5's sake. | 02:20 | |
yary | m: need v6.0.0 | ||
camelia | ( no output ) | ||
yary | m: need v6.0.0; say 600 | ||
camelia | rakudo-moar 1ca52f: OUTPUT«600» | ||
02:21
dayangkun joined
|
|||
zengargoyle | like use is need+import or something like that. the meaning has changed a bit. | 02:21 | |
not sure though. in the 'want this version' or other pragma way. | 02:22 | ||
yary | For all the code out there now that says "use v6", or even "need v6", do we expect future perl > 6.0000 to treat those as "need 6.000000"? | ||
02:23
FROGGS_ joined
|
|||
yary | eg. will "use v6" mean "need 6.Christmas semantics?" | 02:23 | |
Hotkeys | I think if you want that you would have to specify further and 'use v6' would just mean use perl 6 instead of perl 5 | 02:25 | |
02:26
FROGGS left
|
|||
yary | right... so I see a small issue... every module in the Rakudo * distribution says "use v6" and I don't think any say "need v6.0.0.0", though I only checked for "use" and not "need" & in September's distro | 02:28 | |
psch | m: say v6 cmp v6.0.0; say v6 cmp v6.c | 02:29 | |
camelia | rakudo-moar 1ca52f: OUTPUT«SameMore» | ||
zengargoyle | looks like the 'v' leader is the important thing that makes it a <version> | ||
psch | m: say v6 cmp v6.0.0; say v6 cmp v6.1 | ||
camelia | rakudo-moar 1ca52f: OUTPUT«SameLess» | ||
psch | huh | ||
that's a tad spooky | |||
v6 is later than v6.c | 02:30 | ||
yary | that makes sense | ||
psch | nah, i don't think so | ||
yary | letter means alpha | ||
or beta etc release | |||
any number in a version is higher than any letter | |||
psch | well, yes, that's the way i'd make sense of it, too | ||
but it doesn't fit with v6.c[hristmas] being the first non-beta release | 02:31 | ||
yary | so v6 is same as v6.0.0.0.0 is same as v6.000000 | ||
and v6.zzzzz is a pre-release for v6.0000 | |||
psch | or v6.b[irthday] being the first "public beta" release | ||
02:31
Ben_Goldberg joined
|
|||
psch | (or announced beta, maybe) | 02:31 | |
zengargoyle | # TODO: replace this by code that doesn't always die with a useless error message. :) | ||
02:31
doublec_ joined
|
|||
psch | zengargoyle: well... volunteered..? :P | 02:31 | |
zengargoyle | lol, i can't even make my POD thing work.... | 02:32 | |
psch | what's the hangup? | ||
02:32
doublec_ left
|
|||
zengargoyle | gist.github.com/18152f52ffce7fc03960 | 02:33 | |
02:33
BenGoldberg left,
doublec left
|
|||
psch | yary: to clarify, i agree that v6 > v6.c fits with general semver usage, but it feels a bit off to call 6.christmas an official release if we keep those semantics | 02:33 | |
yary | ah yes... 6.Chirstmas is NOT an official releas | 02:34 | |
e | |||
in my mind either | |||
zengargoyle | heh, planning on going through some Rakudo/NQP stuff i found from that 2day thing a while back. | ||
yary | I was confabulating it with v6.000 | ||
02:35
Ben_Goldberg left
|
|||
yary | my worry, restated, is that Rakudo * is (was) shipping all modules saying "use v6" when they now probably ought to say "need v6.0", but then they can't say that now, because there IS no v6.0 yet! | 02:35 | |
02:35
Ben_Goldberg joined
|
|||
zengargoyle | psyc: basically i can get the data i need, but can't quite make the more complicated object that sits in front of it. | 02:36 | |
psch | yary: it might just well be that 6.christmas is still more of an internal working title... i have to admit i kinda opted out of the discussion with version numbers and all | ||
m: say v6 cmp v6.1 | |||
camelia | rakudo-moar 1ca52f: OUTPUT«Less» | ||
psch | yary: but v6 is already less than v6.1 | ||
zengargoyle: well, did you add a 'class Pod::Data' to Pod.pm? | |||
zengargoyle: at least that's where i'd put it | |||
02:36
doublec joined
|
|||
zengargoyle | see that link i just pasted. :) | 02:37 | |
yary | Think of when Perl v6.1 is released, and happy programmer loads it up, with some of today's modules that say "use v6" | ||
psch | zengargoyle: yeah, it says "i don't know how to put this into Pod.pm", i saw that | ||
zengargoyle: but i don't understand why putting it in there doesn't work, fwiw | 02:38 | ||
yary | she may be unhappy if 6.1 changes some semantics, causing the old code to break, if v6.1 treats "use v6" as "use any Perl6" and not "need 6.0 semantivs" | ||
psch | yary: v6 already means v6.0.0 repeating | ||
m: say v6 cmp v6.0.0.0.0.0.1 | |||
camelia | rakudo-moar 1ca52f: OUTPUT«Less» | ||
yary | good then I'm happy. | ||
psch | zengargoyle: unless this isn't about "how do i declare a Pod::Data in CORE" but about "how do i instantiate it from nqp", which admittedly is a bit more finnicky | 02:39 | |
02:39
xpen joined
|
|||
yary | (other than the LTA error when you forget to put a "v" in front of a bare number) | 02:40 | |
p6: need 6 | |||
camelia | rakudo-moar 1ca52f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfileUndeclared routine: need used at line 1» | ||
psch | zengargoyle: but i'd suggest first declaring it in CORE (by putting it along the other Pod::-scoped classes) and trying to instantiate it work at runtime | ||
dalek | ast: b0cf420 | coke++ | S0 (4 files): Generic fudge for jvm NPEs |
||
psch | s/work// | ||
zengargoyle: i could probably give more useful hints with a branch to pull and try locally | 02:41 | ||
zengargoyle | yeah, i need to create a fancy Pod::Data and get it bound to $=data and i fear the whole of Pod::Data has to be nqp and manually creating storage and converting things to constants etc so it can serialize or whatever. | 02:42 | |
psch | m: use "foo" | 02:43 | |
camelia | rakudo-moar 1ca52f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/V5rygUhZ8oUndeclared routine: use used at line 1» | ||
zengargoyle | it take the 'v' to make it use <version> vs use <module> | ||
psch | yary: can you create an RT ticket for that? | ||
yary | sure | 02:44 | |
psch | yary: thanks | ||
02:47
baest joined
|
|||
psch | zengargoyle: src/Perl6/Actions.pm:6885-6941 does something similar (albeit probably a bit less complex) | 02:48 | |
zengargoyle: as in, instantiate a Perl 6 level class in the Actions | |||
zengargoyle | hrm didn't quite try that, but it works from runtime... i.e. i can create a fancy Pod::Data from the list of blocks and it works. | ||
02:48
doublec_ joined,
doublec left
|
|||
psch | zengargoyle: that's good, 'cause it means your Pod::Data class works already :) | 02:49 | |
zengargoyle: if i read your gist right the podtest.p6 works as written? | 02:51 | ||
zengargoyle | yes. | ||
02:51
Util joined
|
|||
zengargoyle | the simple 'just hold the list of blocks' works. | 02:51 | |
psch | oh, but AT-KEY and friends don't quite work? | 02:52 | |
zengargoyle | i can create using ... the built-in new/BUILD that all calsses have? | ||
the BUILD and for loop with noting else doesn't even work. | |||
it's like by that time @!blocks isn't a real array you can use. | 02:54 | ||
psch | ah | ||
yeah, you might have to hllize that | |||
i think we have a recursive helper in $*W for that | |||
zengargoyle | IIRC it complains about not having a .Numeric method which i'm guessing it it trying to figure out how long @!blocks it. | ||
zengargoyle typing poorly. :/ | 02:55 | ||
psch | Perl6::World.p6ize_recursive | ||
zengargoyle | oh, sounds promising. | ||
02:56
doublec_ is now known as doublec
|
|||
psch | i think you want to make BUILD a submethod, though, 'cause it touches privates | 02:56 | |
(or maybe because it's in general good practice to have it a submethod...) | |||
zengargoyle | i think i tried both, i at least saw both ways used when i ack'd | 02:57 | |
i thought it was submethod if it was a subclass of something else that might have a BUILD. | 02:58 | ||
psch | m: class A { submethod foo { "foo" } }; class B is A { }; say B.foo | ||
camelia | rakudo-moar 1ca52f: OUTPUT«Method 'foo' not found for invocant of class 'B' in block <unit> at /tmp/p5fdT_XVq9:1» | ||
psch | submethods don't get inherited, same as private attributes | ||
so a method BUILD in your case would complain when invoked from a subclass | |||
zengargoyle | good to know. not sure if subclassing Pod::anything makes much sense in runtime... maybe. | 03:00 | |
03:01
kaare_ joined
|
|||
[Coke] | IWBNI fudge skip didn't override the test name. | 03:03 | |
03:05
yary left
|
|||
zengargoyle | thanks for the pointing out things psch, i'll check that P6ize_recursive thing out tomorrow. it's time for me to wind down and get some z's. | 03:08 | |
03:09
sufrostico left,
sufrosti1o left
03:10
softmoth_ left
03:12
kid51 left
03:15
ShimmerFairy left
03:16
Ben_Goldberg left
03:17
Ben_Goldberg joined
03:18
zengargoyle left
03:20
zengargoyle joined
|
|||
dalek | ast: 493b724 | coke++ | S (5 files): Generic fudge for jvm NPEs |
03:22 | |
03:22
Ben_Goldberg left
03:26
noganex joined
03:29
noganex_ left
03:45
yqt left
03:46
vendethiel joined
03:49
BenGoldberg joined
|
|||
ingy | dj_goku_: pong. (privmsg me) | 03:52 | |
ugexe | what does the :api<...> matcher on compunits determine? | ||
04:02
kaare_ left
|
|||
geekosaur | ugexe: per design.perl6.org/S11.html#Versioning now you know as much as I do (which isn't much...) | 04:04 | |
seems to not be specified between identifying somehow an API variant | |||
and API dominates version | 04:05 | ||
04:06
n0tjack joined
|
|||
ugexe | seems redundant with namespaces so i must not understand | 04:07 | |
04:07
lab joined
04:11
softmoth_ joined
04:13
n0tjack left,
n0tjack joined
04:14
mr-foobar joined
04:15
softmoth_ left
04:18
n0tjack left
04:19
raiph left
04:44
average joined
|
|||
average | not bad.. twit.tv/shows/triangulation/episodes/225 | 04:44 | |
you guys are doing ok with promotion | 04:45 | ||
p6 is all over the news pretty much everywhere | |||
MadcapJake | what are some common ways to run perl6 projects? I know of `perl6 foo.p6`, `perl6-debug-m foo.p6`, `perl6-gdb-m foo.p6`, `perl6-valgrind-m foo.p6`, and `prove -e perl6 -r t/` for running tests. Are there other ways that you run/build/test your code? Is there a way to specify an application's entry point? Is a `Build.pm` style workflow only for projects that utilize custom C code? | 04:50 | |
I am going to be adding support for shortcut-accessible build commands to language-perl6fe and I want to make sure I have all the common ways of running perl6 code available intelligently (via reading META.info or parsing the directories in some way) | 04:53 | ||
04:55
aindilis joined,
aindilis left
04:56
aindilis joined
04:58
BenGoldberg left,
skids left
05:05
molaf_ left
05:07
mr-foobar left,
mr-fooba_ joined
05:14
Actualeyes joined
05:18
vendethiel left
|
|||
grondilu | MadcapJake: to specify the entry point, you can create a MAIN subroutine. | 05:21 | |
just like in C, actually. | |||
as far as how to run P6 code, 'perl6 foo.p6' should be the prefered method but maybe you want to distinguish backends with perl6-m (MoarVM, perl6-j (JVM) and others. | 05:23 | ||
05:25
raiph joined
05:30
xinming left
05:46
AlexDaniel left
05:59
softmoth_ joined
06:04
softmoth_ left,
khw left
06:08
raiph left
06:09
Mhoram left,
abaugher joined
06:23
TimToady left,
TimToady joined
06:24
n0tjack joined
06:28
n0tjack left
|
|||
ugexe | what does Build.pm style workflow mean? | 06:46 | |
nor can you simply alias commands to precompile a project, because you need logic to determine the build order | 06:51 | ||
06:52
aborazmeh joined,
aborazmeh left,
aborazmeh joined
06:55
FROGGS_ left
06:56
domidumont joined
06:59
geraud left
07:00
domidumont left,
sammers left
07:01
domidumont joined,
cgfbee left
07:02
adu joined
|
|||
[Tux] | Having previously installed Pod::Coverage, currently breaks most of my Ecosystem :( | 07:03 | |
gist.github.com/Tux/dbb6c241a0df9fea2866 | |||
can someone please teach panda the "uninstall" option? | 07:04 | ||
07:08
FROGGS_ joined
07:12
n0tjack joined
07:16
n0tjack left
|
|||
[Tux] | test 50000 21.045 20.931 | 07:20 | |
test-t 50000 18.351 18.237 | |||
Inline::Perl5 won't install due to the Pod::Coverage issues | |||
nine | [Tux]: once I'm done with rakudo's curli branch an uninstall option should be easy to implement | 07:21 | |
[Tux] | nine++ | ||
(not that it would help for Inline::Perl5) | 07:22 | ||
dalek | ast: 5e1c8c7 | usev6++ | S (5 files): Revert "Generic fudge for jvm NPEs" This reverts commit 493b72489a0e530d2be0755bc83bac14c2f15460. Tests are passing again after rakudo commit 5da0b3faed. |
07:24 | |
ast: 4dcb14e | usev6++ | S0 (4 files): Revert "Generic fudge for jvm NPEs" This reverts commit b0cf420bcee203a6172f0e6a9d78db223e721db9. Tests are passing again after rakudo commit 5da0b3faed. |
07:29 | ||
07:30
El_Che_ is now known as El_Che
07:33
TimToady left
07:34
TimToady joined
|
|||
dalek | ast: 0ced0cc | usev6++ | S02-types/sethash.t: Revert "Fudge for the JVM so we can complete the test." This reverts commit ffda0cb01c58df1639b01e8a29d18a0772419f6c. Tests are passing again after rakudo commit 5da0b3faed. |
07:34 | |
07:35
cgfbee joined,
toax joined
|
|||
dalek | ast: 6b3843a | usev6++ | S02-types/mixhash.t: Revert "Fudge for the JVM so we can complete the test." This reverts commit f20a1b2dd2c6580e50a46ced03a4ff2c6bba7f48. Tests are passing again after rakudo commit 5da0b3faed. |
07:38 | |
masak | morning, #perl6 | 07:42 | |
[Tux] | morning masak | ||
dalek | ast: 501b480 | usev6++ | S02-types/baghash.t: Unfudge tests which gave a NPE on rakudo.jvm Tests were fudged with commit 701861312a, but are passing again after rakudo commit 5da0b3faed. |
07:45 | |
bartolin | sorry for the spam. basically, .sort was broken on JVM but works again now | 07:46 | |
[Coke]: ^^ | |||
moritz | ... and we use sort a lot in the tests for comparing hashes / hash keys | ||
bartolin | yes, so there was quite a spectest fallout on rakudo.jvm | 07:47 | |
07:47
softmoth_ joined
|
|||
dalek | kudo/nom: 87b10aa | TimToady++ | src/core/Grammar.pm: .parse should return Nil on failure, not Any |
07:48 | |
ast: 96ed583 | usev6++ | S03-metaops/hyper.t: Revert "Fudge for the JVM so we can complete the test." This reverts commit bf1fd082488da8d81c3e1fe6c0389268efeb9a7c. Tests are passing again after rakudo commit 5da0b3faed. |
07:51 | ||
07:51
adu left
|
|||
[Tux] | TimToady, would that fix the Pod::Coverage problem? | 07:51 | |
07:52
softmoth_ left
|
|||
TimToady | what problem is that? | 07:52 | |
TimToady is still about 3 days behind on backlog... | |||
[Tux] | gist.github.com/Tux/dbb6c241a0df9fea2866 | 07:54 | |
nine | [Tux]: so it's actually a LibraryMake problem | 07:55 | |
TimToady | I doubt it, in my case it finds the .parse but assigns the results to a temporary variable that defaults to Any, so loses the Nil | ||
[Tux] now trying if jvm will work with Text::CSV :) | 07:56 | ||
07:56
RabidGravy joined
|
|||
dalek | ast: 385bfcc | usev6++ | S32-hash/adverbs.t: Revert "Fudge for the JVM so we can complete the test." This reverts commit b0c517be4d369ca1aa76d9e703b30426a240740f. Tests no longer die with NPE after rakudo commit 5da0b3faed. |
07:59 | |
07:59
zhmylove joined
|
|||
bartolin | well, that should be all reverts wrt .sort. I'm going to close the related three tickets | 08:01 | |
nine | bartolin: \o/ | 08:02 | |
[Tux] | panda doesn't install on jvm | ||
08:04
CIAvash joined
08:05
darutoko joined
08:16
eliasr joined
08:18
zhmylove left
08:26
xpen left
08:29
espadrine_ joined
|
|||
dalek | ast: f96a954 | usev6++ | S32- (2 files): Fudge tests for JVM ('todo'), RT #126671 |
08:30 | |
08:31
Praise left
08:34
xpen joined
08:35
Praise joined,
Praise left,
Praise joined
08:41
espadrine_ left
08:43
abraxxa joined
08:49
zakharyas joined
|
|||
dalek | rl6-bench: d2108c7 | timotimo++ | perl6/pi-sequential-iteration: Intify commandline arguments once instead of every time this reduces run time of pi-sequential-iteration to about 45% |
08:50 | |
ast: b192d2b | usev6++ | S05-match/capturing-contexts.t: Tighten fudge for rakudo.jvm |
08:51 | ||
rl6-bench: 81603c2 | timotimo++ | perl6/ (11 files): just make sure all cmdline args get Intified if needed didn't measure any of this, but it's just a bit of extra sanity in any case. |
08:55 | ||
09:00
azawawi joined
|
|||
azawawi | hi | 09:00 | |
09:01
zhmylove joined
|
|||
azawawi | How do i force rakudo build to compile to 32-bit on a 64-bit machine? | 09:01 | |
09:01
kjs_ joined,
xpen left
|
|||
timotimo | hum. i should also have mentioned pod data block work in the weekly :\ | 09:02 | |
09:02
xpen joined,
rindolf joined
|
|||
azawawi | and can a 64-bit rakudo NativeCall load a 32-bit DLL or not? | 09:03 | |
09:03
xpen_ joined
09:07
xpen left
09:11
dakkar joined
09:15
xpen joined
09:16
xpen__ joined
09:18
xpen_ left,
xpen__ left
09:19
xpen_ joined
09:20
xpen__ joined,
xpen left
09:22
xpen joined
|
|||
dalek | ast: 5b1c98c | usev6++ | S05-modifier/counted (2 files): Fudge some tests for JVM ('todo'), RT #125815 |
09:22 | |
09:23
xpen left
09:24
andreoss joined,
xpen joined,
xpen_ left
09:25
xpen__ left
|
|||
dalek | ast: 75f702c | usev6++ | S05-modifier/counted-match.t: Fudge some tests for JVM, RT #124279 |
09:29 | |
09:32
lab left
09:33
lab joined,
kjs_ left
09:36
yeahnoob left,
softmoth_ joined
09:37
kjs_ joined
09:41
softmoth_ left,
pdcawley_ is now known as pdcawley
|
|||
mrf | o/ #perl6 | 09:48 | |
09:53
xinming joined
09:56
azawawi left
|
|||
bartolin | currently .squish and friends return a Seq. what are the advantages over returning a List? one point is performance, probably? | 10:01 | |
the current behaviour could lead to surprises: | |||
m: my $a = <a b>.squish; say $a.elems; say $a | 10:02 | ||
camelia | rakudo-moar 87b10a: OUTPUT«2This Seq has already been iterated, and its values consumed in block <unit> at /tmp/nK8pFdEcvR:1» | ||
bartolin | also 'is-deeply' seems to be more picky on JVM: | 10:03 | |
r: use Test; is-deeply(<a b>.squish, <a b>) | |||
camelia | rakudo-moar 87b10a: OUTPUT«ok 1 - » | ||
..rakudo-jvm 87b10a: OUTPUT«Type check failed in binding @a; expected Positional but got Seq in sub is-deeply at lib/Test.pm:422 in block <unit> at /tmp/tmpfile:1» | |||
10:04
xpen_ joined,
xpen left
|
|||
jnthn | morning, #perl6 | 10:06 | |
bartolin | regarding the former example: is it bad practice to assign listy to a scalar like I did? the following works as expected: | ||
m: my @a = <a b>.squish; say @a.elems; say @a | |||
camelia | rakudo-moar 87b10a: OUTPUT«2[a b]» | ||
bartolin | hi, jnthn :-) | ||
jnthn | bartolin: Almost everything that can produce results lazily returns a Seq | ||
And yes, it's right that squish does. | 10:07 | ||
A Seq is one-shot. If you assign it to a Scalar then it's presumed you are doing so because you want to build up a pipeline of things. | |||
10:08
n0tjack joined
|
|||
bartolin | ah, yes. I didn't think about laziness. | 10:08 | |
jnthn | Assigning to an array actually evaluates the Seq | ||
And assigns it into the array eagerly | |||
bartolin | I see. thanks for explaining! | 10:09 | |
jnthn | So yes, if you don't want to deal with laziness/pipelines, using assignment into @-sigil things is the normal practice. | ||
bartolin | I guess that will be a faq ... (I quickly looked at doc.perl6.org/language/faq but didn't find the answer there.) | 10:10 | |
JimmyZ | we just need <<best practice of Perl 6>> book :P | 10:11 | |
jnthn | The trouble with best practices is that they are always contextual, but people tend to take the practice and forget the context. | 10:12 | |
JimmyZ | best practive with Context of Perl 6 | ||
10:12
n0tjack left
|
|||
RabidGravy | I've never even read "Perl Best Practices" | 10:14 | |
jnthn | Even that's not enough. :) The best practice if you're building a pipeline to process a bunch of data over time in constant memory is to *avoid* assigning into arrays as you go. :-) | ||
'cus that keeps memory around | |||
JimmyZ | hmm, maybe cookbookk | 10:15 | |
jnthn | But if you're just writing normal everyday code slinging around a small number of items and doing some list operations, you probably want to just assign into arrays; you'll get better time efficiency, memory efficiency doesn't matter in this case, etc. | ||
Yeah, cookbook style things don't have such issues. | |||
10:18
Woodi_ is now known as Woodi
10:19
Upasaka left
|
|||
JimmyZ | well, me too. I 'd like read cookbook instead of best practice | 10:21 | |
10:21
xpen_ left
10:22
Upasaka joined
|
|||
nine | I've read Perl Best Practices and think the reasoning behind those pracitces is very sound. And because I know the reasoning, I also know when it's better to deviate. | 10:24 | |
10:25
aborazmeh left
|
|||
RabidGravy | right off to take the cat to the Kitty Hotel | 10:25 | |
have fun | 10:26 | ||
10:28
pmurias joined
10:30
RabidGravy left
10:31
xpen joined
|
|||
Woodi | hi today :) | 10:37 | |
jnthn | nine: Yes, the key thing being you paid attention to the reasoning. :) | 10:38 | |
Woodi | you see, I have idea for cookbook book (true one - about real dishes) and put a tree-like graph of dishes - from simple to more complicated - based on ingradiens number. becouse dishes and ingradients forms some hierarchy, quite similiar to OO :) | 10:41 | |
maybe best practices can be tree-graphed too ? :) | |||
10:50
Skarsnik joined
|
|||
dalek | c: bb59c5a | (Steve Mynott)++ | doc/Language/faq.pod: add reference to POSIX from ecosystem |
10:50 | |
stmuk_ | JimmyZ: there is a start of the cookbook under perl6-examples | 10:52 | |
10:56
rindolf left
11:04
znpy joined
|
|||
dalek | ast: fa09383 | jnthn++ | S06-signature/shape.t: Tests for signature shape matching syntax. Check the declared shape against that required. |
11:04 | |
pmurias | jnthn: a significant part of the perl best practices book was style choices, where I think consistency and tool enforcement (which Perl::Critic does for Perl 5) is more important then the reasoning | 11:10 | |
dalek | kudo/nom: 536b388 | jnthn++ | src/Perl6/ (2 files): Implement @a[10] style matching in signatures. Matches against the declared shape of the array. |
11:14 | |
kudo/nom: c9d0d2c | jnthn++ | t/spectest.data: Run S06-signature/shape.t. |
|||
11:24
softmoth_ joined
11:28
cosimo joined
11:29
softmoth_ left
11:32
Zoffix joined
11:37
brrt joined
|
|||
dalek | kudo/nom: cc628b5 | jnthn++ | src/core/Array.pm: Fix fixed dimension illegal operation throws. |
11:38 | |
kudo/nom: fdd236c | jnthn++ | src/core/array_slice.pm: Remove bogus 'is rw'. |
|||
11:40
xpen left
11:44
mr_ron left
|
|||
zengargoyle | good * #perl6 | 11:44 | |
11:45
mr_ron joined
|
|||
dalek | ast: e1ef203 | jnthn++ | S09-multidim/ (4 files): Tests covering multi-dim array support so far. |
11:58 | |
11:58
dayangkun left
|
|||
Skarsnik | Hello | 11:58 | |
dalek | kudo/nom: 61e5052 | jnthn++ | t/spectest.data: Run various new multi-dim array tests. Cover the support we've already had in Rakudo for a while. |
11:59 | |
jnthn | lunch & | 12:01 | |
pmurias | jnthn: should I add a nqp::isatty op? needed for fixing rt.perl.org/Public/Bug/Display.html?id=123347 | ||
jnthn | pmurias: That was my plan, yeah...though was going to add it after doing a bit more work on the MoarVM IO refactoring | 12:03 | |
pmurias | I can just do it now, and then you will just replace the meat of the opcode (as it seem like it will be just a function call for now), or I can just skip it | 12:05 | |
12:05
Actualeyes left
|
|||
pmurias | (or I could just update it after the refactoring) | 12:06 | |
jnthn | Go ahead, it'll be easy to change the function to do something else if needed | 12:09 | |
really lunch :) & | |||
12:14
andreoss left
12:15
sno left
12:20
Actualeyes joined
|
|||
Skarsnik | Does some poeple has ideas for the bool issue on github.com/MoarVM/MoarVM/pull/294 ? | 12:30 | |
12:33
tokuhiro_ left
12:35
n0tjack joined
12:39
n0tjack left
12:41
cygx joined
|
|||
cygx | Skarsnik: create a platform header for stdbool.h | 12:41 | |
if __STDC_VERSION__ >= 199901L, just include stdbool.h | |||
define bool as char for old MSVC versions, bailout otherwise | 12:42 | ||
12:42
rindolf joined
|
|||
Skarsnik | The issue if rakudo/moar is compiled on a system with no c99, it's dumb to prevent it from working just for one type potentially used only by nativecall binding | 12:43 | |
12:44
sufrostico joined
|
|||
cygx | Skarsnik: stdbool.h has been around since gcc 2.95 (and with proper C99 semantics since 3.0) | 12:46 | |
you might tweak the header detection, but MSVC aside, I don't see that header missing as much of an issue | 12:47 | ||
nine | I hope that the language that's designed for the next 100 years is not held back by platforms that are still stuck in the previous century. | ||
cygx | (in practice) | ||
12:47
CIAvash left
12:50
Sqirrel joined
12:52
mr_ron left
|
|||
cygx | I'd probably just got with checking _MSC_VER < X => typedef unsigned char bool, otherwise include <stdbool.h> | 12:52 | |
12:53
mr_ron joined
12:59
telex left
13:00
espadrine_ joined,
telex joined
13:02
toax left
13:05
Upasaka left
13:11
kaare_ joined
|
|||
Skarsnik | thx cygx for the comment, you explain thing better than me x) | 13:11 | |
13:12
softmoth_ joined
13:14
domidumont left
|
|||
cygx | Skarsnik: no problem | 13:15 | |
dalek | ast: 3ff13fe | usev6++ | S32-list/ (4 files): Fudge tests in S32-list for JVM |
13:16 | |
13:17
softmoth_ left
13:18
domidumont joined
13:22
RabidGravy joined
|
|||
Skarsnik | and... time to track/correct this bug pastebin.com/FVagmG6T | 13:23 | |
13:29
espadrine_ left
13:31
espadrine_ joined
13:32
ZoffixW joined
|
|||
ZoffixW | I see a problem with our ecosystem design: fpaste.scsys.co.uk/501640 | 13:32 | |
JSON::Faster was removed from the ecosystem, but I had it installed, so rakudobrew is trying to recompile it | 13:33 | ||
And panda doesn't have an uninstall option :) | |||
tadzik | heh :) | ||
13:33
tokuhiro_ joined
|
|||
tadzik | I guess that's panda's fault then | 13:33 | |
ZoffixW | Hm. I guess whatever is doing this rebuild should just carry on if it finds a module that's no longer available. | 13:34 | |
timotimo | damn. | ||
ZoffixW | like, ignore the issue and move on; not crash on it | ||
jnthn | Eventually, we should be installing immutable distributions. | 13:35 | |
timotimo | so that something that has been installed before can just be re-installed from a store on the local machine? | 13:36 | |
jnthn | And immutable implies "once released, always released" | ||
No, the module source should ideally follow such immutability rules too | |||
nine | jnthn: that might have interesting interactions with panda install . | ||
jnthn | nine: That probably needs handling differently, yes... | ||
13:37
tokuhiro_ left
|
|||
jnthn | What are the use caes for "panda install ."? | 13:38 | |
masak | jnthn: irclog.perlgeek.de/perl6/2015-11-17#i_11554754 -- looks sane to me. +1 | ||
timotimo | i use "panda install ." for development | ||
tadzik | same | ||
timotimo | what ufo used to do :P | ||
jnthn | masak: Well, but the way the discussion was heading is away from what you wanted in the ticket | ||
masak: That is, .+ and .* are only about single dispatch | |||
Skarsnik | in some travis file? | ||
RabidGravy | yeah, so do I - if only test that the whole thing will work | 13:39 | |
ZoffixW | Woo \o/ Updating moar from 0181385 to af3b12e made my custom op definitions test compile and run in 18 seconds vs 30 :D | ||
ZoffixW passes around a round of ++ | |||
timotimo | whoa | ||
jnthn | Wow, what did we do? :P | ||
timotimo | i didn't know we improved anything about that?! | ||
RabidGravy | I actually use "panda install ." a lot: install a 3rd party normally because I want to use it for something, find it's broken for my purposes, fork it, fix it and install the fixed version to carry on with what I am doing | 13:42 | |
masak | jnthn: I think... as long as #perl6 consensus and spec all agree, I'm fine with being "wrong" in this regard ;) | ||
jnthn | masak: OK. :) | 13:43 | |
masak | jnthn: I would love it if .* and .+ were something that I actually found useful and predictable. :) | ||
ZoffixW | Or maybe I'm wrong: irclog.perlgeek.de/perl6/2015-11-17#i_11554519 | ||
jnthn | I'll make sure we codify the current behavior in tests, and that it's as I actually think it is. :) | ||
masak | +1 | ||
RabidGravy | the tools should probably distinguish between install from local copy and install from the interwebs though | ||
jnthn | *nod* | 13:44 | |
Agree it's a useful feature. | |||
ZoffixW | The new real is 0m14.152s, so slightly slower just for compilation, but I could've swore this test was taking 30s to run: github.com/zoffixznet/perl6-Color/...perators.t | ||
nine | jnthn: I use panda install . for running S01 spectests on the development version of Inline::Perl5 | 13:45 | |
jnthn: also same as RabidGravy. For example installing LibraryMake with a local patch to make it work with rakudo's curli branch ;) | 13:46 | ||
ZoffixW | Oh I see (/me looked through terminal's backlog). It was the entire test suite that ran in 30s. This particular test used to run in 18.35s and now runs in 18.55s | 13:47 | |
Sorry :} | |||
jnthn | nine: I guess given the version stays constant while developing, it could be a case of uninstalling the current version and installing the new one under the same ID... | ||
nine: It's more that if installing published modules from a repository we should expect them to be immutable... | 13:48 | ||
dalek | ast: 30bac51 | jnthn++ | S09-multidim/decl.t: Tests for multi-dim array declaration syntax. Not yet running/passing. |
||
ast: b2f0f93 | usev6++ | S0 (2 files): Fudge some more tests for JVM |
13:49 | ||
ZoffixW | But if it's any consolation, on my home box the test runs in just 3 seconds :P | 13:50 | |
Skarsnik | hm should I repport a bug for: | 13:53 | |
(skardev)root@pinkpony:~/p6/rakudo# ./perl6-gdb-m plop.p6 | |||
blablabl then Reading symbols from /opt/bin/moar...(no debugging symbols found)...done. | |||
timotimo | what's the bug about that? | ||
Skarsnik | should it use the local bin/moar and not the installed one ? | 13:54 | |
nine | jnthn: ok, I'll keep that in mind | ||
timotimo | it should not | ||
jnthn | It should use the one your Rakudo was built against | ||
13:54
ZoffixW left
|
|||
Skarsnik | actually it's probably the same x) | 13:56 | |
timotimo | perhaps the gdb script for -m could detect if moar has its jit active and put a little note about backtraces there (until we get that stuff fixed) | 13:57 | |
Skarsnik | hm | ||
that really weid actually | |||
/opt/bin/moar --execname="$0" --libpath="/opt/share/nqp/lib" --libpath="." /root/p6/rakudo/perl6.moarvm -e ' | 13:58 | ||
why the two are mixed | |||
timotimo | and why do you run perl6 stuff as root? | ||
Skarsnik | well I use the one I installed system wide. I am too lazy to reclone/rebuild (and it's just a chroot) | 13:59 | |
timotimo | doesn't root inside a chroot still have direct access to things in /dev, /sys and /proc if you bind-mount it? | 14:00 | |
i suppose just for a bit of development, you don't need all of that | 14:01 | ||
Skarsnik | it's more lazyness to reclone/build as an user | 14:03 | |
14:04
lab left
14:05
lab joined
|
|||
Skarsnik | It's also because my local install is 32bits and I have a bug only on a 64bits ~~ | 14:05 | |
14:06
pmurias left
14:07
lab_ joined,
pmurias joined,
[Sno] joined,
[Sno] is now known as sno
14:10
lab left
|
|||
[Coke] | bartolin: nice fix on the jvm stuff. thank you. | 14:10 | |
14:11
Upasaka joined,
pippo joined
14:15
zengargoylew joined
|
|||
[Coke] | bartolin++ | 14:15 | |
I have to admit, I was a little concerned when I started seeing the reverts coming through. :) | |||
psch | r: role R { has @.s is rw }; multi trait_mod:<is>(Routine $r, :$x!) { $r does R; sub h(|){ for $r.s { &^m() } }; $r.wrap(&h) }; sub b is x {}; push &b.s, { say "OH HAI" }; b # slightly adapted from RT #112666 | 14:17 | |
camelia | rakudo-{moar,jvm} 61e505: OUTPUT«OH HAI» | ||
psch | changes are: signature for &h can't have |$, and the trait signature needs the Routine type for $r | 14:18 | |
but that's the one that didn't output anything in the ticket, except for those two changes | |||
psch adds that to the ticket | 14:19 | ||
14:20
kjs_ left
|
|||
Skarsnik | I need panda to have | 14:21 | |
oups | |||
Debugger::UI::CommandLine | |||
14:23
zhmylove left
|
|||
nine | Skarsnik: you shouldn't need panda for anything ;) | 14:25 | |
timotimo | yeah. if not panda, then you can use zef :) | ||
nine | Or a simple -I or PERL6LIB | ||
timotimo | fair enough | ||
cygx | or github.com/cygx/6make | 14:26 | |
Skarsnik | I mean, (I rebuild a rakudo/moar with rakudobrew in user) when I try to use perl6-debug-m it tell me Could not find Debugger::UI::CommandLine in any of: | ||
timotimo | nine: i wonder if -I will actually be in the commandline early enough for everything to find it | 14:28 | |
14:29
khw joined
|
|||
Skarsnik | does adding printf directly in moar C source work? or it's redirected? | 14:30 | |
timotimo | it gets output to stdout | ||
i usually fprintf(stderr, ...) | 14:31 | ||
nine | fprintf(stderr, ...) works but feels kinda dirty. I mean, this is C! It should at least involve 3 macros | 14:32 | |
14:32
kjs_ joined
|
|||
Skarsnik | xD | 14:32 | |
timotimo | put macros between you and the ickyness that is C | 14:33 | |
Skarsnik | MOAR_DEBUG_I_WANT_MOAR(DEBUG_LEVEL_NOBODY_CARE, 3 /* optional pading because why not?*/, 1 /*do verbose stuff like cfile line*/, "%s\n", "Hello") | 14:34 | |
jnthn | Less is moar... :P | 14:35 | |
Skarsnik | seriously, I like working with gstreamer/glib api for C, it's not that bad | ||
arnsholt | Seriously though, that's one of the best parts of jnthn-code. It's very clean and no real nuisance parameters | 14:36 | |
nine | Skarsnik: that's so much to type, can't you write a macro for that? ;) | 14:40 | |
14:41
xinming_ joined
14:43
skids joined
14:45
xinming left
|
|||
psch | hm, does QASTCompilerMAST::BlockInfo give me a way of checking the name (if any) of the compiling block? | 14:48 | |
is that in the $qast it holds? | |||
*$!qast | |||
jnthn | Yeah, I think that'll be a QAST::Block which has a .name property | ||
14:48
xpen joined
|
|||
timotimo | arnsholt: what's the actual script you were using to test the performance of sha256? i'm working on implementing those big int bitwise ops for the jit now | 14:51 | |
jnthn wonders why it's using Int and not int for that math | 14:53 | ||
14:53
molaf joined
|
|||
timotimo | what, sha256? | 14:55 | |
14:57
eliasr left
|
|||
jnthn | aye | 14:58 | |
15:00
softmoth_ joined
|
|||
arnsholt | timotimo: heim.ifi.uio.no/arnskj/test.p6 | 15:00 | |
timotimo | aha! arnsholt can immediately answer that! :) | ||
arnsholt | Why the code uses Int? I have no idea | ||
timotimo | it only does the sha256 once? | ||
arnsholt | Yeah, initially that was enough | 15:01 | |
timotimo | do things you work with fit into 64bits? | ||
arnsholt | Since it took like a second or two to compute the checksum =) | ||
The spec is defined in terms of int32 | |||
Except the message which is bytes, obv. | |||
timotimo | 2.7 seconds to parse the script %) | 15:02 | |
3 seconds to run the whole thing | |||
so ... why is it that fast? | |||
aren't we usually slow at things? | |||
ok, running it a hundred times gives 18.3 seconds | 15:03 | ||
15:03
bombless joined
|
|||
ugexe | Have any of the details of how hooks are to work been decided yet? | 15:04 | |
dalek | osystem: f21a1f0 | (Kamil Kułaga)++ | META.list: add github.com/teodozjan/path6-coverage github.com/teodozjan/path6-coverage Checks whether package name equals with module path |
||
15:04
kjs_ left
|
|||
ugexe | uh what | 15:05 | |
a package name doesnt and shouldnt have any path requirement on the side of module author | 15:06 | ||
15:06
zhmylove joined
|
|||
brrt | timotimo: haven't you heard, we have a jit and dynamic optimization :-P | 15:07 | |
sufrostico | Hi | 15:08 | |
Can someone help me with this piece of code? | 15:09 | ||
pastebin.com/4suLcdm9 | |||
arnsholt | timotimo: The main piece of overhead was postcircumfix:<[ ]>, TBH | ||
That and some metaops | |||
sufrostico | traying to work with start await and promises... | ||
arnsholt | Once that's done, it's basically just a pile of bitops, which I think we should be able to execute pretty quickly, even interpreted =) | 15:10 | |
ugexe | also no one seems to have mentioned what the :api<...> matcher on compunits is for? | ||
15:11
FROGGS_ left
|
|||
ugexe | i hope the answers to these questions dont come out a week before release... | 15:12 | |
timotimo | ugexe: things like qt3 vs qt4 vs qt5 or gtk2 vs gtk3 | 15:13 | |
brrt | sufrostico, it looks sane enough to me | 15:14 | |
15:14
kjs_ joined
|
|||
jnthn | ugexe: Anything that uncertain in detail at this point is hardly likely to make it into 6.c. | 15:14 | |
(wrt :api) | 15:15 | ||
ugexe | the api im not so worried about, but good to know what its for (although i still dont see why you wouldnt just use a ::AdditionalNamespace) | ||
the hooks details would be nice though, as the details should be as basic as deciding what parameters to pass into the build/test/install/whatever hook scripts | 15:16 | ||
sufrostico | brrt: thanks... I'll stare at the code some more | ||
15:16
isacloud left
|
|||
PerlJam | sufrostico: maybe if you showed more of your code, someone could spot something? | 15:16 | |
ugexe | because Build.pm does not cut it | ||
RabidGravy | it approximately does and the hooks aren't implemented | 15:18 | |
15:18
isacloud joined
|
|||
RabidGravy | I would like to have better granularity about though | 15:18 | |
nine | If your sha256 implementation does less than 100 MB/s there's room for optimization... | ||
timotimo | arnsholt: bit ops on big integers are still always compiled to function calls which do allocations, so they aren't cheap at all :P | ||
arnsholt: but bitops on native integers are compiled down to the thing a naive C compiler would give you | 15:19 | ||
arnsholt | Aha. Maybe it gets speshed to non-bigint code? | ||
timotimo | arnsholt: so at least a 50x performance improvement i'm guessing | ||
it does not | |||
arnsholt | I must admit I didn't get quite carried away to looking at the bytecode =) | ||
timotimo | when big ints fit into 32bit, they take a slightly faster code path, though | ||
but it will still allocate | |||
dalek | kudo/nom: cca5f27 | jnthn++ | src/Perl6/ (3 files): Refactor trait handling. Makes it easier to compile-time analyze a few traits that will need that, and also cleans up a good amount of code duplication, and error handling duplication. |
15:20 | |
arnsholt | Oh, that's interesting | ||
Maybe there's another win to be had in there, then | |||
timotimo | no, _I ops only work on real objects, and they are immutable. so every step still allocates | 15:21 | |
Skarsnik | Good I find what is wrong with what calculate the size of type for NC. but... I am not sure how to fix it ~~ | 15:22 | |
RabidGravy | it does seem that things which define and/or use custom traits are a little bit slower | ||
in a hand wavey kind of way | |||
sufrostico | PerlJam: just added the sub that should be executed async : pastebin.com/bRMShEMg | 15:23 | |
timotimo | arnsholt: i've been thinking about making spesh aware that a complete secondary code path could be built if we have an intuition things will stay the same size and such and then bail if things get too big | ||
but that's far past christmas, i expect | 15:25 | ||
PerlJam | sufrostico: is there some reason you don't want to show the whole code? It's okay if it's long, but it's better to give the most complete picture possible to those that would help. | 15:27 | |
timotimo | arnsholt: so are you going to change your code to use int instead of Int? :) | ||
ugexe | Build.pm doesnt approximate hooks at all. it carries dependencies, isn't executed as a separate script, and only has 1 phase of execution | 15:28 | |
arnsholt | timotimo: I gave it a whack, but couldn't find a permutation that gave a win. Probably missed a spot, somewhere | ||
timotimo | probably | ||
could you put up your WIP in a branch or something? | 15:29 | ||
15:29
rindolf left
|
|||
arnsholt | How do you generally debug (if you can call it that) something like this? | 15:29 | |
timotimo | the spesh output would show you where _I ops are used and you can also see which versions of operators are used (like the int vs Int ones) | ||
arnsholt | arnsholt/libdigest-perl6 is the base of the PR I sent to grondilu++ | ||
Don't have any other commits beyond that | 15:30 | ||
timotimo | ah, i hadn't even seen that it's someone else's code | ||
arnsholt | Right, so that's MVM_SPESH_LOG=foo right? | ||
timotimo | yeah | ||
sufrostico | PerlJam: pastebin.com/hHKp7TXd | ||
timotimo | i usually just search for the string "Finished " in that resulting file | 15:31 | |
sufrostico | sorry, ugly code in spanish | ||
timotimo | or for the filename of the script i'm working on | ||
arnsholt | Right. Any useful tricks for figuring out which bits correspond to the inner loops and such? | 15:33 | |
Skarsnik | Should I fill a bug on rt? or add an issue on moar? (or do both?) | ||
arnsholt | Not to mention: What am I looking for in the output, when it's _i vs. _I I'm looking for? | ||
Oh, the whole sub is seen as one, it looks like | 15:34 | ||
[Coke] | bartolin: need to add back in the "hang" parts of those commits. | 15:36 | |
I should have done those separately, sorry. | |||
I'll get it if no one beats me to it. | |||
Reminder: compiler release tomorrow | |||
please insure the changelog is updated. | 15:37 | ||
timotimo | arnsholt: yeah, we do frame-wise speshing; those can include things inlined from other frames and they may non-include inner curlies if they weren't inlined by the static optimizer or the dynamic one | 15:38 | |
15:39
kjs_ left
|
|||
ugexe | is the only advantage of :api<xxx> over just using the module namespace itself that you can do :api<3> but not ::3? | 15:40 | |
bartolin | [Coke]: I think I run all test files I changed before pushing to roast and saw no hanging tests. I'll have some time to look at it later today. | ||
arnsholt | Oh, this is interesting: In "sub rotr(uint32 $n, uint32 $b) { $n +> $b +| $n +< (32 - $b) }" The bitshifts and subtraction get compiled to brshift_i, blshift and sub_i, but the binary or is looked up with getlexstatic and invoked | ||
Maybe because the return type isn't int32? | 15:41 | ||
[Coke] | bartolin: No worries, I can just refudge those tests. | ||
S03-operators/mix.t was one of them, I think | |||
PerlJam | sufrostico: I'd have to say that $position somehow gets a value that's beyond the bounds of the @positions array, but I don't see it right now | ||
sufrostico: btw, I think it's neat that someone is using perl6 for "AI" :) | 15:42 | ||
arnsholt | Oh, cool. libsvm! | 15:44 | |
15:44
rindolf joined
|
|||
sufrostico | PerlJam: i think it takes the value of 10 ... but i cant put an if to prevent it... the number appear from nowhere.... | 15:45 | |
timotimo | anyway, we'll be in a slightly better place with regards to bitwise operations being jitted on big integers | 15:49 | |
zengargoylew | sufrostico: start conveniencia($position, @(@positions[$position]) | ||
dalek | ast: 7e9a101 | usev6++ | integration/advent2012-day10.t: Change tests with 'like' to use description (the tests died with a NPE on JVM before, which is a known bug) |
||
zengargoylew | sufrostico: for @promesas>>.result -> $position, $fitness { | ||
not sure since it's missing a file, and i don't speak spanish.. :) | 15:50 | ||
but runs to apparent completion | |||
15:50
dbrock- joined
|
|||
zengargoylew | so you should probaby fail if that external shell call fails.... | 15:51 | |
you're passing a $array to a function that takes a @array | |||
timotimo | arnsholt: with my local patch to moarvm sha256 gets jitted completely | 15:52 | |
arnsholt | Oh, awesome! | ||
zengargoylew | and then you still need to get the .result from a promise after awaiting. | ||
jnthn | Also, do my @results = await @promises; | ||
arnsholt | timotimo: I'll just commitbit you on my fork of the repo and you can push directly | ||
jnthn | Rather than pulling .result out afterwards | ||
15:52
domidumont1 joined
|
|||
zengargoylew | yeah, twhat jnthn said.. | 15:52 | |
japhb will be in Dublin, Stockholm, and New York City over the first two weeks of December ... anyone interested in meeting up? | |||
arnsholt | timotimo: Push away! | 15:53 | |
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 958cb3e | (Zoffix Znet)++ | mojo-app/ (3 files): Make /repo/ URLs redirect to dist's repo |
||
15:53
domidumont left
15:54
kjs_ joined
|
|||
timotimo | arnsholt: i could still implement isprime_I and coerce_nI | 15:54 | |
autarch | anyone have any thoughts on this code ... github.com/autarch/perl6-Pod-NodeWalker - in particular, are these the right class & role names - also, is the code idiomatic? | ||
timotimo | meh. i'll leave it for later. | ||
arnsholt | The code is probably optimised well beyond the point of being a bottle neck at this point =) | 15:55 | |
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 12cbb54 | (Zoffix Znet)++ | mojo-app/lib/ModulesPerl6/Controller/Root.pm: Docs for repo |
||
timotimo | also, i'll run a full spectest first. | 15:56 | |
arnsholt: you've been improving this code because it gets used for iperl6? | |||
arnsholt | Yup | ||
timotimo | i don't have a local patch to libdigest, though | ||
15:56
xinming_ left
|
|||
timotimo | i think you misunderstood me :) | 15:56 | |
my patch is only to moar's jit | |||
arnsholt | Oooh, I see! =D | 15:57 | |
15:57
dbrock- left
|
|||
timotimo | it'd still be amazing if you could turn all of libdigest's sha256 to native int arithmetic | 15:57 | |
15:57
dbrock- joined
|
|||
timotimo | were you able to improve +| in this case? | 15:57 | |
15:57
domidumont joined
|
|||
arnsholt | Looking further at the log I think it gets speshed after all | 15:57 | |
But I'm honestly not entirely sure =) | 15:58 | ||
timotimo | hah | ||
RabidGravy | autarch, works for me :) | ||
timotimo | if you put it into a branch, i'll have a look myself | ||
arnsholt | The spesh log is a mite opaque =) | ||
timotimo | yeah, it's not that easy if you're just getting started with it | ||
not only do i have experience looking at the speshlog, but i also know what all the opcodes do/are %) | |||
Skarsnik | is that clear enought? (I prefer asking, because I know I have issue expressing myself correctly x)) rt.perl.org/Ticket/Display.html?id=126675 | ||
arnsholt | The opcodes are generally comprehensible, since I've worked on Snake and such | 15:59 | |
But the rest of it is pretty incomprehensible | |||
But I guess what I want to be looking at is the stuff that comes after "finished specializing 'foo'"? | |||
timotimo | yeah | ||
if you want you can gist that | 16:00 | ||
psch | hrm, QASTOperationsMAST builds the getlex call for &EXHAUST with outer = 2, which - according to the BlockInfo stack - should point at <unit> | ||
arnsholt | Actually: The sp_getspeshslot ops are pretty weird. What are spesh slots? | ||
16:00
domidumont1 left
|
|||
timotimo | the thing is that the spesh log only really tells you what spesh has done. not what it hasn't done and not why it has done things | 16:00 | |
psch | but the actual getlex bytecode that's generated needs to go only one step outwards to *find* <unit> | ||
timotimo | a spesh slot is a gc-tracked thing that hangs off of a spesh'd frame | ||
16:01
CIAvash joined,
xinming joined
|
|||
jnthn | arnsholt: Just an array of objects of STables that we can refer to efficiently, and that we discover/need in the specialized cdoe. | 16:01 | |
*code | |||
arnsholt: Like if we need a type to serve as a guard clause, we tend to stash it in there | |||
psch | ...that shouldn't change though, should? i mean the distance to <unit> of a given block | ||
+it | |||
RabidGravy | the cod of moar | ||
timotimo | cool, spectest's clean | ||
cygx | Skarsnik: the pastebinlink in the RT ticket is broken | ||
arnsholt | Right, right | 16:02 | |
Aha. The bitwise or gets inlined after spesh | |||
timotimo | arnsholt: we often stash methods/code objects we want to call in spesh slots, for example | ||
ah. if it shows up as "an inlined thing" inside spesh, then it's not the static optimizer that does the inlining | |||
Skarsnik | cygx, oh yeah the ) take part of the ling >< | ||
jnthn | arnsholt: The spesh log is primarily a disassembly of the bytecode, broken up into basic blocks, with various annotations on it. And it's in SSA form, so all the registers have a version number in parens. | 16:03 | |
arnsholt | Yeah, that's what I figured | ||
timotimo | i think "an inlined thing" shows as "inlined" at the top of a BB, but other than that the inlined things are at the far end of the spesh'd thing and get called from early and return to somewhere early | ||
16:03
kjs_ left
|
|||
arnsholt | It does. That's how I knew it was inlined =D | 16:03 | |
16:04
xpen left
|
|||
arnsholt | Yeah, it said goto BB(8), so I figured looking at BB(8) would be an idea | 16:04 | |
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 12a0932 | (Zoffix Znet)++ | mojo-app/public/sass/main.scss: Cleanup SASS |
||
arnsholt | So, the inlined +| does some boxing, it looks like. Presumably because the optimizer can't guarantee that the bitshifts won't cause an overflow into bigints or something? | 16:06 | |
16:06
bombless left
|
|||
timotimo | no, we don't overflow from native ints to bigints | 16:06 | |
we require the user to explicitly use Int for that | |||
from the very beginning | |||
arnsholt | Ah, right | ||
jnthn | Well, or not use types at all | ||
timotimo | but see above for future possibilities with extra code-gen | ||
right | |||
16:06
n0tjack joined
|
|||
jnthn | But yeah, opting into int is opting into native semantics | 16:06 | |
Is there a native candidate for +| ? | |||
16:07
zakharyas left
|
|||
timotimo | yes indeed | 16:07 | |
multi sub infix:<+|>(int $a, int $b) { | |||
jnthn | Wonder why the (static) optimizer doesn't find/inline that one | 16:08 | |
arnsholt | The result for rotr is here: gist.github.com/arnsholt/2701d2371693f6bbe46f | ||
The code is "sub rotr(uint32 $n, uint32 $b --> uint32) { $n +> $b +| $n +< (32 - $b) }" | |||
timotimo | jnthn: lexref, i bet :P | 16:09 | |
arnsholt: can you see if rotr uses getlexref_i somewhere near the call to +| ? | |||
dalek | kudo/nom: 06729d9 | jnthn++ | src/ (2 files): Move handling of `of` on variables to compiler. This means that `my @a of int` works, as well as various other forms. |
||
MadcapJake | Working on adding highlighting for `L<...>` and `C<...>` expressions in pods. Take a look: twitter.com/MadcapJake/status/6670...9863897088 | 16:10 | |
arnsholt | Nope | ||
dalek | ast: dc03e10 | jnthn++ | S09-typed-arrays/native-decl.t: Tests for `my @a of int`, which now works. |
16:11 | |
ast: 0a0690c | jnthn++ | S12-introspection/WHAT.t: Fix now-passing `of Foo` tests on vars. |
|||
arnsholt | timotimo: What do the "FH start/end" annotations refer to? | 16:14 | |
jnthn | FrameHandler (exception handlers) | ||
16:14
n0tjack left
|
|||
arnsholt | Right | 16:14 | |
Skarsnik | MadcapJake, it look neat | 16:15 | |
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 3583f33 | (Zoffix Znet)++ | mojo-app/public/sass/main.scss: Prevent multi-line wrap on dist name/logotype/GitHub icon on mobile |
||
jnthn | MadcapJake: I'm getting really tempted to try using Atom for a while to get this nice highlighting. :) | 16:16 | |
timotimo | arnsholt: hell-bent on figuring this out by yourself rather than giving me a paste? :P | 16:17 | |
16:19
domidumont left,
domidumont joined,
gtodd joined
16:20
dwarring left,
domidumont left
|
|||
arnsholt | timotimo: The spesh log exceprt for rotr is here: gist.github.com/arnsholt/2701d2371693f6bbe46f | 16:21 | |
MadcapJake | thanks Skarsnik, jnthn! One big plus for me was that there's a great vim-mode plugin that brings all the keyboard awesomeness of vim to atom. Makes it pretty easy to switch! | ||
arnsholt | The code is "sub rotr(uint32 $n, uint32 $b --> uint32) { $n +> $b +| $n +< (32 - $b) }" | ||
16:23
brrt left
|
|||
timotimo | interesting. how is rotr called? | 16:23 | |
because rotr is compiled with a return_o | |||
arnsholt | Literal second arg, first arg is fetched from an array | 16:24 | |
zengargoylew | jnthn: are the rakudo and nqp internals materials from a couple of years ago still a good place to start? | ||
ilmari | are perl6's shift operators UB-safe for shift >= type-width? | ||
timotimo | can you find the caller of rotr in the spesh log? | ||
what is UB? | |||
arnsholt | The return value usually goes to a var, but once is assigned to an array | 16:25 | |
ilmari | timotimo: undefined behaviour | ||
timotimo | oh | ||
not sure. on Int there is no >= type-width | |||
ilmari | shifting by more than the width of the shiftee is explicitly undefined behaviour in the C standard | ||
sufrostico | PerlJam, zengargoylew : the problem of the out of bounds position solved by using a for instead of a loop | ||
:s | 16:26 | ||
diakopter | ^)^ | ||
arnsholt | timotimo: The caller is the sha256 routine itself, so what am I looking for? | ||
jnthn | zengargoylew: Yes | ||
ilmari | GET_REG(cur_op, 0).i64 = GET_REG(cur_op, 2).i64 << GET_REG(cur_op, 4).i64; | 16:27 | |
timotimo | arnsholt: good question. i'm not 100% sure what influences whether a frame gets a return_o or if return_i is possible | ||
anyway, with the "almost everything is int instead of Int" stuff, does it improve performance noticably? | 16:28 | ||
also, i don't have a good before-after measurement for all my patches today for the test script | |||
16:28
black_ant joined
|
|||
diakopter | ilmari: looks like it uses C's << :P | 16:29 | |
ilmari | diakopter: yes | ||
16:30
AlexDaniel joined
|
|||
arnsholt | timotimo: It didn't help much when I tried yesterday, but then again that was just one call | 16:30 | |
I can try several runs later | |||
timotimo | arnsholt: sadly, rotr doesn't get jitted because of how it handles its arguments :( | ||
ilmari builds moarvm with -fsanitize=undefined | |||
timotimo | param_rp_i isn't implemented in the jit | ||
diakopter | interesting | 16:31 | |
timotimo | it would be great if rotr could be inlined | ||
arnsholt | What can I do to change the argument handling? | ||
\x? | |||
timotimo | i'm not up to snuff on argument handling | ||
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: a74cc36 | (Zoffix Znet)++ | / (2 files): Add missing prereqs into Build.PL |
||
timotimo | i'm not sure \x will work with native ints, actually. you can try it | ||
arnsholt | Yeah, broke the end result when I tried it last time =) | 16:32 | |
timotimo | there's still postcircumfix:<[ ]> in my profile | 16:33 | |
i thought you turned these into .AT-POS? | |||
they're not very expensive, thouhg | |||
16:34
domidumont joined
|
|||
timotimo | ah, there's postcircumfix:<[ ]> further outwards | 16:34 | |
arnsholt | Yeah, I skipped the ones outside the core loop | 16:35 | |
timotimo | m: say "rotr runs with just { 215 / 235008 } ms per invocation" | 16:36 | |
camelia | rakudo-moar 06729d: OUTPUT«rotr runs with just 0.0009149 ms per invocation» | ||
timotimo | that's not terribly bad anyway :) | ||
arnsholt | Yeah, those don't matter much | ||
Oh, different thing you said | |||
Yeah, that's pretty fast after all | |||
timotimo | m: say "infix:<(+)> runs with { 715 / 241536 } ms per invocation" | ||
camelia | rakudo-moar 06729d: OUTPUT«infix:<(+)> runs with 0.0029602 ms per invocation» | ||
16:37
kyclark joined
|
|||
timotimo | STORE on the other hand ... | 16:37 | |
m: say "STORE runs with { 390 / 26112 } ms per invocation" | |||
camelia | rakudo-moar 06729d: OUTPUT«STORE runs with 0.014936 ms per invocation» | ||
timotimo | the little bits all add up, don't they ... | 16:38 | |
kyclark | Can someone explain what's going on with the binding := in this? lpaste.net/145501 | ||
timotimo | last time i checked, the REPL was very unhappy when binding was involved :( | 16:39 | |
so "known bug", i'd say | 16:40 | ||
kyclark | ah, OK, it runs as a script | ||
Thanks. | |||
jnthn | Hm | 16:41 | |
It works locally | |||
16:41
lichtkind joined
|
|||
jnthn | I remember fixing something along those lines some time back | 16:41 | |
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 630afed | (Zoffix Znet)++ | TODO-IDEAS.md: Add builder script cleanup to TODO Ideas |
||
timotimo | kyclark: in that case, the question becomes "what's your rakudo version" | 16:43 | |
kyclark | Ah, dang, now I can't remember how I installed it on this machine. | 16:45 | |
Skarsnik | damn 'rakudobrew build moar' updating everything and reinstalling the modules is really nice :) ++ for who did that x) | ||
timotimo | heh | ||
well, perl6 --version will tell you | |||
diakopter | shamebot | ||
Skarsnik | perl6 --version | ||
kyclark | [gila@~/work/rakudo]$ perl6 --version | 16:46 | |
Unhandled exception: Bytecode stream version too high | |||
at src/vm/moar/ModuleLoader.nqp:51 (/usr/local/Cellar/rakudo-star/2015.03/languages/nqp/lib/ModuleLoader.moarvm::87) | |||
from src/vm/moar/ModuleLoader.nqp:41 (/usr/local/Cellar/rakudo-star/2015.03/languages/nqp/lib/ModuleLoader.moarvm:load_module:85) | |||
from <unknown>:1 (/usr/local/Cellar/rakudo-star/2015.03/languages/perl6/runtime/perl6.moarvm:<dependencies+deserialize>:39) | |||
diakopter | brewcry | ||
timotimo | wow, you have a zombie installation of rakudo there | ||
or rather a frankenstein version | |||
kyclark | I may or may not know what I'm doing. | ||
timotimo | and 2015.03 is *really* old, you should probably throw that out of your Cellar there | ||
16:47
abaugher left
|
|||
kyclark | Gladly. What's the Best Way to install? | 16:47 | |
sufrostico | PerlJam, zengargoylew : working code... pastebin.com/8zgE4Wpd many thanks... | ||
timotimo | rakudobrew is very good; find it on github.com/tadzik/rakudobrew | ||
it's for installing rakudo inside your home directory and keeping it up to date | 16:48 | ||
16:48
yqt joined
|
|||
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: dad765b | (Zoffix Znet)++ | mojo-app/public/sass/main.scss: Fix column sorter icons covering th text |
16:48 | |
RabidGravy | it will do that if you're in a abuild directoty of a different version than you have in your ppath | ||
sufrostico | PerlJam, zengargoylew: the problema was that i forgot that the passing of parameters is by reference... not by value | ||
16:49
abaugher joined
|
|||
timotimo | arnsholt: my simplistic measurements tell me jitting these extra bitops was worth almost nothing at all :( | 16:50 | |
well, it's just turning that stuff into function calls, so not the best thing in the world anyway | 16:51 | ||
psch | hrm, .dump()ing the qast the block that EXHAUST is supposed to sit in give me "Cannot invoke this object"... | ||
flussence | timotimo: it all adds up :) | ||
16:52
sprocket joined
|
|||
zengargoylew | sufrostico: cool | 16:53 | |
PerlJam | sufrostico: so ... you're going to write about this perl 6 wolf hunt AI code somewhere, right? :) It would make an interesting Advent article, if you can muster it. | 16:54 | |
sufrostico | PerlJam: Sounds nice.. I'll try | 16:55 | |
16:55
abraxxa left
|
|||
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 79ebd83 | (Zoffix Znet)++ | README.md: State browsers we support (same as on perl6.org) |
16:56 | |
PerlJam | sufrostico: if you want ton contribute to the advent calendar, give me an email and I'll send you an invite | 16:57 | |
er, s/ton/to/ | |||
arnsholt | timotimo: Oh, that's a shame | ||
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 6f5ae3e | (Zoffix Znet)++ | README.md: Make links actually clickable |
16:58 | |
16:59
aaaa joined
|
|||
dalek | href="https://perl6.org:">perl6.org: 263a312 | (Zoffix Znet)++ | README.md: Reword browser support paragraph Contributors do not *have* to use those two specific testing sites. Make that more clear |
16:59 | |
pmurias | jnthn: I made a pull request for the istty_fh op, it adds an extract field to syncstreams but I think that's better than having two op_tables | 17:00 | |
jnthn | pmurias: Will look a bit later; thanks. | 17:01 | |
17:01
domidumont left
|
|||
MadcapJake | this regex seems wrong: « q(q|to|heredoc)*\\s*:?(q|to|heredoc)*\\s*/(.+)/ ». According to docs, heredocs *require* the `to` and not the other two options, so `q:q/END/` would be wrong, right? :P | 17:02 | |
jnthn | Right | 17:03 | |
MadcapJake | m: my $str = q:heredoc/END/ hello world END; say $str; | ||
camelia | rakudo-moar 06729d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ayYNtoDbbBTwo terms in a rowat /tmp/ayYNtoDbbB:1------> 3my $str = q:heredoc/END/7⏏5 hello world END; say $str; expecting any of: infix infix stopper postfix…» | ||
jnthn | But you can put other options either side of the to and heredoc | ||
q:c:heredoc/END/ and q:heredoc:c/END/ are equivalent | |||
MadcapJake | so you *can* use `heredoc` instead of `to`? | 17:04 | |
PerlJam | aye, it's slightly better documentation | 17:05 | |
TimToady | most of the Q options have both a short and a long form | ||
jnthn | MadcapJake: yes | ||
17:05
zhmylove left
|
|||
TimToady | m: my $foo = 42; say Q:double [$foo] | 17:06 | |
camelia | rakudo-moar 06729d: OUTPUT«42» | ||
MadcapJake | Anyone know what synopsis this is in? I want to capture all the possibilities. | 17:07 | |
found it, in S02 | |||
TimToady | see S02:3799 | ||
hoelzro | o/ #perl6 | 17:08 | |
MadcapJake | I think I just need to fully rewrite all this quoting constructs to one base begin of q|Q with internal rules for adverbs, shortforms, and delimiters. It always begins with a q or a Q though right? | 17:11 | |
17:12
molaf_ joined
|
|||
TimToady | well, could start with qq, or any of those with a single extra option glued on | 17:12 | |
sprocket | hello p6! | 17:13 | |
TimToady | qqv or Qww | ||
o/ | |||
b2gills | TimToady: I think you broke the `[+] 1..10**10` optimization when splitting up &sum with github.com/rakudo/rakudo/commit/ee...8d2bae370d | ||
sprocket | just wanted to say that i’m thoroughly enjoying grammars - those things make life a whole lot easier | ||
b2gills | m: say [+] 1..10**10 | ||
17:13
molaf left
|
|||
MadcapJake | ok, I could go two routes with that. 1) Highlight the [qQ] separately and capture the abbreviated addition similarly to adverb forms. 2) I could start with a positive lookahead and then capture the whole abbreviated form as one internally | 17:14 | |
PerlJam | sprocket: aye, there's lots of joy in Perl 6. Somehow I think that was by design :) | ||
camelia | rakudo-moar 06729d: OUTPUT«(timeout)» | ||
TimToady | b2gills: so it would seem | ||
dalek | kudo/nom: 29cc3c2 | jnthn++ | src/ (3 files): First 80% of supporting `is SomeType` on vars. Works for my/state/has declarations, though we need a little more work to address not getting sufficiently fresh state (which also needs the same engineering that shaped array declarations need). |
||
TimToady | I wonder how it still passes the test? | ||
17:15
lucasb joined
|
|||
b2gills | It calls the List one I suppose | 17:15 | |
jnthn | my @a is buf8; @a[0] = 1; say @a # works after 29cc3c2 :) | ||
MadcapJake | so it would be like (green)[qQ](red)q|w|x|...(white)<delimiter>(green)<string contents>(white)<delimiter> | 17:16 | |
PerlJam | jnthn++ | ||
jnthn | dinner, rest; prolly a little more hacking later to see if I can get it far enough to have the shape decls wired up :) & | ||
pmurias | hoelzro: \o | 17:18 | |
17:18
mr_ron left
|
|||
hoelzro | o/ pmurias | 17:19 | |
17:19
woodruffw left
|
|||
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 9e7207d | (Zoffix Znet)++ | mojo-app/public/sass/main.scss: [layout] Handle overly long dist names |
17:20 | |
timotimo | sweet, jnthn :) | ||
TimToady | b2gills: ah, the test is on the method, not the sub; good catch | ||
17:21
kyclark left
|
|||
pmurias | hmm, jvm doesn't seem to implement support for tty checking :/ | 17:21 | |
b2gills | TimToady: I just tried 「[+] 1..10**100」 and noticed it took significantly longer than 0 seconds | 17:22 | |
TimToady | yes, unfortunately we have to go through the sub to get to the method, since metaops want to be defined in terms of a base function | 17:23 | |
b2gills | I'm trying having both :(\SELF) and :(+SELF) right now | 17:24 | |
17:24
woodruffw joined
17:25
pippo left
|
|||
TimToady | if that doesn't work, try \ and ** | 17:25 | |
pmurias | jnthn: on the JVM there seems to be only System.console which allows us to only check if both stdin and stdout are not redirected | 17:26 | |
17:27
dbrock- left,
dbrock- joined
|
|||
b2gills | The problem is :(**SELF) doesn't work, you have to use :(**@SELF) in that case | 17:27 | |
17:27
domidumont joined
|
|||
b2gills | Adding :(\SELF) back in does work ( I am not sure why though ) | 17:28 | |
timotimo | arnsholt: it seems like turning the jit off completely makes the whole thing only barely slower | 17:29 | |
17:29
domidumont left
|
|||
Skarsnik | Interesting I updated rakudo and my code that leaked, still leak, but slowier x) | 17:30 | |
TimToady | parse phase seems rather slow again | 17:31 | |
dalek | ast: fdd2f41 | usev6++ | S05-modifier/repetition (2 files): Fudge some more tests failing with UnwindException |
17:32 | |
TimToady | b2gills: I have some tests for sum() now, and they pass with your fix | 17:33 | |
b2gills | I'm working on a pull request | 17:34 | |
TimToady | I could just check in what I have | ||
moritz | m: say [+] 0..^5 | ||
camelia | rakudo-moar 29cc3c: OUTPUT«10» | ||
moritz | m: say [+] 0..4 | ||
camelia | rakudo-moar 29cc3c: OUTPUT«10» | ||
moritz | m: say [+] 0..4.1 | ||
camelia | rakudo-moar 29cc3c: OUTPUT«10» | ||
moritz | m: say [+] 0..^4.1 | ||
camelia | rakudo-moar 29cc3c: OUTPUT«10» | ||
17:34
sprocket left
|
|||
TimToady | moritz: yes, we test for all those :) | 17:34 | |
the trick being to recognize when the endpoint is already excluded, and don't do it twice | 17:35 | ||
moritz | m: say (-2)^..2 | ||
camelia | rakudo-moar 29cc3c: OUTPUT«-2^..2» | ||
moritz | m: say [+] (-2)^..2 | ||
camelia | rakudo-moar 29cc3c: OUTPUT«2» | ||
moritz | m: say [+] (-2.01)^..2 | 17:36 | |
camelia | rakudo-moar 29cc3c: OUTPUT«1.96» | ||
17:36
domidumont joined
|
|||
TimToady | hmm | 17:36 | |
well, that doesn't use the range optimization | |||
17:37
lucasb left
|
|||
dalek | ast: 8f09611 | TimToady++ | S03-operators/range-int.t: test for sum() as well as .sum |
17:38 | |
17:38
zengargoylew left
|
|||
dalek | kudo/nom: 73485c4 | TimToady++ | src/core/Any.pm: add \SELF case to sum(), from b2gills++ |
17:39 | |
17:39
zengargoylew joined
|
|||
pmurias | jnthn: two options are to either raise an error or try to just return true only if both stdin and stdout are not redirected | 17:40 | |
17:45
ginkoms joined
17:55
dha joined
17:59
cygx left
18:02
zengargoylew left,
zengargoylew joined
|
|||
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 838227a | (Zoffix Znet)++ | / (90 files): Merge mojo app and db-builder dirs Because turns out we can! This will also greatly simplify deployment |
18:05 | |
[Coke] | bartolin: down to 432 jvm failures on a local run - about 10% of yesterday's numbers. | 18:06 | |
18:06
FROGGS joined
18:07
pmurias left
|
|||
timotimo | oh wow, 90% of the failures got fixed? | 18:08 | |
that's great! | |||
[Coke] | this is why we need clean test runs on a regular basis. :| | 18:09 | |
FROGGS | o/ | 18:10 | |
18:10
diana_olhovik joined,
diana_olhovik left
18:11
dakkar left
|
|||
timotimo | BBIAB | 18:11 | |
18:12
diana_olhovik joined,
abaugher left
18:15
abaugher joined
|
|||
Skarsnik | I found my leak, it's in XML::Element::elements method (I think) | 18:20 | |
18:20
xfix joined,
diana_olhovik left
|
|||
Skarsnik | gist.github.com/Skarsnik/9d66920ad3f04362388e if someone want to try to figure why x) | 18:21 | |
18:30
spider-mario joined
|
|||
timotimo | does the xml library you're wrapping have some sort of memory management interface? | 18:30 | |
dha | Hm. building rakudo from git repository and this test is failing: t/04-nativecall/13-union.t | 18:31 | |
Anyone seen that before? | |||
timotimo | on windows nativecall tests are known to fail, iirc | 18:32 | |
dha | Huh. When I run the test by itself, it passes. Also this is OS X | 18:33 | |
timotimo | ugh. hooray. | ||
dha tries make test again for fun. | |||
Ok, so it passes when run by it self, but fails during a full make test. Someone should probably look into that. :-) | 18:34 | ||
timotimo | doesn't fail on my box :| | 18:37 | |
dha | Hm. :-/ | 18:38 | |
oh well, maybe I'll try to look at it again later. | 18:39 | ||
18:39
dha left
|
|||
[Coke] | split(:all) seen at: gen/jvm/CORE.setting, line 9788 | 18:48 | |
Please use split(:v) instead. | |||
18:49
black_ant left
18:50
modcure joined,
mrf left
|
|||
modcure | when will Perl 6 be production ready ? | 18:51 | |
nine | modcure: couple of weeks | ||
PerlJam | modcure: It's production ready now for many tasks | 18:52 | |
nine | PerlJam: just tried a new answer ;) | ||
PerlJam | nine: aye, I'm just back filling :) | ||
modcure: btw, what do you want to do with Perl 6? What kinds of tasks are you likely to use it for? | 18:53 | ||
Hotkeys | Triple A twitch fps game engine design | ||
modcure | For the web(connect to database, display results) and/or shell scripts to parse files and connect to database... | 18:54 | |
flussence | well if you define production ready to include things like "ord('€') returns the correct answer", I guess you don't use PHP :) | 18:55 | |
Juerd | Style advice requested! "my Supply $foo .= new;" or "my $foo = Supply.new;"? | ||
PerlJam | flussence: now, now ... php has their own channel. | 18:56 | |
flussence | yeah, just venting because I found that out last week trying something for someone... | ||
PerlJam | Juerd: style advice? The first one gives $foo a type, the second essentially doesn't. That may matter in the long run. | ||
nine | modcure: the language should be fine for that. However we still have a rather small module ecosystem, so you might need to steal from other languages. | ||
modcure | I currently use Perl/Mason for web development and Perl for shell scripts | ||
flussence | well then keep using those | 18:57 | |
Juerd | PerlJam: So, given that for the current program it doesn't really matter at all, because $foo is never assigned a second time, what would be best? | ||
pink_mist | oh god no, don't use Mason | ||
[Coke] | the core language is pretty stable. After christmas, I'm sure a lot of work will go into improving the ecosystem. | ||
PerlJam | Juerd: I don't know about best, but I'd choose the latter in that case probably. | ||
modcure | pink_mist, love Mason :) been using Perl/Mason for 13 years and never had any issues.. | 18:58 | |
PerlJam | modcure: ever used Dancer? | ||
modcure | thanks all. I will download Perl6 on my local system to start learning it. love to learn. | ||
Juerd | Or maybe even "my $foo := Supply.new;" :) | ||
flussence looks at the docs for Mason, not knowing what it is... heeeeey, this looks familiar. | 18:59 | ||
Juerd | In fact, I'm probably under-using := and should probably get used to it anyway. | 19:00 | |
:= is neat. | |||
PerlJam | flussence: I boggle that people still use Mason much like I boggle that there is still Perl 4 code floating around our there. But, if it ain't broke ... :) | ||
grondilu | does a C-style loop(my $i = 0; i < $limit; $i++) automatically uses natives or should I be explicit? | 19:01 | |
Ulti | modcure I've used Perl 6 "in production" for everything but web stuff | ||
19:01
molaf_ left
|
|||
Ulti | modcure: there are some nice looking web things around Plack at the moment though which I haven't tried | 19:02 | |
grondilu | arnsholt: ^ was about github.com/grondilu/libdigest-perl...a1ded60f1d | ||
mspo | mojolicious is the way | ||
Ulti | not for Perl 6 it's not | ||
mspo | is there plack and mason for perl6? | 19:03 | |
Ulti | (not sure who in their right mind would want mason) but there is plack now | ||
flussence | PerlJam: most of the web dev stuff I've done in p5 used Template-Toolkit. It got the job done, but it *really* got in the way of my OCD for pretty output :) | ||
19:05
modcure left
|
|||
Ulti | for web stuff: github.com/supernovus/perl6-web/ github.com/tokuhirom/p6-Crust github.com/tadzik/Bailador/ github.com/shoichikaji/Frinfon | 19:05 | |
MadcapJake | woot, just built a rule for heredocs that actually works and still highlights the rest of the line normally! | 19:06 | |
jnthn back | |||
nine | flussence: for web templates, I'm really sold on metacpan.org/pod/Petal | 19:07 | |
19:07
aaaa left
|
|||
flussence | that looks neat | 19:08 | |
19:08
modcure joined
|
|||
dalek | kudo/curli: 31db551 | (Stefan Seifert)++ | src/core/CompUnit/ (2 files): Don't load outdated precomp files from Repository::FileSystem Always look for the source file and check its modified time stamp against the precomp file one's. |
19:08 | |
nine | That ^^^ was much easier than I expected. | ||
[Coke] | r: $_ = "a b"; ss/a b/w/ ; say "alive" | 19:09 | |
camelia | rakudo-{moar,jvm} 73485c: OUTPUT«alive» | ||
[Coke] | ... local jvm gives: | ||
java.lang.RuntimeException: Cannot access a native attribute as a reference attribute | |||
jnthn | .tell pmurias I'd just go with our best guess rather than raising an error; it's probably more useful. | 19:10 | |
yoleaux | jnthn: I'll pass your message to pmurias. | ||
Hotkeys | Is there anything that anyone is longing for in the ecosystem | ||
[Coke] | Hotkeys: github.com/perl6/perl6-most-wanted...modules.md | 19:11 | |
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 08c0e37 | (Zoffix Znet)++ | / (9 files): Manage fallout from dir merge |
||
ugexe | the p6 equivilent of gofmt | 19:12 | |
bartolin | [Coke]: I also get that exception locally ('Cannot access a native attribute ...') | ||
jnthn | nine: Does 31db551 handle transitive deps properly? | ||
Ulti | Hotkeys crypto I think is a big one | 19:13 | |
since you basically need it for doing anything serious on the web now | |||
nine | jnthn: no. I'm not sure how I can actually find out those in a FileSystem repository. The Installation repository at least has the depends information. Though that will not help for intra dist dependencies either... | ||
ugexe wonder if there should be a 'authoring-depends' or something similar so people can still test/build without needing modules to check the pod coverage | 19:14 | ||
arnsholt | grondilu: The C-style loop doesn't use natives by default I think. But changing it didn't make much difference in my (admittedly very simple) benchmark | ||
Also, there's a pointless change in my PR which I forgot to remove | |||
19:15
gtodd left
|
|||
jnthn | nine: Well, I speculated a dependencies file for Installation for that | 19:15 | |
dependencies # Pairs of short-name to short-name SHA-1s | |||
nine | jnthn: but where do we get that information from? | 19:16 | |
jnthn: that part may actually be easier for the FileSystem repo, since it can just record those dependencies while recursively precompiling | |||
FROGGS | can't we record this information on installation time? | 19:18 | |
nine | FROGGS: recording is the easy part, but where does the information come from? | ||
bartolin | [Coke]: my latest spectest run on JVM gave 401 failing tests. shall we try to get it further down? | ||
FROGGS | nine: hmmm | 19:19 | |
bartolin | [Coke]: the actual question seems to be: shall we keep the policy 'only fudge with RT number'? | ||
jnthn | nine: We'd collect/store them at module installation time for the installation one, again during the precompilation phase | ||
PerlJam | MadcapJake++ | ||
nine | jnthn: aah...of course. To precompile we have to load the modules anyway. Difficulty is only in that we precompile in a different process. | 19:20 | |
MadcapJake | It's nice but I can't seem to get it to capture nested heredocs :( | 19:21 | |
jnthn | nine: Yeah. I've kinda pondered if the easiest way is to just add a --precompile mode | ||
Juerd | Is there a way to .decode with fallback characters when the given data is not well formed? | ||
jnthn | nine: And it spits out (to a file, or stdout, or something) such info | ||
Juerd: Not yet; replacement chars for encode got done just a week or two ago by ilmari++. | 19:22 | ||
Juerd | Oh. Darn. | ||
jnthn | Juerd: What's your use case, ooc? | ||
You can try :enc<utf8-c8> | |||
nine | jnthn: that means that I'll have to have a look at how precompilation actually works. Till now I could just re-use the code that already existed. | ||
jnthn | ;) | ||
19:22
crucialrhyme joined
|
|||
jnthn | I'd be symaphetic if I wasn't currently refactoring the way variable declarations work :P | 19:23 | |
Juerd | An MQTT stream. Most data will be UTF-8 encoded. Some will be malformed UTF-8, some will be iso8859-1, some will be binary :) | ||
What's utf8-c8? | |||
jnthn | If it encounters something that's not valid UTF-8, it uses NFG synthetics to store the octets. | ||
grondilu | arnsholt: to improve performance I suspect using macros will help a lot. Not sure they are ready now, though. | 19:24 | |
jnthn | And if you encode it back to a bytestream it roundtrips them. | ||
nine | jnthn: variable declarations? Oh that's really a fringe feature. Perfectly suited for changing a couple of weeks before 1.0 | ||
Juerd | Ah, great, that suffices for now. | ||
jnthn | (Provided you encode with utf-c8 again) | ||
[Coke] | bartolin: I prefer an RT, but am happy for now to have something like "rakudo.jvm skip '<one line exception message>' | ||
grondilu wonders if we shall have an 'inline' trait as in C | |||
[Coke] | (like I gave up and started doing with NPE) | 19:25 | |
Juerd | github.com/Juerd/p6-mqtt/blob/master/mqtt.p6 # Getting the hang of it. | ||
jnthn | nine: Yeah, I know. Real programmers don't use variables! | 19:26 | |
arnsholt | Yeah, making the rotr and add mod32 operators macros might help a bit too | ||
Juerd | I really love supplies. | ||
19:26
cygx joined
|
|||
cygx | FROGGS: github.com/rakudo/rakudo/pull/591 # makes v5 work again | 19:26 | |
nine | jnthn: if we screw that up we can still go as purely functional language. Multi paradigm FTW! | 19:27 | |
jnthn | ;) | ||
[Coke] | bartolin: gist.github.com/coke/dd7015735ce2de1a5ec9 - tests that are dying instead of just failing, with # of impacted tests. | ||
last 2 are the same error I just mentioned. | 19:28 | ||
19:28
sprocket joined
|
|||
grondilu | arnsholt: I'll give it a shot | 19:29 | |
japhb | Ulti, PerlJam, flussence: The guy who invented (Perl 5) Mason used to be my boss, around 15 years ago. At the time, it was *awesome*. | ||
dalek | kudo/nom: 70c7a23 | cygx++ | src/Perl6/Grammar.nqp: unbreak v5 |
19:30 | |
kudo/nom: 95172f4 | FROGGS++ | src/Perl6/Grammar.nqp: Merge pull request #591 from cygx/v5 unbreak v5 |
|||
FROGGS | cygx++ # that's awesome! | ||
ugexe | it might be worth comparing the modules loaded with the `provides` or actual .pm files, as some run time loaded modules may not get loaded/tracked during those phases. And such files would need their own dependencies resolved :( | ||
cygx | FROGGS: needs the v5 unrot branch, of course | 19:31 | |
bartolin | [Coke]: yeah, I have a similiar list :-) | ||
FROGGS | cygx: how far advanced is it? | ||
19:32
espadrine_ left
|
|||
cygx | FROGGS: advanced in what way? compared to v5 master? | 19:32 | |
just replaces EnumMap -> Map, rw -> raw, etc | 19:33 | ||
grondilu | m: macro postfix:<mod32>($n) { return quasi { {{{$n}}} mod 2**32 } }; say (10**32 + 1)mod32 | ||
camelia | rakudo-moar 73485c: OUTPUT«1» | ||
grondilu | arnsholt: ^seems to work | ||
FROGGS | cygx: I guess I'm asking if I should merge it now | 19:34 | |
nine | jnthn: do you think it's realistic do do in-process precompilation? | 19:35 | |
grondilu | m: macro postfix:<mod7>($n) { return quasi { {{{$n}}} mod 7 } }; say (7 + 1)mod7; macro infix:<m+>($a, $b) { return quasi { ({{{$a}}}+{{{$b}}})mod7 }; say 2 m+ 8 | 19:36 | |
camelia | rakudo-moar 73485c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/UG7vcLm4rUMissing blockat /tmp/UG7vcLm4rU:1------> 3 { ({{{$a}}}+{{{$b}}})mod7 }; say 2 m+ 87⏏5<EOL> expecting any of: postfix statement end statement modifier…» | ||
cygx | FROGGS: haven't really done any testing yet, but it's less broken than current master at least | ||
grondilu | m: macro postfix:<mod7>($n) { return quasi { {{{$n}}} mod 7 } }; say (7 + 1)mod7; macro infix:<m+>($a, $b) { return quasi { ({{{$a}}}+{{{$b}}})mod7 } }; say 2 m+ 8 | ||
camelia | rakudo-moar 73485c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jB6BMyLcaSUnknown QAST node type QAST::Unquoteat /tmp/jB6BMyLcaS:1» | ||
FROGGS | cygx: k, will merge | ||
jnthn | nine: In theory, in the future, yeah... Right now? I'd lean away from it. | 19:37 | |
Hotkeys | grondilu: why not just do (7 + 1)%7 | ||
readability? | |||
dalek | ast: 88fa5d0 | usev6++ | S05-metasyntax/charset.t: Fudge tests for ignorecase and character ranges for JVM |
19:38 | |
FROGGS | cygx: done, thanks again :o) | ||
arnsholt | grondilu: Oh, neat! | 19:39 | |
cygx | my pleasure | ||
with hindsight, it really was a simple fix | |||
grondilu | Hotkeys: yes I should not try to reuse a macro inside an other one | 19:40 | |
crucialrhyme | does anyone have advice for how to make my code (specifically sub update_dict) less slow? it takes like 20 seconds to run on /usr/share/dict/words compared to ~1 for essentially the same thing written in python. is there a more idiomatic way that might be faster? pastebin.com/XsTEWtNr | ||
19:40
dha joined
|
|||
arnsholt | grondilu: You're right about the unrolled stuff before the loop, BTW. But the AT-POS change is the most important one. It made a huge, huge difference | 19:42 | |
19:43
vendethiel joined
|
|||
grondilu | arnsholt: well that's LTA. | 19:43 | |
dalek | p: 82b7eba | FROGGS++ | tools/build/MOAR_REVISION: bump moar rev for cstruct alignment fix |
19:44 | |
grondilu | maybe postcircumfix:<[]> should be a macro (!?) | ||
arnsholt | Yeah, it's really ugly, but it killed a whole load of overhead | ||
gfldex | crucialrhyme: i would try to stick $tagged.chars into it's own variable | 19:45 | |
Hotkeys | I was thinking this too ^ | ||
I wasn't sure though | 19:46 | ||
japhb | arnsholt: Where's the current version of your code? | ||
ugexe | would it be faster to my @t = $tagged.comb; and then iterate @t instead of calling .substr so much? | 19:47 | |
19:47
ab6tract joined
|
|||
Juerd | Does Perl 6 have quotemeta? | 19:48 | |
dalek | kudo/nom: deeec10 | FROGGS++ | t (2 files): add test for RT #126675, bump nqp |
||
ast: 0607677 | usev6++ | S15-unicode-information/uniname.t: Fudge tests for 'uninames of Str' RT #126678 |
|||
nine | Juerd: nope | 19:49 | |
Juerd | Oh... | ||
nine | I really hope you don't actually need it | ||
Juerd | Well... There would be ways around it, but having it would have been much easier. | ||
japhb | Juerd: It's not needed for interpolation into regexen, if that is your fear. | ||
nine | What do you want to use it for? | 19:50 | |
dha | Juerd - for what i was able to glean on quotemeta, see doc.perl6.org/language/5to6-perlfunc#quoting | ||
(possibly a bit out of date, but I don't think anything has changed in this particular area) | |||
Juerd | github.com/Juerd/Net-MQTT-Simple/b...pm#L35-L49 | ||
japhb | Juerd: We force the programmer to explicitly say that they want to interpret interpolated regex metacharacters; by default they don't. | ||
Juerd | There I translate an MQTT filter into a Perl 5 regex | ||
dbohdan | Is anyone working on a PCRE-like library for Perl 6 grammars? | ||
crucialrhyme | ugexe: i like having strings as keys to the hash, and it seems like having to .join everything is even slower. | 19:51 | |
Juerd | The easiest way to do this, is to first quotemeta everything, and then match the escaped things that may be special. | ||
crucialrhyme | gfldex: that shaved off about half a second | ||
arnsholt | japhb: The SHA code? grondilu++ merged it into the repo just a little while ago, so you can just get the main one | ||
japhb | Ah, I was just wanting a link to look at, since I'm curious how non-idiomatic it had to get to be fast. | 19:52 | |
Juerd | I don't expect anyone to be able to read those regexes, though. If you can read them, the brain damage is probably irreversible :) | ||
japhb | Juerd: Given my comment above ... if you are creating a Perl *6* regex, you don't need to worry about the quotemeta stage. | ||
TimToady Fixed That.(tm) | 19:53 | ||
Juerd | japhb: I'm creating one programmatically... | ||
Which opens a whole new can of worms perhaps. | |||
cygx | FROGGS: so, v5 fails precompilation and the sanity test, the latter probably still to more misplaced `is rw` annotations | ||
(my test case was just a basic `use v5; print $^O`) | |||
dalek | ast: 953aca0 | usev6++ | S06-signature/slurpy-params.t: Fudge test for JVM, RT #126493 |
||
japhb | Only if you're planning to EVAL it. If you're building it up using interpolation, the metacharacters *won't* be interpreted unless you specifically ask for it. | 19:54 | |
arnsholt | japhb: Oh, right! | ||
Juerd | I'm probably going to use a completely different approach: instead of cherry picking the things that need changing, I'll actually *parse* the original filter string, and actually translate it. Much more work :( | ||
My original approach was a hack, but an efficient one that took only a few lines of code. | |||
cygx | FROGGS: if you have better things to do, I'll see if I can do something about that by Christmas | ||
Hotkeys | is there a perl 6 style guide | ||
arnsholt | japhb: github.com/grondilu/libdigest-perl...282b638e5e is the commit | ||
japhb | arnsholt: Thanks! :-) | ||
gfldex | crucialrhyme: did you try to change update_dict(Int %dict, Str $w) to update_dict(%dict, Str $w)? May skip a type check. | ||
arnsholt | The important stuff is the stuff inside the loop | 19:55 | |
FROGGS | cygx: if you want to do that, sure, go ahead :o) | ||
japhb | arnsholt: I assume you mean the innermost one with the AT-POS usage. | ||
Hotkeys | and/or a wonderful list of idioms | ||
FROGGS | cygx: I want to spend the little time I have fixing RT tickets | ||
japhb wanders off to a meeting block ... BBL | 19:56 | ||
crucialrhyme | gfldex: just saved another 3s! but aren't type hints supposed to help the compiler optimize? | ||
arnsholt | Yeah, AT-POS and a couple of metaops I flattened out | ||
nine | crucialrhyme: a common misconception | ||
gfldex | crucialrhyme: nobody told the optimiser how to do that yet. And the inliner doesn't inline much. Resulting in the JIT not to jit much. | 19:57 | |
cygx | FROGGS++ # getting rakudo ready | ||
FROGGS | crucialrhyme: this might be the case in future | ||
gfldex | crucialrhyme: besides, they ain't type hints. They are to-be-enfoced-type-checks. | 19:58 | |
timotimo | crucialrhyme: if nobody told you yet, you can run perl6 --profile on your script and get a bit of helpful information; also, $i++ on a native int is many times slower than $i = $i + 1 so far, but that's just the first thing i see | ||
Juerd | Oh, uh, how does one generate a regex with code? | 19:59 | |
cygx | .oO( EVAL! ) |
||
Juerd | I got started by generating a string, but... I'd need quotemeta :) | ||
gfldex | Juerd: that might be a good use for macros. | 20:00 | |
Juerd | Really? | ||
crucialrhyme | well, i learned something today! the profiler says that the two big problems are substr and the hash lookup. | 20:03 | |
moritz | Juerd: sub quotemeta($_) { S/(\W)/\\$0/ } # or so :-) | ||
Juerd | moritz: Still though, how to interpolate a string *as a regex* in a regex? :) | 20:04 | |
ugexe | wonder if late binding the hash key join would help your usage or not... something like `my @a = 1,2,3; my %x; my $y := @a[1,2].join; %x{$y}++` | ||
Juerd | I'm reading S05 but I can't find it | ||
jnthn | Juerd: <$str> | ||
cygx | is there a p6-equivalent of nqp::eqat? | ||
Juerd | Ah, the spec said "to interpolate a Regex object" :) | ||
Juerd tries | 20:05 | ||
jnthn | cygx: yes, but I can't remember what it's called :P | ||
PerlJam | isn't that index? | 20:06 | |
or perhaps substr() plus the eq op | |||
20:07
vendethiel- joined
|
|||
cygx | PerlJam: cf crucialrhyme's comment a few lines up of substr being a problem | 20:07 | |
PerlJam | ah | ||
20:08
vendethiel left
|
|||
dalek | ast: a8fe0ec | usev6++ | S06-operator-overloading/sub.t: Fudge test for JVM: TTIAR |
20:09 | |
dha | I think I wondered about this before, but got no input.... | ||
cygx | jnthn: it's spelled substr-eq | 20:10 | |
dha | in 5to6-nutshell, it says "The $ sigil is now always used with "item" variables (e.g. $name)..." | ||
What is an "item" variable? | |||
I don't believe the term is used or defined anywhere else. | 20:11 | ||
gfldex | crucialrhyme: have a look at github.com/rakudo/rakudo/blob/nom/...r.pm#L2068 | ||
crucialrhyme: you may be able to inline that by hand | 20:12 | ||
cygx | is a BagHash optimized compared to an ordinary Hash? | 20:14 | |
dalek | ast: 6c2e1b4 | jnthn++ | S09-multidim/decl.t: Fix a test thinko. |
||
ast: e3df384 | jnthn++ | S02-types/is-type.t: Some tests for `my $foo is SomeType`. |
20:15 | ||
grondilu | the macro seems not happy with «⊕=» construct | ||
m: macro infix:<m+>($a, $b) { quasi { ({{{$a}}} + {{{$b}}}) % 7 } }; my @a = 1, 2; @a «[m+]=» (1, 1); | |||
camelia | rakudo-moar deeec1: OUTPUT«Type check failed in unquote evaluation; expected AST but got Int in macro infix:<m+> at /tmp/MQyeZZUwyl:1 in block <unit> at /tmp/MQyeZZUwyl:1» | ||
dalek | ast: ce6b79c | usev6++ | S06-signature/sigilless.t: Fudge test for JVM, only failing with harness |
20:16 | |
grondilu | or simpler: | 20:17 | |
m: macro infix:<m+>($a, $b) { quasi { ({{{$a}}} + {{{$b}}}) % 7 } }; my $x = 5; $x [m+]= 4; | |||
camelia | rakudo-moar deeec1: OUTPUT«Type check failed in unquote evaluation; expected AST but got Int in macro infix:<m+> at /tmp/tztpR7wVaA:1 in block <unit> at /tmp/tztpR7wVaA:1» | ||
grondilu | though I suspect that's just NYI | ||
crucialrhyme | gfldex: nope, i just made it slower, although admittedly maybe i did a bad job of using the nqp stuff | 20:19 | |
20:19
zhmylove joined
|
|||
flussence ran that trigrams script and the profiler said 96% JITted... seems awfully slow given that number. | 20:20 | ||
20:20
darutoko left
20:23
diana_olhovik_ joined
|
|||
crucialrhyme | cygx: switching to a BagHash just shaved another 3s off | 20:24 | |
Juerd | Just spent some time trying why the heck my code had all kinds of syntax errors. Turns out I used qw(...) where I should have used <...> :) | 20:25 | |
20:26
kaare_ left
|
|||
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 3d9fb25 | (Zoffix Znet)++ | web/lib-db-builder/P6Project (2 files): Toss SpriteMaker We can now use AssetPack Mojolicious plugin right in the app |
20:26 | |
kudo/nom: 019bf1b | peschwa++ | src/vm/jvm/runtime/org/perl6/rakudo/RakOps.java: Fix p6typecheckrv for r-j. Failure does not violate declared return types, so we can't throw a TypeCheck::Return when we get it. Fixes RT #126673. |
|||
psch | xmas tickets are too hard :l | 20:27 | |
jnthn | Tell me about it... :P | ||
psch | although all those phasery bugs probably will have lots of fallout for r-j too | 20:28 | |
or well, change behavior at least... | 20:29 | ||
bartolin | psch++ (and of course jnthn++) | ||
20:30
domidumont left
|
|||
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 34e103e | (Zoffix Znet)++ | web/morbo: Tell Morbo to watch the db and conf |
20:30 | |
kudo/nom: 0b228c9 | jnthn++ | src/Perl6/ (2 files): Support shapes on my decls; improve `is ContType`. Things like `my %h is BagHash` now properly gets a fresh BagHash each time. |
20:33 | ||
kudo/nom: d410e34 | jnthn++ | t/spectest.data: Run S02-types/is-type.t and S09-multidim/decl.t. |
|||
20:34
abaugher left
|
|||
jnthn | $ perl6-m -e "my @a[2]; @a[3] = 42" | 20:34 | |
Index 3 for dimension 1 out of range (must be 0..1) in block <unit> at -e:1 | |||
\o/ | |||
20:34
abaugher joined
|
|||
jnthn | heh, that error has an off-by-one... | 20:35 | |
Oh no it doesn't | |||
Juerd | How do you call a non-exported sub? With "unit module foo; sub bar { ... }" I tried "foo::bar(...)" but that says "Could not find symbol" | ||
jnthn | My brane has an off-by-one | ||
Juerd: You have to declare it "our sub bar ..." to make it available that way | |||
Juerd | Hmmm... Oh. | 20:36 | |
Thanks. Useful in this case, but I foresee issues with many kinds of quick hacks that I do :( | |||
grondilu | does this fixed-size arrays come with a performance gain? | ||
*do these ... come* | |||
jnthn | grondilu: "It depends" | 20:38 | |
grondilu: And given I'm mostly caring about making them work at all right now, unlikely. | 20:39 | ||
grondilu: In the longer run, yes, accessing a multi-dim array will work out faster than accessing nested ones. | |||
Juerd | How can I make a regex from a string, other than /<$foo>/? In unit tests, I need to be able to see the actual regex that was generated, as "expected: /<$regex>/" isn't very useful to me :) | ||
grondilu | m: my $str = "^foo"; say rx/$str/.perl; | 20:41 | |
camelia | rakudo-moar 019bf1: OUTPUT«rx/$str/» | ||
grondilu | hum | ||
m: my $str = "^foo"; say rx/<$str>/.perl; | |||
camelia | rakudo-moar 019bf1: OUTPUT«rx/<$str>/» | ||
20:41
diana_olhovik_ left
|
|||
cygx | crucialrhyme: gist.github.com/cygx/84b6245ac28213a8667f | 20:41 | |
Juerd | I guess I could EVAL it... :) | ||
Skarsnik | timotimo, my test (with the leak) use the XML module, that is written in perl6 | 20:42 | |
dha | m: my $str = "^foo";say $str.perl; | ||
camelia | rakudo-moar 019bf1: OUTPUT«"^foo"» | ||
20:42
eliasr joined
|
|||
dha | I'm not sure if it would apply to all cases, but can't you just look at the contents of $str in such case? | 20:43 | |
gfldex | crucialrhyme: that's what I got so far. Went from 14.6s to 7.6 . gist.github.com/gfldex/e8469ad25ee559e7c8ca | ||
Juerd | dha: What do you mean? | ||
dha: I have a function that returns a generated regex | |||
20:43
zengargoylew left
|
|||
Skarsnik | FROGGS, thx for the fix :) I also made a module to analyse nativecall cstruct if you are interested, that how I find out this issue with the size | 20:44 | |
dha | I guess I'm not understanding what's actually needed here. Never mind. | ||
gfldex | m: my %h{str}; use nqp; my $s = 'icanhazword'; %h{nqp::unbox_s($s)} = 1; dd %h; | 20:45 | |
camelia | rakudo-moar 019bf1: OUTPUT«Type check failed in binding key; expected str but got Str in block <unit> at /tmp/6weEerseTm:1» | ||
gfldex | why does it got Str? | ||
psch | gfldex: probably because postcircumfix:<{ }> doesn't have a str candidate and thus autoboxes | 20:46 | |
jnthn | gfldex: Native types won't work out too well with hash keys | ||
We should probably whine about them until we can do them properly | |||
psch | (i'm guessing str might be missing a few things a hash key needs to be able to do, too) | ||
gfldex cries bitter tears | |||
20:47
Peter_R joined
|
|||
crucialrhyme | gfldex cygx thanks! that is an improvement | 20:47 | |
gfldex | is that LTA then and needs rakudobugging? | ||
20:49
geraud joined
|
|||
[Coke] | hub.docker.com - rakudo-star has 48.8K pulls. | 20:50 | |
hoelzro | \o/ | 20:51 | |
ugexe | rakudo has 665 stars... | ||
20:53
crucialrhyme left
20:54
johan joined
|
|||
Skarsnik | Is there some way track what the GC does? I try to find why this grow in memory for each loop : gist.github.com/Skarsnik/9d66920ad3f04362388e | 20:55 | |
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 1dc95aa | (Zoffix Znet)++ | web/ (2 files): Make building in an output dir actually work |
20:56 | |
Hotkeys | Is there an easy way to unload modules or is that a messy thing to do | 20:58 | |
Looking for a good way to do a plugin system | 20:59 | ||
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: b172de2 | (Zoffix Znet)++ | web/templates/layouts/default.html.ep: Fix link to the build log |
||
Skarsnik | Hotkeys, hm tricky if the module export stuff I believe, or maybe when you reload them with requiere it get erased | 21:04 | |
PerlJam | that's why we've got the need declarator, so that you can load without importing any symbols. | 21:06 | |
Hotkeys | I'll have to look into need | ||
dalek | kudo/curli: 7bbe2ef | (Stefan Seifert)++ | src/core/CompUnit/ (2 files): Record the transitive dependencies of modules precompiled by FileSystem Write the list of transitive dependencies to a "dependencies" file during precompilation in Repository::FileSystem. This can later be used to check the modification times of all transitive dependencies. |
||
PerlJam | S11 somewhere | ||
21:07
CIAvash left
|
|||
Skarsnik | a wild guess to have proper plugin, it's etheir forcing them to does a role that provide init and a delete that purge his own namespace (or do it for it) | 21:08 | |
dha | Looks like C<need> could use some more extensive documentation. | 21:10 | |
jnthn | use = need + import | 21:12 | |
(roughly :)) | |||
Juerd | Yay, mqtt-filter-to-perl5-regex-translator succesfully translated to a mqtt-filter-to-perl6-regex-translator. All 560 tests pass :) | ||
21:13
diakopter___ joined
|
|||
jdv79 | is london more expensive than nyc? sure seems it but i've only been here a few hours. | 21:14 | |
dha | jdv79 - have not compared lately. They probably go back and forth. :-) | 21:15 | |
jnthn | jdv79: I've never been to nyc, so hard to say. I think it probably depends what part of London, though. And London is certainly more expensive than, say, Yorkshire. :) | ||
Juerd | (In case anyone cares, github.com/Juerd/p6-mqtt/blob/master/regex.pm and github.com/Juerd/p6-mqtt/blob/master/t/regex.t) | ||
21:16
colomon left
|
|||
jdv79 | i'm not sure where i am - near kings cross. i'm gonna try to get oriented when its light out. | 21:16 | |
PerlJam | jdv79: see if you can catch the train to hogwarts! ;-P | ||
MadcapJake | With the way that Atom handles begin/end rules, I won't be able to support heredocs that aren't neatly nested (the last heredoc of a line will need to be the first to end). | 21:19 | |
Juerd | The Perl 6 version is only 60x slower | 21:20 | |
jnthn looks forward to haver 6.c, when he can stop doing missing features/fixing semantics all the time and do performance things. :) | 21:21 | ||
*after | |||
diakopter___ | Juerd: that's within expectoration distance | ||
Juerd | diakopter___: Yes, I'm positively surprised. Expected much worse. | ||
Especially since this is very, very heavy on regexes, and Perl 5 is known for its incredibly fast regexes. | 21:22 | ||
PerlJam | MadcapJake: that didn't make any sense to me unless you're just trying to say that you won't be able to support multiple heredocs in a single statement (heredocs aren't "nested") | 21:24 | |
dalek | ast: 34d8a07 | usev6++ | S (2 files): Fudge tests for JVM, RT #126679 |
21:25 | |
ast: 24283a2 | usev6++ | S32-str/split.t: Fudge more tests for JVM, RT #126679 Fudging is imprecise in this case due to the use of subtests |
|||
gfldex .oO( Perl 6 is faster then c) | |||
Juerd | gfldex: Huh? | ||
TimToady | but is it faster than c²? | ||
gfldex | well it will be some time after 6.c | 21:26 | |
grondilu is not sure what 6.c means, guesses 6.christmas | 21:27 | ||
21:28
telex left
|
|||
grondilu | (but finds the idea silly) | 21:28 | |
jnthn | m: my @a[3;3]; @a[1;2] = 42; say @a[1;2]; @a[2,4] = 100; | ||
camelia | rakudo-moar d410e3: OUTPUT«42Partially dimensioned views of arrays not yet implemented. Sorry.  in block <unit> at /tmp/2HVsx0MMvA:1» | ||
MadcapJake | PerlJam: they aren't nested and that's why it doesn't work :P If they were only allowed to be nested then Atom's grammar engine could handle it. But heredocs can "overlap" which is impossible for me to capture | ||
jnthn | m: my @a[3;3]; @a[1;2] = 42; say @a[1;2]; @a[2;4] = 100; | ||
camelia | rakudo-moar d410e3: OUTPUT«42Index 4 for dimension 2 out of range (must be 0..2) in block <unit> at /tmp/6fMcEMBXRF:1» | ||
jnthn | Yays :) | ||
TimToady: Still got more to wire up and incorporate, but you can at least now declare and index multi-dim arrays :) | 21:29 | ||
TimToady | \ö/ | ||
PerlJam | MadcapJake: does Atom have any way to match without consuming? You could use that to mark the end/begin tokens if so | 21:30 | |
jnthn | m: my %h is BagHash; say %h.WHAT | ||
camelia | rakudo-moar d410e3: OUTPUT«(BagHash)» | ||
21:30
telex joined
|
|||
jnthn | This too, finally :) | 21:30 | |
Juerd | Is there a way to force three values into a sub that expects 2 arguments? :P | 21:31 | |
Never mind that. It's a silly question. | |||
dalek | ast: b8191b7 | usev6++ | S15-literals/identifiers.t: Fudge tests for JVM: Unicode literals |
21:32 | |
Juerd | I should probably rethink the way I'm passing things to this supply anyway. | ||
Currently passing arrays, and unpacking them in the signature. But there's this third value that you're typically not interested in. :( | |||
diakopter___ | m: my %h does ::BagHasherific; | 21:33 | |
camelia | rakudo-moar d410e3: OUTPUT«Unhandled exception: Method 'item' not found for invocant of class 'BagHasherific' at <unknown>:1 (/home/camelia/rakudo-m-inst-2/share/perl6/runtime/CORE.setting.moarvm:print_exception:4294967295) from gen/moar/m-CORE.setting:19216 (/home/camelia…» | ||
jnthn | Juerd: Use *@ at the end of the unpacking subsignature to discard other things? | 21:34 | |
Juerd | jnthn: The thing is, the signatures will be written by the user of the module. I don't want them to have to type anything for something that most users won't ever need | 21:35 | |
21:35
colomon joined
|
|||
Juerd | I'm exposing a Supply, they can tap. | 21:35 | |
There's no signature unpacking for hashes, is there? | 21:36 | ||
diakopter___ | m: my %h is Hash[Hash]; say %h.WHAT | ||
camelia | rakudo-moar d410e3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/hT5iD0qa_qCan't use unknown trait 'is ' in a variable declaration.at /tmp/hT5iD0qa_q:1------> 3my %h is Hash[Hash]7⏏5; say %h.WHAT expecting any of: TypeObject default…» | ||
diakopter___ | m: my %h is Hash of Hash; say %h.WHAT | ||
camelia | rakudo-moar d410e3: OUTPUT«(Hash[Hash])» | ||
diakopter___ | jnthn: is my %h is Hash[Hash] supposed to work | ||
dalek | ast: dbbab0e | usev6++ | S04-phasers/pre-post.t: Change fudging for JVM to 'skip', RT #124961 |
||
diakopter___ | m: my Hash[Hash] %h; say %h.WHAT | 21:37 | |
camelia | rakudo-moar d410e3: OUTPUT«(Hash[Hash[Hash]])» | ||
MadcapJake | PerlJam: How do you mean? I can't see a way around this: To initiate the capture of the subsequent lines of a heredoc, I need to enter a begin/end rule. And thus a line like `say q:to/END1/, q:to/END2/;` will mean that I am now nested inside the END2 rule match and since my end rule is just `\3` (the 3rd capture of the begin rule), I can't access that within the nested pattern. | 21:38 | |
Juerd | Or, is there a way to call a Supply's tap differently, based on its arity? | ||
diakopter___ | m: my ::Unicccc %h; say %h.WHAT | ||
camelia | rakudo-moar d410e3: OUTPUT«Method 'instantiate_generic' not found for invocant of class 'Hash[Unicccc]' in block <unit> at /tmp/Qprvr7GDDV:1» | ||
psch | m: my %h = a => 1, b => 2; sub f( %h ( :$a, :$b ) ) { say $a }; f %h | 21:39 | |
camelia | rakudo-moar d410e3: OUTPUT«1» | ||
diakopter___ | masak: I need your [WEIRD] (or at least [ANNOYING]) submitter | ||
jnthn | diakopter___: I don't think Hash[Hash] is parsing like you think. | 21:40 | |
It won't work, anyways. | |||
is Hash of Hash is the right way | |||
diakopter___ | okie | ||
21:40
luis joined
|
|||
jnthn | *sigh* Why is people's first instinct to feed random shit to the compiler... | 21:40 | |
diakopter___ | only some people's | 21:41 | |
jnthn | Indeed. | ||
diakopter___ | first instinct, and fourth instinct, and fifth... | ||
jnthn | Juerd: You can unpack hashes. | 21:42 | |
Juerd: As named params | |||
Juerd: You could wrap the thing up before passing it to tap, if that helps. Maybe by subclassing Supply even :) | |||
Juerd | I can't find documentation on unpacking hashes. | 21:43 | |
What do you mean by wrapping up? | |||
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: bf252f1 | (Zoffix Znet)++ | Build.PL: Add IO::Socket::IP 0.37 to prereqs Versions earlier than 0.31 cause cryptic error messages down the food chain |
21:44 | |
jnthn | m: sub foo((:$bar, :$baz)) { say $bar; say $baz; }; foo { bar => 1, baz => 2 } | ||
camelia | rakudo-moar d410e3: OUTPUT«12» | ||
Juerd | Thanks :) | ||
jnthn | Juerd: Are you exposing things for the user of your module to .tap? | ||
Juerd | m: sub foo((:$bar, :$baz)) { say $bar; say $baz; }; foo { bar => 1, baz => 2, hoping-this-will-be-ignored => 3 } | ||
camelia | rakudo-moar d410e3: OUTPUT«Unexpected named argument 'hoping-this-will-be-ignored' passed in sub-signature in sub foo at /tmp/jn9WBq09yf:1 in block <unit> at /tmp/jn9WBq09yf:1» | ||
Juerd | Aw :) | ||
dalek | ast: ddbbc84 | usev6++ | S06-advanced/return.t: Fudge for JVM, RT #126673 |
21:45 | |
jnthn | Nah, that'd need a *% there | ||
psch | m: sub foo( %h (:$bar, :$baz)) { say $bar; say $baz; }; foo { bar => 1, baz => 2, hoping-this-will-be-ignored => 3 } | ||
camelia | rakudo-moar d410e3: OUTPUT«Unexpected named argument 'hoping-this-will-be-ignored' passed in sub-signature of parameter %h in sub foo at /tmp/S2NBVSkhLU:1 in block <unit> at /tmp/S2NBVSkhLU:1» | ||
psch | m: sub foo( *%h (:$bar, :$baz)) { say $bar; say $baz; }; foo { bar => 1, baz => 2, hoping-this-will-be-ignored => 3 } | ||
camelia | rakudo-moar d410e3: OUTPUT«Too many positionals passed; expected 0 arguments but got 1 in sub foo at /tmp/t3cf3ODMC4:1 in block <unit> at /tmp/t3cf3ODMC4:1» | ||
psch | vOv | ||
Juerd | jnthn: I'm not sure if I understand your question. I'm exposing a supply, that the user can tap. The values I'm emitting are currently hashes with three keys: topic, message, retain. Retain is a boolean and usually not interesting. | ||
psch & | |||
Juerd | jnthn: Having ", *%" in code by users would be ugly. | 21:46 | |
I've now moved the ugliness to the hash, so -> $topic, $message { say "$topic: $message" } became -> { say "{ .<topic> }: { .<message> }" } | 21:47 | ||
That's doable :) | |||
21:47
rurban joined,
rurban left
|
|||
jnthn | *nod* | 21:47 | |
Juerd | They can unpack it if they want, but it's a lot of code and they can't just ignore 'retain' if they do. | ||
For APIs with callbacks, it would be nice to have a way to force-feed more arguments :) | 21:48 | ||
dalek | ast: 35504df | usev6++ | S06-signature/type-capture.t: Fudge for JVM, RT #126383 |
||
Juerd | Especially if you want to introduce more arguments, but keep backwards compatibility with the previous version. | 21:49 | |
Perl 5 handles this nicely by not caring about almost anything. | |||
zengargoyle | TimToady: can i pick you brain about some POD questions? | ||
dalek | ast: 26e82b7 | usev6++ | S06-advanced/callframe.t: Fudge for JVM, NPE for RT #77752 |
21:52 | |
21:53
ZoffixW joined
|
|||
dalek | ast: e922c94 | usev6++ | S06-currying/misc.t: Fudge for JVM: NPE in sub 'is-primed-call' |
21:55 | |
href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 4d0dc28 | (Zoffix Znet)++ | web/build-project-list.pl: We are already cleaning old logotypes before the build |
|||
grondilu | m: say 1_00; # I was expecting a "malformed integer literal" here | 21:58 | |
camelia | rakudo-moar d410e3: OUTPUT«100» | ||
grondilu | (as a warning at least) | ||
ZoffixW | grondilu, not sure about P6, but in P5, you can use _ in digits.. Makes stuff like 1_000_000_000 more readable. | ||
21:58
luis left
|
|||
grondilu | ZoffixW: it's not the use of _ per se, it's the fact that it did not group by three digits | 21:59 | |
PerlJam | yes, you can do the same in P6 | ||
21:59
skids left
|
|||
PerlJam | grondilu: neither P5 nor P6 care how you group them | 21:59 | |
grondilu | ok | 22:00 | |
PerlJam | though ... | ||
m: say 1__00 | |||
camelia | rakudo-moar d410e3: OUTPUT«5===SORRY!5===Only isolated underscores are allowed inside numbersat /tmp/M1hL6oEDHX:1------> 3say 17⏏5__00Confusedat /tmp/M1hL6oEDHX:1------> 3say 17⏏5__00» | ||
PerlJam | yep. both P5 and P6 complain when you place them next to each other | 22:01 | |
m: say 1._00 | |||
camelia | rakudo-moar d410e3: OUTPUT«Method '_00' not found for invocant of class 'Int' in block <unit> at /tmp/W4YjDat02f:1» | ||
PerlJam | m: say 1_.00 | 22:02 | |
camelia | rakudo-moar d410e3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_K5bs17k7SConfusedat /tmp/_K5bs17k7S:1------> 3say 17⏏5_.00» | ||
PerlJam | (also sane :) | ||
zengargoyle | not everybody groups by 3 digits | ||
PerlJam | especially if you're using octal or hex | ||
jnthn | 'night, #perl6 | 22:03 | |
ZoffixW | night | ||
PerlJam | g'night jnthn! Sleep well! | 22:04 | |
bartolin | [Coke]: I think I handled almost all of the dying tests on JVM (except S04-statements/with.t and S17-supply/watch-path.t -- the latter didn't die for me) | ||
22:05
xfix left,
luis joined
22:06
cygx left
|
|||
bartolin | [Coke]: that would make about 120 failing test left. but I'm heading to bed now ... o/ | 22:06 | |
22:11
RabidGravy left,
colomon left
|
|||
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 8c915a7 | (Zoffix Znet)++ | web/lib/ModulesPerl6/Model/ (2 files): Adjust path to db file relative to bin |
22:12 | |
kudo/curli: 11efa61 | (Stefan Seifert)++ | src/core/CompUnit/ (3 files): Check transitive dependencies when loading a precomp file With this automatic precompilation in CompUnit::Repository::FileSystem should be safe for general usage. |
|||
nine | I just love how much faster Inline::Perl5's test suite runs with this ^^^ :) | 22:13 | |
Juerd | What does "Cannot unbox a type object" mean? I don't know what unboxing is. | ||
ZoffixW | nine++ | 22:14 | |
PerlJam | nine: when does that get merged back into nom? :) | ||
Skarsnik | Juerd, when did you get thise? | 22:15 | |
Juerd | Skarsnik: await $object.connection, where the object "has IO::Socket::Async $.connection;" | 22:16 | |
nine | PerlJam: I hope to finish this up within a week or so. Panda will need some adaptions, but nothing major. | ||
diakopter___ | nine: how much faster? [morbidly curious] | ||
ZoffixW | From the P5 grapevine, if anyone wants to kick up an idea: www.learning-perl.com/2015/11/shoul...ng-perl-5/ | 22:17 | |
Skarsnik | ZoffixW, damn that a legit concern | 22:18 | |
ZoffixW | *phew* modules.perl6.org/mojo-app finally builds correctly on my demo box \o/ | 22:19 | |
22:20
fjk joined
|
|||
PerlJam | calling the next edition "Learning Perl 5" won't affect all of the already-printed versions, so there's bound to be some confusion at some point. But I think they should call the next version "Learning Perl 5" to distinguish from "Learning Perl 6" that will eventually come out | 22:20 | |
nine | diakopter___: 9 seconds vs. 32 since most of the time was spent compiling over and over again | ||
dalek | kudo/curli: 45fd6a6 | (Stefan Seifert)++ | src/core/CompUnit/PrecompilationRepository.pm: Need to unlock the store if modification time check failed |
22:21 | |
ZoffixW | PerlJam, but the issue with that is the uninitiated will go with the "6 > 5" and pick up learning P6 without realizing it's a different language and not a newer version of P5 | ||
_sri_ | it's not too late to change the name from Perl 6 to something else | ||
22:22
fjk left
|
|||
_sri_ | in fact, it can even be very valuable for marketing | 22:22 | |
dha | _sri_ - I think that argument is pretty much dead at this point. | 22:23 | |
diakopter___ | "buying the wrong book" is probably the tiniest of concerns, anyway | ||
PerlJam | ZoffixW: this is might be a good strategy for P6 ;> | ||
22:24
vendethiel- left
|
|||
Skarsnik | Maybe put Learning camelia perl6 will make then think twice ? | 22:24 | |
ZoffixW | PerlJam, but that strategy is also pissing off a whole bunch of P5 devs :) We want to make friends, not enemies | ||
Renaming P6 won't solve much at this point. | |||
pink_mist | maybe if the P6 book was named 'Learning Rakudo Perl 6' | 22:25 | |
_sri_ | that's one thing that really bugs me about the perl6 community, total disregard for the future of perl5 | ||
PerlJam | Perl 6 might be de facto called Rakudo if enough people just start doing that (no matter what anyone else says/thinks/wants) | ||
dha | ZoffixW - I'm not sure I agree, but it appears to be a moot point. | ||
diakopter___ | ZoffixW: I'd challenge that claim; how do you know there are all these pissed-off P5 devs? | ||
pink_mist | and I agree with _sri_ here | ||
dha | _sri_ - Honestly, I think it's disagreement, rather than disregard. That said, that doesn't necessarily mean there isn't a problem. | 22:26 | |
Juerd | Can anyone tell me what unboxing is? | ||
ZoffixW | Juerd, unpacking args? dunno | ||
dha | diakopter___ - oh, you just have to talk to them. They'll make it quite clear that they're pissed off. :-) | ||
ZoffixW | I saw that a few times, but forget what was causing it | ||
PerlJam | Juerd: boxing is putting a raw thingy into an object. unboxing is taking the raw thingy out. | ||
ZoffixW | diakopter___, I'm a Perl 5 programmer who participates in the P5 community... I've had a lot of discussions with the P5 folks about the name thing :) | 22:27 | |
zengargoyle | isn't it taking things out of the container | ||
PerlJam | (like the way I use those technical terms) | ||
Juerd | PerlJam: Okay, then I still don't understand what's going wrong in my code :( | 22:28 | |
pink_mist | well the context was unboxing an object ... a type object in Juerd's case .. which doesn't have a "thingy" in it, so of course that fails | ||
Juerd | I'm doing $foo.bar, it doesn't feel like getting thingies out of objects. | ||
zengargoyle | a type object. like an unset thing. | ||
diakopter___ | ZoffixW: okay, "the P5 community" is hardly representative of P5 devs. online fankids and convention circuit groupies aren't representative of anybody :-o | ||
zengargoyle | is $foo defined? | ||
22:28
cygx joined
|
|||
FROGGS | Skarsnik: so you are Sylvain? where is that module ooc? | 22:28 | |
Juerd | Oh, wrong line number. Sorry. I'm not sure what I'm doing. | ||
cygx | Juerd: 'cannot unbox a type object' is perl6 speak for NullPointerException :p | 22:29 | |
Skarsnik | FROGGS, github.com/Skarsnik/nativecall-typediag (the doc sux for now) | ||
ZoffixW | diakopter___, eh? You have the lead developer of the most ++ed Perl 5 project discussing the issue of the name... you can't dismiss this as "hardly representative" | 22:30 | |
diakopter___ | ZoffixW: ... except maybe [they might be representative of] people who make their living from [other people using] the language | ||
Juerd | Ah, apparently an argument I was passing wasn't initialized. | 22:31 | |
zengargoyle | m: my Str $s; say $s.substr(0,1); | ||
camelia | rakudo-moar d410e3: OUTPUT«Use of uninitialized value of type Str in string contextAny of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/buEu3Oju_h:1Cannot unbox a type object in block <unit> at /tmp/buEu3Oju_h:1» | ||
FROGGS | Skarsnik: wow, nice :o) | ||
zengargoyle | m: my Str $s; $s.substr(0,1); | ||
camelia | rakudo-moar d410e3: OUTPUT«Use of uninitialized value of type Str in string contextAny of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/yI0snqC75Y:1Cannot unbox a type object in block <unit> at /tmp/yI0snqC75Y:1» | ||
pink_mist | Juerd: you can add :D to the variable declaration/signature to make sure it has to be defined =) | 22:32 | |
Juerd | pink_mist: Yeah, maybe I should patch IO::Socket::Async to have that :) | ||
FROGGS | gnight | ||
22:32
FROGGS left
22:33
stmuk_ left
|
|||
diakopter___ | ZoffixW: yes, representative of "the community", of course, you're right. I was thinking of P5 users, not P5 porters and maintainers of popular projects. But I concede the point anyway, yes there are plenty of people worried about the name causing problems for their livelihood | 22:33 | |
pink_mist | ZoffixW: Mojolicious is the most ++ed? 0_o | ||
ZoffixW | pink_mist, yup, higher even than perl itself :P | ||
pink_mist | cool :D | ||
Juerd | Are default values in "has" ignored if you have your own BUILD? | ||
pink_mist | Mojolicious++ | ||
Skarsnik | hm, good question | 22:34 | |
PerlJam | well, sri++ too :) | ||
_sri_ | \o/ | 22:35 | |
hoelzro | Juerd: only if there's a kwarg for that attribute, iirc | ||
22:35
colomon joined
|
|||
Juerd | What's a kwarg? | 22:35 | |
hoelzro | er, sorry | ||
named parameter | |||
PerlJam | .oO( beware the kwarg, it is mean and vicious ) |
22:36 | |
pink_mist | why 'kw'arg? 0_o | ||
hoelzro | m: class Person { has $.name = 'John'; has $.age = 21; }; say Person.new(:name<Rob>) | ||
camelia | rakudo-moar d410e3: OUTPUT«Person.new(name => "Rob", age => 21)» | ||
pink_mist | the 'k' stands for key I guess? | ||
Juerd | All of my default values are ignored :( | ||
hoelzro | Key Word ARGument | ||
pink_mist | ahh | ||
hoelzro | it's python slang | ||
22:37
rurban joined
|
|||
Juerd | TBH, I'm not sure if I should do this in BUILD even. Maybe it goes in new. This is all new (or BUILD) to me. | 22:37 | |
Where does initialization for the object go? | |||
hoelzro | hehe | ||
BUILD, usually | |||
Juerd | It looks like you can't have custom initialization without doing *everything* yourself :| | ||
hoelzro | m: class Person { has $.name = 'John'; has $.age = 21; submethod BUILD(:$!name) {} }; say Person.new(:name<Rob>) | 22:38 | |
camelia | rakudo-moar d410e3: OUTPUT«Person.new(name => "Rob", age => 21)» | ||
hoelzro | m: class Person { has $.name = 'John'; has $.age = 21; submethod BUILD(:$!name, :$!age) {} }; say Person.new(:name<Rob>) | ||
camelia | rakudo-moar d410e3: OUTPUT«Person.new(name => "Rob", age => Any)» | ||
hoelzro | Juerd: I'm guessing you're seeing something like ↑ ? | ||
diakopter___ | ZoffixW: on the other hand, would those same people also argue against (and worry about) "losing users/customers" from Perl 5 to Perl 6? | ||
Juerd | hoelzro: I don't get it. In my code, all variables result in "(Str)", "(Int)", when I &say them. | 22:39 | |
hoelzro | Juerd: would you mind pasting some code on a pastebin and sending us a link? | ||
Juerd | Regardless of BUILD's signature. | ||
gist.github.com/Juerd/61eebb42659886927eb1 | 22:40 | ||
Basically, $!server must be set by the user, $!port has a default. | |||
ZoffixW | diakopter___, not sure what you mean. The main issue all comes down to "6 > 5": people unfamiliar with historic reasons for the name of P6 will think it's the "new and improved" P5. Firefox 6 is more up-to-date and is meant to be better than Firefox 5. Same applies to all software... except for Perl. | 22:41 | |
Juerd | But $!server isn't set to what I'm passing (my $m = Net::MQTT.new(server => 'test.mosquitto.org')), and $!port is just as empty. | ||
hoelzro | I'm not sure if has defaults happen before or after BUILD | ||
well, the named parameters passed to new are passed to BUILD | |||
diakopter___ | ZoffixW: but from a language design perspective, "more up-to-date" and "better" is exactly what is intended by Perl 6 | 22:42 | |
ZoffixW | diakopter___, and actually, there is a good reason for P6 folks to worry about that issue too, because there are people upset enough to make it their missing to diss P6, like this fella: twitter.com/zoffix/status/666263831572647936 twitter.com/zoffix/status/665282194827583492 | ||
diakopter___, but Perl 5 is still actively developed. | |||
hoelzro | if the default logic happens after BUILD, then $!server is Str because BUILD doesn't set it up via its signature | ||
m: class Person { has $.name = 'John'; has $.age = 21; submethod BUILD(:$!name) { say $!age } }; say Person.new(:name<Rob>) | 22:43 | ||
camelia | rakudo-moar d410e3: OUTPUT«(Any)Person.new(name => "Rob", age => Any)» | ||
ZoffixW | diakopter___, it's just as up-to-date and "better" than earlier P5 versions. It's just offers a different solution to problem-solving than the P6 build. | ||
hoelzro | m: class Person { has $.name = 'John'; has $.age = 21; submethod BUILD() { say $!age } }; say Person.new(:name<Rob>) | ||
camelia | rakudo-moar d410e3: OUTPUT«(Any)Person.new(name => "John", age => Any)» | ||
diakopter___ | ZoffixW: I was trying to emphasize "language design" in that comment | ||
Juerd | Right, but that would mean that I can't use any of the defaulting logic if I want other stuff to happen at initialization, using those defaults... | ||
hoelzro | hmm...that's interesting | ||
m: class Person { has $.name = 'John'; has $.age = 21; submethod BUILD() { } }; say Person.new(:name<Rob>) | |||
camelia | rakudo-moar d410e3: OUTPUT«Person.new(name => "John", age => 21)» | ||
Juerd | I can only imagine that this is an extremely common use case. | ||
Skarsnik | lol ZoffixW your operator xD | ||
ZoffixW | :) | 22:44 | |
hoelzro | it looks like referring to any attributes in BUILD circumvents their defaulting logic, which seems...odd. | ||
ZoffixW | And aannnyyyywaaaaay... looks like I'm finally done with the mojo-app branch | ||
Juerd | hoelzro: Agreed | ||
grondilu | arnsholt: seems to me that the sha256 code on RC is faster than the code on the Digest module. | ||
ZoffixW | moritz, I submitted the PR to merge the mojo-app branch for modules.perl6.org: github.com/perl6/modules.perl6.org/pull/26 | ||
Juerd | I could just add the defaults to BUILD's signature, but it's so nice to have them all in one place :( | ||
hoelzro | Juerd: I think that's a rakudobug | ||
ZoffixW | hm | 22:45 | |
.tell moritz, I submitted the PR to merge the mojo-app branch for modules.perl6.org: github.com/perl6/modules.perl6.org/pull/26 | |||
yoleaux | ZoffixW: What kind of a name is "moritz,"?! | ||
ZoffixW | .tell moritz I submitted the PR to merge the mojo-app branch for modules.perl6.org: github.com/perl6/modules.perl6.org/pull/26 | ||
yoleaux | ZoffixW: I'll pass your message to moritz. | ||
ZoffixW | .botsnack # smart bot | ||
yoleaux | :D | ||
ZoffixW | .tell timotimo you mentioned you wanted to see a demo pre-merge of the mojo-app branch when it was done. It's here: perl6.xtatik.org/ | ||
yoleaux | ZoffixW: I'll pass your message to timotimo. | ||
Skarsnik | ZoffixW, do you have some screenshot? | ||
ZoffixW | Skarsnik, of what? | ||
Skarsnik | Oh, you just linked a demo of mojo-app x) | 22:46 | |
ZoffixW | :D | ||
Time for beer an' commute home & | |||
22:46
ZoffixW left
|
|||
Juerd | I'm resorting to having those defaults in BUILD's signature, for now. | 22:46 | |
arnsholt | grondilu: Oh. In that case, maybe we'll just replace it with that =) | 22:47 | |
hoelzro | filed as RT #126680 | 22:49 | |
Juerd: ↑ | |||
Juerd | hoelzro: Nice, thanks! | 22:50 | |
22:50
pmurias joined
|
|||
diakopter___ | 007 confuses me | 22:50 | |
hoelzro | I'll read up on the spec regarding defaults for has + BUILD, and maybe look into fixing that tonight | ||
grondilu | arnsholt: sorry, I was wrong. There's something weird though. I need to clarify. | 22:51 | |
22:52
spider-mario left
22:53
Actualeyes left
|
|||
pmurias | diakopter___: P5 porters and maintainers of popular project are an important group of potential Perl 6 users | 22:53 | |
yoleaux | 19:10Z <jnthn> pmurias: I'd just go with our best guess rather than raising an error; it's probably more useful. | ||
grondilu | I don't understand. When I run $ time perl6 -e 'use Digest::SHA; say sha256 "foo";', it tells me it took 27s | 22:54 | |
but if I add say now - BEGIN now at the end, it tells me 0.55s | 22:55 | ||
diakopter___ | pmurias: of course, but that has nothing to do with my point, which I apparently failed to communicate | ||
Skarsnik | compile time | ||
22:56
raiph joined
|
|||
Skarsnik | grondilu, time will give you time run + time to compile | 22:56 | |
grondilu | but I thought using BEGIN would include compile time. | 22:57 | |
cygx | in particular, it'll include the time to compile Digest::SHA | ||
grondilu | as in BEGIN happens at the beginning of compilation. | ||
cygx | you need to precompile the module to make it useable | ||
grondilu | oh I see | ||
I had installed it with panda and I thought it precompiled it. | |||
22:57
Peter_R left
|
|||
grondilu | but I recently learnt that is not the case. | 22:58 | |
pmurias | diakopter___: IMHO the way people *outside* the P5 community perceive the name should be more important when thinking about the name change | ||
diakopter___ | pmurias: I agree exactly, and that's very compatible with my point | 22:59 | |
timotimo | psch: it may be a good idea to rename the "failure" parameter to p6typecheckrv to "nil"? because that's really what gets passed | 23:00 | |
yoleaux | 22:45Z <ZoffixW> timotimo: you mentioned you wanted to see a demo pre-merge of the mojo-app branch when it was done. It's here: perl6.xtatik.org/ | ||
grondilu | I'm pretty sure panda used to precompile modules. Was there a regression or something? | ||
Juerd | Turning working code into a module was *hard*. | 23:01 | |
It'll get easier as I get used to the perl6isms :) | |||
diakopter___ | .tell ZoffixW that's neat (demo modules site); really well done | ||
yoleaux | diakopter___: I'll pass your message to ZoffixW. | ||
Juerd | github.com/Juerd/p6-mqtt/ # But... I can now haz module! | 23:02 | |
Next time I'll try to get all p5/Net::MQTT::Simple functionality in there, and write some documentation. | |||
cygx | grondilu: I believe it was a deliberate decision to remove precomp from panda as rakudo is supposed to handle it automatically | ||
Juerd | (Forgot to git push. Done now.) | ||
pmurias | diakopter___: OTOH calling authors of popular frameworks "convention groupies" seem really silly | ||
diakopter___ | but I wasn't doing that /o\ | 23:03 | |
pmurias | isn't the Perl 5/6 rename discussion a bit pointless as it's TimToady's decision and he doesn't want a rename | 23:06 | |
Juerd | pmurias: The discussion is pointless but one can still hope he'll change his mind :) | ||
Preferrably before Christmas :P | 23:07 | ||
23:09
Sqirrel left
|
|||
TEttinger | pmurias: call it perlin, then any search for perlin noise finds not only 2 very different algos but also a language! | 23:10 | |
23:11
ab6tract left
|
|||
MadcapJake | My opinion on the name (I have never programmed Perl 5), it cues you in that this is a sigil-language in the same vein as Perl 5 but just like Python2/3, they aren't interchangeable (obviously more of a difference than Python but still I'd say that's a fair analogy). From a philosophical perspective, Perl 6 was designed/intended to be Perl 5 without all the cowtows to popular opinion, instead replaced by good design. That's the | 23:11 | |
epitome of a version change, *not* a new name. ( to me xD ) | |||
TEttinger | yeah, it still seems to be very much "a" perl, just a different newer version | ||
pink_mist | MadcapJake: the simple version change made sense back when it was meant to just be the next iteration of the same language. it really isn't that anymore. it's not even close to the python2/3 situation | 23:12 | |
MadcapJake | right, maybe they should've gone with Perl 7, just to be clear it's really different xD a la Windows 8 -> Windows 10 | ||
TEttinger | like you have scheme and common lisp both describable as "a" lisp, even though they don't interoperate and are very different | ||
Juerd | TEttinger: Scheme and Common Lisp don't share a same version numbering. | 23:13 | |
TEttinger | true | ||
rename perl 5 then :P | |||
Juerd | Renaming something that's already released is kind of hard | ||
TEttinger | I was joking | ||
Juerd | Renaming Perl 6 now is also hard, but still possible. | 23:14 | |
Juerd votes for Rakudo :) | |||
TEttinger | yeah, makes sense | ||
MadcapJake | TEttinger: haha! | ||
pmurias | in terms of design Perl 6 is the sequel to Perl 5, it's the lack of compatiblity with the existing code/ecosystem that's creating the "sister language" story | ||
Juerd | It wouldn't surprise me, though, if p5p at some point after Perl6's release, decides to rename perl5. | 23:15 | |
TEttinger | "we don't want to associate with _that_ perl" | ||
I don't think there's any of that though, haha | |||
MadcapJake | it's funny because if a windows user installed Windows 11 (when it comes out), they wouldn't want it to be an incremental iteration on Windows 10, they expect a big change. but programmers, apparently they expect single number increments to just be tiny iterations that solidifies the previous design... xD | 23:16 | |
pmurias | if Perl was a computer game, the Perl 5/6 naming wouldn't be confusing | ||
MadcapJake | pmurias: haha, yeah that's what i was thinking with the windows analogy, this just seems to be an issue because...programmers xD | 23:17 | |
cygx | personally, I'd rather just improve p5/p6 interoperability and provide a single interpreter frontend | 23:18 | |
TEttinger | pmurias: that's a good example. popular games even, like grand theft auto 2 and 3 were totally different genres | 23:19 | |
Juerd | TEttinger: Those numbers aren't taken for version numbers, though | 23:20 | |
The problem may not be that Perl 6 is not Perl 5, but that 1..5 were the same thing. | |||
TEttinger | they were less than 10 years apart too :) | ||
Ulti | maybe change P6 to be called Lerp the drooling sister language to Perl | ||
Juerd | Perl 5 and Perl 6 are much less than 10 years apart. In fact, at some points in the future, Perl 5 will be newer than Perl 6. | 23:21 | |
Ulti | not by implementation | ||
diakopter___ | not from a language design perspective | ||
TEttinger | Juerd: hm, when did perl 5 first come out? | ||
Juerd | TEttinger: Is that at all relevant? | ||
MadcapJake | but is the 6 really a version number? Even if you consider it semantic versioning then the 6 would literally mean "breaks compatibility with 5". | ||
TEttinger | no really, I don't know | ||
Juerd | diakopter___: The thing is, users and sysadmins deal with the executable, the actual product, all the time, not with the language design. | 23:22 | |
Ulti | 1993 | ||
TEttinger | thank you, Ulti | ||
Juerd | diakopter___: I understand that it's a second design. Or perhaps a first ;). But Perl 1..5 weren't 5 different language designs. | ||
Ulti | well TimToady started dreaming of it then? | ||
lichtkind | masak: jejki | ||
Juerd | TEttinger: perldoc perlhist | ||
dha | I blame Jon Orwant. | 23:23 | |
TEttinger | you could call it perl 28 and assume that much version shift | ||
Juerd | TEttinger: I'd prefer 28 to 6. | ||
pink_mist | Ulti: as I mentioned a while ago: back when he first started thinking about perl 6, naming it perl 6 was a no-brainer. now it's way too different imo. it should get a completely new name. | ||
Juerd | pink_mist: It's not going to, though. | ||
TEttinger | (maybe 27) | ||
23:24
kid51 joined
|
|||
saaki | "Thirty" | 23:24 | |
MadcapJake | It's only "way too different" because you are a Perl 5 programmer. to me, it looks mostly the same (I know that's obv not true but still it really does seem that way) | ||
23:24
ZoffixMobile joined
|
|||
dha | I actually don't consider the idea of Perl 5 and Perl 6 being two different languages in the same family to be a difficult concept. Just one people aren't used to, hence the shouting. | 23:24 | |
diakopter___ | .tell ZoffixMobile that's neat (demo modules site); really well done | ||
yoleaux | diakopter___: I'll pass your message to ZoffixMobile. | ||
ugexe | not to mention 70% of the ecosystem is "XXX a port of perl5's XXX" | 23:25 | |
Juerd | dha: It's an easy concept that we continue to have to explain. | ||
Ulti | pink_mist frankly Perl 5 should get a new name, if you just told people there was a new language called ProductivityScript made a really swish website with nice high production video tutorials and pushed it at every conference there is a whole generation of 20 somethings that have never even *seen* perl. They would think its some new fancy Ruby like language. | ||
dha | Juerd - exactly. | ||
Juerd | dha: And in terms of language adoption, I think that this will severely hinder Perl 6's chances. | ||
Ulti | however everyone has heard of Perl, usually with random garbage about how you shouldn't even bother to look at it | 23:26 | |
MadcapJake | Juerd: not a chance. Tell anyone you are learning Perl 6 and they instantly bring up the 5/6 debacle. It's actually probably going to help Perl 6 adoption if anything xD | ||
Ulti | Perl is the problem in the name not the number | ||
dha | Juerd - I imagine that is a possibility. But it's the situation we're in. | ||
ZoffixMobile | diakopter___, but the design thing is irrelevant to the argument. The P5 like the language for X reasons and it's irrelevant whether language Y decided to do things different | ||
yoleaux | 23:24Z <diakopter___> ZoffixMobile: that's neat (demo modules site); really well done | ||
23:26
hankache joined
|
|||
ZoffixMobile | It also misses the core issue that without any explanations, the default is to assume Perl 6 is an upgrade to Perl 5. | 23:27 | |
And that you should avoid Perl 5 becauee it got superseeded | |||
dha | ZoffixMobile - That guy you were arguing with on twitter has a *new* complaint. :-/ | ||
Juerd | dha: Yep. I accept the situation as it's happening. But still I do hope that at some point, it'll get better. | ||
lichtkind | i actuall will steal this ProductivityScript line | ||
its fabulous | |||
MadcapJake | But it is an upgrade, isn't it? Perl 6 is *intended* to be a better designed Perl 5, right? | ||
lichtkind | i mean for my perl 6 article | ||
Juerd | ZoffixMobile: Package maintainers are going to hate Perl 6 more than they've ever hated Python 3 :) | 23:28 | |
diakopter___ | ZoffixMobile: well yes, that is the point of TimToady investing so many years in it, to make something that supersedes and surpasses | ||
Juerd | I wouldn't mind Perl6 v1.0.0 either ;) | ||
ZoffixMobile | MadcapJake, not anymore. Perl 6 is now a new language and Perl 5 **is still actively developed and improved** just not to the idea of what "improved" means to a P6 programmer | 23:29 | |
Ulti | I dunno | ||
dha | MadcapJake - kind of. but it has gone so far that it's very different in many ways. And the idioms are quite different. | ||
diakopter___ | ZoffixMobile: .. and to make something that should be preferred over his previous language designs | ||
MadcapJake | But Perl 5 isn't planning on breaking compatibility ever? So it's really just intending to maintain and improve the current syntax/semantics, right? | 23:30 | |
ZoffixMobile | diakopter___, I doubt TimToady wishes to make a statement that Perl 5 is dead amd no one should use it because Perl 6 is better. | ||
diakopter___ | of course not, it's not what I said. | ||
Juerd | As I'm rewriting one of my Perl 5 modules in Perl 6, I become more convinced that Perl 6 is not "Perl", but something else. I like it better than Perl. | ||
Ulti | MadcapJake yeah but they have signatures getting in there even with backcompat | 23:31 | |
ZoffixMobile | MadcapJake, it does add new features. They are requested by a pragma | ||
Ulti | postfix deref is also quite nice, I wish they would stop things being "experimental" a lot faster | ||
MadcapJake | Well I guess that does complicate things xD I thought they were just maintaining Perl 5. | ||
Ulti | so you feel like you could actually use *anything* post 5.10 | ||
23:32
pecastro joined
|
|||
Skarsnik | I think when porting a P5 -> P5 you should only keep the tests xD | 23:32 | |
*p | |||
Ulti | I still explicitly put use feature 'say' in half my scripts | ||
Skarsnik | *whatever keyboard | ||
Juerd | Ulti: Quite nice? Adding "->$#*" to the language isn't "nice". | ||
ZoffixMobile | diakopter___, then your previous statement is inapplicable. Yes, Larry started with making P5 better, but we ended up with a new language, while P5 went on on a new path | ||
Ulti | Juerd: thats a bad example though | ||
Juerd | Ulti: All of them are incredibly ugly, this one just happens to be the ugliest. | ||
ZoffixMobile | Juerd, but the alternative is the same thing but with braces :p | ||
23:33
tokuhiro_ joined
|
|||
Ulti | ->@ rather than @{} around the whole chain of -> is a lot micer | 23:33 | |
Juerd | Ulti: It's ->@* though. | ||
Ulti | because it makes it a lot more obvious what is deref'ing | ||
Juerd | (iirc) | ||
Ulti | especially for a slice! | ||
diakopter___ | ZoffixMobile: "making X better" is very different from "making something better than X" | ||
Skarsnik | I hate deferencing in p5 xD | ||
MadcapJake | Interestingly a similar "problem" is occuring for the Angular.js developers. Their new framework is called Angular 2 but it's quite different to Angular 1 and most people don't understand why they're A) breaking compat so much, B) not changing the name, and C) not done yet :P | ||
23:33
atweiden joined
|
|||
Ulti | Juerd: is it? | 23:33 | |
Juerd | Ulti: If I recall correctly, it is. I wouldn't have thought so negatively about it if the * wasn't there. | ||
Ulti | a deeply nested hash slice is basically the most dreaded part of P5 syntax for me | 23:34 | |
23:34
inokenty left
|
|||
Ulti | it always looks nuts because you have the overloaded {} adjacent | 23:34 | |
ZoffixMobile | diakopter___, indeed, but by having that something named the same thing with a larger number next to it implies the latter | ||
23:34
rindolf left
|
|||
Juerd | Ulti: $foo{ bar }{ baz }{ quux } isn't so bad, is it? | 23:34 | |
ZoffixMobile | Anyway. I'm off to walk to the dark, hobo-inhabitted park :p | ||
Ulti | Juerd: I thought the @* was something else :/ | ||
23:35
ZoffixMobile left
|
|||
psch | timotimo: 'fail X::$whatever' seems to return a Failure, not Nil | 23:35 | |
m: sub f { fail X::AdHoc.new }; say f().WHAT # as here | |||
camelia | rakudo-moar d410e3: OUTPUT«(Failure)» | ||
Ulti | Juerd: thats not a hash slice.. now I want all the quux entries for every value where baz is | ||
psch | m: say Nil ~~ Failure | ||
camelia | rakudo-moar d410e3: OUTPUT«False» | ||
Ulti | or a subset I define of keys | ||
psch | m: use nqp; say nqp::istype(Nil, Failure) | ||
camelia | rakudo-moar d410e3: OUTPUT«0» | ||
Juerd | Ulti: Oh, slices. I don't use them much. When I do, I usually assign to an intermediary variable to make it readable. | ||
psch | m: use nqp; say nqp::istype(Failure, Nil) | 23:36 | |
camelia | rakudo-moar d410e3: OUTPUT«1» | ||
psch | there... | ||
diakopter___ | m: say Failure ~~ Nil # curious | ||
camelia | rakudo-moar d410e3: OUTPUT«True» | ||
Ulti | Juerd could do but if that intermediate has no good name its kind of lame having %temp | ||
just have nice syntax for it | |||
pmurias | Ulti: having some random idiots who haven't ever seen Perl code retell some ultra lame joke it is annoying | ||
Juerd | Everything has a good name. In this case, whatever key the hash had, is the name for the identifier. | 23:37 | |
23:37
tokuhiro_ left
|
|||
dha | Holy crap. That guy on twitter is something other than else. | 23:37 | |
Ulti | pmurias the peple who have used Perl a long time tell the same lame jokes though, they have heard them so often and so frequently they believe it about their own tools! | ||
dha url? I have some popcorn ready | 23:38 | ||
diakopter___ | Ulti: the links ZoffixW posted | 23:39 | |
57 min ago | |||
psch | j: sub f() returns Int { return Nil } # Nil already doesn't mess with p6typecheckrv, apparently | ||
camelia | ( no output ) | ||
psch | errr | ||
ENOINVOCATION | |||
dha | Uh... I would, but apparently, after a brief exchange he has blocked me from reading his tweets. but he's @unlocalblog - maybe you can read him. | ||
psch | r: sub f() returns Int { return Nil }; f | ||
camelia | ( no output ) | ||
..rakudo-jvm d410e3: OUTPUT«Type check failed for return value; expected Int but got Nil in sub f at /tmp/tmpfile:1 in block <unit> at /tmp/tmpfile:1» | |||
psch | timotimo: so, yeah, apparently it should check for type Nil instead of Failure :) | 23:40 | |
timotimo++ | |||
dha | I responded to his tweet about brian d foy's post about renaming Learning Perl. | ||
Ulti | oh yeah that Jeff Anderson guy was a bit angry on some other tweets too but ones to his mates | 23:41 | |
Ulti sometimes just searches "Perl 6" on twitter no hashtag to see what people are saying less publicly | 23:42 | ||
diakopter___ | dha: yeah but farther down his tweet stream there is "Have you ever heard of the Illumanti? Pretty cool stuff ... #waybehind" | ||
Ulti | I find it hard to be angry at a programming language, or an organised group of individuals creating something they love | ||
23:42
dha left,
frobisher joined
23:43
frobisher is now known as dha
|
|||
Skarsnik | is there some kind of pragma to say to the compiler 'CHECK THE TYPING OF METHODS FOR ** SAKE'? | 23:43 | |
Ulti | I even get paid to write Perl 5 every day at the moment, my job doesnt vanish because Perl 6 exists | ||
people act like Perl 6 is David Bowie from Labyrinth come to take their children away | 23:44 | ||
23:44
skids joined
|
|||
dha | So, as I was saying before I got disconnected, @unlocalblog indicated that the question about renaming Learning Perl was proof that we're lying when we say Perl 6 isn't competing with Perl 5. | 23:45 | |
I merely asked how that indicated competition, rather than an attempt at clarity. Then he blocked me. | |||
Ulti | Perl 6 is competing with Java too, we should bump the version like they did Perl 60.0? | 23:46 | |
diakopter___ | my point was that it is absolutely competing, on language design (usability, learnability, memorability, someday maintainability & someday interoperability) | 23:47 | |
23:48
rurban left,
hankache left
|
|||
Ulti | only if you assume the same people who would do any of that in Perl 5 are the ones doing it in Perl 6 | 23:50 | |
diakopter___ | XD, I think | 23:51 | |
Ulti | I've read a lot of Rakudo internal code, I haven't once felt the need to go anywhere near the perl internals and I've been hacking in P5 for a while now | ||
23:51
ZoffixMobile joined
|
|||
Skarsnik | yay Zoffix is not dead in the weird dark alley | 23:52 | |
ZoffixMobile | \o/ | ||
I missed my bus tho :p | |||
Skarsnik | good night here x) | 23:53 | |
ZoffixMobile | night | ||
23:53
Skarsnik left
23:54
cygx left
|
|||
Ulti | also Swift 2 is the Perl 6 mind killer | 23:55 | |
since it has nice unicode and rational numbers | |||
and supported by one of the largest manufacturers of smartphones and pushers of pay for software | 23:56 | ||
23:57
diakopter___ left
|
|||
Ulti | was it someone in here who linked a nice matrix of :hip: new language features and what languages do and dont have them | 23:58 | |
Swift was basically the only thing with a similar profile to Perl 6 | |||
ZoffixMobile | I think the solution to the name thing is involving the two communities together and promoting both languages. So the name of the book that sparked this conversation.... the cover could include promo for another book, a Perl 6 book. Though that likely sounds weird for those who know just one Perl. Personally, I could argue why one is better than the other for both :/ | 23:59 | |
Ulti | have one book that you flip over |