»ö« 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. |
|||
00:05
Cabanossi left
00:08
Cabanossi joined
00:22
lookatme joined
|
|||
lookatme | morning .o/ | 00:22 | |
00:35
raschipi joined
00:37
Cabanossi left
00:38
Cabanossi joined
|
|||
lookatme | I wonder why it exit from Perl 6 REPL mode when I press CTRL + C ? | 00:40 | |
00:44
BenGoldberg joined
|
|||
raschipi | lookatme: I think they didn't write a signal handler for SIGINT. By default, getting a SIGINT kills the program. | 00:45 | |
lookatme | raschipi, It would be better add a handler for SIGINT. :) | 00:46 | |
raschipi | I think it should do the same as the shell, print a new prompt | 00:47 | |
lookatme | yeah | 00:48 | |
It will be helpful when type mistake happened | 00:49 | ||
00:52
chee left,
ctilmes left,
lookatme left,
ctilmes joined,
lookatme joined,
chee joined
01:04
andrzejku_ joined
01:07
andrzejku left
01:20
colomon left
01:25
troys_ is now known as troys
01:26
aborazmeh joined,
aborazmeh left,
aborazmeh joined
01:27
Actualeyes joined
01:37
raschipi left
|
|||
samcv | i'm making a perl 6 module that will query font information | 01:40 | |
will only work under linux but may be nice to add to our ecosystem :) | |||
though i guess you can prolly install freetype on windows so potentially could work on windows | 01:41 | ||
hobbs | yeah, probably not a ton of people have it, but devs are more likely than most to have some GTK app on windows, which then brings freetype with it :) | 01:47 | |
samcv | well. all people have fc-scan | 01:49 | |
anybody who has linux has freetype | |||
unless you have no gui | |||
and even if you don't... you probably still have it | |||
ah. re windows you mean | |||
hobbs | yeah | ||
samcv | now i need to make a hash. i have one array of the value keys and one with the values | 01:50 | |
is there a builtin that will combine them | |||
to a nice hash? | |||
obviously the indexes match | |||
hobbs | my %hash = @keys Z=> @values; | 01:55 | |
01:56
troys is now known as troys_
|
|||
samcv | thank you kindly | 01:56 | |
hobbs | or anonymously, Hash.new(@keys Z=> @values). The zip produces a list of pairs, it's the assignment to a hash that coerces it in the first one :) | 02:00 | |
MasterDuke | m: my @a = <a b c>; my @b = ^3; my %h; %h{@a} = @b; dd %h # if you already have the hash and want to add to it | 02:06 | |
camelia | Hash %h = {:a(0), :b(1), :c(2)} | ||
hobbs | cool, that one's the same as perl 5 really :) | 02:07 | |
except for the % | |||
02:08
pilne left
02:10
yoleaux left
|
|||
samcv | hmm maybe shouldn't bother converting the integer values to int objects and just return them as strings? idk | 02:11 | |
then i have to do more processing. hm should prolly do it for the bools. i know beforehand what each thing is gonna be | 02:12 | ||
now it's becoming more work :P | |||
02:23
aborazmeh left
|
|||
samcv | well i did it. :) this is actually gonna be a really nice module | 02:27 | |
BenGoldberg | m: my IntStr $x = 3; say $x.perl | 02:28 | |
camelia | Type check failed in assignment to $x; expected IntStr but got Int (3) in block <unit> at <tmp> line 1 |
||
BenGoldberg | m: my IntStr(Cool) $x = 3; say $x.perl | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Coercion IntStr(Cool) is insufficiently type-like to qualify a variable at <tmp>:1 ------> 3my IntStr(Cool) $x7⏏5 = 3; say $x.perl expecting any of: constraint |
||
BenGoldberg | m: my IntStr() $x = 3; say $x.perl | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Coercion IntStr(Any) is insufficiently type-like to qualify a variable at <tmp>:1 ------> 3my IntStr() $x7⏏5 = 3; say $x.perl expecting any of: constraint |
||
hobbs | maybe *you're* insufficiently type-like | 02:29 | |
BenGoldberg | I am a type that is shaped precisely like myself. | ||
samcv | since i already know which are int's which are double's and which are strings. and then the other "things" like FT_Face is obviously just going to be a string | ||
since it wouldn't make any sense to convet it to something else | 02:30 | ||
or CharSet is a 'type' | |||
though it's really a string i guess | |||
BenGoldberg | An FT_Face is a pointer to a struct FT_FaceRec_. | ||
samcv | charset: '20-7e a0-ae b0-b6 b8-de e0-119 152-153 160-161 178 192 2c6-2c7 2c9 2d8-2dd 3c0 2013-2014 2018-201a 201c-201e 2020-2022 2026 2030 2039-203a 20ac 2122 2126 2202 2206 220f 2211 2215 2219-221a 221e 222b 2248 2260 2264-2265 25ca' | 02:31 | |
unless i should do something to that... | |||
just gonna leave as a string like i got it | |||
02:31
mtj_ left
|
|||
hobbs | you could make it a list of ranges for starters | 02:31 | |
02:33
noganex_ joined
02:34
mtj_ joined
|
|||
samcv | uhm | 02:34 | |
hm | |||
most people might not want that info tho? idk have to balance processing time? what if you want to query tons of fonts | 02:35 | ||
though. i do let you choose what to query | |||
so you can just leave it out | |||
going to be a good module. i just know | 02:36 | ||
heh | |||
02:36
noganex left
|
|||
samcv | hobbs, so ranges and integers? cause some are not ranges | 02:36 | |
hobbs | was debating that | ||
I think ranges and ranges would be less work | 02:37 | ||
er, be friendlier to the user I mean | |||
samcv | ranges of one? | ||
hobbs | yeah | ||
samcv | hm | ||
02:38
hythm left
|
|||
hobbs | I dunno, I guess you have to think about how it would be used, if it's used at all. One way would be answering the question "does the font have a glyph for this character?" I assume | 02:38 | |
another way would be mapping the indices, or is there another structure for that? | |||
samcv | not that i know of. i mean | 02:39 | |
it's as easy to make a range of one than make an integer | |||
hobbs | yeah | ||
I just think a list of uniform types is less confusing to deal with | |||
02:39
ghs39ghsggf joined,
ghs39ghsggf left
|
|||
samcv | m: for ((1..2), 3)».list.flat { .say } | 02:40 | |
camelia | 1 2 3 |
||
samcv | m: for ((1..2), (3..3))».list.flat { .say } | ||
camelia | 1 2 3 |
||
samcv | m: for ((1..2), (3..3)) { .say } | ||
camelia | 1..2 3..3 |
||
samcv | m: for ((1..2), (3..3)).list { .say } | ||
camelia | 1..2 3..3 |
||
03:07
Cabanossi left
03:08
Cabanossi joined
|
|||
samcv | hobbs, what should i name the module? Font::Info ? Font::Query? | 03:11 | |
almost done with it | |||
lookatme | Font::QueryInfo ? | 03:12 | |
hobbs | no opinion there sorry | 03:13 | |
samcv | lookatme, i'll go with QueryInfo | 03:14 | |
lookatme | It's simple and readable | ||
03:18
kurahaupo joined,
kurahaupo__ left
03:22
Sense8 joined
03:26
kurahaupo left,
kurahaupo joined
|
|||
samcv | ugh i can't install File::Find ? | 03:33 | |
so i can't install Mi6 | |||
maybe it doesn't list in the META file? | 03:34 | ||
hmm nope it's there. but somehow zef didn't install it | |||
03:36
Cabanossi left
|
|||
samcv | eek gist.github.com/samcv/649fd921a387...ae2b03b380 | 03:37 | |
03:38
Cabanossi joined
|
|||
samcv | so File::Find is installed for one perl 6 install but not the other. and zef thinks it's installed | 03:38 | |
03:41
AlexDaniel left
03:42
Actualeyes left
03:44
khw joined
03:51
Cabanossi left
03:52
Cabanossi joined
03:56
plythnas joined,
plythnas left
|
|||
perlawhirl | bench: 2017.01,2017.05 gist.githubusercontent.com/0racle/.../boggle.p6 | 04:00 | |
benchable6 | perlawhirl, Successfully fetched the code from the provided URL. | ||
perlawhirl, starting to benchmark the 2 given commits | |||
perlawhirl, benchmarked the given commits, now zooming in on performance differences | |||
perlawhirl, ¦2017.01: ««run failed, exit code = 1, exit signal = 0»» ¦2017.05: ««run failed, exit code = 1, exit signal = 0»» | |||
perlawhirl | bench: 2017.01,HEAD gist.githubusercontent.com/0racle/.../boggle.p6 | 04:02 | |
benchable6 | perlawhirl, Successfully fetched the code from the provided URL. | ||
perlawhirl, starting to benchmark the 2 given commits | |||
perlawhirl, benchmarked the given commits, now zooming in on performance differences | |||
perlawhirl, ¦2017.01: ««run failed, exit code = 1, exit signal = 0»» ¦HEAD: ««run failed, exit code = 1, exit signal = 0»» | |||
perlawhirl | bench: 2017.01,HEAD gist.githubusercontent.com/0racle/.../boggle.p6 | ||
benchable6 | perlawhirl, Successfully fetched the code from the provided URL. | ||
perlawhirl, starting to benchmark the 2 given commits | |||
perlawhirl, benchmarked the given commits, now zooming in on performance differences | |||
perlawhirl, ¦2017.01: ««run failed, exit code = 1, exit signal = 0»» ¦HEAD: ««run failed, exit code = 1, exit signal = 0»» | |||
perlawhirl | obench: 2017.02 gist.githubusercontent.com/0racle/.../boggle.p6 | 04:03 | |
bench: 2017.02 gist.githubusercontent.com/0racle/.../boggle.p6 | |||
benchable6 | perlawhirl, Successfully fetched the code from the provided URL. | ||
perlawhirl, starting to benchmark the 1 given commit | |||
perlawhirl, ¦2017.02: ««run failed, exit code = 1, exit signal = 0»» | |||
perlawhirl | bench: HEAD gist.githubusercontent.com/0racle/.../boggle.p6 | ||
benchable6 | perlawhirl, Successfully fetched the code from the provided URL. | ||
perlawhirl, starting to benchmark the 1 given commit | |||
perlawhirl, ¦HEAD: ««run failed, exit code = 1, exit signal = 0»» | |||
samcv | lookatme, hobbs github.com/samcv/perl6-Font-QueryInfo actually turned out exceptional | 04:04 | |
hobbs | cool :) | 04:05 | |
let's see if I can get it to work | 04:06 | ||
04:06
quester joined
04:07
yoleaux joined,
ChanServ sets mode: +v yoleaux
|
|||
samcv | ok just made a fix | 04:10 | |
i would pull again if you checkout it out already. and i just updated the example | |||
run the example and just give it a folder as an argument and it will dump all the data for all fonts in that folder | 04:11 | ||
gist.github.com/8137eb7e3643d19f54...e5f41d25f8 | 04:12 | ||
here's the output i get running on a bunch of MS fonts | |||
perlawhirl | bench: HEAD gist.githubusercontent.com/0racle/.../boggle.p6 | ||
benchable6 | perlawhirl, Successfully fetched the code from the provided URL. | ||
perlawhirl, starting to benchmark the 1 given commit | |||
samcv | prolly better in raw gist.githubusercontent.com/samcv/8...0fonts.txt | ||
benchable6 | perlawhirl, ¦HEAD: «1.7936» | ||
samcv | let me know if you have any issues. should publish to ecosystem tonight :) | 04:13 | |
perlawhirl | bench: 2016.12,2017.01,2017.02,2017.03,2017.04,2017.05 gist.githubusercontent.com/0racle/.../boggle.p6 | ||
benchable6 | perlawhirl, Successfully fetched the code from the provided URL. | ||
perlawhirl, starting to benchmark the 6 given commits | |||
hobbs | samcv: yeah, it works :) | ||
samcv | :) | ||
very proud with how it turned out | 04:14 | ||
now i can rename all these fonts! | |||
benchable6 | perlawhirl, benchmarked the given commits, now zooming in on performance differences | ||
perlawhirl, gist.github.com/1262a5bd0f60120aa5...276394dda6 | |||
hobbs | samcv: here's a random one: gist.githubusercontent.com/arodlan...file1.txt# | 04:15 | |
samcv | not sure if i should make lang an array | 04:16 | |
but i'm not 100% sure if the info it dumps isn't just info in the font file | |||
perlawhirl | bench: 2017.01 gist.githubusercontent.com/0racle/.../boggle.p6 | ||
benchable6 | perlawhirl, Successfully fetched the code from the provided URL. | ||
samcv | and it may not match that format | ||
benchable6 | perlawhirl, starting to benchmark the 1 given commit | ||
perlawhirl, ¦2017.01: «1.6920» | |||
04:17
wamba joined
|
|||
hobbs | samcv: I think it is a defined format. it looks like freetype is parsing the language tags that TrueType and OpenType use and converting them to IETF-style ones | 04:22 | |
perlawhirl | bench: 2017.01,HEAD gist.githubusercontent.com/0racle/.../boggle.p6 | 04:24 | |
benchable6 | perlawhirl, Successfully fetched the code from the provided URL. | ||
perlawhirl, starting to benchmark the 2 given commits | |||
perlawhirl, benchmarked the given commits, now zooming in on performance differences | 04:25 | ||
perlawhirl, ¦2017.01: «4.5081» ¦HEAD: «4.8042» | |||
perlawhirl | bench: 2016.10 gist.githubusercontent.com/0racle/.../boggle.p6 | 04:26 | |
benchable6 | perlawhirl, Successfully fetched the code from the provided URL. | ||
perlawhirl, starting to benchmark the 1 given commit | |||
perlawhirl, ¦2016.10: «4.8635» | |||
perlawhirl | bench: releases gist.githubusercontent.com/0racle/.../boggle.p6 | 04:28 | |
benchable6 | perlawhirl, Successfully fetched the code from the provided URL. | ||
perlawhirl, starting to benchmark the 19 given commits | |||
04:28
dustinm` left
04:29
dustinm` joined
|
|||
hobbs | samcv: which means you should be able to do something useful with them if you wanted, like splitting and putting in a set (unless there's already an appropriate type for language tags :) | 04:30 | |
samcv | there aren't THAT many types | ||
04:30
tinita left
04:31
tinita joined
04:32
benchable6 left,
benchable6 joined,
ChanServ sets mode: +v benchable6
04:33
curan joined,
kyan joined
|
|||
hobbs | I mean, someone may have written a module for it, it's a generally useful thing | 04:34 | |
for purposes like doing HTTP content negotiation correctly :) | |||
04:35
Actualeyes joined
|
|||
samcv | i mean they're already like | 04:37 | |
two letter languages | |||
04:37
bwisti left
|
|||
samcv | aren't those standard | 04:37 | |
hobbs | there's a bit more to it than that | 04:38 | |
and yes, there's a standard, but then there's another standard and another :) | |||
04:42
khw left,
mcmillhj joined
|
|||
hobbs | anyway, that's a problem easily deferred | 04:43 | |
if you wanted to do .split("|").Set it would probably be appropriate, but doing nothing and leaving that up to the user is hardly a crime | 04:45 | ||
samcv | yea | 04:46 | |
i mean it's listed as a String property | |||
lookatme | samcv, works fine on my fedora. | ||
04:47
mcmillhj left
04:53
mcmillhj joined
04:58
mcmillhj left
05:00
kyan left
05:02
astj_ joined,
astj left
|
|||
perlawhirl | bench: 2016.11,2016.12,2017.01,2017.02,2017.03,2017.04,2017.05 gist.githubusercontent.com/0racle/.../boggle.p6 | 05:04 | |
benchable6 | perlawhirl, Successfully fetched the code from the provided URL. | 05:05 | |
perlawhirl, starting to benchmark the 7 given commits | |||
05:06
imcsk8 left,
Cabanossi left
05:07
Cabanossi joined
|
|||
benchable6 | perlawhirl, benchmarked the given commits, now zooming in on performance differences | 05:08 | |
perlawhirl, gist.github.com/487f5cae8c166ecb6a...eaf79d7a9a | |||
05:11
mr-foobar left
05:13
mr-foobar joined
05:14
imcsk8 joined
05:19
|oLa| joined
05:22
troys_ is now known as troys,
mcmillhj joined
05:23
nadim joined
05:25
kurahaupo left
05:27
mcmillhj left
05:28
kurahaupo joined
05:31
nadim left
05:33
Sense8 left
05:37
lookatme left
05:46
xtreak joined
05:49
mcmillhj joined
|
|||
samcv | hobbs, actually figured out something i need to fix. family, style and fullname are localized | 05:51 | |
so i need to break up them and Z= them into a hash | |||
:fullname("Arial Narrow Negreta,Arial Narrow tučné,Arial Narrow fed,Arial Narrow Fett,Arial Narrow Έντονα,Arial Narrow Bold,Arial Narrow Negrita,Arial Narrow Lihavoitu,Arial Narrow Gras,Arial Narrow Félkövér,Arial Narrow Grassetto,Arial Narrow Vet,Arial Narrow Halvfet,Arial Narrow Pogrubiony,Arial Narrow Negrito,Arial Narrow Полужирный,Arial Narrow Fet,Arial Narrow Kalın,Arial Narrow Krepko,Arial Narrow Lodia") | |||
:fullnamelang("ca,cs,da,de,el,en,es,fi,fr,hu,it,nl,no,pl,pt,ru,sv,tr,sl,eu"), | |||
and that's not super useful | |||
TEttinger | that is a long message | 05:53 | |
05:54
mcmillhj left
05:57
andrzejku_ is now known as andrzejku
05:58
lowbro joined
|
|||
andrzejku | hi people :) | 05:58 | |
05:59
xtreak left,
xtreak joined
06:02
mcmillhj joined
06:04
domidumont joined
06:06
mcmillhj left
06:07
domidumont left
06:08
domidumont joined
06:09
BenGoldberg left
06:12
pmurias joined
|
|||
pmurias | draft of TPF::Amsterdam talk proposal: paste.debian.net/971387/ | 06:13 | |
06:14
mcmillhj joined
06:17
dwarring left
06:19
mcmillhj left
06:21
xtreak left
|
|||
moritz | pmurias: +1 | 06:21 | |
06:21
xtreak joined
06:24
RK joined
06:25
ugglan left
|
|||
RK | Hello | 06:25 | |
06:25
RK left
06:26
nadim joined,
xtreak left
|
|||
moritz | hi | 06:26 | |
06:26
mcmillhj joined
06:29
mr-foobar left,
cyphase left,
mr-foobar joined
06:31
troys left,
mcmillhj left
06:34
cyphase joined,
Cabanossi left,
wamba left
06:37
Cabanossi joined
06:38
mcmillhj joined
06:39
hythm joined
06:43
mcmillhj left
|
|||
perlawhirl | bisect: gist.githubusercontent.com/0racle/...n_array.p6 | 06:45 | |
bisectable6 | perlawhirl, Successfully fetched the code from the provided URL. | ||
perlawhirl, Bisecting by output (old=2015.12 new=aa9516b) because on both starting points the exit code is 0 | |||
perlawhirl, bisect log: gist.github.com/2accb25adf5727e727...eb15cf6a41 | |||
perlawhirl, (2016-04-05) github.com/rakudo/rakudo/commit/6a...822dac090b | |||
perlawhirl | bisect: old=2016.05 gist.githubusercontent.com/0racle/...n_array.p6 | 06:47 | |
bisectable6 | perlawhirl, Successfully fetched the code from the provided URL. | ||
perlawhirl, Bisecting by output (old=2016.05 new=aa9516b) because on both starting points the exit code is 0 | |||
perlawhirl, bisect log: gist.github.com/05b155cf40b3389d74...99b236198b | |||
perlawhirl, (2016-10-19) github.com/rakudo/rakudo/commit/7a...12c68ddb6d | |||
06:52
mcmillhj joined
|
|||
perlawhirl | re ↑ dunno if tt's a regression or a correction, but that commit broke the use of the anonymous state var ($++) inside regex code blocks | 06:52 | |
06:57
mcmillhj left
07:00
keylet joined
07:02
xtreak joined,
espadrine joined
07:08
mcmillhj joined
07:12
mcmillhj left
07:14
jjjack joined
07:15
abraxxa joined
07:16
jjjack left
07:18
keylet left,
wamba joined
07:22
lizmat left
07:24
kurahaupo_ joined
07:25
lizmat joined,
kurahaupo__ joined
07:26
kurahaupo__ left,
kurahaupo left,
kurahaupo joined,
kurahaupo left
07:27
kurahaupo joined,
kurahaupo left
07:28
kurahaupo_ left
07:33
liqg joined
07:34
liqg left,
liqg joined
07:36
Cabanossi left
07:37
Cabanossi joined
07:38
mcmillhj joined
|
|||
liqg | p6: say 3.perl | 07:40 | |
camelia | 3 | ||
07:43
mcmillhj left
|
|||
masak | p6: say "Perl".perl | 07:44 | |
camelia | "Perl" | ||
masak | p6: say ".perl".perl | 07:45 | |
camelia | ".perl" | ||
pmurias submitted his TPF::Amsterdam talk | 07:46 | ||
07:51
mcmillhj joined
07:56
mcmillhj left
08:03
jonas2 joined
08:05
MasterDuke left
|
|||
moritz | pmurias++ | 08:11 | |
08:16
llvm joined
08:18
mcmillhj joined
08:20
dakkar joined
08:22
mcmillhj left
08:27
keylet joined
|
|||
keylet | pastebin.com/G2g9cP0U | 08:31 | |
08:31
srandon111 joined
|
|||
keylet | perl6 prints this when i use .parse() | 08:31 | |
srandon111 | hello all, is it worth learning perl6 instead of python/ruby ? | ||
and which could be the advantages ? | |||
keylet | how can I work with these results as class | 08:32 | |
i. e. title_wrap.title_pair.title | |||
check if some sub-class has an attribute | |||
? | |||
llfourn | keylet: $res<title_wrap><title_pair> | ||
keylet | thank you! | 08:33 | |
08:33
mcmillhj joined
|
|||
llfourn | srandon111: it might be. Depends on what your project is I'd say. | 08:33 | |
it's advantages is that it's well designed and fun to use | 08:34 | ||
m: say ('⚀' .. '⚅').roll(5) # that's how we roll | 08:35 | ||
camelia | (⚄ ⚁ ⚃ ⚀ ⚅) | ||
08:36
ufobat joined
08:38
mcmillhj left
08:41
_cronus joined
|
|||
_cronus | hello | 08:44 | |
llfourn | o/ | ||
_cronus | I think I found a bug in JSON::RPC::Server | 08:45 | |
08:45
quester left,
espadrine left
|
|||
llfourn | _cronus: perhaps report it on github? | 08:46 | |
_cronus | it makes use of psgi.input, but it isn't set by PSGI unless $psgi-classic is set. | ||
timotimo | ah, so perhaps an api change in psgi happened and it didn't get changed to match? | 08:47 | |
_cronus | llfourn: this is my intention, but since I'm very new to perl6 I'd like your help to verify that it is a bug and not my missinterpretation of how this is supposed to work. | ||
llfourn | _cronus: understood :) | 08:48 | |
08:49
mcmillhj joined
08:50
rindolf joined
08:53
xtreak left
08:54
mcmillhj left
|
|||
_cronus | I copied the simple example from github.com/bbkr/jsonrpc and client gave me Parse error (-32700): "Input (0 characters) is not a valid JSON string" | 08:57 | |
08:58
mr-foobar left
|
|||
llfourn | _cronus: I'd say that's at least a bug with the example | 08:59 | |
09:01
ggoebel left
|
|||
_cronus | changing psgi.input to p6sgi.input, or adding :psgi-classic in /opt/rakudo-star-2017.04/share/perl6/site/sources/81DB393EB1150D351C43BD914B340EA590E02CE7 makes it work. | 09:02 | |
09:04
abraxxa left,
nattefrost joined,
abraxxa joined
|
|||
_cronus | llfourn: true, I'll report it as a bug to the test case then | 09:05 | |
09:05
Cabanossi left
|
|||
llfourn | _cronus++ | 09:06 | |
09:07
Cabanossi joined
09:08
mr-foobar joined
09:09
abraxxa left,
abraxxa joined
09:11
xtreak joined
|
|||
_cronus | llfourn: thanks | 09:13 | |
09:14
ggoebel joined
09:18
mcmillhj joined
09:19
xtreak left
09:24
ctilmes left
09:25
mcmillhj left
09:26
kaare__ left
09:28
_cronus left,
liqg left
09:32
llvm left
09:42
zakharyas joined
09:50
Cabanossi left
|
|||
pmurias | srandon111: Perl 6 is more fun, python/ruby are more mature/have more jobs | 09:50 | |
srandon111 | thanks pmurias | 09:51 | |
09:52
Cabanossi joined
|
|||
tadzik | srandon111: the way I see it, learning a new, different language expands your horizons, and you end up improving all your other programming work | 09:55 | |
Perl 6 has a lot cool things to learn, which may make you a better python programmer even if you never end up using Perl 6 for your job | |||
09:58
ufobat left
10:05
zakharyas left
10:06
rumble joined
10:07
grumble left
10:08
rumble is now known as grumble
10:14
keylet_ joined
|
|||
keylet_ | perl6 grammars vs ANTLR4 | 10:14 | |
what is better? | |||
10:16
domidumont left
10:24
itaylor57 left
|
|||
timotimo | there's a converter that turns antlr4 grammars into perl6 grammars | 10:24 | |
so you don't have to care :P | |||
on top of that, perl6 grammars give you a crapton of escape hatches to get around any limitations you might find | 10:25 | ||
10:25
TEttinger left
10:26
Actualeyes left
10:30
itaylor57 joined
|
|||
zengargoyle | you can't go wrong by eventually throwing Perl 5 into the mix. it can be so quick and dirty and flexible and fast and throwaway that it's just damn handy regardless of your daily work language choice. :) | 10:31 | |
10:42
grondilu joined
|
|||
grondilu | Why doesn't this work? :-( | 10:43 | |
gist.github.com/grondilu/835343238...bc78daca50 | |||
10:44
zakharyas joined
|
|||
grondilu | I don't get why 'a+b' doesn't. | 10:44 | |
[ptc] | hi perl6 | 10:45 | |
dumb question of the day: is RT down atm? | 10:46 | ||
just wondering if I'm suffering from PEBKAC | |||
zengargoyle | [ptc]: website works for me... | 10:49 | |
[ptc] | zengargoyle: cheers. Must be something at my end. I keep getting 502s | 10:50 | |
grondilu | nevermind I'll used the grammar in en.wikipedia.org/wiki/Parsing_expr...n_grammar. Seems to work better. | 10:55 | |
zengargoyle | grondilu: yeah, seems to work, fail, fail, then infinite recursion. | 10:57 | |
11:05
Cabanossi left
11:06
zakharyas left
11:07
Cabanossi joined
|
|||
grondilu | m: say i**-1 | 11:14 | |
camelia | 6.12323399573677e-17-1i | ||
grondilu | ^that's LTA imho | ||
m: say i**2 | 11:15 | ||
camelia | -1+1.22464679914735e-16i | ||
grondilu | so is this | ||
m: say i**2 == -1 | |||
camelia | False | ||
grondilu | m: say i**2 =~= -1 | ||
camelia | True | ||
zengargoyle wonders how often modules.perl6.org/todo updates. i'm on a quest to make it happy. :P | 11:17 | ||
m: say i*i, so i**2 == -1+0i, so i*i == -1+0i | 11:21 | ||
camelia | -1+0iFalseTrue | ||
moritz | exponentiation goes to polar form | 11:22 | |
so there are always imprecisions | |||
11:22
eveo joined
|
|||
zengargoyle | ah, i halfway understand that. | 11:22 | |
moritz | I know people don't like that, but Perl 6 is not a CAS :-) | 11:23 | |
eveo | grondilu: that's floating point noise | ||
keylet | I try to get token $parsed<title_wrap><title_pair><title> | ||
zengargoyle | from 3blue1brown videos on youtube. :P | ||
keylet | but I get not only the string, but also all its substrings | ||
what can I do if I don't want to get these substrings | 11:24 | ||
? | 11:25 | ||
moritz | keylet: what are you doing now? | ||
11:26
araraloren joined
|
|||
keylet | pastebin.com/gj11VKC8 | 11:26 | |
grondilu | moritz: I'm not asking Perl 6 to be a CAS, but Complex is not specced to use natives, is it? Shouldn't we have C<complex> for that? | 11:27 | |
keylet | I want to only get 「аутэ́куку」 | ||
grondilu | m: my complex $z; | ||
camelia | 5===SORRY!5=== Type 'complex' is not declared. Did you mean any of these? Complex Compiler at <tmp>:1 ------> 3my complex7⏏5 $z; Malformed my at <tmp>:1 ------> 3my7⏏5 complex $z; |
||
moritz | grondilu: it's specced to use Num by default | ||
grondilu | that's LTA | 11:28 | |
moritz | and that comes without rounding errors, independently of whether they are num or Num | ||
(Complex is supposed to be a role that supports other storage types, but so far nobody has bothered to implement that) | |||
eveo | keylet: say ~.<title> | 11:29 | |
stringify the match object | |||
moritz | or $_<title>.Str | ||
(same thing, really) | |||
eveo | grondilu: what should it use instead of Num? | ||
grondilu | eveo: nothing, or just Real | ||
zengargoyle thinks keylet needs to use a make in the title rule to squish things into a single string. | |||
grondilu | basically whatever you feed it during instanciation | 11:30 | |
eveo | grondilu: huh? What do you mean nothing? Also Real is a role and Num is Real | ||
grondilu | (as long as it's Real) | ||
eveo | Num is Real | ||
grondilu | I mean role Complex { has Real ($.re, $.im); ... } | ||
eveo | Ah | 11:31 | |
So <1.5+5i> would make a Complex with Rat real and Int im | |||
grondilu | yeah why not? | ||
keylet | moritz: $_<title>.Str worked for me! thanks! | ||
moritz | grondilu: sure, do it | 11:32 | |
just measure performance before and after | |||
and ** Complex will likely still be subject to floating point errors | |||
grondilu | no | ||
11:32
wamba left
|
|||
grondilu | at least if exponent is integer | 11:33 | |
eveo | You then hit an issue similar to what we have with allomorphs | 11:34 | |
moritz | that^H^Hif it's Complex, it's not integer :-) | ||
grondilu | I've complained about Numeric several times already. This is just an expample. I guess I'll write a long issue one of these days. | ||
moritz | don't write issues. Fix them. | 11:35 | |
eveo | As in, is <1.0+0i> eqv <1+0i> or not | ||
moritz | srsly, Complex with non-Num storage types would be nice to have, but actual use cases for that are pretty rare | ||
grondilu is not sure about the semantics of &[eqv] | |||
eveo | grondilu: the issue about i**2 was already filed before and after a discussion rejected | 11:36 | |
keylet | can I get the next element of the array if it exists, if I use for @array { $_ } ? | ||
eveo | keylet: you could iterate two at a time | ||
zengargoyle | seems all the bizarre stuff has been discussed and rejected. :) | 11:37 | |
eveo | keylet: for @a -> $a, $b? {} | ||
zengargoyle: well, it's been going on for a decade and a half | |||
moritz | m: for (1..8).rotor(2 => -1) -> $a, $b { say "$a: $b" } | ||
camelia | 1 2: 2 3 3 4: 4 5 5 6: 6 7 Too few positionals passed; expected 2 arguments but got 1 in block <unit> at <tmp> line 1 |
||
moritz | m: for (1..8).rotor(2 => -1) -> $a, $b? { say "$a: $b" } | ||
camelia | 1 2: 2 3 3 4: 4 5 5 6: 6 7 Use of uninitialized value $b of type Mu in string context. Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful. in block at <tmp> line 1 7 8: |
||
eveo | need unpack | ||
moritz | m: for (1..8).rotor(2 => -1) -> ($a, $b) { say "$a: $b" } | 11:38 | |
camelia | 1: 2 2: 3 3: 4 4: 5 5: 6 6: 7 7: 8 |
||
moritz | thanks eveo | ||
zengargoyle | eveo: yeah, i know, it just makes me twinge on occasion. 1/3 + 1/3 + 1/3 == 1 is a selling point, but other things that seem to be cromulent are discussed and rejected. | ||
keylet | m: my @a = <a b c d e f g>; for @a -> $even, $odd { say "a) $even; b) $odd;" } | 11:39 | |
camelia | a) a; b) b; a) c; b) d; a) e; b) f; Too few positionals passed; expected 2 arguments but got 1 in block <unit> at <tmp> line 1 |
||
zengargoyle | too hard, too slow, special case, etc. it's a mixed message. | ||
keylet | how to catch this exception? | ||
11:39
araraloren left
|
|||
eveo | keylet: put a question mark after $b | 11:40 | |
keylet | m: my @a = <a b c d e f g>; for @a -> $even, ?$odd { say "a) $even; b) $odd;" } | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Malformed parameter at <tmp>:1 ------> 3 @a = <a b c d e f g>; for @a -> $even, 7⏏5?$odd { say "a) $even; b) $odd;" } |
||
keylet | m: my @a = <a b c d e f g>; for @a -> $even, $odd? { say "a) $even; b) $odd;" } | ||
camelia | a) a; b) b; a) c; b) d; a) e; b) f; Use of uninitialized value $odd of type Mu in string context. Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful. in block at <tmp> line 1 a) g; b) ; |
||
keylet | m: my @a = <a b c d e f g>; for @a -> $even, $odd? { say "a) $even; b) " .. $odd? .. ";" } | 11:41 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Bogus postfix at <tmp>:1 ------> 3ven, $odd? { say "a) $even; b) " .. $odd7⏏5? .. ";" } expecting any of: infix infix stopper postfix statement end… |
||
zengargoyle | m: my @a = <a b c d e f g>; for @a -> $even, $odd? { say "a) $even; b) {$odd orelse ''};" } | 11:42 | |
camelia | a) a; b) b; a) c; b) d; a) e; b) f; a) g; b) ; |
||
11:44
araraloren joined
|
|||
araraloren | evening | 11:44 | |
eveo | zengargoyle: .1 + .2 == .3 is that way because someone went ahead and made it and other people liked it. Things don't get done by whining in a chat channel about how shitty something is. Even with filed issues the discussion is essentially: <reporter> "I think you should spend a 100 hours of your time changing Complex to follow my idea" <responder> "I'm not convinced" | ||
zengargoyle | m: my @a = <a b c d e f g>; for @a -> $even, $odd? { say "a) $even; {$odd??"b) $odd;"!!''}" } | 11:46 | |
camelia | a) a; b) b; a) c; b) d; a) e; b) f; a) g; |
||
zengargoyle | eveo: you take me too seriously. | 11:47 | |
eveo | zengargoyle: the Rat example is a red herring anyway. There are at least two big issues with rats. Fixing one naively would make rats much slower. The other would need a lot of careful thought | ||
eveo & | |||
11:47
eveo left
|
|||
zengargoyle | the converse being how a lot of function in p6 started as 'just the simplest thing that worked' and over time everything gets faster and better as people go back and replace the simple with the better. | 11:51 | |
almost every p6-weekly has some bit getting x% faster when y. | 11:52 | ||
keylet | m: my @a = <a b c d e f g>; for @a { say $_; } | 12:00 | |
camelia | a b c d e f g |
||
keylet | m: my @a = <a b c d e f g>; loop @a { say $_; } | 12:01 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Missing block at <tmp>:1 ------> 3my @a = <a b c d e f g>; loop7⏏5 @a { say $_; } expecting any of: scoped block |
||
keylet | m: my @a = <a b c d e f g>; for @a -> $foo, $bar { say $foo; say $bar; } | ||
camelia | a b c d e f Too few positionals passed; expected 2 arguments but got 1 in block <unit> at <tmp> line 1 |
||
llfourn | keylet: you want a for to iterate there | ||
keylet: you have an odd number elements in that array so you can't iterate two-by-two | 12:02 | ||
m: my @a = <a b c d e f g>; for @a -> $foo, $bar? { say $foo; say $bar; } | |||
camelia | a b c d e f g (Mu) |
||
keylet | what is (Mu)? | ||
llfourn | keylet: like undefined | ||
super undefined | |||
keylet | how to check if $var is (Mu)? | 12:03 | |
llfourn | and tbh I was expecting it to me Any | ||
zengargoyle | eveo: luckily telling me to *-off is probably easier than trying to deal with me learning how to fix core things. :) | ||
araraloren | Mu is most undefined | ||
keylet | how to check if $var is (Mu)? | ||
llfourn | m: say Mu.defined; | ||
camelia | False | ||
araraloren | Mu is a class | 12:04 | |
m: say 1 ~~ Mu; | |||
camelia | True | ||
keylet | m: my @a = <a b c d e f g>; for @a -> $foo, $bar? { say $foo; say $bar; say $bar.defined; } | ||
camelia | a b True c d True e f True g (Mu) False |
||
llfourn | checking if something is precisely Mu is actually rather hard iirc | 12:06 | |
but you usually don't see Mu -- And I'm suprised that an optional parameter to a loop block is Mu by default | |||
m: say (-> $a, $b { }).say | 12:07 | ||
camelia | -> $a, $b { #`(Block|43595616) ... } True |
||
llfourn | m: say (-> $a, $b { }).signature | ||
camelia | ($a, $b) | ||
zengargoyle | m: my @a = <a b c d e f g>; for @a -> $foo, $bar? { say $foo; ($bar orelse 'bar not defined').say; } | ||
camelia | a b c d e f g bar not defined |
||
llfourn | m: say (-> $a, Mu $b { }).signature | ||
camelia | ($a, $b) | ||
llfourn | m: say (-> $a, $b { }).signature.params | 12:08 | |
camelia | (Mu $a Mu $b) | ||
llfourn | apparently pointy block default type is Mu | ||
12:10
AlexDaniel joined
|
|||
araraloren | m: say Mu.new.mro | 12:10 | |
camelia | No such method 'mro' for invocant of type 'Mu' in block <unit> at <tmp> line 1 |
||
araraloren | m: say Mu.new.^mro | ||
camelia | ((Mu)) | ||
llfourn | m: my $var = Mu; say ($var orelse .WHAT =:= $var) # is there any easier way? | 12:11 | |
camelia | False | ||
llfourn | m: my $var = Mu; say ($var orelse .WHAT =:= Mu) # I mean, is there any easier way? | ||
camelia | True | ||
araraloren | m: say Mu.WHAT | ||
camelia | (Mu) | ||
zengargoyle | m: say (-> Mu:D $a, Mu:U $b { say $a; say $b; True}(1,Mu)) | 12:12 | |
camelia | 1 (Mu) True |
||
moritz | llfourn: what do you want to do? | ||
llfourn | moritz: just check if something in a variable with a container is Mu | ||
you can't use ===, so you have to use =:=, but first you have to decont the variable | 12:13 | ||
I'm not sure the easiest way to do that | |||
moritz | !~~ Any, maybe | ||
~~ Mu:U | |||
zengargoyle | m: say Mu ~~ Mu:D; say Mu ~~ Mu:U | ||
camelia | False True |
||
llfourn | m: say Any ~~ Mu:U | 12:14 | |
camelia | True | ||
moritz | m: say $_ ~~ Mu:U for Mu, Any, Junction, Mu.new, | ||
camelia | True True True X::Multi::NoMatch exception produced no message in block <unit> at <tmp> line 1 |
||
moritz | eeks | ||
llfourn | :P | ||
!~~ Any is a fairly good solution | 12:15 | ||
keylet | now I want to get all tokens with name "foo" as strings | ||
$parsed_by_grammar.~<foo> does not work | |||
llfourn | m: say ("a"|"b") !~~ Any | ||
camelia | False | ||
llfourn | keylet: put the ~ infront of the term | ||
~$parsed_by_grammar<foo> | 12:16 | ||
12:21
tipdbmp joined
|
|||
keylet | but I get an array that contains one element string "foo foo ...". I'd like to see "foo", "foo", "foo", ... | 12:22 | |
llfourn | keylet: ah sorry I didn't see your early query, if foo is an array of matches you should do <foo>.map(*.Str) | ||
ealier* | |||
araraloren | an array with one element ? | 12:23 | |
12:23
xtreak joined
|
|||
tipdbmp | Where can the "#|" pod thingy returned by the WHY metamethod be found in the Perl 6 language documentation? | 12:23 | |
llfourn | tipdbmp: "#|" is pretty under developed so I don't think we've documented it | 12:24 | |
could be wrong | |||
zengargoyle | tipdbmp: look in the synopses and cross your fingers. | 12:25 | |
tipdbmp | Right, okay then. | ||
zengargoyle | there's at least one module that uses #| in a real world use case. | ||
keylet | llfourn: $parsed_by_grammar<foo>.map(*.Str) works! thank you! | 12:26 | |
12:27
pmurias left
|
|||
zengargoyle | it was the GraphML module that somebody was recently presenting about. used #| for the automatic descriptions.... | 12:27 | |
llfourn | keylet: no worries :) | 12:28 | |
12:28
xtreak left
|
|||
zengargoyle | tipdbmp: make that Graph | 12:28 | |
tipdbmp: make that GraphQL | |||
github.com/CurtTilmes/Perl6-GraphQL | 12:29 | ||
tipdbmp | Why does a boolean argument get matched for an Int parameter with multi subs: sprunge.us/YhAS, is it because True/False are an enum values? | 12:33 | |
moritz | m: say True ~~ Int | ||
camelia | True | ||
moritz | yes | ||
12:35
jjjack joined
|
|||
tipdbmp | Perl 6 has native integers uint64, int32, etc, is Num a native float64? Can its bits be reinterpreted to and stored in a uint64? | 12:35 | |
moritz | num is native, Num is boxed | 12:36 | |
and I don't know if we support any kind of reinterpretation; if so, it's somewhere in the nativecall code | |||
tipdbmp | m: my num $x = 1.0; my uint64 $y = uint64($x); say $y; | 12:37 | |
camelia | This type cannot unbox to a native number: P6opaque, Rat in block <unit> at <tmp> line 1 |
||
moritz | needs 1.0e0 | ||
1.0 is a Rat | |||
tipdbmp | m: my num $x = 1.0e0; my uint64 $y = uint64($x); say $y; | 12:38 | |
camelia | Cannot invoke this object (REPR: P6int; uint64) in block <unit> at <tmp> line 1 |
||
moritz | m: my num $x = 1.0e0; my uint64 $y = $x; say $y | ||
camelia | 1 | ||
moritz | that's just coercion | ||
tipdbmp | What does the "REPR: P6int; uint64" message mean? | 12:39 | |
moritz | it can't invoke an object, and the object it complains about has the representation P6int, and is of type uint64 | 12:40 | |
12:42
mcmillhj joined
|
|||
tipdbmp | m: use NativeCall; my num $x = 1.0e0; my uint64 $y = nativecast(uint64, $x); | 12:43 | |
camelia | Native call expected return type with CPointer, CStruct, CArray, or VMArray representation, but got a P6opaque (Num) in sub nativecast at /home/camelia/rakudo-m-inst-1/share/perl6/sources/24DD121B5B4774C04A7084827BFAD92199756E03 (NativeCall) line 417… |
||
tipdbmp | Can NativeCall::nativecast be used to reinterpret num to uint64? | 12:45 | |
Is SETTING the same as CORE? | 12:51 | ||
What is the variable $¢? | 12:55 | ||
araraloren | `The current match state is kept in the regex's $¢ variable which will eventually get bound to the user's $/ variable when the match completes. ` | 12:59 | |
design.perl6.org/S05.html#Match_objects | |||
zengargoyle woot! got one module to pass todo's pedantism | 13:01 | ||
is logotype still going to be a *thing*? | 13:02 | ||
tipdbmp | araraloren, thank you. | 13:05 | |
13:07
drrho left
13:09
jjjack left
13:13
mspo left
|
|||
tipdbmp | Can the "#? condition", "#?endif" blocks be used with constants: constant foo = False; #? foo\n say 'A'; #?endif | 13:17 | |
moritz | tipdbmp: what are you doing? | 13:19 | |
that's only enabled in rakudo's source | 13:20 | ||
not in regular Perl 6 code | |||
see tools/build/gen-cat.nqp for that it understands | |||
tipdbmp | Looking at some of the core modules and those blocks show up. | 13:21 | |
13:24
drrho joined,
cyphase left
|
|||
keylet | is it possible to insert content of any variable to $parsed<name> like $parsed<$foo>? | 13:25 | |
tadzik | {} is what you're looking for | ||
araraloren | maybe you need $parsed{$foo} ? | ||
tadzik | <> is just an autoquoting {} | ||
araraloren | <> not support interplation | 13:26 | |
keylet | yes, it is just what I want! :) | ||
timotimo | btw, cursor and match object have been unified and $/ and $𝕔 should now be the same thing | 13:27 | |
huh what did i type there | |||
haha, that's not the combination of | and c i meant | 13:28 | ||
$¢ is the one | |||
grondilu | m: subset NakedPair of Pair where !*.value.defined; multi infix:<+>(Real $, NakedPair $) { 0 }; say 1 + :a; | 13:29 | |
camelia | ===SORRY!=== Circularity detected in multi sub types for &infix:<+> |
||
grondilu | ^false positive imho | ||
13:29
cyphase joined,
kaare_ joined
|
|||
grondilu | m: subset NakedPair of Pair where { .value === True }; sub foo(NakedPair $) { "ok" }; foo (:a) | 13:31 | |
camelia | ( no output ) | ||
grondilu | m: subset NakedPair of Pair where { .value === True }; sub foo(NakedPair $) { "ok" }; say foo (:a) | ||
camelia | ok | ||
grondilu | m: subset NakedPair of Pair where { .value === True }; sub foo(NakedPair $) { "ok" }; say foo(:a) | 13:32 | |
camelia | Too few positionals passed; expected 1 argument but got 0 in sub foo at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
13:32
zakharyas joined,
tipdbmp left
|
|||
grondilu | m: subset NakedPair of Pair where {.value === True}; multi infix:<+>(Real $, NakedPair $) { 0 }; say 1 + :a; | 13:32 | |
camelia | ===SORRY!=== Circularity detected in multi sub types for &infix:<+> |
||
grondilu | m: subset NakedPair of Pair where {.value === True}; multi infix:<+>(Real $, Pair $) { 0 }; say 1 + :a; | 13:33 | |
camelia | 0 | ||
grondilu | m: subset NakedPair of Pair where {.value === True}; multi infix:<+>(Real $, Pair $ where {.value ===True}) { 0 }; say 1 + :a; | ||
camelia | ===SORRY!=== Circularity detected in multi sub types for &infix:<+> |
||
grondilu | m: multi infix:<+>(Real $, Pair $ where {.value ===True}) { 0 }; say 1 + :a; | ||
camelia | ===SORRY!=== Circularity detected in multi sub types for &infix:<+> |
||
grondilu | m: multi prefix:<+>(Pair $ where {.value ===True}) { 0 }; say +:a; | 13:34 | |
camelia | 0 | ||
13:35
lizmat left
|
|||
grondilu | m: multi infix:<+>($, Pair $ where {.value ===True}) { 0 }; say 1 + :a; | 13:35 | |
camelia | 0 | ||
grondilu | FYI I'm working on something like: | 13:39 | |
use Symbolic; say :a + :b; # Plus[a,b] | 13:40 | ||
github.com/grondilu/Symbolic | |||
13:42
lizmat joined
13:43
AlexDaniel left
13:47
raschipi joined
13:50
bwisti joined
14:04
kaare_ left,
MilkmanDan left,
MilkmanDan joined
14:06
kaare_ joined
14:07
lizmat left
14:11
kaare_ left,
kaare_ joined,
wamba joined
14:13
cdg joined
14:14
lizmat joined
14:22
cdg left
14:27
kaare_ left
14:31
kaare_ joined
14:42
kaare_ left,
domidumont joined
14:43
kaare_ joined
14:53
jonas2 left,
kaare_ left
14:54
lowbro left
14:56
AlexDaniel joined
14:59
domidumont left,
kaare_ joined
15:04
kaare__ joined,
kaare_ left
15:10
zakharyas left
15:18
g4 left,
wamba left
15:19
espadrine joined
15:20
Cabanossi left,
lizmat left
15:21
vike joined
15:22
Cabanossi joined,
AlexDaniel left
15:24
AlexDaniel joined,
domidumont joined,
kurahaupo_ joined,
lizmat joined
15:25
lizmat left
15:28
lizmat joined
15:31
AlexDani` joined
15:32
cognominal left
15:33
raiph joined,
AlexDaniel left
|
|||
lucs | 'p6doc -l' shows many topics, but which one covers perl6 command line options? | 15:33 | |
15:35
zakharyas joined
15:36
khw joined
|
|||
timotimo | i'm not sure we have one for that | 15:40 | |
15:41
AlexDani` is now known as AlexDaniel
|
|||
araraloren | What's the name of this command line option style `--/x`? # this disable command line option x | 15:41 | |
Such as `-abcd` has a name gnu style, as I know. | 15:42 | ||
15:44
curan left
|
|||
raschipi | --x-but-long is GNU style, -x-but-long is X style, -x is traditional Unix styel | 15:44 | |
perlawhirl | bisect: say DateTime.now.second.WHAT | 15:45 | |
bisectable6 | perlawhirl, Bisecting by output (old=2015.12 new=14d7571) because on both starting points the exit code is 0 | ||
raschipi | --\x to deactivate option x I never saw | ||
sorry, --/x | 15:46 | ||
araraloren | raschipi thanks, how about `-abcd`, It mean enable `a b c d` option | ||
raschipi | Joining flags like that is traditional UNIX style. | ||
Long options was a GNU invention | |||
15:47
pmurias joined
|
|||
pmurias | hi | 15:47 | |
araraloren | Oh, very thanks raschipi | ||
15:49
bisectable6 left
|
|||
raschipi | BSD programs most times still don't have long options: www.unix.com/man-page/FreeBSD/1/ls/ | 15:50 | |
araraloren | Yean, I know a style called bsd style **ps** supported | 15:51 | |
15:51
bisectable6 joined,
ChanServ sets mode: +v bisectable6
|
|||
lucs | timotimo: Looks that way, eh. | 15:52 | |
raschipi | Yeah, ps BSD style doesn't have any - (ps aux) | 15:54 | |
15:56
dolmen joined
|
|||
raschipi | ps aux is roughly equivalent to ps -ely using Unix syntax | 15:56 | |
15:56
abraxxa left
|
|||
araraloren | raschipi, em, yeah | 15:58 | |
I found a article about linux option style :www.catb.org/esr/writings/taoup/htm...10s05.html | |||
s/a/an/ | |||
Thanks again for you kind help . Good night | 15:59 | ||
15:59
araraloren left
|
|||
keylet_ | can I do "next" for more than one step in a loop ? | 16:00 | |
raschipi | keylet_: just do next multiple times | ||
timotimo | but you'll have to keep a bit of state around | ||
since next will immediately jump to the beginnig of the loop body | 16:01 | ||
so you can't "next; next;" | |||
16:03
dolmen left,
dolmen_ joined
16:04
firstdayonthejob joined,
dolmen_ left,
dolmen joined
16:05
Cabanossi left
16:06
firstdayonthejob left,
benchable6 left
16:07
Cabanossi joined,
benchable6 joined,
ChanServ sets mode: +v benchable6
16:09
domidumont left
16:10
sjn left
16:11
dogbert17 left
16:13
srandon111 left
16:14
eveo joined
|
|||
eveo | perlawhirl: this is the commit for the Date thing: github.com/rakudo/rakudo/commit/74...46bb6891bf | 16:14 | |
16:14
cdg joined
|
|||
eveo | .ask lizmat this commit change the time of DateTime.second from a Rat to Num. Does it matter? github.com/rakudo/rakudo/commit/74...46bb6891bf | 16:14 | |
yoleaux | eveo: I'll pass your message to lizmat. | ||
zengargoyle having Solaris flashbacks and remembering use '/usr/ucb/ps' because 'ps augxww' is so ingrained. | 16:15 | ||
16:16
cdg_ joined,
cdg left
16:18
sjn joined
|
|||
eveo | zengargoyle: FWIW, the speedups you see weekly often are paid for by a significant loss in readability (and subsequently maintability and accessbility): github.com/rakudo/rakudo/commit/c6...8474fcbb8b | 16:18 | |
16:18
cdg joined
|
|||
zengargoyle is also not sure that MAIN auto option stuff will ever catch on. it's so different than any other option convention. | 16:19 | ||
16:19
BenGoldberg joined
|
|||
zengargoyle | eveo: yeah, i know. there's trade-offs to be made. | 16:19 | |
mst | zengargoyle: how so different? | ||
16:21
cdg_ left
|
|||
zengargoyle | mst: --\opt -abc bundling mixing --arg non-arg non-arg --arg | 16:22 | |
mst | zengargoyle: bundling would be nice, mixing options and arguments generally isn't | 16:23 | |
there's plenty of things I use that require options first | |||
zengargoyle | i love adding a -l or -d to the end of a `ls` command | ||
or a -n and then up-arrow backspace to really run the command. | 16:24 | ||
mst | the key thing is that prohibiting mixing makes subcommand interfaces possible | ||
16:24
zakharyas left
|
|||
mst | there's more than one way to do it ... but sometimes consistency is a good thing too | 16:24 | |
zengargoyle | yeah, there are a few subcommand type things that only take args before the command and some that don't, or behave differently depending on whether the arg is global to the app or specific to the sub-command. it's all trade-off somewhere. | 16:26 | |
raschipi | Arbitrary mixing of flags and arguments is also a GNU invention. Anyone that supports it is probably using their GetOpt lib. | ||
is there bindings to getopt already? | 16:27 | ||
zengargoyle | true, but can be said of anyone using some other getopt lib. | ||
i saw a Getopt::Tiny or something, haven't really looked at it yet. | 16:28 | ||
eveo | m: multi infix:<+>(Real, Pair $ where {.value === True}) { 42 }; say 1 + :a; | ||
camelia | ===SORRY!=== Circularity detected in multi sub types for &infix:<+> |
||
eveo | m: multi infix:<+>(Real where {True}, Pair $ where {.value === True}) { 42 }; say 1 + :a; | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Cannot do non-typename cases of type_constraint yet at <tmp>:1 ------> 3multi infix:<+>(Real where {True}7⏏5, Pair $ where {.value === True}) { 42 } expecting any of: infix … |
||
eveo | m: multi infix:<+>(Real $ where {True}, Pair $ where {.value === True}) { 42 }; say 1 + :a; | ||
camelia | ===SORRY!=== Circularity detected in multi sub types for &infix:<+> |
||
eveo | m: multi infix:<+>(Int, Pair $ where {.value === True}) { 42 }; say 1 + :a; | ||
camelia | 42 | ||
16:30
xzhao left,
zakharyas joined
|
|||
eveo | grondilu: filed as rt.perl.org/Ticket/Display.html?id=131574 | 16:30 | |
16:30
xzhao joined
|
|||
zengargoyle | i tend to think of speedups like the '.trans' method which was once the most basic CS101 implementation possible, then later replaced with the CS301 implementation. a bit more work, slower for extremly simple cases, much faster for any non-simple case. | 16:30 | |
16:33
pilne joined
|
|||
zengargoyle also just likes Getopt::Long and Getopt::Long::Descriptive because they seem to do 99% of everything i want to do. i guess there will be a p6 one eventually. | 16:37 | ||
eveo | Go and make it | 16:38 | |
raschipi | zengargoyle: The best way to go about it would be to write nativecall bindings to GNU GetOpt to garantee compatible behavior, I think | ||
eveo | buggable: eco getopt | ||
buggable | eveo, Found 6 results: Getopt::Tiny, Getopt::Long, Getopt::Type, Getopt::Kinoko, Getopt::Std. See modules.perl6.org/#q=getopt | ||
16:38
eveo left
|
|||
zengargoyle | cool, there are many more now. | 16:39 | |
buggabl: eco pod2usage | 16:40 | ||
raschipi | buggable: eco pod2usage | 16:41 | |
buggable | raschipi, Nothing found | ||
zengargoyle | doh, :) GLD and pod2usage were about the only things that made my scripts useable. :) | 16:42 | |
16:42
robertle joined
|
|||
zengargoyle | --help and --man gave the satisfaction of saying "did you try --help? or read --man?" and the impetus to write the docs in the first place. | 16:44 | |
16:45
alimon left
|
|||
zengargoyle | sorta looks like there aren't many users of the 'logotype' feature. | 16:46 | |
perlawhirl | .tell lizmat re: eveo's msg... i think the real question is, should *.seconds type be consistent, eg: ( DateTime.new('2012-02-29T12:34:56Z'), DateTime.now ).map( *.second.^name ) | ||
yoleaux | perlawhirl: I'll pass your message to lizmat. | ||
Geth | doc: eec88a1fc9 | (Jan-Olof Hendig)++ | doc/Type/Supply.pod6 Added some docs to Supply.produce |
16:47 | |
doc: 67c87296ae | (Jan-Olof Hendig)++ | doc/Type/Supply.pod6 Added examples to produce and reduce |
|||
16:47
domidumont joined
16:48
ChoHag joined
16:49
curan joined
|
|||
keylet_ | I just noticed this book campaign | 16:50 | |
www.indiegogo.com/projects/book-we...2#/updates | |||
if somebody wants to help this man to make the book | 16:51 | ||
raschipi | Everyone is pretty excited for that book already, thanks for the help. lizmat and assossiates donated $1000 for example | 16:53 | |
16:54
dakkar left
|
|||
keylet_ | I've supported it too. It's a great idea! :) | 16:54 | |
17:02
pmurias left
17:04
ChoHag left
17:12
alimon joined
17:13
espadrine left
17:16
|oLa| left
|
|||
AlexDaniel slaps bisectable6 | 17:18 | ||
bisect: say DateTime.now.second.WHAT | 17:20 | ||
bisectable6 | AlexDaniel, Bisecting by output (old=2015.12 new=14d7571) because on both starting points the exit code is 0 | ||
raschipi | huggable: hug bisectable6 | ||
huggable hugs bisectable6 | |||
bisectable6 | AlexDaniel, bisect log: gist.github.com/1a7d3f4f0510c3f543...eaec8c5d03 | ||
AlexDaniel, (2015-12-29) github.com/rakudo/rakudo/commit/74...46bb6891bf | |||
17:20
Cabanossi left
|
|||
AlexDaniel | (the reason why it died the first time seems to be github.com/perl6/whateverable/issues/148) | 17:21 | |
17:22
Cabanossi joined
17:25
zakharyas left
|
|||
AlexDaniel | committable6: 74ab0526f27^,74ab0526f27 say DateTime.now.second.WHAT | 17:30 | |
committable6 | AlexDaniel, ¦74ab0526f27^: «(Rat)» ¦74ab052: «(Num)» | ||
AlexDaniel | that's interesting :) | ||
17:34
raschipi left
17:45
setty1 joined
17:51
AlexDaniel left
17:52
AlexDaniel joined
17:55
travis-ci joined
|
|||
travis-ci | Doc build errored. Jan-Olof Hendig 'Added examples to produce and reduce' | 17:55 | |
travis-ci.org/perl6/doc/builds/242913554 github.com/perl6/doc/compare/7397c...c87296aed6 | |||
17:55
travis-ci left
|
|||
keylet_ | if I have a variable $foo, how can I replace the content of $foo (should be matched literally) in $bar with "xyz" ? | 17:55 | |
will $bar ~~ s/$foo/xyz/ work ? | |||
jnthn | keylet_: The $foo will be treated as a literal there, yes | 18:00 | |
It will only replace the first occurence; use s:g to replace all | |||
18:07
wamba joined
|
|||
Geth | doc: e19bcc8137 | (Jan-Olof Hendig)++ | doc/Type/Supply.pod6 More link and formatting fixes |
18:10 | |
keylet_ | is there any equivalent to python's "pass" ? | 18:14 | |
18:15
mr-fooba_ joined
|
|||
perlpilot | pass is a no-op isn't it. So ... don't do anything. | 18:15 | |
ttkp6 | keylet_ - depending on context, you might want to use something like {} | 18:16 | |
18:17
mr-foobar left
|
|||
perlpilot | keylet_: why are you asking, exactly? Do you think you need pass or are you just curious? | 18:18 | |
keylet_ | just curious :) | 18:19 | |
18:20
dogbert17 joined
|
|||
jnthn | afaik, pass is needed for syntactic reasons, but Perl 6 syntax works quite a lot differently so doesn't need such a thing :) | 18:20 | |
perlpilot | pass is just a hack to get around the lack of block delimiters. | ||
`while 1: pass` doesn't work too well if you don't have `pass` :) | 18:21 | ||
18:27
cyphase left
18:31
xenu joined
18:35
abraxxa joined
18:40
andrzejk_ joined,
cyphase joined
18:43
TeamBlast left
18:45
grondilu left
18:46
TeamBlast joined
18:47
abraxxa left
18:50
Cabanossi left
|
|||
zengargoyle | hrm, module builds locally, fails on travis. | 18:50 | |
18:51
cdg_ joined
18:52
Cabanossi joined,
TEttinger joined
|
|||
ugexe | are you using the same perl6 -v on both? | 18:54 | |
18:55
cdg left
|
|||
zengargoyle | well, 2017.05-84-hash here and 'latest' in travis ... | 18:55 | |
ugexe | cant draw any conclusion from that | 18:56 | |
18:57
pecastro joined
|
|||
zengargoyle | i do a --force and it then passes the auto prove phase...... | 18:57 | |
it recommended a --force-fetch, but that didn't help. | 18:58 | ||
ugexe | right, and im asking your perl6 versions because Proc has changed in the last few days and would result in failures where they shouldnt | ||
zengargoyle | travis-ci.org/zengargoyle/p6-Algor.../242955849 | ||
not using proc. | 18:59 | ||
ugexe | you were using zef in your last build | 19:00 | |
zef uses proc | |||
zengargoyle | on one previous --verbose build, it did the compile of the .so phase and failed. | ||
ugexe | it fails in your current build too, it just doesn't exit because of the problem i mentioned | ||
zengargoyle | yeah, switched to zef a few days ago and have been just fixing up META and other trivial things. worked, then didn't today. | 19:01 | |
19:01
travis-ci joined
|
|||
travis-ci | Doc build errored. Jan-Olof Hendig 'More link and formatting fixes' | 19:01 | |
travis-ci.org/perl6/doc/builds/242943817 github.com/perl6/doc/compare/67c87...9bcc8137b9 | |||
19:01
travis-ci left
|
|||
ugexe | yes, its rakudo bug | 19:01 | |
zengargoyle | cool. | ||
19:01
abraxxa joined
|
|||
zengargoyle always runs into somwthing weird and freaks out for a bit. | 19:01 | ||
19:02
|oLa| joined
19:03
cdg joined
|
|||
zengargoyle | i'll leave it in your or other's hands and assume it will work sometime later. :) | 19:03 | |
ugexe | yeah hopefully by the end of today | 19:05 | |
19:05
cdg_ left
|
|||
zengargoyle | ugexe++ thanks for piece of mind. :) | 19:05 | |
19:13
TeamBlast left
19:17
TeamBlast joined,
abraxxa left
|
|||
nebuchadnezzar | Hello, | 19:19 | |
timotimo | hello> | 19:20 | |
perlpilot | .oO( is it me you're looking for? ) |
||
nebuchadnezzar | I'm looking into precompilation with Debian, there is some discussion about “should we provide the precompiled files in packages” or “should we precompile at installation time”, to take an enlightened decision I need some information about CompUnit systems, I think I remember some blog post explaining the system but can not find them anymore, do you have links? | 19:22 | |
one of the question is: “must we precompile in correct dependency order or does the precompilation system walk the reverse dependency to precompile them before the current module?” | 19:23 | ||
timotimo | did you look at the CUR thing that nine has been working on for this very purpose? | 19:29 | |
Staging i think it's called? | |||
nebuchadnezzar | timotimo: you mean github.com/rakudo/rakudo/blob/nom/...l-dist.pl? | 19:31 | |
timotimo | perhaps | ||
nebuchadnezzar | If Debian choose to compile at installation time (which seems to be the way it's going) I need a little more than installing. My plan is to extend the install-dist.pl to handle: removing one distribution, removing all precompiled files for a $*PERL.compiler.id (the PrecompilationStore::File has the code for this), bulding all distribution for a $*PERL.compiler.id | 19:34 | |
19:34
alimon left
|
|||
nebuchadnezzar | but I need to better understand how things are working to think clearly about it | 19:35 | |
19:35
alimon joined
|
|||
nebuchadnezzar | I can find the CompUnit blog post on pl6anet.org nor perl6.party (nor duckduckgo) :-/ | 19:36 | |
19:36
domidumont left
19:41
andrzejk_ left
19:45
andrzejk_ joined
19:50
Cabanossi left
19:52
Cabanossi joined,
stmuk_ joined
19:53
hythm left
19:54
stmuk left
|
|||
zengargoyle | "precompile at installation time" seems to contradict "bulding all distribution for a $*PERL.compiler.id" | 19:57 | |
nebuchadnezzar | zengargoyle: I mean, to update rakudo/NQP/MoarVM: 1) remove all precompiled files, 2) remove old rakudo/NQP/MoarVM packages, 3) install new rakudo/NQP/MoarVM packages, 4) precompile all installed distribution | 20:00 | |
20:01
hythm joined
|
|||
zengargoyle | wouldn't 4) just be re-install previously installed packages? assuming packages get precompiled on installation. | 20:02 | |
nebuchadnezzar | zengargoyle: no, packages of distributions only contain sources, no need to reinstall them, by the way, it's how emacs,python and some other packages are handled | 20:03 | |
zengargoyle | i think i get it, just remove old-precomp, and force a recomp after installing new rakudo/moar. | ||
nebuchadnezzar | that's right | 20:04 | |
zengargoyle | that depends on the source that's in the REPO not being tied to the rakudo version that it was originally installed under. and just the precomp files are tied to the rakudo version. | 20:08 | |
zengargoyle not sure if source bits of repo are independent of rakudo that installed them. /rakudo/package/source/precomp or /package/source , /rakudo/source/precomp | 20:10 | ||
20:12
alimon left
|
|||
zengargoyle | hopefully it's possible, i dislike having to re-install modules on rakudo upgrade myself :) | 20:13 | |
keylet_ | I use two tokens and the first token captures some substrings the second should capture | ||
can I make them lazy, so the first would match only substrings the second doesn't match anyway? | |||
moritz | yes | 20:15 | |
keylet_ | how can I do this? | 20:16 | |
<foo>+? <bar> | |||
? | 20:17 | ||
zengargoyle | m: my token A { fo? }; my token B { o* }; say 'fooooo' ~~ /<A><B>/ | 20:18 | |
camelia | 「fooooo」 A => 「fo」 B => 「oooo」 |
||
keylet_ | and if I use general quantifiers? | ||
zengargoyle | it's probably a ? which tends to mean match as few as possible. | 20:21 | |
20:21
Cabanossi left
20:22
AndroUser2 joined
|
|||
zengargoyle | do you have a particular example? | 20:22 | |
20:22
Cabanossi joined
20:23
troys joined
20:24
andrzejk_ left
|
|||
AndroUser2 | m: my token A { f o ** 1^..* }; my token B { o+ g }; say 'fooooooooog' ~~ /<A><B>/; | 20:25 | |
camelia | Potential difficulties: Space is not significant here; please use quotes or :s (:sigspace) modifier (or, to suppress this warning, omit the space, or otherwise change the spacing) at <tmp>:1 ------> 3my token A { f7⏏5 o ** 1^..* };… |
||
AndroUser2 | like this | ||
AndroUser2 == keylet_ | 20:26 | ||
moritz | for the genral quantifier, the ? goes after the ** | ||
m: say 'fooo' ~~ /f o**?2..10/ | 20:27 | ||
camelia | Potential difficulties: Space is not significant here; please use quotes or :s (:sigspace) modifier (or, to suppress this warning, omit the space, or otherwise change the spacing) at <tmp>:1 ------> 3say 'fooo' ~~ /f7⏏5 o**?2..10/… |
||
moritz | m: say 'fooo' ~~ /fo**?2..10/ | ||
camelia | 「foo」 | ||
moritz | I find that warning annoying | ||
AndroUser2 | me too :) | ||
moritz | I want to put the space in tehre to make clear it's only the o that's quantified | ||
20:28
alimon joined
|
|||
zengargoyle | and that would grow from 2 if it was needed to fulfil the full match right. | 20:28 | |
geekosaur | but spaces don't do grouping in regexes | ||
20:28
MasterDuke joined
|
|||
moritz | they don't, but they can be used to emphasize | 20:29 | |
zengargoyle | say 'fooo' ~~ /fo**?2..10 $/ | ||
AndroUser2 | I don't get warnings when using grammars, noy single tokens | ||
evalable6 | 「fooo」 | ||
moritz | just like I can write 1 + 2**31 | ||
AndroUser2 | * not | ||
m: my token A { fo **? 1^..* }; my token B { o+g }; say 'fooooooooog' ~~ /<A><B>/; | 20:30 | ||
camelia | 「fooooooooog」 A => 「foo」 B => 「ooooooog」 |
||
AndroUser2 | moritz, zengargoyle : thank you. unfortunately, there are no instructions for making general quantifiers frugal | 20:32 | |
in perl6 official website | |||
moritz | AndroUser2: then submit a patch that adds it | 20:33 | |
zengargoyle | moritz++ i'd have to have guessed until it worked. :) | ||
moritz | FWIW, I'm considering writing a book on p6 regexes / grammars | ||
and one option I'm considering is self-publishing, with the promise that if I make $X amount off it in the first two years, I'll open-source it | 20:34 | ||
or something like that | |||
(other options I'm considering are traditional publishing, or a p6 edition of Mastering Regular Expressions) | 20:35 | ||
zengargoyle | i'll proofread :P | 20:39 | |
moritz | zengargoyle: /msg me an ssh pubkey | 20:40 | |
zengargoyle | i'm really good at getting confused ar being a pedantic PITA. :) | ||
moritz | wc says 4k words, so not too much there yet | 20:41 | |
20:41
AndroUser2 left
20:42
AndroUser2 joined
|
|||
Geth | doc: prodotiscus++ created pull request #1379: + frugal matching for general quantifiers |
20:45 | |
doc: 9dbb4259af | (Fyodor Sizov)++ (committed by Moritz Lenz) | doc/Language/regexes.pod6 + frugal matching for general quantifiers |
20:47 | ||
moritz | wow, that actually worked! :-) | 20:48 | |
(asking for a PR, I mean) | |||
zengargoyle | heh | 20:49 | |
well volunteereded | 20:50 | ||
moritz -> SIGSLEEP | 20:51 | ||
japhb | I like the idea of people being hit with SIGSLEEP. :-) | 20:55 | |
20:55
zengargoyle left
20:56
zengargoyle joined
|
|||
zengargoyle doesn't seem to know how to close a msg window :P | 20:56 | ||
20:57
ChoHag joined
21:06
kanhu joined,
kanhu left
21:07
mcmillhj left
21:15
alimon left
21:16
perlpilot left
21:17
|oLa| left
21:25
labster joined
21:27
ChoHag left
21:28
xenu left
21:29
nebuchadnezzar left
21:30
|oLa| joined
21:32
mcmillhj joined,
nebuchadnezzar joined
21:34
AndroUser2 left,
Cabanossi left,
AndroUser2 joined
21:36
|oLa| left
21:37
Cabanossi joined,
zakharyas joined
21:40
cpage_ left
21:43
ChoHag joined
21:45
AndroUser2 left
21:47
khw left
21:48
zakharyas left
21:58
wamba left,
curan left
22:01
rindolf left,
setty1 left
22:03
mcmillhj left
22:05
Cabanossi left
22:07
Cabanossi joined
22:10
mcmillhj joined
22:14
mcmillhj left,
cpage_ joined
22:16
colomon joined
22:29
BenGoldberg left
22:30
BenGoldberg joined
22:40
BenGoldberg left
22:41
mcmillhj joined
22:46
mcmillhj left
22:47
BenGoldberg joined
22:48
troys is now known as troys_
22:56
mcmillhj joined
23:00
mcmillhj left
23:03
cpage_ left
23:04
dolmen_ joined
23:05
dolmen left,
travis-ci joined
|
|||
travis-ci | Doc build errored. Fyodor Sizov '+ frugal matching for general quantifiers' | 23:05 | |
travis-ci.org/perl6/doc/builds/243001894 github.com/perl6/doc/compare/e19bc...bb4259affd | |||
23:05
travis-ci left
23:09
cognominal joined
23:10
ctilmes joined
23:12
nadim left
23:20
BenGoldberg left,
Cabanossi left,
ctilmes left
23:22
Cabanossi joined
23:24
eveo joined
|
|||
eveo | zengargoyle: type /part | 23:24 | |
23:31
cdg_ joined,
BenGoldberg joined
23:34
colomon left
23:35
cdg left,
cdg_ left
23:36
AlexDaniel left
23:37
nattefrost left,
AlexDaniel joined
23:38
bioduds left
23:47
araujo left
23:54
araujo joined,
araujo left,
araujo joined
23:56
dolmen_ left
|