»ö« 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.
stmuk potentially useful reddit thread outside the perl group 00:08
stmuk www.reddit.com/r/programming/comme...uage_that/ 00:08
stmuk considering adding Perl5::Inline installation and get learnperl6.p6 support 00:11
Geth ecosystem: ac775f3342 | (Aleks-Daniel Jakimenko-Aleksejev)++ | META.list
Fix the link (META.info → META6.json)
00:12
ecosystem: 6872c0c834 | (Aleks-Daniel Jakimenko-Aleksejev)++ | META.list
Fix more links
00:16
AlexDaniel e: say 42 00:36
c: HEAD say 42
committable6 AlexDaniel, ¦HEAD(a2499c9): «42␤»
AlexDaniel heh, ipv6 connections just don't get through today :)
so only half of the bots are up 00:37
but at least this is working:
committable6: uptime
committable6 AlexDaniel, 2 minutes and 34 seconds, 244.320313MiB maxrss. This is Rakudo version 2018.01-29-ga2499c90f built on MoarVM version 2018.01 implementing Perl 6.c.
AlexDaniel \o/
and the memory usage seems to be relatively low
maybe the issue is gone
committable6: uptime 00:38
committable6 AlexDaniel, 3 minutes and 21 seconds, 244.65625MiB maxrss. This is Rakudo version 2018.01-29-ga2499c90f built on MoarVM version 2018.01 implementing Perl 6.c.
AlexDaniel hmmmmmm…
ok maybe not, seems to be growing a little…
committable6: uptime
committable6 AlexDaniel, 3 minutes and 44 seconds, 244.796875MiB maxrss. This is Rakudo version 2018.01-29-ga2499c90f built on MoarVM version 2018.01 implementing Perl 6.c.
AlexDaniel :S
bisectable6: say 42 00:43
bisectable6 AlexDaniel, On both starting points (old=2015.12 new=a2499c9) the exit code is 0 and the output is identical as well 00:44
AlexDaniel, Output on both points: «42␤»
AlexDaniel committable6: uptime
committable6 AlexDaniel, 9 minutes and 31 seconds, 245.238281MiB maxrss. This is Rakudo version 2018.01-29-ga2499c90f built on MoarVM version 2018.01 implementing Perl 6.c.
AlexDaniel yea that's not right
anyway, goodnight o/
stmuk nite 00:45
shinobi-cl hi all..... 05:05
lets say that i have an array with 2 regexes, and i want to use these 2 to match elements in an array... Is there a perl6-ish way to do it (like, in parallel)? 05:07
shinobi-cl something like this... 05:13
m: my Regex @rxs = (rx/3/, rx/2/); say @rxs.perl; my @elems = (1, 2, 3, 10, 11, 12, 13, 21, 22, 23); my @found = grep { rx/3|2/ }, :v, @elems; say @found.perl;
camelia Array[Regex].new(rx/3/, rx/2/)
[2, 3, 12, 13, 21, 22, 23]
shinobi-cl but written like this:
m: my Regex @rxs = (rx/3/, rx/2/); say @rxs.perl; my @elems = (1, 2, 3, 10, 11, 12, 13, 21, 22, 23); my @found = grep { @rxs }, :v, @elems; say @found.perl;
camelia Array[Regex].new(rx/3/, rx/2/)
[1, 2, 3, 10, 11, 12, 13, 21, 22, 23]
shinobi-cl nevermind... i was almost obvious now that i think about it.... 05:16
m: my Regex @rxs = (rx/3/, rx/2/); say @rxs.perl; my @elems = (1, 2, 3, 10, 11, 12, 13, 21, 22, 23); my @found = grep { any(@rxs) }, :v, @elems; say @found.perl;
camelia Array[Regex].new(rx/3/, rx/2/)
[2, 3, 12, 13, 21, 22, 23]
Xliff Yeah, I was about to suggest junctions. 05:18
yoleaux 19 Jan 2018 08:14Z <lizmat> Xliff: no, not as far as I know
Xliff m: my Regex @rxs = (rx/3/, rx/2/); say @rxs.perl; my @elems = (1, 2, 3, 10, 11, 12, 13, 21, 22, 23); my @found = @elems.any ~~ @rxs.any; @found.perl.say 05:19
camelia Array[Regex].new(rx/3/, rx/2/)
[Bool::True]
Xliff I think your grep is the right way to go since I only get a boolean return. 05:20
m: my Regex @rxs = (rx/3/, rx/2/); say @rxs.perl; my @elems = (1, 2, 3, 10, 11, 12, 13, 21, 22, 23); my @found = @elems.grep { @rxs.any }; @found.perl.say 05:21
camelia 5===SORRY!5=== Error while compiling <tmp>
Unexpected block in infix position (missing statement control word before the expression?)
at <tmp>:1
------> 0313, 21, 22, 23); my @found = @elems.grep7⏏5 { @rxs.any }; @found.perl.say
05:22
Xliff m: my Regex @rxs = (rx/3/, rx/2/); say @rxs.perl; my @elems = (1, 2, 3, 10, 11, 12, 13, 21, 22, 23); my @found = @elems.grep({ @rxs.any }); @found.perl.say
camelia Array[Regex].new(rx/3/, rx/2/)
[2, 3, 12, 13, 21, 22, 23]
Xliff Bears benchmarking, but choose your poison. :) 05:23
buggable New CPAN upload: Sparrowform-0.0.13.tar.gz by MELEZHIK cpan.metacpan.org/authors/id/M/ME/....13.tar.gz 08:25
lookatme m: my Regex @rxs = (rx/3/, rx/2/); say @rxs.perl; my @elems = (1, 2, 3, 10, 11, 12, 13, 21, 22, 23); my @found = grep / <@rxs> /, :v, @elems; say @found.perl; 08:33
camelia Array[Regex].new(rx/3/, rx/2/)
[2, 3, 12, 13, 21, 22, 23]
psch m: my Regex @rxs = (rx/3/, rx/2/); say @rxs.perl; my @elems = (1, 2, 3, 10, 11, 12, 13, 21, 22, 23); my @found = @elems ~~ { gather { for @$_ { .take if /<@rxs>/ } } }; say @found.perl; # /o\ 08:49
camelia Array[Regex].new(rx/3/, rx/2/)
[2, 3, 12, 13, 21, 22, 23]
psch in case it has to be smartmatch i suppose 08:50
AlexDaniel committable6: uptime 08:53
committable6 AlexDaniel, 8 hours, 19 minutes, and 12 seconds, 261.160156MiB maxrss. This is Rakudo version 2018.01-29-ga2499c90f built on MoarVM version 2018.01 implementing Perl 6.c.
AlexDaniel oh?
that feels reasonable 08:54
Geth whateverable: 92f37f0f5f | (Aleks-Daniel Jakimenko-Aleksejev)++ | services/whateverable@.service
Update systemd service files

