»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_log/perl6 | UTF-8 is our friend! 🦋
Set by Zoffix on 25 July 2018.
lembark Q: Anyone have experience with CompUnit::Repository & friends? 02:18
I'm trying to get a BEGIN block to programatically add at list of dirs; basically a dynamic version of perl6 -I. 02:19
Or being able to load %*ENV{ PERL6LIB } w/o resorting to /usr/bin/find. 02:24
lembark Good evening. 02:57
Xliff \o 04:21
m: sub aa { say "OHAI!" }; my $name = 'aa'; &( $aa )()
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '$aa' is not declared. Did you mean '&aa'?
at <tmp>:1
------> 3aa { say "OHAI!" }; my $name = 'aa'; &( 7⏏5$aa )()
Xliff m: sub aa { say "OHAI!" }; my $name = 'aa'; &( $name )()
camelia No such method 'CALL-ME' for invocant of type 'Str'
in block <unit> at <tmp> line 1
Xliff m: sub aa { say "OHAI!" }; my $name = 'aa'; "$name"() 04:22
camelia No such method 'CALL-ME' for invocant of type 'Str'
in block <unit> at <tmp> line 1
Xliff m: sub aa { say "OHAI!" }; my $name = 'aa'; &"$name"()
camelia 5===SORRY!5=== Error while compiling <tmp>
Name must begin with alphabetic character
at <tmp>:1
------> 3b aa { say "OHAI!" }; my $name = 'aa'; &7⏏5"$name"()
expecting any of:
infix
infix stopper
sta…
Xliff m: sub aa { say "OHAI!" }; my $name = 'aa'; &$name()
camelia No such method 'CALL-ME' for invocant of type 'Str'
in block <unit> at <tmp> line 1
Xliff I can never remember how to do this.
m: sub aa { say "OHAI!" }; my $name = 'aa'; $name()
camelia No such method 'CALL-ME' for invocant of type 'Str'
in block <unit> at <tmp> line 1
Xliff m: sub aa { say "OHAI!" }; my $name = 'aa'; ::( $name )()
camelia No such symbol 'aa'
in block <unit> at <tmp> line 1
Xliff m: sub aa { say "OHAI!" }; my $name = 'aa'; ::( "&$name" )() 04:23
camelia OHAI!
Xliff m: sub aa { say "OHAI!" }; my $name = 'aa'; ::( "\&$name" )()
camelia OHAI!
Xliff m: sub aa { say "OHAI!" }; my $name = 'aa'; ::( "\&$name" )
camelia ( no output )
holyghost hi, good morning 04:42
Kaiepi gm 04:43
holyghost ok, docs for Bayes::Learn are about done, they're a bit knurky though 05:23
'lo Xliff, good night ! :-)
holyghost hello phogg 05:25
holyghost And the docs of Mathx::Stat have been written too 05:48
I'll upload later on after fixing some tests 05:49
Xliff_ m: my $a = 3; my $b = 0; my $c = do given $a { when 3 { Three' }; when $_ % 2.so.nod { 'Even' }; when $b.so.not { 'B'; } default { 'none' }; $c.say 05:55
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3 0; my $c = do given $a { when 3 { Three7⏏5' }; when $_ % 2.so.nod { 'Even' }; when
expecting any of:
infix
infix stopper
Xliff_ m: my $a = 3; my $b = 0; my $c = do given $a { when 3 { 'Three' }; when $_ % 2.so.nod { 'Even' }; when $b.so.not { 'B'; } default { 'none' }; $c.say
camelia 5===SORRY!5=== Error while compiling <tmp>
Strange text after block (missing semicolon or comma?)
at <tmp>:1
------> 3.nod { 'Even' }; when $b.so.not { 'B'; }7⏏5 default { 'none' }; $c.say
Xliff_ m: my $a = 3; my $b = 0; my $c = do given $a { when 3 { 'Three' }; when $_ % 2.so.nod { 'Even' }; when $b.so.not { 'B' }; default { 'none' }; $c.say
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing block
at <tmp>:1
------> 3.not { 'B' }; default { 'none' }; $c.say7⏏5<EOL>
expecting any of:
statement end
statement modifier
statement modifier loo…
Xliff_ m: my $a = 3; my $b = 0; my $c = do given $a { when 3 { 'Three' }; when $_ % 2.so.nod { 'Even' }; when $b.so.not { 'B' }; default { 'none' }; }; $c.say
camelia Three
Xliff_ m: my $a = 5; my $b = 0; my $c = do given $a { when 3 { 'Three' }; when $_ % 2.so.nod { 'Even' }; when $b.so.not { 'B' }; default { 'none' }; }; $c.say
camelia No such method 'nod' for invocant of type 'Bool'. Did you mean 'not'?
in code at <tmp> line 1
in block <unit> at <tmp> line 1
Xliff_ m: my $a = 5; my $b = 0; my $c = do given $a { when 3 { 'Three' }; when $_ % 2.so.not { 'Even' }; when $b.so.not { 'B' }; default { 'none' }; }; $c.say
camelia B
Xliff_ m: my $a = 5; my $b = 0; my $c = do given $a { when 3 { 'Three' }; when $_ % 2.so.not { 'Even' }; when $b.defined && $b.so.not { 'B' }; default { 'none' }; }; $c.say 05:56
camelia B
Xliff_ m: my $a = 5; my $b; my $c = do given $a { when 3 { 'Three' }; when $_ % 2.so.not { 'Even' }; when $b.defined && $b.so.not { 'B' }; default { 'none' }; }; $c.say
camelia none
Xliff_ m: my $a = 5; my $b; my $c = do given $a { when > 3 { 'Three' }; when $_ % 2.so.not { 'Even' }; when $b.defined && $b.so.not { 'B' }; default { 'none' }; }; $c.say 05:59
camelia 5===SORRY!5=== Error while compiling <tmp>
Preceding context expects a term, but found infix > instead.
at <tmp>:1
------> 3= 5; my $b; my $c = do given $a { when >7⏏5 3 { 'Three' }; when $_ % 2.so.not { 'Ev
Xliff_ m: my $a = 5; my $b; my $c = do given $a { when $_ > 3 { 'Three' }; when $_ % 2.so.not { 'Even' }; when $b.defined && $b.so.not { 'B' }; default { 'none' }; }; $c.say 05:59
camelia Three
holyghost I've uploaded Mathx::Stat 0.2.9 to CPAN, docs are in now, enjoy! 06:18
the cpan-p6 bot is stupid with my additions, it'll show up much later 06:19
cpan-p6 New module released to CPAN! Mathx::Stat (0.2.9) by 03HOLYGHOST 06:21
holyghost ^-- ah ok, nm 06:22
It seems the bot parses my additions correctly again 06:28
Geth doc: a795b55476 | (JJ Merelo)++ | doc/Type/Proc.pod6
Fixes pid definition, closes #2821
06:31
synopsebot Link: doc.perl6.org/type/Proc
holyghost *lol*, go JJ ! :-) 06:32
lizmat clickbaits p6weekly.wordpress.com/2019/05/20/...tters-may/ 07:41
cpan-p6 New module released to CPAN! Bayes::Learn (0.2.5) by 03HOLYGHOST 07:55
holyghost ^-- includes docs, enjoy!
^-- I just need to add some more tests
Xliff_ m: my @a = <a b c d>; .say for @a.keys; 08:10
camelia 0
1
2
3
Xliff_ m: sub a ($a, $b, :$c!) {}; &a.arity.say; 08:14
camelia 2
Xliff_ m: sub a ($a, $b, $c) {}; &a.arity.say;
camelia 3
Xliff_ m: sub a ($a, $b, $c?) {}; &a.arity.say;
camelia 2
antoniogamiz o/ 08:42
Ven`` o/ 09:22
cono hi all, does any1 know why slurp definition dissapeared from Configure.pl ? Undefined subroutine &main::slurp called at Configure.pl line 48. 10:08
timotimo huh, a version or features pragma got lost? 10:10
oh, you may have to re-run Configure.pl in moar, nqp, rakudo, and perhaps do some aggressive submodule updating or something?!
cono previously I was needed just do Configure.pl --gen-moar --gen-nqp --backends=moar --make-install 10:12
now it fails for me, if I put sub slurp { local $/; ...} it works 10:13
timotimo "git submodule status"? 10:16
cono 5f0a01ae29557c533ab39d34a8ca6bce235ec091 3rdparty/nqp-configure (remotes/origin/HEAD) 10:17
timotimo that means it's checked out and at the right revision, right? 10:19
yes, indeed
cono yup
timotimo odd. why does it b0rk on your machine but not in CI? 10:20
oh, also, slurp isn't behind "use feature", it's an actual module, isn't it 10:21
cono dunno, I usually write it by my own, for 3 lines of code, no need to use module :D 10:22
I'm building rakudo on 3 different machines, and on all 3 its broken :(
2 linux boxes and 1 mac
timotimo perhaps it's just --gen-moar or --gen-nqp that's broken and nobody else uses it?!
cono could be 10:23
timotimo lib/NQP/Config/Rakudo.pm
9:use NQP::Config qw<slurp read_config cmp_rev system_or_die run_or_die>;
cono where is this lib/NQP ? 10:24
timotimo that module has slurp in its @EXPORT_OK, but i don't see a "use" corresponding to slurp
that's in build/ i think
and the one with the EXPORT_OK in it is in 3rdparty-nqp-configure/lib/NQP/Config.pm
cono grep "NQP::Config " Configure.pl : use NQP::Config qw<system_or_die>; 10:26
NQP::Config qw<system_or_die slurp>;
fixes the problem
timotimo it looks like slurp is only used when a config.default exists? 10:28
cono yeah 10:29
timotimo i don't seem to have that
cono `/usr/bin/perl Configure.pl "--gen-moar" "--backends=moar" "--make-install" $*`
pretty usable
timotimo oh, you put that in there and then just running Configure.pl without arguments uses what's in there? 10:30
cono yup 10:31
github.com/rakudo/rakudo/pull/2911
timotimo merged 10:32
TYVM
cono :thumbsup:
timotimo does nqp have the same problem?
cono let me re-run and check 10:41
everything works 10:43
timotimo ok, cool 10:56
wanderer_ Hello! 11:57
wanderer_ I found some time to try out Perl 6. The task I set for myself was a user-defined operator symbol for subfactorial as in en.wikipedia.org/wiki/Derangement. 11:59
AlexDaniel :) 12:00
wanderer_ Not sure I can copy-paste here.
AlexDaniel if it's not a single line of code it's better to use gist.github.com/
wanderer_ I’m unto it. 12:01
jast FWIW, gist now requires an account to post, and there are plenty of alternatives that don't 12:02
wanderer_ glot.io/snippets/fcf5jkh4nl/raw/main.pl6 12:04
That’ll do.
Take notice of the anonymous function passed into map... Ugh. 💕😭 12:08
masak wanderer_: `is tighter(&infix:<*>)` -- that's still pretty loose for a prefix :) 12:19
masak for example, `!2 ** 3` would mean `!(2 ** 3)` 12:20
against, I think, most people's expectations
aside from that, it looks good, IMO :) 12:21
wanderer_ Thanks!
masak not sure why your prefix:<!> doesn't conflict with the built-in one... 12:22
wanderer_ Are there any published benchmarks for the MoarVM in comparison to some other JIT compiler?
As in benchmarksgame-team.pages.debian.n...-fast.html 12:23
I thought it might. I’m going by intuition. That is literally my first ever script.
cono its getting better every week. I follow it all the time and running my sandbox programs, and really like the progress1 12:26
wanderer_ masak_: Is it because I must declare the argument type and return type for prefix:<!>? 12:29
Would you also recommend `is tighter(&postfix:<**>`? 12:30
Or `is tighter(&infix:<**>)` or whatever... 12:33
masak I wouldn't anchor it in an infix at all; I'd probably `is equiv(&prefix:<?>)` or some such 12:34
the (tight) prefixes are all on the same precedence level, and that's likely the one you want to be on 12:35
cpan-p6 New module released to CPAN! Term::Form (1.2.4) by 03KUERBIS 12:36
wanderer_ masak_: I’m now trying to get !3**3 to return `8` under `equiv(&prefix:<?>)`. It won’t. Not even under `tighter(&infix:<**>)`. 12:50
lembark I'm working to bencmark Moar now, both on memory use and performance. 13:20
Q: What is an example of what you'd like to do with Perl6?
timotimo oh hey lembark 13:22
good to see you here
wanderer_ Mostly numerical computation.' 13:23
jnthn Also object-y stuff (instantiation, accessors, method calls, etc.) 13:25
Perhaps hash/array bits too, given those are widely used 13:26
Ven```` APIs, serving static content too :) 13:27
timotimo lembark: have you seen perl6-bench? it has a bunch of microbenchmarks, perhaps there's a little bit of inspiration to be had here or there 13:32
also, will you present the code you're using to us to see if you're using idioms that are slower than what an experienced perl6 user would write? 13:33
lembark Trying it now... 13:35
timotimo wanderer_: did you know about this: 13:42
m: say (^9).combinations(*).elems; say (^9).permutations.elems 13:43
camelia No such method 'Int' for invocant of type 'Whatever'
in block <unit> at <tmp> line 1
timotimo m: say (^9).combinations(9).elems; say (^9).permutations.elems
camelia 1
362880
timotimo oh, haha
not the same thing
Ven```` m: say ^9 .combinations(9).elems 13:45
camelia 1
Ven```` m: say ^9 .combinations(9)
camelia ((0 1 2 3 4 5 6 7 8))
Ven```` I forgot about that. Would've been helpful for some code-golfing techniques... 13:46
wanderer_ m: say 'Is there a built-in REPL in this chat?' 13:48
camelia Is there a built-in REPL in this chat?
wanderer_ Oh, dear...
Yes, there is.
timotimo yup! :) 13:49
wanderer_ I think some of you should contribute Perl 6 programs to _The Computer Language Benchmarks Game_. The language should deserves a spot here: benchmarksgame-team.pages.debian.n...-fast.html 13:52
timotimo if the game wants the fastest version of an algo written in each language, it'd be fine to write programs with lots of nqp:: ops to get more speed but also a program that looks like nothing any regular perl6 user would prite 13:55
write*
timotimo welcome to netsplit time 14:07
Ven```` weeeeeeeee 14:09
masak timotimo: today, our guests are... hold on... no, wait... 14:41
Ven````
.oO( Join-part revolving guests )
14:52
timotimo we could brag about how many people come and go 14:57
moritz
.oO( you can /quit any time you like, but you can neeeever /leave )
14:59
Ven````
.oO( We're in for the long run, but we do take breaks )
15:00
timotimo m: my @foo is default(1); @foo[2] = 1; my int @bar = @foo 15:13
camelia Cannot unbox a type object (VMNull) to an int.
in block <unit> at <tmp> line 1
timotimo bisect: my @foo is default(1); @foo[2] = 1; my int @bar = @foo
bisectable6 timotimo, Bisecting by exit code (old=2015.12 new=672fd6e). Old exit code: 0
timotimo, bisect log: gist.github.com/e62aa038034a25e2c6...3075fb1236
timotimo, (2018-04-08) github.com/rakudo/rakudo/commit/b5...e884b0d5f6
timotimo anybody wants to fix this? :) 15:14
sena_kun timotimo, I don't know, but can I help? :) 15:21
6c: my @foo is default(1); @foo[2] = 1; my int @bar = @foo 15:22
committable6 sena_kun, gist.github.com/c4e46c06a5d4da89a4...a30e35cd3f 15:23
timotimo sure you can 15:24
one sec 15:25
github.com/rakudo/rakudo/blob/mast...y.pm6#L656 - this here blindly tries to nqp::unbox_i something in the $!reified of the List, but if there's holes in the list, there'll be a VMNull there 15:26
of course you need to change the code in the script that generates these files
tools/build/makeNATIVE_ARRAY.pm6
sena_kun I see, thanks
do we have a ticket for this? 15:27
timotimo not yet
well
i didn't look
a good fix would also not degrade performance for lists without a default
sena_kun wasn't able to find such a ticket 15:50
lizmat sena_kun timotimo if you don't feel up to it, make a ticket and assign it to me 15:55
sena_kun lizmat, I am interesting in looking at the code and trying to think, but as I know almost nothing about Rakudo internals, I will be super-grateful for advices. Also, it is very likely that I will be unable to solve the issue and handle it over then. :) 15:56
lizmat sena_kun: works for me
sena_kun I am opening a ticket nonetheless...
m: my @foo; @foo[0] = 5; @foo[2] = 14; my int @bar = @foo 15:58
camelia Cannot unbox a type object (VMNull) to an int.
in block <unit> at <tmp> line 1
sena_kun it seems that `is default` is not even necessary, just a hole is enough
lizmat sena_kun: I guess the safest would be to *not* bind if the value is nqp::isnull 16:04
sena_kun a ticket is opened at github.com/rakudo/rakudo/issues/2912
lembark Q: Is there any way to write a test to prefer ./lib without having to set PERL6LIB prior to executing the tests? 16:13
use lib requires a hard-coded value, which doesn't always work. 16:14
moritz what's wrong with "use lib 'lib';"? 16:15
it makes assumptions about the working directory, but I think that's workable
lembark e.g., ./t/x/y/01-frobnicate.t.
moritz you can use non-constant expressions with use lib, as long as they can be evaluated at compile time 16:16
lembark Rather use FindBin at which point I can use Bin.
I can have the list included via use.
Question is how to add an entry to $*Repo in BEGIN block. 16:17
I may also have multiple dir's above the current one w/in a project. Would like to find things there without having to hard-code and update them every time a new part of the project is added.
is there nothing anywhere which can manage $*REPO? 16:18
timotimo lizmat: if you just don't bind anything, then that's rather strange semantics for STOREing into arrays that already have some values in them 16:19
lizmat timotimo: good point :-) 16:20
timotimo lembark: "use lib" is how you manage REPO, i think?
lizmat then we can use nqp::ifnull, we just need to tell the generator somehow what the "empty" value is
timotimo right
can the "is default" also be code that runs to generate value, or just plain values that get cloned? 16:21
lizmat plain values, at least in the current situation
if you make the default a Callable, then that Callable is what you'll get
lizmat which may be useful for the default case in dispatch tables, specifically when based on hashes 16:22
timotimo right 16:22
moritz lembark: I've looked through github.com/moritz/perl6-all-modules/ for mentions of $*REPO, and most only read it. github/ugexe/Perl6-CompUnit--Repository--Github and github/zostay/p6-CompUnit-DynamicLib might be more interesting to you 16:23
lizmat tries to remember the name of the load balancing algorithm that jnthn had in mind for hyper
timotimo round robin? exponential back-off? TCP slow-start? %) 16:24
none of these make too much sense
moritz winner-takes-it-all 16:25
timotimo first-come-first-worm
i wonder if we should try to re-use the batcher and combiner from HyperSeq for feeds
lembark Checking it now, thank you.
timotimo lembark: you can always "constant thing-to-use = do { #`( this code runs at compile time, because of the ‘constant’ keyword ) }; use lib thing-to-use 16:26
lizmat timotimo: re-use of something we want to re-imagine, does not look very useful 16:27
timotimo my thoughts are that the difference between hyper and feed are in the stages in between, not the beginning and end 16:28
for hyper, you batch the input up and feed them to multiple workers; each worker does the desired work from start to finish and submits to the combiner
for feed, you batch the input up and feed it to the first worker, which does the first bit of work. then the first worker passes the batch to the second worker, and at the end the combiner puts them back together 16:29
lizmat gist.github.com/lizmat/8652e4a403f...2b31cc6ad4 is an implementation of a parallel feed operator
timotimo: ^^
brb& 16:30
timotimo at first look that seems good 16:31
Geth ecosystem/master: 7 commits pushed by (Steven Lembark)++, (Juan Julián Merelo Guervós)++, lembark++ 16:35
lembark ignore it. simplest fix was to remove FindBin as it lacks a ::. 16:37
Sanity check: if a module is on CPAN can it be located by zef, or is zef restricted to only files in the ecosystem?
lizmat lembark: zef knows about both 16:51
lembark Thank you. 16:51
sena_kun lizmat, how to run makeNATIVE_ARRAY correctly? 17:12
lizmat perl6 tools/build/makeNATIVE_ARRAY.p6 <src/core/native_array >new && mv new src/core/native_array.pm6 17:15
oops
perl6 tools/build/makeNATIVE_ARRAY.p6 <src/core/native_array.pm6 >new && mv new src/core/native_array.pm6
sena_kun also, there is a thing I don't understand... 17:16
moritz quantum field theory? :D
sena_kun in the code that throws we are using Array(my @foo; @foo[1] = 5;), but the suggested place for a patch is for List candidate... So I was wondering about this one. 17:17
moritz, yup,this one too.
lizmat sena_kun: hmmm... maybe we don't need the @values candidate then ? 17:19
worth a try :-)
lucs Can I run 'bisect' in a private channel? 17:27
timotimo you can do it in #whateverable
lucs timotimo: What's that channel for exacty? 17:31
timotimo the whateverable bots
lucs Sure, mais encore? (pardon my French, but it's really the best question :-) 17:32
Lets say: tell me more.
Is it just a place to poke those bots more privately than here? 17:33
sena_kun lucs, yes, to not spam this channel with a lot of queries 17:34
lucs Makes sense, thanks.
sena_kun lucs, it isn't too "private" as it is a public channel, but if you don't want to disturb anyone, that's the rigt channel
*right 17:35
lucs Welp, turns out my bisection turned up no problem, yet I do have a problem here (perhaps due to my 32-bit system here -- will attempt to bisect here). 17:37
timotimo it's also the channel for whateverable development
like, debugging versions of the bots will go there, but not in the other perl6 channels
coldforged hello everybody.. 17:38
i just joined to check up on perl6
sena_kun coldforged, o/
coldforged and am wondering if there's a stable version i can use in production? 17:38
of freebsd 11 servers 17:39
/of/on/
timotimo aye, you can run the rakudo star releases, they are stable
coldforged oh great! been wanting to get started on it. been using perl since the 90's for alsorts of things, including web apps 17:40
as i understand it, 6 is something different from the previous versions 17:41
is it in the freebsd ports tree already? 17:43
timotimo i'm not sure about bsd, but we have someone working on bsd stuff
Kaypie: can you help? 17:44
coldforged oh i see it is! :) lang/rakudo
timotimo cool 17:45
coldforged then it's just a question if it's the current one
bsd ports are always behind a little
Kaypie i'm pretty sure it's in ports but it's an old version 17:46
coldforged so i'd have to get a release and compile it myself 17:46
Kaiepi on openbsd and netbsd they're at least a year old, which is before 6.d 17:47
yes
coldforged these ones will do? rakudoport.sourceforge.net/
coldforged ah wait. that's the ports again. 17:48
is there a page that will tell me what to install if i go with source? as i see it, there's a couple of things i will have to compile and install 17:49
like parrot, rakudo.. 17:50
moritz parrot is dead
sena_kun parrot is no longer a thing for a while. there is an instruction at perl6.org/downloads/ <- see "installing from sources"
moritz as a rule of thumb, everthing about perl 6 that mentions parrot is sufficiently out of date to best be ignored 17:51
coldforged maybe if i understand it all better, i can make a port (or at least a tgz file) for it
moritz the build order is MoarVM -> nqp -> rakudo
coldforged so, don't bother with parrot and only go for rakudo
moritz and if you download rakudo from source, and run perl Makefile.pl --gen-moar, it'll download and build MoarVM and NQP for you 17:52
coldforged that's perl.. 5? (the makefile) ;)
i will go and try on a virgin freebsd vm, and see what happend! 17:53
happens..
moritz yes
coldforged thanks for the info! :)
moritz fwiw perl5 is only used at build time 17:54
coldforged i guess that's the case up to the point that perl6 is installed by default in the OS 17:55
at the moment, it's 5 allover
maybe push the fbsd guys a bit and move to 6!
i take it, not all modules of 5 are available in 6.. but is there a thing like cpan up and running for 6 already? 17:57
sena_kun coldforged, 1)Perl 6 modules can be uploaded on CPAN; 2)there is a github-based ecosystem too that is slightly easier to use, but that's preference; 3)currently most popular package manager works with both; 17:58
timotimo coldforged: if you use a --prefix that's system-wide, please be advised that --gen-moar will build *and install* moar and then nqp, which will fail if you don't have write access. yes, we are aware that doing "make install" during a Configure.pl is bad, but we haven't been able to make it much better yet. 18:01
lembark Q: Anyone know where "CompUnit::RepositoryRegistry" is documented? 18:09
moritz if it's not documented on docs.perl6.org, it's not documented at all 18:09
timotimo yeah, hopefully/likely there are tests 18:10
Xliff \o 18:13
nadim Evening everyone, I am a bit curious about what a Rakudo::Internals::LoweredAwayLexical is (found in a CallFrame.$.my) as well as ForeignCode (found in a Backtrace) 18:38
timotimo nadim: the "LoweredAwayLexical" is when a lexical value was decided to not need a full lexical because no inner scopes were accessing it 18:40
nadim ahhhh!
timotimo by the optimizer
nadim timotimo: why differentiate between a lexical that's used in the current scope and one that is not used in inner scopes? 18:46
timotimo locals are a whole lot cheaper 18:47
every frame has one piece of memory for locals ando ne piece of memory for lexicals
when a frame is left, the locals can be thrown away, but lexicals have to be kept around for things like closures
nadim OK 18:48
timotimo and the dynamic optimizer knows more about handling locals compared to lexicals 18:51
nadim and ForeignCode? that poped up in a BackTrace::Frame->$.code->$!do and gotmy dumper in a loop trying to dump it.
Not that I think people are going to use DDT to dump BackTraces ;) 18:52
timotimo i think ForeignCode is more or less just an object you can barely do anything at all with, except maybe invoke it 18:55
nadim timotimo++ 19:17
coldforged timotimo: ah thnx! :) but i will be installing on a local VM, which i have root privilege on. So no problem with write access :) 19:24
timotimo that will also run the compilation as root, which isn't pretty
i generally just have a --prefix that points into my home directory, in my case ~/perl6/install 19:25
coldforged and why not borrow from the ports idea.. you start with perl and do the rest as 'dependencies' with their own install routine 19:25
coldforged what is the problem with running the compilation as root? 19:26
as long as the perl scripts run with the user rights.. 19:27
ufobat_ BEGIN and CHECK blocks are compile time? 19:31
lizmat docs.perl6.org/syntax/%20CHECK 19:32
timotimo what the heck is the space in front of CHECK for there? 19:34
coldforged whoah.. i see i have to do some catching up on stuff in 6 alright.. 19:35
lizmat not sure
nadim m: multi sub xx(){} ; say %xx.package
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '%xx' is not declared. Did you mean '&xx'?
at <tmp>:1
------> 3multi sub xx(){} ; say 7⏏5%xx.package
coldforged looking at pdf::api6... the api6.pm makes no sense to me in some things lol
nadim m: multi sub xx(){} ; say &xx.package 19:36
camelia (GLOBAL)
nadim m: class C{multi sub xx(){}} ; dd C ; dd C::xx 19:54
camelia C
Could not find symbol '&xx'
in block <unit> at <tmp> line 1
nadim m: class C{ multi sub xx(){} } ; dd C; dd &C:xx 19:55
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared name:
C:xx used at line 1
nadim m: class C{ multi sub xx(){} } ; dd C; dd &C::xx
camelia C
Any element{'&xx'} = Any
nadim can someoneenlighten me? I though &C::xx would be a sub but it say the above ^ 19:57
timotimo it has to be an "our sub" i think?
m: class C{ our multi sub xx(){} } ; dd C; dd &C::xx
camelia 5===SORRY!5=== Error while compiling <tmp>
Cannot use 'our' with individual multi candidates. Please declare an our-scoped proto instead
at <tmp>:1
------> 3class C{ our multi sub xx(){}7⏏5 } ; dd C; dd &C::xx
expecting any of:…
timotimo m: class C{ our proto xx(){*}; multi sub xx(){} } ; dd C; dd &C::xx 19:58
camelia C
Sub xx = proto sub xx {*}
timotimo m: class C{ our proto xx(){*}; multi sub xx(){ say "hello"} } ; dd C; dd &C::xx; C::xx()
camelia C
hello
Sub xx = proto sub xx {*}
timotimo ^- out of order because dd goes to stderr and say goes to stdout
nadim m: class C{ sub xx(){} } ; dd C; dd &C::xx 20:00
camelia C
Any element{'&xx'} = Any
nadim m: class C{ method xx(){} } ; dd C; dd &C::xx
camelia C
Any element{'&xx'} = Any
timotimo methods are never in the package
m: class C{ our sub xx(){} } ; dd C; dd &C::xx 20:01
camelia C
Sub xx = sub xx { #`(Sub|76585552) ... }
nadim where are they then? 20:07
timotimo they are in the metaobject's method table 20:15
m: .name.say for Array.HOW.^roles 20:16
camelia Required named parameter 'local' not passed
in block <unit> at <tmp> line 1
timotimo m: .name.say for Array.HOW.^roles(:local)
camelia No such method 'name' for invocant of type '<anon>'
in block <unit> at <tmp> line 1
timotimo m: .^name.say for Array.HOW.^roles(:local)
camelia <anon>
timotimo ...
lucs I have some questions, but I'm not sure what they are...: gist.github.com/lucs/9bf69520a94f8...cdcb451973 20:47
It took me a while to whittle it down to that, and now I must go do a bit of shopping. 20:50
timotimo lucs: hm. spesh/jit/exprjit/something problem?
lucs timotimo: Um, not sure what you mean...
timotimo dynamic optimizer getting confused maybe? 20:51
you can turn it all off with MVM_SPESH_DISABLE=yes or the entire jit with MVM_JIT_DISABLE=1 or only the exprjit with MVM_JIT_EXPR_DISABLE=1
lucs Wow, no idea, really, I don't understand the implementation at all :/
lucs Okay, I'll try later and let you know -- gotta go get food! 20:52
timotimo good luck!
jnthn Well, if it's on 32-bit then it won't be JIT; the JIT only works on x64 :) 20:53
timotimo true
ugexe that might be bisectable unlike the windows failure 20:54
er, bisectable doesnt do moarvm commits though
timotimo it can give a start at least
ugexe well if its like the windows failure its the Int optimizations in moarvm from a few days ago 20:54
jnthn If we can figure out one, I guess an immediate workaround will be to #ifdef it to the slower thing on Windows 20:55
*which one
ugexe yeah i was gonna bisect manually but i can't git clone at the hotel im staying at :/ 20:55
jnthn "No noise after 10pm. No dogs. No git clone." 20:56
ugexe or they'll charge me $4 per git clone
timotimo urgh
Geth ¦ problem-solving: rba self-assigned perl6-infra: rules and guidelines github.com/perl6/problem-solving/issues/28 21:16
¦ problem-solving: rba assigned to maettu Issue perl6-infra: rules and guidelines github.com/perl6/problem-solving/issues/28 21:17
¦ problem-solving: rba self-assigned perl6-infra: group of services: DNS hosting github.com/perl6/problem-solving/issues/29
¦ problem-solving: rba assigned to maettu Issue perl6-infra: group of services: DNS hosting github.com/perl6/problem-solving/issues/29
¦ problem-solving: rba self-assigned perl6-infra: service: Password handling github.com/perl6/problem-solving/issues/30 21:18
¦ problem-solving: rba assigned to maettu Issue perl6-infra: service: Password handling github.com/perl6/problem-solving/issues/30
cpan-p6 New module released to CPAN! FileSystem::Parent (0.3.0) by 03LEMBARK 21:45
ugexe alright im going to bisect via appveyor + rakudo PRs 22:07
noooo 22:12
Configure.pl looks broke on appveyor now 22:13
on moar master
not sure how thats possible
ugexe ah ha, i need a slightly older nqp 22:14
MasterDuke moritz: looks like perl6-all-modules hasn't been updated since april 19th 22:28
Elronnd is there something like the expect lib for perl6 23:03