»ö« 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. |
|||
timotimo | so i'd press left-arrow and i'd get the ESC and the [, but then i press q and i get D, then i press q again and i get q | 00:00 | |
i used termios' makeraw command for this | 00:01 | ||
and why is termios' examples working on fd 1 instead of 0? well, probably because stdout, stderr, and stdin are usually all the same fd under the hood? | 00:02 | ||
00:03
Sound joined,
Sound is now known as Guest21284,
Guest21284 left
00:08
imcsk8 joined
|
|||
geekosaur | more importantly they're usually the same terminal | 00:08 | |
and, hiistorically, there used to be some oddnesses where some systems only let you do certain operations if the fd was open for read instead of read/write or write | 00:09 | ||
(early termios was often emulated on top of the native API) | 00:10 | ||
00:11
Sound_ joined
|
|||
samcv | ugexe, i'm working on that grammar atm | 00:11 | |
i have what you said in my comment working for one order of parens finally now for the other. | |||
progress | |||
00:14
geekosaur left
00:17
geekosaur joined
00:18
Sound_ left
00:19
Sound_ joined
00:20
Sound_ left,
Cabanossi left
00:22
Cabanossi joined
00:28
bjz joined
|
|||
timotimo | haha, my tired butt wasn't realizing i was dealing with strings | 00:32 | |
so "looming combiners" problem | |||
00:32
espadrine left
00:35
AlexDani` left
|
|||
timotimo | we might want to have a module that handles input via terminals as an event-based interface | 00:36 | |
so you'd get arrow keys, you'd get copy-paste, you'd get keys with ctrl held, stuff like that | 00:37 | ||
perhaps have a little bit of functionality for text input, too | |||
(because writing your own line editor is not a problem at all) | |||
mouse input, too | |||
raschipi | Transforming the terminal input into something more like what X11/Wayland does? | 00:39 | |
timotimo | i was thinking more like SDL, but it's all the same kind of deal | ||
BenGoldberg is hoping for some sort of Supply | 00:42 | ||
timotimo | a supply would probably be good | 00:43 | |
if you have something main-loop-like at all, supply doesn't make so much sense, i'm afraid | |||
raschipi | Then it would have to be more like curses, where the application has to poll input. | 00:44 | |
timotimo | again, like SDL | 00:45 | |
Geth | ecosystem: 9045b6bd8e | (Matt Oates)++ (committed using GitHub Web editor) | META.list Mark all MattOates repos as using META6.json |
||
u-ou | that sounds less perl6y than Supply | ||
timotimo | sure you can manipulate program state in an event-loop-like extra thread, which is what a supply would entail, i'd say | ||
it's not unlikely that i'd want to use supply api to do things like "figure out ansi escapes" | 00:46 | ||
raschipi | Create an auxiliary module that polls the input constantly and reemits the appropriate events on the supplie(s). | 00:49 | |
timotimo | right | 00:50 | |
it's easy to turn a supply into a channel | |||
in fact, i think a supply has a Channel method | |||
then you can receive stuff from the channel in your main loop | |||
samcv | uh ugexe i'm done with that script | 00:54 | |
err grammar | |||
ugexe, github.com/samcv/zef/blob/spdx-par...xparser.p6 | |||
err forgot to push. ok there | 00:55 | ||
01:02
quester left
|
|||
timotimo | sadly, batch with :seconds will not automatically spit out stuff when the seconds after the last item have elapsed | 01:05 | |
you'd have to regularly emit empty messages to cause that | |||
or i'd have to use throttle instead of batch | |||
hmm, throttle is also not the right thing, is it? | 01:06 | ||
01:06
ggoebel left
|
|||
u-ou | why would you hvae to emit empty | 01:08 | |
why would you have to emit empty? | |||
timotimo | so that you don't have to hit a key so that previous inputs would be recognized | ||
okay it's bedtime for me | 01:09 | ||
i'll ponder stuff s'more tomorrow | 01:10 | ||
seeya | 01:17 | ||
u-ou | night | ||
01:18
skink left
01:19
ggoebel joined
01:37
raschipi left
01:40
semigloss joined
|
|||
u-ou | why is python so popular | 01:41 | |
Juerd | Could be because it's pretty good. | 01:48 | |
02:04
skids joined
02:11
silug joined
02:19
Cabanossi left
02:22
Cabanossi joined
02:27
semigloss left
02:39
BenGoldberg left
02:45
noganex joined
02:49
noganex_ left
02:51
raiph left,
raiph joined
02:59
raiph left
03:00
raiph joined
03:12
BenGoldberg joined
03:19
bjz left
|
|||
samcv | ok i think Matt Oates wins internet points | 03:23 | |
for being the module that passed the 50% mark | |||
\o/ | 03:25 | ||
oh wait. | |||
it says 50%. is that exactly 50%... i thought i had big precision here. maybe it is. yes | |||
it's exactly 50%. | |||
so i guess the next person gets internet points? | |||
TEttinger | it's oates' other module | 03:28 | |
(just guessing) | 03:29 | ||
I mean, if I were going through updating more than one module, it wouldn't be simultaneous | |||
samcv | hmm? what wouldn't | ||
TEttinger | the updates | ||
samcv | it gets them from githubmaster though | ||
my checker. not the collation of meta files | 03:30 | ||
TEttinger | so oates would update to the 50% mark, then update another possible module he has maybe and pass that mark? | ||
samcv | sure | ||
anybody can get access to the points :) | |||
TEttinger | hehe | ||
03:35
Cabanossi left
03:36
Cabanossi joined
03:49
khw left
03:53
bjz joined
03:58
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
u-ou | hi perl6 | 04:17 | |
04:34
Cabanossi left
04:36
Cabanossi joined
04:42
labster left
|
|||
samcv | is this a useful thing. i made a module that as an argument takes an Array of pairs. where the key is identifier (name) and the value is an array of arguments | 04:50 | |
given to Proc::Async. so you can give it hundreds of things to run, and it will wait for all to run and then return the output from all 800 or so | |||
or however many you want | |||
i've experimented and that is faster than using start { } blocks, just creating a bunch of procayncs | 04:51 | ||
05:00
aindilis joined
|
|||
skids | If the start blocks were running external processes, I'd expect that to be faster... or were they doing just pure perl6 things? | 05:05 | |
05:07
poohman left,
poohman joined
|
|||
samcv | running programs | 05:08 | |
yeah it's for running programs mostly | |||
though you could run perl6 scripts if you wanted | |||
cause i needed a way to dl all 800 metadata files a sfast as possible cause i don't have all the time in the world lol | |||
so dl's in like 20 seconds? | 05:09 | ||
way less than super long many minutes get a coffee while you wait thing | |||
skids | Yeah then I'd expect Proc::Async to be the most direct interface to use, vs a start { run }. | 05:10 | |
samcv | i'm timing it now to see how fast it is | 05:12 | |
ok 32s for 822 processes | |||
.o(wonders how long it'd take 9000 echo processes | 05:14 | ||
05:15
poohman left
|
|||
samcv | uh oh | 05:16 | |
Unhandled exception in code scheduled on thread 15.... a few more times then too many open files XD | 05:17 | ||
i tried to do 9000 at once | |||
skids | That's probably a ulimit or some new fangled process group limit. | ||
samcv | i don't think i have a limit set hm | 05:18 | |
yeah i do not | |||
not ulimit at least | |||
e | |||
hmm system is at 1616326 | 05:19 | ||
skids | ulimit -Hn shows the per-user hard limit. | 05:22 | |
samcv | oh no | 05:23 | |
that's way too low | |||
05:24
aborazmeh left
|
|||
samcv | i love my `halp` utility. it acts like man sorta. you type `halp ulimit` and it checks if there's a man, otherwise checks if there's a -h or --help option, checks if there's any `info` command output | 05:26 | |
if it still can't find anything it asks if you want to google it, you type y or n | |||
so it does all that with typing one commad and brings you the information. infinitely useful | |||
github.com/samcv/scripts/blob/master/halp.sh | 05:27 | ||
nobody got time to try all like options of the command and man and info... | 05:28 | ||
skids | Speaking of time I should probably already be asleep by now :-). n8 | 05:30 | |
05:31
skids left
|
|||
samcv | ok it worked when i increased the soft limit to 4096 | 05:35 | |
05:38
cyphase left
05:46
kurahaupo left
05:51
cyphase joined
06:06
sena_kun joined
06:13
Grauwolf joined,
Grauwolf left,
Grauwolf joined
06:19
Cabanossi left
06:21
Cabanossi joined
06:29
CIAvash joined
06:38
wamba joined
06:41
parv joined
06:50
BenGoldberg left
06:55
bioexpress joined
|
|||
bioexpress | Hello, can somebody tell me, why the >"license" : "Artistic-2.0",< line is removed from the META6.json file, if i call >mi6 build<? | 07:06 | |
sena_kun | bioexpress, seems like a bug. | 07:09 | |
.seen skaji | 07:10 | ||
yoleaux | I saw skaji 8 Dec 2016 00:54Z in #perl6: <skaji> If I create a long running program, I want to make sure no resouce leak occur. | ||
sena_kun | skaji, ping. | ||
07:12
mr-foobar joined
07:13
wamba left
|
|||
sena_kun | not sure about a quick reply, though. bioexpress, I think, you can open an issue at github.com/skaji/mi6/issues | 07:13 | |
07:14
wamba joined
|
|||
bioexpress | Ok, thx. | 07:14 | |
07:18
bioexpress left
07:31
setty1 joined
07:33
Actualeyes left
07:40
labster joined
|
|||
sammers | hi all | 07:50 | |
sena_kun | sammers, o/ | ||
sammers | hello | ||
is HardRoutine still a thing? There is nothing in docs about it but it is mentioned here github.com/perl6/specs/blob/master...utines.pod | 07:52 | ||
07:55
Actualeyes joined
08:11
rindolf joined
08:14
pierre_ joined
|
|||
moritz | no | 08:17 | |
at least, it was never implemented | |||
08:21
AlexDani` joined,
AlexDani` is now known as AlexDaniel
|
|||
sammers | thanks moritz | 08:28 | |
08:45
CIAvash left
|
|||
sammers | m: my $str := 'Hello'; $str := 'World'; say $str; | 08:58 | |
camelia | World | ||
samcv | ugexe, playing around with a parser class for spdx grammar. this is my first real parser class. so i could be doing horrible things :) | 09:00 | |
09:01
parv left
|
|||
samcv | keeping it here github.com/samcv/SPDX-Parser | 09:01 | |
09:30
kurahaupo joined
09:33
Actualeyes left
|
|||
samcv | ack grammars are hard. i just keep making things worse | 09:41 | |
09:42
Actualeyes joined
|
|||
samcv | the methods called in the 'parser' class when you parse a regex. what order are they called in? | 09:42 | |
09:46
Actualeyes left
09:48
Cabanossi left
09:49
kurahaupo left
09:51
Cabanossi joined
09:52
pierre_ left
09:54
damnlie left
10:03
damnlie joined
10:05
espadrine joined
10:08
pmurias joined
|
|||
timotimo | excuse me, what? :) | 10:09 | |
what parser are you refering to? | 10:10 | ||
10:16
labster left
10:28
TEttinger left
10:34
Grauwolf left
10:35
Cabanossi left
10:36
Cabanossi joined
10:42
bjz_ joined
10:44
bjz left
10:45
cyphase left
10:50
felher joined
|
|||
Geth | Swapped META.info → META6.json in 2 dists in github.com/perl6/ecosystem/commit/a5c7bb82d4 | 10:53 | |
samcv | one i made timotimo | 10:56 | |
i just linked to it :> | |||
github.com/samcv/SPDX-Parser | |||
10:57
cyphase joined,
Actualeyes joined
|
|||
timotimo | yeah, but what do you mean by "methods in the parser class"? | 11:04 | |
11:04
Cabanossi left
11:05
Grauwolf joined
11:06
Cabanossi joined
|
|||
samcv | github.com/samcv/SPDX-Parser/blob/...m6#L54-L98 | 11:13 | |
Grammar::SPDX::Expression.parse(@list[4].key, actions => parsething.new); | |||
uses parsething class to uh parse i guess. or actions | 11:14 | ||
timotimo | yeah, we call those action methods | ||
samcv | this is new to me. so maybe it's called actions class | ||
ok | |||
timotimo | an action method is called as soon as a same-named token/regex/rule in the grammar has successfully parsed | 11:15 | |
samcv | yeah the action methods are called in an order that confuses me | ||
ok well it seems to parse the shorter ones first | |||
so i guess i need to make uh. different tokens that have a usable $/ | |||
because the ones called first don't help me if i don't know where the parenthesis are and things. | 11:16 | ||
timotimo | "shorter ones"? | ||
samcv | the <simple-expression> tokens. the smaller ones | ||
timotimo | if you have nested matches, the "innermost" stuff will be called first | ||
samcv | i want the opposite :P | 11:17 | |
timotimo | just have the logic in the outer action methods | ||
samcv | ok so i need to ignore the innermost. and then access the innermost matches from the outer tokens? | ||
ok | |||
jnthn | Or have the innermost ones produce things that the outer ones can put together | 11:18 | |
samcv | i tried that. but it got confusing | ||
and got bad fast. i mean it works for some cases atm. but others it explodes because it's. uh. how i did it is not good. will try something else | |||
jnthn | :) | ||
samcv | ok. i access it with $<foo> for token foo { }; but what if i have token foo:sym<baz> | 11:20 | |
i know i can use $<foo> but any way to tell which sym it was that matched? | |||
timotimo | i believe the individuals take the common spot? | ||
since the name it gets installed for is determined by what the calling regex looks like | 11:21 | ||
like, when you have <foo>, it'll be in $<foo>, if you have <baz=foo> you'll have $<foo> and $<baz> holding this, if you have $<foo>=[abc] it'll have something in $<foo>, too | 11:22 | ||
samcv | ok but what if i don't have any = | 11:23 | |
than it's indistinguishable? | |||
11:24
vips joined
|
|||
vips | hi | 11:25 | |
pmurias | hi | ||
samcv | hi | ||
timotimo | no, it's just what's inside the < > | 11:26 | |
vips | i am interested in Perl 6 libraries enrichment, please let me know if i can take some part. | 11:29 | |
timotimo | cool | 11:31 | |
there's a "most wanted" list that you can get ideas from if you want, otherwise you can build whatever you find interesting and/or useful | |||
vips | cool | 11:32 | |
timotimo | github.com/perl6/perl6-most-wanted...modules.md - there it is | 11:33 | |
vips | thanks :) | 11:34 | |
timotimo | the link "native library bindings" at the top of this document is also interesting | 11:35 | |
please be aware that this page isn't necessarily updated as soon as something happens, though | |||
and i'm not sure why there's a "Databases" section with Sql in it that doesn't also list DBIish? | 11:36 | ||
vips | hmm | 11:38 | |
11:47
mr-foobar left
11:51
vips left
|
|||
timotimo | well, it's clearly not infallible :) | 11:53 | |
11:56
mr-foobar joined
|
|||
samcv | m: say 'MIT OR GPL-1.0 OR BSD' ~~ / ( \S+) <.ws> (\S+)/; | 12:03 | |
camelia | 「MIT OR」 0 => 「MIT」 1 => 「OR」 |
||
samcv | is there way i can do this but uhm | ||
i need to match infinite numbers of them | |||
like as string of LICENSE OR LICENSE OR LICENSE | |||
timotimo | m: say 'MIT OR GPL-1.0 OR BSD'.words.perl | 12:04 | |
camelia | ("MIT", "OR", "GPL-1.0", "OR", "BSD").Seq | ||
samcv | no with grammars | ||
timotimo | you could put [ ] around it and a + after the ] | ||
samcv | then i tbecomes (\S+) <.ws> OR (\S+) (\S+) OR (\S)+ | 12:05 | |
which is double the number | |||
timotimo | huh? | ||
oh | |||
yeah, you want to use the % operator | |||
12:05
Cabanossi left
|
|||
timotimo | m: say 'MIT OR GPL-1.0 OR BSD' ~~ / (\S+)+ % (\S+ <.ws>) / | 12:06 | |
camelia | 「MIT」 0 => 「MIT」 |
||
timotimo | m: say 'MIT OR GPL-1.0 OR BSD' ~~ / (\S+)+ % (<.ws> \S+ <.ws>) / | ||
camelia | 「MIT OR GPL-1.0 OR BSD」 0 => 「MIT」 1 => 「 OR 」 0 => 「GPL-1.0」 1 => 「 OR 」 0 => 「BSD」 |
||
12:06
Cabanossi joined
|
|||
samcv | so that extends the left hand side? | 12:06 | |
or the right hand side | |||
Geth | doc: c7e32e2c2b | (Zoffix Znet)++ | doc/Type/IO/Spec/Unix.pod6 [io grant] Document IO::Spec::Unix.curupdir |
12:07 | |
timotimo | it extends the lhs, by putting the rhs in between instances of the lhs | ||
samcv | ok cool | ||
got it | |||
12:11
dct joined
|
|||
Geth | doc: 2f2686b71f | (Zoffix Znet)++ | 8 files Add "Defined as" prefix text before sig codes Like we commonly have in the rest of the docs |
12:15 | |
12:20
dct left
|
|||
samcv | m: say 'THAT OR THIS OR GPL' ~~ / [\S+ ' OR ' ]+ % \S+ /; | 12:25 | |
camelia | 「THAT OR THIS OR 」 | ||
samcv | help | ||
12:25
leah2 joined
|
|||
timotimo | well, yeah | 12:25 | |
why do you put OR there and not in the %? | 12:26 | ||
samcv | timotimo, your example isn't helping me that much because you use \S for everything. but OR needs to be seperate | ||
timotimo | because % makes sure to not require the thing at the end | ||
samcv | ah | ||
timotimo | (except if you use %% which optionally allows the in-between thing to occur once at the end as well) | ||
Geth | doc: fe489dc161 | (Zoffix Znet)++ | doc/Type/IO/Spec/Unix.pod6 [io grant] Document IO::Spec::Unix.curdir |
||
samcv | m: say 'THAT OR THIS OR GPL' ~~ / [ \S+ ]+ % ' OR ' /; | ||
camelia | 「THAT OR THIS OR GPL」 | ||
samcv | yay | ||
thank you! | 12:27 | ||
omg this saved my life | |||
timotimo | p6 regex are cool :) | 12:29 | |
AlexDaniel | u: bullet | 12:31 | |
unicodable6 | AlexDaniel, U+2022 BULLET [Po] (•) | ||
AlexDaniel, U+2023 TRIANGULAR BULLET [Po] (‣) | |||
AlexDaniel, 14 characters in total: gist.github.com/b783771d5924f59760...fbee9b3dd7 | |||
12:33
Cabanossi left
|
|||
Geth | doc: 83d5de0f28 | (Zoffix Znet)++ | doc/Type/IO/Spec/Unix.pod6 [io grant] Document IO::Spec::Unix.updir |
12:36 | |
12:36
Cabanossi joined
12:37
chansen_ joined
12:40
pnu__ joined,
ggherdov joined
12:48
rodarmor joined
|
|||
samcv | now i got infinite loop :( | 12:50 | |
of matches | |||
12:50
araraloren joined
|
|||
timotimo | why can't i hold all of these matches | 12:51 | |
samcv | oh it goes a level deeper each time | ||
of the exact same match | 12:52 | ||
timotimo | huggable: speed | ||
huggable | timotimo, tux.nl/Talks/CSV6/speed4.html | ||
timotimo | huggable: test-t.pl | ||
huggable | timotimo, nothing found | ||
timotimo | buggable: speed | ||
buggable | timotimo, ▁▃▁▁▂▄▅▂▄▂▃↑▆▃▂▄▄▄▄▄▄▅▄▄↑▅▇▆▅▅▅▇▆▅▄▅▅▂▂▃▄▄↑▆▅▅▅▇█▄ data for 2017-04-10–2017-04-30; range: 4.921s–5.479s; 4% slower | ||
timotimo | ... | ||
what's the fact that tells me how to properly prepare hello.csv? | |||
12:53
w4and0er96 joined
|
|||
timotimo | is it 50k lines? | 12:53 | |
12:53
pierre_ joined
12:56
Actualeyes left
12:58
pierre_ left
|
|||
samcv | i'll work on this again tomorrow ugh | 13:05 | |
the reason i did it crappily was because it would just loop forever :( | |||
but then that makes the $/ i need to parse not good at all in actions methods | 13:06 | ||
timotimo | were you giving it a way to match the empty string multiple times in a row? | ||
because it'll happily match the empty string at any position as often as it can | |||
which is very often | |||
13:08
cgfbee left
|
|||
samcv | uhm github.com/samcv/SPDX-Parser/blob/...Parser.pm6 | 13:08 | |
timotimo | any luck with Grammar::Tracer or something? | ||
when i run spdxtest.t it doesn't infiniloop; can you upload your latest code? | 13:09 | ||
oh, i'm on master | |||
samcv | ye | ||
timotimo | good | ||
samcv | grammar tracer is broken | ||
and so is grammar debugger | |||
annot invoke this object (REPR: Null; VMNull) | |||
timotimo | whoops, it crashes, yeah | ||
13:11
Actualeyes joined
|
|||
timotimo | it might just be that terminal::ansicolor changed from beneath it | 13:11 | |
hm, dunno, perhaps it just explodes on the first line | 13:13 | ||
samcv | oh grammar::debugger? | 13:14 | |
i gotta go to bed! | |||
o/ night | |||
timotimo | nite! | 13:15 | |
Geth | doc: 4804128065 | (Zoffix Znet)++ | doc/Type/IO/Handle.pod6 [io grant] Document IO::Handle.DESTROY |
13:16 | |
doc: 987f735743 | (Curt Tilmes)++ (committed by Zoffix Znet) | doc/Language/ipc.pod6 Added a note about run/shell exceptions due to non-zero exits (#1294) * Add section on rendering Pod to Text * typo head => head2 * Add note about run/shell exceptions |
13:22 | ||
doc: 3023441a8c | (Zoffix Znet)++ | doc/Language/ipc.pod6 Reword; use better idiom for not-sinking |
13:24 | ||
13:29
kurahaupo joined
13:30
astj joined
13:37
pierre_ joined
13:38
semigloss joined
|
|||
Geth | perl6-examples: 0c96817860 | (Shlomi Fish)++ | categories/euler/prob125-shlomif.p6 Remove some unneeded quotes. |
13:44 | |
perl6-examples: 13312f174f | (Shlomi Fish)++ | categories/euler/prob125-shlomif.p6 Convert to SetHash. |
|||
perl6-examples: 9640e566d6 | (Shlomi Fish)++ | categories/euler/prob601-shlomif.p6 Add solution to Euler #601. Based on: github.com/shlomif/project-euler/b..._601_v1.py It emits identical output to it, but it is much slower than when the original code is ran by cpython2, cpython3 or especially pypy2. |
|||
13:57
khw joined
13:58
bjz_ left
14:02
bjz joined
|
|||
robertle | I often do something like "our $DEBUG = False" in a module or even class, and then conditionally emit extra output. this way you can turn on the extra debug from the outside. seen this a million times all over other people's code too. is this (still?) a good thing to do? or is there a neater way to achieve the same? | 14:10 | |
and if this isn't a terrible thing to do, how do I do it in a role? they seem to have a (to me) surprising behavior around packages/namespaces... | 14:11 | ||
14:13
pierre_ left
|
|||
DrForr | robertle: I actually prefer $*DEBUG for that sort of thing. | 14:15 | |
robertle | so a single global one rather than one per namespace? | 14:18 | |
14:18
felher left,
leah2 left
|
|||
timotimo | i'd introduce an environment variable, since it's not always possible to go into the code where i'd have to set the $DEBUG or $*DEBUG to make the right stuff appear | 14:20 | |
robertle | right, that's an option as well! | ||
14:20
zakharyas joined
|
|||
robertle | btw: shouldn't $*DEBUG be listed on docs.perl6.org/language/variables? | 14:20 | |
DrForr | It's just a dynamic variable, not a "special" | 14:21 | |
robertle | right | ||
DrForr | And yeah, if you want to do multiple types of debugging, using %*ENV is another way to go. | 14:22 | |
You still run the risk of name conflicts either way. | 14:23 | ||
robertle | ..which is where the "our" approach is really nice! | ||
14:24
felher joined
|
|||
DrForr | In my case I have a few things I want to turn on just inside test scripts, extra validation and such that end users don't need. | 14:25 | |
14:25
astj left
|
|||
robertle | ok, I think that gives me enough options and ideas. another question: sometimes I have functionality that I could expose through a pure procedural interface, but that are often used in an OO fashion | 14:26 | |
so for simple cases, I currently do e.g. a "unit role XYZ" with some methods in it | |||
but also have sub mystuff() is export in the same file. this way IO can use the same module either in a OO fashion or procedurally | 14:27 | ||
typically the two fall abck to common "my sub" implementations" | |||
the whole thing feelks a bit like a hack and a bit dirty as well. is it? am I relying on some behavior that is going to go away? | 14:28 | ||
DrForr | It's a bit more work to keep in sync, certainly. I don't think you're relying on shady behavior though. | 14:31 | |
14:35
bjz left
14:36
Cabanossi left
14:38
Cabanossi joined
14:41
leah2 joined
|
|||
Geth | perl6-examples: 0179ad6c6b | (Paul Cochrane)++ | .gitignore Ignore all .precomp dirs |
14:54 | |
perl6-examples: f07c780949 | (Paul Cochrane)++ | README.md Fix quoting in README |
|||
15:02
leah2 left
15:04
lorenzoi joined
|
|||
lorenzoi | hello, is it possible to use variables in HashMap accessing, i.e `my %hash = ("x" => "Some Value") ; my $variable = "x"; randomHash<$variable>` | 15:06 | |
oops i meant `%hash<$variable>` | 15:07 | ||
timotimo | of course | ||
just use { } instead of < >, or use << >> | |||
lorenzoi | oh, thanks! | ||
timotimo | < > is much like ' ', it makes strings and won't let you interpolate stuff | ||
but << >> is like " ", which allows interpolation | 15:08 | ||
and { } is hash access without stringifying | |||
DrForr | <> are for qw-like stuff, no interpolation. | ||
15:08
astj joined
15:10
leah2 joined,
leah2 left
|
|||
robertle | I was wondering what the reason to use < > over { } for hash acces was? I have seen it but can't find a good reason. except that it saves you the extra quotes... | 15:11 | |
15:11
leah2 joined
|
|||
timotimo | it saves you quotes and commas | 15:11 | |
you quite commonly have literal hash keys in your code | 15:12 | ||
araraloren | it press easier than {} | ||
robertle | that's what I thought. I am personally not so tight on individual characters ;) | ||
araraloren | haha.. | ||
15:13
astj left
|
|||
timotimo | < > is also a signal for "only literals here" | 15:13 | |
whereas { } could have anything in it, including flattening | |||
lorenzoi | I just read the perl6 intro site, it doesn't include the <<>> thing. | ||
timotimo | perl6intro is just an intro :) | 15:14 | |
DrForr | lorenzoi: There's lots of stuff it doesn't cover :) | ||
lorenzoi | is there a better documentation then? | ||
that has a layout like perl6 intro? | |||
15:14
pierre_ joined
|
|||
DrForr | docs.perl6.org | 15:14 | |
timotimo | the "language" section of docs.perl6.org is probably what you're looking for | 15:15 | |
lorenzoi | oh .__. | ||
araraloren | You can refer this docs.perl6.org/language/quoting | 15:16 | |
lorenzoi knows nothing | |||
araraloren | It covered Perl6 quote syntax | ||
15:18
Actualeyes left
15:19
pierre_ left
15:29
stmuk joined
15:30
stmuk_ left
15:33
ChoHag left
15:37
stmuk_ joined
15:38
stmuk left
|
|||
lorenzoi | is there a way to make strings come out colored in the terminal? | 15:46 | |
araraloren | maybe you can use a module | 15:47 | |
lorenzoi | oh. | ||
15:48
rindolf left
|
|||
araraloren | modules.perl6.org/#q=color | 15:48 | |
Here is the module list of Perl 6 | |||
gfldex | lorenzoi: see line 33-45 in github.com/gfldex/perl6-meta6-bin/...in.pm6#L33 | 15:49 | |
DrForr | lorenzoi: Terminal::ANSIColor | ||
gfldex | then you just `say RED "your string here";` | ||
lorenzoi | gr8 | 15:50 | |
15:50
rindolf joined
|
|||
lorenzoi thinks that perl6 is better than python | 15:51 | ||
lorenzoi thinks that perl6 is better than python in syntax and community | |||
araraloren | :) | ||
gfldex | m: my &BOLD = sub (*@s) { "\e{@s.join('')}\e" }; say BOLD "foo"; | ||
camelia | foo | ||
gfldex | github is busy today. I'm getting loads of timeouts. | 15:53 | |
what is nice because I wanted to teach META6::bin how to retry anyways :) | |||
araraloren | m: my &RED = sub (*@s) { | 15:54 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Missing block at <tmp>:1 ------> 3my &RED = sub (*@s) {7⏏5<EOL> |
||
araraloren | "\e{@s.join('')}\e" | ||
}; say RED "I love Perl 6"; | |||
m: my &RED = sub (*@s) { "\e{@s.join('')}\e" }; say RED "I love Perl 6"; | |||
camelia | 5I love Perl 6 | ||
15:55
felher left
|
|||
gfldex | m: my &RED = sub (*@s) { "\e{@s.join('')}\e" }; say RED "Perl 6 ♥ araraloren"; | 15:55 | |
camelia | 5Perl 6 ♥ araraloren | ||
15:56
BenGoldberg joined
15:58
stmuk joined
16:01
stmuk_ left
|
|||
lorenzoi | im a weird person, I like having scopes in my code for testing. | 16:02 | |
16:06
stmuk left
16:07
stmuk joined
|
|||
timotimo | i don't know what that means | 16:07 | |
lorenzoi | a scope like `{ my $x = "Valid" } say $x #invalid` | 16:12 | |
well I call 'em scopes cause I also write Rust. | 16:13 | ||
timotimo | ah | ||
yeah, lexical scopes | |||
i don't know what "for testing" means in this case, though? | |||
araraloren | Rust is a good language .. | ||
lorenzoi | oh i mean when I want to test a feature in my code without screwing anything up, trust me it happened before. | 16:14 | |
to me | |||
16:16
pierre_ joined,
stmuk_ joined
|
|||
timotimo | oh, right | 16:17 | |
16:19
stmuk left
16:20
pierre_ left,
stmuk joined
16:23
stmuk_ left
16:30
ChoHag joined
16:31
stmuk_ joined
16:32
stmuk left
16:34
zakharyas1 joined,
stmuk joined
16:35
zakharyas1 left,
zakharyas1 joined
16:37
stmuk__ joined,
stmuk_ left
16:39
stmuk_ joined,
zakharyas1 left,
Cabanossi left,
stmuk left
16:40
lorenzoi left
16:41
stmuk__ left,
Cabanossi joined
17:16
domidumont joined
17:21
domidumont left
17:22
domidumont joined
17:23
lorenzoi joined
|
|||
lorenzoi | success fully writen FizzBuzzWolf in 29 Lines of Pure Perl6 :) | 17:23 | |
Take that Rust :P | 17:24 | ||
gfldex | lorenzoi: please share! | 17:30 | |
lorenzoi | ok! | ||
17:30
labster joined
|
|||
lorenzoi | gist.github.com/lorenzoi/d1bd869b0...477cab454b | 17:32 | |
araraloren | m: say 25 %% 5; say 25 %% 6; | 17:33 | |
camelia | True False |
||
araraloren | You can use %% replace `% =` | ||
lorenzoi | TIMTOWTOI | 17:34 | |
DrForr | Change the 'say' to '$str += "Fizz";' and so on, and you can get rid of all but the last 4 cases :) | ||
lorenzoi | *TINTOWTDI | ||
**TIMTOWTDI | 17:35 | ||
DrForr | Of course TIMTOWTDI as well :) | ||
lorenzoi | best thing is I wrote it First Try :) and its my first day writing Perl 6. | 17:36 | |
DrForr | Party on! | ||
How are you liking it so far? | |||
lorenzoi | its awesome. | 17:37 | |
DrForr | Great! Where'd you hear about it? | 17:38 | |
lorenzoi | I knew about it for a long time, I first heard about it in a Youtube Video. | 17:40 | |
DrForr | Cool. You remember what the video was? (Just getting an idea of where people find out about this.) | 17:42 | |
lorenzoi | www.youtube.com/watch?v=LR8fQiskYII&t Title: Larry Wall: 5 Programming Languages Everyone Should Know (and of course he has perl in there, he created it. :P ) | 17:44 | |
DrForr | Neat! Glad to see it's getting around. | 17:45 | |
lorenzoi | The comment section is full of Perl haters XD | 17:47 | |
17:48
skids joined
|
|||
DrForr | Color me surprised. | 17:48 | |
17:49
lorenzoi left
|
|||
DrForr | Suppertime here. Glad to see more people coming onboard. | 17:52 | |
gfldex | lolibloggedalittle: gfldex.wordpress.com/2017/04/30/is...he-things/ | 18:09 | |
lizmat | gfldex++ | 18:10 | |
timotimo | i find the stray "cd ../perl6-concurrent-channelify" in the output a bit confusing | 18:11 | |
gfldex | timotimo: I just wanted to find out if anybody would actually read that wall of text. :-> (also, fixed) | 18:12 | |
timotimo | hah | 18:13 | |
18:13
zakharyas left
18:17
pierre_ joined,
ugjka_ joined
|
|||
timotimo | so will there also be a quick way to get issues for all dependencies (maybe even transitive) of your module? | 18:17 | |
(and no, i don't want to also get rakudo, nqp, and moarvm issues in there, too :D) | |||
18:17
obfusk_ joined
18:18
obfusk left
|
|||
gfldex | timotimo: wont be hard to implement, it's just a tree walk after all | 18:19 | |
18:19
ugjka_ is now known as ugjka
18:20
ugjka is now known as UgJkA,
UgJkA is now known as ugjka
18:22
pierre_ left
18:24
ugjka is now known as UgJkA
|
|||
timotimo | right | 18:24 | |
not even sure if i want this feature for actual use | 18:25 | ||
18:25
Cabanossi left
18:26
Cabanossi joined
|
|||
rindolf | Hi all! Can this be made faster while using the same algo - github.com/perl6/perl6-examples/co...a2c5303035 ? | 18:26 | |
lizmat | rindolf: += is still poorly optimized, you could try using $i = $i + $l | 18:29 | |
timotimo | i'd use a brace-less if for the ++$ret piece of code | 18:30 | |
though i'd imagine it'd be inlined by the optimizer already | |||
18:30
pecastro left
|
|||
lizmat | timotimo: yeah, in my experience it is when hot enough | 18:38 | |
timotimo | i meant by the static optimizer actually | ||
18:42
labster left
18:44
labster joined
18:58
domidumont left,
araraloren left
|
|||
rindolf | lizmat: ah | 19:00 | |
19:01
yqt joined
|
|||
timotimo | rindolf: will you share your results? also, have you already tried perl6 --profile yourscript.p6? | 19:01 | |
rindolf | timotimo: i have not. | ||
19:02
dustinm` left
|
|||
timotimo | i tend to go directly to the "routines" tab and sort by "exclusive time" and see which routines show up on top | 19:03 | |
19:07
noganex left,
zakharyas joined
|
|||
Geth | perl6-examples: b5fd7f5640 | (Shlomi Fish)++ | categories/euler/prob601-shlomif.p6 Some optimizations. |
19:09 | |
rindolf | timotimo: i only have one time-consuming routine there | ||
19:11
dustinm` joined
19:14
espadrine left
|
|||
timotimo | calc_P? | 19:15 | |
rindolf | timotimo: here is the profile - www.shlomifish.org/Files/files/text...16345.html | ||
timotimo: yes | |||
timotimo | heh. | ||
well, that doesn't tell us terribly much | |||
but you're spending 50% of total time running % | 19:16 | ||
have you considered using %% instead of %? | |||
rindolf | timotimo: i don't know what %% is | ||
doc: %% | |||
timotimo | a %% b is true if a is evenly divisible by b | 19:17 | |
19:17
sena_kun left
|
|||
MasterDuke_ | i don't think there is a doc bot, but it's a good idea... | 19:17 | |
timotimo | doesn't sound like a bad idea, yeah | 19:18 | |
MasterDuke_ | rindolf: have you tried making variables native ints? | 19:19 | |
timotimo | for % to %% you'll of course have to flip if to unless | ||
rindolf | MasterDuke_: no, but they need to be 64-bit | 19:20 | |
timotimo | huh, it's hardly any faster at all | ||
native ints on moarvm are always 64bit | |||
MasterDuke_ | native ints are 64bit if you're on a 64bit system | ||
rindolf | MasterDuke_: ah | 19:21 | |
MasterDuke_ | timotimo: i've found %% to usually be slower, since it calls % it just creates an extra method call | ||
19:21
programmingnewbi joined
|
|||
programmingnewbi | Hello everyone. I have a question. Is Perl6 production ready? | 19:22 | |
timotimo | why does it call %? | ||
it shouldn't need to do that, tbh | |||
let me loook | |||
programmingnewbi: we almost always say "it depends on your use case". got any more detail to help us answer your questions? | 19:23 | ||
MasterDuke_ | timotimo: github.com/rakudo/rakudo/blob/07fe...ic.pm#L240 | ||
19:24
Cabanossi left
|
|||
timotimo | dang | 19:24 | |
MasterDuke_ | looks like it doesn't anymore for the Int, Int case | ||
timotimo | at least for Int, Int it's a little bit better, yeah | ||
dogbert17 | well, making $l, $i and $t native ints gives a nice boost for starters | ||
programmingnewbi | Yes. I'm interested in using perl 6 as a backend language. Currently just learned basic frontend stuff and wondering what to learn next. Perl6 seemed like the best choice given its support for parallelism and concurrency | ||
timotimo | the one that's being called is from Int.pm fwiw | ||
rindolf | dogbert17: do you have a patch? | 19:25 | |
dogbert17 | fake patch, the first four lines in Calp_P | 19:26 | |
my int $l = [lcm] 1 .. $s; | |||
19:26
Cabanossi joined
|
|||
dogbert17 | my int $i = 0; | 19:26 | |
my $ret = 0; | |||
timotimo | programmingnewbi: yeah, it isn't bad for that. it used to crash semi-regularly when you used parallel stuff, but our lead technical designer spent a lot of time and energy on fixing that | ||
dogbert17 | my int $t = $s + 1; | ||
it should be a measurable difference | 19:27 | ||
19:28
Cabanossi left
|
|||
programmingnewbi | @timotimo thanks for the answer | 19:28 | |
19:28
Cabanossi joined
|
|||
timotimo | is there really no %% candidate for native ints? | 19:29 | |
MasterDuke_ | was just wondering that myself | ||
timotimo | oh MasterDuke_, wanna do the renames for sql stuff together or something | ||
also, wanna put in more "primary key" things? | 19:30 | ||
MasterDuke_ | timotimo: sure | ||
Geth | perl6-examples: 1fe0a7587c | (Shlomi Fish)++ | categories/euler/prob601-shlomif.p6 Speedup by using native ints. Thanks to dogbert17 . |
19:31 | |
MasterDuke_ | timotimo: i thought i saw you mention something before? callee_id -> id? | ||
timotimo | yep, that's one | 19:32 | |
rindolf | dogbert17: thanks! | ||
timotimo | say, don't we also have deopt_all data somewhere in there? | 19:33 | |
yeah, we totally do | |||
dogbert17 | rindolf: np :) if you make $M a native int as well you'll se another boost | ||
timotimo | and it's not getting put into the sql output yet | ||
MasterDuke_ | timotimo: yeah, i just see deopt_one | 19:34 | |
timotimo | yup, just get the deopt_all key from the hash as well | ||
rindolf | dogbert17: i already did | ||
dogbert17 | :) so now performance should be decent ata least | 19:35 | |
MasterDuke_ | timotimo: deopt_all is an INT also? | ||
timotimo | yep | 19:36 | |
just a count | |||
i kind of wish we could have optimizations for "we know the second arg is nonzero" in the static optimizer or something | |||
MasterDuke_ | timotimo: the `caller_id, callee_id` order i believe is an artifact from how i grabbed them before. i'm going to switch to `id, caller_id` | 19:38 | |
timotimo | can we call it parent_id? | 19:43 | |
that makes it a bit more obvious, i think, that it's a tree structure | |||
MasterDuke_ | sure | 19:46 | |
timotimo | allocations is strange | 19:47 | |
why does it have a caller_id and a callee_id? | |||
MasterDuke_ | cause i wasn't sure which was needed at first | 19:49 | |
timotimo | so they just both get the same value? | ||
MasterDuke_ | no, the same values as a call entry at the same level | 19:50 | |
timotimo | ah, i see | 19:52 | |
okay, but the id from the calls table will be all we need | |||
MasterDuke_ | can you think of any real reason to have both? or should i just remove caller_id and rename callee_id to call_id? | 19:53 | |
19:54
TEttinger joined
|
|||
timotimo | i can't see a reason for both | 19:56 | |
if you have the calls.id it belongs to, you've also got the calls.parent_id that goes along with it | |||
MasterDuke_ | yep | 19:57 | |
19:57
labster left
20:05
espadrine joined
|
|||
MasterDuke_ | timotimo: github.com/perl6/nqp/pull/356 | 20:14 | |
20:22
dj_goku left
|
|||
japhb | .tell timotimo I noticed yesterday you were discussing raw and processed keyboard input in terminal UIs. See github.com/ab5tract/Terminal-Print...wInput.pm6 for early work on this, with github.com/ab5tract/Terminal-Print...es/tris.p6 for a test program. Last I tried it works fine right up until it stops accepting keyboard input; see github.com/ab5tract/Terminal-Print/issues/19 for the sa | 20:24 | |
yoleaux | japhb: I'll pass your message to timotimo. | ||
20:27
curt_ joined
20:28
stmuk joined
|
|||
curt_ | p6: my uint64 $x = 18446744073709551615; say $x; | 20:28 | |
camelia | -1 | ||
curt_ | Why not print '18446744073709551615'? | 20:30 | |
20:30
stmuk_ left
|
|||
MasterDuke_ | curt_: hmm, thought that had been fixed | 20:32 | |
c: releases my uint64 $x = 18446744073709551615; say $x; | 20:37 | ||
committable6 | MasterDuke_, ¦releases (18 commits): «-1» | ||
TreyHarris | has anyone written zef shell completions? I'm searching github but not finding anything | 20:45 | |
curt_ | p6: my uint64 $x = 18446744073709551615; say $x == 18446744073709551615 ?? "good" !! "bad"; | 20:54 | |
camelia | bad | ||
MasterDuke_ | c: releases my uint64 $x = 18446744073709551616; say $x; | 20:55 | |
committable6 | MasterDuke_, ¦releases (18 commits): «Cannot unbox 65 bit wide bigint into native integer in block <unit> at /tmp/D1P8KXcPfQ line 1 «exit code = 1»» | ||
Geth | Swapped META.info → META6.json in 8 dists in github.com/perl6/ecosystem/commit/9aab65394e | 20:56 | |
MasterDuke_ | hm, maybe it was just int64 that i fixed and haven't done uint64 yet | 20:58 | |
c: releases my int64 $x = 18446744073709551616; say $x; | 20:59 | ||
committable6 | MasterDuke_, ¦releases (18 commits): «Cannot unbox 65 bit wide bigint into native integer in block <unit> at /tmp/s1in6FNYUN line 1 «exit code = 1»» | ||
MasterDuke_ | c: releases my int64 $x = 2**63; say $x; | ||
committable6 | MasterDuke_, gist.github.com/23e49d799be41f8333...f3a05d2d61 | ||
MasterDuke_ | ah, that was it | 21:00 | |
curt_: so yeah, native uints don't work very well now (i.e., they pretty much act like ints, not uints) | 21:01 | ||
curt_ | ok, thanks | ||
21:03
bjz joined
|
|||
MasterDuke_ | i've been trying to fix it, but it's slow going (not my strong suit) | 21:04 | |
curt_ | MasterDuke_: Thanks for all your work. It is appreciated, even if there is still more to go.. | 21:05 | |
MasterDuke_ | curt_: of course if you know C... | 21:06 | |
21:07
Geth left
21:09
pecastro joined,
dj_goku joined,
dj_goku left,
dj_goku joined
|
|||
BenGoldberg | m: my uint32 $x = 2**31; say $x; | 21:11 | |
camelia | 2147483648 | ||
21:11
zakharyas left
|
|||
BenGoldberg | m: my uint32 $x = 2**32; say $x; | 21:11 | |
camelia | 0 | ||
BenGoldberg | m: my uint64 $x = 2**64; say $x; | 21:12 | |
camelia | Cannot unbox 65 bit wide bigint into native integer in block <unit> at <tmp> line 1 |
||
BenGoldberg | m: my uint8 $x = 2**8; say $x; | ||
camelia | 0 | ||
21:12
stmuk_ joined
|
|||
BenGoldberg | . o O (A little bit more consistency would be nice ;)) | 21:13 | |
21:14
dj_goku left
21:15
stmuk left
21:16
stmuk joined
21:17
stmuk_ left
21:24
stmuk_ joined
21:26
stmuk left,
stmuk joined
21:27
astj joined
21:29
stmuk_ left,
stmuk_ joined
|
|||
gfldex | timotimo: as requested `meta6 --issues --one-line --url --deps` | 21:30 | |
21:31
astj left,
stmuk left,
stmuk__ joined
21:32
zacts left
|
|||
timotimo | i hope it wasn't too much work :S | 21:32 | |
gfldex | timotimo: it would have been less work if github wouldn't be that slow today | ||
timotimo | are you running into rate limiting on their api? | 21:33 | |
gfldex | no, I'm hitting timeouts | ||
21:33
stmuk_ left
21:34
zacts joined
|
|||
timotimo | MasterDuke_: you know, we could even make call_id in allocations a primary key | 21:37 | |
21:37
ponbiki left
21:39
dct joined
|
|||
MasterDuke_ | not a unique one, but yeah | 21:40 | |
timotimo | wow, i didn't know about /dev/fd | ||
MasterDuke_ | timotimo: looks like `integer primary key` requires uniqueness, so no go | 21:55 | |
timotimo | oooh | ||
of course | |||
every routine allocates a bunch of different things | |||
we can make a primary key built from two fields, though | 21:56 | ||
routine and type | |||
21:57
Rawriful joined
|
|||
MasterDuke_ | could also do foreign key constraints | 21:58 | |
22:02
haxmeister joined
|
|||
haxmeister | hello perl | 22:02 | |
gfldex | m: say „Hallo haxmeister!“; | 22:03 | |
camelia | Hallo haxmeister! | ||
haxmeister | just getting started on some tutorials found at : perl6intro.com | ||
and ran into a snag with probably a simple explanation | 22:04 | ||
gfldex | place questions here ↓↓↓ | ||
haxmeister | the following example statment: say "folder123".IO.d; seems to work differently than I expected | ||
I use say "/var/tmp/portage".IO.d; | 22:05 | ||
it doesn't like that much | |||
that is a folder on my computer | |||
nay | |||
I'm an idiot | 22:06 | ||
lol | |||
sorry for the screen litter, the problem is solved | |||
AlexDaniel | haxmeister: glad to help! :) | ||
haxmeister | :-P | 22:07 | |
timotimo | rather screen litter than kitty litter | ||
haxmeister meow | |||
AlexDaniel | .oO( if there are any other questions you can answer yourself, feel free to ask them! ) |
||
haxmeister | was writing a little perl6 script friday to search through some folders and make list of all files with a particular name.. had errors I didn't understand, will try to recreate it in the next few and see if I have better luck | 22:09 | |
I get confused dealing with files right now.. like the dir "some directory" | 22:10 | ||
22:10
Cabanossi left
|
|||
haxmeister | returning file objects.. and I get lost in what is an object or not because I'm a perl6 noob | 22:11 | |
22:12
Cabanossi joined
|
|||
timotimo | everything is an object, though | 22:12 | |
AlexDaniel | .oO( wait what? I'm not an object! ) |
||
m: say %*ENV<ME>.^mro | 22:13 | ||
camelia | ((Str) (Cool) (Any) (Mu)) | ||
gfldex | m: say "$*HOME".IO.WHAT | ||
camelia | (Path) | ||
haxmeister | jeese you guys are cracking me up... I'm liking this channel almost as much as funtoo.. | ||
gfldex | haxmeister: feed the typenames to docs.perl6.org/language.html | ||
AlexDaniel | at least it says that I'm cool… | ||
timotimo | AlexDaniel: it looks like you're cool | ||
yeah | |||
22:15
labster joined
|
|||
gfldex | m: say "timotimo" ~~ Cool; | 22:15 | |
camelia | True | ||
haxmeister | dir is a function.. can I use parenths around the quoted string? | 22:16 | |
timotimo | yup, but the ( has to touch the dir | ||
AlexDaniel | haxmeister: sure | ||
haxmeister | has to touch.. got it | ||
timotimo | well, if you have more than one argument | ||
gfldex | m: say dir("/home/camelia"); | ||
camelia | ("/home/camelia/.cpanm".IO "/home/camelia/.local".IO "/home/camelia/.npm".IO "/home/camelia/.perl6".IO "/home/camelia/.perlbrew".IO "/home/camelia/.rcc".IO "/home/camelia/.ssh".IO "/home/camelia/Perlito".IO "/home/camelia/evalbot".IO "/home/camelia/log".… | ||
timotimo | otherwise it makes no difference | ||
m: say dir ("/home/camelia") | |||
camelia | ("/home/camelia/.cpanm".IO "/home/camelia/.local".IO "/home/camelia/.npm".IO "/home/camelia/.perl6".IO "/home/camelia/.perlbrew".IO "/home/camelia/.rcc".IO "/home/camelia/.ssh".IO "/home/camelia/Perlito".IO "/home/camelia/evalbot".IO "/home/camelia/log".… | ||
timotimo | because foo (1, 2, 3) is a call to foo with a single argument. that argument is a list | ||
haxmeister | I have to use ().. or I struggle reading back through it..lol | 22:17 | |
gfldex | m: say "/home/camelia".&dir; | ||
camelia | ("/home/camelia/.cpanm".IO "/home/camelia/.local".IO "/home/camelia/.npm".IO "/home/camelia/.perl6".IO "/home/camelia/.perlbrew".IO "/home/camelia/.rcc".IO "/home/camelia/.ssh".IO "/home/camelia/Perlito".IO "/home/camelia/evalbot".IO "/home/camelia/log".… | ||
haxmeister | camelia drank to much coffee | ||
AlexDaniel | m: say "/".IO.dir | 22:18 | |
camelia | ("/boot".IO "/home".IO "/opt".IO "/srv".IO "/tmp".IO "/usr".IO "/var".IO "/etc".IO "/dev".IO "/proc".IO "/sys".IO "/run".IO "/lib".IO "/sbin".IO "/bin".IO "/lib64".IO "/mnt".IO "/root".IO "/selinux".IO) | ||
haxmeister | wait I can put a regex in a container and use it like that? | 22:20 | |
like this: my $build-log-regex = /build\.log/ ; | |||
timotimo | yeah, regexes are also just objects | ||
and so are functions, but you have to put the & in front of the name so that it's not just a call | 22:21 | ||
haxmeister | I can use that in place of m/regex/ ? | ||
AlexDaniel | m: my $r = / ‘build.log’ /; say ‘blahbuild.logblah’ ~~ $r | ||
camelia | 「build.log」 | ||
haxmeister | singl quotes will escape that . | 22:22 | |
? | |||
timotimo | m/regex/ will immediately match the regex against text | ||
gfldex | m: my $r = / „build.log“ /; say ‘blahbuild.logblah’ ~~ $r | 22:23 | |
camelia | 「build.log」 | ||
gfldex | any quite will | ||
haxmeister | kk ty | ||
timotimo | so you can't put it into anything because it'll immediately turn into the match result | ||
japhb | timotimo: Looks like yoleaux cut off my message in this channel; you can see the original almost exactly 2 hours ago in #perl6. | 22:24 | |
22:25
n0xff joined
|
|||
timotimo | i saw it, yeah | 22:25 | |
i was surprised you opened /dev/fd/* to get at the input | |||
22:25
bjz left
|
|||
timotimo | in my attempt at this i "start"ed the other code and had the main thread would go off to do the input stuff | 22:26 | |
22:27
brrt joined
|
|||
japhb | timotimo: The use case here is a library that can't assume it can take over the main thread. | 22:30 | |
But (for now at least) it *can* assume a posix-like system, because termios. | 22:31 | ||
timotimo | right | 22:32 | |
have you ever looked into sixel btw? | |||
that stuff is fascinating | |||
japhb | timotimo: You mean this? github.com/saitoha/libsixel | 22:33 | |
timotimo | yuppers | 22:34 | |
i compiled a mlterm so i can have sixel on my macine | |||
machine* | |||
22:34
dct left
|
|||
timotimo | i'm just now maybe actually switching from xfce to plasma5 | 22:35 | |
which means i'll probably be using Konsole in the future | |||
22:35
bjz joined
|
|||
timotimo | but Konsole can't sixel, iirc | 22:35 | |
it can, however, do 24bit color for text and background | |||
22:36
bjz left
|
|||
timotimo | maybe the konsole devs will be like "yeah, ok, we'll build in sixel support, that's fine. but you know what, we'll do you one better and make our sixels support 24bit colors!" | 22:38 | |
22:38
bjz joined,
bjz left
|
|||
u-ou | why don't cnosoles have that already | 22:39 | |
I mean terminals | |||
timotimo | what, 24bit colors or sixel graphics? | ||
u-ou | the former | ||
22:40
brrt left
|
|||
u-ou | I don't know what sixel is | 22:40 | |
timotimo | amazing is what sixel is | ||
so, sixel was meant for controling dot matrix needle printers | 22:41 | ||
but terminals also support(ed) it | |||
u-ou | I know, but terminals should have 24bit colour | ||
japhb | Wow, that is indeed really dang cool, timotimo -- thanks for pointing me to it! | 22:42 | |
timotimo | isn't it the best? | ||
japhb | u-ou: Some already do. I added support for it to Terminal::ANSIColor. | ||
timotimo | since there's a patch for SDL where you just set an env var and it outputs sixel instead of opening a window ... | ||
and there's an X server that renders to SDL instead of to a framebuffer | |||
japhb | timotimo: I can do SO MANY COOL THINGS | 22:43 | |
timotimo | ... endless possibilities | ||
you know what's missing, though? | |||
japhb | ... with this | ||
timotimo | stereo sound over ansi escape sequences | ||
japhb | LOL | ||
timotimo | okay, maybe it'd be better if it'd be just MIDI ... | 22:44 | |
for bandwidth reasons | |||
u-ou | lol | ||
timotimo | or just what you could do with a pc speakers back in the day | ||
because why have anything more modern than that in 2017 | |||
japhb | I will say one thing though: I'm already pushing the limits of older terminal emulators doing full-color mandelbrot output at two "pixels" per character cell -- you can watch the repaint -- I hate to imagine what poorly optimized terminals will do with escape sequences that dense | ||
I'm all for modtrackers built into my terminal | 22:45 | ||
timotimo | well, you know, sixel can be pretty performant | 22:46 | |
did you look at how it works internally? | |||
japhb | (I should mention I mean that you can watch the repaint when I just output a string containing the entire serialized screen full of escape sequences -- I'm not even counting the color calculations here, just the terminal trying to understand the megabyte of escape sequences I just shoved down the pipe) | ||
Not yet | |||
timotimo | let me explain | ||
japhb | Where's the best place to start? | ||
timotimo | it's so cool | ||
hm, i'm not sure where i learned about it, really | |||
but it's like this | 22:47 | ||
you can set up a number of "color registers" where you store your 256 color index or something | |||
then you put in your "ima do sixel now" escape starter | |||
and then one lower-7-bit character (printable ascii range) gives six pixels 1 or 0 | |||
and you can go over the same place multiple times with different colors, because you can also have transparent | 22:48 | ||
and there's also an extra RLE thing | |||
AlexDaniel | stereo soound should be part of unicode | 22:49 | |
japhb | So you're sending "This pixel is the current color" or "This pixel is *not* the current color"? | ||
timotimo | and one character for "go to next line" and one character for "return to the left border" | ||
if by "current" you mean "what's already there", then yes, i think so | |||
but i think you really set two colors and one of them is allowed to be "transparent" | |||
japhb | Ah, interesting | ||
AlexDaniel | u: variation | 22:50 | |
unicodable6 | AlexDaniel, U+180B MONGOLIAN FREE VARIATION SELECTOR ONE [Mn] (◌᠋) | ||
AlexDaniel, U+180C MONGOLIAN FREE VARIATION SELECTOR TWO [Mn] (◌᠌) | |||
AlexDaniel, 260 characters in total: gist.github.com/01aa218992a4ed7a49...d6ebf561b3 | |||
timotimo | qiita.com/arakiken/items/4a216af6547d2574d283 - look at this, japhb | ||
just the pictures will be enough for a little bit of understanding | |||
japhb | So optimally with 256 color registers, you would do 128 passes over every 6 row block, so with overhead maybe 22 passes per row amortized. | ||
timotimo | i don't think you have that many color registers actually | 22:51 | |
let me look again | |||
haxmeister | easy syntax for not ~~ ? | ||
AlexDaniel | !~~ | ||
haxmeister | oh.. duh | ||
ty | 22:52 | ||
AlexDaniel | haxmeister: that works with any operator | ||
well… not any operator, but you get the idea | |||
haxmeister | kk | ||
timotimo | m: say 1 !< 4 | 22:54 | |
camelia | False | ||
timotimo | m: say 1 < 4 | ||
camelia | True | ||
timotimo | m: say 1 !+ 4 | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Cannot negate + because additive operators are not iffy enough at <tmp>:1 ------> 3say 1 !7⏏5+ 4 expecting any of: infix infix stopper |
||
timotimo | ^- the operator has to be iffy, otherwise prefixing it with ! to negate doesn't make sense | ||
22:55
pmurias left
|
|||
haxmeister | !~~ is pretty easy not match | 22:55 | |
AlexDaniel | m: 42 !. say | 22:56 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Cannot negate . because dotty infix operators are too fiddly at <tmp>:1 ------> 0342 !.7⏏5 say |
||
AlexDaniel | timotimo: is this error message correct? | ||
ah yes, it is | |||
AlexDaniel still cannot remember what fiddly is | 22:57 | ||
timotimo | "complicated"? | ||
AlexDaniel | timotimo: which means? | ||
haxmeister | AlexDaniel: you have never "fiddled" with something? | ||
22:57
dj_goku joined,
dj_goku left,
dj_goku joined
|
|||
AlexDaniel | haxmeister: given that I'm not a native speaker… I don't really know :( | 22:57 | |
timotimo | dunno :) | 22:58 | |
AlexDaniel | timotimo: for example, old design docs say “No meta in fiddly things. So you can't reduce, negate, reverse, sequence, cross, zip, hyperify or assignify fiddly operators.” | ||
timotimo | "nobody would agree to one interpretation of what that's supposed to mean"? | ||
AlexDaniel | and then of course .= is a thing, so “assignify” does not really belong there? | ||
haxmeister | it means your toying with something | 22:59 | |
fiddling = toying or playing with something without any real purpose to be accomplished | |||
or | 23:01 | ||
complicated or detailed and awkward to do or use. | |||
can't negate complex operators | 23:02 | ||
AlexDaniel | maybe that's what it should say | 23:03 | |
23:03
dj_goku left
|
|||
AlexDaniel | “Cannot negate . because dotty infix operators are too fiddly (cannot negate complex operators)” | 23:03 | |
or whatever | 23:04 | ||
haxmeister | takes a southerner to dumb it down ;-) | ||
can just replace "fiddly" with "complex" | 23:05 | ||
AlexDaniel | haxmeister: well, it's not just the error message. Internally it's “fiddly” everywhere, so perhaps it makes sense to leave it there | 23:07 | |
haxmeister | well I certainly don't have the credentials to suggest otherwise..lol | 23:08 | |
gfldex | haxmeister: see github.com/rakudo/rakudo/blob/nom/....nqp#L3878 | ||
haxmeister | looks fiddly | 23:11 | |
23:11
wamba left
|
|||
MasterDuke_ | timotimo: just made another commit to github.com/perl6/nqp/pull/356. anything else you can think of or go ahead and merge? | 23:18 | |
timotimo | i wonder what makes that one qast test inside nqp fail on travis | 23:19 | |
the last time i tried to have "references" i couldn't import the generated sqlite any more | 23:20 | ||
because things weren't being put in in the right order | |||
MasterDuke_ | not sure, but it started a couple nqp commits back | ||
haxmeister | I have no idea what I'm doing..lol | 23:21 | |
MasterDuke_ | timotimo: hm, my test profile loaded fine, but i guess i should try a more complicated one | 23:23 | |
timotimo | oh! | ||
i think that was before we had call id vs caller id | |||
23:24
geekosaur left
|
|||
timotimo | so of course things would explode | 23:25 | |
23:25
Cabanossi left,
n0xff left
|
|||
MasterDuke_ | ah, yep | 23:25 | |
23:26
geekosaur joined,
Cabanossi joined
23:29
geekosaur left
23:31
geekosaur joined
|
|||
timotimo | i think i'll go to bed rather soon, though | 23:33 | |
MasterDuke_ | it's fine with a profile of CSV's test-t | 23:34 | |
timotimo | cool | ||
there we go | |||
23:35
Actualeyes joined
|
|||
timotimo | thank you for your continued work :) | 23:40 | |
23:42
Geth joined,
ChanServ sets mode: +v Geth
23:46
semigloss left
|
|||
haxmeister | searching dir recursively seems slow | 23:47 | |
23:49
Geth left
|
|||
gfldex | haxmeister: what does `perl6 --version` say? | 23:49 | |
23:51
Geth joined,
ChanServ sets mode: +v Geth
23:52
Geth left
23:53
bjz joined
23:55
programmingnewbi left
23:56
tardisx joined
|
|||
haxmeister | actually maybe it isn't slow.. maybe it's just a lot of dirs.. | 23:58 | |
This is Rakudo version 2017.04.2 built on MoarVM version 2017.04 | |||
implementing Perl 6.c. | |||
23:58
bjz left
|
|||
AlexDaniel | haxmeister: seems recent enough | 23:59 | |
haxmeister | pastebin.com/nzS60eHp | ||
please be nice about my noob code :-P |