Feed the config using the new StandardInput=file:… systemd feature.
09:16
whateverable: 7f79d1d1d4 | (Aleks-Daniel Jakimenko-Aleksejev)++ | services/whateverable@.service
Reduce the memory limit

3G was a good limit for peak performance, but 3 × (the number of bots) does not scale if things are leaking.
buggable New CPAN upload: Sparrowform-0.0.14.tar.gz by MELEZHIK cpan.metacpan.org/authors/id/M/ME/....14.tar.gz 09:55
Xliff .tell AlexDaniel Ran into another issue. It appears that [Z] will truncate according to the interior array of the smallest dimension. 10:40
yoleaux Xliff: I'll pass your message to AlexDaniel.
Xliff .tell AlexDaniel So it now looks like this: gist.github.com/Xliff/daae42a5ca02...e528fab297 11:02
yoleaux Xliff: I'll pass your message to AlexDaniel.
Xliff m: say so one(True, True) 11:12
camelia False
Xliff (<A B C>,<D E>,<G>).>>map({ .elems }).max.say 11:18
m: (<A B C>,<D E>,<G>).>>map({ .elems }).max.say
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing dot on method call
at <tmp>:1
------> 3(<A B C>,<D E>,<G>).>>7⏏5map({ .elems }).max.say
expecting any of:
postfix
Xliff m: (<A B C>,<D E>,<G>).>>map({ *.elems }).max.say
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing dot on method call
at <tmp>:1
------> 3(<A B C>,<D E>,<G>).>>7⏏5map({ *.elems }).max.say
expecting any of:
postfix
Xliff m: (<A B C>,<D E>,<G>).map({ *.elems }).max.say
camelia 5===SORRY!5=== Error while compiling <tmp>
Malformed double closure; WhateverCode is already a closure without curlies, so either remove the curlies or use valid parameter syntax instead of *
at <tmp>:1
------> 3(<A B C>,<D E>,<G>).map({ *.…
Xliff m: (<A B C>,<D E>,<G>).map( *.elems ).max.say
camelia 3
Xliff m: (<A B C Z>,<D E>,<G>).map( *.elems ).max.say 11:19
camelia 4
Xliff ^^ Is there any way to parallelize that? 11:19
sjn happy b-day, jnthn :)
lizmat ah, yes, good point sjn! jnthn++ (yet another year :-) 11:20
TEttinger happy day of instantiation 11:21
jnthn Thanks, folks :-) 11:25
moritz jnthn++! 11:29
melezhik Hi! Any documentation how to handle signals to processed in Perl6? 11:52
processed => process
tadzik as in: OS signals?
lizmat signal(SIGINT).tap 11:53
tadzik docs.perl6.org/type/Supply#index-entry-Signal it's here
Xliff Another happy b-day for jnthn++
melezhik yeah, OS signals ...
will take a look, thanks
teatime lizmat: damn that's sexy
tadzik I'm mildly puzzled that you need to do Signal::.keys, and Signals.keys doesn't work. Why's that? 11:54
ooh, happy birthday jnthn++!
moritz because Signal is a type object
but the constants are elements in the namespace
tadzik ah, makes sense
moritz though I feel this a very technical explanation 11:55
AlexDaniel melezhik: what about react/whenever example here? docs.perl6.org/type/Proc::Async
yoleaux 10:40Z <Xliff> AlexDaniel: Ran into another issue. It appears that [Z] will truncate according to the interior array of the smallest dimension.
11:02Z <Xliff> AlexDaniel: So it now looks like this: gist.github.com/Xliff/daae42a5ca02...e528fab297
AlexDaniel it should give an idea mayb 11:56
melezhik AlexDaniel, thanks will try that as well
AlexDaniel Xliff: regarding the truncation to the smallest dimension, have you seen `roundrobin`? docs.perl6.org/routine/roundrobin 11:57
AlexDaniel Xliff: *shrug* Maybe that's unrelated, I was just running by 12:17
Xliff AlexDaniel: Yeah, I saw roundrobin. It doesn't fill in the missing spaces properly. 12:25
AlexDaniel Xliff: a demonstration of all that would be nice
Xliff Yup. Want to include all that in the RFC 12:26
Then submit the finalized gist.
AlexDaniel cool
Xliff THEN ask to have it added to the right Role/Class
The typing gave me a bit of trouble, sooo... 12:27
You might have been right about checking for Positional/Iterable
Also....
m: <g>/^name.say
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
name used at line 1
Xliff m: <G>.^name.say
camelia Str
Xliff m: <G>.List.^name.say
camelia List
Xliff m: <G A>.^name.say 12:28
camelia List
Xliff That little biddy almost gave me a stroke.
AlexDaniel but that's just the < > notation and it's unrelated to Z 12:30
Xliff y
Xliff It was a gotcha I didn't expect when writing the tests. 12:31
AlexDaniel Xliff: speaking of strokes: github.com/rakudo/rakudo/issues/1409 12:33
Xliff *groan* 12:36
Come to think about it, I should probably stop running Perl6 on a 32-bit VM. :q 12:38
m: 'say (roundrobin ((1, 2, 3), (4, 5), (6, 7, 8, 9))) 12:39
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse expression in single quotes; couldn't find final "'" (corresponding starter was at line 1)
at <tmp>:1
------> 3robin ((1, 2, 3), (4, 5), (6, 7, 8, 9)))7⏏5<EOL>
expecting …
Xliff m: say (roundrobin ((1, 2, 3), (4, 5), (6, 7, 8, 9)))
camelia ((1 4 6) (2 5 7) (3 8) (9))
Xliff m: ((1, 2, 3), (4, 5), (6, 7, 8, 9))).roundrobin.say
camelia 5===SORRY!5=== Error while compiling <tmp>
Unexpected closing bracket
at <tmp>:1
------> 3((1, 2, 3), (4, 5), (6, 7, 8, 9))7⏏5).roundrobin.say
Xliff m: ((1, 2, 3), (4, 5), (6, 7, 8, 9)).roundrobin.say
camelia No such method 'roundrobin' for invocant of type 'List'
in block <unit> at <tmp> line 1
Xliff roundrobin not available in method form?
AlexDaniel docs says that it's a method 12:41
so file a bug report plz
melezhik Terminal::Print , which I use define signal handler - github.com/ab5tract/Terminal-Print...m6#L95-L99 12:45
which in conflict with my one 12:46
is ot ok, to thow "die" in signal handler?
lizmat well, not sure about that 12:47
but if you're intention is to leave the process without further ado
then "note 'Encountered a SIGINT. Cleaning up the screen and exiting...'; exit" 12:48
would be faster
melezhik what do you mean lizmat? 12:49
I want to have my own signal handler, which does some clean up work ...
lizmat that's fine
but inside the signal handler, you don't need to "die", you can just "exit" (if the intent is to have an untrappable exception_ 12:50
)
melezhik now , it seems impossible when I use Terminal::Print
or I miss something )))
lizmat ah, I thought Terminal::Print was yours :-) 12:51
melezhik probably because of "die" inside Termimal::Print ....
not mine
)))
lizmat hmmm... interesting issue hmmm...
well, if you need to do cleanup, you *could* put that in an END block
and have the signal handler just set a flag that it needs to do it 12:52
even on "exit" will all the END handlers be done, and "exit" inside an END block won't actually exit
lizmat but I guess we *do* need signal(SIGINT) supplies to work together somehow 12:53
ensure that they're *all* run
melezhik lizmat: END does the trick
thanks
melezhik "but I guess we *do* need signal(SIGINT) supplies to work together somehow. ensure that they're *all* run" yeah, that's the idea 12:56
melezhik lizmat: should we fill a ticket on this? 13:01
lizmat yes, please
melezhik will do
where? 13:02
lizmat rakudo issue, please
melezhik github.com/rakudo/rakudo/issues ?
lizmat yup 13:02
buggable New CPAN upload: Sparrowform-0.0.15.tar.gz by MELEZHIK cpan.metacpan.org/authors/id/M/ME/....15.tar.gz 13:15
melezhik lizmat: please take a look - github.com/rakudo/rakudo/issues/1445 13:16
lizmat does
melezhik hopefully I have not muddled anything up 13:17
at least this is how *I* see it
lizmat has commented 13:19
araraloren m: class U { constant M = 22; }; say U::M; 13:32
camelia 22
araraloren Hi, is it possible add a constant to a class manually, like add class through `Metamodel::ClassHOW` ?
jnthn Those aren't much to do with the class at all, they're just installed in the package 13:37
m: class U { BEGIN U::<M> := 22; }; say U::M;
camelia 22
araraloren oh,is it possible install a constant manually ? 13:40
jnthn I just showed you how 13:41
masak .oO( no no -- manually, by blowing bits into the front panel ) 13:42
jnthn :P
Oh, if you're using the MOP, then it's just $the-type-object.WHO<M> := 22;
araraloren Hmm, I will try later thanks 13:43
araraloren m: class C { }; C.WHO<M> := 22; say C::M; # It try to find &M ? 14:01
camelia Could not find symbol '&M'
in block <unit> at <tmp> line 1
araraloren m: class C { }; C.WHO<&M> := { 22 }; say C::M; 14:02
camelia 22
jnthn araraloren: BEGIN matters 14:03
Because the decision of how C::M is compiled happens at compile time 14:04
lizmat m: class C { }; BEGIN C.WHO<M> := 22; say C::M 14:04
camelia 22
araraloren Oh, I see
lizmat fwiw, I think the error message is LTA 14:05
jnthn It should really be a compiler time error if the symbol isn't there, not a runtime one 14:06
*compile
STD had it that way, and we missed doing that in Rakudo
Thankfully, it's a compilation decision, so we can change it in 6.d
[Coke] stmuk: I kind of agree with mst about that project. Doesn't seem at all constructive. 14:16
... and now I can't remember if it was this window or not. 14:17
pmurias stmuk: re triggering snowflakes on the installer page, mst does have a valid point that doing that without a reason doesn't really make sense as they are a welcome part of the community 14:36
timotimo who wants to write a plugin for irclog.perlgeek.de that translates the block diagrams back into actual graphics? %) 15:19
AlexDaniel timotimo: block diagrams? 15:21
timotimo twitter.com/zoffix/status/956907058049306624 15:22
buggable New CPAN upload: IO-Socket-Async-SSL-0.6.tar.gz by JNTHN cpan.metacpan.org/authors/id/J/JN/...0.6.tar.gz 15:35
jkramer To whom it may concern, the WHY link at the very end of this page is broken: docs.perl6.org/language/functions 15:36
Geth doc: de361ccf0e | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Language/functions.pod6
Fix broken WHY link
15:40
synopsebot Link: doc.perl6.org/language/functions
Geth doc: 40bc04dbd3 | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Language/functions.pod6
Add missing period
15:41
jkramer \o/ 15:42
AlexDaniel slaps whateverables 16:10
that massive suicide was unnecessary
El_Che I woudn't consider mst a snowflake and the alt-right terminology isn't helping anyone. Enough drama around instead, why rekindle the fire? 16:12
AlexDaniel ooooh I know why whateverables did that… 16:13
mspo snowflakes? 16:16
El_Che mspo: let's ignore for now :) 16:17
Geth whateverable: b5ad361756 | (Aleks-Daniel Jakimenko-Aleksejev)++ | services/whateverable@.service
Temporarily increase the watchdog timeout

