|
»ö« 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 Zoffix on 25 May 2018. |
|||
| Bowlslaw | lol | 00:01 | |
|
00:14
markoong left,
markoong joined
00:15
markoong left
|
|||
| Bowlslaw | lol @ this one-liner `return 'rgb(' ~ (1..3).map({ (^256).pick }).join(',') ! ')';` | 00:15 | |
| any advice for reading that thing...? | |||
|
00:15
markoong joined,
skids joined
|
|||
| Bowlslaw | it concats rgb with 1 though 3 | 00:15 | |
| and a random number from 0 to 256 | 00:16 | ||
| and then joins then with a comma | |||
| and then takcs on a ) | |||
| why the 1..3? | |||
|
00:20
markoong left
00:21
Bowlslaw left,
Bowlslaw joined
|
|||
| tobs | Bowlslaw: it maps the range 1..3 through a function producing a random value between 0 and 255. The 1..3 is just there to produce 3 random values. | 00:22 | |
| and the last "!" should be a "~", no? | 00:23 | ||
| geekosaur | m: 'rgb(' ~ (1..3).map({ (^256).pick }).join(',') ~ ')' | ||
| camelia | WARNINGS for <tmp>: Useless use of "~" in expression "~ (1..3).map({ (^256).pick }).join(',') ~ ')'" in sink context (line 1) |
||
| geekosaur | whoops | 00:24 | |
| m: say 'rgb(' ~ (1..3).map({ (^256).pick }).join(',') ~ ')' | |||
| camelia | rgb(216,216,160) | ||
| geekosaur | m: say 'rgb(' ~ ^3 .map({ (^256).pick }).join(',') ~ ')' | ||
| camelia | rgb(82,203,147) | ||
| Bowlslaw | er yeah, I miscopied it | 00:25 | |
| tobs | m: say 'rgb(' ~ (145..147).map({ (^256).pick }).join(',') ~ ')' | ||
| camelia | rgb(234,74,127) | ||
| tobs | it's just the length that matters | ||
| I think I'd prefer | 00:27 | ||
| m: say 'rgb(' ~ ((^256).pick xx 3).join(',') ~ ')' | |||
| camelia | rgb(155,83,43) | ||
|
00:27
mcmillhj joined
|
|||
| b2gills | m: say "rgb({( ( ^256).pick xx 3 ).join(',') })" | 00:28 | |
| camelia | rgb(63,116,192) | ||
| b2gills | m: say "rgb({ (^256).roll(3).join(',') })" | ||
| camelia | rgb(107,84,63) | ||
| b2gills | m: say "rgb({ uint8.Range.roll(3).join(',') })" | 00:29 | |
| camelia | rgb(178,28,110) | ||
| tobs | hah, that's neat | 00:30 | |
| m: say Int.Range | 00:31 | ||
| camelia | -Inf^..^Inf | ||
| b2gills | m: $_ = (uint8.Range) but role { method Str () { self.roll(3).join(',') }}say "rgb($_)" | 00:32 | |
| camelia | rgb(49,170,188) | ||
|
00:32
mcmillhj left
|
|||
| b2gills | m: $_ = (uint8.Range) but role { method Str () { self.roll(3).join(',') }}say "rgb($_)" xx 5 | 00:32 | |
| camelia | (rgb(152,115,12) rgb(146,146,226) rgb(7,51,13) rgb(149,149,96) rgb(112,38,209)) | ||
|
00:33
_uzl left
00:36
kurahaupo joined
|
|||
| Bowlslaw | Well, this is odd | 00:37 | |
| I'm looking at CHapter 10: Generating a Tree Map in Moritz's Perl 6 Fundamentals, and when I try to run his code, I get: | 00:39 | ||
| Undeclared name: File used | |||
| and undeclared routine: tree | |||
| But I went over the code carefully and I copied it exactly | |||
| tobs | Bowlslaw: start reading the chapter from the start. I just had a cursory glance but it seems File and tree are developed in there. | 00:43 | |
| Bowlslaw | really? | 00:44 | |
| @_@ | |||
| OH | |||
| yeah... | |||
|
00:48
mr_ron joined
00:54
lookatme joined
00:59
mcmillhj joined
01:12
Kaiepi joined
01:15
zachk left
|
|||
| Bowlslaw | Heh, thse SVG programs are pretty neat | 01:24 | |
|
01:40
molaf left
01:44
ChoHag left
01:45
mcmillhj left
01:47
mr_ron left
|
|||
| Juerd | m: class Z does Iterable { method iterator (--> Iterator:D) { class :: does Iterator { method pull-one { die } } } }; my $z = Z.new; for $z { say $z } | 01:47 | |
| camelia | Z.new | ||
| Juerd | Why does that not die (i.e. why is .iterator not called)? | 01:48 | |
| Ah, have to "does Positional" apparently | 01:49 | ||
| And forgot a .new | |||
|
01:49
mr_ron joined
01:50
webstrand joined
|
|||
| Juerd | s/does Positional/does Iterable/ | 01:51 | |
| Hm, no. | |||
| Juerd looks again at his working and non-working code, side by side. | |||
| Ah, one has "is List" | |||
|
01:53
molaf joined
01:55
webstran- joined
|
|||
| lookatme | :) | 01:55 | |
|
01:56
webstrand left,
webstran- is now known as webstrand
|
|||
| Bowlslaw | Can someone help me read this method definition? I do not understand the syntax | 01:57 | |
| method parse(DOM::Tiny:U: Str $ml, Bool :$xml) returns DOM::Tiny:D | |||
| My guess is... | |||
| It accepts a DOM Tiny Object, and a string, and an optional bool? | 01:58 | ||
| and return a dom tiny object? | |||
|
01:58
kalkin-- joined
|
|||
| geekosaur | it requires a type object, not an instance | 01:58 | |
| meaning it's a "class method" instead of an "instance method" | 01:59 | ||
| DOM::Tiny.parse(...) | |||
| lookatme | Bool :$xml is an named argument | 02:00 | |
| geekosaur | so in this case, you might say DOM::Tiny.parse($doc, :xml) which presumably tells it to parse it as XML / XHTML instead of as HTML | 02:01 | |
| MasterDuke | the ':' at the end of the first parameter means it's the invocant when you use the typical 'something.somemethod' calling syntax | ||
|
02:02
kalkin- left
02:04
_uzl joined
02:05
mcmillhj joined
02:08
subroot left
|
|||
| Bowlslaw | thanks | 02:08 | |
|
02:09
mcmillhj left
02:18
_uzl left
02:29
Schepeers left
02:30
Schepeers joined
|
|||
| Bowlslaw | When matching a regex, you want to use '~~' smartmatch? | 02:34 | |
|
02:34
Sgeo joined
|
|||
| Bowlslaw | Haha, cool | 02:36 | |
| I instinctively shied away from smartmatch. It's fixed in Perl 6 | 02:37 | ||
|
02:39
mr_ron left
02:46
mcmillhj joined
02:51
mcmillhj left
02:53
Bowlslaw left
02:54
ufobat___ joined
|
|||
| [Coke] | cros and prawns. | 02:54 | |
| geekosaur | "and pawns" works better :p | 02:55 | |
|
02:57
ufobat_ left
02:58
xtreak joined,
lizmat left
03:00
EuAndreh[m] joined
03:03
mcmillhj joined
03:07
BenGoldberg joined
03:08
mcmillhj left,
Tison joined
03:11
xtreak left,
mr_ron joined
03:12
Xliff joined
|
|||
| Tison | \o | 03:14 | |
|
03:30
perlpilot left
03:31
mcmillhj joined
03:36
mcmillhj left,
webstrand left
03:38
webstrand joined
03:45
mcmillhj joined
03:50
mcmillhj left
03:52
census joined
03:53
xtreak joined
|
|||
| census | hi! anybody around? | 03:53 | |
|
03:56
mr_ron left
|
|||
| Xliff | o/ | 04:00 | |
| census: What's up? | |||
|
04:02
xtreak left
04:03
mr_ron joined,
Xliff left
04:06
kaare_ left
04:10
mcmillhj joined,
mr_ron left
04:14
mcmillhj left
04:33
Tison left
04:40
mcmillhj joined
04:45
mcmillhj left
04:50
kaare_ joined
04:53
curan joined
05:00
Kaiepi left
05:04
jmerelo joined
05:06
Kaiepi joined
05:09
ufobat___ left,
skids left
|
|||
| jmerelo | o/ | 05:10 | |
| Kaiepi | \o | ||
|
05:12
Actualeyes joined
05:13
mcmillhj joined
05:15
sauvin joined
05:17
lizmat joined
05:18
mcmillhj left
|
|||
| masak | census: hi! | 05:20 | |
| census | hi masak ! | ||
| masak | long time no census! :D | ||
| census | i know masak! | ||
| i wrote some perl6 code recently. it was wonderful | 05:21 | ||
| masak | I know, right? :P | ||
| census | perl6 has really evolved | ||
| masak | oh, I thought you meant the constant background wonder of writing Perl 6 | ||
| census: maybe it's you who evolved ;) | 05:22 | ||
| census | yes hopefully :) | ||
| perl6 can now do so many features that a few years ago it didn't have libraries for | |||
|
05:23
AlexDaniel left
|
|||
| masak | oh, the libraries side. yes, that has definitely improved. | 05:23 | |
|
05:23
AlexDaniel joined
|
|||
| census | masak if you have a quick second i'm in the help-census channel you once created | 05:23 | |
| masak | I'm there, buddy. | 05:24 | |
| jmerelo | masak: was the census published somewhere? | 05:27 | |
| census | haha jmerelo | 05:28 | |
|
05:28
mcmillhj joined
|
|||
| jmerelo | census: OK, I get it. I really thought there was a #perl6 dev census :-) Don't know why I didn't see the nick. Too early, too little tea, maybe | 05:29 | |
| AlexDaniel: Did you see my last comments to D#2124? | 05:30 | ||
| synopsebot | D#2124 [open]: github.com/perl6/doc/issues/2124 [trap] Potential trap with concatenating Bufs/Blobs, [~] returns a Str | ||
| jmerelo | BTW, there _is_ a perl6 dev survey, just in case you haven't filled it up yes docs.google.com/forms/d/e/1FAIpQLS...g/viewform | 05:33 | |
|
05:33
mcmillhj left,
MasterDuke left
05:34
wamba joined
05:35
BenGoldberg left
|
|||
| Geth | doc: 1f01f2924b | (JJ Merelo)++ | doc/Language/regexes.pod6 Adapts the example #2126 Thanks to @mldevine and @pmichaud for suggestions |
05:36 | |
| synopsebot | Link: doc.perl6.org/language/regexes | ||
|
05:38
xtreak joined
05:47
mcmillhj joined
05:50
molaf left
05:51
mcmillhj left
05:56
profan joined
06:00
nightfrog joined
06:02
psychoslave joined,
damnlie joined
06:03
mahafyi left
06:10
mahafyi joined
06:12
pmurias joined
|
|||
| Geth | doc: 41a6409937 | (JJ Merelo)++ | doc/Type/Proc.pod6 Adding example of stream (not dynamic stream variable) inheritance I've adapted @bdfoy's example, included a bit of @jnthn explanation, and kinda managed to make some sense. This would close #1226 if everyone is satisfied with it. This might be a trap instead of a part of the documentation. If needed, a trap can be added and linked to this explanation. |
06:13 | |
| synopsebot | Link: doc.perl6.org/type/Proc | ||
|
06:16
sno left
06:18
espadrine left
06:24
mcmillhj joined
06:27
mahafyi left
06:29
mcmillhj left
06:30
xtreak_ joined
06:33
xtreak left
06:35
xtreak_ left
06:41
mcmillhj joined
06:44
darutoko joined
06:46
mcmillhj left
06:51
mr_ron joined
07:03
mr_ron left
07:06
HaraldJoerg joined
07:07
xtreak joined
07:08
xtreak left
07:15
mcmillhj joined
07:20
mcmillhj left
07:24
sno joined
07:28
ufobat joined
07:36
domidumont joined
07:41
domidumont left,
robertle_ joined,
domidumont joined
07:44
sena_kun joined
07:53
mcmillhj joined
07:58
mcmillhj left
|
|||
| ecocode | weird that pandoc doesn't detect h1,2,3 tags in docs.perl6.org/perl6.html when generating a toc | 07:59 | |
|
08:02
xinming joined,
lizmat left
08:07
dakkar joined
08:09
AlexDaniel left,
Ven` joined,
zakharyas joined
08:16
xinming left
08:18
mcmillhj joined
08:20
lizmat joined
08:22
[Sno] joined,
mcmillhj left
08:23
zakharyas left,
sno left
08:30
[Sno] left
08:33
rindolf joined,
scimon joined
08:34
domidumont left
08:37
mcmillhj joined,
[Sno] joined
08:42
mcmillhj left
08:43
domidumont joined
|
|||
| lookatme | m: qx{ ls } | 08:45 | |
| camelia | qx, qqx is disallowed in restricted setting in sub restricted at src/RESTRICTED.setting line 1 in sub QX at src/RESTRICTED.setting line 11 in block <unit> at <tmp> line 1 |
||
|
08:45
zakharyas joined
|
|||
| lookatme | evalable6: qx { ls } | 08:45 | |
| evalable6 | |||
| lookatme | evalable6: qx { ls . } | ||
| evalable6 | |||
| lookatme | evalable6: qx { ls / } | ||
| evalable6 | |||
| lookatme | hmm, why the qx/QX add new line to the result of `ls` | 08:46 | |
| and the shell doesn't | |||
| dd qx("ls") # output "foo\nbar\n" | 08:47 | ||
| dd shell("ls") # output "foo bar" | |||
| evalable6 | 3rdparty bin config-default.json config.json CONTRIBUTING.md data irc-backup.tar.gz junk l… |
||
| lookatme, Full output: gist.github.com/7fa4e8f3cb72b3119e...9335f22d5a | |||
| timotimo | jmerelo: is it okay to publish the free-text-responses verbatim in the user survey response like that? i don't seem to recall the form saying they'd be publically visible, though perhaps that should just be assumed? | 08:56 | |
| jmerelo | timotimo: GDPR strikes back... | ||
|
08:56
mcmillhj joined
|
|||
| jmerelo | timotimo: I think it's OK. It does not include practical information, right? | 08:56 | |
| I mean personal information. | |||
| timotimo: we can delete some response or change it if it does. | 08:57 | ||
| El_Che | it looks ok to me | ||
|
09:01
mcmillhj left
|
|||
| timotimo | it doesn't seem possible to read the responses that have only 1 vote in the analytics that have bar charts | 09:02 | |
| you can only get them displayed partially if you hit the exact pixels, which is difficult for me :| | |||
| jmerelo | timotimo: unfortunately, with this display there's no other way, and we're wary of sharing the full CSV right now. We'll do it eventually... | 09:03 | |
| timotimo: and we can share privately with you if you want, of course. | |||
|
09:31
mcmillhj joined
09:32
jeromelanteri joined
09:36
labster left,
mcmillhj left
09:40
markoong joined,
labster joined
09:50
mcmillhj joined
|
|||
| tyil | tadzik: in Terminal::ANSIColor, %attrs doesn't contain italic, but it does contain bold and underline, is this a bug or intended? | 09:53 | |
| tadzik | tyil: oh, there's italics in the terminal? :) | 09:54 | |
| tyil | you do have ITALIC as a constant | ||
| tadzik | oh hm | ||
| tyil | (and that one works on my term) | ||
| tadzik | lemme see | ||
| oh indeed | 09:55 | ||
|
09:55
[Sno] left
|
|||
| tyil | some terminals apparently even support blinking text | 09:55 | |
| tadzik | it looks like an omission | ||
| tyil | but please dont support that | ||
|
09:55
mcmillhj left
|
|||
| jmerelo | tyil: I was writing the same :-) | 09:55 | |
| tadzik | :D | ||
| hey, we're not python! If somebody wants to hang themselves.... | 09:56 | ||
| tyil | hehe | ||
| jmerelo | tadzik: there should be more than one way to hang ourselve... | ||
| tadzik | I think it should be there, but I'm going to tactfully sit here and wait for patches rather than adding it in :P | ||
| tyil | I just noticed this particular thing missing as I'm redoing Pod::To::Pager to clean up the codebase a little, and to improve the footnote rendering | ||
| tadzik | jmerelo: and one of them could be by blinking text :P | ||
| jmerelo | tadzik: :-) | ||
| tadzik | in general, all my modules should be considered community modules and are up for adoption :) | 09:57 | |
| tyil | I can put in a PR to add the italic line if you want :p | 09:58 | |
| tadzik | sure :) But do pester me to merge it, or I'll forget as always | ||
| tyil | I know that feeling | 09:59 | |
| tadzik: pester pester github.com/tadzik/Terminal-ANSIColor/pull/15 | 10:03 | ||
| it worked on my machine(tm), but feel free to do some more testing | |||
| I like how there's a 3 year old issue to add tests :p | 10:04 | ||
| also, I did not bump the version in META6.json yet | 10:05 | ||
|
10:05
domidumont left
|
|||
| tadzik | oh, I guess that'd be nice | 10:06 | |
| tyil | the version bump, or the tests? | 10:07 | |
| tadzik | the version bump :) | ||
|
10:07
mcmillhj joined
|
|||
| tyil | I'll add that | 10:07 | |
| tadzik | thanks | ||
| most of my module work was done before version were really a thing :P | 10:08 | ||
|
10:08
xinming joined
|
|||
| tyil | done there | 10:08 | |
| I would recommend semver for pretty much everything ever | |||
| and a CHANGELOG to indicate what exactly changes, and have each PR submitter update the CHANGELOG themselves, so you dont have to worry about it | 10:09 | ||
|
10:11
Actualeyes left,
Khisanth left
10:12
mcmillhj left
10:27
Kaypie joined,
Kaiepi left
|
|||
| sjn | o/ | 10:29 | |
|
10:29
jeromelanteri left
|
|||
| jmerelo | sjn: hi! | 10:29 | |
| sjn | quick question; why does Str.split("") add a empty strings to the beginning and end of it's result? | 10:30 | |
| m: dd "abc".split("") | 10:31 | ||
| camelia | ("", "a", "b", "c", "").Seq | ||
| tyil | because there's an empty string before and after the string you're splitting as well | ||
| m: dd "abc".comb(); | |||
| camelia | ("a", "b", "c").Seq | ||
| tadzik | sjn: try .comb() | ||
| ah :) | |||
| timotimo | split also has :skip-empty | 10:32 | |
| jmerelo | sjn: probably splits on start-letter or end-letter | ||
| sjn | yeah, found :skip-empty; I just found it curious that the default was to add those empty strings | ||
| jmerelo | dd "abc…þ".split("") | 10:33 | |
| evalable6 | ("", "a", "b", "c", "…", "þ", "").Seq | ||
|
10:33
HaraldJoerg left
|
|||
| sjn | tadzik: yeah, comb is better :) | 10:33 | |
| timotimo | it splits where-ever the empty string matches. unlike length-one strings it also matches on positions 0 and $t.chars | ||
|
10:34
HaraldJoerg joined
|
|||
| sjn thinks .comb should be mentioned in a "see also" section in the .split docs :) | 10:34 | ||
| tadzik | that's a good idea | 10:35 | |
| sjn | ...which it appatently does! | ||
| apparently* | |||
| jmerelo | sjn: create an issue :-) | ||
| sjn | it's just "invisible" | 10:36 | |
|
10:41
Kaypie left,
Merfont joined
|
|||
| tadzik | tyil: merged, thanks :) | 10:43 | |
| tyil | tadzik: thanks :> | ||
| now I can make my codebase more consistent again | 10:46 | ||
|
10:55
ilogger2 joined,
ChanServ sets mode: +v ilogger2,
mcmillhj joined
|
|||
| masak | sjn: maybe the fact that your separator argument is the empty string is obscuring from how sensible it is to include empty strings in the returned list | 10:57 | |
| m: say ",,,1,2,,3,,".split(",") | |||
| camelia | ( 1 2 3 ) | ||
| masak | m: say ",,,1,2,,3,,".split(",").perl | ||
| camelia | ("", "", "", "1", "2", "", "3", "", "").Seq | ||
| masak | sjn: there are three empty strings in the beginning here because there are three separators without any elements before the first element | 10:58 | |
| sjn: the same argument can be extended to when the separator is "" | |||
| sjn | yep, got that :) | 10:59 | |
| makes sense when thinking about it; just a little confusing when bumping into it the first time | 11:00 | ||
|
11:00
mcmillhj left
|
|||
| masak | agreed :) | 11:14 | |
|
11:15
mcmillhj joined
|
|||
| masak | sjn: I think Perl 5 mostly has the inconsistency put in because .split("") is often used as .comb(/./) | 11:15 | |
| and then an initial empty string is surprising | 11:16 | ||
| Geth | doc: 0173be5d4a | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Type/Cool.pod6 Make `comb` a more obvious suggestion in `split` docs |
||
| synopsebot | Link: doc.perl6.org/type/Cool | ||
| masak | once you know about .comb, though, using .split in that way feels like a misuse | ||
| timotimo | agreed | ||
|
11:18
Zoffix joined
|
|||
| Zoffix | lookatme: I think you're measuring incorrectly. `dd shell("ls")` would not dump the output of `shell`, as that would just be put directly into STDOUT. You need to use `dd (shell :out, "ls").out.slurp` in which case I get the trailing newline for both qx// and shell() | 11:19 | |
|
11:20
mcmillhj left
|
|||
| Zoffix | lookatme: in fact, Rakudo's implementation of qx// uses shell() under the hood: github.com/rakudo/rakudo/blob/e6e9...#L247-L251 | 11:21 | |
| .tell Bowlslaw smartmatch was never broken in Perl 6 :) Perl 5 borrowed the concept, but it failed there because of lack of types. There are also several methods to do the regex stuff that in Perl 5 is done with ops: .match(), .subst(), .= subst(), .trans() | 11:27 | ||
| yoleaux | Zoffix: I'll pass your message to Bowlslaw. | ||
|
11:28
pmurias joined
11:29
mahafyi joined,
Zoffix left
11:31
sno joined
11:34
mcmillhj joined
11:36
dct joined,
psychoslave joined
11:40
mcmillhj left
11:41
Ven` joined
11:50
dct left
11:52
mrdside joined
11:53
mrdside left
11:54
mcmillhj joined
11:57
xinming joined
11:59
mcmillhj left
12:04
pmurias left
12:09
pmurias joined,
mr_ron joined
12:14
mr_ron left
|
|||
| jmerelo | squashable6: status | 12:24 | |
| squashable6 | jmerelo, Next SQUASHathon in 8 days and ≈21 hours (2018-07-07 UTC-12⌁UTC+14). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day | ||
|
12:24
pmurias left
12:31
pmurias joined
12:42
sno left
12:46
psychoslave left,
mcmillhj joined
12:47
mcmillhj left
12:48
brrt joined
12:51
mcmillhj joined
12:53
jeromelanteri joined
12:54
kanbas joined
12:59
zakharyas joined
13:06
psychoslave joined
13:07
sno joined
13:12
hankache joined
13:36
AlexDaniel joined
13:41
brrt left
|
|||
| hankache | Hello #perl6 | 13:42 | |
| I made a nanorc file for Perl 6. Anyone using nano as his/her text editor would be able to use it to get syntax highlighting for Perl 6: github.com/hankache/perl6.nanorc | 13:45 | ||
| I hope you'll find it useful | |||
| Feedback welcomed. | 13:47 | ||
|
13:57
skids joined
|
|||
| AlexDaniel | .tell melezhik colabti.org/irclogger/irclogger_log...06-27#l448 | 13:58 | |
| yoleaux | AlexDaniel: I'll pass your message to melezhik. | ||
| AlexDaniel | hankache: also added it to the list on github.com/perl6/user-experience/issues/19 | 13:59 | |
| hankache | AlexDaniel thanks | 14:00 | |
| AlexDaniel | hankache: have you considered submitting a patch to nano? It seems to be actively maintained | 14:04 | |
| hankache | AlexDaniel yes I do. I just want to get some feedback before submitting it. | 14:05 | |
| AlexDaniel maybe there's room for improvement | 14:06 | ||
| AlexDaniel | hankache: there is, I think it doesn't pick up perl6 shebang currently | 14:07 | |
| hankache: and note that you'll probably have to modify the perl5 syntax file if so that it stops matching | |||
| hankache: unicode quotes and operators are not supported, is that intended? | 14:08 | ||
| hankache: should I file a ticket for each one of these? ↑ | 14:09 | ||
| hankache | AlexDaniel yes please | ||
| AlexDaniel | done, I think | 14:13 | |
| hankache | AlexDaniel thanks, I'll work on them asap | 14:14 | |
| AlexDaniel | weekly: Perl 6 syntax highlighting in nano: colabti.org/irclogger/irclogger_log...06-27#l448 | 14:16 | |
| notable6 | AlexDaniel, Noted! | ||
|
14:17
turdmonkey joined,
turdmonkey is now known as Bowlslaw
|
|||
| Bowlslaw | Good morning! | 14:17 | |
| yoleaux | 11:27Z <Zoffix> Bowlslaw: smartmatch was never broken in Perl 6 :) Perl 5 borrowed the concept, but it failed there because of lack of types. There are also several methods to do the regex stuff that in Perl 5 is done with ops: .match(), .subst(), .= subst(), .trans() | ||
|
14:19
kaare_ joined
|
|||
| Bowlslaw | Ah, so Perl 5 got it from Perl 6. | 14:20 | |
| That's something I like about Perl 6 the type system. | |||
| It gives me a very Haskell-y feeling | |||
| The ability to write subs almost exactly like in Perl 5, but if I want/need extra clarity or restrictions, it lets you write LESS code | 14:21 | ||
| don't need to manually write error checks and such in Perl 6 if you make a type parameterized sub definition | |||
|
14:33
Khisanth joined
14:38
hankache left
14:55
domidumont joined
14:58
mcmillhj left,
mcmillhj joined
14:59
molaf joined
15:01
brrt joined
15:03
domidumont left
15:07
jmerelo joined
|
|||
| tbrowder_ | .tell tyil The pod input/output block problem should be fixed on the rakudo master branch, please check it out when you get a chance. | 15:18 | |
| yoleaux | tbrowder_: I'll pass your message to tyil. | ||
|
15:25
brrt left
15:26
fake_space_whale joined
|
|||
| tbrowder_ | ref class instances: is there any way to get the name of the class (type) of a class instance? | 15:27 | |
| i know i can do a smart match if i know the class name, but what if i don’t know the name? | 15:28 | ||
|
15:28
sno left
|
|||
| jmerelo | tbrowder_: ^mro returns the class hierarchy, including the class name, I think. | 15:30 | |
| m: say Hash.^mro | |||
| camelia | ((Hash) (Map) (Cool) (Any) (Mu)) | ||
| jmerelo | m: my $foo = 3; say $foo.^mro | ||
| camelia | ((Int) (Cool) (Any) (Mu)) | ||
| jmerelo | m: my $foo = 3; say $foo.^mro.first | ||
| camelia | (Int) | 15:31 | |
| Geth | perl6.org: b2c7fd95f2 | (Rafael Schipiura)++ (committed using GitHub Web editor) | source/whatever/index.html Add nanorc from @hankache |
15:32 | |
| tbrowder_ | m: class foo {}; my $c = foo.new; say $c.^mro | 15:33 | |
| camelia | ((foo) (Any) (Mu)) | ||
| lucs | m: class foo {}; my $c = foo.new; print $c.^name | 15:35 | |
| camelia | foo | ||
| jmerelo | lucs: of course :-) | 15:36 | |
| lucs | Makes sense, eh :) | ||
| tbrowder_ | jmerelo: thanks! i’ve been trying to find how to do that in the docs but no luck so far. that’s not very intuitive, and i want to make sure it’s in the introspection section (i didn’t notice it when searching). | ||
| AlexDaniel | jmerelo: I don't understand the question on D#2124 | ||
| synopsebot | D#2124 [open]: github.com/perl6/doc/issues/2124 [trap] Potential trap with concatenating Bufs/Blobs, [~] returns a Str | ||
| jmerelo | tbrowder_: feel free to create an issue :-) | ||
| AlexDaniel | jmerelo: it's quite simple – `my $x = [~] @bufs` is OK unless @bufs is empty, because the identity object for ~ is "" | 15:37 | |
| jmerelo | AlexDaniel: correct | ||
| AlexDaniel | jmerelo: and this hidden (or at least not very visible) special casing makes it a trap, that's it | 15:38 | |
| jmerelo | AlexDaniel: it's OK as long as @buffs contains only Bufs also. | ||
| AlexDaniel | m: my Buf @bufs; say [~] @bufs | ||
| camelia | |||
| AlexDaniel | m: my Buf @bufs; say ([~] @bufs).perl | ||
| camelia | "" | ||
| tbrowder_ | i also didn’t have any luck with the ^name, but i probably fumbled it. i was trying to find the class name of a $=pod object. | 15:39 | |
| jmerelo | AlexDaniel: anyway, that's what I was trying to say. | ||
| AlexDaniel | jmerelo: here you can even say that @bufs can only contain Bufs | ||
| jmerelo: or, in most cases, you just “know” that it will only have Bufs or Blobs | |||
| jmerelo | AlexDaniel: but that's what I say in the trap text | ||
| tbrowder_ | lucs: thanks! | ||
| lucs | You're welcome | 15:40 | |
| jmerelo | tbrowder_: Pod documentation is not great. But feel free to create an issue too. | ||
| lucs: :-) | |||
| AlexDaniel: even if you declare it as Buf Array, same problem, I think. | 15:41 | ||
| m: my Buf @buffs; say [~] @buffs; | |||
| camelia | |||
| jmerelo | m: my Buf @buffs= Buf.new; say [~] @buffs; | ||
| camelia | Buf:0x<> | ||
| Bowlslaw | woah | ||
| does that stringify everything in the bufs array? | 15:42 | ||
| jmerelo | Bowlslaw: no, Bufs can't be stringified. ~ will concatenate bufs. | ||
| m: my Buf @buffs= Buf.new, 'not-a-buf'; say [~] @buffs; | 15:43 | ||
| camelia | Type check failed in assignment to @buffs; expected Buf but got Str ("not-a-buf") in block <unit> at <tmp> line 1 |
||
| jmerelo | AlexDaniel: do you want to write something in that issue or you want me to try again? Reassign the issue if so... | ||
| El_Che | I know pod is a perl 5 inheritince of the early days. But do people in 2018 still like it over markdown and other more popular alternatives? I always cringe when I need to write pod (5 or 6). | ||
| Bowlslaw | ah, i see | ||
| jmerelo | El_Che: you haven't tried DocBook... | 15:44 | |
| El_Che | (and specially thinking of modules with the doc in the code that's not rendered on github) | ||
| jmerelo | El_Che: it will be | ||
| El_Che | jmerelo: pretty much standerized with md | ||
| blame github :) | |||
| AlexDaniel | jmerelo: that's not what it says in the docs… | ||
| Bowlslaw | p6: my @array = <1 2 3 4 5>; say [+] @array; | ||
| camelia | 15 | ||
| Bowlslaw | p6: my @array = <1 2 3 4 5>; say [~] @array; | 15:45 | |
| camelia | 12345 | ||
| Bowlslaw | :-O | ||
| AlexDaniel | jmerelo: in the docs it says that you can't concat Blob/Buf with other objects | ||
| El_Che | jmerelo: standalone pod, sure, but pod withing code files? Not very likely/desireble | ||
| AlexDaniel | jmerelo: which is obvious, really | ||
| Bowlslaw | ok i am in love with reduction operators now | ||
| jmerelo | AlexDaniel: so not false :-) | ||
| Bowlslaw: they are great as long as you don't fall into a trap | |||
| AlexDaniel | jmerelo: it also talks about concatting Blobs with Arrays, which is even more obvious | ||
| Bowlslaw | p6: my @array = <1 2 3 4 5>; say [-] @array; | ||
| camelia | -13 | ||
| jmerelo | El_Che: literate programming! | ||
| Bowlslaw | What trap, jmerelo? | 15:46 | |
| AlexDaniel | jmerelo: and I have never seen anyone even assume that concatting a Blob with an Array is going to give any meaningful result | ||
| El_Che | jmerelo: you're a mini-Knuth | ||
| jmerelo | Bowlslaw: D#2124 | ||
| El_Che | :) | ||
| AlexDaniel | jmerelo: and it never mentions the identity element of ~ and how reducing an array has a special case when it's empty | ||
| jmerelo | El_Che: he's an academician, and we are all a big broterhood united by our love of tenure and the H number. | ||
| AlexDaniel | jmerelo: IMO the right section for it is “Unfortunate generalization”, right next to docs.perl6.org/language/traps#Usin...t_of_lists | 15:47 | |
| El_Che | jmerelo: yeah, I have been a member of faculty councils before | ||
| jmerelo: saw a lot of fraterny there :) | |||
| jmerelo | AlexDaniel: right. Do you want to have a go, or you want me to give it a try? You are right... | ||
| AlexDaniel: OK. | |||
| Bowlslaw | jmerelo: ??? | 15:48 | |
| El_Che | jmerelo: the Cain and Abel kind | ||
| jmerelo | Bowlslaw: github.com/perl6/doc/issues/2124 | ||
| El_Che: :-) | |||
| Bowlslaw | lol | ||
| jmerelo | Bowlslaw: that's what AlexDaniel and me are talking about now. | ||
| AlexDaniel | jmerelo: I don't mind if you give it another try, but I did assign myself because I'm ready to work on it :) | 15:49 | |
| maybe during the squashathon, not today for sure | |||
| jmerelo | AlexDaniel: let me give it a try. Pleeeeez | ||
| AlexDaniel | go for it :) | ||
| jmerelo | AlexDaniel: :-) | ||
| Geth | doc: JJ unassigned from AlexDaniel Issue Potential trap with concatenating Bufs/Blobs, [~] returns a Str github.com/perl6/doc/issues/2124 JJ self-assigned Potential trap with concatenating Bufs/Blobs, [~] returns a Str github.com/perl6/doc/issues/2124 Moves answer to a new section and reflows; refs #2124 |
||
|
15:51
psychoslave left
|
|||
| Bowlslaw | push @links, $link or @links.push($link) | 16:06 | |
| is there any significant difference? | |||
|
16:08
sno joined
|
|||
| moritz | no, both work | 16:08 | |
|
16:10
Zoffix joined
|
|||
| Zoffix | Bowlslaw: on current Rakudo, the method form is much more beneficial, performance-wise | 16:11 | |
| m: for ^30000 { push [], 42; Nil }; say now - ENTER now | 16:12 | ||
| camelia | 0.2650614 | ||
| Zoffix | m: for ^30000 { [].push: 42; Nil }; say now - ENTER now | ||
| camelia | 0.04407065 | ||
| Zoffix | like 7x faster | ||
| Bowlslaw | wow | 16:15 | |
| Well, that makes sense, considering what I read about sub vs methods the other day | |||
| subs check globally, while methods only check within their object's scope, right? | |||
| Zoffix | Bowlslaw: it's not about sub vs. method, it's about slurpies dispatch caching. This perf difference doesn't apply to all sub-vs-method calls | ||
| classes aren't closures, right. | 16:16 | ||
| D#2124 | |||
| synopsebot | D#2124 [open]: github.com/perl6/doc/issues/2124 [trap] Potential trap with concatenating Bufs/Blobs, [~] returns a Str | ||
| Zoffix | wonder why the bot didn't reply in colabti.org/irclogger/irclogger_log...06-27#l569 | 16:17 | |
| Ah, 'cause it was within the cooldown period of it already being mentioned a few lines up | 16:18 | ||
| AlexDaniel | maybe the cooldown should be reduced | ||
| I think it's ok if the bot is just a bit more noisy | 16:19 | ||
| Zoffix | synopsebot: source | ||
| synopsebot | Zoffix, See: github.com/perl6/synopsebot | ||
| Zoffix | Just change the 10*60 to lower value and pull and restart the bot: github.com/perl6/synopsebot/blob/m...ner.pm6#L4 | ||
| hm | 16:20 | ||
| nm, I'll do it. I see a memory leak bug in that code | |||
| kalkin-- | Zoffix: @source-url Thank you for your clarification | 16:22 | |
| I will implement an algorithm which looks up if url ends with some archive, if not it is a repository, if not download archive open-it look in to META6.json | |||
|
16:23
synopsebot joined,
ChanServ sets mode: +v synopsebot
|
|||
| Bowlslaw | Is there documentation on passing arrays to subs? | 16:23 | |
| Zoffix | Bowlslaw: dunno, maybe these? docs.perl6.org/type/Signature#Slur...Parameters | 16:24 | |
| kalkin-- | Where can I find documentation on modules.perl6.org API? | 16:25 | |
| or did I misunderstood you Zoffix? | 16:26 | ||
|
16:27
fake_space_whale left
|
|||
| Zoffix | kalkin--: kinda, I guess. There's no well-defined API, it's just on some pages (like search) if you ask for JSON by appending `.json` or `/.json` to URL, you'll get the stash variables used by the page as JSON. | 16:27 | |
| So, like, there are no tests and it might change | |||
| There are some general site use docs: modules.perl6.org/help | 16:28 | ||
| Like documenting what you can put into search | |||
| eco: from:cpan | |||
| buggable | Zoffix, Found 274 results: Bailador, zef, Inline::Perl5, JSON::Tiny, App::Mi6. See modules.perl6.org/s/from%3Acpan | ||
| Zoffix | eco: author:zoffix | ||
| buggable | Zoffix, Found 47 results: Acme::Anguish, IRC::Client, WWW, CoreHackers::Sourcery, GlotIO. See modules.perl6.org/s/author%3Azoffix | ||
| kalkin-- | Zoffix: what did you mean by getting repo-url from modules.perl6.org? | ||
| doc: 2856dd3b9e | (JJ Merelo)++ | doc/Language/traps.pod6 Proposes a new formulation for empty buffer array trap Which would, just maybe, close #2124 if everyone is happy with it. |
|||
| synopsebot | Link: doc.perl6.org/language/traps | ||
| kalkin-- | some people even put the git url in to support: { source: "git://…" } | 16:30 | |
|
16:30
n1ge joined
|
|||
| Zoffix | kalkin--: yeah, that's the way the Perl 6 Speculations have it. The `source-url` is an ecosystem extension. | 16:31 | |
| kalkin-- | bioperl6 has source-type field set to git and source-url to git url | 16:32 | |
| can't we just standartize that META6.json SHOULD have a repo-url? | 16:33 | ||
| Geth | ¦ doc: AlexDaniel unassigned from JJ Issue Potential trap with concatenating Bufs/Blobs, [~] returns a Str github.com/perl6/doc/issues/2124 | ||
| ¦ doc: AlexDaniel self-assigned Potential trap with concatenating Bufs/Blobs, [~] returns a Str github.com/perl6/doc/issues/2124 | |||
| jmerelo | AlexDaniel: no, really... | ||
| Zoffix | kalkin--: as for repo-url, yeah, I meant use the "api". If you take modules.perl6.org/s/author%3Azoffix you can slap `/.json` on it to get the data in JSON format, and each dist has repo-url that should point to the repo, if one was provided: perl6 -MWWW -e 'jget("modules.perl6.org/s/author%3Azoffi...>».say' | 16:34 | |
| jmerelo | AlexDaniel: What's the problem now? | ||
| Zoffix | kalkin--: and modules.perl6.org/repo/IRC::Client will redirect to the repo | ||
| AlexDaniel | jmerelo: it's actually pretty good! Just not perfect | ||
| jmerelo | AlexDaniel: not perfect is my thing. | 16:35 | |
| AlexDaniel: so thanks! | |||
| Zoffix | kalkin--: are you volunteering to spec the META6.json file? :) | ||
| AlexDaniel | jmerelo: “identity elemnt” can link to wikipedia for example, and I think we can also have a section about that in our docs too | ||
| jmerelo | AlexDaniel: I thought first to link the long discussion, but then, well, it's long. | ||
| AlexDaniel | jmerelo: it's an important concept I think, especially in context of reduce op […] | 16:36 | |
| kalkin-- | Zoffix: I actually wouldn't mind doing that, but I'm not sure if I'm proficient enough in Perl6 infrastructure | ||
| Zoffix | kalkin--: 'cause currently it's just a speculation. There's no spec at all IIRC. There's #perl6-toolchain channel for this part of the language; I don't know to what state there's an agreement vis-a-vis spec. | ||
| jmerelo | AlexDaniel: maybe glossary? | ||
| Zoffix | kalkin--: you could talk to ugexe IIRC they did a lot of thinking on what META6.json should have | ||
| AlexDaniel | jmerelo: no, a whole section, with a table for perl 6 ops | ||
| jmerelo: hold on… | 16:37 | ||
| kalkin-- | Zoffix: What about S22? Is it completely obsolete? | ||
|
16:37
domidumont joined
|
|||
| jmerelo | AlexDaniel: in language/operators? | 16:37 | |
| Zoffix | kalkin--: S22 is the speculation. AFAIK it's more or less current, but it's not encoded in the language specification. | ||
| (which is github.com/perl6/roast/ ) | 16:38 | ||
| (well, as far as I know. There are some module loading tests, but I don't know how well they cover META6.json stuff) | 16:39 | ||
| kalkin-- | ok, so specifying META6.json format would also consist of writing tests for the language specification. | 16:40 | |
| Zoffix | Yeah | ||
| kalkin-- | Zoffix: from a glance it doesn't cover much of META6.json | ||
| AlexDaniel | jmerelo: there D#2129 | ||
| synopsebot | D#2129 [open]: github.com/perl6/doc/issues/2129 “Identity element” section with an explanation and a table of perl 6 ops | ||
| jmerelo | AlexDaniel: I'm going to ban you from opening new issues until you close D#2124. Or someone closes it. | 16:41 | |
| synopsebot | D#2124 [open]: github.com/perl6/doc/issues/2124 [trap] Potential trap with concatenating Bufs/Blobs, [~] returns a Str | ||
| AlexDaniel | jmerelo: haha. Well, I said I'll fix it | ||
| Zoffix | kalkin--: though it's possible the toolchain group decided to have the META6.json spec separate from main language spec. I dunno. I'm not familiar at all with that part of the language | ||
| AlexDaniel | jmerelo: then, `[~] @buffs` where @buffs was pre-filled with an empty blob, is an interesting idea | ||
| jmerelo: but I don't know how good it is performance-wise | 16:42 | ||
| jmerelo: I'd guess it's shit | |||
| jmerelo | AlexDaniel: well, it prevents you from falling into the trap and since it's an empty buffer, it disappears as soon as it's merged. | ||
| AlexDaniel | jmerelo: in the ticket I listed `Blob.new: |«@chunks` as an option, maybe it is faster… I haven't timed it | ||
| Zoffix | m: my Blob:D $x = ([~] @buffs) || Blob.new | ||
| camelia | 5===SORRY!5=== Error while compiling <tmp> Variable '@buffs' is not declared at <tmp>:1 ------> 3my Blob:D $x = ([~] 7⏏5@buffs) || Blob.new |
||
| Zoffix | your mom is undeclared, robot | 16:43 | |
| m: my Blob:D $x = [~] [] || Blob.new | |||
| camelia | ( no output ) | ||
| AlexDaniel | jmerelo: ↑ or that, even | ||
| jmerelo | AlexDaniel: that's cute. | ||
| AlexDaniel | similar to what you suggest performance-wise, but less hacky | ||
|
16:44
Kaiepi joined
|
|||
| jmerelo | AlexDaniel: you calling me hacky? | 16:44 | |
| AlexDaniel | jmerelo: and then, as I said, I think the best place for it is right next to docs.perl6.org/language/traps#Usin...t_of_lists | 16:45 | |
| ah, it's there | |||
| jmerelo | AlexDaniel: :-) | ||
| AlexDaniel is blind | |||
| jmerelo is hacky | |||
| AlexDaniel | jmerelo: I do care about performance in this case though, gluing blobs is very likely to be in a path where performance matters | 16:46 | |
| jmerelo | AlexDaniel: I hadn't thought about that... | 16:47 | |
| jmerelo clickbaits lizmat's TPC talk: www.youtube.com/watch?v=EjE-weTVKV...p;index=67 Really worth the while. | |||
| AlexDaniel | now yeah, docs should not document implementation-specific performance details, but if there's an easy way to recommend an approach that is many times faster (especially Blob-related), we probably should | ||
| jmerelo | AlexDaniel: yep | ||
| AlexDaniel | but still, I haven't timed it, I don't know :) | 16:48 | |
| Bowlslaw | wait..do I not need a semi-colon?? | 16:50 | |
| say @links.join("\n") works just fine, without a ';' | |||
|
16:50
pmurias left
|
|||
| AlexDaniel | Bowlslaw: last statement of any block doesn't need a ; | 16:51 | |
| Bowlslaw | aaaa | ||
| Zoffix | Bowlslaw: semicolon is like a statement separator, if you ain't got any stuff to separate it from, you ain't need it | ||
| Bowlslaw puts semi-colon anyway | |||
|
16:51
Ven` left
|
|||
| Bowlslaw | ;p | 16:52 | |
| AlexDaniel | weekly: over 200 responses for the survey! | ||
| notable6 | AlexDaniel, Noted! | ||
| Zoffix | Bowlslaw: some coders follow the convention that if the statement is used as a return value, to omit the semicolon, otherwise to use it... so `sub foo { if $foo { bar } else { ber } }` but `sub foo { if $foo { bar; } else { ber; }; meows }` | 16:54 | |
| jmerelo | AlexDaniel: I'm still surprised how many people have answered "Unsure". As in someone whispered it to them in a dark alley or something... | 16:55 | |
| AlexDaniel: or showed up in their dreams. | |||
| AlexDaniel | jmerelo: I answered that | ||
|
16:55
Ven` joined
|
|||
| AlexDaniel | in fact I probably added that option to the survey | 16:55 | |
| Zoffix | jmerelo: I answered that. It's been like 15 years ago that I found out about it. I don't remember how | ||
| AlexDaniel | same, it was that long ago, but I still don't remember | 16:56 | |
| wasn't*** | |||
| jmerelo | AlexDaniel: So maybe the right answer is "So long ago I don't remember" | ||
| But anyway, not that many options. Either in a conference, or maybe in Slashdot (remember Slashdot?), or in Perlmonks... | 16:57 | ||
| AlexDaniel | nah 4-5 years ago is not that long ago… | ||
| jmerelo | Zoffix: to be sure, I'm also unsure. But there weren't that many options, so I chose the most sensible one... | ||
| AlexDaniel | I'm pretty sure it was something related to perl5, but not a conference, and not perlmonks | ||
| jmerelo | It's surprising also the second language behind Perl is C/C++. So it's appealing for people who are not into scripting... Also Python, but Python is popular anyway. | 16:59 | |
| Zoffix | m: $/={.substr-rw: ٦+١,١}; $/($_)=$/($_)x ٢ with $!=" ".uniname;$!.say | 17:02 | |
| camelia | Start argument to substr out of range. Is: 7, should be in 0..5; use *-7 if you want to index relative to the end in block <unit> at <tmp> line 1 |
||
| Zoffix | huh | ||
|
17:02
n1ge left
|
|||
| Zoffix | m: $/={.substr-rw: ٦+١,١}; $/($_)=$/($_)x ٢ with $!=" ".uniname;$!.say | 17:02 | |
| camelia | Start argument to substr out of range. Is: 7, should be in 0..5; use *-7 if you want to index relative to the end in block <unit> at <tmp> line 1 |
||
|
17:02
user2 joined
|
|||
| Zoffix | this is trippy | 17:02 | |
|
17:02
n1ge joined
|
|||
| Zoffix | 'cause this code works fine in #zofbot | 17:02 | |
| Ah | |||
|
17:02
user2 left
|
|||
| Zoffix | stupid terminal | 17:02 | |
| Bowlslaw | Zoffix: I think that omitting return and semi-colons is great when you have a smaller script, but I think I will stil use them in larger programs, where readability is more important | ||
| Zoffix | m: $/={.substr-rw: ٦+١,١}; $/($_)=$/($_)x ٢ with $!="🎉".uniname;$!.say | 17:03 | |
| camelia | PARTY POOPPER | ||
| Zoffix | Bowlslaw: return makes stuff slower | ||
| Bowlslaw: also, that doesn't make sense. The subs in smaller and larger programs would normally be around the same size. | |||
| m: sub foo { rand }; for ^1000_000 { foo; Nil }; say now - ENTER now | 17:04 | ||
| camelia | 0.1279784 | ||
| Bowlslaw | hmm | ||
| Zoffix | m: sub foo { return rand }; for ^1000_000 { foo; Nil }; say now - ENTER now | ||
| camelia | 0.287086 | ||
| Bowlslaw | what the | ||
| Zoffix | :)( | ||
| 'cause it installs a control exception handler or whatever | |||
| Bowlslaw | why use return | 17:05 | |
| skids | It's an implementation quirk... return uses exceptions. | ||
| Zoffix | Well, it's *currently* slower, I guess I should say | ||
| Bowlslaw | o | ||
| skids | Yeah it could be optimized out someday. | ||
| I would not avoid it if you are returning in the middle of a sub conditionally just for that, unless it's a really performance senstive area. | 17:06 | ||
| AlexDaniel | Bowlslaw: well, if you're not writing “return”, then leaving out a semicolon for the last statement is potentially useful | 17:07 | |
| Bowlslaw: makes sure that no one (including yourself :) ) will write another line after that, without touching it of course | |||
| Zoffix | Hm. Maybe even soon-day? It can be done in the static optimizer even, right? If the `Op (callstatic &return)` is the last thing, then toss it? | 17:08 | |
| It sounds so simple, that it makes me think it would've been done already long ago. | |||
| skids | Can you catch control exceptions? | ||
| Zoffix | What do you mean? | 17:09 | |
| skids | If you can catch a return somehow, then there's a semantic difference. | ||
| Zoffix | ah, right | ||
| AlexDaniel | m: sub foo() { my &return = { say ‘haha’ }; return 42 }; say foo | ||
| camelia | haha True |
||
| AlexDaniel | Zoffix: what about this? ↑ | 17:10 | |
| Zoffix | AlexDaniel: you can see if the symbol is from core in the static optimizer | ||
| AlexDaniel | right | ||
| Zoffix | m: sub foo() { CONTROL { default { say "meow" } }; return 42 }; say foo | ||
| camelia | meow Nil |
||
| Zoffix | m: sub foo() { CONTROL { default { say "meow" } }; 42 }; say foo | ||
| camelia | 42 | ||
| AlexDaniel | can you check that there's no CONTROL block? | 17:11 | |
| greppable6: CONTROL | |||
| greppable6 | AlexDaniel, 250 lines, 35 modules: gist.github.com/7ff39ad359895a1ec8...009bbc083e | ||
| Zoffix | skids: looks like it's still fairly easy. Just keep an eye out for `handle` op | 17:12 | |
| |3d see if `return` as last statement can be optimized colabti.org/irclogger/irclogger_log...06-27#l771 | |||
| ZofBot | Zoffix, Will remind you on 2018-06-30T13:12:50.268537-04:00 about see if `return` as last statement can be optimized colabti.org/irclogger/irclogger_log...06-27#l771 | ||
| skids | m: sub bar { return 42 }; sub foo() { CONTROL { default { say "meow" } }; bar() }; say foo | ||
| camelia | 42 | ||
| skids | yeah cause CONTROL doesn;t have scoping issues, (I think?) | 17:13 | |
| Zoffix | hm | ||
| m: constant &bar = { return 42 }; sub foo() { CONTROL { default { say "meow" } }; bar() }; say foo | |||
| camelia | Attempt to return outside of any Routine in block at <tmp> line 1 in sub foo at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
| Zoffix | *phew* :) | ||
| I forget the rule. It has to be dynamically visible to the sub? | 17:14 | ||
| m: sub foo() { constant &bar = { return 42 }; CONTROL { default { say "meow" } }; bar() }; say foo | |||
| camelia | Attempt to return outside of any Routine in block at <tmp> line 1 in sub foo at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
|
17:14
zakharyas left
|
|||
| Zoffix | oh but still, this can be detected, because we'd be looking for `handlepayload` op in the same QAST::Block | 17:15 | |
| skids | I seem to remember exceptions being much slower than in that above test at one point... good to see that speedup. | ||
| Zoffix | Yeah, IIRC jnthn++ did work on improving the `return` use, which makes me think he probably would've already optimized it away if it were possible | 17:16 | |
| Actually, I'm not gonna work on this this weekend, I gotta do other stuff. | 17:18 | ||
| |31d see if `return` as last statement can be optimized colabti.org/irclogger/irclogger_log...06-27#l771 | |||
| ZofBot | Zoffix, Will remind you on 2018-07-28T13:18:31.740296-04:00 about see if `return` as last statement can be optimized colabti.org/irclogger/irclogger_log...06-27#l771 | ||
| Zoffix | So if anyone else wanna have a go, go for it :) | ||
| sena_kun | some quite black magic goes here: 1)I can get package in scope by runtime value as `::($foo)`. 2)I can work with things inside of package using e.g. `Package::Foo::.kv`. 3)But I cannot combine 1 and 2, the package I'm getting from runtime resolution ends up being empty. My thought is like `my $a = 'Foo::Bar'; my $p = ::($a); say $p::.kv` does not work.` Is it a dead end? | ||
| Zoffix | sena_kun: but you're missing the `::` | 17:19 | |
| should be ::($a):: | |||
| m: use Test; say Test::.kv | |||
| camelia | (&todo_output sub todo_output () { #`(Sub|74086320) ... } &output sub output () { #`(Sub|74086472) ... } &failure_output sub failure_output () { #`(Sub|74086624) ... } EXPORT (EXPORT)) | ||
| Zoffix | m: use Test; my $a := 'Test'; say ::($a)::.kv | 17:20 | |
| camelia | () | ||
| Zoffix | oh, *shrug* | ||
| sena_kun | Zoffix, it's the same with `::($a)::`, yup. | ||
| I've tried that, but thought maybe with variable it'd be better - no luck. | |||
| Zoffix | m: use Test; my $a := 'Test'; say ::($a).WHO.kv | 17:21 | |
| camelia | (&output sub output () { #`(Sub|71934408) ... } EXPORT (EXPORT) &todo_output sub todo_output () { #`(Sub|71934560) ... } &failure_output sub failure_output () { #`(Sub|71934712) ... }) | ||
| sena_kun | Oh, that's brilliant. Zoffix++ | ||
| Thanks a lot! | 17:22 | ||
| Zoffix | nm | ||
| Zoffix & | |||
|
17:22
Zoffix left
|
|||
| Bowlslaw | what the | 17:23 | |
|
17:27
psychoslave joined
|
|||
| rindolf | hi all! I added a new benchmark and it doesnt look good again - github.com/shlomif/perl6-benchmark...its/master | 17:29 | |
|
17:33
ambs joined,
psychoslave left
|
|||
| rindolf | I get a build error - paste.debian.net/1031015/ | 17:35 | |
|
17:37
zachk joined,
zachk left,
zachk joined
|
|||
| jmerelo | m: my $name = 'foo'; my %foo = bar => baz; say %::($foo) | 17:47 | |
| camelia | 5===SORRY!5=== Error while compiling <tmp> Variable '$foo' is not declared. Did you mean '%foo'? at <tmp>:1 ------> 3 = 'foo'; my %foo = bar => baz; say %::(7⏏5$foo) |
||
| jmerelo | m: my $name = 'foo'; my %foo = bar => baz; say %::($name) | ||
| camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared routine: baz used at line 1. Did you mean 'bag'? |
||
| jmerelo | m: my $name = 'foo'; my %foo = { bar => baz }; say %::($name) | ||
| camelia | 5===SORRY!5=== Undeclared routine: baz used at line 1. Did you mean 'bag'? Other potential difficulties: Useless use of hash composer on right side of hash assignment; did you mean := instead? at <tmp>:1 ------> 3 $… |
||
| jmerelo | m: my $name = 'foo'; my %foo = bar => 'baz'; say %::($name) | ||
| camelia | {bar => baz} | ||
| jmerelo | m: my $name = 'foo'; my %foo = bar => 'baz'; say %::($name):: | ||
| camelia | {bar => baz} | ||
| jmerelo | m: my $name = 'foo'; my %foo = bar => 'baz'; say :%::($name):: | 17:48 | |
| camelia | 5===SORRY!5=== Error while compiling <tmp> Variable '%::($name)::' is not declared at <tmp>:1 ------> 3e = 'foo'; my %foo = bar => 'baz'; say :7⏏5%::($name):: |
||
| jmerelo | I was revisiting this stackoverflow.com/questions/442126...-together, but same thing... | ||
| Bowlslaw | github.com/sergot/http-useragent/issues/206 | 17:51 | |
| AlexDaniel: | |||
| AlexDaniel | Bowlslaw: yes? | 17:55 | |
| tyil | tbrowder_: I'll check it out tomorrow probably | 17:56 | |
| yoleaux | 15:18Z <tbrowder_> tyil: The pod input/output block problem should be fixed on the rakudo master branch, please check it out when you get a chance. | ||
| Bowlslaw | AlexDaniel: he fixed it? | 17:57 | |
|
17:58
perlpilot joined
|
|||
| AlexDaniel | Bowlslaw: no, but it should be easy if you change BUILD to TWEAK | 18:01 | |
| tyil | daxim: poke | ||
|
18:01
Ven` left
18:02
Kaiepi left,
Kaiepi joined
|
|||
| Bowlslaw | O_o | 18:06 | |
| Why? | |||
| AlexDaniel | Bowlslaw: well, nothing was committed, so it's not fixed | 18:07 | |
| Bowlslaw: it's possible to fix either by adding :timeout named param to the BUILD method, or by removing the BUILD method altogether | 18:09 | ||
| Bowlslaw: see this part for more info: docs.perl6.org/language/objects#Ob...nstruction | 18:10 | ||
| it does explain BUILD and TWEAK a bit, even if poorly | |||
| daxim | tyil: I'm here | 18:11 | |
| Bowlslaw | hmm, ok | ||
| i don't know anything about those so i'll have to check it out | |||
| I'd like to give him something to fix it | |||
| tyil | daxim: hi | ||
| can you pull the fix-shitty-blocks branch again and retry (for Pod::To::Pager) | 18:12 | ||
| daxim | works well, I'm happy with the output from test-program.pl | 18:13 | |
| tyil | sweet | 18:14 | |
| I'll finish up some rough edges and merge it into master soon-ish | |||
|
18:14
Kaiepi left
18:15
Kaiepi joined
|
|||
| jmerelo goes AFK | 18:18 | ||
|
18:18
jmerelo left
|
|||
| AlexDaniel | Bowlslaw: the information is there, and it's easy to fix | 18:18 | |
| Bowlslaw: perhaps clone the git repo and play with it? | |||
| Bowlslaw | cool, i'll check it out when I get time, thanks | ||
|
18:26
wamba joined
|
|||
| timotimo | bench: compare HEAD my $a = "hello there"; for ^2_000_000 { $a.chop } ||| my $a = "hello there"; for ^2_000_000 { $a.substr(0,*-1) } | 18:26 | |
| benchable6 | timotimo, starting to benchmark the 1 given commit | ||
| timotimo, No new data found | |||
| timotimo | hum? | ||
| bench: compare 2018.05 my $a = "hello there"; for ^2_000_000 { $a.chop } ||| my $a = "hello there"; for ^2_000_000 { $a.substr(0,*-1) } | 18:27 | ||
| benchable6 | timotimo, starting to benchmark the 1 given commit | ||
| timotimo, No new data found | |||
| timotimo | what's happening? | ||
| rindolf: looks like your code is spending a whole lot of time with the //= metaop stuff | 18:30 | ||
| rindolf | timotimo: rakudobrew fails here | ||
| AlexDaniel | .tell MasterDuke colabti.org/irclogger/irclogger_log...06-27#l884 | ||
| yoleaux | AlexDaniel: I'll pass your message to MasterDuke. | ||
| timotimo | maybe a version bump was missing or something | 18:31 | |
| rindolf: /home/shlomif/Download/unpack/perl/p6/rakudobrew/moar-master/install/bin/moar --version | |||
| please | |||
| rindolf | timotimo: This is MoarVM version 2018.06 built with JIT support | 18:32 | |
| timotimo | and what nqp did it try to build? | ||
| tyil | perl6-tidy throws an exception when I try to run it | 18:33 | |
| does this mean my code is so bad that not even automated services want to deal with it :( | |||
| rindolf | timotimo: how do i tell? | 18:34 | |
| timotimo | cd in there and "git describe --tags" for example | ||
|
18:36
HaraldJoerg joined
|
|||
| rindolf | timotimo: HEAD detached at 2018.06 | 18:36 | |
|
18:36
perlpilot left
|
|||
| timotimo | hum. so at least they match up | 18:37 | |
| Bowlslaw | p6: say (^10**3).race.map(**.is-prime).sum | ||
| camelia | 1000 | ||
| Bowlslaw | p6: say (^10**3).map(**.is-prime).sum | 18:38 | |
| camelia | 1000 | ||
| Bowlslaw | is race faster? | ||
| timotimo | p6: say (^10**3).map(*.is-prime).sum | ||
| camelia | 168 | ||
| timotimo | you were getting a wrong result, though | ||
| Bowlslaw | O_o | ||
| oops | |||
| p6: say (^10**3).map(*.is-prime).sum | |||
| camelia | 168 | ||
| timotimo | for such a small input race won't win you anything, i don't think | ||
| Bowlslaw | p6: say (^10**5).map(*.is-prime).sum | 18:39 | |
| p6: say (^10**5).race.map(*.is-prime).sum | |||
| camelia | 9592 | ||
| (signal XCPU) | |||
| moritz | m: say (^1e5).grep(&is-prime).elems | 18:40 | |
| camelia | (timeout) | ||
| moritz | m: say (^1e5).race.grep(&is-prime).elems | ||
| camelia | (signal XCPU) | ||
| Bowlslaw | I ran those two sums on my machine and the time was almost exactly the same | 18:42 | |
| without race was about 28 seconds, with race was about 26 | |||
| not sure what that means | |||
|
18:42
pmurias joined
|
|||
| moritz | might need a larger batch size to make it actually faster | 18:43 | |
| with .race(:batch(10_000)) I get 12.6s vs. 19.5s serial | 18:45 | ||
|
18:45
epony joined
|
|||
| Bowlslaw | www.youtube.com/watch?v=moaGidO3eA4 at 7:23 | 18:45 | |
| he says without race it takes 28 seconds, but with race it was 8 | |||
|
18:46
pmurias left
|
|||
| timotimo | probably .elems vs .sum? | 18:46 | |
| i get 8.2s vs 24s | 18:47 | ||
| Bowlslaw | O_o | 18:48 | |
| he also has **.is-prime | |||
| instead of *.is-prime | |||
| timotimo | hopefully just a typo | ||
| Bowlslaw | he also has .sum for both | ||
| timotimo | that's 10 vs 24.5 on my machine | 18:50 | |
| with .sum | |||
| skids | 15 vs 24 here. | ||
| with .elems | |||
| Bowlslaw | with the interpreter? | ||
| skids | you mean the REPL? | ||
| Bowlslaw | yes, repl | ||
| skids | no, just cli | 18:51 | |
| timotimo | no, individual calls to perl6 itself | ||
| Bowlslaw | maybe it's because i'm using the repl | ||
| timotimo | perhaps | ||
| skids | Maybe you have a different number of cores? | ||
| timotimo | it'll keep the worker threads alive in between | ||
| Bowlslaw | it's not a performance issue with my machine unless something is really wrong | 18:52 | |
| i'll try without the repl | |||
| eh? | 18:54 | ||
| now it's working fine in the repl | |||
| maybe I screwed something up with the syntax... | |||
| skids wonders whether benches with various sepctre/meltdown/tlbleed patches are kicking around somewhere. | |||
| Bowlslaw | hehe | 18:55 | |
| Juerd | Is there a ready-to-use script available to benchmark some script against numerous different versions of rakudo? | ||
| timotimo | yes, japhb's perl6-bench | ||
| Juerd | Thanks, I'll look into that | ||
| timotimo | it even builds all the rakudo versions for you | 18:56 | |
| Bowlslaw | ok, now i'm getting 23 seconds without race and 6 seconds with | ||
| timotimo | though actually, you can also use benchable6 | ||
| Bowlslaw | I wonder what happened | ||
| Juerd | timotimo: Something that builds the rakudos is exactly what I was looking for :) | 18:58 | |
| timotimo | well, benchable6 already has all the rakudos built ;) | ||
| Juerd | But I can't give that a module and a script, I assume | ||
| timotimo | only a script | 18:59 | |
| with a bit of hacking, a module, too. | |||
| but benchable6 behaved strangely a few minutes ago when i last tried it | |||
|
19:02
Zoffix joined
19:03
lizmat joined
|
|||
| Zoffix | timotimo: "code is spending a whole lot of time with the //= metaop stuff" is that the actual metaop or the `defor` op? | 19:03 | |
| timotimo: also, what's the code, if you still have it? | |||
| timotimo | it's the pointy block inside METAOP_ASSIGN | ||
| raw.githubusercontent.com/shlomif/...r_189-2.p6 | 19:04 | ||
| Zoffix | hm.... my bot told reminded me about irclog.perlgeek.de/perl6-dev/2018-...#i_1578696 but that log is not available in the map :( | 19:05 | |
| AlexDaniel | Zoffix: I've seen that also | ||
| Zoffix: my guess is that whitespace is preserved on colabti | |||
| but ilbot used to strip it | 19:06 | ||
| so if you have a message that ended with whitespace… that's probably causing the problem? | |||
| Zoffix | That euler_189-2.p6 has wrong shebang | 19:07 | |
| AlexDaniel | I can generate another mapping with an extra whitespace at the end… or we can implement a fallback based on timestamps | 19:08 | |
| rindolf | Zoffix: will fix | 19:13 | |
| Zoffix | rindolf: I sent a PR | ||
| timotimo: looks like it's this construct: `($a{$b} //= 0) += $c` | 19:14 | ||
| rindolf | Zoffix: ok | ||
| Zoffix | I wonder if the reason it doesn't get optimized is 'cause we don't double-pass over it? So it optimizes one meta but not the other? | 19:15 | |
|
19:15
eliasr joined
|
|||
| Zoffix | Filed as R#1981 | 19:19 | |
| synopsebot | R#1981 [open]: github.com/rakudo/rakudo/issues/1981 [perf] Stacked metaops in the same statement don't get fully optimized | ||
|
19:19
Zoffix left
|
|||
| rindolf | thx | 19:23 | |
|
19:35
domidumont left
19:40
smls joined
|
|||
| smls | Quick question, just to make sure: With sigilless variable declarations, assignment and binding is identical, right? | 19:42 | |
| i.e. «my \a = ...;» vs «my \a := ...;» | 19:43 | ||
| moritz | I think so, but I'm not entirely sure | ||
| both create a QAST::Op(bind) with --target=ast | 19:44 | ||
|
19:44
Bowlslaw left
|
|||
| moritz | yes, even with a more complex RHS like (my $ = 42), both create a QAST::Op(bind) | 19:45 | |
| smls | Ok, thanks. | 19:46 | |
|
19:54
comborico1611 joined
20:04
g- joined
|
|||
| buggable | New CPAN upload: Sparrowdo-Azure-Web-Cert-0.0.1.tar.gz by MELEZHIK modules.perl6.org/dist/Sparrowdo::A...n:MELEZHIK | 20:24 | |
|
20:28
Xliff joined,
smls left
|
|||
| Xliff | \o | 20:28 | |
| Is there an easy way to determine if the current iteration is the last or the first in perl6? | 20:31 | ||
| timotimo | $++ == 0 and maybe using rotor(2 => 1) -> $a, $b? and see if $b is undefined | 20:32 | |
| geekosaur | phasers? | 20:35 | |
| timotimo | right, FIRST is one that works | 20:37 | |
| the problem with the LAST phaser is that it runs after the last iteration | |||
|
20:37
espadrine joined
|
|||
| timotimo | rather than telling you "this will be the last iteration" | 20:37 | |
|
20:41
AndChat549236 joined
|
|||
| Xliff | m: my @a = ( 'a'..'g' ); my $f := @a[0]; my $l := @a[*-1]; for @a - >$a { say "FIRST!" if $f =:= $a; .say; say "LAST!" if $l =:= $_a }; | 20:41 | |
| camelia | 5===SORRY!5=== Error while compiling <tmp> Preceding context expects a term, but found infix > instead. at <tmp>:1 ------> 3f := @a[0]; my $l := @a[*-1]; for @a - >7⏏5$a { say "FIRST!" if $f =:= $a; .say; sa |
||
| Xliff | m: my @a = ( 'a'..'g' ); my $f := @a[0]; my $l := @a[*-1]; for @a -> $a { say "FIRST!" if $f =:= $a; .say; say "LAST!" if $l =:= $a }; | 20:42 | |
| camelia | (Any) (Any) (Any) (Any) (Any) (Any) (Any) |
||
| Xliff | m: my @a = ( 'a'..'g' ); my $f := @a[0]; my $l := @a[*-1]; for @a -> $a { say "FIRST!" if $f =:= $a; $_.say; say "LAST!" if $l =:= $a }; | ||
| camelia | (Any) (Any) (Any) (Any) (Any) (Any) (Any) |
||
| timotimo | you get a new scalar container by the for loop | ||
| you'll want \a there probably | |||
| Xliff | m: my @a = ( 'a'..'g' ); my $f := @a[0]; my $l := @a[*-1]; for @a -> \a { say "FIRST!" if $f =:= \a; \a.say; say "LAST!" if $l =:= \a }; | ||
| camelia | ( no output ) | ||
|
20:42
AndChat549236 left
|
|||
| timotimo | only put the \ where you define it | 20:42 | |
| m: my \a = 9; say (\a).perl | 20:43 | ||
| camelia | \(9) | ||
| skids | The problem is not all loops *know* they are running the last iteration until *after* they finish the last iteration. | ||
| timotimo | you're getting a Capture there | ||
| Xliff | m: my @a = ( 'a'..'g' ); my $f := @a[0]; my $l := @a[*-1]; for @a -> \a { say "FIRST!" if $f =:= a; a.say; say "LAST!" if $l =:= a }; | ||
| camelia | FIRST! a b c d e f g LAST! |
||
| Xliff | HA! | ||
| For lists where the endpoints are known, that should work. | 20:44 | ||
| m: my @a = ( 'a'..'g' ); my @b = ', ' xx @a.elems; @b[*-1] = ' or '; (@a [Z] @b).join('').say | 20:46 | ||
| camelia | a , b , c , d , e , f , g or | ||
| Xliff | m: my @a = ( 'a'..'g' ); my @b = ', ' xx @a.elems-1; @b[*-1] = ' or '; (@a [Z] @b).join('').say | 20:47 | |
| camelia | a , b , c , d , e , f or | ||
| Xliff | m: my @a = ( 'a'..'g' ); my @b = ', ' xx @a.elems-1; @b[*-1] = ' or '; (@a [Z] @b).join('').put | ||
| camelia | a , b , c , d , e , f or | ||
| Xliff | m: my @a = ( 'a'..'g' ); my @b = ', ' xx @a.elems; @b[*-1] = ' or '; (@a [Z] @b).join('').put | ||
| camelia | a , b , c , d , e , f , g or | ||
| Xliff | m: my @a = ( 'a'..'g' ); my @b = ', ' xx @a.elems; @b[*-2] = ' or '; (@a [Z] @b).join('').put | 20:48 | |
| camelia | a , b , c , d , e , f or g , | ||
| buggable | New CPAN upload: Sparrowdo-Azure-Web-Cert-0.0.2.tar.gz by MELEZHIK modules.perl6.org/dist/Sparrowdo::A...n:MELEZHIK | 20:54 | |
|
20:54
perlpilot joined
20:55
mcmillhj left,
comborico1611 left
20:56
comborico1611 joined
|
|||
| skids | The rotor solution comes out pretty clean, as long as you know you won;thave any naturally occuring Mu in your data: | 20:56 | |
|
20:56
comborico1611 left
|
|||
| skids | m: for (1,2,3,4,5).rotor(2 => -1, :partial) -> ($a, $b?) { "LAST".say unless $b.DEFINITE; $a.say } | 20:56 | |
| camelia | 1 2 3 4 LAST 5 |
||
| timotimo | hm, that's also susceptible to undefined values and Nil | 20:57 | |
| skids | Well, maybe a better test on Mu | ||
| timotimo | i know something even better | ||
| skids | Or some test on $b.VAR | ||
| timotimo | hm. actually. if you put a capture var in there, it'll probably up the arity or count to infinity | 20:58 | |
| so you can't just do that :( | |||
| with a proto and a multi, that could work, but ugh | |||
| skids | Some where clause on the $b? ? | 20:59 | |
| timotimo | oh, wait, rotor gives you tuples anyway! | ||
| so, problem solved | |||
| m: for (1,2,3,4,5).rotor(2 => -1, :partial) -> @a ($a, $b?) { "LAST".say unless @a == 2; $a.say } | |||
| camelia | 1 2 3 4 LAST 5 |
||
| timotimo | m: for (1,Any,3,Nil,5,Mu,6).rotor(2 => -1, :partial) -> @a ($a, $b?) { "LAST".say unless @a == 2; $a.say } | ||
| camelia | 1 (Any) 3 Nil 5 (Mu) LAST 6 |
||
| skids | ++ | 21:00 | |
| a new idiom is born | |||
| m: for (1,Any,3,Nil,5,Mu,6).rotor(2 => -1, :partial) -> @a ($a, $?) { "LAST".say unless @a == 2; $a.say } # can lose the $b | 21:02 | ||
| camelia | 1 (Any) 3 Nil 5 (Mu) LAST 6 |
||
| skids | Of course the problem is if you have side effects on testing for the next element which you don't want triggered at the wrong time. | 21:03 | |
| But I guess that's beside the point. | 21:04 | ||
| anyhow, maybe Ill leave work on time today... what a treat. | 21:05 | ||
|
21:05
Xliff left,
mcmillhj joined
|
|||
| timotimo | yeah, rotor will also pull-one the next element before you're done with this one | 21:05 | |
|
21:09
mcmillhj left,
skids left
21:28
mahafyi left
21:31
mikejw joined
|
|||
| mikejw | hey guys | 21:31 | |
|
21:35
mcmillhj joined
|
|||
| mikejw | is there a special way I need to escape empty strings when passing a command to Proc::Async? | 21:37 | |
| timotimo | should be enough to just have an empty string in your list of arguments | 21:38 | |
| perlpilot | mikejw, I wouldn't think so. | ||
| mikejw | cool ok | 21:39 | |
|
21:40
mcmillhj left
21:42
Zoffix joined
|
|||
| Zoffix | mikejw: it depends. If you're running a batch file on Windows (which is what $*EXECUTABLE on windows is, for example), then you need to do cmd.exe's special quoting | 21:42 | |
| (which might not be needed for empty args, but the rest of the stuff it don't like, yes) | 21:43 | ||
| mikejw | haha ok | 21:46 | |
| I think I found the issue.. just needed to use chdir again because of the probably quite zany use of promises | 21:47 | ||
|
21:53
mcmillhj joined
21:58
mcmillhj left
|
|||
| mikejw | thanks to learning Perl6, I can now build and deploy multiple PHP webapps and a jenkins instance to docker machine running on a local vagrant vm or potentially to a production server | 21:58 | |
| and now I can finally figure out how I want to manage backups :) | 21:59 | ||
| s/learning Perl6/wanting to learn | |||
| I forgot to say with a few keystrokes :) | 22:00 | ||
| Zoffix | awesome \o/ | ||
| mikejw | thanks mayne | ||
| it's been a fun ride | 22:01 | ||
| ...so far | |||
| Zoffix | :) | 22:05 | |
|
22:11
mcmillhj joined
22:15
wamba left
22:16
mcmillhj left
22:18
mikejw left,
HaraldJoerg1 joined
22:21
HaraldJoerg left
22:23
Zoffix left
22:31
Ven` joined
22:35
Ven` left
22:41
MasterDuke joined
22:43
skids joined
22:49
mcmillhj joined
22:51
benjikun joined
22:54
HaraldJoerg1 left,
mcmillhj left
22:56
proc joined
|
|||
| proc | Hey guys. Newbie to p6 and got a 'q'. I having trouble with loading a classes parent at _runtime_. While I'm able to load a child at _runtime_, once I introduce a `also is parent`, I get failures. If someone would be kind enough to show where how/where in the documentation to load a child's parent at runtime that'd be great. | 22:59 | |
| jnthn | A class is a compile-time declaration, and `also is parent` also operates at compile time. | 23:02 | |
| So runtime is too late. | |||
| proc | Then how is it possible that `require ::($class);` works if it's only compile time? | 23:03 | |
| where $class get be passed in from stdin? | |||
| I guess I'm just missing it.... if I can load a child as in `require ::($child);` at runtime, then how can I load that childs' parent ..... at runtime .... if at all? | 23:06 | ||
|
23:06
mcmillhj joined
|
|||
| jnthn | I'm a bit confused what you're wanting to do. If you're loading the child via `require` (noting that there's no 1:1 relationship between modules and classes, and `require` is about modules) and then want to find what it inherits from, do .^parents on the loaded class. | 23:09 | |
| MasterDuke | proc: i assume you mean if you don't already know what its parent is? i.e., otherwise you'd just require `::($parent)` also? | ||
| yoleaux | 18:30Z <AlexDaniel> MasterDuke: colabti.org/irclogger/irclogger_log...06-27#l884 | ||
|
23:11
mcmillhj left
|
|||
| proc | MasterDuke: That's right. The parent is unknown. | 23:13 | |
| MasterDuke | proc: then jnthn++ got to where i was going faster | ||
| proc | ok | 23:14 | |
| My misunderstanding then seems to be modules vs classes. | 23:15 | ||
| much apprecaited. | |||
|
23:19
mcmillhj joined
23:24
mcmillhj left
23:34
subroot joined
23:35
mcmillhj joined,
perlpilot left
23:39
mcmillhj left
23:42
benjikun2 joined
23:44
turdmonkey joined
23:45
turdmonkey is now known as Bowlslaw,
sena_kun joined
|
|||
| benjikun2 | Bowlslaw: welcome back | 23:46 | |
| how are you | |||
|
23:46
benjikun left,
benjikun2 is now known as benjikun
23:47
kurahaupo joined
|
|||
| Bowlslaw | Thanks, benjikun. Things are going well. I'm developing my web crawler to help me learn about Perl 6's concurrency | 23:48 | |
| benjikun | Sweet | ||
| Bowlslaw | github.com/Bowlslaw/webcrawler/blo...crawler.p6 | 23:49 | |
| print-urls isn't used at the moment | 23:50 | ||
| I just figured out how to normalize the urls into a common form which can be used predictably later | 23:51 | ||
|
23:51
Ven` joined
23:54
mcmillhj joined
23:56
Ven` left,
perlpilot joined
23:58
mcmillhj left
23:59
lizmat left
|
|||