»ö« 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
Actualeyes left
00:20
furelypunctional left
00:21
zacts left
00:25
kyclark joined,
vike left
00:26
P6fr left
00:34
sufrostico joined,
vike joined
00:38
canopus_ is now known as canopus
00:39
sufrostico left,
sufrostico joined
00:40
kyclark left
00:47
avenj left
00:50
zacts joined
|
|||
zacts | hi | 00:50 | |
the syntax for perl6 class definitions is nice | |||
I really like this | |||
gfldex | m: say "ohai zacts!" | ||
camelia | rakudo-moar 59d808: OUTPUT«ohai zacts!» | ||
zacts | (coming from Ruby) | ||
and I like what other features perl6 has to offer, that aren't directly offered by Ruby | 00:51 | ||
Perl6 that is | |||
(capital "P") | |||
the syntax is clean for this, yet really flexible | 00:52 | ||
00:54
cyphase left
00:58
cyphase joined
01:04
addison left,
sufrostico left
01:11
Herby_ joined
|
|||
Herby_ | Evening, everyone! | 01:11 | |
o/ | |||
01:14
labster left
01:19
Actualeyes joined
01:22
addison joined
01:26
labster joined
|
|||
AlexDaniel | zacts: by the way, have you seen docs.perl6.org/language/rb-nutshell ? | 01:30 | |
zacts | AlexDaniel: that's what I'm referencing yeah | 01:31 | |
it's nice | |||
I love this | |||
AlexDaniel | m: say‘hello’ | 01:33 | |
camelia | rakudo-moar 713ad5: OUTPUT«5===SORRY!5===Argument to "say" seems to be malformedat <tmp>:1------> 3say7⏏5‘hello’Bogus postfixat <tmp>:1------> 3say7⏏5‘hello’ expecting any of: infix infix stopper statement…» | ||
gfldex | m: my \term:<say‘hello’> = { say 'hello' }(); say‘hello’ | 01:34 | |
camelia | rakudo-moar 713ad5: OUTPUT«hello» | ||
gfldex | term:<> is my new favourit toy | 01:35 | |
AlexDaniel | m: my \term:<say ‘hello’> = { say 'bye' }(); say ‘hello’ | ||
camelia | rakudo-moar 713ad5: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Too many symbols provided for categorical of type term; needs only 1at <tmp>:1------> 3my \term:<say ‘hello’>7⏏5 = { say 'bye' }(); say ‘hello’» | ||
01:36
rindolf left
|
|||
mspo | ruby sigils always threw me | 01:36 | |
AlexDaniel | gfldex: the only problem is that makes the startup time slower | ||
01:36
bob777 joined
|
|||
AlexDaniel | longer… | 01:36 | |
or whatever the right word is | |||
benchable: HEAD my \term:<say‘hello’> = { say 'hello' }(); say‘hello’ | 01:37 | ||
benchable | AlexDaniel: |«HEAD»:0.6852 | ||
AlexDaniel | benchable: HEAD my \term:<say‘hello’> = { say ‘hello’ }; say‘hello’() | 01:39 | |
benchable | AlexDaniel: |«HEAD»:0.6726 | ||
AlexDaniel | benchable: HEAD my \sayhello = { say ‘hello’ }; (sayhello)() | ||
benchable | AlexDaniel: |«HEAD»:0.0959 | ||
AlexDaniel | 0.0959? Really? | 01:40 | |
benchable: HEAD say ‘hello world’ | |||
benchable | AlexDaniel: |«HEAD»:0.0912 | ||
AlexDaniel | okay… | ||
benchable: 2015.10 say ‘hello world’ | |||
benchable | AlexDaniel: |«2015.10»:0.0886 | ||
AlexDaniel | benchable: 2015.12 say ‘hello world’ | ||
benchable | AlexDaniel: |«2015.12»:0.0875 | 01:41 | |
gfldex | $ time perl6 -e 'say "oi!"' | ||
oi! | |||
real 0m0.158s | |||
and that's a slowbox | |||
AlexDaniel | gfldex: not that slow, ≈0.210 on my laptop | ||
gfldex | $ time perl -e 'print "oi!"' | 01:42 | |
oi! | |||
real 0m0.006s | |||
quite slow actually :) | |||
AlexDaniel | gfldex: what about ruby? :) | 01:44 | |
gfldex | $ time ruby -e 'puts "oi!"' | 01:45 | |
oi! | |||
real 0m0.442s | |||
mspo | pretty slow | ||
01:45
molaf left
|
|||
AlexDaniel | whoah… woah… I don't think that it is right, run it again? | 01:45 | |
geekosaur | could still be ruby16 or something | ||
gfldex | e$ time ruby -e 'puts "oi!"' | ||
oi! | |||
real 0m0.051s | |||
indeed, HD was involved | 01:46 | ||
AlexDaniel | OK, now that's right | ||
geekosaur | oh. caching | ||
mspo | yes caching | ||
geekosaur | and/or HD spinup | ||
gfldex | tha same HD takes this chatlog of this channel, so no spin up | ||
AlexDaniel | so if we are talking about the startup time, then we are only 3 times slower than ruby. That's not too bad | 01:47 | |
01:49
cpage_ left
|
|||
gfldex | from docs: e$ time ruby -e 'puts "oi!"' | 01:50 | |
oi! | |||
real 0m0.051s | |||
missclick, i will try again | |||
from docs: # Perl 6, declare a method with an explicit block param\nsub f(&g) {\ng(2)\n\ | |||
01:50
cpage_ joined
|
|||
gfldex | i believe that is wrong, as we don't provide the explicit block param | 01:51 | |
should be `sub f(&g:($)){ g(2) }` | |||
01:52
BenGoldberg joined
|
|||
gfldex | m: sub f(&g:($)){ g(2) }; f({ 2*$^a }); | 01:52 | |
camelia | ( no output ) | ||
gfldex | m: sub f(&g:($)){ g(2) }; say f({ 2*$^a }); | ||
camelia | rakudo-moar 713ad5: OUTPUT«4» | ||
gfldex | m: sub f(&g:($)){ g(2) }; say f({ $^b*$^a }); | ||
camelia | rakudo-moar 713ad5: OUTPUT«Constraint type check failed for parameter '&g' in sub f at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
gfldex | that leaves the question if I should changed the wording to say it's implicit or change the example to be explicit | 01:53 | |
AlexDaniel | what is a block param? | 01:54 | |
gfldex | m: my $b = { &?BLOCK.signature.perl.say }; $b(); | 01:55 | |
camelia | rakudo-moar 713ad5: OUTPUT«:(;; $_? is raw)» | ||
gfldex | every block got one positional argument | ||
so param is wrong as well, should be argument | 01:56 | ||
01:57
molaf joined
|
|||
BenGoldberg | m: block foo { 42 }; | 01:58 | |
camelia | rakudo-moar 713ad5: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Undeclared routines: block used at line 1 foo used at line 1» | ||
BenGoldberg | m: Block foo { 42 }; | ||
camelia | rakudo-moar 713ad5: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Two terms in a rowat <tmp>:1------> 3Block7⏏5 foo { 42 }; expecting any of: infix infix stopper statement end statement modifier statement …» | ||
BenGoldberg | m: Block &foo = { 42 }; | 01:59 | |
camelia | rakudo-moar 713ad5: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Preceding context expects a term, but found infix = insteadat <tmp>:1------> 3Block &foo =7⏏5 { 42 };» | ||
BenGoldberg | m: my Block &foo = { 42 }; | ||
camelia | rakudo-moar 713ad5: OUTPUT«Type check failed in assignment to &foo; expected Callable[Block] but got Block (-> ;; $_? is raw { #`...) in block <unit> at <tmp> line 1» | ||
02:00
BenGoldberg left
02:02
cpage_ left
|
|||
gfldex | m: my Block \foo = { 42 }; | 02:06 | |
camelia | ( no output ) | ||
dalek | c: e989f5d | (Wenzel P. P. Peppmeyer)++ | doc/Language/rb-nutshell.pod6: fix explicit argument mixup |
02:07 | |
02:08
AndyBotwin joined
|
|||
AlexDaniel | gfldex: “a argument” | 02:10 | |
02:19
kid51 joined
02:21
TEttinger left
|
|||
dalek | c: 43c7a4d | (Wenzel P. P. Peppmeyer)++ | doc/Language/rb-nutshell.pod6: fix typo |
02:24 | |
02:25
avenj joined,
avenj left,
avenj joined
02:26
Vitrifur joined
02:28
rfk joined,
rfk left
|
|||
mspo | so how does one generate a fat moarvm file that contains perl6.moarvm + my program? | 02:29 | |
or, even better, a single file that has moar and the lot all bundled up | 02:30 | ||
02:32
avenj left,
avenj joined
|
|||
Herby_ | why does @array.push(x) work, but %hash.push(x => y) not? | 02:32 | |
I have to use %hash.push: (x => y)? | 02:33 | ||
geekosaur | m: my %h; %h.push((x => 'y')) | 02:34 | |
camelia | ( no output ) | ||
gfldex | x => y creates a Pair, (x => y) creates a is of Pairs | ||
Herby_ | m: my %h; %h.push((x=>'y')); say %h; | 02:35 | |
camelia | rakudo-moar 713ad5: OUTPUT«{x => y}» | ||
Herby_ | hmm | ||
Ok, thanks | |||
gfldex | m: my %h; %h.push((x => 1)); dd %h; | ||
camelia | rakudo-moar 713ad5: OUTPUT«Hash %h = {:x(1)}» | ||
gfldex | m: my %h; %h.push(x => 1); # that means to call Hash.push with a named parameter | 02:36 | |
camelia | ( no output ) | ||
AlexDaniel | actually, it looks like x => y is treated like a named param | ||
yea | |||
geekosaur | that was pretty much what I expected, thus the parens | 02:37 | |
Herby_ | gotcha | ||
AlexDaniel | I've always wondered why unused named params throw no warning or error | ||
02:38
noganex_ joined
|
|||
gfldex | m: dd Hash.^can('push') | 02:38 | |
camelia | rakudo-moar 713ad5: OUTPUT«(method push (Hash $: + is raw, *%_) { #`(Method|49447136) ... }, Method+{<anon|56857008>}.new)» | ||
gfldex | pleanse note the *%_ at the end | ||
you need those to forward named parameters down the inheritance chain | 02:39 | ||
02:39
jack_rabbit left,
aries_liuxueyang left
02:40
jack_rabbit joined
02:41
noganex left,
huggable left
02:42
aries_liuxueyang joined
02:53
holyghost left
02:58
Herby_ left
02:59
cyphase left
03:03
cyphase joined
03:13
kid51 left
03:21
addison left,
jack_rabbit left
03:23
jack_rabbit joined,
zacts left
03:25
AlexDaniel left
03:33
Actualeyes left
03:37
kaare_ joined
03:51
zakharyas joined
04:07
dj_goku left
04:11
labster left
04:14
dj_goku joined
04:20
perlawhirl joined,
labster joined
|
|||
perlawhirl | hi perlers... who's awake | 04:21 | |
04:25
ddelony left,
cog_ left
04:34
avenj left
04:35
canopus left
04:41
canopus joined
04:47
CoconutC1ab is now known as CoconutCrab
04:54
Cabanossi left
04:57
Cabanossi joined
04:58
Vitrifur left
04:59
Actualeyes joined
05:04
skids left
05:11
jack_rabbit left
05:15
jack_rabbit joined
05:17
zacts joined
05:20
jack_rabbit left
05:44
gregf_ left,
sno left
05:50
sno joined
05:53
sno left
05:54
sno joined
05:56
gregf_ joined
05:57
ovibos left
06:07
sno left
06:09
jack_rabbit joined
06:11
CIAvash joined
06:14
domidumont joined
06:19
zacts left
06:20
domidumont left
06:25
TEttinger joined,
jack_rabbit left
06:32
avenj joined,
avenj left,
avenj joined,
firstdayonthejob joined
06:40
domidumont joined
06:41
domidumont left
06:42
domidumont joined
06:44
jack_rabbit joined
06:46
firstdayonthejob left
06:58
jack_rabbit left
07:02
abraxxa joined
07:03
furelypunctional joined
07:07
wamba joined,
ovibos joined
07:11
abraxxa left,
abraxxa joined
07:13
darutoko joined
07:21
sno joined
07:22
labster left
07:23
pdcawley left
07:28
zakharyas left
07:32
jonas1 joined
07:33
perlawhirl left
07:34
brrt joined
07:41
dakkar joined
08:00
labster joined,
erez joined
|
|||
erez | Hey all, which of the current web-frameworks would you recommend for actually running a website? | 08:01 | |
I tried Web::App, but can't even get the examples on the README to run | 08:02 | ||
brrt | hi erez | ||
DrForr | On Perl 6? Whatever actually works. | ||
erez | hey brrt | ||
DrForr: That's what I was going for :P | 08:03 | ||
brrt | i don't think there are already very mature perl6 web frameworks currently, like you would expect from perl5, ruby and python | ||
so my question would be: what do you expect? | |||
psch | huh, the Prancer author doesn't advocate it? :) | 08:04 | |
brrt | and what kind of website do you want to run | ||
erez | brrt: I actually am thinking about learning p6, and the best way to learn anything is to use it, and what I do is web-development, so there we are :) | 08:07 | |
DrForr | I'm hoping to have some time to rewrite a few bits before putting it live, or at least fleshing out an actual wiki. Maybe before YAPC. | 08:08 | |
psch | oh, right, it's not in the ecosystem yet | 08:09 | |
DrForr | Yet. | 08:10 | |
brrt | i see erez | 08:11 | |
well, that is a valid goal | |||
i'm wondering how i can help you without disappointing you | 08:12 | ||
fwiw, i haven't done any perl6 web development myself | |||
erez | It's less of a dissappointment and more of a where do I set the starting line. | ||
DrForr | Well, Dancer2 passes tests when running under Inline::Perl5, though I haevn't gone beyond that. | 08:13 | |
*haven't | |||
erez | Right, and I saw Zoffix used Mojolicious in a similar manner | 08:15 | |
08:15
Actualeyes left
|
|||
DrForr | Yeah. My idea would be to start filling in Perl6 versions of the plugins. | 08:16 | |
brrt | another place you can start, would be with Crust | 08:18 | |
but that is at the low level of the stack | |||
erez | I've no problem going down levels | 08:19 | |
As it is a learning experience, not something I need to deliver anytime. | |||
So I might just end up hacking my own web-framework. And move to the more fleshed-out stuff once I got more familiar with p6. | 08:20 | ||
Right now I'm not really comfortable even to debug one of the existing projects. | |||
brrt | hmmm | 08:21 | |
08:21
iH2O joined
|
|||
brrt | if you want to get really down to it, you can also just configure perl6 to run in CGI mode | 08:21 | |
it will be slow and low-level | |||
iH2O | isnt low-level usually faster | 08:22 | |
brrt | but there are no undebuggable bits | ||
no, that is... no | |||
iH2O | :) | ||
brrt | :-) | ||
low level is usually more work | |||
DrForr | There's also a rewrite of P6SGI supposedly in the works; if you really want to get low-level without too much pain. | ||
brrt | that is for sure | ||
erez | That's one of the options. I'll look into Crust though | ||
DrForr | I've managed to get decent throughput with Crust, you do have to up the maximum number of threads the VM can handle though. | 08:23 | |
erez | Great. Thanks guys, I think I'll go with Crust, and see what I can hack out of it | 08:28 | |
DrForr | erez: github.com/drforr/perl6-App-prancer may be inspiration as well :) | 08:29 | |
erez | heh | 08:30 | |
brrt | good luck :-) and don't hesitate to ask | 08:32 | |
08:35
pdcawley joined
|
|||
erez | brrt: no worries | 08:38 | |
and thanks again | |||
08:42
zakharyas joined
08:44
parabolize joined
|
|||
brrt | you are welcome :-) | 08:46 | |
08:51
cosimo left
08:54
brrt left
|
|||
iH2O | brrr its cold here too much air conditioning bye folks | 08:58 | |
08:58
iH2O left
09:14
zakharyas left
09:15
pdcawley left
09:27
cosimo joined
09:31
jonas1 left
09:33
avenj left
09:50
pdcawley joined
09:54
jonas1 joined
10:00
sdoda joined
10:06
kurahaupo joined
10:20
RabidGravy joined
|
|||
stmuk_ | pl6anet.org/drop/rakudo-star-2016.07-RC1.dmg | 10:21 | |
10:21
stmuk_ is now known as stmuk
|
|||
RabidGravy | boom | 10:22 | |
10:24
ambs joined
|
|||
timotimo | boom, gravy | 10:28 | |
10:29
kurahaupo left,
RabidGravy left
10:38
kurahaupo joined
10:39
sena_kun joined
10:47
kurahaupo left
10:48
CIAvash left
10:54
Senji joined
10:55
kurahaupo joined
10:59
iH2O joined,
bbkr_ left
11:01
TreyHarr1 joined
11:05
TEttinger left
|
|||
Woodi | yay, regexes killed StackExchange for 34 minutes :) stackstatus.net/post/147710624694/o...ly-20-2016 | 11:06 | |
Woodi uses 2 spaces after emoticons ;) | 11:07 | ||
timotimo | $str .= chop while $str.ends-with(" ") :P | 11:08 | |
Woodi | would be nice to check for spaces from end of the line to the front :) look for \n and chop \s-es :) | 11:12 | |
11:12
labster left
11:15
rindolf joined,
iH2O left
|
|||
Woodi | R* ? yay! | 11:19 | |
11:20
kurahaupo left
11:21
Guest66 joined
|
|||
jast | perl5 even has operators to avoid that kind of issue, e.g. ++ | 11:24 | |
(regex) | 11:25 | ||
11:30
avenj joined,
avenj left,
avenj joined
|
|||
Woodi | perl5++ :) | 11:34 | |
DrForr | perl(5++) | 11:35 | |
moritz | perl(++5) | ||
diegok | :-) | 11:36 | |
Psy-Q | anything like mod_perl for perl6? | 11:37 | |
DrForr | No need, we've got Crust, a PSGI-alike. | ||
Psy-Q | "is there anything like..." i mean. man, i've heard too much slavic-grammar english these days :) | ||
DrForr: oooh! thanks | |||
Guest66 | how create a pdf with P6 ? | 11:40 | |
(hello ^^) | |||
11:40
Guest66 is now known as P6fr
|
|||
DrForr | There's a PDF module on modules.perl6.org. | 11:41 | |
P6fr | panda PDF install PDF::Grammar :( | ||
* panda install PDF | 11:42 | ||
psch | probably because it's a dependency? | ||
P6fr | hum | ||
thx | 11:45 | ||
11:51
araujo_ left,
brrt joined
11:52
Guest69909 joined
11:53
Guest69909 left
11:54
kid51 joined
11:56
Guest69909 joined
11:57
Guest69909 left
11:58
Guest69909 joined
11:59
Guest69909 left
12:00
Guest69909 joined
12:01
Guest69909 left
12:02
Guest69909 joined
12:04
Guest69909 left,
Guest69909 joined
12:05
Guest69909 left
12:06
Guest69909 joined,
P6fr left
|
|||
timotimo | its not for creating pdfs | 12:14 | |
12:17
TreyHarr1 left
12:26
furelypunctional left
12:41
TreyHarr1 joined
|
|||
___ | There's always metacpan.org/pod/Mojo::PDF ! :D | 12:48 | |
moritz | IME, basically all methods to programmatically generating PDFs suck | 12:50 | |
___ | Pretty much | ||
12:50
lambd0x joined
|
|||
moritz | if you have a template and very limited stuff to fill out, you've got a chance | 12:50 | |
otherwise it's often better to generate latex or markdown or whatever, and use pdflatex or pandoc or whatever to do the layouting | 12:51 | ||
jast | at work we use a component to render HTML/CSS to PDF. it's pretty horrible. ;) | ||
moritz | jast: based on phantomjs? | ||
jast | nope | ||
it's a dedicated rendering engine | |||
that's what's horrible about it | 12:52 | ||
___ | There's something that chrome uses, I forget the name | ||
jast | pdfjs | ||
moritz | not based on gecko or webkit or so? | ||
jast | no, written from scratch AFAIK | ||
moritz | ah, gotcha | ||
jast | third party | ||
___ | wkhtmltopdf | ||
jast | with all its own bugs | ||
it even has JS support, but not good enough for recent jQuery to work | |||
moritz | heh, when on googles for pdfjs, all the results are for PDF.js, moziallas show-pdf-in-the-browser-with-js thingy | 12:53 | |
___ | Even has a crappy Mojolicious plugin for it: metacpan.org/pod/Mojolicious::Plug...DFRenderer | ||
jast | PDF.js is what I meant :) | ||
12:53
sdoda left
|
|||
moritz | but isn't that the other way round? | 12:54 | |
views in PDF in HTML | |||
lambd0x | Hi folks. I'm beginning to learn how to work with uint/buf type. My doubt is how can I get a proper content for a uint variable? SO far I've been able to get Blob[uint] which it complains | ||
jast | yeah, good point. wasn't thinking clearly. | ||
moritz | I thought you meant rendering HTML/CSS to generate a PDF | ||
m: say Blob[uint8].new(42, 23) | 12:55 | ||
camelia | rakudo-moar 8dff9d: OUTPUT«Blob[uint8]:0x<2a 17>» | ||
moritz | lambd0x: ^^ | ||
psch | m: my $buf = "foo".encode("ascii"); say $buf.WHAT; my uint $bar = $buf[0]; say $bar | ||
camelia | rakudo-moar 8dff9d: OUTPUT«(Blob[uint8])102» | ||
lambd0x | hm... | 12:58 | |
here's rakudo error report: This representation (VMArray) cannot unbox to a native int (for type Blob[uint8]) | 12:59 | ||
psch | m: my $buf = "foo".encode("ascii"); say $buf.WHAT; my uint $bar = $buf; say $bar | ||
camelia | rakudo-moar 8dff9d: OUTPUT«(Blob[uint8])This representation (VMArray) cannot unbox to a native int (for type Blob[uint8]) in block <unit> at <tmp> line 1» | ||
13:00
mcmillhj joined
|
|||
lambd0x | I basically want to know why would be of any benefit to convert a series of integers(that might represent a message) to a single integer | 13:02 | |
13:02
sufrostico joined
|
|||
lambd0x | because RC4 $password argument requests to be uint8... | 13:03 | |
this is a Perl6 module that I'm testing. | |||
___ | lambd0x: "to a single integer" why do you think it's a single integer? | 13:04 | |
psch | uh, RC4 takes either a Blob or an Array? | ||
lambd0x | 0x21.. | ||
psch: for password for what I undestood it requires a uint8 so Buf I guess | 13:05 | ||
*understood. | 13:06 | ||
psch | an uint8 is not a Buf | ||
lambd0x | difference is ~~~~~~~~ | ||
psch | one is a Scalar, the other is a natively typed Array | ||
___ | lambd0x: I don't see where RC4 wants $passphrase as a single uint8. It's looping over it, and returns an array of uint8s, so I'm assuming you need to pass it a thing filled with uint8s | ||
m: "foo".encode("ascii").WHAT.say | 13:07 | ||
camelia | rakudo-moar 8dff9d: OUTPUT«(Blob[uint8])» | ||
___ | So "foo".encode("ascii") will work as $passphrase | ||
13:07
sufrostico left
|
|||
___ | (as one example; I'm not saying you have to encode everything to ascii) | 13:07 | |
brrt | say "bar".encode("utf-8") | 13:08 | |
13:08
sufrostico joined
|
|||
brrt | m: say "bar".encode("utf-8") | 13:09 | |
camelia | rakudo-moar 8dff9d: OUTPUT«utf8:0x<62 61 72>» | ||
___ | m: say "bar".encode | ||
camelia | rakudo-moar 8dff9d: OUTPUT«utf8:0x<62 61 72>» | ||
lambd0x | thanks everybody, got it now :) | 13:10 | |
13:10
pdcawley left
13:11
RabidGravy joined
13:16
LeCamarade joined,
LeCamarade left,
sufrostico left
13:18
sufrostico joined
13:21
dvinciguerra_ joined
|
|||
brrt just read the stack overflow outage postmortem | 13:22 | ||
the tl;dr is | |||
.NET has a crappy regex engine | |||
13:22
mcmillhj left
13:23
mcmillhj joined
|
|||
dalek | c: eb76d89 | (Zoffix Znet)++ | doc/Language/traps.pod6: Document the trap with strings and ranges |
13:26 | |
13:36
TreyHarr1 left,
sufrostico left
|
|||
dalek | c: 92406ed | (Zoffix Znet)++ | doc/Language/traps.pod6: Toss the 52-base analogy since it's not accurate perl -E 'say join ", ", "aZ" .. "bB"' aZ, bA, bB |
13:38 | |
13:43
Guest69909 left
13:45
TreyHarr1 joined
13:48
Senji left
13:50
kid51 left
13:54
cog_ joined
13:58
skids joined,
brrt left
14:00
danaj joined
14:07
cdg joined
14:10
Sgeo left
14:18
TreyHarr1 left
14:20
lambd0x left
14:22
TreyHarr1 joined
14:25
user9 left
14:32
ptolemarch joined
14:33
lambd0x joined,
user9 joined
14:47
TreyHarr1 left
14:52
TreyHarr1 joined
14:54
_4d47 joined
14:57
___ is now known as unmatched}
15:06
khw joined
15:12
domidumont left
|
|||
TimToady | m: for ^3 { ^10 .map: *.say; }; say 42; | 15:17 | |
camelia | rakudo-moar b51908: OUTPUT«42» | ||
TimToady | I would class this trap as a simple sink-propagation bug | ||
m: for ^3 { sink ^10 .map: *.say; }; say 42; | |||
camelia | rakudo-moar b51908: OUTPUT«01234567890123456789012345678942» | ||
15:18
petercommand left
|
|||
TimToady | m: for ^3 { ^10 .map: *.say; Nil }; say 42; | 15:18 | |
camelia | rakudo-moar b51908: OUTPUT«01234567890123456789012345678942» | ||
TimToady | m: for ^3 { 43 }; say 42; | ||
camelia | rakudo-moar b51908: OUTPUT«WARNINGS for <tmp>:Useless use of constant integer 43 in sink context (line 1)42» | ||
TimToady | it knows it sank, but somehow the map doesn't get it | ||
15:19
avenj left
|
|||
dalek | c: 25ca6e8 | (Christopher Bottoms)++ | doc/Language/glossary.pod6: minor typo edit |
15:22 | |
c: 95eeaa2 | (Zoffix Znet)++ | doc/Language/glossary.pod6: Merge pull request #730 from molecules/patch-3 minor typo edit |
|||
unmatched} | .tell moritz another frequent contributor. I see "Perl 6 member" on them, but they say they can't commit to docs: github.com/perl6/doc/pull/730 | 15:23 | |
yoleaux | unmatched}: I'll pass your message to moritz. | ||
unmatched} | m: ^10 .map: *.say; | 15:25 | |
camelia | rakudo-moar b51908: OUTPUT«0123456789» | ||
dalek | c: d2cc0ca | (Zoffix Znet)++ | doc/Language/traps.pod6: Sunk map is buggy, not lazy |
||
unmatched} | And found and reopened the RT ticket on that topic: rt.perl.org/Ticket/Display.html?id=127879 | 15:28 | |
15:29
noganex joined
15:30
sno left
|
|||
dalek | c: 5722f79 | (Christopher Bottoms)++ | doc/Language/regexes.pod6: syntax correction Correction replaced second smartmatch with double asterisk. Now the statement is true as advertised. |
15:31 | |
c: 4eafbfe | (Zoffix Znet)++ | doc/Language/regexes.pod6: Merge pull request #731 from molecules/patch-3 syntax correction |
|||
perlpilot | unmatched}: huh ... I didn't see molecules in the member list, so I added him | ||
15:32
noganex_ left
|
|||
unmatched} | weird | 15:32 | |
erez | \quit | 15:38 | |
15:38
erez left
|
|||
zostay | m: my $rx = rx{ 1 }; my $x2 = rx{ $rx }; | 15:39 | |
camelia | ( no output ) | ||
zostay | m: my $rx = rx{ 1 }; my $rx2 = rx{ $rx }; say '1' ~~ $rx2 | 15:41 | |
camelia | rakudo-moar 86843a: OUTPUT«True» | ||
15:44
avenj joined,
avenj left,
avenj joined
15:45
abraxxa left
15:51
lizmat joined
15:54
acrussell joined
15:55
iH2O joined
15:58
Actualeyes joined
|
|||
harmil | Speaking of sink, I'm not convinced that the warning for useless use of iterables in sink context should be a thing. e.g.: | 15:59 | |
m: sink ^1000 | |||
camelia | rakudo-moar 86843a: OUTPUT«WARNINGS for <tmp>:Useless use of "^" in expression "^1000" in sink context (line 1)» | ||
harmil | I'm explicitly asking for the expansion of the sequence to be performed and ignored. That's not something that should get a warning, is it? | 16:00 | |
jnthn | I don't think it's a warning for iterables in general | ||
It's for a useless use of the (known pure) range constructor | |||
m: sink 1, 1, *+* ... 8 | 16:01 | ||
camelia | ( no output ) | ||
jnthn | Note no warning there | ||
harmil | m: my @foo = 1,1,*+*...8; sink @foo | 16:02 | |
camelia | rakudo-moar 86843a: OUTPUT«WARNINGS for <tmp>:Useless use of @foo in sink context (line 1)» | ||
16:02
cdg left
|
|||
jnthn | The assignment to the array is already eager in that case | 16:03 | |
16:05
iH2O left
|
|||
harmil | jnthn: that's not why we get the warning. I won't do the version with 8 replaced by * as it never terminates, but it also gives the warning. | 16:05 | |
unmatched} | m: sink 1, 1, *+* ... * | 16:06 | |
camelia | rakudo-moar 86843a: OUTPUT«Memory allocation failed; could not allocate 1146880 bytes» | ||
jnthn | m: my @foo = 1,1,*+*...8; sink @foo; | ||
camelia | rakudo-moar 86843a: OUTPUT«WARNINGS for <tmp>:Useless use of @foo in sink context (line 1)» | ||
jnthn | But that terminates. | ||
harmil | It just feels to me as if "sink" means "just do it" and getting a warning that "it" isn't useful just doesn't sit well with me. YMMV. | 16:07 | |
jnthn | It's not telling you it isn't useful, it's telling you there's nothing to do and you wrote dead code. | 16:08 | |
Which the vast majority of the time implies a confused programmer. | 16:09 | ||
16:09
Actualeyes left
|
|||
harmil | Except it doesn't know that. @a might be anything, and iterating over it might be extremely useful (e.g. it might do a full read from a DB, and I might be timing that) | 16:09 | |
unmatched} | m: quietly sink ^1000 | ||
camelia | ( no output ) | ||
jnthn | m: my @a = lazy gather { say 'we actually run' }; sink @a | 16:10 | |
camelia | rakudo-moar 86843a: OUTPUT«WARNINGS for <tmp>:Useless use of @a in sink context (line 1)we actually run» | ||
harmil | Nice example. | ||
unmatched} | m: my @a = lazy gather { say 'we actually run' }; quietly sink @a | ||
camelia | rakudo-moar 86843a: OUTPUT«WARNINGS for <tmp>:Useless use of @a in sink context (line 1)we actually run» | ||
jnthn | Yeah, that one is more interesting, but now I want to know why the ... one up above didn't hang | ||
unmatched} | m: my @a = lazy gather { say 'we actually run' }; sink quietly @a | ||
camelia | rakudo-moar 86843a: OUTPUT«WARNINGS for <tmp>:Useless use of @a in sink context (line 1)we actually run» | ||
jnthn | oh wait, 'cus I wrote it wrong | 16:11 | |
unmatched} | Interesting. | ||
jnthn | m: my @foo = 1,1,*+*...*; sink @foo; | ||
camelia | rakudo-moar 86843a: OUTPUT«(signal SEGV)WARNINGS for <tmp>:Useless use of @foo in sink context (line 1)» | ||
jnthn | Yeah, I'd agree on a variable it's rather dubious. | ||
harmil | You get the segv award! | ||
jnthn | On sink ^1000 I think it's spot on | 16:12 | |
harmil | Yeah, at best ^n is just a weird sort of timing test, and I could reasonably expect to have to quiet that manually. | ||
jnthn | But yeah, feel free to file it against the @foo case. That does look a bit bogus | ||
harmil | And I might expect that the optimizer would not be my friend there | ||
What's the best way to file these days? I always forget. Directly RT or is there a form? | 16:13 | ||
unmatched} | hug[TAB][TAB] damned bot | ||
jnthn | Yeah, I think you can file it directly in RT these days, though email may be the easiest way (address in the REAMDE for Rakudo, or at least it should be) | ||
16:14
unmatched} is now known as ZoffixWin,
ZoffixWin left,
ZoffixWin joined
16:15
huggable joined,
ZoffixWin is now known as unmatched}
|
|||
unmatched} | huggable: rakudobug | 16:15 | |
huggable | unmatched}, To report a bug, email detailed description and any test cases to [email@hidden.address] or use perl6 query on rt.perl.org ; see github.com/rakudo/rakudo/#reporting-bugs | ||
unmatched} | Mission accomplished :) | ||
16:16
petercommand joined
16:18
dakkar left
16:19
AlexDaniel joined
|
|||
harmil | Done. Even gave it a snappy title. | 16:20 | |
jdv79 | unmatched}: has any ocd-ish person commented on your nick? | ||
it bothers me slightly | |||
harmil | it's better than matched} | 16:21 | |
unmatched} | jdv79: you're the first on :) | ||
*one | |||
jdv79 | oh its you. harmil don't give him ideas! | ||
unmatched} | :) | 16:22 | |
[matched} is a fun one. Because of IRC protocol's treatment of [ and { :) | 16:23 | ||
harmil | hey. speaking of such things, I was writing some code last night that had to enumerate the pairs of matching brace-like characters from Unicode and I thought there was some way to do that easily in Perl 6, but I can't find it. The Unicode classes Ps/Pe are great for finding them, but not for identifying which go with which.... | 16:24 | |
jdv79 | something like that should be in the setting, right? | ||
its probably a large map of chars literally so should be easy to spot. maybe. | 16:25 | ||
unmatched} | m: "[".ord.&[+](1).chr.say | ||
camelia | rakudo-moar 86843a: OUTPUT«\» | ||
unmatched} shrugs | 16:26 | ||
harmil | jdv79: what do you mean by "setting"? | 16:28 | |
jnthn | m: say chr :16(uniprop('[', 'Bidi_Mirroring_Glyph')) | ||
camelia | rakudo-moar 86843a: OUTPUT«]» | ||
unmatched} | :o | ||
harmil | Thanks! | ||
unmatched} | m: say chr :16(uniprop('R', 'Bidi_Mirroring_Glyph')) | 16:29 | |
camelia | rakudo-moar 86843a: OUTPUT«This call only converts base-16 strings to numbers; value 0 is of type Int, so cannot be converted!(If you really wanted to convert 0 to a base-16 string, use 0.base(16) instead.) in block <unit> at <tmp> line 1» | ||
16:30
itaipu joined
16:31
lizmat_ joined
16:32
lizmat left
|
|||
harmil | m: for ^0xffff -> $i { my $c = try { $i.chr }; next if !$c.defined; next unless $c ~~ /<:Ps>/; my $end = :16(uniprop($c, "Bidi_Mirroring_Glyph")); next unless $end.defined; say "$c ~ {$end.chr}"} | 16:33 | |
camelia | rakudo-moar 59b7e5: OUTPUT«( ~ )[ ~ ]{ ~ }༺ ~ ༻༼ ~ ༽᚛ ~ ᚜⁅ ~ ⁆⁽ ~ ⁾₍ ~ ₎⌈ ~ ⌉⌊ ~ ⌋〈 ~ 〉❨ ~ ❩❪ ~ ❫❬ ~ ❭❮ ~ ❯❰ ~ ❱❲ ~ ❳❴ ~ ❵⟅ ~ ⟆⟦ ~ ⟧⟨ ~ ⟩⟪ …» | ||
harmil | Thanks again! | ||
unmatched} | .u ༺ | ||
yoleaux | U+0F3A TIBETAN MARK GUG RTAGS GYON [Ps] (༺) | ||
jnthn | Font I am disappoint...quite a lot of boxes for me in the latter part of that | 16:34 | |
16:34
Actualeyes joined,
travis-ci joined
|
|||
travis-ci | Doc build failed. Zoffix Znet 'Merge pull request #731 from molecules/patch-3 | 16:34 | |
travis-ci.org/perl6/doc/builds/146413972 github.com/perl6/doc/compare/d2cc0...afbfe4ce9b | |||
16:34
travis-ci left
|
|||
harmil | On mac right now. All rendered, amusingly enough. | 16:34 | |
Of course, in a Perl context, I have to add <> in manually, but that's fine. | 16:36 | ||
dalek | c: c6e55ce | (Zoffix Znet)++ | doc/Language/traps.pod6: Add missing POD directive |
||
16:37
canopus left
16:40
sno joined
|
|||
gfldex | where are the docs for META.info? | 16:42 | |
unmatched} | Maybe in Modules | ||
ugexe | meta6.json is documented in s22 | ||
stmuk | it's in one of the "design" docs | ||
yeah | 16:43 | ||
16:43
canopus joined
|
|||
unmatched} | I don't think that's up to date | 16:43 | |
Like the `resources` design.perl6.org/S22.html#resources | 16:44 | ||
ugexe | only resources | ||
unmatched} | What about `support`? I may be misremembering, but our tooling would break if it's missing. Yet, it's marked as optional | 16:45 | |
16:46
lizmat_ left
|
|||
gfldex | there is a module called META6 | 16:46 | |
ugexe | afaik everything works without it | ||
16:46
cdg joined
16:51
cdg left
|
|||
ugexe | sub META6(%meta (:$perl, :$name, :$version, :$auth, *%)) { ...; %meta } | 16:51 | |
thats what i usually use | 16:52 | ||
16:52
iH2O joined
|
|||
ugexe | well, :$perl!, :$name!, etc | 16:53 | |
16:54
travis-ci joined
|
|||
travis-ci | Doc build failed. Zoffix Znet 'Sunk map is buggy, not lazy' | 16:54 | |
travis-ci.org/perl6/doc/builds/146424682 github.com/perl6/doc/compare/95eea...cc0ca6633d | |||
16:54
travis-ci left
|
|||
tbrowder | I'm submitting a doc PR describing the current state of table pod here <github.com/perl6/doc/pull/733>; I will merge it after a good Travis run (fingers crossed--it worked on my local host) unless there are comments before hand | 16:55 | |
16:55
jmiven joined
|
|||
TimToady | I think the warning needs to stay on @foo, since it points out the problem with 'say @foo or @bar' | 16:55 | |
we might consider turning off the warning inside an explict "sink" | 16:56 | ||
m: my @foo = 1,2,3; my @bar = 4,5,6; say @foo or @bar | 16:57 | ||
camelia | rakudo-moar 59b7e5: OUTPUT«[1 2 3]» | ||
16:58
lizmat joined
|
|||
TimToady | hmm | 16:58 | |
m: my @foo = 1,2,3; my @bar = 4,5,6; say @foo or @bar; 42 | |||
camelia | rakudo-moar 59b7e5: OUTPUT«WARNINGS for <tmp>:Useless use of constant integer 42 in sink context (line 1)[1 2 3]» | ||
unmatched} | m: my @foo; my @bar = 4,5,6; say @foo or @bar | ||
camelia | rakudo-moar 59b7e5: OUTPUT«[]» | ||
unmatched} | m: my @foo; my @bar = 4,5,6; say @foo and @bar | ||
camelia | rakudo-moar 59b7e5: OUTPUT«[]» | ||
TimToady | that's probably a sink propagation error there | ||
m: my @foo = 1,2,3; my @bar = 4,5,6; say @foo or 42 | 16:59 | ||
camelia | rakudo-moar 59b7e5: OUTPUT«[1 2 3]» | ||
TimToady | yeah, that should probably propagate to the right side | ||
m: my @foo = 1,2,3; my @bar = 4,5,6; (say @foo), @bar; 42 | 17:00 | ||
camelia | rakudo-moar 59b7e5: OUTPUT«WARNINGS for <tmp>:Useless use of constant integer 42 in sink context (line 1)[1 2 3]» | ||
gfldex | m: my Str $s; my @a = quietly $s.split: ','; dd @a; | ||
TimToady | m: my @foo = 1,2,3; @foo | ||
camelia | rakudo-moar 59b7e5: OUTPUT«Array @a = [""]» | ||
rakudo-moar 59b7e5: OUTPUT«WARNINGS for <tmp>:Useless use of @foo in sink context (line 1)» | |||
TimToady | dunno why , isn't propagating, it's supposed to | ||
m: my @foo = 1,2,3; my @bar = 4,5,6; (say @foo), 42 | 17:01 | ||
camelia | rakudo-moar 59b7e5: OUTPUT«WARNINGS for <tmp>:Useless use of constant integer 42 in sink context (lines 1, 1)[1 2 3]» | ||
17:01
iH2O left
|
|||
gfldex | i'm not sure if splitting an undefined value should result in the empty string | 17:01 | |
TimToady | m: Int.split(',').say | 17:05 | |
camelia | rakudo-moar 59b7e5: OUTPUT«Use of uninitialized value of type Int in string contextAny of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at <tmp> line 1()» | ||
unmatched} | m: my Str $s; my @a = quietly "".split: ','; dd @a; | 17:06 | |
camelia | rakudo-moar 59b7e5: OUTPUT«Array @a = [""]» | ||
unmatched} | Kinda makes sense if you squint :) | ||
the sense making part being the uninitilized Str is an empty Str | |||
s/is/treated as/; | 17:07 | ||
17:07
firstdayonthejob joined
|
|||
TimToady | dinner & | 17:07 | |
17:07
kid51 joined,
travis-ci joined
|
|||
travis-ci | Doc build passed. Zoffix Znet 'Add missing POD directive' | 17:07 | |
travis-ci.org/perl6/doc/builds/146426610 github.com/perl6/doc/compare/4eafb...e55cee6b08 | |||
17:07
travis-ci left
17:09
user9 left
17:18
colomon left,
firstdayonthejob left
17:20
firstdayonthejob joined
17:24
[Sno] joined
17:25
sno left
17:28
cdg joined
17:32
[Sno] left
|
|||
tbrowder | my PR is failing due to: | 17:35 | |
www.irccloud.com/pastebin/YqJ46nA3/ | |||
explain to me how a new doc can fail that test? | 17:36 | ||
...looking at the test... | |||
unmatched} | tbrowder: you have lines that have trailling whitespace in your document. | 17:37 | |
17:37
AndyBotwin left
|
|||
unmatched} | IMO it's a stupid test that just wastes everyone's time, but the concensus so far seems to be that we need it. | 17:37 | |
huggable: whitespace | |||
huggable | unmatched}, nothing found | ||
harmil | Looks like only some of those bracketing characters we were talking about earlier are allowed in P6. See pastebin.com/xHfKUM3A | 17:38 | |
For example "Cannot parse quoting q⸨ foo ⸩" | 17:39 | ||
unmatched} | tbrowder: perl -pi -e 's/\s+/\n/' doc/Language/tables.pod6 # should strip everything; untested tho | ||
oops | |||
tbrowder: perl -pi -e 's/\s+$/\n/' doc/Language/tables.pod6 # should strip everything; untested tho | |||
tbrowder | okay, the test name i think is misleading, it shoul be something like "no trailing whitespace allowed" | ||
and I need to fix my new emacs editor to do that anyway :) | 17:40 | ||
17:40
setty1 joined
|
|||
unmatched} | IMO, it's ok. `ok - no trailing whitespace` `nok - no trailing whitespace FAILED Blah blah` | 17:40 | |
17:40
pecastro left
|
|||
tbrowder | well the travis message is: "Failed test 'no trailing whitespace in doc/Language/tables.pod6'" | 17:42 | |
So a sloppy reader (as I am wont to be) immediatelky thinks ???? | |||
So a sloppy reader (as I am wont to be) immediately thinks "why do I need trailing whitespace???" | 17:43 | ||
17:43
user9 joined
|
|||
unmatched} | :) | 17:43 | |
tbrowder | anyhoo, I'll fix it... | 17:44 | |
gfldex | trailing WS can technically lead to broken links | ||
dalek | c: a8a0ef7 | (Zoffix Znet)++ | t/trailing_whitespace.t: Improve trailing whitespace message Ref: irclog.perlgeek.de/perl6/2016-07-21#i_12882363 |
17:45 | |
unmatched} | gfldex: which can technically be caught by link checkers :) | ||
tbrowder | believe me, I am a firm believer in NO trailing WS, it's just that I recently moved from a 20-year XEmacs run to emacs and I'm still find weirdisms, such as my trainging WS zapper is not working... | ||
unmatched} | So far, I've seen this test just waste people's time without offering much benefit. | 17:46 | |
gfldex | there may be other issues too as the pod parser doesn't kill trailing WS anywhere | ||
17:47
jameslenz joined
|
|||
unmatched} | And "run make test before pushing" isn't a good enough excuse, because personally, I do most of my doc commits in the browser. | 17:47 | |
tbrowder | that could be an issue with WS-col-separated tables, but my grand table pod fix should take care of that | 17:48 | |
ugexe | just need a whitespaceable to detect whitespace failures and automatically send a commit to the PR with the spaces fixed | 17:49 | |
tbrowder | i'm not making an excuse, just don't think about that ws test | 17:50 | |
17:56
mtj_ joined
|
|||
harmil | BTW: Since it's a timely reddit thing, and punnishingly dove-tails with the previous topic, it's my assertion that this code should detect that I'm being stupid: time perl6 -e 'my $c = (" " x 10000) ~ "end"; for 1..10 -> $i { $c ~~ /\s+$/ }' | 17:56 | |
It should also do so without checking my username :) | |||
ugexe | how could it know? any object can have its own behavior for ~~ with a .ACCEPTS methods | 17:57 | |
unmatched} | It could say "unused $i" or whatever | 17:58 | |
I think Perl 5 does that | |||
harmil | I think that the regex engine should notice that I'm asking for an end-anchored match and quickly check to see if it can't succeed. I think P5 does this, doesn't it? | ||
unmatched} | Oh, never mind it doesn't. | 17:59 | |
17:59
wamba left
|
|||
harmil | Try running that. It takes about a minute. | 17:59 | |
unmatched} | harmil: wait, what's the stupid part you mean? That you're using $i as the loop var yet regex matching against $c? | ||
I mean... that $i is unused. | |||
18:00
pyrimidine joined
|
|||
harmil | No, the stupid is that I'm doing an end-anchored regex against a string that will invoke pathological backtracking. | 18:00 | |
unmatched} has no idea what that means | 18:01 | ||
harmil | I'm matching \s+$ against a string that's 10,000 spaces followed by "end". Perl looks at all of the spaces together checks for end of string, fails. backtracks to 9,999 spaces and checks for end, fails... and so on. | 18:02 | |
18:03
adrusi joined,
AndyBotwin joined
|
|||
harmil | perl5-porters had a huge discussion about this way back in the day... I had trouble finding it. It was in the context of a paper that compared DFA/NFA regex matching. | 18:04 | |
unmatched} | Why is this also slow? my $c = (" " x 10000) ~ "end"; for 1..10 -> $i { $c ~~ /\s+:$/ } | ||
18:05
TreyHarr1 left
|
|||
harmil | Good question | 18:05 | |
Horrifyingly, that's actually SLOWER! | |||
18:05
avenj left
|
|||
timotimo | when you run a regex against a string, its ropes will be collapsed | 18:06 | |
18:06
sunnavy joined
|
|||
unmatched} | .oO( regex have ropes... ? ) |
18:06 | |
timotimo | so the moment you run that regex on it, it'll allocate the space for those 10_000 spaces, forgetting it was once a coherent bunch of spaces | ||
harmil | m: ((" " x 10000) ~ "end") ~~ /\s+$/ | ||
camelia | ( no output ) | ||
timotimo | "its ropes" meaning the string's ropes, not the regexes ropes :) | ||
unmatched} | .oO( strings have ropes... ? ) |
18:07 | |
What ropes? | |||
timotimo | basically a tree-like structure containing substrings and repetitions | ||
so (" " x 10000) ~ "end" is actually stored in memory as "10 thousand times a space, then the string 'end'" | 18:08 | ||
harmil | Ah! | ||
unmatched} | Oh | ||
timotimo | and when it gets collapsed, it turns into a ~10 kilobyte region in merory containing a crapton of spaces, and then the word "end" | ||
unmatched} | So you're saying it's not the regex that's slow by this rope collapsing is slow? | 18:09 | |
timotimo | ropes are what allows us to use the ~ operator in a loop and not have terrible performance, because we're not copying the big/growing part of the string over and over and over and over again | ||
unmatched} | s/by/but/; | ||
timotimo | oh, regexes are still kind of slow :) | ||
but the collapsing coud take a bit of time, too | |||
harmil | I don't think that's it. Unless I misunderstand the semantics of str vs Str: I tried: time perl6 -e 'my str $c = (" " x 10000) ~ "end"; $c ~~ /\s+:$/' | ||
timotimo | m: use nqp; nqp::flattenropes(" " x 10000); say now - INIT now | 18:10 | |
camelia | rakudo-moar 68afa3: OUTPUT«===SORRY!===No registered operation handler for 'flattenropes'» | ||
timotimo | ah, we don't expose that as an nqp:: op, it seems like? | ||
18:10
spider-mario joined
|
|||
timotimo | m: use nqp; (" " x 10000) ~~ / " " /; say now - INIT now | 18:10 | |
camelia | rakudo-moar 68afa3: OUTPUT«0.0018640» | ||
harmil | Oh, so even at the nqp level these exist, so str probably has the same behavior? | ||
unmatched} | This is probably the reason for some tickets I've seen that say str is slower than Str. | ||
timotimo | m: use nqp; ((" " x 10000) ~ "end") ~~ / \s+$ /; say now - INIT now | 18:11 | |
camelia | rakudo-moar 68afa3: OUTPUT«10.1804368» | ||
timotimo | ah. no. it's definitely the regex :) | ||
unmatched} | m: use nqp; ((" " x 10000) ~ "end") ~~ / \s+ /; say now - INIT now | ||
camelia | rakudo-moar 68afa3: OUTPUT«0.00351346» | ||
harmil | nice test case, though! | ||
timotimo | our regex optimizer is dumb as bricks ;) | ||
harmil | I'll submit this. At least it will be useful as a note for the future. | ||
unmatched} | timotimo: does this roping hapen with `str`? | 18:12 | |
timotimo | yes, but Str is just a boxed str | ||
so it happens with Str, too | |||
unmatched} | ah | ||
18:12
araujo joined
18:13
araujo left,
araujo joined,
araujo left,
araujo joined
18:14
pecastro joined
|
|||
harmil | For some reason, I thought that Str was a lot more magical that that, and str was just a unicode-step-up from a buf. | 18:15 | |
18:16
sufrostico joined
18:17
khw left,
FROGGS joined,
TreyHarr1 joined
18:18
lizmat left
18:20
hankache joined
|
|||
[Coke] | (perl6 doc) I don't care if someone adds the ending whitespace test to a 'make xtest' or something. | 18:22 | |
18:22
TreyHarr1 left
18:23
pmqs_ left
18:24
sno joined
|
|||
dalek | c: 53caa54 | (Brian Duggan)++ | README.md: README example needs PERL6LIB to be set |
18:24 | |
c: 89e63e7 | (Brian Duggan)++ | / (2 files): search . |
|||
c: c7b3869 | (Brian Duggan)++ | bin/p6doc: slip |
|||
c: cc8cdc7 | (Zoffix Znet)++ | bin/p6doc: Merge pull request #714 from bduggan/fix-readme-example README example needs PERL6LIB to be set |
|||
timotimo | nope, str is The Real Deal | 18:25 | |
18:27
TreyHarr1 joined,
Amnez777 left
|
|||
dalek | c/glossary-cleanup: f0ac523 | Altai-man++ | doc/Language/glossary.pod6: Deletion of content! According to github.com/perl6/doc/issues/728, this commit removes glossary items which are already greatly described on different resourses like Wikipedia and are not Perl6-specific. |
18:30 | |
c/glossary-cleanup: 7dbcc55 | Altai-man++ | doc/ (7 files): Content deletion! This is a second commit for github.com/perl6/doc/issues/728, where items that are already described elsewhere were removed from Glossary page. |
|||
18:30
araujo_ joined
18:33
lizmat joined
18:34
araujo left
18:40
domidumont joined
18:41
_4d47 left
18:42
jonas1 left,
jonas1 joined,
Ven joined
18:43
jonas1 left
|
|||
dalek | c: d023313 | (Tom Browder)++ | doc/Language/tables.pod6: add new doc about current state of p6 table pod |
18:54 | |
c: 1d58889 | (Tom Browder)++ | doc/Language/tables.pod6: remove trailing ws |
|||
c: 6c2c869 | (Tom Browder)++ | doc/Language/tables.pod6: Merge pull request #733 from tbrowder/pod-tables add new doc about current state of p6 table pod |
|||
18:58
Guest66 joined
18:59
Guest66 left
19:02
domidumont left
19:04
kid51 left,
kid511 joined
19:08
khagan left
19:11
Amnez777 joined
19:14
lambd0x left
19:18
sena_kun left
19:20
khagan joined
19:21
araujo__ joined
19:26
araujo_ left
19:28
sno left
|
|||
dalek | c/glossary-cleanup: 68ec049 | (Christopher Bottoms)++ | doc/Language/glossary.pod6: Added =end pod |
19:31 | |
19:32
Begi left
19:35
hankache left
|
|||
[Coke] | latest recommend p6 module for a simple dynamic web app? | 19:38 | |
unmatched} | Inline::Perl5 + Mojolicious :P | ||
I think people (masak) had luck with HTTP::Server::Tiny | 19:39 | ||
19:39
sena_kun joined,
darutoko left,
sno joined
19:42
addison joined
19:43
labster joined
19:44
brrt joined
|
|||
dalek | c: 8053deb | (Tom Browder)++ | doc/Language/tables.pod6: fix typo |
19:45 | |
El_Che | [Coke]: I think you question is a popular one. I asked it myself and I have seen people popping in asking the same question | 19:49 | |
unmatched} | ditto | ||
Someone smart should hack up an awesome web framework :D | |||
ugexe | inline::perl5 + CGI.pm | ||
unmatched} throws up | 19:50 | ||
El_Che | where is the big trout | ||
19:58
itaipu left
|
|||
perlpilot | DrForr's Prancer looked nice, but I don't see it on modules.perl6.org | 20:02 | |
I was planning on playing with HTTP::Server::Tiny myself | 20:03 | ||
20:03
avenj joined,
avenj left,
avenj joined
|
|||
perlpilot | (probably because of something masak wrote about it :) | 20:03 | |
lizmat | decommute& | 20:04 | |
20:04
ptolemarch left,
lizmat left
|
|||
[Coke] | .... eh, this is a pre-POC. mojo5 it is, for a few days, at least. | 20:04 | |
20:12
avenj left
20:14
kid511 left
20:15
huggable left,
huggable joined
20:21
FROGGS left
|
|||
jdv79 | i would have liked a mojo6 but someone ran sri out of here so thanks for that | 20:25 | |
20:29
sno left
|
|||
timotimo | o_O | 20:29 | |
unmatched} | pfft... he was saying Perl 6 had no chance of success long before that | 20:30 | |
20:30
araujo_ joined
|
|||
unmatched} | In fact, the whole storming out of here looked more of an excuse to leave. | 20:30 | |
jdv79 | maybe he'll be back someday | 20:31 | |
mspo | CGI is a perfectly good protocol | 20:32 | |
timotimo | i didn't even see all that | ||
unmatched} | And the reason for his storming out is [Coke] basically saying "then why are you here?" after he was going on and on about why Perl 6 sucks: irclog.perlgeek.de/perl6/2016-01-08#i_11853185 | 20:33 | |
I wouldn't exactly call that "running someone out" | |||
20:34
araujo__ left
|
|||
moritz | m: await Promise.anyof(Promise.in(1), start { 42 }).then({ say .result }) | 20:36 | |
yoleaux | 15:23Z <unmatched}> moritz: another frequent contributor. I see "Perl 6 member" on them, but they say they can't commit to docs: github.com/perl6/doc/pull/730 | ||
camelia | rakudo-moar d789da: OUTPUT«True» | ||
moritz | unmatched}: I'm pretty sure they can, just haven't realized it, or still likes pull requests | 20:37 | |
timotimo | hmm | ||
moritz | how do I actually get the promise that was fulfilled? | ||
timotimo | you'd keep the promises in variables, i expect | 20:38 | |
moritz | don't we have a first() or race() or so for promises? | ||
timotimo | with whenever you can do that | 20:39 | |
20:41
nightfrog joined
|
|||
brrt | hmmm | 20:41 | |
20:42
dvinciguerra_ left
|
|||
moritz | whenever needs a supply | 20:42 | |
timotimo | it can't work with promises at all? | 20:45 | |
but you know that you can coerce a promise into a supply? | |||
at least i think you can | |||
brrt | it remains a real shame that perl6 has proven to be so divisive | ||
.. that said, i think that the goal of 'a more perlish perl' has been achieved | 20:46 | ||
timotimo | m: react { whenever Promise.in(1) { say "timeout"; last }; whenever (start { 42 }) { .say } }; say "done" | ||
camelia | rakudo-moar d789da: OUTPUT«42timeoutdone» | ||
timotimo | m: react { whenever Promise.in(1) { say "timeout"; last }; whenever (start { 42 }) { .say; last } }; say "done" | ||
oh, that's not the right one | |||
camelia | rakudo-moar d789da: OUTPUT«(timeout)42» | ||
timotimo | m: react { whenever Promise.in(1) { say "timeout"; done }; whenever (start { 42 }) { .say; done } }; say "done" | ||
camelia | rakudo-moar d789da: OUTPUT«42done» | ||
timotimo | i wanted done, not last, because last is for the whenever, not for the react | 20:47 | |
20:49
kaare_ left
|
|||
dalek | c: 97cd5ed | (Sterling Hanenkamp)++ | doc/Language/traps.pod6: Adding docs for the named parameter trap (#734) |
20:51 | |
AlexDaniel | hmm didn't really mean to squash there but it's ok | 20:52 | |
20:55
pmqs joined
|
|||
moritz | www.perlmonks.org/?node_id=1168103 better solutions would be very welcome | 20:57 | |
20:58
dvinciguerra_ joined
|
|||
timotimo | moritz: i bet we have a Supply combinator that does individual timeouts per "message" | 20:59 | |
20:59
skids left,
TEttinger joined
21:01
nbg joined,
pmqs left
21:02
sufrosti1o joined
21:05
domidumont joined,
mcmillhj left
|
|||
perlpilot | moritz: you suggested what I would have. So we're at least equally bad at concurrency ;) | 21:06 | |
moritz | gist.github.com/moritz/e632e4df754...9d10e12e62 is my current attempt, but it doesn't print anything | 21:08 | |
$source.tap(&say) does print the messages as expected | 21:09 | ||
21:11
sno joined
|
|||
timotimo | moritz: i'd totally write sub source as a supply block with whenevers, but we really don't have a supply that fires at random intervals ... | 21:13 | |
moritz | and the Heartbeat supplie also emits once | ||
timotimo: sub source, albeit clunky, isn't the problem | 21:14 | ||
the problem is that whenever $source.zip-latest($heartbeat) { } never fires | |||
21:15
acrussell left
|
|||
timotimo | you probably want a :partial or what it's called? | 21:15 | |
or ... is that exactly what zip-latest does? | |||
ah, you probably need a :initial? | 21:16 | ||
moritz | docs.perl6.org/type/Supply#method_zip-latest | ||
is this a bug in zip-latest | 21:17 | ||
timotimo | By default, all supplies have to have at least one value emitted on them before the first combined values is emitted on the resulting supply. - that's what i meant | 21:21 | |
moritz | but, each of them emit eat least one value | 21:22 | |
*at least | |||
21:24
rindolf left
21:30
domidumont left,
brrt left
|
|||
moritz | oh wow, it gets weirder and weirder | 21:37 | |
perlpunks.de/paste/show/579140e7.765d.d8 | 21:38 | ||
21:40
kevina joined,
dvinciguerra_ left
|
|||
timotimo | wow, that seems really b0rked | 21:40 | |
moritz submits rakudobug | |||
I hadn't check perlmonks for a few months, and now two Perl 6 questions within the last 4 days. Nice. | 21:43 | ||
timotimo has to go to bed | |||
moritz too | 21:44 | ||
should have gone an hour ago | |||
21:49
Ven left
22:02
spider-mario left
22:07
avenj joined,
avenj left,
avenj joined
22:13
TreyHarr1 left
22:15
addison left
22:19
avenj left
22:20
Sgeo joined,
girafe2 left
22:22
lizmat joined
22:24
addison joined,
kurahaupo joined
22:29
TreyHarr1 joined
22:31
kurahaupo left
22:34
firstdayonthejob left
22:37
cyphase left
22:39
TreyHarr1 left,
setty1 left
22:40
harmil left
22:41
cyphase joined
22:43
tbrowder left
22:49
TreyHarr1 joined
22:50
sufrosti1o left
22:55
Zoffix joined
22:56
Guest66 joined,
Guest66 is now known as P6fr
|
|||
P6fr | Hello | 22:56 | |
Zoffix | m: say IO::Pipe.^can('close') | ||
ovibos | hello! | ||
camelia | rakudo-moar d789da: OUTPUT«()» | ||
Zoffix | How come that's empty? Proc's .out returns an IO::Pipe and you can call .close on it | 22:57 | |
I wanna find where in the sauce .close is defined | |||
gfldex | m: dd IO::Pipe.^parents | 22:58 | |
camelia | rakudo-moar d789da: OUTPUT«(RESTRICTED-CLASS,)» | ||
Zoffix | Ah, camelia is restricted. gfldex++ | 22:59 | |
P6fr | you use any editor for perl ? (using what editor ? this is how you say? i'm speak french) | ||
gfldex | Zoffix: looks like src/core/IO/Handle.pm | ||
P6fr | atom ? vim ? | 23:00 | |
Zoffix | Thanks | ||
gfldex | many of the core devs use vim | ||
Zoffix | P6fr, atom, but I hate it. When Sublime Text 2 will support Perl 6 highlighting, I'll use that | ||
jdv79 | whatever you want. notepad works:) | ||
P6fr | me too Zoffix | 23:01 | |
gfldex | there is no syntax highlighter right now that works properly | ||
Zoffix | atom's works fine. | ||
Well, not the default one. MadcapJake's one | 23:02 | ||
gfldex | i switched it off, because quote constructs seam to be very confusing | ||
P6fr | atom is not perfect in syntax highlighter P6 | ||
jdv79 | i thought the vim one was close | ||
Zoffix | github.com/MadcapJake/language-perl6fe/ | ||
gfldex | the vim one is quite good but also quite slow. | ||
Zoffix | P6fr, do you have perl6fe package enabled? Enable perl6fe and disable 'perl' or whatever it's called. | ||
P6fr | yes | ||
jdv79 | oh | ||
P6fr | audrey tang <3 | ||
lol | 23:03 | ||
jdv79 | maybe just embed a p6 runtime in vim eventually but that seems sad | ||
P6fr | perl6fe recognize .elems but not .words | ||
jdv79 | and eclipsish | ||
Zoffix | P6fr, well, it's opensource. Report it on github.com/MadcapJake/language-perl6fe/ or better yet, send a PR | 23:04 | |
P6fr, seems one just has to add `words` to this list: github.com/zoffixznet/language-per....cson#L941 | |||
Err.. Right place, but wrong repo/commit :) | 23:05 | ||
P6fr | haaaaaa | ||
ok fine | |||
i want perl6fe on sublimtext | |||
i hate atom | |||
:( | 23:06 | ||
gfldex | to highlight .words propery a highlighter would need to know if a class is a subclass of Any or Mu. In the latter case .words is not defined. I strongly doubt they will be able to any time soon. | ||
Zoffix | That seems to expect too much from a syntax highlighter. | 23:07 | |
23:07
TreyHarr1 left
|
|||
P6fr | ok | 23:07 | |
jdv79 | so p6 can be parsed easierly than p5 but not highlighted? | 23:09 | |
gfldex | m: my %h = :1th; say "abc{%h{"th"}}"; | ||
camelia | rakudo-moar d789da: OUTPUT«abc1» | ||
23:10
Zoffix left,
Vitrifur joined
|
|||
gfldex | jdv79: the highlighter has to keep track of a lot of stuff. The term:<> for instance. That can be pretty much anything. | 23:11 | |
dalek | c/glossary-cleanup: 5a2be58 | Altai-man++ | doc/ (7 files): Content deletion! This is a second commit for github.com/perl6/doc/issues/728, where items that are already described elsewhere were removed from Glossary page. |
23:12 | |
c/glossary-cleanup: 3dd04db | (Christopher Bottoms)++ | doc/Language/glossary.pod6: Added =end pod |
|||
23:13
avenj joined,
avenj left,
avenj joined
23:14
Vitrifur left
|
|||
gfldex | m: my $short-var = 1; say "abc$short-vardef"; | 23:14 | |
camelia | rakudo-moar d789da: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Variable '$short-vardef' is not declared. Did you mean '$short-var'?at <tmp>:1------> 3my $short-var = 1; say "abc7⏏5$short-vardef";» | ||
gfldex | syntax highlighter would be super useful if they would reliably show interpolation in tricky situations. They don't. | 23:16 | |
23:16
jack_rabbit joined
23:19
P6fr left
|
|||
jdv79 | its gonna require a runtime | 23:20 | |
23:20
travis-ci joined
|
|||
travis-ci | Doc build failed. Christopher Bottoms 'Added =end pod' | 23:20 | |
travis-ci.org/perl6/doc/builds/146519970 github.com/perl6/doc/compare/68ec0...d04db86b5b | |||
23:20
travis-ci left
23:21
Guest66 joined
23:23
Guest66 is now known as P6fr
23:25
mr-foobar joined
23:30
AlexDaniel left
|
|||
gfldex | the docs build fine, travis is late again | 23:35 | |
23:38
cdg_ joined
23:40
aries_liuxueyang left,
cdg left
|
|||
sena_kun | gfldex, only pure branch failed(since I forked it from broken commit), merged version is okay. If you're interested in this updated pull-request, can we merge it? It seems nobody is against removing of already explained items. | 23:43 | |
dalek | c: 5a2be58 | Altai-man++ | doc/ (7 files): Content deletion! This is a second commit for github.com/perl6/doc/issues/728, where items that are already described elsewhere were removed from Glossary page. |
23:44 | |
c: 3dd04db | (Christopher Bottoms)++ | doc/Language/glossary.pod6: Added =end pod |
|||
c: babf163 | (Wenzel P. P. Peppmeyer)++ | doc/ (7 files): Merge pull request #735 from perl6/glossary-cleanup Glossary cleanup |
|||
gfldex | sena_kun: i'm doing a local build right now and will fix any problems | ||
sena_kun | gfldex, thanks! I will delete glossary-cleanup branch then. | 23:46 | |
23:46
aries_liuxueyang joined
|
|||
gfldex | sena_kun: build is fine and looks good | 23:52 | |
sena_kun | I somewhat updated list, but I noticed one thing: I accidently "left behind" JIT and JVM definitions. Previously they point to wikipedia. Should I restore them? | 23:54 | |
23:54
kurahaupo joined
|
|||
dalek | c: 21f0685 | (Zoffix Znet)++ | doc/Type/IO/Pipe.pod6: Document IO::Pipe's .close method |
23:55 | |
sena_kun | gfldex, ^ | 23:57 | |
dalek | c: 7e00611 | (Zoffix Znet)++ | doc/Language/traps.pod6: use shorter line length for code example |