»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
tadzik isn't the second callable in a scalar container? 00:00
TimToady m: (my $x = 42) += 1; say $x
camelia rakudo-moar 1aeb7c: OUTPUT«43␤» 00:01
TimToady that's returning the ccontainer
m: (my &x = {}) = sub foo () {}
camelia rakudo-moar 1aeb7c: OUTPUT«Type check failed in assignment to '&x'; expected 'Callable' but got 'Hash'␤ in block at /tmp/abw2KRcOLr:1␤␤»
jnthn r: (my $x = 42) += 1; say $x
camelia rakudo-parrot 1aeb7c, rakudo-jvm 1aeb7c, rakudo-moar 1aeb7c: OUTPUT«43␤»
tadzik oh wow
r: my &x = Callable
camelia ( no output )
..rakudo-moar 1aeb7c: OUTPUT«Type check failed in assignment to '&x'; expected 'Callable' but got 'Callable'␤ in block at /tmp/tmpfile:1␤␤»
jnthn It's meant to be returning the container
TimToady so assignment to &x isn't returning the container?
to my &x that is 00:02
tadzik there, golfed it :
jnthn tadzik: oh, wow...
r: my @a = Positional; 00:03
camelia ( no output )
jnthn ah, but that's different...
TimToady m: (my &x = { say "hi" }).wrap({ callsame; say "lo" })()
camelia rakudo-moar 1aeb7c: OUTPUT«No such method 'wrap' for invocant of type 'Block'␤ in block at /tmp/rVrJm3Wdpm:1␤␤»
TimToady m: (my &x = sub { say "hi" }).wrap({ callsame; say "lo" })() 00:04
camelia rakudo-moar 1aeb7c: OUTPUT«Cannot find method 'postcircumfix:<( )>'␤ in block at /tmp/V83to6rayR:1␤␤»
jnthn r: role R { }; my R $r = R;
camelia ( no output )
..rakudo-moar 1aeb7c: OUTPUT«Type check failed in assignment to '$r'; expected 'R' but got 'R'␤ in block at /tmp/tmpfile:1␤␤»
jnthn Aha!
TimToady no pun?
jnthn nah, scalar assignment has its own codepath for typechecking, and I suspect it's doing something bogus 00:06
TimToady m: my &x = sub { say "hi" }; &x.wrap({ callsame; say "lo" })()
camelia rakudo-moar 1aeb7c: OUTPUT«Cannot find method 'postcircumfix:<( )>'␤ in block at /tmp/frw4P5oBlu:1␤␤»
TimToady m: my &x = sub { say "hi" }; &x.wrap({ callsame; say "lo" }).()
camelia rakudo-moar 1aeb7c: OUTPUT«Cannot find method 'postcircumfix:<( )>'␤ in block at /tmp/wuegN7PDNg:1␤␤»
TimToady hmm 00:07
m: my &x = sub { say "hi" }; &x.wrap({ callsame; say "lo" }).WHAT.say
camelia rakudo-moar 1aeb7c: OUTPUT«(WrapHandle)␤»
TimToady oh
duh
m: my &x = sub { say "hi" }; &x.wrap({ callsame; say "lo" }); &x
camelia ( no output )
TimToady m: my &x = sub { say "hi" }; &x.wrap({ callsame; say "lo" }); x()
camelia rakudo-moar 1aeb7c: OUTPUT«hi␤lo␤»
TimToady m: (my &x = sub { say "hi" }).wrap({ callsame; say "lo" }); x() 00:08
camelia rakudo-moar 1aeb7c: OUTPUT«hi␤lo␤»
TimToady okay
jnthn yeah, I think I see it. 00:09
00:13 rurban left 00:14 dmol left 00:18 pmurias left 00:26 BenGoldberg joined
lue Is there anything out there that details how putting Perl 6 stuff on CPAN/PAUSE would happen ? 00:27
00:27 hoverboard left 00:29 hoverboard joined
jnthn spectests a fix 00:30
All but one test of supply.t passes with that done
BenGoldberg Is there some CPAN/PAUSE mechanism in place to prevent a perl6 module from being installed when using the perl5 'cpan' command-line program to install a perl5 module of the same name? 00:34
00:36 denisboyun left
lue BenGoldberg: nope, but that shouldn't be an issue right now because CPAN doesn't currently do Perl 6 :) 00:38
Mouq jnthn++ 00:40
lue at the moment is not confident in using CPAN or PAUSE for Perl 6, but is trying to find evidence contradicting this belief :) 00:43
jnthn Ugh, seems I regressed something in one of the roles tests. 00:45
Tired...will give it another look tomorrow
'night, #perl6
TimToady o/
lue jnthn o/
BenGoldberg In order to get cpan to do perl6, it would need to be made multi-lingual
And yet, remain backwards compatible with the various perl5-only cpan tools. 00:46
lue BenGoldberg: yeah, there's no way I can see it happening without maintaining separate CPAN/PAUSE5 and Cpan/Pause6 things underneath the shiny UIs. 00:47
00:47 raiph joined
BenGoldberg Right :) 00:47
lue (in fact, the need to maintain things as separate raises the questions of "Doesn't panda do this already?" and "What's the point of renaming panda to cpan6?") 00:50
BenGoldberg The only perl6 stuff that should go on the perl5 cpan/pause, would be Alien::Rakudo (when someone writes it), and modules to allow perl5 to interact with a perl6 library/executable, and perl5 modules for perl6 syntactic sugar for perl5. And STD. 00:51
lue Like I said, I'm incredibly pessimistic of ever putting Perl6 stuff on CPAN, but I'd like to be proven wrong. /me decides to blag about it now 00:52
BenGoldberg blag? 00:53
lue blog :)
BenGoldberg Ahh
. o O (blah + blog = blag)
geekosaur blag: xkcd.com/148/
TimToady reads it as blog + brag :) 00:54
00:56 hoverboard left
BenGoldberg .ud blag 00:57
.ping
yoleaux There is no ping command; nor can this be construed as a response.
01:04 hoverboard joined
BenGoldberg . o O (Yoleaux no longer does urban dictionary lookups? How sad) 01:06
benabik 1. To gain, usually entrance to a restricted area or club, or some material good, through confidence trickery or cheekiness. Lying is also acceptable. 2. A better term for blog, as defined by xkcd.com 01:07
01:10 hoverboard is now known as baller 01:23 baller is now known as hoverboard
timotimo is back 01:27
seems like we have most of moar-conc by now. cool!
colomon \o/ 01:32
grondilu that's fantastic. Can we hope a merge into nom soon? 01:39
I see moar at 100% on github.com/coke/perl6-roast-data/b..._rates.csv 01:40
is that for real?
timotimo moar does unicode better than jvm at the moment :) 01:44
grondilu k
timotimo and better than parrot, too
our moarvm unidb is more capable than libicu apparently 01:45
or maybe it's just a SMOP to tickle the data we need out of it
colomon that's a lot of tests, though. 01:46
timotimo "Synopsis", "pass","fail","todo","skip","plan","spec" 01:47
colomon 200 more passing than JVM?
that seems odd
(and awesome if true)
timotimo "S15", 234, 0, 0, 0, 234, 283
colomon (by true, I mean, not some weird artifact or JVM being broken overnight or something) 01:48
timotimo those don't run at all on jvm and parrot
github.com/perl6/roast/blob/master.../uniname.t - tests like these
they *should* be doable on parrot and probably on java, too
colomon ah, so we've added hundreds of new tests? 01:49
timotimo yeah. we cheated :P 01:51
colomon that's better than JVM regressing. :) 01:53
timotimo :) 01:54
i'm going to bed now
gnite!
colomon o/
www.roguebasin.com/index.php?title=...lenge_2014
02:10 klapperl_ joined 02:14 klapperl left, kaare_ joined 02:16 FROGGS_ joined, kaare_ left 02:17 kaare_ joined
colomon wishes p6 were fast / mature enough to handle the current code he is writing. 02:18
… actually ...
02:20 FROGGS left
grondilu thinks he should really read S17 now that it is coming (he did not use JVM). 02:20
02:21 raiph left
lue blag toast! rdstar.wordpress.com/2014/03/09/perl6-and-cpan/ 02:42
02:44 ilbot3 left
colomon rakado-moar + JSON::Tiny seems pretty fast, at least on my toy data... 02:44
BenGoldberg What's happened to pugs? Back in 2013-09-18, it was passing 9531 tests, and then the number of tests that it passes goes down and down and down. On 2014-02-24 it only passed 6337 tests, and then it's down to 19 or 0. 02:45
colomon dunno exactly, but we keep changing the spec...
02:46 ilbot3 joined
Mouq BenGoldberg: Spectests aren't run on the same machine anymore 02:46
colomon: WRT 7DRL, do we have a way to interface with Curses? 02:47
BenGoldberg But to go from over six thousand, down to basically none, sounds like something is not set up right.
colomon Mouq: there's a perl6-ncurses in the ecosystem, I don't know anything about it. 02:48
Mouq colomon: Ahh, ok, cool 02:49
colomon BenGoldberg: I don't know what's going on with pugs, but I know we've had problems setting up Haskell to run it in the past, and it would be a pretty low priority at the moment.
Mouq lue: Re: rdstar.wordpress.com/2011/08/06/ide...ve-perl-6/ 02:50
lue: Is "graphical depiction of the Perl 6 type hierarchy" === what we have at doc.perl6.org
?
lue Mouq: it's also rdstar.wordpress.com/2012/11/22/the...partially/ :) 02:51
02:53 skids left
Mouq lue: Sweeet :) Lol @ rdstar.files.wordpress.com/2012/11/..._twopi.png 02:54
lue Admittedly, doc.perl6.org probably has done a better job of it than my abandoned script :P
02:59 skids joined
Mouq lue: One thing your latest post didn't address was versioning. How do would you support multiple versions of a module under the current system, short of creating a new repo for each? 03:10
lue Mouq: git tags for the repo, though uploaded tarballs would sanely have some identifying mark on them. My issue was the CPAN is set up to do the version stuff all by itself, which goes counter to what Perl 6 has. 03:11
s/the CPAN/that CPAN/
Mouq lue: ok, that makes sense 03:12
03:14 hoverboard left 03:15 wooden joined 03:16 felher joined
colomon vastly prefers programming in p6 to p5. 03:23
Mouq ikr 03:25
03:34 rurban joined 03:48 beastd left 03:49 __thou joined 04:03 grondilu left 04:06 flussence left, flussence joined
Mouq is annoyed we don't have a precendence parser available for standard Perl 6 04:11
We have STD.pm6's EXPR, but that cheats a bunch 04:12
TimToady there are only about six spots it cheats :)
actually, there's only 3 lines labelled # XXX P6 at the moment 04:13
Mouq TimToady: I don't understand what the pmc-based self.MATCHIFYr does 04:14
TimToady see also (sub (*@values) {
return op.() unless @values.gimme(1);
my $result := @values.shift;
return op.($result) unless @values.gimme(1);
my int $i;
while my int $c = @values.gimme(1000) {
$i = 0;
$result := op.($result, @values.shift) 04:15
while ($i = $i + 1) <= $c;
}
$result;
})
oops, sorry
rosettacode.org/wiki/Parsing/Shunti...thm#Perl_6
Mouq :O
So that assumes that its input has already been tokenized, whereas EXPR tokenizes as it runs 04:18
Or am I mistaken?
TimToady EXPR calls <termish> and <infixish> to tokenize
MATCHIFY mostly calls _REDUCE, which mostly is checking to see if there's an associated ACTTION routine 04:19
Mouq So EXPR just tricks the <infixish> action that it swallowed up the <EXPR>s around it? 04:20
s/action/action method/ 04:21
TimToady yeah, basically 04:22
a little more complicated with P6 because of list infixes
whoops, time to go pick up quietfanatic from the train station.... 04:24
afk &
Mouq o/
lue Finally got around to updating the pages on that navbar in my blog :) 04:25
04:30 nebuchad` joined 04:32 nebuchadnezzar left, perlpilot joined 04:34 PerlJam left 05:04 btyler joined 05:24 BenGoldberg left 05:25 Ben_Goldberg joined, btyler left
Mouq r: my %e = :a<5>, :c<7>; say %e<a c>:exists 05:28
camelia rakudo-parrot 1aeb7c, rakudo-jvm 1aeb7c, rakudo-moar 1aeb7c: OUTPUT«True True␤»
Mouq r: my %e = :a<5>, :c<7>; say %e<a b c>:exists
camelia rakudo-parrot 1aeb7c, rakudo-jvm 1aeb7c, rakudo-moar 1aeb7c: OUTPUT«True False True␤»
Mouq r: my %e = :a<5>, :c<7>; if %e<a b c> -> $one, $two { say "$one__$two" } 05:29
camelia rakudo-parrot 1aeb7c, rakudo-jvm 1aeb7c, rakudo-moar 1aeb7c: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Variable '$one__' is not declared␤at /tmp/tmpfile:1␤------> if %e<a b c> -> $one, $two { say "$one__⏏$two" }␤ expecti…» 05:30
Mouq r: my %e = :a<5>, :c<7>; if %e<a b c> -> $one, $two { say "$one __$two" }
camelia rakudo-parrot 1aeb7c, rakudo-jvm 1aeb7c, rakudo-moar 1aeb7c: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in block at /tmp/tmpfile:1␤␤»
Mouq r: my %e = :a<5>, :c<7>; say "cool" if all %e<a c>:exists 05:31
camelia rakudo-parrot 1aeb7c, rakudo-jvm 1aeb7c, rakudo-moar 1aeb7c: OUTPUT«cool␤»
05:33 Ben_Goldberg left 05:57 __thou left
ingy Mouq: hi 06:07
Mouq ingy: Sup 06:09
ingy what's the fastest way to install a perl6 on ubuntu 12.04
Mouq ingy: git clone and perl Configure.pl? 06:13
:P
What we should aim for: www.python.org/downloads/release/python-335rc2/ 06:21
Oh, looks like for Ubuntu that would just be a source tarball anyway
06:24 denyska left
Mouq Can we have a ./configure-moar + ./configure-parrot + ./configure-jvm that have simple, sane defaults? 06:25
Just to make things as painless as possible
lue would love if Moar was more like Parrot in the "default to /usr/local like normal people" department :) 06:26
moritz well, most normal users don't have write privs to /usr/local/, which is why ./isntall is the saner default 06:29
lue
.oO(/usr/local is the conventionaler default though)
06:31
moritz: I'd be more convinced by that argument if just about every other program ever didn't find it OK to default to /usr/local . 06:33
06:36 darutoko joined
Mouq → bed 06:36
lue Mouq o/ 06:38
moritz lue: I'm not convinced by just about every other program defaulting to a location the user doesn't have write privs to
06:42 kaare_ left, Mouq left
lue moritz: it's convention though, at least for programs that want to try to be nice :/ I guess I'm just annoyed by how Moar is the singular reason why it's necessary for me to specify --prefix=/usr/local on NQP and Rakudo. (Parrot defaults there, and jvm-only picks that as a default as well, last time I tried) 06:45
moritz the "convention" and "majority" arguemnt is like saying "most programmers are PHP programmers, so we should be PHP compatible" 06:56
06:56 vincent22 joined
lue moritz: I do think your argument is good, by the way, I just don't like it :) 06:56
moritz lue: :-) 06:59
lue (Not defaulting to /usr/local is one of those little things for me that, were this some random program I download for some random thing I need to do, would make me think the developers didn't care too much for what a general audience is accustomed to. Forcing me to run autotools is another such thing.)
moritz lue: pro tip: create a shell alias for often-used configure lines 07:00
lue I once found some program that defaulted to /usr (not /usr/local), and my reaction was something like "why go against the norm? Don't you know /usr is for the package manager? why‽"
moritz alias rakudoconfig='Configre.pl --prefix=/usr/local --backends=all --gen-moar --gen-parrot --gen-nqp' 07:01
lue moritz: if nqp and rakudo honored the /usr/local configuration from MoarVM (been a while since I tried this), I wouldn't be nearly as annoyed :)
No, the actual issue was/is that nqp and/or rakudo won't search the standard places for moar or nqp-m, while it would for nqp-j and nqp-p 07:02
moritz well, that's fixable, I guess 07:03
not trivial, though
lue yeah, IIRC how things are found for parrot is much different from jvm or moar, could be wrong though. 07:04
moritz because nqp and rakudo needs a single prefix, which means that parrot's prefix and moar's prefix need to be the same, and that condition must be error-checked
07:05 daniel-s joined
lue (Having to tell Moar to go to /usr/local is atypical of packages, but now I remember my real issue was nqp and/or rakudo not searching the standard places for moar-based stuff.) 07:06
something to look into tomorrow, assuming no-one else does first :) . ♘ #perl6 o/
moritz \o lue 07:07
FROGGS_ lue: I can say something about Perl6 + CPAN in about a week 07:22
07:23 daniel-s left 07:24 daniel-s joined 07:32 lue left 07:55 lue joined 07:58 cognominal left 07:59 cognominal joined
nwc10 TimToady++ # rakudo.jvm,2014-03-08,99.31%,1fb3aff,28982,8,608,1505,31103,28583, 08:00
parrot at 99.04% 08:01
MoarVM has quite a lead now.
08:01 xinming__ joined 08:04 xinming_ left 08:11 telex left 08:12 telex joined 08:21 rurban left 08:44 kurahaupo joined 08:46 virtualsue joined 09:09 virtualsue left 09:13 FROGGS_ is now known as FROGGS, sftp_ left
FROGGS tadzik: can you please apply that PR? github.com/tadzik/File-Find/pulls 09:13
09:13 sftp_ joined 09:28 spider-mario joined 09:39 virtualsue joined
masak can we create daemonic processes in Perl 6? 09:43
in many languages, that hangs off the threading system in some way.
09:44 virtualsue left
timotimo code.activestate.com/recipes/278731...ython-way/ ← :\ 09:44
xfix std: if True { } elseif True {} 09:45
camelia std 09dda5b: OUTPUT«===SORRY!===␤Please use 'elsif' at /tmp/PFFkd57dhw line 1:␤------> if True { } elseif ⏏True {}␤Confused at /tmp/PFFkd57dhw line 1:␤------> if True { } elseif ⏏True {}␤ expecting any of:␤ f…»
masak std: if True { } else if True {} 09:47
camelia std 09dda5b: OUTPUT«===SORRY!===␤Please use 'elsif' at /tmp/K3eI04LGpb line 1:␤------> if True { } else if ⏏True {}␤Confused at /tmp/K3eI04LGpb line 1:␤------> if True { } else if ⏏True {}␤ expecting any of:␤…»
timotimo std: if True { } elif True { }
camelia std 09dda5b: OUTPUT«===SORRY!===␤Strange text after block (missing comma, semicolon, comment marker?) at /tmp/8jHDAUMpPJ line 1:␤------> if True { }⏏ elif True { }␤ expecting any of:␤ horizontal whitespace␤ statement_control␤Pars…»
timotimo r: if True { } elif True { }
camelia rakudo-parrot 1aeb7c, rakudo-jvm 1aeb7c, rakudo-moar 1aeb7c: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤In Perl 6, please use "elsif' instead of "elif"␤at /tmp/tmpfile:1␤------> if True { } elif ⏏True { }␤ expecting any o…»
09:53 dmol joined 10:05 tgt joined 10:06 Rotwang joined 10:30 denis_boyun joined
lizmat lue and others: regarding rdstar.wordpress.com/2014/03/09/perl6-and-cpan/ 10:31
for all practical purposes, PAUSE *is* a place for authors to drop their tarballs
CPAN (for Perl 5) is nothing more than a layer on top of that "dropbox" 10:32
every author on CPAN has its own directory, and its own tarballs in there
FROGGS rdstar?
O.o
lizmat with distributions that may or may not conflict with the "official" version of a Perl 5 distribution 10:33
so wrt to authority and versioning, everything is more or less in place already
the big thing that is stopping people from uploading Perl 6 modules to PAUSE, is CPAN-testers really
we don't want CPAN-testers to start sending out bogus error reports because distributions don't build with Perl 5 10:34
FROGGS and that we can't bundle up our modules easily
masak lizmat++ # investigating this
lizmat that is why the following ideas were formed at the last QA Hackathon on Lancaster
1. Perl 6 distributions must have a flag that indicate they're a Perl 6 distribution 10:35
that flag could be the existence of a the META.info file, as that doesn't exist in Perl 5 distributions (afaik) 10:36
FROGGS correct, they've got a META.yaml or so
lizmat 2. if such a flag is discovered, then on upload, PAUSE will create a Perl6 subdirectory in the authors directory automatically (if it doesn't exist yet) 10:37
and put the distribution in there
the fact that the distribution is stored in a sub dir, will allow remote CPAN server admins to filter on /Perl6/ in their rsync scripts 10:38
as to (dis)allow Perl 6 distributions on their servers 10:39
FROGGS lizmat: does that clash with Perl 5 modules that start with Perl6:: ? do these have a Perl6 diretory already?
lizmat the Perl6:: modules are not in a Perl6 subdirectory, unless the author has put them there 10:40
FROGGS I just thought so because you can browse the source of a dist
lizmat yes, but that is all front end layer 10:43
the dist itself just lives in the top dir of the author's directory, usually
3. the Perl 6 community will need to create it's own indexing logic for Perl 6 modules on PAUSE 10:44
and to work out the internal format of META.info
FROGGS yes
lizmat and, so I was told by maintainers of CPAN last year, please don't make the same mistakes that they made
FROGGS but anyway, who is behing rdstar? 10:45
lizmat with META.yaml :-)
FROGGS okay, I need to know about their mistakes then :o)
lizmat you will be able to ask them :-)
next week
FROGGS yeah
lizmat my plan for next week's QA Hackathon is: 10:46
1. tell CPAN(-testers) that the existence of META.info is the flag for Perl 6 distribution
2. make sure they all implement this in the current CPAN/PAUSE logic
3. work on the internal structure of META.info, together with CPAN people and packagers like sno 10:47
4. work on getting a CompUnitRepo that will install from CPAN
FROGGS yes, we need to switch from projects.json to CPAN somehow 10:48
lizmat 5. if all works out, get the search.cpan.org / metacpan people to show Perl 6 distributions as well 10:49
6. if that works out, maybe even get cpanm to be able to install Perl 6 modules (one can dream, right?)
FROGGS :o) 10:50
I am working on a bundle target for panda right now btw
lizmat cool!
there shouldn't be just one way to install modules :-) 10:51
TIMTOWTIT
TIMTOWTII
rather
10:51 rindolf joined
FROGGS that bundle target should propose a META.info and zip it up for uploading to PAUSE 10:52
lizmat cool
FROGGS++
FROGGS :o)
10:54 pmurias joined
FROGGS ahh, lue is doing rdstar? 10:55
lizmat apparently :-)
tadzik FROGGS: sure, done :) 10:57
FROGGS tadzik++ # \o/ 10:58
lizmat afk&
tadzik FROGGS++ :)
11:18 kaare_ joined 11:53 xenoterracide left 11:59 zakharyas joined 12:06 nebuchad` is now known as nebuchadnezzar 12:10 grep0r left 12:48 spider-mario left 12:53 pmurias left 12:55 colomon_ joined 12:56 colomon left, colomon_ is now known as colomon 13:00 spider-mario joined 13:03 zakharyas left 13:18 daniel-s left 13:24 kivutar left
FROGGS r: $*ENV<FOO> = "bar" # that error message is very LTA 13:53
camelia rakudo-moar 1aeb7c: OUTPUT«===SORRY!===␤postcircumfix:<{ }> not defined for type Failure␤»
..rakudo-jvm 1aeb7c: OUTPUT«postcircumfix:<{ }> not defined for type Failure␤ in method <anon> at gen/jvm/CORE.setting:12386␤ in any at gen/jvm/Metamodel.nqp:2611␤ in any find_method_fallback at gen/jvm/Metamodel.nqp:2610␤ in any find_method at gen/jvm/Metamodel.nqp:948…»
..rakudo-parrot 1aeb7c: OUTPUT«postcircumfix:<{ }> not defined for type Failure␤ in method <anon> at gen/parrot/CORE.setting:12407␤ in any at gen/parrot/Metamodel.nqp:2694␤ in any find_method_fallback at gen/parrot/Metamodel.nqp:2682␤ in any find_method at gen/parrot/Meta…»
timotimo yeah, that could conceivably trigger the Failure object to be printed instead 13:54
FROGGS well, it could state that $*ENV is not defined
r: say $*FOO 13:55
camelia rakudo-moar 1aeb7c: OUTPUT«===SORRY!===␤Dynamic variable $*FOO not found␤»
..rakudo-parrot 1aeb7c: OUTPUT«Dynamic variable $*FOO not found␤ in method gist at gen/parrot/CORE.setting:12402␤ in method gist at gen/parrot/CORE.setting:1056␤ in sub say at gen/parrot/CORE.setting:13330␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-jvm 1aeb7c: OUTPUT«Dynamic variable $*FOO not found␤ in method gist at gen/jvm/CORE.setting:12381␤ in method gist at gen/jvm/CORE.setting:1053␤ in sub say at gen/jvm/CORE.setting:13288␤ in block at /tmp/tmpfile:1␤␤»
FROGGS perhaps class Failure should have a postcircumfix:<{ }> that returns itself?
would that be sensible? 13:56
13:56 grondilu joined
timotimo hm, kinda like Nil? 14:06
FROGGS r: say Nil<hu?> 14:08
camelia rakudo-parrot 1aeb7c, rakudo-jvm 1aeb7c, rakudo-moar 1aeb7c: OUTPUT«Nil␤»
FROGGS yes :o)
timotimo implemented a little cache to hold the strings for the lowered parameter names
could shave off a megabyte or two 14:09
with cache: 66.63user 0.22system 1:07.09elapsed 99%CPU (0avgtext+0avgdata 605884maxresident)k 14:10
jnthn What was it without? 14:11
timotimo gimme a minute.
jnthn :)
.oO( If I made the darn setting compile faster I'd not have to wait a minute... )
FROGGS make it faster then :o) 14:12
timotimo without cache: 66.26user 0.19system 1:06.69elapsed 99%CPU (0avgtext+0avgdata 606332maxresident)k
so half a megabyte from __lowered_param_$i alone
we might want a more general solution in some other place ... 14:13
FROGGS what is the the perl6ish way to get an intersection of two lists? 14:18
-the
tadzik I'll turn them into sets, if you don't care for the ordering that much
FROGGS ordering does not matter at all 14:19
moritz or a very idiomatic and slow way is @a.grep: any @b;
FROGGS can I get intersection also when the elements are hashes?
ahh 14:20
tadzik ha, that's clever
timotimo it may be easier to @a.grep: set @b 14:21
will that work?
TimToady should 14:22
timotimo i think smartmatch semantics should do (elem) in that case
TimToady yeah, might not work with hashes in @a
14:23 Rotwang left
masak r: my @a = 1, 2, 3, 4, 5; my @b = 4, 5, 6, 7, 8; say @a (&&) @b 14:23
camelia rakudo-parrot 1aeb7c, rakudo-jvm 1aeb7c, rakudo-moar 1aeb7c: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Two terms in a row␤at /tmp/tmpfile:1␤------> 3, 4, 5; my @b = 4, 5, 6, 7, 8; say @a ⏏(&&) @b␤ expecting any of:␤ …»
TimToady intersecting two sets would be safer in that case
masak hm.
14:24 salv0 left
timotimo mumbles something about itemization 14:24
jnthn r: say set(<b e e f>) (&) set(<b e e r>)
camelia rakudo-parrot 1aeb7c, rakudo-jvm 1aeb7c, rakudo-moar 1aeb7c: OUTPUT«set(b, e)␤»
masak r: my @a = 1, 2, 3, 4, 5; my @b = 4, 5, 6, 7, 8; say @a (&) @b
camelia rakudo-parrot 1aeb7c, rakudo-jvm 1aeb7c, rakudo-moar 1aeb7c: OUTPUT«set(4, 5)␤»
masak ah, yes. 14:25
jnthn oh, cool, it even coerces. :)
masak r: my @a = 1, 2, 3, 4, 5; my @b = 4, 5, 6, 7, 8; say (@a (&) @b).list
camelia rakudo-parrot 1aeb7c, rakudo-jvm 1aeb7c, rakudo-moar 1aeb7c: OUTPUT«4 5␤»
timotimo jnthn: i don't hear "oh, cool, it coerces" often :D
masak r: say 1..5 (&) 4..8 14:26
camelia rakudo-parrot 1aeb7c, rakudo-jvm 1aeb7c, rakudo-moar 1aeb7c: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Operators '..' and '..' are non-associative and require parenthesis␤at /tmp/tmpfile:1␤------> say 1..5 (&) 4.⏏.8␤ exp…»
masak r: say (1..5) (&) (4..8)
camelia rakudo-parrot 1aeb7c, rakudo-jvm 1aeb7c, rakudo-moar 1aeb7c: OUTPUT«set(4, 5)␤»
14:42 salv0 joined
TimToady oh, duh, I was timing 0+1+2+3+4+5+6+7+8+9+10, but that's constant folded, so [+] ain't never gonna get close :) 14:49
timotimo :D
TimToady well, except insofar as [+] oughta do that too
14:56 guru joined, guru is now known as Guest83843 14:57 [Sno] left, Guest83843 is now known as ajr_ 15:03 [Sno] joined 15:17 zakharyas joined
timotimo p6: sub foobar() { say "i've done it!" }; &foobar; 15:21
camelia ( no output )
timotimo why no "useless use of &foobar in sink context"?
p6: sub foobar() { say "i've done it!" }; &foobar; 1;
camelia ( no output )
moritz well, we have a known bug that the last statement doesn't get compile-time sunk 15:22
butw ith trailing ;1 it rally should
oh, I think I know why
hoelzro is precompilation covered in one of the S's?
moritz because otherwise, sub foo { } might also warn :-)
timotimo well, sub foo { } is a declaration, though
15:22 xragnar_ joined
timotimo and &foo is just a mention 15:22
15:23 xragnar is now known as Guest4820, Guest4820 left, xragnar_ is now known as xragnar
timotimo so that should be differentaible 15:23
differentiable*
15:23 kurahaupo left
moritz it should be, yes 15:26
timotimo masak: feel like submitting this LTA rakudobug? :)
though it's not quite as nasty as in python
where lack of () directly means mention instead of use
moritz same in JS and C
timotimo in perl 6 you have to do a bit of extra work to get a mention instead of a use 15:27
15:39 grep0r joined 15:40 grep0r left 15:41 grep0r joined 15:44 grep0r left, [Sno]_ joined 15:46 [Sno] left, [Sno]_ is now known as [Sno] 15:55 grep0r joined
masak submits rakudobug 15:56
fwiw, I don't feel Python's and JavaScript's solution to be nasty at all. 15:59
timotimo it's just a gotcha 16:00
masak it's a different tradeoff. everything is.
timotimo aye
well, if you warn about statements without effect, it's not that bad :)
masak what's speaking *for* JS and Python ever is that it's actually *easier* to mention a sub than to call it.
16:00 grep0r left
masak that, correctly understood, encourages various FP practices. 16:00
I tried to strike a balance and get the best of both worlds with the language I was developing -- but the result feels like a compromise, with its own pitfalls. 16:01
timotimo aye
16:01 arnsholt joined
timotimo FWIW, i feel the way perl 6 approaches calling vs mentioning of subs is very nice. 16:03
also, it occurs to me that the python way of doing attributes in classes is a bit like autovivification, except it doesn't actually autovivify
so ... i suppose it's just "undefinedness" 16:04
masak allegedly, Python's object model was inspired by Perl's.
16:04 grep0r joined
timotimo but python is much older than perl 5, isn't it? 16:04
and perl before 5 didn't have a proper object model, did it? 16:05
geekosaur didn't have an object model at all
arnsholt Yeah, I was under the impression it was the other way 'round too
16:08 [particle] left 16:09 BenGoldberg joined
vendethiel moritz: disagreed WRT "lack of () means mention" 16:10
timotimo did you mean to disagree with masak? 16:11
vendethiel [16:26] <timotimo> where lack of () directly means mention instead of use [16:26] <moritz> same in JS and C
timotimo oh?
is that not the case?
vendethiel no, functions in JS does not correspond to their eta-expansion 16:12
which is really confusing
I mean that `a.b(c);` is not the same as `var f = a.b; f(c);`
timotimo oh? 16:13
o_O
well, JS is insane anyway :)
arnsholt Yeah, that sounds really weird. What's the difference?
timotimo i'd like to know, too
var f = a.b actually calls a.b()?
masak the this binding.
vendethiel In `a.b(c)`, `b` will have `this = a`
masak yes, it aclls the right function, but without the this binding. 16:14
vendethiel but in `f = a.b; f(c)`, f will have `this = global||window`
arnsholt Oooooooh, the infamous this
masak vendethiel: that doesn't mean that functions don't correspond to their eta-expansion, though.
timotimo ah
masak vendethiel: it just mean that if you don't call a method in the "intended" way, 'this' is busted.
timotimo right, that's what python has "bound methods" for 16:15
masak Python gets that very right.
timotimo and i'm glad perl 6 requires the user to create a closure that closes over the invocant.
masak I've yet to understand fully how it manages to get it that right.
timotimo that makes it both right and explicit and unsurprising
masak Go, from 1.1 or so, also gets this very right.
vendethiel (but go gets everything else wrong, so ...)
arnsholt googles bound methods 16:16
vendethiel that means that `a(function (b) { foo.bar(b); })` is not the same as `a(foo.bar);`
masak I don't like Ruby's solution, but I don't remember why.
16:16 colomon left
vendethiel that's what I mean by "eta-expansions doesnt correspond" 16:16
masak I think it was too in-your-face about bound and unbound methods.
timotimo how does ruby do it?
vendethiel .method :abc 16:17
masak vendethiel: you're just expecting that eta-expansion will be valid for method expressions. it isn't.
vendethiel masak: it's really sad we can't rely on eta-abstraction 16:19
arnsholt I guess it'll depend on what kind of lambda form objects and methods correspond to
I really, really should get around to reading SICP
timotimo what's your comments on the way perl 6 does "mentioning of methods"?
masak vendethiel: yes, it *is* a weakness of JS. 16:20
vendethiel you just can't rely on eta-conversion in JS
masak vendethiel: funnily enough, I've never seen a complete suggested solution to it.
vendethiel: nor to the hated problem with 'this' in nested functions.
vendethiel well, people who like that also like prototypal inheritance I guess :P 16:21
in coffee/ls we provide a solution for this in nested function
in ls we also have the bound access `a~b` which is `a.b.bind(a)`
masak so, like Python.
vendethiel I really don't know python well, so I'll have to take your word on that :). 16:23
any solution is better than no solution, though, but sometimes it gets even worse because browser vendors optimize `Fn.bind()` very, very poorly (especially v8) 16:24
which means JS library usually have to use their own `.bind()` not to suffer perf issues
masak vendethiel: 16:25
>>> class C:
... def foo(self):
... print "OH HAI"
...
>>> m = C().foo
>>> m()
OH HAI
16:28 cooper left
vendethiel masak: ls> f = (new class => c: (-> Math.random!); b: ~> @c!)b; console.log f! 16:29
0.504...
~> means bound method, -> is normal method
also using -> for b and then `)~b;` would work the same 16:30
16:30 pmurias joined
vendethiel can you rebind `self` in python 16:30
masak I like how we're really living in a "let a thousand flowers bloom" era of JavaScript-based languages.
vendethiel masak: it's just so easy to compile to JS 16:31
masak vendethiel: I think so -- 'self' is just a lexical symbol in the method.
vendethiel I like it, though.
masak vendethiel: but note that only the symbol is rebound. not the underlying object.
pmurias wouldn't the perl6 equivalent of the javascript foo.bar be taking the method out using the meta model? 16:33
masak yes, something like that. 16:34
.^can, for example
vendethiel masak: do you think that everything compiling to JS is a bad thing :) ? 16:35
masak vendethiel: oh, au contraire.
vendethiel tant mieux :)
masak vendethiel: I think the syntactic/semantic experimentation is very exciting. 16:36
vendethiel: and AFAIK it's actually informed ES6 a fair bit.
especially CoffeScript and TypeScript.
vendethiel masak: yeah, short function syntax etc come from Coffee
Brendan Eich likes it
I'm not sure TS did influence it alot, since it came some time after ... I don't really like Typescript anyywa 16:38
although it's better than dart which doesn't even typecheck, TS type system is unsound
and a type t is actually an untagged union t|null|undefined
16:39 cooper joined
masak so far, I'm more excited about TypeScript than about CoffeeScript. though both projects are doing an awesome job. 16:39
vendethiel I'm obviously biased ;). 16:40
masak :)
vendethiel I'm really excited about some other things like scalaJS or PureScript.
I'd be excited about GHCJS, but I don't think lazy evaluation works at all in the browser and is far too hard to simulate
timotimo how do you feel about fey and the other thing that compiles haskell to js?
ah 16:41
vendethiel ^ my last message
so other languages like bilby.js or PureScript that don't try to change every semantics is a better fit IMHO
last time I checked there were 3 haskell-to-js 16:43
timotimo i find it amusing, that the javascript camp seems to have completely made the suffix "script" their own
"UnrealScript, is that another javascript derivate?"
vendethiel I believe it is ?
timotimo i don't think so 16:44
vendethiel I think UnrealScript looks like AS2, doesn't it ? EcmaScript with types
I remember somebody asking us a coffee version that'd compile to unreal stuff
timotimo UScript is more like java, apparently?
vendethiel yeah, seems like it (+ c# and probably others with `out` thingie etc) 16:45
timotimo didn't pascal have "out"? 16:47
i think visual basic had it, too
oh well. what do i know.
vendethiel timotimo: if C# has a feature, I think VB has it too :p. 16:48
"do you like C syntax or do you like ada syntax ?"
which makes me think, is niecza still develop ? 16:49
(does it still have maintainers ?)
timotimo unfortunately not :(
it only occasionally gets brought up to date for simple changes to the spec
if you'd like to put some work into it, people would probably be happy 16:50
i know i would 16:51
vendethiel ah, I'm probably not good enough. I just wanted to know if perl6 still had a clr-compatible implem
timotimo hm, one of those days i should have a look if niecza can run all the benchmarks we have in perl6-benchmark 16:52
(still, those are mostly meaningless, but it'd still be nice to see how far it's still ahead of everything else we've got)
vendethiel timotimo: is it the most optimized backend ? 16:53
timotimo niecza has been built for speed from the ground up
vendethiel ah, I see. It's true that other implems are kinda slow :p. 16:54
timotimo "kinda"? :)
vendethiel built a Game of Life in perl6 which took like 1 sec to render one frame
timotimo: do you know how much slower is perl 6 (like p6-parrot) compared to perl 5 or other scripting languages? 16:55
timotimo niecza also has a JSON implementation that's based on some CLR thing 16:56
i can only tell you what our benchmarks show
unfortunately, those are almost exclusively microbenchmarks
16:56 ajr_ left
timotimo is some of those, the jvm almost reaches perl 5 when it's warmed up 16:56
but it's still very far away.
vendethiel by what, an order of magnitude? 16:57
timotimo and we have far too few benchmarks that actually give any meaningful measurements
16:57 guru joined
timotimo more than that, i think 16:57
16:57 guru is now known as Guest53547
timotimo "an order of magnitude" is "at least 10 times"? 16:57
in that case, much more than one.
16:57 Guest53547 is now known as ajr_
vendethiel 100 times slower :p ? 16:57
timotimo on a very good day perhaps 16:58
vendethiel I remember running a perl6 example from the advent calendar and killing it after a few minutes because I got tired :P
timotimo nqp alone doesn't reach anywhere near perl 5 and it's a bunch of times faster than rakudo itself
jnthn timotimo: That's not really true. Last I looked NQP on JVM beat Perl 5 at forest fire once it'd had chance to warm up. 16:59
timotimo oh?
that's news to me, but i'd be glad if you're right
jnthn Pretty sure I've seen that come up in the graphs a number of times.
tadzik well, the p6 forest fire is still awfully slow, even on jvm
timotimo i can go from my desktop to my laptop and let the desktop run perl5's benchmarks against the most recent nqp and rakudo benchmarks
jnthn Yeah, that one is. 17:00
timotimo: Yes, including Perl 5 runs in the benchmarks is generally helpful...
I've missed that in some of the recent ones I've seen.
BenGoldberg It would be pretty cool if someone could write perl6 versions of the benchmarks at shootout.alioth.debian.org/
timotimo i think it's generally sad :)
arnsholt jnthn: I've started looking at the invokedynamic instruction. That looks really quite interesting
tadzik doesn't trust that benchmark site
timotimo BenGoldberg: quite frankly, the shootout kind of sucks
tadzik I remember when Perl 5 people took one of the alioth benchmarks and rewrote it into something that wasn't completely stupid, and then shootout people rejected it because reasons 17:01
BenGoldberg Maybe, but at least the examples resemble "real world" problems, rather than being microbenchmarks.
vendethiel invokedynamic is gonna be huge
I think that's thanks to the jruby guy, who does really is insane with the JVM 17:02
jnthn arnsholt: Yes, I think we've only scratched the surface of what we'll be able to do with it so far :)
vendethiel I really hope that'll make scripting languages more competitive and people won't just dismiss them even for scripting
tadzik do they ever? 17:03
vendethiel tadzik: do they ever ? 17:04
tadzik I don't think I get the "dismiss them even for scripting"part
BenGoldberg I think it's been a long time since people dismised a language simply because it was a scripting language.
vendethiel BenGoldberg: because they're far slower is what I meant 17:05
tadzik every day I see "scripting" languages used in big, serious projects because of the flexibility and cheap development cots
cost, even
vendethiel tadzik: directly integrated ?
tadzik and _then_ they lament about performance
vendethiel: what does "directly integrated" mean?
vendethiel tadzik: I mean in the main program
tadzik they _are_ the main program 17:06
I don't mean "used as a scripting part in a bigger project", no
timotimo i would welcome some examples for embedding moarvm in bigger programs btw :) 17:08
arnsholt jnthn: Mostly unrelated: How big of an undertaking do you estimate it is to remove the string serialization step of JAST to bytecode compilation?
BenGoldberg complaining about performance after getting one's program to produce correct output is perfectly normal. Just rewrite hot parts of it in C.
vendethiel Well, I just hope the smart minds have ideas on how to make moar/jvm/etc run faster :)
BenGoldberg: that seems like an awful idea :)
timotimo vendethiel: they do have those ideas :) 17:09
jnthn arnsholt: Not overly bad; just need to traverse the JAST tree, and we know the attribute offsets so it'll even be farily cheap to walk it. 17:10
arnsholt: It's probably no worse than a couple of days work.
timotimo what is that "string serialization" thing all about?
arnsholt It's a fossil from the earliest days of the JVM backend 17:11
timotimo what's the effect? way too big .jar files? way too slow compilation?
jnthn Back in the early days, NQP was run on Parrot to produce JAST, which was dumped to text, which in turn was parsed by a program on the JVM and assembled into bytecode 'cus the JVM already had libraries for this. 17:12
timotimo ah
jnthn So once NQP ran on JVM the expedient thing to do was just do the same but call it "in process"
timotimo ah, right, that's not so optimal :)
jnthn With the intent that some day, when things worked, somebody would take the time to remove the inefficiency. :)
timotimo arnsholt: seems like a good little project :) 17:13
the jit will probably be happy about that change as well 17:14
arnsholt jnthn: What do you mean by "we know the attribute offsets", BTW? 17:15
Presumably something clever we can do to extract the attributes of the different nodes? 17:16
jnthn arnsholt: The hint, passed to getattribute.
arnsholt: So the switch inside there will always work out.
arnsholt: And the field lookup should be quite cheap.
17:18 ggherdov_ left, ggherdov_ joined, ggherdov_ left, ggherdov_ joined
timotimo jnthn: what indicator are you waiting for for the moar-conc merge? 17:18
arnsholt Oh, right. So the code should presumably cache the nqp::attrhintfor for the various things? 17:20
jnthn arnsholt: Yeah, or given how JAST is quite stable even hardcode 'em :) 17:21
timotimo if you have a nqp::getattr in your code and the class and attribute name are compile-time-constant, the compiler will already try to calculate the hint
jnthn timotimo: We're talking about doing this in Java code here:)
timotimo oh 17:23
of course
arnsholt Yeah, I'm starting to see how this would work
timotimo in that case the JIT will be even happier :)
17:23 pmurias left
timotimo starting the perl5 benchmarks now 17:23
arnsholt I guess there's a bootstrap update in there. First implement non-serializing compile (and making sure it works), then update bootstrap to not use it at all, finally remove the offending code 17:24
jnthn yeah, something like that. 17:26
timotimo hm, how do i install Data::Alias so that the perl5 i built for the benchmark will find and use it?
17:28 rindolf left
moritz timotimo: preferably with the 'cpan' program that came with that perl5 17:29
timotimo where do i find that?
find find . -iname 'cpanm' comes up empty 17:30
jnthn perl -MCPAN -e 'install Data::Alias' # iirc
timotimo er
sorry, you meant "cpan" and not "cpanm" 17:31
jnthn
.oO( MC PAN sounds like a cooking rapper... )
timotimo jnthn: so, when will you consider merging moar-conc? will time-based scheduling be a requirement? 17:34
jnthn timotimo: Going to get the supplies tests cleared up and fudge the time-based ones, then will consider a merge at that point. 17:37
timotimo: Note that the whole thing should be considered quite experimental at this point.
timotimo aye
and experiment with it i shall :)
jnthn timotimo: It's going to take us a good bit more work to get it trustworthy :)
timotimo aaw 17:38
jnthn But I figure getting it out there is the quickest way to learn how it fails :)
timotimo: There are bits of the VM I know don't do the appropriate stuff yet.
timotimo sounds good to me
jnthn We can't promise the right answers if you write code that contains data races. But we do need to promise the VM won't explode :) 17:39
timotimo of course 17:40
17:44 hoverboard joined
timotimo vendethiel, jnthn, others: t.h8.lv/p6bench/2014-03-09-every_perl.html 17:51
(this is pre-flatten-fastpath) 17:52
vendethiel timotimo++
timotimo i think i'll replace the moarvm in that file with the flatten_fastpath one 17:55
hm. i don't have a nqp-flatten_fastpath
ah well. in that case i won't do it.
it'll turn up in 2014.03 anyway
needless to say i'm still quite annoyed by the humongous performance difference between the NQPs and the rakudos 17:58
the type specializer in moarvm will likely have quite an effect on the nqp side as well as the rakudo side, but the effect may very well be much stronger on the rakudo side 18:00
that's highly speculative, though
jnthn: ^ does that seem sensible to you?
jnthn timotimo: Well, teaching the specializer about the multi-dispatch cache will likely also be a huge win for Rakudo. 18:02
timotimo how close will rakudo come to the current nqp timings, what do you figure? 18:03
18:03 [particle] joined
jnthn Anyway, the results kinda support what I was saying: NQP JVM does beat out Perl 5 in some cases. 18:03
Heck, on forest fire NQP Moar is coming out within a factor of 4. o.O 18:04
timotimo: Hard to say. In the long run, I'd like it to beat the current NQP timings :P 18:05
timotimo i would like that, too
18:05 kivutar joined
timotimo i suppose that's what you get if "everything is an object" and you're doing method calls all the time for everything 18:06
18:06 beastd joined
vendethiel some numbers seem pretty impressive though 18:06
and not 100* slower 18:07
jnthn pauses from $dayjob tasks (yes, on a Sunday...) to make some dinner
arnsholt Is there a simple explanation for the sudden drop in performance on Parrot for some of the tests?
timotimo you did notice each step on the y axis in there is a 2x improvement?
vendethiel while_array_set, jvm drops somehow
timotimo rc-forest-fire, rakudo-moar 794x slower than fastest
rakudo-jvm: 1677x slower than fastest 18:08
camelia rakudo-jvm 1aeb7c: OUTPUT«===SORRY!=== Error while compiling /tmp/I53zpmd1ZJ␤Confused␤at /tmp/I53zpmd1ZJ:1␤------> 1677⏏x slower than fastest␤ expecting any of:␤ whitespace␤»
vendethiel hahahah yeah
timotimo i'm glad that using native types for the visit_2d_indices tests gives our nqps a litle push beyond perl5 18:09
jnthn On multi-dispatch, I've figured out that if for onlystar ones we incorporate the cache looking into the invocation protocol stuff, we can get a nice win on all those. And since Perl 6 is built out of multi calls, I think it'll help a good bit. 18:10
timotimo i don't really understand that suggestion. is that a whole lot of work?
can we do it very soon? 18:11
jnthn timotimo: Yeah, needs guts work on all 3 backends... 18:20
timotimo is not sure he has what it takes :P
jnthn I suspect I can get to it in April. This month, after merging moar-conc, I need to focus on things that block us from having JVM Star and Moar Star.
timotimo also, i have no idea what that stuff entails exactly
jnthn I'll try to see the native call stuff on Moar in the next few days. 18:21
*seed
arnsholt jnthn: Speaking of JVM star, I've also been thinking of storing "how to compile C things" in a properties file in the NQP JAR, extracted from Perl's info in Configure.pl. That sound reasonable to you?
timotimo ooooh :)
jnthn timotimo: Yes, sounds decent. 18:22
uh
arnsholt: ^^
timotimo jnthn: on which backend would the guts work needed be least terrifying? 18:23
arnsholt Spiffy
18:23 Mouq joined 18:26 ushmar joined
arnsholt I'll try to get that done before digging into the JAST stuff, since it's a star blocker 18:26
18:38 ajr_ left 18:42 pippo joined 18:46 stevan_ left 18:48 stevan_ joined
Mouq Input please, for how a module that ships <EXPR> might work: gist.github.com/Mouq/9452638 18:57
18:57 ushmar left
Mouq ss/might work/might be interfaced/ 18:57
19:00 stevan_ left 19:01 stevan_ joined 19:02 stevan_ left, stevan_ joined, btyler joined
lue <lizmat> the Perl6:: modules are not in a Perl6 subdirectory, unless the author has put them there 19:03
How is that a good solution for separating P5 and P6 modules then?
19:05 xenoterracide joined, __thou joined 19:06 zakharyas left
FROGGS lue: this sentence is about Perl 5 modules that are in the Perl6 namespace 19:07
like modules provide a Perl 6 feature for Perl 5 19:08
lue FROGGS: yes. I'm worried that the Perl6 subdir is a bad solution, if it's possible for existing P5 modules to be there.
FROGGS I don't even know how to fiddle with these dirs 19:09
but I will find out
19:09 Sqirrel joined, dpopovski joined 19:17 raiph joined 19:20 darutoko left
Mouq Expanded: gist.github.com/Mouq/9452638 Would anyone use this? Is it simple and usable enough? 19:31
*use Grammar::Precedence or whatever it'll be called 19:34
masak Mouq: looks nice. 19:35
jnthn Mouq: Not too sure on the API for specifying the precedence levels
lue Mouq: looks good to me. I just imagined another grammar out there in the wild that goes "grammar Algebra is Arithmetic" :)
masak Mouq: nice. reminds me of strangelyconsistent.org/blog/what-y...nt-without long ago.
jnthn I think infixish and prefixish should probably be provided by the role also, as defaults. 19:36
postfixish too
Mouq masak: Ah, GGE::OPTable looks like one of the wheels I was trying to re-invent 19:38
jnthn: I agree about them being defaults
jnthn: Figuring out an API has been tricky
jnthn: It may just be best to do what STD and Rakudo do, and have a bunch of hashes (or psuedo-hashes) 19:40
jnthn Mouq: Yeah. Well, follow STD rather than Rakudo, since Rakuod still does the string hack
Mouq jnthn: But having the precedence table as an attribute of the Grammar has benefits
jnthn Mouq: True. May be able to keep that... 19:41
perigrin 23 19:42
*sigh*
moritz www.usenix.org/system/files/1403_0...ickens.pdf # hilarious rant about browsers (PDF warning, and warning about 7 pages thereof) 19:43
vincent22 cannot get the address of a method:
Mouq Ok. Thanks guys, this gives me more food for thought. I'm off to get food for lunch while that digests
vincent22 r: class c {method b { say "wow"}}; my $b = c.b; $b();
camelia rakudo-jvm 1aeb7c: OUTPUT«wow␤No such method 'postcircumfix:<( )>' for invocant of type 'Bool'␤ in any at gen/jvm/BOOTSTRAP.nqp:1680␤ in any at gen/jvm/BOOTSTRAP.nqp:1663␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-parrot 1aeb7c: OUTPUT«wow␤No such method 'postcircumfix:<( )>' for invocant of type 'Bool'␤ in any at gen/parrot/BOOTSTRAP.nqp:1692␤ in any at gen/parrot/BOOTSTRAP.nqp:1674␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-moar 1aeb7c: OUTPUT«wow␤Cannot find method 'postcircumfix:<( )>'␤ in block at /tmp/tmpfile:1␤␤»
vincent22 r: class c {method b { say "wow"}}; my &b = c.b; &b(); 19:44
camelia rakudo-parrot 1aeb7c, rakudo-jvm 1aeb7c, rakudo-moar 1aeb7c: OUTPUT«wow␤Type check failed in assignment to '&b'; expected 'Callable' but got 'Bool'␤ in block at /tmp/tmpfile:1␤␤»
jnthn vincent22: You're calling the method.
masak Mouq: just as well you reinvent that wheel. GGE is day-before-yesterday's technology at this point.
Mouq: but it represents a world order I hope we reinstate at some point: direct introspective access to Perl6::Grammar.
vincent22 jnthn: I want to get the adress and later to call it
moritz use .^can('methodname')[0] for that 19:45
jnthn .^find_method('methodname') avoids the index :)
Or just wrap it in a closure
{c.b}
Then you capture the invocant too 19:46
vincent22 Thank you
r: class c {method b { say "wow"}}; my &b = {c.b}; &b();
camelia rakudo-parrot 1aeb7c, rakudo-jvm 1aeb7c, rakudo-moar 1aeb7c: OUTPUT«wow␤»
vincent22 OK
jnthn If your varialble is called &b you can also just invoke using b() :)
19:47 hoverboard left
vincent22 Thanks for the help 19:47
19:52 dpopovski left 19:59 lichtkind joined
lichtkind hyper hyper op doesnt behave like specced 19:59
20:00 virtualsue joined
FROGGS lichtkind: example? 20:00
20:01 kvakerman joined
lichtkind FROGGS: almost none of syn example work as intended but i do now recompile to make more accurate report 20:02
FROGGS k 20:04
masak r: class Shiba { method inu { "wow" } }; my &doge = { Shiba.inu }; say doge
camelia rakudo-parrot 1aeb7c, rakudo-jvm 1aeb7c, rakudo-moar 1aeb7c: OUTPUT«wow␤»
masak so meme.
vendethiel please don't :(. 20:05
masak .oO( please doge't ) 20:06
lue I can't find any detail on this, but I don't suppose there's a way for me to tell the CPAN multiverse not to make my real name public, were I to get an account on it, is there? 20:07
perigrin don't give it you're real name to begin with
?
lue (I'd much prefer if I didn't have to share it with PAUSE in the first place, but instincts tell me that's a solution that won't happen)
perigrin: it's a requirement though. For some reason. 20:08
lichtkind cheers masak
perigrin metacpan.org/author/CHROMATIC
lue: ^^^ really?
metacpan.org/author/BARBIE # another example 20:09
FROGGS lue: just type in your nick in that field
lue perigrin: that's curious. You have to provide a real name on the signup sheet.
FROGGS lue: just lie :o)
perigrin lue: you have to provide a *string* on the signup sheet.
nothing is forcing that string to be your real name.
lue FROGGS: I was under the impression that the registration was hand-processed, and I don't think "Life U. Everything" will pass muster :P 20:10
perigrin lue: second step find a friendly Pause Admin
and explain your situation
FROGGS lue: I can walk to they guy who would hand-process it if this would be the case :o)
lue Well, I should perhaps pick a less-obvious fake name in any case, but you get the general idea :) 20:11
perigrin lue: Actually I wouldn't.
FROGGS lue: just use "lue" too, that will work out
lue FROGGS: needs a space in the civil name though :/
FROGGS ahh :/ 20:12
perigrin metacpan.org/author/CHOCOLATE
lue at least on registration, maybe not when changing names
I just would like to know why CPAN requires a real name, when AFAICT it's not actually necessary.
perigrin lue: metacpan.org/author/AMD
I'm pretty sure you can't get more spaces than that.
again you're using this phrase "requires" that seems to be ignoring the reality 20:13
I've given you at least four examples that bely the use of "requires" there.
:)
lue perigrin: yes, I realize now I can change my real name at a later date somehow, but the registration form still insists on a real name.
perigrin metacpan.org/author/DAHUT 20:14
Mouq lue: L U E?
lue "Your full name (civil name)" which talks about spaces.
perigrin lue: when I got my PAUSE ID they were suggesting that the id should be something first initial + last name ... so in my case CPRATHER 20:15
obviously that wasn't *that* required either :)
lue perigrin: I can see now that I can get around providing an actual real name, and somehow change that field after registration if desired.
perigrin nods
lue I'm just now curious in the more-abstract question of "why *require* a full name in the first place, or at least say you do?"
perigrin because in 2003 it seemed like a good idea. 20:16
well no in 1995 it seemed like a good idea, by 2003 they'd discovered it wasn't
but haven't fixed it since.
so "John Smith" :) 20:17
lue "Poor Peter, please remember you do have a second name"
perigrin: I'd probably want a more obvious Doctor Who reference though. :) "Θ Σ"
perigrin funny you don't type like an ood. 20:18
I think the original intent was some kind of ... verifiability / professionalisim / accountability 20:19
lue (I should note I'm not defiantly opposed to giving out my full name; I'm just incensed that I'm seemingly required to do it in a context where it's unnecessary. I had issue putting such info on my CLA, as an example.")
*I had no issue
perigrin: I wasn't referencing the ood there :)
perigrin: what really strikes me as weird about the "real name" thing is that I'd expect that from sites nowadays, not sites from the era of "pseudonyms are A-OK and have you been on our newsgroup yet?". Though I can see the verifiability etc. thing. 20:21
perigrin pseudonyms were always a bit weird
I had the same reaction you did when I wanted PERIGRIN for my pauseid
luckily I had a friendly Pause Admin right there who just approved it 20:22
lue Now my question is if I should defiantly get a PAUSE ID now, or only after Perl 6 modules are supported by the infrastructure. :) [I don't do Perl 5, infinitely less to a module-writing level] 20:23
20:25 hoverboard joined
dalek nda/depends: 17b6624 | (Tobias Leich)++ | / (5 files):
add "bundle" target that will create a tarball for uploading

It builds and tests the project in cwd to reveal its dependencies, tries to get its hands on the distribution name and description, and proposes a META.info file with this just collected information.
Sadly the used prompt() segfaults on moar and besides that we need to autodiscover the types it is going to provide, similar to the dependency check.
20:28
Mouq FROGGS++ 20:30
FROGGS I am almost prepared for wednesday \o/
20:31 Rotwang joined
lue FROGGS: how far away do you think we are from P6-on-CPAN ? I'm wondering when I should register my PAUSE account with an obviously fake name. 20:32
Mouq So.... Can we have `use v6.X` yet? even if it's just `use Perl6:git<Karlsruhe-89-g1aeb7c3>`?
Well, no that doesn't make sense 20:33
FROGGS lue: do register, I can't really say when all is merged, but my hope is that it happens in no longer than two months 20:34
Mouq: hehe, I thought the same :o)
lue FROGGS: alright, here comes mister "Life U. Everything" for an account! :)
FROGGS yay! :o) 20:35
Mouq I suppose v6.* would refer to the Spec version that the impl follows.. so..?
FROGGS Mouq: yes, and this would mean we give the spec a concrete number, and that rakudo implements all of it (and the stuff that does not work is just a bug) 20:36
Mouq FROGGS: Rakudo versioning would be nice, though 20:37
FROGGS we have tags
20:37 colomon joined
FROGGS so it would be more like: use v6:auth<Rakudo>:ver<2014.02> or something similar 20:38
Mouq I think that would be good 20:39
lue Hm. If I'm able to edit my "Full Name" after getting a PAUSE ID (evidenced by things such as www.nntp.perl.org/group/perl.module...988.html), would it be better for me to belligerently give a fake name now, or would it be better to give my real name (or something that looks like one) and change it later?
20:49 btyler left
Mouq perlcabal.org/syn/S22.html 20:50
lichtkind FROGGS: ping 20:51
r: say (3,4,5 <<+<< 1) 20:52
camelia rakudo-parrot 1aeb7c, rakudo-jvm 1aeb7c, rakudo-moar 1aeb7c: OUTPUT«3 4 6␤»
lichtkind yeah same as here
should be 4
Mouq O_o
lichtkind according to syn
Mouq Ohh
20:52 vincent22 left
Mouq I thought the output was 3 5 6 20:52
20:53 jakesyl joined
jnthn Precedn^Hence 20:53
Mouq lichtkind: Where does it say that?
jnthn r: say (3,4,5) <<+<< 1
camelia rakudo-parrot 1aeb7c, rakudo-jvm 1aeb7c, rakudo-moar 1aeb7c: OUTPUT«4␤»
lichtkind ah
jakesyl is this a dead project?
Mouq jakesyl: Nope
lichtkind what is dead?
jakesyl Sorry, python fan here, and leaving 20:54
jnthn Apparently, not this project :) 20:55
lichtkind jakesyl: dont worry its curable :)
thanks mouq
Mouq points timotimo out
20:55 jakesyl left
lichtkind yes timo like python too seen a talk from him 20:56
20:56 btyler joined
jnthn Most folks here work with quite a range of technologies. :) 20:57
Or many folks, at least. 20:58
FROGGS lichtkind: pong
BenGoldberg nr: my $i = 0; my $x := Proxy.new: FETCH => { print "(",++$i,")"; '!' }; print "<"; print $x ~ '?'; say ">"
camelia niecza v24-109-g48a8de3: OUTPUT«(1)<(2)(3)!?>␤»
..rakudo-parrot 1aeb7c, rakudo-jvm 1aeb7c: OUTPUT«<(1)(2)(3)(4)!?>␤»
..rakudo-moar 1aeb7c: OUTPUT«<(1)(2)(3)(4)(5)(6)(7)!?>␤»
Mouq Just grepped the specs, I don't see anywhere that the precedence issue for hypers like that comes up :)
arnsholt jnthn: I've had a look at the "how to compile stuff" stuff in Perl's Config.pm, and with a bit of luck I've found what we need
Mouq p6: [[1, 2], 3] «+» [4, [5, 6]] 20:59
arnsholt My day is pretty full tomorrow, but might be able to get some hacking in Tuesday
camelia ( no output )
Mouq p6: say [[1, 2], 3] «+» [4, [5, 6]]
camelia rakudo-parrot 1aeb7c, rakudo-jvm 1aeb7c, rakudo-moar 1aeb7c, niecza v24-109-g48a8de3: OUTPUT«5 6 8 9␤»
Mouq That's pretty cool
jnthn arnsholt: yaya :)
*yay, even 21:00
jnthn is hoping to have a better tuit supply this next week than in the last week, despite teaching :)
FROGGS giggles 21:01
I will have tuits this week :o)
lue will go with the obviously fake "Life U. Everything" on PAUSE unless someone stops him. 21:03
lichtkind FROGGS: Mouq++ laready helped me out, was my braino
my p6 talk is now almost complete, everything else will be polsih
polish
jnthn lichtkind: Will they understand polish at the German Perl Workshop? :) 21:04
colomon JSON5::Tiny?
FROGGS k
Mouq colomon: :P what about it?
lichtkind jnthn: when not i have to invade their brains :) 21:05
colomon Mouq: wondering what it is. (Especially since I just started using JSON::Tiny in prototype production code.
)
Mouq colomon: Ahh, ok. :) json5.org/ 21:06
colomon Mouq++
lue Actually, before I register for PAUSE, I'd still like to know how CPAN will be modified to handle Perl 6's author and version stuff (e.g. it makes no sense for any given person to "own" a Perl6 module name, because of the :auth<> thing) 21:13
lichtkind noone knows 21:22
arnsholt In large part because noone knows exactly how Perl 6 modules are going to work, in the end =) 21:23
21:24 virtualsue left
FROGGS lichtkind: well, we have ideas about that 21:25
Mouq r: role Awesome {method gist (|p) {"An awesome "~callsame(|p)}}; my $x = {A => 42, B => 57} does Awesome; say $x
camelia rakudo-parrot 1aeb7c, rakudo-jvm 1aeb7c, rakudo-moar 1aeb7c: OUTPUT«An awesome ("A" => 42, "B" => 57).hash␤»
FROGGS and since we are in charge to prive our way of indexing, we can allow several same named modules by different authors 21:26
lue FROGGS: I plan on trying to formally release one of my modules in the near future (both for CPAN and because it seems like good practice ☺); is =VERSION/=AUTHOR still the way to specify those things, or is there something on the P6 language braid for that.
FROGGS s/prive/provide/
=VERSION and =AUTHOR is not yet used
and I don't think we are going to use that soon 21:27
lue FROGGS: oh, we'll be the ones deciding how P6 modules are sorted out on CPAN? That essentially answers that :) . 21:28
FROGGS lue: that is how I understand it, yes
lue I'll just go ahead and make my PAUSE registration then; that's the only big thing I was concerned about. 21:29
FROGGS: will =VERSION/=AUTHOR ever be supported, or is META.info sufficient for that? 21:34
lichtkind thanks guys for help will be soon out 21:35
FROGGS lue: META.info is just for the thing you upload to PAUSE, but we need a way to introspect a compilation unit, and that is where =VERSION/=AUTHOR would be handy
perl6-m -e 'shell q{perl6-m -e "prompt 1"}' 21:38
1Segmentation fault (core dumped)
jnthn Which process SEGVs? 21:39
FROGGS the inner 21:40
and I am unable to gdb it :/
because it somehow closes gdb's prompt
maybe it also reaps the stdin of the inner process
hmmm, we are ignoring the STDIN of the child... 21:42
21:43 kaare_ left
FROGGS jnthn: yes, inheriting seems to do the trick 21:44
Mouq r: role A { has %.table is Set }
camelia rakudo-parrot 1aeb7c: OUTPUT«use of uninitialized value of type Any in string context in any at src/Perl6/World.nqp:1661␤␤use of uninitialized value of type Any in string context␤===SORRY!=== Error while compiling /tmp/tmpfile␤Can't use unknown trait 'is …» 21:45
..rakudo-moar 1aeb7c: OUTPUT«use of uninitialized value of type Any in string context␤Unhandled exception: No exception handler located for warn␤ at <unknown>:1 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:print_exception:4294967295)␤ from src/gen/m…»
..rakudo-jvm 1aeb7c: OUTPUT«use of uninitialized value of type Any in string context␤Unhandled exception: use of uninitialized value of type Any in string context␤ in warn (gen/jvm/CORE.setting:689)␤ in warn (gen/jvm/CORE.setting:685)␤ in Str (gen/jvm/CORE.setting:1037)␤ …»
jnthn FROGGS: But do we want to inherit?
Mouq Not at all annoying
jnthn FROGGS: I get it to crash here.
FROGGS jnthn: dunno, do we?
jnthn FROGGS: Well, it crrashes here in syncfile.c:eof
FROGGS I would think we need to hand over our STDIN
jnthn if ((r = uv_fs_lstat(tc->loop, &req, data->filename, NULL)) == -1) 21:46
MVM_exception_throw_adhoc(tc, "Failed to stat in filehandle: %d", errno);
21:46 Khisanth left
FROGGS hmmm, works fine here now 21:46
jnthn It assumes there's a ->filename, but if we got the handle from a file descriptor, there won't be.
Well, should fix the bug regardless...
21:47 Khisanth joined
jnthn FROGGS: gist.github.com/jnthn/9455271 21:50
benabik Doesn't segfault here, but doesn't wait for input either.
masak 'night, #perl6
Mouq night masak! 21:51
21:56 [Sno] left 22:00 [Sno] joined 22:04 virtualsue joined 22:16 hoverboard left 22:18 pecastro left 22:21 spider-mario left, hoverboard joined
timotimo 'night masak! 22:24
Mouq github.com/Mouq/Grammar-Expression Now for the hard part... 22:25
22:40 pecastro joined
lizmat lue: before we turn the /Perl6/ subdirectory into "law", we will check if there are any authors on PAUSE who created such a subdir 22:45
and if so, we will decide there and then how big a problem that would be
lue lizmat: If necessary, there's also /Perl_6/, /P6/, /»ö«/ ... :) 22:46
22:46 raiph left
lizmat indeed 22:46
and who knows, if an author has done so in the past, it could be exactly the right thing that author did "avant a lettre"
*la
22:46 pmurias joined
timotimo what does that mean? 22:47
lue timotimo: "before the letter", though I assume deeper idiomatic meanings :)
dalek kudo-star-daily: a3f1162 | coke++ | log/ (5 files):
today (automated commit)
rl6-roast-data: 245625c | coke++ | / (6 files):
today (automated commit)
22:48
lizmat before it was a rule
before it was written
pmurias it would be nice to have irc.moarvm.org redirect to the moarvm channel irc log
lizmat in a way, prior art
timotimo ah 22:49
lizmat en.wiktionary.org/wiki/avant_la_lettre
lue I get the feeling CPAN might not appreciate /»ö«/ , though it's the most obvious "something different happens here" name :P 22:50
lizmat as long as rsync can filter on it, it should be ok
that's the most important reason for creating a subdir with a distinctive name
timotimo jnthn: apparently the Lock class on rakudo.jvm b0rked; No such method 'condition' for invocant of type 'Lock'
(i thought these changes only happened in moar-conc?) 22:51
pmurias lue: actually it still makes sense for someone to own a module name on CPAN for perl 6
lue [ I think I'll respect the Basic Authentication System and not force a "log out" of PAUSE; feels kinda cool to interact with such an old thing :) ]
pmurias: to word my concern better, "we shouldn't force unique module names across authors" 22:52
pmurias I would still like to have 'use Foo::Bar' use a sensible Foo::Bar 22:53
and the spec mentiones a cpan auth
lue pmurias: if you only installed one Foo::Bar, it will :) The point of :auth (and to a smaller extent :ver) is to keep from restricting module name choices on a universal basis.
it can be any kind of author identifier, doesn't have to be a CPAN one. 22:54
pmurias there is a cpan auth identifier
pmurias rechecks the spec 22:55
lue yes, I'm just saying that :auth can hold any kind of identifying name, of which CPAN is one.
timotimo i thought it meant "if you specify :auth<cpan> you get the version that someone claimed on cpan" 22:56
pmurias that's what I assumed, but it hasn't been mentioned anywhere 22:57
timotimo ok
lue never seen that in the spec before.
pmurias there is :auth<cpan:PMURIAS>
lue always saw it as :auth<cpan:JRANDOM>
timotimo oh, ok
pmurias but having an official cpan author seems really helpfull 22:58
timotimo i'm not at all sure how to handle that 22:59
lizmat lue: wrt "Actually, before I register for PAUSE, I'd still like to know how CPAN will be modified to handle Perl 6's author and version stuff (e.g. it makes no sense for any given person to "own" a Perl6 module name, because of the :auth<> thing)"
timotimo if we have a way to change which one gets "the cpan auth", people's code will break if they rely on one specific version
lizmat the "owner" of a Perl 5 module is just the author of the version of that module that lives in the module list
lue timotimo, pmurias: my emerge inspiration strikes again, and says "if the name's the same, force the prospective installer to disambiguate" 23:00
timotimo if we only use that power to change from unmaintained versions to maintained forks, that'd be fine
lizmat the Perl 5 module list
Perl 6 modules will not be in there
timotimo lue: in that case, if someone decides to upload a module, user's code will break, too :)
lizmat we, as a community, need to figure out *if* we want to do that, and if so, *how* we want to support the "official" version of a module
lue timotimo: not unless they simply *must* install every author's Foo::Bar :)
pmurias lue: and how is the prospective installer supposed to choose?
23:00 Mouq left
lue pmurias: installer presents a list of choices (Foo::Bar:auth<cpan:JRANDOM>, Foo::Bar:auth<cpan:LWALL>, ...) 23:01
23:01 Mouq joined
lizmat the perl 5 installers just read the Perl 5 module list that says: e.g : Thread::Queue::Any -> ELIZABETH/ThreadQueueAny.tgz 23:01
pmurias lue: and which of those is the correct one? 23:02
lue pmurias: depends on what the person choosing needs.
lizmat a perl 6 module installer could also read such a list (if there is going to be any)
timotimo and how will they figure that out?
and what if they are getting that module as a dependency from some other module?
lizmat that's why we need to figure out how to specify that in META.info
lue timotimo: some sort of recommended module thing might be good there, though at least from my emerge-inspiration, you tend to know already. 23:03
lizmat unlike Perl 5, we can "freeze" dependencies to a specific author / version
lue As a side note, I'm OK if we discover we can't sanely support duplicate module names, I'm just arguing off what the synopses currently allow for :) 23:04
timotimo but can we say "the module that was 'the official module' as of 2014-05-04'"?
lizmat so, each modules dependencies could almost have their own "universe" of dependencies
timotimo oh no, i'm all for allowing duplicated names
lue timotimo: presumably we won't record it as "offical module", but resolve it first.
timotimo something corecatcher made me aware of is that cpan is supposed to get a better model for forking other people's modules so you can "become the new maintainer" 23:05
lizmat timotimo: if that is the version number
lue tr/official module/module v0.1 by JRANDOM/ , essentially
pmurias timotimo: it's possible to hand over modules on cpan
timotimo: currently 23:06
lizmat pmurias, timotimo: again, this is only really about what module is in the (Perl 5) module lust
timotimo hmm
lue wonders if portage's SLOTs thing is analogous to P6's auths
timotimo hm, i don't think so
lizmat so suppose I want to hand over my module Thread::Queue::Any to JRANDOM, the *module list* entry would chanfe
change
timotimo slots is about having multiple major versions installable at the same time
lizmat from ELIZABETH/ThreadQueueAny.tgz to JRANDOM/ThreadQueueAny.tgz 23:07
lue I wonder if we can adopt CPAN-for-P5's "maintainer" as a way of pointing to the recommended, instead of only, module with that name for CPAN-for-P6. 23:09
timotimo: I'm aware, I was just thinking if the two can be conceptualized the same way.
lizmat well, technicall, every author is the maintainer of the distributions that were uploaded 23:10
it's more a recommendation list I guess, for Perl 6
timotimo hmm
lue timotimo: thinking of some eix-like thing that lists stuff as Foo::Bar \n (JRANDOM) 0.1 0.2 0.2-r1 \n (FOOBAR) 1.5 2.0 23:11
timotimo should we have sections of "documentation" that would be collected and pushed in the user's face?
(one piece for developers, one for users perhaps)
pmurias pushed in the face when?
lizmat we can think about that, but the most important thing to me
timotimo when panda is finished installing a bunch of packages
lizmat is to get the basic PAUSE / CPAN-testers machinery in such a state that Perl6 distributions can be uploaded 23:12
for that, we need cooperation from the right guys
timotimo right, the rest is probably bikeshedding
lue timotimo: something like "documentation can be accessed with perl6 --doc=Man -MFoo::Bar" ?
lizmat after that works, we can start figuring out which installer is going to use what meta-info from PAUSE
pmurias seems sensible 23:13
lue lizmat: agreed, we should prioritize just enough to make things work at all.
timotimo lue: something like "thank you for installing Foo::Bar. it can be used to Foo your Bars. For more information call perl6 --doc=man -MFoo::Bar"
lichtkind timotimo: seen your talk on youtube lately, a bit disorganized but not bad
lizmat sleep&
timotimo absolutely disorganized, aye
23:14 tgt left
pmurias link? 23:14
lue timotimo: I could see some sort of oneliner key in META.info for that perhaps :) Though hopefully you can standardize the "how to access" message.
timotimo it's in german unfortunately, pmurias
lue lizmat o/
timotimo and the "slides" (rather: the output of my display) was very hard to read on the projector
only in the recording, though
Mouq r: {$^a}(1,:test) 23:15
camelia rakudo-parrot 1aeb7c, rakudo-jvm 1aeb7c, rakudo-moar 1aeb7c: OUTPUT«Unexpected named parameter 'test' passed␤ in block at /tmp/tmpfile:1␤␤»
23:16 virtualsue left 23:21 denis_boyun left 23:25 Rotwang left 23:26 dmol left
timotimo do we have something like "try to decode this as utf-8 and whenever there's some garbage data, put in the replacement character/throw an exception/call this closure with the data/..."? 23:31
23:31 lichtkind left 23:32 pmurias left
dalek ecs: 2be6bfa | (Timo Paulssen)++ | S32-setting-library/Containers.pod:
just a tiny whitespace fix.
23:38
timotimo just doin' my daily contribution 23:39
:P
TimToady: i'd like to get your opinion on how to handle decoding trouble (and maybe encoding trouble as well?) 23:40
docs.python.org/2/howto/unicode.htm...icode-type this is python's prior art, see the second blob of code for the "errors" named argument 23:46
23:48 beastd left
timotimo additionally there's a errors argument for the encode method named "xmlcharrefreplace" 23:49
which is kind of neat
lue timotimo: sounds like a useful thing for encode, though just to be different maybe call it :fallback instead of errors :) 23:50
timotimo right. 23:52
TimToady just make it flexible enough that you can replace either with something fixed, or something that encodes the value some other way that is legal #BAD[FFFF] or some such 23:54
timotimo aye.
that'd be the "call this closure" variant i've suggested
unicode already specs a replacement character for encoding errors, iirc 23:55
TimToady: though i had hoped you'd actually come up with some sensible wording :) 23:56
Perl 6 needs to be a beacon of hope WRT encoding/decoding and handling buffers vs strings 23:57
TimToady is a bit daylight-savings-time-lagged today... 23:58
timotimo i think in the future i really need to rub some coins and bills on my face 23:59