The way it works is a workaround, see issue #276 for more info.
16:21
AlexDaniel ↑ that should prevent the bots from doing that again…
as long as somebody says something every 60 minutes :D
teatime lol 16:22
Geth whateverable: a6d5df72e8 | (Aleks-Daniel Jakimenko-Aleksejev)++ | services/whateverable@.service
Mention the ticket id
16:23
AlexDaniel on any channel by the way 16:26
timotimo so, put a bot into #whateverable that just says something every 30 minutes? 16:30
AlexDaniel *sad facepalm* 16:31
geekosaur who watches the watchbots?
AlexDaniel timotimo: I have phone notifications and things like that for the channel 16:32
not exactly the best idea but I like the way you think :D
timotimo :D 16:33
El_Che timotimo: is that defined? 16:39
AlexDaniel timotimo: we'll know once we run it 16:42
timotimo the what now?
El_Che :D, :U :)
timotimo oooh
ilmari :U looks like a duckface
El_Che :)
AlexDaniel Maybe someone should add a proposal for 😃 as an alternative to :D to this page github.com/rakudo/rakudo/wiki/save...from-texas 16:44
El_Che hehe
jkramer Or use Ü, it's basically a vertical :D
AlexDaniel ⸦̈ 16:47
AlexDaniel ⊂̈ 16:48
mspo AlexDaniel: you could animate those two into a talking mouth 16:48
jkramer Next stop: animated gifs as operators and identifiers 16:50
b2gills for |('⸦̈','⊂̈') xx * { print "\r",$_,' '; sleep ((1..4)X/10).roll } 16:52
AlexDaniel I think all we need is a text editor with animated emojis
mspo b2gills: looks great! 16:53
jkramer The first character doesn't work with my terminal, but using ö and Ö looks nice too :) 16:54
mspo jkramer: that would have a nice totoro effect 16:55
chakli m: [[1,2],[2,3],[4,5]].map({ $_.map({say $_;}); }) 16:56
p6: [[1,2],[2,3],[4,5]].map({ $_.map({say $_;}); })
camelia ( no output )
jkramer Now make it take some text as argument and let it scroll through while the Ö is talking :)
I would use that as cat/less replacement a few times before I'd get annoyed 16:57
chakli why doesn't that program say anything?
AlexDaniel m: say WHAT [[1,2],[2,3],[4,5]].map({ $_.map({say $_;}); }) 16:58
camelia (Seq)
jnthn Because map is lazy, and nothing happens to casue evaluation of the inner Map 16:58
pmurias jkramer: I wouldn't be surprised if unicode starts using animated gifs at some point
AlexDaniel m: eager [[1,2],[2,3],[4,5]].map({ $_.map({say $_;}); })
camelia ( no output )
AlexDaniel m: eager [[1,2],[2,3],[4,5]].map({ eager $_.map({say $_;}); })
camelia 1
2
2
3
4
5
jnthn The otuer one is fine, it's in sink context
*outer 16:59
b2gills m: [[1,2],[2,3],[4,5]].map({ $_.map({say $_;}); Nil }); # the inner map wasn't sunk
camelia 1
2
2
3
4
5
AlexDaniel m: [[1,2],[2,3],[4,5]].map({ eager $_.map({say $_;}); })
camelia 1
2
2
3
4
5
gfldex m: [[1,2],[2,3],[4,5]]».list».say 17:00
camelia 1
2
2
3
4
5
gfldex this is potentially out of order tho
chakli Thanks got it :) 17:06
jkramer Here you go, animated talking cat :) dpaste.com/2HMDWFZ 17:08
mspo asciinema it
jkramer asciinema.org/a/PqxkmrE2EVQuuCSrXX44SFpyO 17:10
stmuk jkramer: I get an error "Cannot shift from an empty Array" on termination 17:12
jkramer Huh, I didn't bother to wait for it to finish tbh :D Anyway, it's time for Feierabendbier here so I gotta go, have a nice weekend :) 17:18
stmuk I'll just do a sneaky C-c like the film! :) 17:24
mspo jkramer: lol 18:20
teatime are there any programming languages that are more expressive (in the technical sense) than any turing-complete language 19:34
or are all programming languages equally expressive (in the technical sense)
mspo what is the technical definition of expressive? 19:36
teatime en.wikipedia.org/wiki/Expressive_p...r_science) 19:37
teatime my question may not be well-formed. 19:38
DrForr .tell jnthn Purely anecdotal, but cro might be segfaulting on my machine when there's no handler for a given URL. 19:39
yoleaux DrForr: I'll pass your message to jnthn.
geekosaur expressiveness is not entirely well formed
except in certain limited soituations, e.g. the chomsky hierarchy of grammars 19:40
teatime hmm. fair enough I guess. 19:42
DrForr .tell jnthn rebuilding bundle.js might be a trigger as well. That's fair though, lots of content and it *really* should be handled via ye olde reverser proxy. 19:46
yoleaux DrForr: I'll pass your message to jnthn.
teatime geekosaur: so am I right in thinking statements like the following are very loose and not strictly, technically true? "In any Turing complete language, it is possible to write any computer program, so in a very rigorous sense nearly all programming languages are equally capable." 20:06
geekosaur expressiveness doesnt qiuite mean that 20:08
I can write the same program in Haskell or in BASIC or in PHP
which one is it easier / more idiomatic to write it in? that is expressiveness... and it tends to be domain specific 20:09
teatime that is the non-technical meaning of expressive
moritz also this ignores the fact that some languages offer I/O capabilities that others don't; while QBASIC is turing complete, you can't make arbitrary syscalls with it
geekosaur but yes, any Turing-complete langauge can express the same programs, and this can be proven
teatime moritz: that's what I was thinking of
moritz but that's not what people mean when they talk about expressiveness 20:10
teatime right
moritz basically it's how many instructions you need to accomplish something
teatime but nonetheless makes the statement "You can write the same program in any turing-complete programming language" technically false
moritz well, in computer science, a "program" also has a very narrow definition that doesn't include such I/O stuff 20:11
teatime maybe it should be "algorithm"
moritz typically you start with a model, like that of an automaton that can read from and write to infinite tapes
and within that model, you can prove that a touring machine has the same capabilities as lamba calculus, for example 20:12
teatime I guess what I was really wondering is, do such facts actually map and retain their truth value, for practical purposes and programming languages. 20:14
which you answered.
buggable New CPAN upload: P5substr-0.0.1.tar.gz by ELIZABETH cpan.metacpan.org/authors/id/E/EL/...0.1.tar.gz 20:15
lizmat *phew* some weird shit with P5 substr and negative offsets / lengths 20:18
patrickz Hey! Is there an easy way to get a rakudo build to take less RAM? I'm currently hitting limits of my server provider... 20:27
El_Che patrickz: use a OS package? 20:28
patrickz It's not a root server...
El_Che old school :)
I would build it locally and restricted to a path eg /$HOME/lib/rakudo and scp the files 20:29
lizmat patrickz: there was some talk about reducing the memory footprint of precompilation the other day, but sadly, that has not materialized
mspo patrickz: I had to add swap too
El_Che rakudo is not relocable so home has to be identical on both machines
teatime I have had excellent luck w/ adding swap
makes the build possible, but doesn't make it take forever / thrash a lot
mspo how often will you be building rakudo itself? 20:30
El_Che can you add swap without root?
teatime no
El_Che my old unix spirit says noooooooooooooooo
patrickz Hm. I'm not hitting the machine limits, but quota. So swap is no help. I'll ask them if a one-time build run is ok (and I get a temporary quota relief)...
mspo oh I see 20:31
El_Che patrickz: my solution is straight forward
patrickz It's the same machine type, so that's a start :-) 20:32
El_Che to be sure launch a VM/container with the same OS and release
however als long they are both amd64/x64 it will work 20:33
dfarrell hey sixers, I'm writing an article about p5 threads, and I wanted to mention the p6 threading model. Is it still the case that each thread maps 1:1 with an OS thread, and 6.d will introduce an M:N threading model? 20:46
gfldex dfarrell: M:N is in already 20:47
dfarrell gfldex: Do you know what version it was released in?
jnthn dfarrell: One instance of the Thread class does map directly to an OS thread, so if you need that level of control you can get it.
yoleaux 19:39Z <DrForr> jnthn: Purely anecdotal, but cro might be segfaulting on my machine when there's no handler for a given URL.
19:46Z <DrForr> jnthn: rebuilding bundle.js might be a trigger as well. That's fair though, lots of content and it *really* should be handled via ye olde reverser proxy.
jnthn dfarrell: But using Thread is not typical. Most of the time one would set off code running on a thread using `start`, or set up something to react to events. These are given to a scheduler, which does the M:N thing. 20:49
El_Che dfarrell: perl.com article?
jnthn So, typical use of Perl 6 involves the M:N model. That's been the case ever since the 6.c release.
dfarrell El_Che: yah 20:50
El_Che dfarrell++
dfarrell jnthn: got it
thanks everybody for your input!
jnthn Effectively, Thread is more a "make the hard things possible" thing than a "make the easy things easy" thing: we provide the primitives for those cases that really need them, but everyday use is in terms of higher level constructs. 20:51
(About the only time I've used Thread directly is when doing native bindings.)
gfldex dfarrell: this might be helpful: gfldex.wordpress.com/2017/10/22/th...same-time/ 20:53
dfarrell Gotcha, will take a look 20:58
lizmat dfarrell++ 20:59
link hey 21:04
Zoffix link: \o 21:08
link where can i find recent speed comparisons between perl6 and perl5 / go / node? 21:09
google doesn't turn up anything from 2017/8
Zoffix Is perl.com really popupar for blogs?
Zoffix link: not aware of anything comprehensive. If you can find 2015 measurements, we're about 6x faster now, though performance landscape is very uneven: some things might even be faster than perl5 yet others are 60+x slower. How you write stuff can have a huge impact. 21:11
lizmat Zoffix: historically, it has a good SEO value 21:14
Zoffix One such example: original 42x slower than Perl 5; low-level nqp version is 2x faster than perl5; rewritten pure Perl 6 version is just 1.9x slower: github.com/rakudo/rakudo/issues/1421 21:15
link: ^
link Zoffix: thanks for the clarification! reading through the issue now 21:16
Zoffix lizmat: is it more popular than blogs.perl.org? I currently cross-post rakudo.party articles there.... wonder if I should instead post on perl.com. Unclear how to start posting there though 21:21
lizmat you can only post through dfarrell++ :-)
Zoffix Ah
I'll pass for now then :) 21:22
dfarrell Yeah we're more of a "media" site for Perl than a host for individuals blogs. I need to revamp our contributing guides to better explain the process 21:23
Zoffix :) 21:24
dfarrell: how does "community articles" get populated? Is it only through perly_bot or is there a separate system? I have perly_bot disabled so it doesn't post my stuff on reddit, but I wouldn't mind being listed on community articles 21:25
dfarrell Zoffix: that's right it's through perly bot. Per host I can enable/disable which channel get's posted to, so if you posted on an individual blog, I could stop it from doing that. 21:27
Zoffix dfarrell: thanks. I'll keep that in mind for the furture. 21:28
g2g now \o
moritz o/
Zoffix *future
masak jnthn++ # 6guts.wordpress.com/2018/01/26/of-...-and-cpan/ 21:44
El_Che very presidential 21:49
moritz jnthn++ indeed 21:58
timotimo jnthn: "is a meme" -> "as a meme" 21:59
masak El_Che: my faith in presidents of any kind decreases every day. but I do like having fla^Wpumpkings to look up to.
masak .oO( put your leaders in parentheses -- do not rely on the order of presidents! ) 22:00
masak groans preemptively
timotimo good post, jnthn++
lizmat jnthn++ :-) 22:02
stmuk I like the "Rochefort Relationship" :) 22:03
dfarrell Yeah nice metaphor 22:10
Xliff jnthn++: Indeed a good post, and I am hoping you are still having a great b-day. 22:17
stmuk pl6anet.org/drop/rakudo-star-2018.01-RC1.tar.gz 22:21
probably final and released on Sunday night (Euroish time)
jnthn timotimo: Thanks, seems no matter how many proofreads, there's always some grammaro :-) 23:00
buggable New CPAN upload: P5built-ins-0.0.1.tar.gz by ELIZABETH cpan.metacpan.org/authors/id/E/EL/...0.1.tar.gz 23:05
lizmat P5built-ins allows you to get all of the P5functions in one fell swoop 23:10
buggable New CPAN upload: P5lc-0.0.1.tar.gz by ELIZABETH cpan.metacpan.org/authors/id/E/EL/...0.1.tar.gz 23:35
jnthn lizmat: I'm curious, but lazy to look: how is lc different between 5 and 6? :)
lizmat handling of $_ 23:36
lc() will lc $_
jnthn Oh 23:39
Ah, and we declare $_ is dynamic, so you can reach it with CALLEr?
*CALLER?
lizmat yeah
now I use CALLERS that apparently doesn't care about is dynamic 23:40
jnthn oops :)
We...should really fix that
Otherwise it's going to be a total optimization spoiler
lizmat so you want me to make a ticket of the cases where $_ is not marked dynamic ? 23:41
jnthn We're doing that inconsistently?
lizmat yup :-(
jnthn Yeah, we should look into that. But.
We have an issue with dynamic and binding.
lizmat m: $_ = 42; dd $_.VAR.dynamic
camelia Bool::True
jnthn (In general)
lizmat m: with my $ = 42 { dd $_.VAR.dynamic }with my $ = 42 { dd $_.VAR.dynamic } 23:42
camelia 5===SORRY!5=== Error while compiling <tmp>
Strange text after block (missing semicolon or comma?)
at <tmp>:1
------> 3with my $ = 42 { dd $_.VAR.dynamic }7⏏5with my $ = 42 { dd $_.VAR.dynamic }
lizmat m: with my $ = 42 { dd $_.VAR.dynamic }
camelia Bool::False
lizmat one case
jnthn Hm, that one's...curious 23:43
lizmat m: dd $_.VAR.dynamic with my $ = 42 # probably the same under the hood
camelia Bool::False
jnthn Surely
m: if my $ = 42 { dd $_.VAR.dynamic }
camelia Bool::True
lizmat m: for my $ = 42 { dd $_.VAR.dynamic } 23:44
camelia Bool::False
jnthn that one doesn't surprise me
lizmat why?
buggable New CPAN upload: P5fc-0.0.1.tar.gz by ELIZABETH cpan.metacpan.org/authors/id/E/EL/...0.1.tar.gz 23:45
New CPAN upload: P5uc-0.0.1.tar.gz by ELIZABETH cpan.metacpan.org/authors/id/E/EL/...0.1.tar.gz
jnthn m: (my $ = 42).list[0].VAR.WHAT.say
camelia (Scalar)
jnthn That part I wasn't sure about
But otherwise it's because of the problem I mentioned above with binding
lizmat m: my $a = 42; for $a { dd $_.VAR.dynamic }
camelia Bool::False
jnthn The with one surprises me because it implies a problem I didn't know we had. 23:46
lizmat well, the other solution would be to special case '$_' in CALLER:
jnthn The for one is a problem I knew we have.
That could be an option, yes
Though special cases add up
The deep problem here is that we make dynamic a property of containers, rather than of variables, but variables are a compile-time construct and so don't exist at runtime 23:52
Thus why it's ended up on containers
Even if it's the property of the variable 23:53
If that makes some sense :)
lizmat yeah, it does, same goes for the name of the container, right?
jnthn Yeah
lizmat well, maybe something to fix for 6.d 23:54
jnthn Though that one is less problematic
Maybe, though I don't want to put every hard problem on the 6.d wagon. :)
I don't immediately know we'd go about addressing the issue.
lizmat well, I will need a check to find out whether I can use CALLERS or CALLER 23:55
in the applicable P5 modules
jnthn I'd settle for a special-case for $_ in CALLER(S) in the meantime, if it means we can close the wider loophole in CALLERS
lizmat ok, will look at this probably on Sunday then, unless someone beats me to it :-) 23:56
meanwhile I'm going to get some sleep 23:58
good night! &
jnthn 'night o/
stmuk hmmm over 2100 apparent downloads of R* RC0 .. although why people are downloading on iphone is unclear 23:59