»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend! Set by moritz on 22 December 2015. |
|||
sortiz_ | Nop, but I assume that the alignment of a CStruct is MoarVM business. And I known that a 'void *' isn't 64bits long on 32 bit systems. ;-) | 00:01 | |
timotimo | so, how do you think going one uint64 after the other will lead you exactly onto the pointer in all cases? | 00:07 | |
that's what i'm worried about | |||
00:08
avenj joined
|
|||
sortiz_ | timotimo, don't worry, I'm now working on the details... | 00:11 | |
timotimo | okei! | ||
00:14
ZoffixLappy left
|
|||
sortiz_ | timotimo, If I had been sure would not have that dance in the calculation of the Offset. :-) | 00:14 | |
timotimo | mhm | 00:17 | |
00:21
_nadim joined,
nadim left
|
|||
sortiz_ Fortunately there is still 32-bit fedora. | 00:21 | ||
00:25
nadim joined,
_nadim left
00:30
leont left
00:51
nadim left
|
|||
sortiz_ | timotimo, btw, compiling moar in 32bits a see a few "warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]" | 00:55 | |
01:23
cdg left,
cdg joined
01:28
cdg left
|
|||
Xliff_ | Can I install dwarfdump from rakudobrew | 01:30 | |
01:31
kid51 left
|
|||
Xliff_ | nvm. dwarfdump was installable via apt. What do you guys need....assuming you still need it? | 01:31 | |
sortiz_ | Xliff_, Now I have a 32bit aware NH::Blob, in a few minutes will be pushed... | 01:36 | |
Xliff_ | Oh, cool! That was fast. | ||
What was the problem? | |||
sortiz_ | The size of the CArray I was using to search the Offset. | 01:37 | |
timotimo | Xliff_: i would have looked at the output of dwarfdump to see how the CPointer-related structs are laid out | ||
and then compared to what i have on a 64bit system | |||
01:42
jack_rabbit joined
01:44
kalkin- joined
|
|||
MadcapJake is back from Zootopia | 01:45 | ||
timotimo | how'd you like it? i heard it's pretty great | 01:46 | |
MadcapJake | if you like family movies, Zootopia is great. Laughs all around. | ||
01:47
ilbot3 joined
|
|||
MadcapJake | even pacing, great voice acting, a tiny little bit scary at parts but my 5yo was fine | 01:47 | |
sortiz_ | Xliff_, NH::Blob should be fixed, can you try install it again? | 01:54 | |
01:55
Khisanth left
|
|||
timotimo | sortiz_: is 10 steps still enough? | 01:56 | |
01:56
molaf_ joined
|
|||
sortiz_ | timotimo, Now yes, but I don't know if MVMObject can grow in the future ;-) | 01:58 | |
Xliff_ | sortiz_, sure thing. One sec. | ||
Works now. Thanks! | 01:59 | ||
sortiz_ | Xliff_, Thank you for the report! | 02:01 | |
Xliff_ | No MySQL support for perl6 yet? | 02:02 | |
02:02
tardisx joined
|
|||
timotimo | of course there is mysql support | 02:02 | |
has been for years | 02:03 | ||
Xliff_ | "panda search mysql" didn't return anything | ||
02:03
cpage_ left
|
|||
sortiz_ | Xliff_, it is installed by DBIish. | 02:03 | |
02:03
cpage_ joined
|
|||
Xliff_ | Ah! Thanks. | 02:03 | |
Yikes! | 02:05 | ||
Got this when trying to install DateTime::Math | |||
02:05
rigsby left
|
|||
Xliff_ | Ambiguous call to 'infix:«>»'; these signatures all match: | 02:05 | |
:(DateTime:D \a, DateTime:D \b) | |||
:(DateTime $a, DateTime $b) | |||
in block <unit> at t/math.t line 27 | |||
02:08
Ben_Goldberg joined
|
|||
sortiz_ | Xliff_, I can't help you with that, sorry. | 02:10 | |
02:11
Khisanth joined,
BenGoldberg left
|
|||
timotimo | m: say DateTime.now() > DateTime.now() | 02:12 | |
camelia | rakudo-moar 330f81: OUTPUT«False» | ||
timotimo | it's probable that this module introduced an operator like that, but in the mean time that has been added to rakudo itself | ||
02:12
teatime joined
|
|||
sortiz_ | Installing panda in fedora 32 bits gives me: "Internal error: zeroed target thread ID in work pass" in t/build-hook.t | 02:15 | |
timotimo | :o | ||
sortiz_ | But pass on a second try, weird. | 02:18 | |
02:27
tmch joined
|
|||
ugexe | Proc::Async | 02:27 | |
02:35
BenGoldberg_ joined
|
|||
Xliff_ | timotimo, So DateTime::Math needs to drop their infix<>>? | 02:37 | |
02:37
Ben_Goldberg left
|
|||
Xliff_ | (man that one is hard to read) | 02:37 | |
Ooh! Use of different delimiters for that special case! | 02:38 | ||
multi sub infix:«>» | |||
perl6++ | |||
teatime | heh could it be written infix:< > > | ||
there we go | |||
02:38
BenGoldberg_ is now known as BenGoldberg
02:39
tardisx left
02:41
tardisx joined
|
|||
BenGoldberg | m: say DateTime.new() <=> DateTime.new(); | 02:41 | |
yoleaux | 26 Mar 2016 13:57 EDT <MadcapJake> BenGoldberg: yeah I noticed that the docs mentioned it had a 32 bit size so I just went with int32 and it worked! | ||
camelia | rakudo-moar 330f81: OUTPUT«Cannot make a DateTime object using .new in block <unit> at /tmp/EYVaRC74tv line 1Actually thrown at: in block <unit> at /tmp/EYVaRC74tv line 1» | ||
BenGoldberg | m: say DateTime.now() <=> DateTime.now(); | ||
camelia | rakudo-moar 330f81: OUTPUT«Less» | ||
BenGoldberg | m: say DateTime.now() < DateTime.now(); | ||
camelia | rakudo-moar 330f81: OUTPUT«True» | ||
Hotkeys | \o/ | 02:42 | |
02:47
noganex_ joined
03:03
grassass joined
03:10
Khisanth left
|
|||
sortiz_ Thinking that NC needs a 'intptr_t' | 03:10 | ||
teatime | aren't all pointers the same size? | 03:17 | |
AlexDaniel | That's an interesting idea: www.workingsoftware.com.au/page/You...de_yes_you | ||
teatime | oh, intptr_t is something I never knew existed. | ||
AlexDaniel | but it will probably have serious performance issues if implemented in Perl 6 | 03:19 | |
sortiz_ | teatime, Nop, for example in i686, are 32bits long and in AMD64 are 64 bits long. | 03:20 | |
konobi | teatime: doesn't depend on the arch | ||
teatime | sortiz_: I didn't mean across machines | 03:21 | |
03:21
jamesalbert joined
|
|||
teatime | sortiz_: just that void* int* char* etch are all the same size | 03:21 | |
but my comment was based on an a misunderstanding of what intptr_t was supposed to be | |||
(I assumed it was 'pointer to an int' but it's 'type large enough to hold either an int or a ptr') | |||
03:21
tardisx left
|
|||
jamesalbert | Yo everybody, first time being here. Just wanted to ask really quick: I used to do `%{ "Loaded::Module::" } ?? 1 !! 0;` to see if I already loaded a module. How would I do that in perl 6? | 03:22 | |
used to do ... *in perl 5 | 03:23 | ||
03:23
Khisanth joined
|
|||
timotimo | coul can look into GLOBAL:: or perhaps GLOBALish:: | 03:24 | |
03:24
tardisx joined
|
|||
jamesalbert | @timotimo thanks man, works =] | 03:25 | |
timotimo | cool | ||
i shall head towards bed | 03:26 | ||
jamesalbert | stay cool... | ||
like the other side of the pillow | |||
03:27
jamesalbert left
03:49
molaf_ left
03:53
BenGoldberg left
|
|||
MadcapJake | Interesting article: codewords.recurse.com/issues/six/i...not-enough | 03:54 | |
Anyone put some thought into what effect types would be like in Perl 6? | 03:56 | ||
03:57
jamesalbert joined
|
|||
MadcapJake | «is pure» is essentially an effect type (but it doesn't actually check for purity, right? | 03:59 | |
jamesalbert | hey all, anyway to do GLOBAL::Loaded::Module but with a string? I'm trying to do: `GLOBAL::Loaded::Module:: ?? 1 !! 0` can I somehow do `GLOBAL::"Loaded::Module":: ?? 1 !! 0`? | 04:00 | |
MadcapJake | I think ::("..."):: could work | ||
Or GLOBAL::("Loaded::Module"):: | 04:01 | ||
jamesalbert | thanks madcapjake, that's a lot closer than what I was doing but it says "No such symbol 'GLOBAL::Loaded::Module'" | 04:02 | |
and I do `use Loaded::Module` beforehand | |||
MadcapJake | just try ::("Loaded::Module") on it's own, without GLOBAL | 04:03 | |
are you sure that module is loaded? works for me on any module, with or without the GLOBAL | 04:05 | ||
jamesalbert | Ah, you're a genius, but instead of ?? 1 !! 0, I had to do: ::("Loaded::Module") ~~ Nil | ||
thanks bruh | 04:06 | ||
tony-o | jamesalbert: you might want ::("MODULE").so instead of ~~ Nil | ||
m: say ::("Some::Module").so; | 04:07 | ||
camelia | rakudo-moar 330f81: OUTPUT«False» | ||
tony-o | while ~~ Nil works, it may not always work as expected | ||
jamesalbert | using .so always returns False on my end | 04:08 | |
just curious, in what context would ~~ Nil not work as expected? | |||
MadcapJake | yeah was just about to come on and say that .so is the problem xD | 04:09 | |
tony-o | ahh, i guess that's changed since i last looked, i stand corrected | 04:10 | |
jamesalbert | thanks to both of you, got it working =] | 04:11 | |
tony-o | zef uses ~~ Failure now | 04:12 | |
m: say ::("Test") ~~ Failure; | |||
camelia | rakudo-moar 330f81: OUTPUT«True» | ||
tony-o | m: use Test; say ::("Test") ~~ Failure; | ||
camelia | rakudo-moar 330f81: OUTPUT«False» | ||
04:15
skids left
|
|||
jamesalbert | Now what about this: is there a quick and painless perl6ish way of doing what Module::Runtime.use_module does in perl5? | 04:15 | |
MadcapJake | tony-o is right, testing against Failure is your best bet, as that's what :: will return if it can't find the package | 04:16 | |
jamesalbert | using Failure now, I'm coming to perl6 from python and all these glorious words are still new to me | 04:17 | |
MadcapJake | Failures are like errors that haven't been thrown yet | ||
They let you control flow of successful/unsuccessful code without resorting to a CATCH block | 04:19 | ||
jamesalbert | alright that makes sense, and a Nil doesn't necessarily mean that. And that's good I'm not a fan of try catches | ||
necessarily mean that in this context | |||
MadcapJake | try/catch is powerful but sometimes you just want to hold on to something and then check later for failures, or perhaps you want to check when it's accessed (at which point the failure will turn into a regular thrown exception) | 04:21 | |
But you have to explicitly create them as failures via the fail sub rather than die (which automatically throws the exception) | 04:22 | ||
jamesalbert | good to know! thanks | 04:24 | |
and as a new comer, I'm seeing a lot of these p6 modules haven't been updated in months if not years | 04:25 | ||
I'm wondering if I should just stick with p5 | 04:26 | ||
or keep going on with 6? | |||
well, year* | |||
not years | |||
tony-o | what does .use_module do in p5? | 04:31 | |
jamesalbert: a lot of the p6 modules haven't been updated and some of them don't really need to be, others were abandoned because they were replaced or <other> things happened | 04:32 | ||
04:33
khw joined
|
|||
jamesalbert | use_module loads the module in runtime and let's you call subs like: use_module("Math::BigInt", 1.31)->new("1_234"); | 04:33 | |
MadcapJake | jamesalbert: the nicest part of Perl 6 is a TON of functionality is already included out-of-the-box. | 04:34 | |
jamesalbert: that's require and it's builtin! doc.perl6.org/language/modules#require | |||
tony-o | jamesalbert: probably the closest thing is 'require' | 04:35 | |
jamesalbert | that is glorious to hear! I'm trying to do `require ::("JSON::Fast").to-json` but I'm doing it wrong... | 04:37 | |
MadcapJake | yes :) you need to do require ::('JSON::Fast') <&to-json>; to-json({ a => 2 }); | ||
04:38
JRaspass joined
|
|||
tony-o | or a much more verbose way | 04:39 | |
m: require Test; &GLOBAL::Test::EXPORT::DEFAULT::plan.say; | |||
camelia | rakudo-moar 330f81: OUTPUT«sub plan (;; Mu | is raw) { #`(Sub|84420184) ... }» | ||
04:40
abaugher left
|
|||
MadcapJake | jamesalbert: looks like we were missing the ampersand there :) | 04:40 | |
04:41
abaugher joined
|
|||
jamesalbert | jesus, you're like a perl expert :O | 04:44 | |
okay really close now | |||
can I do something like: | |||
require ::("JSON::Fast") | |||
tony-o | i've just been hacking around in this for a long while | ||
jamesalbert | &GLOBAL::JSON::Fast::EXPORT::DEFAULT::&from-json("{}") | ||
04:45
nemo joined,
Cabanossi left,
nemo is now known as Guest34821
|
|||
jamesalbert | or I guess it'd be `&GLOBAL::JSON::Fast::EXPORT::DEFAULT::from-json("{}")` | 04:45 | |
it's definitely somewhat working because it's giving me: "Use of Nil in string context in block <unit> at <unknown file> line 1" | 04:46 | ||
04:47
Cabanossi joined
|
|||
tony-o | m: my $sub = 'plan'; my $mod = 'Test'; require ::($mod); &::($mod)::EXPORT::DEFAULT::($sub).say; | 04:50 | |
camelia | rakudo-moar 330f81: OUTPUT«sub plan (;; Mu | is raw) { #`(Sub|92611112) ... }» | ||
tony-o | MadcapJake's way might be cleaner if you know the names of things before hand | ||
jamesalbert | jesus christ men | 04:55 | |
both you tony-o and madcapjake have been awesome | |||
thanks guys | |||
all these solutions worked | 04:56 | ||
what a glorious language | |||
now im gonna eat a pop tart and go to bed | |||
night all! | |||
04:56
jamesalbert left
|
|||
MadcapJake | lol! good plan! g'night! | 04:56 | |
tony-o | that sounds good, think i'll do the same + bier and trailer park boys | ||
MadcapJake | tony-o: TPB! | ||
tony-o | MadcapJake: hells yes | ||
MadcapJake | need to catch up on that show, only seen the first 4 seasons | 04:57 | |
tony-o | netflix just added season 10 | ||
MadcapJake | sweet! gotta get to work! :) | ||
05:04
bjz joined
|
|||
MadcapJake | it's a quite deflating feeling when you do all this work to get something setup and then realize that there's an API that will cover that case completely... | 05:05 | |
wait, I'm safe, wouldn't be able to do this with Net::Curl *phew* ;) | 05:06 | ||
05:08
bjz_ joined,
bjz left,
tardisx left
05:10
bjz_ left
05:11
niceperl joined,
tardisx joined,
khw left
|
|||
MadcapJake | can you delete tickets that you create in RT? I want to test some things with my issue submitter but I don't want to leave a bunch of junk tickets in there | 05:13 | |
05:13
TEttinger left
05:15
TEttinger joined
05:19
raiph left
|
|||
MadcapJake | nope apparently you can't :( | 05:20 | |
teatime | MadcapJake: oh I was gonna tell, you could have always shell'd out to the curl command, right/ | 05:31 | |
not like that's a huge dependency vs. libcurl | 05:32 | ||
MadcapJake | yep that is truth, just wanted to avoid using shell stuff for practice-sake :) | ||
I was close to using ssmtp for sending email (even easier than dealing with curl to send emails) but RabidGravy++ fixed up Net::SMTP and so I went with that! | 05:33 | ||
teatime | ssmtp is nice in that it works for everything on your system that sends mail the unixy way | 05:34 | |
MadcapJake | yeah, now i'm realizing that I might be able to just create tickets via the RT REST api xD | 05:35 | |
but I'm worried about testing it because you can't delete tickets on RT apparently :\ | |||
05:36
tardisx left
05:37
raiph joined
|
|||
MadcapJake | bestpractical has a demo RT though! yessss | 05:38 | |
05:38
cpage_ left
|
|||
AlexDaniel | MadcapJake: hmm do you have something public-ish somewhere? | 05:39 | |
MadcapJake: I can provide some feedback if required | |||
05:46
avenj left,
avenj joined
05:58
mr-foobar joined
|
|||
MadcapJake | AlexDaniel: gist.github.com/MadcapJake/f47f2c0...a4f62bdb9b | 06:04 | |
works on demo.bestpractical.com :) | 06:05 | ||
two nice things about this way: 1) no need to send emails and 2) I get the ticket number right in the response! | |||
AlexDaniel | what's the limit? What is going to happen if you run that in a loop? :) | 06:07 | |
06:08
mr-foobar left
|
|||
AlexDaniel | .oO( I should be quiet about things like this… ) |
06:08 | |
06:09
mr-foobar joined
|
|||
MadcapJake | what do you mean limit? | 06:09 | |
like API rate limit? | |||
AlexDaniel | yea | 06:10 | |
MadcapJake | i don't want to try :P | 06:11 | |
there's a reCaptcha and everyone is going to spend some time writing thoughtful issues (I can dream!) so it shouldn't be an issue and RT has a system for marking issues as spam too | 06:12 | ||
06:14
cpage_ joined
06:16
bjz joined
06:20
niceperl left
06:23
bjz left
06:26
ambs joined,
kanishka joined
|
|||
dalek | Iish: e01c873 | (Salvador Ortiz)++ | lib/DBDish/mysql/ (2 files): mysql: Fix MYSQL_BIND struct Add a missing field, uncovered by testing in on 32bits machine. Xliff_++ for spot the NH::Blob problem. |
06:27 | |
Iish: 93cc0d3 | (Salvador Ortiz)++ | / (2 files): For panda's users, now v0.5.3 |
|||
06:28
CIAvash joined
06:29
AlexDaniel left,
bjz joined
06:30
JRaspass left
06:37
mr-foobar left
06:38
mr-fooba_ joined
06:41
edehont joined
06:42
xinming_ joined
06:45
xinming left
06:47
wamba joined
06:51
fireartist joined
06:58
gensym joined
07:03
nadim joined
07:04
bjz left
07:09
zakharyas joined
07:12
nadim left
07:16
ely-se joined
07:20
nadim joined,
mr-fooba_ left,
mr-foobar joined
07:23
RabidGravy joined
07:26
Guest34821 left
07:27
araujo__ left
07:28
araujo__ joined
07:31
nemo joined
|
|||
RabidGravy | Rarr! | 07:31 | |
07:31
nemo is now known as Guest28857
|
|||
moritz | blessya RabidGravy | 07:32 | |
07:32
wamba left
|
|||
DrForr | o/ | 07:32 | |
Xliff_ | Is there a way for panda to extract the source of a module without creating a subshell (ala "panda look ...") | 07:33 | |
moritz | .oO( panda don'tlook ) |
07:34 | |
07:36
abraxxa joined,
nadim left
|
|||
DrForr | Sounds like a honey badger meme :) | 07:36 | |
sortiz_ | o/ RabidGravy | 07:37 | |
Xliff_, The easy way is use git directly. | 07:40 | ||
07:46
leont joined
07:50
leont left,
edehont left
07:54
nadim joined,
wamba joined
|
|||
RabidGravy | I might do some C today | 07:58 | |
sortiz_ | \o> | 07:59 | |
08:00
dakkar joined,
sortiz_ joined
08:02
sortiz_ is now known as sortiz,
CIAvash left
08:03
nadim left
08:06
jack_rabbit left
08:07
darutoko joined
08:09
nadim joined
08:11
zakharyas left
08:14
nadim left
08:23
bjz joined
|
|||
yoleaux | MadcapJake: DrForr: open port 5000 on Linode :) | 08:24 | |
DrForr | Smartarse bot. | 08:26 | |
08:27
bjz left
|
|||
timotimo | heyo | 08:29 | |
08:30
kanishka left,
leont joined
08:38
Begi joined
|
|||
moritz | \o timotimo/ | 08:38 | |
timotimo | hehe | ||
08:40
g4 joined
08:41
mr-foobar left
08:42
mr-foobar joined
08:45
mr-foobar left,
mr-foobar joined
08:46
pmurias joined
08:49
mr-foobar left
08:50
mr-foobar joined
08:51
zakharyas joined
|
|||
moritz | m: say uniname(0x15) | 08:59 | |
camelia | rakudo-moar 330f81: OUTPUT«NEGATIVE ACKNOWLEDGE» | ||
09:07
nadim joined,
leont left
09:10
rindolf joined
09:12
sue joined
|
|||
nine | -win 41 | 09:34 | |
moritz is always amazed at how many IRC windows folks have | 09:35 | ||
I work hard to keep that number below 15, because I lose overview very quickly | |||
timotimo | i have like 19 right now | 09:36 | |
five of those are perl6 related :P | |||
09:36
sue left
|
|||
moritz | #perl6 #perl6-release #p6dev #moarvm #perl6-toolchain I assume? :-) | 09:37 | |
timotimo | not toolchain, but gaming | ||
moritz | ah | 09:38 | |
09:39
TEttinger left
|
|||
timotimo | weechat has a feature where multiple buffers can be put into one, but it'll still take all the spaces in the buffer list | 09:39 | |
and #perl6-release and #perl6-gaming are both so low-traffic and rarely have concurrent discussions, so i could do that with it | |||
09:40
sue joined
|
|||
sortiz | moritz, have you a little time? would appreciate your comments about my WIP on 'DataSet' for DBIish, for the general idea see github.com/perl6/DBIish/blob/data-...-DataSet.t | 09:40 | |
09:41
TEttinger joined
|
|||
teatime | timotimo: I think you can auto-detach idle channels from the buffer list. | 09:43 | |
timotimo: I want to hide specific ones all of the time, but I can't figure out how. | |||
timotimo | oh? | ||
09:46
nadim left
|
|||
teatime | yes, but that's the extent of what I know. I haven't figured out how to use the feature. | 09:46 | |
(mainly because I'm not interested in the auto-detach idle channels part, and that seems to be the core of it.) | |||
timotimo | ah | ||
09:49
sue left
09:50
Begi1 joined
09:51
Begi left,
Begi1 is now known as Begi
|
|||
Begi | how can I update a module with Panda ? | 09:53 | |
09:53
sjoshi joined,
nadim joined
|
|||
tadzik | panda --force install Module | 09:53 | |
or just install, if the module maintainer remembered to actually update the version | 09:54 | ||
nadim | I seem to have some wifi problems, appologies begged for If this showed up a few minutes ago | 09:55 | |
good morning, I have a: if $s1 eqv $s2 ... where I want infix:<eqv> to come from a higher scope, different people pointer at OUTER and other pseudo package but OUTER::infix:<eqv>($1, $s2) tells me that it can't find method "Nil" | |||
09:55
sjoshi left,
sjoshi joined
|
|||
Begi | thanks tadzik, it works | 09:55 | |
timotimo | hm, is OUTER::infix:<eqv> right? probably wants to have ('&infix:<eqv>') instead | 09:56 | |
09:57
espadrine joined
|
|||
nadim | Malformed lookup of ::&infix; please use ::('&infix'), ::{'&infix'}, or ::<&infix> ... trying again | 10:01 | |
10:05
araujo__ left
|
|||
nadim | Please use '!!' rather than' :' then: This type does not support positional operations then: Bogus postfix. At least I am jogging P6 error messages! | 10:05 | |
timotimo | please show me your source | ||
10:06
domidumont joined
|
|||
nadim | (OUTER::<&infix>:<eqv>($1, $s2)) | 10:08 | |
moritz | no, that's wrong | ||
either &OUTER::infix:<eqv> or OUTER::{'&infix:<eqv>'} | |||
nadim | shall I have it as an infix? | ||
ah! let's try | 10:09 | ||
10:10
perlawhirl joined,
domidumont left
|
|||
nadim | that gives: Cannot find method 'Nil' | 10:10 | |
perlawhirl | hi perlers | 10:11 | |
Begi | perlawhirl: hi ! | ||
timotimo | is it really ::{}? | ||
m: say OUTER::('&infix:<eqv>') | |||
camelia | rakudo-moar 330f81: OUTPUT«No such symbol 'OUTER::&infix:<eqv>' in block <unit> at /tmp/zqitkmDGoT line 1Actually thrown at: in block <unit> at /tmp/zqitkmDGoT line 1» | ||
timotimo | m: say ::('&infix:<eqv>') | ||
camelia | rakudo-moar 330f81: OUTPUT«sub infix:<eqv> ($?, $?) { #`(Sub+{<anon|75747216>}+{Precedence}|43505840) ... }» | ||
10:11
domidumont joined
|
|||
perlawhirl | can anyone (looking in nine's direction) tell me if i can pass a hash ref to a perl5 routine (in this case, a new object) | 10:12 | |
10:12
edehont joined
|
|||
perlawhirl | ie. Class.new($foo, { bar => 'baz' }) | 10:12 | |
p5 errors, it complains "can't use string ("bar") as a hashref" | 10:13 | ||
nadim | perlawhirl: this is Perl6 channel | ||
perlawhirl | yes it is :D sorry, i should have specified i was talking about Inline::Perl5 | 10:14 | |
hence why i'm looking in nine's direction | |||
DrForr | nadim: he's using Inline::Perl5, that's fine :) | ||
nadim | I kinda guessed but wasn'tsure :) | ||
perlawhirl | i'll give you a bonus P6 question for free: what is .categorize? it's in Any.pm, but not in the docs. is it a pre-GLR version of .classify | 10:15 | |
it seems to do the same thing | |||
m: say <one two three four five>.categorize(*.comb[0]) | |||
camelia | rakudo-moar 330f81: OUTPUT«f => [four five], o => [one], t => [two three]» | ||
perlawhirl | also it's much slower than .classify :) | 10:17 | |
jnthn | perlawhirl: They do different things :) | 10:18 | |
nadim | timotimo: any reasons why OUTER:infix doesn't work? | ||
10:18
Begi left,
Begi joined
|
|||
timotimo | because the outer itself doesn't declare that infix? | 10:19 | |
you can use OUTERS, though | |||
that'll probably give you what you want | |||
10:19
Begi left
|
|||
nadim | it does run but the eqv that I defined for a specific class does not get called | 10:22 | |
perlawhirl | jnthn: ok thanks... reading S32 now. | 10:23 | |
10:24
sue joined
10:27
dvinciguerra__ joined
|
|||
perlawhirl | i... think i found a bug | 10:30 | |
m: say <one two three four five>.classify( *.contains( any('a'..'e') )) | |||
camelia | rakudo-moar 330f81: OUTPUT«P6opaque: no such attribute '$!reified' in block <unit> at /tmp/rfbjsYzsrY line 1» | ||
perlawhirl | works if i explicitly Boolify | ||
m: say <one two three four five>.classify( ?(*.contains( any('a'..'e')) )) | |||
camelia | rakudo-moar 330f81: OUTPUT«False => [two four], True => [one three five]» | ||
timotimo | nadim: are you sure OUTER is what you mean? not CALLER or even CLIENT? | 10:31 | |
nadim | I'll try with CALLERS although I thought that CALLERS would be part of OUTERS | ||
timotimo | no, definitely not | 10:32 | |
the two are extremely distinct | |||
10:32
sjoshi left
|
|||
timotimo | the one is lexical, the other dynamic | 10:32 | |
nadim | CALLERS did not help, let's try CLIENTS | 10:33 | |
timotimo | i think we only have "CLIENT" without the S | ||
10:33
sjoshi joined
|
|||
timotimo | but it's most likely going to behave a lot like CALLERS | 10:33 | |
nadim | Yes CLIENTS was not accepted but it did not work as CALLERS, I got annot find method 'Nil'. | 10:35 | |
timotimo | how exactly do you use the result of the lookup? | ||
nadim | I just call it. My theory is that DDT does not call the eqv that I declared, somewhere up the chaine before calling it, because it does not see it. | 10:36 | |
so I need DDT to use the eqv defined up th caller chain, otherwise any class with eqv defined will not work properly in DDT | 10:37 | ||
10:37
labster left
|
|||
timotimo | it can only see operators that are lexically in scope | 10:37 | |
aye | |||
a common difficulty | |||
nadim | not so good! I can think of the case where someone diffs two structures and decideds, at the DDT call point, that two types are equivalent if some attributes match, but that will not work! | 10:39 | |
hmm, shouldn't that be in the same scope already? since it is defined in ascope higher than the call to DDT? | 10:40 | ||
timotimo | in our current implementation, i think it might end up being exceedingly expensive to grab all operators from up the call stack | ||
lexical scope! | |||
lexical scope is exactly what's in the source code | |||
nadim | that was my theory | 10:41 | |
timotimo | if it isn't between braces upwards of the "hierarchy" inside the code, it won't be found | ||
jnthn | I think the typical pattern is to have an optional parameter that you bind to something like the client or caller eqv | ||
timotimo | a call doesn't factor into this. it can't. | ||
jnthn | And then you just call that | ||
timotimo | ideally that'd happen "for you", without changing how the method itself is invoked | 10:42 | |
jnthn | \&infix:<eqv> = CLIENT::{'&infix:<eqv>'} or so | ||
(No idea if that actually works) | |||
(Bit tied up with other things atm) | |||
nadim | jnthn: thanks anyway, I can try and get back to you when you are les busy (if ever ;) ) | 10:43 | |
10:45
sue left
|
|||
nadim | timotimo: thanks for balling with me. As much as I am happy that I thought right to start with, I have to find a way to make some subs visible in the lexical scope if Jnth's method doesn't work. I understand that grabbing operators is /can be expensive but it seems to me that it is the logical way; otherwise we define operators that are ignored. | 10:48 | |
is there a way to search for the operators? I'll add that in DDT to start with | 10:49 | ||
timotimo | m: sub foo() { say CALLERS::{'&infix:<eqv>'} }; foo() | 10:50 | |
camelia | rakudo-moar 330f81: OUTPUT«sub infix:<eqv> ($?, $?) { #`(Sub+{<anon|75747216>}+{Precedence}|46332304) ... }» | ||
timotimo | m: sub foo() { say CALLERS::{'&infix:<eqv>'}("a", "b") }; foo() | ||
camelia | rakudo-moar 330f81: OUTPUT«False» | ||
timotimo | if this doesn't work, i dunno what would :\ | ||
10:50
TEttinger left
10:51
bbkr joined
10:53
sue joined
10:55
ely-se left
|
|||
nadim | \&infix:<eqv> = CLIENT::{'&infix:<eqv>'} didn't work, complains about modifying an immutable capture. using := to bind said: Cannot use bind operator with this left-hand side; and using ::= said that it was not implemented. | 10:56 | |
10:56
edehont left
|
|||
nadim | In any case, we've been displaying a pletoria of error messages, which is nice in a pervert way. | 10:56 | |
timotimo | yeah, you need "my" there | ||
nadim | ah! | 10:57 | |
timotimo | otherwise you'll be trying to assign to the infix:<eqv> that comes from the setting | ||
10:57
kalkin- left
|
|||
nadim | my \&infix:<eqv> = CLIENT::{'&infix:<eqv>'} ; says "malformed my. | 10:58 | |
moritz | either \ or & | 10:59 | |
I think & is the right onw | |||
timotimo | yes | ||
timotimo is distracted by hacking on the optimizer | |||
nadim | and by /me spewing error message ;) | 11:00 | |
timotimo | that's fine | ||
i was like you in the beginning | |||
11:01
kaare_ joined
|
|||
nadim | you wish! ;) | 11:03 | |
timotimo | hum. we're only visiting the first branch of QAST::Want nodes if it's a value/'v'/value one :| | ||
maybe we should visit only the third branch if that node is in sink context | 11:04 | ||
jnthn | timotimo: Yes, and we saved 20% or so on the optimize phase doing so, since the subtrees are mostly shared...plesae be careful :) | ||
lunch time :) & | |||
sortiz | bed time for me :) & | 11:05 | |
timotimo | i will be | ||
i don't really know why we don't throw out the Want node itself when we find it in void context at the optimizer level | 11:06 | ||
awwaiid | ab5tract: for multi-repl stuff, I'd like to keep playing with a client-server repl like clojure's nREPL. Then you can have more than one client, different types of clients, etc. | 11:13 | |
11:14
ely-se joined,
kid51 joined
|
|||
awwaiid | ab5tract: So I spin up this one project in clojure/clojurescript. It starts a REPL in a console and a websocket to a browser. When I enter one namespace (like setting a current package) in the REPL it actually executes the commands on the browser in clojurescript, in another namespace locally. I also have an editor connected to the same session so I can dynamically redefine functions, tab-complete based on loaded data, etc | 11:17 | |
11:18
araujo joined
11:19
araujo left
11:20
araujo joined
11:22
sue left,
sue joined
11:23
azawawi joined
|
|||
azawawi | interesting output... 16GB eaten by zombie moar.exe(s). re github.com/azawawi/perl6-file-whic.../Win32.pm6 :) | 11:24 | |
timotimo | hungry hungry heapo | 11:25 | |
azawawi | gist.github.com/azawawi/517da9d9a6...b0ee6af846 # P6M Merging GLOBAL symbols failed: duplicate definition of symbol Win32 | ||
timotimo | well, yeah, it uses File::Which, which uses File::Which::Win32 | 11:26 | |
looks like the most obvious endlessly recursive use ever | |||
azawawi | yup | 11:27 | |
copy & paste :) | |||
so copy&paste broke perl6 -c... cool :) | |||
the funny thing you cannot find that problem when your machine is swapping... | 11:28 | ||
win32 and linux... same behavior ofcourse | |||
timotimo | hehe. | ||
well, it'd probably be nice if we had detection for endless recursion in there | |||
but you should always ulimit moar anyway :P | 11:29 | ||
11:29
sue left
|
|||
azawawi | what's your ulimit command btw? | 11:30 | |
to prevent such a behavior because it happened while i was editing using atom :) | |||
i was thinking it maybe a linter (js) bug... linting all project | 11:31 | ||
timotimo | don't actually have one :) | 11:32 | |
BBL | 11:33 | ||
azawawi | hehe thought so | 11:34 | |
because you cant u limit moar :) | |||
timotimo | of course i can | ||
i could put that into the shell script perl6-m or perl6 or whatever :) | |||
azawawi | i know ... you cant u limit moar (Perl 6 has no limits :) ) | 11:35 | |
ofcourse saying that you can ulimit is the right thing to do under linux/macosx but under win32 you do not have such an option as far as i know | 11:36 | ||
11:38
dvinciguerra__ left
|
|||
azawawi | timotimo: github.com/azawawi/atom-perl6-edit.../issues/22 # added an issue to fix :) | 11:40 | |
11:40
vendethiel- left
|
|||
lizmat clickbaits p6weekly.wordpress.com/2016/03/29/...heapsters/ | 11:40 | ||
11:41
sue joined,
vendethiel joined
|
|||
sjn saw an URL in an IRC channel, and would never had expected what happened next! | 11:42 | ||
DrForr | www.youtube.com/watch?v=dKpzCCuHDVY # Let's see what happens! | 11:44 | |
11:44
ambs left
|
|||
azawawi | lizmat: 2016-13? | 11:44 | |
11:44
ambs joined
|
|||
lizmat | 13th week of the year ? | 11:45 | |
DrForr | ISO week? | ||
azawawi | im so used to using yyyy.mm.dd... nvm. | 11:46 | |
nine | 2016-W13 would be ISO 8601 conformant. But we are talking about a blog post here :) | 11:47 | |
azawawi | nine: yup :) | 11:48 | |
the thing is 2016.13 and 2016.03 looked like a typo | 11:49 | ||
11:51
kid51 left
|
|||
azawawi | lizmat++ | 11:51 | |
RabidGravy gives up on making a gdbm binding *again* | 12:03 | ||
perlawhirl | nine: do you know how to... irclog.perlgeek.de/perl6/2016-03-30#i_12258756 | 12:05 | |
12:12
Guest28857 is now known as nemo
12:15
g4 left
|
|||
pmurias | RabidGravy: why? | 12:18 | |
RabidGravy | because I don't want it enough to overcome the problems I am having with it | 12:19 | |
nadim | there must be a better way to write this, right? title => (%options<lhs_title title>:v)[0] // '', | 12:24 | |
first defined of lhs_title and title or '' | 12:25 | ||
jnthn | [//] flat %options<lhs_title title>, '' # maybe | 12:26 | |
[Coke] | awwaiid: ping. | 12:27 | |
12:29
sue left
12:31
domidumont left
|
|||
nadim | jnthn: nice but maybe not the easiest to read, I guess it's the flat that messes it up. Maybe someting with .first: defined | 12:32 | |
jnthn | It's easier than the :v and then index, imo :) | 12:35 | |
azawawi | File::Which now handles on win32 on %PATH and registry-only executables github.com/azawawi/perl6-file-whic...02-win32.t :) | ||
RabidGravy | wahay! | ||
jnthn | (%options<lhs_title title>, '').flat.first(*.defined) would work also | ||
azawawi zef uninstall File::Which && zef install File::Which # way too cool :) | 12:38 | ||
RabidGravy | I've just astonished myself by finding a USB audio interface in the boxes o' stuff at the first attempt | 12:39 | |
arnsholt | Ah yes, the infamous boxes o' stuff =D | ||
RabidGravy | I probably wouldn't be so lucky at a second attempt, there are seven boxes with various audio and musical stuffs | 12:41 | |
nadim | all, I'd like some feedback on a Text::Template module I wrote. It's a very thin layer and I am not sure I should add it to the ecosystem. github.com/nkh/P6-Text-Template/bl...emplate.pm | 12:42 | |
azawawi | RabidGravy: finally `perl6 -MFile::Which -e "say which('firefox')"` => C:\Program Files (x86)\Mozilla Firefox\firefox.exe :) | ||
12:43
dvinciguerra__ joined
|
|||
RabidGravy | kewl | 12:43 | |
12:48
Sgeo left
|
|||
MadcapJake | I keep getting this strange "Too few positionals" error (non-breaking, iiuc) that shows up with this code: gist.github.com/MadcapJake/cbfd2e0...1e5fab1bed | 12:49 | |
If I comment out lines 20-24 it disappears but I can't seem to replicate it outside of this context for some reason either | 12:50 | ||
with the for block's argument as «@ ($i, $s)» it also says "in 1 sub-signature" but if I change it to just «$i, $s» it just doesn't say that part o_O | 12:51 | ||
now for some unknown reasons it has decided to actually break... | 12:54 | ||
oh if I wrap the for's list, it breaks with the same error actually | 12:55 | ||
12:55
lizmat_ joined
12:56
azawawi left
|
|||
MadcapJake | actually I feel like I may have worked it out, I *want* the for's list to be a list of tuples, but it isn't actually coming out as intended | 12:56 | |
perlpilot | m: my @a = 'a'..'z'; for @a[1..*] -> @ ($i, $s) { } | 12:57 | |
camelia | rakudo-moar 330f81: OUTPUT«Type check failed in binding <anon>; expected Positional but got Str ("b") in block <unit> at /tmp/eRE0raRamo line 1» | ||
12:57
sue joined
12:59
sufrostico joined
|
|||
MadcapJake | m: my @a = (1, 2) xx 5; for @a[1..*] -> @ ($i, $s) { say $i } | 12:59 | |
camelia | rakudo-moar 330f81: OUTPUT«1111» | ||
perlpilot | MadcapJake: the "too few positionals" is because you are pulling off items 2 at a time, but you've got an odd number of them | ||
change it to make $s optional and it'll go away | 13:00 | ||
m: my @a = 'a'..'z'; for @a[1..*] -> $i, $s { } | |||
camelia | rakudo-moar 330f81: OUTPUT«Too few positionals passed; expected 2 arguments but got 1 in block <unit> at /tmp/HAPZ2hBJH0 line 1» | ||
perlpilot | m: my @a = 'a'..'z'; for @a[1..*] -> $i, $s? { } | ||
camelia | ( no output ) | ||
MadcapJake | perlpilot: ahhh! thanks! | 13:01 | |
perlpilot | That first error I got makes total sense, but since I'm not fully awake, it feels really LTA. | 13:03 | |
13:08
skids joined
13:11
sue left
13:12
lizmat_ is now known as lizmat
13:13
sue joined
13:19
d4l3k_ joined,
cognominal joined,
d4l3k_ is now known as dalek,
ChanServ sets mode: +v dalek,
cognominal_ left,
[particle] joined
13:20
perlawhirl left
13:22
perlawhirl joined,
abraxxa left,
abraxxa1 joined
|
|||
nine | perlawhirl: aehm...what exactly do you mean by hashref? There are no references in Perl 6. | 13:27 | |
dalek | osystem: 0a0ce4f | RabidGravy++ | META.list: Rename META for URI::Template |
13:28 | |
ZoffixWin | m: role One { method foo (){} }; role Two { method foo(){} }; class Three does One does Two {}; | 13:33 | |
camelia | rakudo-moar 268e9c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/6MFr6OIDRhMethod 'foo' must be resolved by class Three because it exists in multiple roles (Two, One)at /tmp/6MFr6OIDRh:1» | ||
ZoffixWin | The error message says "resolved by class"... how would that look like? How do you resolve it? | ||
perlawhirl | nine: exactly. so i guess if a perl5 class expects a hashref (for options) there's no way to pass those options from Inline::Perl5 ? | ||
lizmat | m: role One { method foo (){} }; role Two { method foo(){} }; class Three does One does Two { method foo() { } }; | 13:34 | |
camelia | ( no output ) | ||
moritz | ZoffixWin: you implement the method in class Three | ||
ZoffixWin | Thanks. | ||
jnthn wonders if the message could hint at that more clearly :) | |||
moritz | and there you can call self.One>>foo() | ||
erm | |||
and there you can call self.One::foo() | |||
nine | perlawhirl: oh, it's quite the opposite. When you pass an itemized hash to a Perl 5 function, it will arrive as hash ref. If you want it flattened, you have to do so on the Perl 6 side. | ||
moritz | (which is curious, considering that the methods from roles are flattened into the class) | ||
jnthn | moritz: Yeah, even more fun is that what you actually end up calling is the reified method that *would have been* composed into the class if only there wasn't a conflict | 13:36 | |
Because if we just passed the call on to the generic one it'd be missing all the type environment and so on :) | |||
That was a little tricky to implement... | |||
13:37
cdg joined
|
|||
perlawhirl | nine: that makes sense... i'll play around some more. thanks | 13:39 | |
13:42
gflohr joined
13:43
ely-se left
|
|||
gflohr | Why doesn't that match the content of a single or double quoted string? /^(<[ " ' ]>) | 13:43 | |
( | |||
<-[$0]>* | |||
) | |||
$0 | |||
/ | |||
If I use <-["]> it works (for double quoted strings only). | 13:44 | ||
nine | gflohr: you want to use a proper grammar | ||
moritz | I guess you can't use $0 in a char class | ||
teatime | gflohr: you could use a parameterized multi instead of that. if $0 is valid inside a regex I doubt it is inside a char class. | ||
gflohr | but how would you write then a pattern that matches single and double quoted strings at once? | 13:45 | |
nine: what do you mean by proper grammar? | |||
moritz | m: say '"abc"' ~~ /^(<[ " ' ]>) ( [<!before $0> .]* ) $0 / | ||
camelia | rakudo-moar 268e9c: OUTPUT«「"abc"」 0 => 「"」 1 => 「abc」» | ||
moritz | m: say ''abc"' ~~ /^(<[ " ' ]>) ( [<!before $0> .]* ) $0 / | ||
camelia | rakudo-moar 268e9c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/HzLV4Igu0zTwo terms in a rowat /tmp/HzLV4Igu0z:1------> 3say ''7⏏5abc"' ~~ /^(<[ " ' ]>) ( [<!before $0> . expecting any of: infix infix stopper postfix …» | ||
nine | gflohr: doc.perl6.org/language/grammars | ||
moritz | m: say q['abc"] ~~ /^(<[ " ' ]>) ( [<!before $0> .]* ) $0 / | 13:46 | |
camelia | rakudo-moar 268e9c: OUTPUT«Nil» | ||
moritz | m: say q['abc'] ~~ /^(<[ " ' ]>) ( [<!before $0> .]* ) $0 / | ||
camelia | rakudo-moar 268e9c: OUTPUT«「'abc'」 0 => 「'」 1 => 「abc」» | ||
moritz | that seems to work | ||
gflohr | thanks, that helps me | ||
teatime | gflohr: warning: it's a lot of addictive fun. | 13:47 | |
perlpilot | m: say q['abc'] ~~ /^(<[ " ' ]>) ( <-[$0]>* ) $0 /; | ||
camelia | rakudo-moar 268e9c: OUTPUT«「'abc'」 0 => 「'」 1 => 「abc」» | ||
DrForr | gflohr: Also theperlfisher.blogspot.ro/2016/02/f...rs-pt.html | 13:48 | |
gflohr | thanks, I will do my homework. ;) | 13:49 | |
perlpilot | gflohr: but note above that your original regex does indeed work. | 13:50 | |
gflohr | perlpilot: I don't think so. I'll search an example. | ||
moritz | m: say m/^(<[ " ' ]>) ( <-[$0]>* ) $0 $/ for <'abc' "abc" 'abc" abc> | 13:51 | |
camelia | rakudo-moar 268e9c: OUTPUT«「'abc'」 0 => 「'」 1 => 「abc」「"abc"」 0 => 「"」 1 => 「abc」NilNil» | ||
moritz | looks fine, from a quick test | ||
gflohr | perlpilot: say q["Hello, \\"world!"] ~~ /^(<[ " ' ]>) ( <-[$0]>* ) $0 / | 13:52 | |
moritz | gflohr: you didn't include any logic for handling escapes | 13:53 | |
gflohr | perlpilot: It should match only until the first double quote but matches until the examation mark. | ||
perlpilot | that's changing the spec | ||
gflohr | moritz: I'm not yet escaping. | ||
moritz | m: say q["Hello, \\"world!"] ~~ /^(<[ " ' ]>) ( <-[$0]>* ) $0 / | ||
camelia | rakudo-moar 268e9c: OUTPUT«「"Hello, \"world!"」 0 => 「"」 1 => 「Hello, \"world!」» | ||
moritz | indeed | ||
perlpilot | gflohr: greedy regex are still greedy. | ||
moritz | well, but that does mean the <[-$0]> matches anything | 13:54 | |
m: say q['ab'c'] ~~ /^(<[ " ' ]>) ( [<!before $0> .]* ) $0 / | |||
camelia | rakudo-moar 268e9c: OUTPUT«「'ab'c'」 0 => 「'」 1 => 「ab'c」» | ||
gflohr | perlpilot: I don't get that. The <-[$0]> should not match a quote but it does. This is what I don't understand. | ||
moritz | gflohr: it just seems that char classes aren't as dynamic as you expect them to be | 13:55 | |
perlpilot | m: say q['ab0c'] ~~ /^(<[ " ' ]>) ( <-[$0]>* ) $0 /; | ||
camelia | rakudo-moar 268e9c: OUTPUT«Nil» | ||
perlpilot | I wish there was a Regex::Explain that would tell us exactly what Rakudo thinks the regex should do. | 13:56 | |
gflohr | so did I hit a bug? | ||
perlpilot | m: say q['ab0'] ~~ /^(<[ " ' ]>) ( <-[$0]>* ) $0 /; | ||
camelia | rakudo-moar 268e9c: OUTPUT«Nil» | ||
teatime | gflohr: no. | ||
jnthn | <-[$0]> is the char class of everything except $ or 0 | ||
moritz | gflohr: I don't think either the test suite or the design documents demands that this work | 13:57 | |
jnthn | By design. | ||
gflohr | But it's somewhat confusing. | 14:00 | |
perlpilot | especially if you're not quite fully awake :) | 14:01 | |
jnthn | Maybe, but you'd not expect '$0' to interpolate either | ||
DrForr | gflohr: It's pretty straightforward. $0 isn't a variable inside <[]>. | ||
perlpilot | gflohr: I think the right way to look at it is that inside of a character class, you're not in Perl anymore, you're in the "character class language" which has its own rules. | 14:02 | |
jnthn | Just a place you need to learn isn't an interpolating context | ||
teatime | gflohr: here's a string-matching grammar example gist.github.com/pprince/f0b0f75ead...444a6bf184 | ||
it's not as concise or elegant as I'd like but I was just playing with it and I'm still very new to perl6 syntax/features. | 14:03 | ||
as an added bonus, perhaps folks will point out anything wrong or easily-simplified to me. | |||
masak | jnthn: how would you say "negative character class with all the characters from $0" ? | 14:04 | |
(or any string in a variable) | |||
14:05
nadim left
|
|||
perlpilot | masak: EVAL :) | 14:06 | |
14:07
perlawhirl left,
zakharyas left,
zakharyas joined
|
|||
gflohr | My final goal is to extract a quoted string with backslash escaping. That was a relatively simple in Perl 5. And it would be a pity if it is a lot more complicated in P6. | 14:10 | |
14:11
zakharyas left
|
|||
jnthn | m: say '"abc"' ~~ /(<["']>) ([<!before $0>.]*)/ | 14:11 | |
camelia | rakudo-moar 268e9c: OUTPUT«「"abc"」 0 => 「"」 1 => 「abc"」» | ||
jnthn | There's one way | 14:12 | |
moritz | m: say '"a"bc"' ~~ /(<["']>) ([<!before $0>.]*)/ | ||
camelia | rakudo-moar 268e9c: OUTPUT«「"a"bc"」 0 => 「"」 1 => 「a"bc"」» | ||
moritz | jnthn: ^^ doesn't work | ||
14:13
sue left
14:16
nemo left
|
|||
DrForr | m: say '"ab\\"cd"' ~~ /(\" [ \\" | <-["]> ] ")/ | 14:16 | |
camelia | rakudo-moar 268e9c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/2vabHfnqyMUnable to parse expression in metachar:sym<( )>; couldn't find final ')' at /tmp/2vabHfnqyM:1------> 3say '"ab\\"cd"' ~~ /(\" [ \\" | <-["]7⏏5> ] ")/ expecting any of: d…» | ||
14:17
_4d47 joined
|
|||
DrForr | m: say '"ab\\"cd"' ~~ /(\" [ \\" | <-["]> ] \")/ | 14:17 | |
camelia | rakudo-moar 268e9c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/6Jc4WrJrJlUnable to parse expression in metachar:sym<( )>; couldn't find final ')' at /tmp/6Jc4WrJrJl:1------> 3say '"ab\\"cd"' ~~ /(\" [ \\" | <-["]7⏏5> ] \")/ expecting any of: …» | ||
DrForr | m: say '"ab\\"cd"' ~~ /(\" [ \\" | <-[ " ]> ] \")/ | ||
camelia | rakudo-moar 268e9c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/5A1yr1DwZ9Unable to parse expression in metachar:sym<( )>; couldn't find final ')' at /tmp/5A1yr1DwZ9:1------> 3say '"ab\\"cd"' ~~ /(\" [ \\" | <-[ " ]7⏏5> ] \")/ expecting any of: …» | ||
DrForr | Grumble. | ||
14:17
azawawi joined
|
|||
DrForr | m: say '"ab\\"cd"' ~~ /(\" [ \\\" | <-[ " ]> ]* \")/ | 14:18 | |
camelia | rakudo-moar 268e9c: OUTPUT«「"ab\"cd"」 0 => 「"ab\"cd"」» | ||
azawawi | question... shouldnt %*ENV<Path> and %*ENV<PATH> be case insensitive on windows? | ||
DrForr | gflohr: ^ | ||
nine | gflohr: what exactly does your Perl 5 solution look like? Because it doesn't sound all that simple to me. | ||
azawawi | m: %*ENV<Path> eq %*ENV<PATH> | 14:19 | |
camelia | rakudo-moar 268e9c: OUTPUT«WARNINGS for /tmp/QVW8kRVFQG:Useless use of "eq" in expression "<Path> eq %*ENV<PATH>" in sink context (line 1)Use of uninitialized value %ENV of type Any in string contextAny of .^name, .perl, .gist, or .say can stringify undefined things, if nee…» | ||
jnthn | moritz: oh, duh, yeah, $0 will mean something else inside the before :) | 14:20 | |
azawawi | on windows it is case insensitive for environment variables as far as i know | 14:21 | |
gflohr | nine: for a double-quoted string it looks like this: "([^\\"]*(?:(?:\\"|\\)[^\\"]*)*)" | ||
14:21
nemo joined,
nemo is now known as Guest99636
|
|||
jnthn | Oh, if you want ot hardcode the terminator it's easier | 14:22 | |
gflohr | nine: I don't find an example that works for both single and double quotes but I'm relatively sure it's just using backreferences with \1 | ||
nine | gflohr: I wouldn't be so sure. Perl 5 doesn't allow interpolating in character classes either. | ||
14:22
Guest99636 is now known as nemo
|
|||
jnthn | m: say '"abc"' ~~ /'"' ~ '"' ([ \\ . | <-["]> ]+)/ | 14:23 | |
camelia | rakudo-moar 268e9c: OUTPUT«「"abc"」 0 => 「abc」» | ||
gflohr | nine: for a single character I don't need a character class. I just use \1 | ||
nine | gflohr: you do have a character class with [^\\"]* | ||
That's the place where it becomes hard | |||
jnthn | m: say '"a\"bc"' ~~ /'"' ~ '"' ([ \\ . | <-["]> ]+)/ | ||
camelia | rakudo-moar 268e9c: OUTPUT«「"a\"bc"」 0 => 「a\"bc」» | ||
gflohr | nine: you're right | ||
awwaiid | [Coke]: pong | 14:25 | |
14:28
azawawi left
|
|||
gflohr | nine: (?:\"(?:\\\"|(?!\").)*\"|\'(?:\\\'|(?!\').)*\'), that is it for Perl 5, see perldoc.perl.org/Text/Balanced.html...imited_pat | 14:29 | |
14:30
sue joined
|
|||
MadcapJake | is there a fast way to chop off any array elems that don't have a specific number of items? | 14:31 | |
teatime | gflohr: my example can be simplified to at least something like gist.github.com/pprince/f0b0f75ead...444a6bf184 if not further, given your requirements vs. mine | 14:32 | |
gflohr: and has the advantage of being far more readable/editable than your one-liner. | 14:33 | ||
gflohr | teatime: Thanks, I will try that. Have to get my son from kindergarten now. | 14:34 | |
14:34
gflohr left
|
|||
nine | teatime++ # using the right tool for this job | 14:35 | |
MadcapJake | m: for [[1, 2] xx 5].push([1]).push([1, 2, 3]).append([1, 2] xx 5) -> @ ($a, $b) { say $b } | ||
camelia | rakudo-moar 268e9c: OUTPUT«22222Too few positionals passed; expected 2 arguments but got 1 in sub-signature in block <unit> at /tmp/KsdiXZBrv3 line 1» | ||
MadcapJake | I have a list like that and I need to remove anything other than tuples | 14:36 | |
teatime | gflohr: if that untested code doesn't work ootb I'm willing to fix it. | 14:37 | |
MadcapJake | m: for [[1, 2] xx 5].push([1]).push([1, 2, 3]).append([1, 2] xx 5) -> @l ($a, $b) where @l.elems == 2 { say $b } | 14:38 | |
camelia | rakudo-moar 268e9c: OUTPUT«22222Constraint type check failed for parameter '@l' in block <unit> at /tmp/58d2__zblw line 1» | ||
14:39
domidumont joined
|
|||
gregf_ | grep prolly? | 14:40 | |
jnthn | m: my @a = [[1, 2] xx 5].push([1]).push([1, 2, 3]).append([1, 2] xx 5); say @a.grep(*.elems != 2) | ||
camelia | rakudo-moar 268e9c: OUTPUT«([1] [1 2 3])» | ||
jnthn | m: my @a = [[1, 2] xx 5].push([1]).push([1, 2, 3]).append([1, 2] xx 5); say @a.grep(*.elems == 2) | ||
camelia | rakudo-moar 268e9c: OUTPUT«([1 2] [1 2] [1 2] [1 2] [1 2] [1 2] [1 2] [1 2] [1 2] [1 2])» | ||
jnthn | m: my @a = [[1, 2] xx 5].push([1]).push([1, 2, 3]).append([1, 2] xx 5); say @a.grep(2) # ;-) | ||
camelia | rakudo-moar 268e9c: OUTPUT«([1 2] [1 2] [1 2] [1 2] [1 2] [1 2] [1 2] [1 2] [1 2] [1 2])» | ||
gregf_ | >> ([1,2,3], [1,2], [1,4,5,6], [6,7,8]).grep: -> $a { $a.elems == 3 } | ||
ah - nevrmind :/ | |||
MadcapJake | jnthn, gregf_: thanks :) | 14:41 | |
I really need to get more familiar with grep, I don't use it enough. | |||
gregf_ | MadcapJake: then ..... you probably havent used Perl5 much .... *ducks* | 14:42 | |
MadcapJake | I was gonna say that but wasn't sure of the implications ;) | ||
gregf_ | heh | ||
MadcapJake | I've *never* used Perl 5! *runs out of the room* | 14:43 | |
But I've used TONS of PCRE xD | |||
teatime | I used Perl5 for years, and I think I would be as lost in Perl5-land as I am w/ Perl6. | ||
gregf_ | you've not shed too many tears then :)) | ||
teatime | I have no memory of smart matching, I don't think it existed. | ||
14:44
_nadim joined,
fireartist left
|
|||
dalek | c: a256055 | (Wenzel P. P. Peppmeyer)++ | doc/Language/ (2 files): the renderer doesn't like C<I<foo>>, trying I<C<foo>> what is righter |
14:44 | |
MadcapJake | in fact I've recently been acquainted with how awesome it is to try and make a language grammar match two regex engines (oniguruma and PCRE) x_x | ||
RabidGravy | for reference I've used Perl 4, Perl 5 *and* Perl 6 | 14:45 | |
sjn has suppressed his memories of smartmatch in Perl 5 | |||
teatime | I might have used Perl 4 a little, not sure. | 14:46 | |
masak | sjn: oh, psychoticmatch? | ||
masak .oO( this feature is axe-perimental ) | |||
MadcapJake | teatime: There's been a few things that many talk about on here that have been jarring for an outsider like myself: grep, moose/mop stuff, sigils/context | ||
gregf_ | i've started off with OO Perl with Moose..... | ||
MadcapJake | but for the most part, I think being an outsider helps a bit because as I've said earlier, familiarity can be a double-edged sword, coming from Perl 5 you may have certain expectations for how things work (though I know there's a series of errors just for this particular problem space) | 14:48 | |
gregf_ | MadcapJake: well its called 'filter' or 'select' or 'reject' or array_filter or whatever in python/ruby/scala/php/whatever ;). in java <=7 i guess a for loop with a break *hides* | 14:50 | |
sjn | masak: traumatch :) | ||
it was a traumaching experience | 14:51 | ||
traumatching* | |||
masak | :P | ||
masak .oO( "What did you do at work today?" -- "I got traumatchized." ) | |||
sjn | let's not be stigmatchizing here, now. :) | 14:52 | |
MadcapJake | oh another jarring thing for an outsider: elems/chars :) | 14:53 | |
sjn | also, it's time to teach everyone that a char isn't a byte any more :) | 14:54 | |
MadcapJake | gregf_: yes I guess it's partly just the name that makes it tough for me to remember to use it, I look at the problem and say "I want to filter this" not "I want to grep this" but again that's something to do with where you've come from / what you're used to | ||
sjn: i was wondering this when working with some native calls, how would I get the byte size of a string? | 14:55 | ||
masak | MadcapJake: what would you like elems/chars to be? ..."length"? o.O | ||
MadcapJake | masak: I'm just saying, it's what I'm used to! I actually like the justification for the split, but it's still "jarring" so-to-speak | ||
masak | MadcapJake: fwiw, in 007, I started out calling it `grep`. then I did a double-take on the word, and went with Python's `filter` :) | ||
007 ends up grinding tiny axes now and then | 14:56 | ||
MadcapJake | masak: nice! | ||
masak .oO( "see this? it's the world's tiniest axe, being ground" ) | |||
MadcapJake | lol | ||
14:57
tmch left
|
|||
jnthn is glad we got something a bit shorter than filter, without having to abbreviate :) | 14:57 | ||
masak | "grep" is the perfect word for this, since it's actually an abbreviation of "global", uh, "regex", er, "print" :( | 14:58 | |
moritz | m: say 'filter'.chars - 'grep'.chars | ||
camelia | rakudo-moar 268e9c: OUTPUT«2» | ||
14:59
frew joined,
khw joined
|
|||
MadcapJake | this is one thing that programming languages share with natural languages: the lexicon of words used is often the greatest impedance to learning. Each natural language has various folklore/history that ends up getting mapped into words and you find this same thing in programming languages. | 15:00 | |
masak .oO( that ends up getting grepped into words ) :P | 15:01 | ||
MadcapJake | so coming from another language, our brains have to remap the connect from filter to grep, from length to elems, etc. | ||
masak | I actually don't mind translating like that. it's a matter of habit. | 15:02 | |
and I feel like doing that now again between languages makes me "resilient", somehow | |||
jnthn | masak: I've never actually thought about where the name "grep" came from... :) | 15:03 | |
masak | I don't get stuck in the habits and the language of one culture | ||
jnthn: it's an old *ed* command, I think | |||
jnthn wonders if it's in muggle dictionaries... :) | |||
masak | not vim. not vi. ed. | ||
MadcapJake | masak: just as a polyglot has an easier time learning languages (their mapping machinery gets exercised more often) so to do polyglot programmers have an easier time learning new languages | ||
masak | MadcapJake: aye. | ||
sjn | m: say "𝔽".succ; # maybe 𝔾 ? | 15:04 | |
camelia | rakudo-moar 268e9c: OUTPUT«𝔽» | ||
teatime | jnthn: g/re/p | ||
masak | MadcapJake: the sacrifice you make forever though, is a certain type of speed/certainty that you can only have if you only know one language. | ||
teatime: that's the one. | |||
so the "re" part is actually metasyntactic. | |||
MadcapJake | masak: well science into natural polyglots would say that their brains are actually more powerful, whether that translates is perhaps up to debate | 15:05 | |
masak | meh | ||
[Coke] | awwaiid: am I on the schedule-ish? | ||
teatime | .grep in perl is kindof a misnomer; natural for unix folks, but if you want to get technical it does something a bit different :) | ||
masak | but I wouldn't give up my polyglottery for anything | ||
teatime | .filter would have probably been my choice, and I *am* a unix nerd. | ||
sjn | "natural plotglots"? | ||
15:05
sufrostico left
|
|||
MadcapJake | as in natural language polyglots | 15:06 | |
15:06
molaf joined
|
|||
sjn | ah | 15:06 | |
masak | sjn: "plotglots" as in "I speak fluent graph!" :P | ||
sjn | :) | ||
masak .oO( just look at my graphemes! ) | |||
MadcapJake | maybe a programming polyglot should be called a "polygrok" :P | 15:07 | |
[Coke] | poly grotty | ||
skids | The first time I saw "grep" ISTR I just thought "looks like grope" and then figured out its general meaning from context. Never threw me for a loop. Adding some SEO to docs for "filter" might be helpful in the other direction. | ||
15:07
zakharyas joined
|
|||
sjn agrees | 15:07 | ||
MadcapJake | skids: I'm not speaking of reading though, because context will always assist there. but when it comes to writing code, that's where knowing the proper words/terms becomes important | 15:08 | |
skids | Like I said, SEO the docs. Or Xto6 pages. | 15:09 | |
15:09
sjoshi left
|
|||
teatime | I would just have chosen .filter as a favor to people w/ experience in functional programming but not in unix. map() has a standard meaning, grep() not as much. | 15:09 | |
MadcapJake | skids: agreed, I've been thinking of writing up something of a NotPerl5 to Perl 6 because I think that most of the non-perl5 stuff could be bundled together | 15:10 | |
teatime | not that I care much. grep fits in fine w/ the perl community/philosophy, which I also enjoy. | ||
ehh.. also apply magic regex that translates that bit about 'standard meaning' into what I actually meant. | 15:11 | ||
skids | .o(personally don't like "filter" as it can get too overloaded. e.g. in a module dealing with packet filters. Never like "map" for the same reason.) | ||
15:12
sue left
|
|||
geekosaur | the problem I have with filter is that different languages flip the meaning | 15:12 | |
I always have to look up whether it means throwing matched things out or only keeping matched things | 15:13 | ||
teatime | I suppose grep does at least make that clear. | ||
MadcapJake | see instead of grep, I find myself most often using gather/take but that can seem overkill when it's just a simple thing | 15:14 | |
m: say +^5 | 15:15 | ||
camelia | rakudo-moar 268e9c: OUTPUT«-6» | ||
jnthn | MadcapJake: grep likely performs a good bit better | ||
15:15
tmch joined
|
|||
kmwallio | on Mac OS X, some of the libs don't have a .dynlib extension (or an extension at all), is it possible to get NativeCall not to add it? | 15:16 | |
MadcapJake | jnthn: oh that's good to know! I just think gather and take is very clear what's going on, but I'll definitely exercise my grepping muscles :P | ||
15:16
sue joined
|
|||
skids | MadCapJake: learn to love "grep" It only made it into the Oxford English Dictionary like 13 years ago :-) | 15:17 | |
teatime | skids: lol, I did not know that. does it have "grok" too and other stuff from the jargon file? | ||
jnthn | skids: Oh, I was wondering but guessing "no" :) | ||
Cool | |||
teatime | Perl has always made some brilliant design decisions, though. | 15:18 | |
MadcapJake | skids: lol I'm sorry! | ||
teatime | like, chars/codes/elems, such a simple thing, and I love it so so much. | ||
skids | Though, I don't know what a "draft definition" means. Yes "grok" is in there and I'm sure we'd use it in computing if computers could :-) | 15:19 | |
MadcapJake goes to write a grok sub ;) | |||
teatime | LOL. | ||
you'd be a rich man, MadcapJake. | |||
although, there are more relevant libraries for that project in Python. | 15:20 | ||
teatime runs. | |||
MadcapJake | hehe, you just supply anything and when you execute the sub, close your eyes and think about how you want the result to look, and BOOM! there it is | ||
pmurias | MadcapJake: seems risky | ||
MadcapJake | it requires a webcam though, for reading your mind | ||
if you don't have a webcam, you can just jam a USB (type B only) into the back of your neck, that should do it ;) | 15:21 | ||
teatime | I was thinking it would be like, grok("geopolitics") | ||
and BOOM you have a Sec. of State bot | |||
MadcapJake | lol | ||
grok("mob-mentality") == DonaldTrump | 15:22 | ||
teatime | lol. | ||
MadcapJake | or is that a triple-equal? ;) | ||
15:22
zakharyas left,
tmch left
|
|||
MadcapJake is off to a friends for some CODBLOPS! :P | 15:23 | ||
huf | triple = is some kind of identity thing, isnt it? | 15:24 | |
trump aint the only one who groks the mob mentality... | 15:25 | ||
ugexe | yes, and you can write your own method `WHICH` for controlling what === compares against | 15:27 | |
democracy | |||
huf | compadres against democracy? | 15:28 | |
15:29
tokomer joined
|
|||
dalek | osystem: 136547a | titsuki++ | META.list: Add Algorithm::Manacher to ecosystem See github.com/titsuki/p6-Algorithm-Manacher |
15:33 | |
osystem: 44e7b07 | jnthn++ | META.list: Merge pull request #181 from titsuki/add-manacher Add Algorithm::Manacher to ecosystem |
|||
15:36
frithnanth joined
15:38
kurahaupo joined
15:40
Xliff_ joined
15:42
sue_ joined,
sue left,
sue_ is now known as sue
15:43
autarch left,
nemo left
15:44
nemo joined,
autarch joined
15:54
tokomer left
15:59
_4d47 left
|
|||
awwaiid | [Coke]: I just made a timeline on the site, dcbpw.org/dcbpw2016/#talks | 16:07 | |
[Coke] | yay, I get the coveted post lunch slot! | 16:13 | |
j/k I have no idea if that's good. :) | 16:14 | ||
awwaiid | hahah | ||
jnthn | Worst csae, lunch causes carb crash ;) | 16:15 | |
[Coke] | jnthn: that'll make the crowd pliable! | ||
16:20
sufrostico joined
16:24
rudi_s joined,
dfcarpenterak joined
|
|||
dalek | osystem: cc7942d | (Nadim Khemir)++ | META.list: ADDED: Text-Template |
16:26 | |
osystem: 68d97d0 | RabidGravy++ | META.list: Merge pull request #182 from nkh/master ADDED: Text-Template |
|||
16:32
nemo left,
zakharyas joined
16:36
frithnanth left
16:38
Ven joined
16:39
nemo joined,
nemo is now known as Guest28890
16:40
andreoss joined
|
|||
btyler | [Coke]: the post-lunch slot at YAPC::EU last year was brought some smiles: tired conference people + 1-2-3 drinks with lunch (tapas) --> naptime in the lecture hall :D | 16:40 | |
16:40
dakkar left
16:41
Guest28890 is now known as nemo
|
|||
btyler | s/was// | 16:41 | |
16:41
Ven left
16:43
M-matthew joined
16:44
zakharyas left
16:56
abraxxa1 left
16:57
Ven joined
16:59
Ven left
17:05
pmurias left
17:06
ab6tract joined
17:07
buharin joined
17:08
dupa joined
|
|||
ab6tract | jnthn: since TimToady seems to be AFK (writing a butterfly book?? a dev can dream...), I'll point you towards a useless use in sink warning | 17:09 | |
17:09
Ven joined
17:10
_nadim left,
nadim joined
|
|||
ab6tract | m: my $f = '25 25 25'; $f ~~ s:nth(*-1)[\d+] = 42; say $f | 17:10 | |
camelia | rakudo-moar 268e9c: OUTPUT«WARNINGS for /tmp/2ImctGm_oI:Useless use of "-" in expression "*-1" in sink context (line 1)25 42 25» | ||
17:10
Ven left
|
|||
ab6tract | funny that it warns, since it still dwims. looks like that warning gets thrown before we compile the whatevercode ? | 17:10 | |
17:11
espadrine left
|
|||
ab6tract | .tell awwaiid this nREPL sounds very interesting indeed. i'm really thinking of a simply example for the Terminal::Print distribution that involves the repl somehow, rather than anything complex. but you are describing something quite inspirational. thanks again to hoelzro++ for making it extensible in p6! | 17:14 | |
yoleaux | ab6tract: I'll pass your message to awwaiid. | ||
17:16
Ven joined
17:17
spider-mario joined,
Ven left
17:20
Vlavv_ joined
|
|||
awwaiid | ab6tract: I have an earlier experiment, github.com/awwaiid/p6-lrep, which uses the nREPL middleware-model for plugins. I will be refreshing it based on some of hoelzro work (and I keep staring at their branch to see if I can contribute directly) | 17:21 | |
yoleaux | 17:14Z <ab6tract> awwaiid: this nREPL sounds very interesting indeed. i'm really thinking of a simply example for the Terminal::Print distribution that involves the repl somehow, rather than anything complex. but you are describing something quite inspirational. thanks again to hoelzro++ for making it extensible in p6! | ||
17:23
Ven joined,
Ven left
|
|||
ab6tract | awesome :D | 17:26 | |
17:29
edehont joined,
leont joined
17:33
Ven joined
17:34
Ven left,
edehont left
17:42
dupa left,
buharin left
17:46
Ven joined
|
|||
[Coke] | damn. every C library I think of writing a wrapper for seems like it's already got a nativecall wrapper somewhere. :) | 17:48 | |
17:50
ab6tract left
|
|||
mst | [Coke]: easy to fix. first, write a C library :) | 17:51 | |
17:57
FROGGS joined,
dupa joined,
buharin joined
|
|||
[Coke] | ah, found one that I thought was a wrapper but was pure perl. whee, I'll take that one. | 18:02 | |
ZoffixWin | m: say sin 0/0; | 18:06 | |
camelia | rakudo-moar 268e9c: OUTPUT«NaN» | ||
RabidGravy | :) | ||
ZoffixWin | :) | ||
andreoss | m: say sqrt 0/0 | 18:07 | |
camelia | rakudo-moar 268e9c: OUTPUT«Inf» | ||
andreoss | m: say 0**-1 | 18:08 | |
camelia | rakudo-moar 268e9c: OUTPUT«Attempt to divide 1 by zero using div in block <unit> at /tmp/ZyEhY8GRFK line 1Actually thrown at: in block <unit> at /tmp/ZyEhY8GRFK line 1» | ||
18:09
leont left
|
|||
andreoss | in which cases it does not fail? | 18:09 | |
18:09
Ven left
18:10
andreoss left
18:11
itaipu joined
|
|||
ZoffixWin | When it can check whether the argument is a NaN, I guess. | 18:11 | |
m: say (0/0).isNaN | |||
camelia | rakudo-moar 268e9c: OUTPUT«False» | ||
18:12
labster joined
|
|||
masak | m: say (0e0/0e0).isNaN | 18:14 | |
camelia | rakudo-moar 268e9c: OUTPUT«Attempt to divide by zero using / in block <unit> at /tmp/lUDFio8eA2 line 1Actually thrown at: in any at gen/moar/m-Metamodel.nqp line 3050 in block <unit> at /tmp/lUDFio8eA2 line 1» | ||
masak | oh, for... | ||
m: say NaN.isNaN | |||
camelia | rakudo-moar 268e9c: OUTPUT«True» | ||
18:15
andreoss joined
|
|||
ZoffixWin | m: say sin NaN | 18:15 | |
camelia | rakudo-moar 268e9c: OUTPUT«NaN» | ||
ZoffixWin | m: my $x = 0/0;; say $x | 18:16 | |
camelia | rakudo-moar 268e9c: OUTPUT«Attempt to divide by zero using div in block <unit> at /tmp/wpMzzyfEIQ line 5Actually thrown at: in block <unit> at /tmp/wpMzzyfEIQ line 5» | ||
ZoffixWin | Kinda sucks that the "actually thrown at" line number is still the one where I attempted to use $x, not where the division is in the code. | ||
andreoss | m: my $x := 0/0 ; say $x; | 18:17 | |
camelia | rakudo-moar 268e9c: OUTPUT«Attempt to divide by zero using div in block <unit> at /tmp/SRCANMel39 line 1Actually thrown at: in block <unit> at /tmp/SRCANMel39 line 1» | ||
andreoss | m: my $x := 0/0 ; say sin $x; | ||
camelia | rakudo-moar 268e9c: OUTPUT«NaN» | ||
masak | ZoffixWin: agreed. that feels wrong. | ||
*sigh* | |||
I like Java's compromise: division of 0/0 (integers) is an error. division of 0.0/0.0 (doubles) is NaN. | 18:18 | ||
andreoss | m: my $x := fail ; say 'hi' | ||
camelia | rakudo-moar 268e9c: OUTPUT«Failed in block <unit> at /tmp/_6uKsaK3nc line 1» | ||
andreoss | does 0/0 fail with sin(0/0), and this failure somehow wrapped? | 18:20 | |
or it's just totally secial cased | |||
*special | |||
ZoffixWin | andreoss, it tests for NaN | ||
andreoss, you may have missed part of this conversation: irclog.perlgeek.de/perl6/2016-03-30#i_12260943 | 18:21 | ||
I don't know what sqrt does, but I imagine something similar. | |||
18:22
perlpilot joined
18:23
Ven joined
|
|||
andreoss | m: multi foo($a where $a ~~ NaN) { "hi" } ; say foo(0/0) | 18:25 | |
camelia | rakudo-moar 268e9c: OUTPUT«Cannot call foo(<0/0>); none of these signatures match: ($a where { ... }) in block <unit> at /tmp/tVqfJRlBDw line 1» | ||
andreoss | m: multi foo($a where $a ~~ NaN) { "hi" } ; say foo(0.0/0.0) | ||
camelia | rakudo-moar 268e9c: OUTPUT«Cannot call foo(<0/0>); none of these signatures match: ($a where { ... }) in block <unit> at /tmp/fGXLldfulA line 1» | ||
andreoss | m: multi foo(NaN) { "hi" } ; say foo(NaN) | 18:26 | |
camelia | rakudo-moar 268e9c: OUTPUT«hi» | ||
andreoss | m: multi foo(NaN) { "hi" } ; say foo(0/0) | ||
camelia | rakudo-moar 268e9c: OUTPUT«Cannot call foo(<0/0>); none of these signatures match: (Num $ where { ... }) in block <unit> at /tmp/yGR3s1AAfo line 1» | ||
arnsholt | m: say (0.0).WHAT | ||
camelia | rakudo-moar 268e9c: OUTPUT«(Rat)» | ||
arnsholt | m: say (0/0).WHAT | ||
camelia | rakudo-moar 268e9c: OUTPUT«(Rat)» | ||
arnsholt | Huh. I thought that'd be a Failure | 18:27 | |
ZoffixWin | Was say changed? I recall it was printing at most 200 or 400 elements, now it prints 100000+ | ||
andreoss | m: multi foo(Rat $a) { $a == (0/0) ?? "hi" !! "bye" } ; say foo(0/0) | ||
camelia | rakudo-moar 268e9c: OUTPUT«hi» | ||
andreoss | m: multi foo(Rat $a) { $a ~~ NaN ?? "hi" !! "bye" } ; say foo(0/0) | 18:28 | |
camelia | rakudo-moar 268e9c: OUTPUT«bye» | ||
andreoss | it all seems very vague | 18:29 | |
arnsholt | Oh, it might be that the Rat where both numerator and denominator is 0 is fine, but it crashes when you try to stringify/gistify it | ||
ZoffixWin | m: say NaN == NaN | 18:30 | |
camelia | rakudo-moar 268e9c: OUTPUT«False» | ||
andreoss | m: say NaN ~~ NaN | ||
camelia | rakudo-moar 268e9c: OUTPUT«True» | ||
nadim | what's the minimum run time requirements for rakudo? is it possible to define what subset one wants to run? and finally can one also define a small P6 subset? | ||
18:31
nemo left
|
|||
ZoffixWin | nm, nothing was changed, I was just `say`ing the wrong thing | 18:33 | |
18:33
Ven left
18:38
Ven joined,
nemo joined,
Ven left,
nemo is now known as Guest86512,
Guest86512 is now known as nemo
|
|||
masak | m: say NaN === NaN | 18:38 | |
camelia | rakudo-moar 268e9c: OUTPUT«True» | ||
18:43
cdg left
|
|||
[Coke] | do we have a nativecall example for varargs functions? | 18:43 | |
18:45
andreoss left
|
|||
grondilu | m: role Vector does Positional[Real] {}; my @v does Vector = "foo"; # not sure if this should fail or not | 18:46 | |
camelia | ( no output ) | ||
[Coke] | yay, segv while nativecalling. :) | ||
18:50
leont joined
|
|||
lizmat | masak: are you implying that NaN === NaN should be False ? | 18:52 | |
m: say NaN == NaN # seems correct, and === as well | |||
camelia | rakudo-moar 268e9c: OUTPUT«False» | ||
[Coke] | the nan stuff was settled some time ago, the current way seems right, yes | 18:54 | |
ZoffixWin | I think it was just a response as another alternative to testing for NaN with a === rather than ~~ | 18:55 | |
lizmat | m: say NaN ~~ NaN # just curious | ||
camelia | rakudo-moar 268e9c: OUTPUT«True» | ||
[Coke] | nadim: no, you can't pick and choose which parts you run, unless you use the restricted setting that camelia uses. | 18:56 | |
figuring out what depends on what and what you can selectively load is painful. | |||
stmuk_ | petitions.whitehouse.gov//petition...r-way-life | ||
18:56
nightfrog joined
|
|||
[Coke] | jnthn et al. are working on reducing the memory & cpu usage of perl 6. if you find a particularly egregious usage problem, open a rakudobug with details. | 18:57 | |
ZoffixWin | stmuk_, that's one silly way to [ab]use a government website :P | 18:58 | |
stmuk_ | I'll do a UK version if you do .ca ;) | ||
[Coke] | m: say 799.is-prime | 18:59 | |
camelia | rakudo-moar 268e9c: OUTPUT«False» | ||
19:02
labster left
|
|||
ZoffixWin | m: say 31337.is-prime | 19:02 | |
camelia | rakudo-moar 268e9c: OUTPUT«True» | ||
ZoffixWin | :) | ||
19:04
Ven joined
|
|||
dalek | Iish: 666635d | (Alexander Hartmaier)++ | t/36-pg-array.t: fix mode of t/36-pg-array.t |
19:07 | |
19:21
labster joined
|
|||
nadim | [Coke]: That is a pity, the possibility to create a very small P6 that looks like P6 and that has limited functionality would have allowed for usage in more embedded systems. | 19:26 | |
P6 is not Lua, I know, but it would have been nice to have some Micro-P6 | 19:27 | ||
masak | you mean like nqp? | 19:28 | |
19:29
Ven left
|
|||
leont | I don't think nqp would be an attractive subset | 19:29 | |
nadim | I guess, although I know very little about NQP so I don't know if it is layered so you can use as much as you want/can | ||
Where is the restricted set, camilia uses, defined? | 19:30 | ||
19:32
domidumont left
|
|||
MadcapJake | I don't understand what I'm supposed to do with this error: "This Seq has already been iterated, and its values consumed" | 19:32 | |
timotimo | the restricted setting will not reduce memory footprint | ||
lizmat | nadim: src/RESTRICTED.setting | ||
MadcapJake | I tried both the suggestions (assigning to array and .cache method), still the same error | 19:34 | |
timotimo | you might be looking at the wrong place | 19:35 | |
teatime | MadcapJake: probably need to assign to an array *earlier* | 19:36 | |
MadcapJake | Here's the snippet: « my @raw-tickets = ($body.lines[1..*]».split(': ', 2)).grep(*.elems == 2) » | 19:37 | |
so I tried a .cache before the .grep | |||
and placing an @ before the first parenthesis | 19:38 | ||
timotimo | try after the subscript | ||
nadim | lizmat: thanks | ||
lizmat | MadcapJake: could you try * == 2 or { +$_ == 2 } ? | 19:39 | |
teatime | or cut off the end and make the 2nd line @raw-tickets.=grep(*.elems == 2) ? | 19:40 | |
19:40
labster left
|
|||
MadcapJake | lizmat: that former worked, why is that though? xP | 19:40 | |
19:40
labster joined
|
|||
lizmat | m: say (42,666,1024) == 3 # MadcapJake | 19:41 | |
camelia | rakudo-moar 5bd1e9: OUTPUT«True» | ||
teatime | ah, I think it's not actually the raw-tickets list that got consumed, but the .elems of each element of it | ||
lizmat | and .elems has an optimization that will not cache the list | ||
MadcapJake | lizmat: wow never knew that :) cool! | ||
interesting | 19:42 | ||
teatime | it will only come up when it's a generator/lazy-list | ||
or, well, generator anyway. I dunno the technical definition of lazy-list in perl6, so that may or may not be accurate. | |||
timotimo | just call it "Seq" or "iterator" :) | 19:43 | |
gtodd | element.elems | ||
MadcapJake | Now I can't seem to get my list of tuples to work in a for loop :( | 19:44 | |
timotimo | do you "-> ($a, $b) { ... }"? | 19:48 | |
19:49
molaf left,
ab6tract joined
|
|||
hoelzro .oO( bro, do you even unpack? ) | 19:51 | ||
MadcapJake | timotimo: I did « -> @ ($a, $b) { ... } » and it worked, thanks! | 19:52 | |
19:53
FROGGS left
|
|||
ab6tract | o/ lizmat :) | 19:56 | |
lizmat | ab6tract o/ | ||
ab6tract | so, braindead as I expected :) | ||
lizmat | I'm not sure iterating over the nodes wouldn't make this terribly expensive | ||
Xliff_ | Who do I need to talk to about the error in DateTime::Math? | ||
==> Testing DateTime::Math | |||
Ambiguous call to 'infix:«>»'; these signatures all match: | |||
:(DateTime:D \a, DateTime:D \b) | |||
:(DateTime $a, DateTime $b) | |||
in block <unit> at t/math.t line 27 | |||
ab6tract | yeah that's what i was thinking :S | ||
Xliff_ | Since it seems that rakudo has an internal infix:«>» | 19:57 | |
ab6tract | the other means of distinguishing is if the '*' is at the 0th or the last index | ||
timotimo | Xliff_: supernovus doesn't hang out here much any more, but i'd think he'd respond to issues submitten via github | ||
ab6tract | is computing the length of the $expr string a reasonably cheap operation? | ||
Xliff_ | .seen supernovus | 19:58 | |
yoleaux | I saw supernovus 28 Dec 2015 18:21Z in #perl6: <supernovus> At some point I should look at rakudobrew to replace my moon script that I've been using for the last 4 years. | ||
lizmat | or perhaps checking for "*" is a good middle ground between accuracy and efficieny | ||
ab6tract | |||
Xliff_ | I could have sworn I've seen him here and I haven't been around longer than 2 weeks. | ||
OK. Github it is. | |||
lizmat | ab6tract: yes, nqp::chars is cheap | ||
Xliff_ | Thanks, timo x 2 | ||
ab6tract | ok | ||
Xliff_ | Ah. Looks like the bug was already reported by ZoffixWin | 19:59 | |
Lessee if I have levelled up enough to suggest a fix. | |||
timotimo | yeah, long ago | 20:00 | |
lizmat | Xliff_ do you have a ticket number? | ||
Xliff_ | Yah | 20:01 | |
timo added a comment recently. | |||
github.com/supernovus/perl6-dateti...h/issues/4 | |||
timotimo | "recently" :) | 20:02 | |
Xliff_ | For various values of "recently" yes | ||
timo commented 2 minutes ago | |||
It says that on the page. | 20:03 | ||
timotimo | yeah | 20:04 | |
20:04
perigrin joined
|
|||
Xliff_ | *snarl* | 20:05 | |
Github Desktop is not seeing my recent fork of p6-datetime-math | |||
And these funky Metro-based apps are a BITCH to figure out. | |||
20:05
frew left
|
|||
Xliff_ | Where is mah "refresh" control?!?! >_< | 20:06 | |
20:06
zostay joined
20:08
perlawhirl joined
|
|||
ab6tract | actually, it appears that the multiplication doesn't hit that rule anyway | 20:10 | |
m: my $f = <25 25 25>; $f ~~ s:nth(1 * 3)[\d+] = 42; say $f | |||
camelia | rakudo-moar 5bd1e9: OUTPUT«25 25 42» | ||
20:10
cdg joined,
abraxxa joined
|
|||
ab6tract | whereas with my patch this still warns: | 20:10 | |
Xliff_ | m: say DateTime.now() - 1 | ||
camelia | rakudo-moar 5bd1e9: OUTPUT«Cannot call Numeric(DateTime: ); none of these signatures match: (Mu:U \v: *%_) in block <unit> at /tmp/QZ0lWGoU5T line 1» | ||
ab6tract | m: my $f = <25 25 25>; $f ~~ s:nth(1 * 3)[\d+] = 42; say $f | ||
camelia | rakudo-moar 5bd1e9: OUTPUT«25 25 42» | ||
ab6tract | m: my $f = <25 25 25>; $f ~~ s:nth(1 * *)[\d+] = 42; say $f | ||
camelia | rakudo-moar 5bd1e9: OUTPUT«WARNINGS for /tmp/1bL2r76S8J:Useless use of "*" in expression "1 * *" in sink context (line 1)25 25 42» | ||
Xliff_ | m: say DateTime.now() - DateTime.now().later(:1day) | 20:11 | |
camelia | rakudo-moar 5bd1e9: OUTPUT«Cannot call Numeric(DateTime: ); none of these signatures match: (Mu:U \v: *%_) in block <unit> at /tmp/yNb_WmWJ1_ line 1» | ||
Xliff_ | m: say DateTime.now() < DateTime.now().later(:1day) | ||
camelia | rakudo-moar 5bd1e9: OUTPUT«True» | ||
Xliff_ | m: say DateTime.now() > DateTime.now().later(:1day) | ||
camelia | rakudo-moar 5bd1e9: OUTPUT«False» | ||
Xliff_ | m: say DateTime.now() = DateTime.now().later(:1day) | 20:12 | |
camelia | rakudo-moar 5bd1e9: OUTPUT«Cannot modify an immutable DateTime in block <unit> at /tmp/w1LW4w7rUR line 1» | ||
Xliff_ | m: say DateTime.now() == DateTime.now().later(:1day) | ||
camelia | rakudo-moar 5bd1e9: OUTPUT«False» | ||
Xliff_ | m: say DateTime.now() + DateTime.now().later(:1day) | ||
camelia | rakudo-moar 5bd1e9: OUTPUT«Cannot call Numeric(DateTime: ); none of these signatures match: (Mu:U \v: *%_) in block <unit> at /tmp/C03J07E4tB line 1» | ||
Xliff_ | OK, so the comparison operators exist, but not the arithmetic ones | ||
m: say DateTime.now() cmp DateTime.now().later(:1day) | 20:13 | ||
camelia | rakudo-moar 5bd1e9: OUTPUT«Less» | ||
20:14
darutoko left
|
|||
masak | m: say Less cmp More | 20:16 | |
camelia | rakudo-moar 5bd1e9: OUTPUT«Less» | ||
masak | figures. | ||
m: say More cmp More | |||
camelia | rakudo-moar 5bd1e9: OUTPUT«Same» | ||
masak | well, yeah. | ||
m: say Same cmp More | |||
camelia | rakudo-moar 5bd1e9: OUTPUT«Less» | ||
masak | I, uh. | ||
geekosaur | ? | 20:17 | |
20:18
edehont joined
|
|||
masak | ¿ | 20:19 | |
Xliff_ | Strikethrough is ___x___ for .md files, right? | ||
masak | Xliff_: I don't think strikethrough has dedicated syntax | ||
Xliff_: but <s>...</s> works: gist.github.com/masak/cf081910908c...7ab4aa598e | 20:20 | ||
(usual caveats about inline HTML in Markdown apply) | |||
20:20
kaare_ left
|
|||
Xliff_ | masak: Markdown says ~~xxx~~ | 20:21 | |
github.com/adam-p/markdown-here/wi...Cheatsheet | |||
ab6tract | lizmat: left another note on the github. tl;dr -- the case of multiple '*' in an expression make the check probably more expensive than its worth | ||
20:22
nadim left,
nadim joined
|
|||
lizmat | ab6tract: so maybe the simple does it have "*" is the right tradeoff after all | 20:22 | |
I mean, it's just a warning that may be too persistent | |||
masak | Xliff_: yeah, seems to work in gists too. | 20:23 | |
20:23
abraxxa left
20:25
abraxxa joined,
cpage_ left,
abraxxa left
|
|||
Xliff_ | OK. Next annoying question. How do I run .t files? | 20:27 | |
20:27
dfcarpenterak left
|
|||
tony-o | perl6 -Ilib t/* | 20:27 | |
20:27
abraxxa joined
|
|||
Xliff_ | Thanks. | 20:27 | |
20:27
Skarsnik joined,
sue left
|
|||
tony-o | if you want to run it as a test suite, you can use p5's prove: prove -e 'perl6 -Ilib' t/ | 20:28 | |
or, you can use 'flow' which is pp6 and i'm shamelessly plugging rn | |||
abraxxa | sortiz: ping | ||
20:29
dfcarpenterak joined
|
|||
masak | the `perl6 -Ilib t/*` line doesn't do what you think it does | 20:29 | |
20:29
sue joined
|
|||
timotimo | that's right | 20:29 | |
Xliff_ | Sweet! DateTime::Math tests pass if I remove the comparator operators, since rakudo has them internally. | ||
ab6tract | m: my $f = <25 25 25>; $f ~~ s:nth(1 ** 1)[\d+] = 42; say $f | ||
camelia | rakudo-moar 5bd1e9: OUTPUT«42 25 25» | ||
masak | it takes the n .t files in your t/ directory, and passes the last n-1 to the first | ||
as command-line arguments | |||
ab6tract | lizmat: if you can think of another corner case, I think we are good :) | ||
20:30
edehont left
|
|||
tony-o | masak: thanks for the correction, i made the assumption he'd substitute * with an actual file name | 20:30 | |
which is a stretch - | |||
masak | again, blame shell interpolation, which couldn't care less about whether something is a script to run or an argument to that script | ||
ab6tract | it seems that the optimizer has already chewed through the infix ops by this point | ||
Xliff_ | tony-o, don't assume I'm as smart as you, dude. ^_^ | ||
Although the output is the same with "*" and with filename. | 20:31 | ||
ab6tract | masak: I will take that as a call for a p6sh | ||
:D | |||
Xliff_ | ab6tract, I would love a p6sh | ||
tony-o | p6vim | 20:32 | |
:w | |||
ab6tract | Xliff_: its an idea that has been calling from the depths for a long time | ||
20:33
pierrot joined
|
|||
ab6tract | not something to run as a login shell, though. I've learned via fish that the trade off just isn't worth it. You can configure tmux to launch with the shell of your choosing anyway | 20:35 | |
dalek | Iish: 8133448 | (Alexander Hartmaier)++ | lib/DBDish/Connection.pm6: fix wording |
20:36 | |
ab6tract | also I'm lazy and making it a proper login shell sounds boring as all get out | ||
Xliff_ | .LOL | ||
20:37
sufrostico left
|
|||
Xliff_ | Maybe I will do it as a PR. | 20:37 | |
I am a ways from that level, tho. | |||
timotimo | ipython is a good thing to look at with regards to making a language shell-usable | ||
20:37
espadrine joined
|
|||
ab6tract | Xliff_: so is p6sh ;) | 20:38 | |
20:38
sufrostico joined
|
|||
ZoffixWin | Hm, just done a trial run for my 1-hour long talk and it took me 1h40m to do it, without taking any questions :o tpm2016.zoffix.com/ | 20:42 | |
Xliff_ | github.com/supernovus/perl6-dateti...ath/pull/5 | 20:43 | |
20:43
yqt joined
|
|||
ZoffixWin | Xliff_, unless someone here has perms to merge that, I suggest you try to contact supernovus, as in the past they said they don't check GitHub notifications too often. | 20:44 | |
Xliff_ | Now. Next annoying question: How do I get perl6 to use my DateTime::Math instead of the on in git? | ||
ZoffixWin | Xliff_, if it's implemented, you could try the :auth<blah> adverb | 20:45 | |
Xliff_ | ZoffixWin, if I find his email, I will do so. Thanks. | ||
20:45
sufrostico left
|
|||
ZoffixWin | I guess you can just run panda --force install . in the local copy directory | 20:45 | |
[Coke] | Who were the folks here that were working on music-related p6 projects (other than colomon?) | 20:46 | |
ZoffixWin | RabidGravy with the radio stuff? | 20:47 | |
timotimo | ohmygosh, we know your realname now | 20:49 | |
ZoffixWin | :P | ||
ingy | seen moritz | ||
[Coke] | .seen moritz | 20:50 | |
yoleaux | I saw moritz 14:58Z in #perl6: <moritz> m: say 'filter'.chars - 'grep'.chars | ||
[Coke] | hio, ingy | ||
ingy | hi | ||
tony-o | ih | ||
Xliff_ | ZoffixWin, aaaand all of the DateTime::* modules I was planning to use are in. Thank you, sir. | 20:51 | |
timotimo, whose real name? | |||
timotimo | doesn't matter :) | 20:52 | |
Xliff_ | Seriously... you couldn't guess mine from the nick? | ||
:P | |||
timotimo | your name is clearly Axel Ifoley | ||
Xliff_ | LOL | ||
timotimo++ | |||
ZoffixWin | Xliff_, awhile back I was screaming in here to use 'Zoffix Znet' for my name in some of blogs... But timotimo spotted that on the talk I linked to, I actually use something else and indicate Zoffix Znet is just a pseudonym :) | 20:53 | |
RabidGravy | Actually, all but one of the Audio::* modules on the ecosystem I wrote | ||
Xliff_ | ZoffixWin, oooo I c | ||
timotimo | ZoffixWin: in your big prime/small prime/$num, the parameter name $num is a bit of a lie, because it isn't necessarily a num :) | ||
but i suppose that's fine | 20:54 | ||
ZoffixWin | timotimo, is it a Str? | ||
20:54
perlawhirl left
|
|||
ZoffixWin | Ah, IntStr | 20:55 | |
timotimo | well, if you pass "blah", it won't be an IntStr | 20:56 | |
it could also be a RatStr or a ComplexStr maybe? | |||
ZoffixWin | Yeah. | ||
nadim | Match don't have a real identity, is tat by design? | ||
ZoffixWin | And NumStr | ||
Xliff_ | Hrm. | 20:57 | |
timotimo | you're showing .hyper and .race even though those are currently extremely buggy? | ||
Xliff_ | I still need to submit my Match infix:<eqv> suggestion as a PR. | 20:58 | |
jnthn | ZoffixWin: `Trangle Reduce` => Triangle | ||
timotimo: Hey, if they work for his example ;) | |||
timotimo | well ... :) | ||
jnthn | Talks hang around online for quite a while, though, and those are really high on my list of things to fix. :) | ||
timotimo | also, are we figthing the interpretation that junction "autothreading" means "automatically execute on multiple threads"? | ||
ZoffixWin | timotimo, I advertise them as "**a hint** to use multi threads" | 21:00 | |
timotimo, and yeah, I'm gonna show them and just mention that they're buggy | |||
timotimo | ok | ||
ZoffixWin | Or that the hints to use multi threads currently won't ever get taken | ||
timotimo | ugh, one of those code thingies has a scrollbar even though there's lots of space above and below where it could expand :( | 21:01 | |
the Channels slide | |||
jnthn | ZoffixWin: I glanced through it quickly; nice work! | 21:03 | |
timotimo | "Model6"? | ||
ZoffixWin | Great. Thanks :) And thanks for spotting the typo | 21:04 | |
timotimo | it's called 6model :P | ||
ZoffixWin | Ah lol | ||
jnthn | Yeah, and I'd just talk about it as the Perl 6 Object Model | ||
6model is kinda an implementation detail | |||
ZoffixWin | Alright. | ||
tony-o | leont: i'm in here too re:github issue on TAP::Harness | ||
timotimo | jnthn can probably tell us why the A.^compose can be left out without running into trouble immediately | 21:05 | |
leont | tony-o: more information is welcome :-) | 21:06 | |
tony-o | leont: i'm running into that issue mentioned only when I attempt to run prove6 to test a module | ||
leont | With all modules? | ||
tony-o | yes sir | ||
21:08
sufrostico joined
|
|||
leont | You're up-to-date I assume? | 21:08 | |
tony-o | yes | ||
timotimo | ZoffixWin: i do believe you can also subclass perl6 classes from perl5, but that might be wrong | ||
21:09
JRaspass joined
|
|||
leont tries to reproduce from an installed prove6 (couldn't reproduce from an uninstalled one) | 21:11 | ||
JRaspass | hey all, quick q, can you do non destructive substitution in p6? | ||
MadcapJake | how would i split a string into 80 char lines? | ||
timotimo | ZoffixWin: good slides! | ||
leont | That is, if panda ever finishes installing… | ||
MadcapJake | $s.split(/. ** ^80/) doesn't seem to work | ||
leont | (installing TAP::Harness) | ||
timotimo | JRaspass: yeah, there's the S/../../ and s/.../.../ variants, one of them destroys, the other doesn't :) | 21:12 | |
JRaspass | ah | ||
i just tried r, then quickly scanned the docs | |||
thanks | |||
leont | I think it hangs, WTF | ||
21:13
skids left
|
|||
ZoffixWin | thanks | 21:13 | |
sortiz | \o #perl6 | 21:14 | |
masak | JRaspass: also, .subst(/.../, "...") is non-destructive by default | ||
leont | Been using a full CPU for several minutes now, killed it in the end, WTF | ||
JRaspass | ta | ||
so should this not work? i dont really grok the error | 21:15 | ||
p6: say "foo" ~~ S:g/foo/bar/ | |||
camelia | rakudo-moar 5bd1e9: OUTPUT«Potential difficulties: Smartmatch with S/// can never succeed because the string it returns will fail to match. You can use given instead of ~~. at /tmp/tmpfile:1 ------> 3say "foo" ~~ 7⏏5S:g/foo/bar/False» | ||
JRaspass | obv global isnt needed | ||
geekosaur | JRaspass, the point is that S: does the substitution and then ~~ matches against the *result* | 21:16 | |
it's not like perl 5 where ~~ just specifies an alternative to $_ | |||
er S/// | |||
JRaspass | i think i see, ill do more playing, but thanks. im too used to p5 | 21:17 | |
geekosaur | that behavior is what "given" does, which is why the warning message suggests it | ||
JRaspass | i shall read those docs then | 21:18 | |
leont | tony-o: can't reproduce… | ||
geekosaur | (The error message is admittedly a bit confusing, but I don't think it's possible to make it much better without making it longer than your program probably is :) | 21:19 | |
leont | Do you have a specific dist that fails (preferably without deps) for me to try? | 21:20 | |
21:25
znpy joined
21:26
rindolf left
|
|||
tony-o | leont: Bailador fails consistently for me | 21:27 | |
MadcapJake | why does this: « my @text = gather { loop (my $i = 0; $i < $body.elems; $i += 80) { take $body[$i..$i+79].join('') } } » give me a ton of "Use of Nil in string context" | ||
ZoffixWin | MadcapJake, you're looping past what's available in body | 21:28 | |
MadcapJake | ohh | ||
ZoffixWin | $i -= 80 | ||
MadcapJake | -=? why | 21:29 | |
21:29
perlawhirl joined
|
|||
ZoffixWin | .oO( maybe .rotor: -79 would do the trick? ) |
21:29 | |
masak | 'night, #perl6 | ||
perlpilot | MadcapJake: that looks like you really want to use rotor() | ||
tony-o | or *-1 | ||
geekosaur | I don't think -= is the answer there. the problem is that the last chunk can have up to 79 nonexistent elements? | ||
ZoffixWin | MadcapJake, oh, wait, nevermind. I misread that loop. But the point still stands :) it should be $body.elems - 79 | 21:30 | |
perlpilot | MadcapJake: also, you could change your loop to be ... what ZoffixWin said | ||
leont | tony-o: does it install prove6 correctly? For me it seems it doesn't :-s | ||
ZoffixWin | (or .rotor) | ||
perlpilot either needs to read faster, type faster, or think faster | |||
maybe all three | |||
leont | No wait, I was looking in the wrong place (forgot site), it really should be in .rakudobrew/bin though | 21:31 | |
ZoffixWin | m: ^10 .rotor( 4 => -3).>>.join.say | ||
camelia | rakudo-moar 5bd1e9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/PN44eVpKyRMalformed postfix callat /tmp/PN44eVpKyR:1------> 3^10 .rotor( 4 => -3).7⏏5>>.join.say» | ||
ZoffixWin | wat | ||
perlpilot | MadcapJake: any kind of sliding window thing will make me reach for rotor in P6 | ||
timotimo | rotor is one of the best things ever | ||
ZoffixWin | m: ^10 .rotor( 4 => -3).map(*.join).say | ||
camelia | rakudo-moar 5bd1e9: OUTPUT«(0123 1234 2345 3456 4567 5678 6789)» | ||
ZoffixWin | MadcapJake, ^ somethign like that maybe. Not sure why the hypered version isn't working. | 21:32 | |
21:32
spintronic joined
|
|||
ZoffixWin & | 21:32 | ||
21:32
sufrostico left
|
|||
MadcapJake | I actually went and used grep :D | 21:32 | |
perlawhirl | MadcapJake: i saw your discussion about grep earlier | 21:33 | |
MadcapJake | hehe | ||
perlawhirl | even as someone who is familiar with grep, i have been thinking about the same thin | ||
MadcapJake: see gist.github.com/0racle/ea0523759e2da15758d4 | |||
it's a language design proposal/pipe dream :D | |||
leont | This thing is getting weirder and weirder :-s | 21:34 | |
perlpilot would add filter as an alias for grep. | 21:35 | ||
MadcapJake | perlawhirl++ I think that's a great proposal! | ||
perlpilot | (filter is what many other languages use for the same concept) | ||
teatime | mreah... it'd be the very first thing I've seen in p6 w/ an alias identical to another feature/method. | ||
not sure it's worth it. | |||
geekosaur | my problem with filter remains the same: some languages mean filter-and-select, others mean filter-out | ||
21:36
AlexDaniel joined
|
|||
geekosaur | so I always have to look up which one it is in the language I'm working with | 21:36 | |
teatime | heh, grep could have been called .where :) | ||
perlpilot | geekosaur: that's a very good point. | ||
MadcapJake | perlawhirl: I agree with geekosaur on this, filter has some baggage :P | ||
ugexe | they are there. .abspath/.absolute | ||
21:36
TEttinger joined
|
|||
perlawhirl | MadcapJake: thanks, you're the first one to tell me it's a good idea. i really like it, but people are resistant to change :D | 21:36 | |
MadcapJake | teatime: but as perlawhirl points out, it's quite similar in use | ||
awwaiid | I love that the proposal comes with a module to use it | 21:37 | |
teatime | hmm? | ||
21:37
buharin left,
dupa left
|
|||
perlpilot | perlawhirl: people *here* are resistant to change? Surely you jest! ;) | 21:37 | |
perlawhirl | i literally wrote the module only a couple days ago. i learned how to augment classes along the way... yay! | ||
awwaiid | nice! | ||
geekosaur | I am not sure how confusing the multiple uses of "where" would be, but I think we already have a few things like that? | 21:38 | |
lizmat wonders whether "proto method where(|c) { self.grep(|c) }" wouldn't be enough ? | |||
tony-o | leont: yea prove6 gets installed correctly but i have experienced it hanging | ||
perlawhirl | lizmat: I am new to this augmenting thing, so any improvements/suggesstions are welcome | ||
awwaiid | One of the things I've always loved about Perl5 has been this sort of mallability, so that even if it isn't accepted into the core it can be used. | ||
tony-o | leont: i'm also using zef to install | ||
awwaiid | (and other dynamic langs) | 21:39 | |
MadcapJake | where would a submission like perlawhirl's go to be considered for core? | 21:40 | |
awwaiid | perlawhirl: the |c is the magic lizmat is highlighting, it slurps all the arguments. maybe you wouldn't have to special-case the different types of args | ||
MadcapJake | I really think that's great and as outlined, it's not as if there isn't a precedent of multiple names (heck even the unicode/texas-style is a similar principle) | ||
perlpilot | perlawhirl++ btw. Short of getting concensus among the Perl 6 devs that it just be added to the language, having a module make it easier for it to be used and proofed in the wild. | 21:41 | |
perlawhirl | lizmat: awwaiid: the additional multi is mainly so failures report it came from '.where' instead of '.grep' | ||
lizmat | fwiw, I like the idea of "where" instead of "grep" | 21:43 | |
perlawhirl | lizmat++ thanks =) | ||
as far as i'm aware, 'where' is not used anywhere else other than defining subsets, so i don't think there should be any clash | 21:44 | ||
geekosaur | in terms of the language there isn't. in terms of cognitive load I'm a little worried | 21:45 | |
hoelzro | perlawhirl: signatures, but that could be considered a...umm, subset...of subsets | ||
lizmat | I hope TimToady will also shine his light on this | ||
geekosaur | but the more I think about it, the more I think "grep" is a downright lousy name and should go away | ||
tony-o | leont: getting dinner and going back to the hotel, bbiab | 21:46 | |
RabidGravy | please all feel free to build a time machine and alter the software that uses .grep | 21:47 | |
Xliff_ | grep() is here to stay. It has too much history and there is too much baggage to get rid of it entirely. | 21:48 | |
I love perlawhirl's where. | |||
geekosaur | well. not really saying it should be removed. flagged as deprecated for new code | ||
Xliff_ | perlawhirl++ | ||
perlawhirl, you should probably put this into the ecosystem. | |||
hoelzro | I am used to grep from Perl 5, and I really like the idea of .wehre | ||
*where | |||
geekosaur | I know just removing it outright is not viable, but it should not be recommended practice | ||
Xliff_ | geekosaur, you would get significant feedback for even suggesting deprecation. | 21:49 | |
RabidGravy | it's used 36 times in 14 of my modules fwiw | ||
Xliff_ | s/feedback/negative feedback/ | ||
lizmat | fwiw, I think .grep should be a synonnym for .where, not the other way around :-) | ||
geekosaur | ^ yes | ||
lizmat | but for now, I'll sleep on it a bit more... | ||
Xliff_ | lizmat: split hairs much?! ^_^ | ||
ugexe | i needs to be 3 letters long so it aligns better with map when you chain them on multiple lines >:( | ||
lizmat | so good night, #perl6! | 21:50 | |
Xliff_ | ugexe++ LOL | ||
lizmat | ugexe: .whr :-) | ||
Xliff_ | I am so for pretty code. | ||
lizmat | & | ||
timotimo | grp | ||
well, that could also be for "group" | |||
21:50
sue left
|
|||
Xliff_ | lizmat, so does that mean that "perlawhirl" becomes "prl a wrl"? | 21:51 | |
21:51
perlawhirl left
|
|||
Xliff_ | timotimo, no... everyone knoes that "group" would become "gro" | 21:51 | |
We are no longer bound by our unix roots. | |||
21:55
itaipu left
21:56
perlawhirl joined
|
|||
perlawhirl | lost signal for a bit there (i'm on a train) | 21:56 | |
MadcapJake | hmm this line splitter doesn't work very well...cuts words and seems to gobble up any existing newlines | ||
perlawhirl | Xliff: i will start looking into adding it to the ecosystem today | ||
teatime | MadcapJake: there is zero reason to use a regex to split on 80-char boundaries. | 21:57 | |
Xliff_ forks nom | |||
MadcapJake | teatime: I'm not, I'm turning to array and splitting with an ugly old loop :P | ||
Xliff_ | lizmat, so does that mean that "perlawhirl" becomes "prl a wrl"? | ||
geekosaur | we don't use KSR33s any more, no need to stick to short names | ||
Xliff_ | s/lizmat/perlawhirl/ | ||
perlawhirl | tbh, it's really one of those ideas i WISHED i'd thought of before xmas :( | 21:58 | |
teatime proposes renaming unshift to ushift | |||
Xliff_ doesn't see what losing the "n" gains. | |||
teatime, did "n" beat you as a child? ^_^ | |||
teatime | Xliff_: conceptual consistency w/ things people are already familiar with (umount) | ||
teatime goes off to write a proposal. | 21:59 | ||
perlawhirl | teatime is probably a unix guy, eg umount | ||
ahh, he just said it | |||
teatime | perlawhirl++ | ||
Xliff_ | I'm a unix guy and I still grok "unshift" | ||
teatime | Xliff_: it's a joke, son. | ||
Xliff_ | teatime, I know. And I am joking right back in the same vein. | ||
teatime | about how ridiculous umount is (and yes, I know how the name originated) | ||
Xliff_ | teatime, O! Then we are in agreement. | 22:00 | |
MadcapJake | so wrapping text is hard, I think I'm just gonna require users to do is by hand if they want :P | ||
22:00
Peter_R joined
|
|||
teatime | MadcapJake: lol. launch $EDITOR :) | 22:00 | |
Xliff_ | teatime, Seriously! In my mind I am always saying "unmount" but the fingers have adjusted to removing the "n". | ||
It only happens at the command prompt, thougn. | |||
saaki | perlawhirl++ | 22:01 | |
Xliff_ | My mind has trained itself to do a magical "import unixisms" if it sees "#" | ||
teatime | I say "you mount" but I never enjoy having to tell someone the command out-loud. | ||
MadcapJake | teatime: it's not CLI it's a webapp :) | ||
Xliff_ | teatime, LOL | ||
teatime | MadcapJake: ahh, that could be hard tehn, I suppose :) | ||
22:01
frew joined
|
|||
Xliff_ | So, does anyone want to comment on gist.github.com/Xliff/2907106c84e9eb14d4c0 before I start the PR process? | 22:02 | |
22:03
plk joined,
sufrostico joined
|
|||
hoelzro | Xliff_: you could do ?all($a.to eqv $b.to, $a.from eqv $b.from, ... etc) instead of the ands, but seems legit | 22:04 | |
22:04
plk left
22:08
autarch left,
wamba left
22:10
Sgeo joined
22:11
autarch joined
22:12
kid51 joined
22:13
sufrostico left
22:14
RabidGravy left
22:16
jamesalbert joined
|
|||
Xliff_ | hoelzro, is there a performance improvement using that method? | 22:16 | |
hoelzro | Xliff_: it's just a personal preference of mine for readability | 22:17 | |
Xliff_ | I think it's already fairly readable. | ||
The ?all() syntax is a little new to me. | |||
hoelzro | I'm not saying it's not readable, I just prefer all() =) | 22:18 | |
22:18
itaipu joined
|
|||
jamesalbert | yo I'm writing tests for a module I wrote. In each test, I want to import from a common Util.pm6 file. In Util.pm6 I want to import from my module. However, I can't do that because I `use lib '.'` to import t::Util, but I can't `use lib 'lib'` inside my Util package (it gives an error saying so). Can I do what I'm trying to do or is there a perl6ish way of doing this? | 22:19 | |
22:20
JRaspass left
|
|||
timotimo | hoelzro: using ?all is probably super slow. i'd suggest [&&] instead | 22:21 | |
hoelzro | ah, good idea | ||
22:21
skids joined
|
|||
Skarsnik | jamesalbert, just pass -I lib to perl6 when running a test | 22:22 | |
Xliff_ | timotimo, Isn't that what I'm doing? | ||
jamesalbert | thanks Skarsnik! | 22:23 | |
hoelzro | Xliff_: timotimo means [&&] ($a, $b, $c, $d) instead of $a && $b && $c && $d | ||
Xliff_ | Yikes! | 22:24 | |
I didn't know that. | |||
Xliff_ tests | |||
22:27
znpy left
|
|||
Xliff_ | Nice! Thanks. | 22:27 | |
22:28
znpy joined
|
|||
Xliff_ | OK. Implementation now uses [&&]. Thanks for the suggestion | 22:28 | |
22:29
spider-mario left
|
|||
Xliff_ | OK. gist updated. | 22:32 | |
I will probably create the PR sometime tonight. | |||
22:33
perlawhirl left
22:46
teatime left,
dvinciguerra__ left
22:51
jamesalbert left
22:52
ab6tract left
22:57
tardisx joined
22:58
perlawhirl joined
23:02
BenGoldberg joined
23:04
DarthGandalf joined,
abraxxa left
23:07
kurahaupo left
23:15
espadrine left
|
|||
Xliff_ | \o/ | 23:25 | |
www.theverge.com/2016/3/30/11331014...h#comments | |||
Microsoft is adding Ubuntu to Windows | |||
WTF? | |||
23:26
BenGoldberg left
23:27
BenGoldberg joined,
sufrostico joined
23:30
Skarsnik left
23:32
itaipu left
|
|||
Hotkeys | Xliff_: whaaaat | 23:34 | |
I might actually have to upgrade to W10 | |||
23:41
jack_rabbit joined
23:45
cdg left,
cdg joined
|
|||
kmwallio | I think it's shipping in the next Windows Insider builds | 23:46 | |
insider.windows.com/ | |||
23:48
jack_rabbit left
23:50
cdg left
|
|||
sortiz | .tell abraxxa Changes that only touch DBDish/Oracle* can be pushed directly to master | 23:52 | |
yoleaux | sortiz: I'll pass your message to abraxxa. | ||
23:54
leont left,
emdashcomma joined
23:57
znpy left
|