»ö« 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.
00:01 xinming_ joined 00:02 xinming left
dalek kudo/moar-support: bd292ae | jnthn++ | src/main.nqp:
Warnings from END time shouldn't explode.
00:02
00:07 Entonian joined
TimToady japhb_: I'm not convinced that it's necessary to shoehorn every harebrained getargs policy into MAIN, especially when you have complete access to @*ARGS before main is ever run, in the ordinary mainline code 00:09
*MAKIN
*MAIN, grr
it's not even required that every Perl 6 program *have* a MAIN 00:10
japhb_ TimToady, I'm not saying they all have to go in there. I am however saying that there are a few common ones that we don't handle at all well right now.
And easy things should be easy.
TimToady as slopes go, this one is darn slippery 00:11
japhb_ In particular, for my personal work, subcommand-style argument handling a la git should Just Work
00:11 ajr_ left
japhb_ No argument there. I'm trying to replace a slope with an appropriately sized and shaped escape hatch. 00:11
TimToady the escape hatch is anything above the water line 00:12
japhb_ OK, are you saying that you believe the MAIN design as it is now is (at least locally) optimal, such that it's a bad idea to change it? 00:14
00:14 Entonian left 00:18 rurban1 joined
lizmat just back in from a day away 00:20
preflex lizmat: you have 2 new messages. '/msg preflex messages' to read them.
TimToady the only thing strange about MAIN is that it will be called automatically; dispatching to your own set of 'main' subs is like one call more
lizmat thank you all for the congrats wrt WCA
TimToady which is not really heavier than 'is mumble(bletch)' 00:21
lizmat
.oO( need more stuffing ;-)
japhb_ lizmat++ woolfy++ # I didn't get in on that yet. ;-)
japhb_ very much likes the self-documenting nature of MAIN, and also likes the magic ... just wants the magic MOAR BETTER. 00:22
colomon lizmat++ woolfy++ # I don't know what is going on, but yay them!
lizmat colomon: what happened is that woolfy didn't stuff the ballot box enough 00:23
colomon and now has an advent post to write?
colomon is guessing
woolfy colomon: blogs.perl.org/users/brian_d_foy/20...amels.html
colomon doesn't know why there would have been a ballot box.
oh, sweet! 00:24
jnthn lizmat++ woolfy++ # epic conference attendance, and failing to fail to win :)
woolfy colomon: I voted against me and Liz winning this thing and voted other people up... I think I gave lizmat and myself something like 40 minus-votes over the last months from different places :-)
colomon woolfy++
woolfy so no IP-number checking would track me and block me... :-) 00:25
japhb_ woolfy: Too bad for you, basic sanity checking caught you. :-) 00:26
TimToady japhb_: subcommands should fit into the current MAIN scheme already, since it's just discriminants like 'pull' on the front, and we can match strings
japhb_ TimToady, the problem is that all options must appear before all positionals -- and the subcommand strings are positionals. 00:27
woolfy and lizmat have been here this year: almost all Amsterdam.pm & Niederrhein.pm meetings and several AmsterdamX.pm meetings and both the YAPC::EU and YAPC::NA conferences,
and Perl QA Hackathon in Lancaster, Patch -p1 hackathon in Paris, FOSDEM, T-DOSE, FrOSCon, NQP/Perl 6 course in Frankfurt, and some Perl Workshops
japhb_ And that's not the way people generally want to use subcommand interfaces.
woolfy workshops: Orlando, Israel, Netherlands, Germany, Switzerland, Austria, France, Denmark (Nordic), London, Poland. 00:28
jnthn Where "some Perl Workshops" = a superset of those I did this year :P
TimToady subcommands should probably not dispatch to MAIN, but to something MAIN calls
woolfy jnthn: and you have been here, staying with us, making that sort of a very nice Perl-event as well... :-)
lizmat japhb_: each subcommand its own MAIN candidate with something like:
multi MAIN ( Str $a where $a eq "bar", ... ) {
japhb_ TimToady, Huh what? Subcommands with fixed string discriminants seem like *exactly* what you'd want multi MAIN for .... 00:29
jnthn woolfy: Yes! That was very nice :)
TimToady lizmat: multi MAIN ( 'bar', ...)
jnthn lizmat: That's a long way to write multi MAIN('bar', ...) {
japhb_ lizmat: Yes, I know. And actually, you just do: multi MAIN ('bar', ...)
LOL
lizmat wow
:-)
jnthn ...
lizmat just learned something again :)
TimToady japhb_: I mean that the pull subcommand should match multi MAIN('pull', *@subcommand) and that some other name should be dispatching the subcommand 00:30
lizmat woolfy and me are celebrating with some Belgian single malt whiskey made from triple 00:31
japhb_ uses that in several programs. And goes crazy with: program --option --option=val --option subcommand args ... # Which looks awful in USAGE
TimToady can't fix everyone's bad design :P
japhb_ Which design do you think is bad? 00:32
ETOOMANYPOSSIBLEREFERENTS
TimToady yes :)
japhb_ !
TimToady precisely :)
if MAIN didn't exist, you'd write what you want in terms of massaging your arglist and delegating subcommands 00:34
and you'd be happy :)
japhb_ doesn't like the enforced repetition you'd get from: multi MAIN('pull', *@pull-args) { pull-main(parse-args(@pull-args)); }; multi MAIN('push', *@push-args) { push-main(parse-args(@push-args)); }
TimToady MAIN isn't intended to be a vehicle for multiplying entities, but for handling stupid argumen lists like 90% of Unix commands 00:35
japhb_ Sure, but my argument is that currently, MAIN does not match the parsing practices of modern Unix commands. Nor ancient ones. In fact, there's only a middle-aged set of commands that it (kinda) matches.
Hmmm, maybe the right thing is to just override MAIN_HELPER (or pieces of it) 00:37
woolfy Ow wow, that Gouden Carolus Single Malt Whisky is soooo nice: www.stokerijdemolenberg.be/en/whisky
TimToady japhb_: or .wrap it 00:38
but the entire mainline code is already a wrapper for MAIN, basically 00:39
japhb_ TimToady, in it's current implementation, .wrap'ing it would only handle some of the cases, but I think a little reorg might help that.
00:40 rurban1 left
japhb_ Sure. I guess I just want this to work: use MainHelper::GitLike; multi MAIN('pull', @args, %options) { ... } 00:40
TimToady well, I'd say "go wild" but I just don't want the insanity leaking into how parameter binding works
japhb_ Oh, I don't think anything I've mused about so far would involve changes to param binding. 00:41
jnthn What's the reason that nameds must come ahead of positionals, ooc?
in-perl-6-i-can('pass', this => 'and', 'another', :thingy, 'without', :!trouble) 00:42
TimToady we don't know when the shift from positionals to variadics happen, and we don't do getopt-driven parsing
japhb_ I mean, I've wanted the ability to specify list- and hash-valued options, but that's the kind of thing that ought to happen in a module that does some magic and produces a new @positionals, %nameds pair, not changes binding.
TimToady working it out as something that enables subsig matching would be okay
making the USAGE drive the parsing would not be okay 00:43
japhb_ As currently implemented (and I believe spec'ed), the transition from options to positionals happens at '--' or first non-option.
Oh, no. I expected that USAGE would be the tail, not the dog. 00:44
00:44 dayangkun left
TimToady if the first non-option is a discriminant, then you just need the ability to redispatch transforming the --foos of the subcommand the same way MAIN's are 00:44
japhb_ nodnod
TimToady well, and know enough of the delegation to look for a sub-USAGE of some sort 00:45
japhb_ Which argues for having the options parser be a reusable component (using the informal meaning there)
TimToady but to me, I'd rather see this capability on any sub, not just a MAIN
since you prolly wanna name the subcommand handlers according to their name 00:46
japhb_ I almost wrote that kind of thing (working for any sub) way back when, but I was convinced by the crowd that was overdesign. Perhaps I should have been more persistent. :-)
TimToady for some reason the crowd seems to prefer low-wattage specific solutions sometimes over generic solutions :) 00:47
generic solutions are better as long as they aren't thrust upon unsuspecting specific users :)
japhb_
.oO( "Light Bulb!" )
dalek rl6-roast-data: cdacefc | coke++ | / (3 files):
today (automated commit)
00:49
[Coke] lue: sixperl == Perl 6
japhb_ p: <3/8> ** 7 00:50
camelia ( no output )
japhb_ p: say <3/8> ** 7
camelia rakudo-parrot 413650: OUTPUT«0.00104284␤»
TimToady but a language needs a certain amount of low-wattage affordances or people can't cargo cult it to learn it
and I've been thinking of MAIN as one of those low-wattage affordances 00:51
japhb_ I think it's low-wattage, certainly -- but currently purple.
00:52 thou left
japhb_ Easy to use to do not quite what you want. 00:52
lizmat decided to gat some sleep
japhb_ o/ lizmat
lizmat and will now get some&
jnthn 'night lizmat
TimToady well, there's quite an impedance mismatch between siggies and typical command-line getops policies, and I'd hate to see either of those turn into a hammer
you'd almost need something like unification to do getopts the AIish way people want 00:53
japhb_ I want a nice solid red toolbox with a standard weight claw hammer on the top rack.
[Coke] as mentioned: rakudo.moar,2013-12-18,00.03%,0fed404,8,26551,0,0,26559,28250, 00:54
japhb_
TimToady well, you shouldn't believe half of what I write today, since I'm under the weather :) 00:55
jnthn [Coke]: Tomorrow's run will be...interesting. 00:56
00:56 dayangkun joined
jnthn [Coke]: On the upside, Test.pm loads/basically works now. 00:56
japhb_ Hope you feel better soon, TimToady!
jnthn [Coke]: On the downside, 5-6 tests hang.
TimToady m: say <3/8>.WHAT 00:57
jnthn I'm not sure we have an m yet :)
Though we could now
TimToady that sez (Str) here :)
[Coke] jnthn: test runner kills hung tests.
TimToady or :( depending
[Coke] so, no worries. 00:58
I'm doing another run right now to see.
japhb_ [Coke], What's the timeout?
jnthn TimToady: Well, that almost certainly falls in the category of "portable NYI" :)
[Coke]: Oh, then I won't worry too much over it :)
TimToady j: say <3/8>.WHAT
camelia rakudo-jvm 413650: OUTPUT«(Str)␤»
TimToady p: say <3/8>.WHAT 00:59
camelia rakudo-parrot 413650: OUTPUT«(Str)␤»
TimToady portable shmortable
it needs to be ported from niecza :)
[Coke] github.com/coke/perl6-roast-data/b...oar.sh#L16
00:59 grondilu joined
TimToady n: say <3/8>.WHAT 00:59
camelia niecza v24-108-g17d73e4: OUTPUT«(Rat)␤»
[Coke] exec "ulimit -t 90; ulimit -v 1260720; nice -20 ./perl6-m @ARGV
jnthn will have to read spec to figure out how the <3/8> things are meant to be done... 01:00
But not this side of Christmas break :)
01:00 xenoterracide left, xenoterracide joined
japhb_ TimToady, I considered it (porting dual vars from Niecza, to be precise). About three times. Maybe more. Every time I found something less core-painful to work on. :-/ 01:00
grondilu xenoterracide: I'm here in case you want to talk about github.com/grondilu/libdigest-perl6/issues/2
01:01 colomon left
TimToady as you can see, <3/8> is not a dualvar :) 01:01
japhb_ Yes, but it is in a closely related place. 01:02
xenoterracide grondilu: I'll hit you up later about to run to see hobbitses with gf
jnthn btw, I'm going to be mostly offline from Fri onwards, probably until after Christmas. I'll probably drop by now and then...but I need some time away from the keyboard. :) 01:03
japhb_ Good for you.
xenoterracide though would be interesting to here thoughts from TimToady, or jnthn or whomever, about how best to select a different module based on backend architecture (I think naming convention would work, but maybe there are smarter solutions)
TimToady well, there's always BEGIN, if nothing else works 01:05
but the lower down such decisions can be made, the better
we'd like to present the typical P6 user with a uniform interface regardless of backend
01:06 colomon joined
xenoterracide TimToady: of course but I'm going to assume that (speaking in p5 terms) there'll be modules that have XS and pure perl versions ... and sometimes maintained by different people, but you still want that same interface (re: Digest, or things like JSON) 01:07
and with the possibility of a Java backed version (like something shipped with java)
that adds a 3rd option
or more 01:08
01:08 tgt left
TimToady sure, anything that can have a universal API should have a universal layer, but we don't want to prevent people from doing hard things too 01:08
TimToady has never been interested in the Java Trap 01:09
TimToady prefers Write Once, Run Everywhere Appropriate
01:10 jnap left
TimToady and sometimes that's Anywhere 01:10
colomon seems to have accidentally unplugged the Christmas tree. :\
japhb_
.oO( Write Once, Run Often )
xenoterracide TimToady: nah, I'm just inquiring about possible convention, where convention can be ideal in 95% of cases, ok, really leaving now 01:12
grondilu xenoterracide: I think there are things like that in P5. I'm thinking about YAML. IIRC there are various flavors named YAML::* where * is whatever method is used. 01:16
So you might be right, Digest::PP/JVM/JS would make sense I guess
jnthn Time for some sleep 01:18
'night
dalek ast: 6d1c47c | coke++ | test_summary:
allow rakudo-moar to skip test files
01:36
[Coke] huh. latest build is complaining about not finding Test.pm (rakudo.moar) 01:56
TimToady [Coke]: see say <3/8> 02:08
oops
see github.com/rakudo/rakudo/commit/61c62b19bd
so you're out of sync with that somehow 02:09
about 2.5 hours ago
02:10 jnap joined 02:15 jnap left 02:21 colomon left 02:31 cognominal left 02:32 cognominal joined
sjohnson snorts [Coke] 02:34
02:34 colomon joined 02:35 finanalyst joined
finanalyst p: say '0' xx 4 02:36
camelia rakudo-parrot 413650: OUTPUT«0 0 0 0␤»
[Coke] TimToady: ah, yes, my runner script assumes lib/
is that the case for all 3 backends? 02:37
ah, not yet
er, it's fixed to be just 'lib' ? wtf. 02:39
must have not done a full rebuild. 02:43
Does rakudo-moar respect PERL6LIB ? 02:51
gist.github.com/coke/8033624 02:52
so it's saying it can't find Test.pm, but there is a Test.moarvm and a Test.pm in the first directory it's complaining about. 02:54
colomon does it rakudo-m know how to load modules yet? 02:58
03:01 jnap joined 03:05 jnap left
TimToady perl6-m -e 'use Test;' fails here 03:11
with a "GatherIter NYI on MoarVM"
03:12 btyler left
TimToady and 'say %*ENV;' sez: ("\x[4d]\x[41]\x[49]\x[4c]" => "\x[2f]\x[76]\x[61]\x[72]\x[2f]\x[6d]\x[61]\x[69]\x[6c]\x[2f]\x[6c]\x[61]\x[72]\x[72]\x[79]", "\x[53]\x[53]\x[48]\x[5f]\x[43]\x[4c]\x[49]\x[45]\x[4e]\x[54]" => "\x[37]\x[31]\x[2e]\x[33]\x[37]\x[2e]\x[39]\x[2e]\x[38]\x[30]\x[20]\x[34]\x[39]\x[37]\x[35]\x[33]\x[20]\x[32]\x[32]", "\x[55]\x[53]\x[45]\x[52]" => "\x[6c]\x[61]\x[72]\x[72]\x[79]", "\x[53]\x[48]\x[4c]\x[56]\x[4c]" => "\x[31]", "\x[48]\x[4f]\x[4 03:13
er, oops
03:17 Vlavv_ left 03:30 Vlavv_ joined
lue S02-literals/types.t is one of those "lazy gather/take NYI" hangs, I'm guessing? 03:37
lue really should learn just what exactly gather/take is for sometime...
03:40 kaleem joined 03:51 grondilu left, cognominal left 03:59 gfldex left, bluescreen100 left 04:01 gfldex joined
lue r: grammar G { rule TOP { <alpha> <digit> } }; G.parse("33a1"); say $/ 04:02
04:02 jnap joined
camelia rakudo-parrot 413650, rakudo-jvm 413650: OUTPUT«#<failed match>␤» 04:02
lue are grammars supposed to be implicitly anchored?
r: grammar G { rule TOP { <alpha> <digit> } }; G.subparse("33a1"); say $/ 04:05
camelia rakudo-jvm 413650: OUTPUT«No such method 'subparse' for invocant of type 'G'␤ in block at /tmp/ykvdmBSv8G:1␤ in any eval at gen/jvm/stage2/NQPHLL.nqp:1086␤ in any evalfiles at gen/jvm/stage2/NQPHLL.nqp:1292␤ in any command_eval at gen/jvm/stage2/NQPHLL.nqp:1196␤ in a…»
..rakudo-parrot 413650: OUTPUT«No such method 'subparse' for invocant of type 'G'␤ in block at /tmp/hCu4DLcj56:1␤ in any at /tmp/hCu4DLcj56:1␤ in any at gen/parrot/stage2/NQPHLL.nqp:1146␤ in any eval at gen/parrot/stage2/NQPHLL.nqp:1133␤ in any evalfiles at gen/parro…»
lue :(
04:06 jnap left
lue adds a .* to the front of the TOP rule... 04:06
04:07 hummeleB1 left 04:10 colomon left 04:11 raiph joined 04:13 colomon joined 04:21 kaare__ left 04:24 colomon left 04:28 btyler joined 04:38 Rix left 04:40 skids joined 04:42 Rix joined 04:48 cbk_ joined 04:53 colomon joined 04:55 btyler left 04:59 preflex left, preflex_ joined, ChanServ sets mode: +v preflex_ 05:00 preflex_ is now known as preflex 05:02 jnap joined 05:07 jnap left 05:14 kaleem left 05:15 thou joined, Ben_Goldberg is now known as BenGoldberg
BenGoldberg r: printf '%.4f', (7 ** (e-1/e) - 9) * pi**2 05:18
camelia rakudo-parrot 413650, rakudo-jvm 413650: OUTPUT«867.5309»
lue I'm pleasantly surprised that switching out perl6-p for perl6-m in a troublesome script even began working :) 05:28
05:29 raiph left, SamuraiJack joined 05:30 raiph joined 05:31 btyler joined, BenGoldberg left
dwarring lue: thanks for help yesterday 05:45
lue no problem.
dwarring jnthn is suppoosed to be doing day 19
i guess we'lll just have to wait 05:46
i'm still up
05:48 SamuraiJack left 05:54 btyler left
dwarring should be big news! 06:04
06:19 kaleem joined 06:20 laidback_01 left 06:25 cbk_ left 06:34 darutoko joined 06:36 cbk1090 joined 06:44 sqirrel joined 06:50 cbk1090 left 07:02 sqirrel left 07:04 jnap joined 07:05 raiph left 07:08 jnap left 07:17 xenoterracide left 07:34 FROGGS left 07:38 gtxcomm left 07:41 gtxcomm joined, estrabd left 07:49 yves_ left 07:51 sqirrel joined 07:58 thou left 08:03 broquaint left 08:04 FROGGS joined 08:05 jnap joined 08:09 jnap left
FROGGS o/ 08:19
08:25 Piers left 08:43 fhelmberger joined 08:55 broquaint joined 08:57 grondilu joined
grondilu {off topic] launch of Gaia in a few minutes: www.arianespace.tv/ 08:57
jnthn TimToady: If you get GatherIter NYI, you're just missing the commit where I put a cheating version of it in, yesterday evening... 09:20
09:26 gtxcomm left, gtxcomm joined 09:37 woosley left 09:43 grondilu left 09:50 PZt left, tgt joined, finanalyst left 09:53 ssutch left 09:54 gtxcomm left 09:55 gtxcomm joined 09:59 zakalwe_ is now known as zakalwe 10:02 Alina-malina left 10:03 Alina-malina joined 10:06 jnap joined 10:07 PZt joined 10:10 broquaint left, broquaint joined 10:11 jnap left
jnthn is working on his advent post, btw :) 10:26
moritz ++jnthn 10:28
11:01 finanalyst joined 11:03 zakharyas joined
finanalyst can someone please tell me if I can "import" an enum from a Module? I define enum NN is export <Abe Bay> in module. I use NN. But to access Abe, I have to say NN::Abe. How can I just say Abe? 11:05
s/use NN/use ModName/
11:07 jnap joined
jnthn I think it maybe should do that by default, but if you after your use try "import NN;" then I think that'll help. 11:09
FROGGS p: module Foo { enum NN is export <Abe Bay> }; import Foo; say Abe 11:10
camelia rakudo-parrot 413650: OUTPUT«===SORRY!=== Error while compiling /tmp/Rxz5iB8xr9␤Undeclared name:␤ Abe used at line 1␤␤»
11:12 jnap left
finanalyst jnthn: rakudo doesnt do it by default currently. There's a compile error to say that Abe is Undeclared name. 11:13
FROGGS yeah, it seems like the things in an enum are not made available
finanalyst also import NN doesnt help 11:14
p: module Foo { enum NN is export <Abe Bay>}; say NN::Abe 11:16
camelia rakudo-parrot 413650: OUTPUT«Could not find symbol '&Abe'␤ in method <anon> at gen/parrot/CORE.setting:12065␤ in any at gen/parrot/Metamodel.nqp:2691␤ in any find_method_fallback at gen/parrot/Metamodel.nqp:2679␤ in any find_method at gen/parrot/Metamodel.nqp:946␤ in…»
FROGGS finanalyst: you still need to import Foo
finanalyst p: module Foo { enum NN is export <Abe Bay>}; use Foo;say NN::Abe
camelia rakudo-parrot 413650: OUTPUT«===SORRY!===␤Could not find Foo in any of: /home/p6eval/rakudo-inst-2/lib/parrot/5.9.0-devel/languages/perl6/site/lib, /home/p6eval/rakudo-inst-2/lib/parrot/5.9.0-devel/languages/perl6/vendor/lib, /home/p6eval/rakudo-inst-2/lib/parrot/5.9.0-devel/langu…»
FROGGS import
finanalyst p: module Foo { enum NN is export <Abe Bay>}; impot Foo;say NN::Abe
camelia rakudo-parrot 413650: OUTPUT«===SORRY!=== Error while compiling /tmp/9zYeakqTu5␤Undeclared routine:␤ impot used at line 1␤␤»
finanalyst p: module Foo { enum NN is export <Abe Bay>}; import Foo;say NN::Abe
camelia rakudo-parrot 413650: OUTPUT«Abe␤»
FROGGS right
masak g'day, #perl6 11:17
11:17 fhelmberger_ joined
FROGGS it exports the enum, that is why NN is available 11:17
finanalyst FROGGS: thanx
masak wow, the Go people are planning to bootstrap Go after the fact: docs.google.com/document/d/1P3BLR3...&pli=1
FROGGS but its children are not exported to your namespace
jnthn p: module Foo { enum NN is export <Abe Bay>}; import Foo; import NN; say Abe
camelia rakudo-parrot 413650: OUTPUT«===SORRY!=== Error while compiling /tmp/vGIn4UgowY␤Undeclared name:␤ Abe used at line 1␤␤»
jnthn Hm, I'd have expected that second one to do it.
masak the HN discussion is interesting too: news.ycombinator.com/item?id=6932026
FROGGS jnthn: do we have to check for enums explicitly in ML.merge_globals? 11:18
masak people are catching on to how highly important AST-level introspection/modification is. especially algorithm driven introspection/modification.
jnthn FROGGS: I think we should do it in the export implementation... 11:19
FROGGS: So exporting an enum always exports its values too.
11:20 fhelmberger left
jnthn FROGGS: Detect it by meta-object 11:20
r: enum Foo <a b c>; say Foo.HOW ~~ Metamodel::EnumHOW;
camelia rakudo-parrot 413650, rakudo-jvm 413650: OUTPUT«True␤»
jnthn r: class Foo { }; say Foo.HOW ~~ Metamodel::EnumHOW;
camelia rakudo-parrot 413650, rakudo-jvm 413650: OUTPUT«False␤»
11:21 fhelmberger_ left
jnthn I advunt: perl6advent.wordpress.com/2013/12/1...ogramming/ 11:27
11:29 pecastro left 11:38 rindolf joined
FROGGS jnthn: you forgot to mention parrot in the last sentence *cough* 11:38
tadzik hey, it even had commits 2 months ago 11:42
FROGGS well, it has threading support... somebody just need to find out what makes it crash in most cases 11:44
to be clear: it crashes when using threads in nqp code for example 11:45
tadzik last time I checked, the perl6 people were saying "you do it", and parrot people were saying "you do it" ;) 11:46
FROGGS tadzik: and then I did 11:49
that is where I got my knowledge from
tadzik you did? :o
so it works now?
FROGGS I made this executing in parallel: @a >>+<< @b
11:49 raiph joined
FROGGS tadzik: no, it crashes when the code gets a certain level of complexity 11:50
tadzik oh, indeed :)
FROGGS (and that level is pretty low actually)
and parrot's threads tend to block if you are accessing lexicals, which is not very helpful
tadzik well, I opened a bug somewhere once, it was impossible to say() inside a new task
FROGGS you have to spawn two task 11:51
tasks*
one green thread that does start an os thread
the work has to be done in the os thread then
tadzik hm 11:52
so what's the level of complexity at which we can't continue?
FROGGS see github.com/parrot/parrot/issues/889 11:53
see the linked examples in my posts 11:54
tadzik so you start 300000 os threads which then start as many green threads 11:58
but I wonder, is aplusb really heavy enough? I mean, maybe it finishes counting by the time nqp starts another thread 11:59
then you won't see load on multiple cores at once
12:00 raiph left
jnthn FROGGS: If you want to work on Parrot support, nothing's stopping you...I've got my hands more than full enough with building it on JVM and Moar, for the time being :) 12:03
12:04 pecastro joined 12:08 jnap joined 12:10 atroxaper joined 12:12 kivutar left, jnap left
timotimo "will produce an ascending integer once per time internal" 12:26
12:27 atroxaper left
woolfy Maybe a nice opportunity to promote Perl 6? www.perloasis.info/tbpw2014/ 12:29
jnthn timotimo: Fixed, thanks
12:32 atroxaper joined
timotimo ~. 12:35
yw :) 12:36
12:38 denisboyun joined 12:41 denisboyun left
FROGGS jnthn: that is not what I said :o) 12:44
I had my "fun" already
timotimo :\ 12:47
colomon FROGGS: "I made this executing in parallel: @a >>+<< @b" -- on rakudo-j or just -p? 12:49
12:50 denis_boyun joined
FROGGS colomon: -p 12:52
colomon darn
FROGGS as a test, ages ago
colomon FROGGS++, anyway
FROGGS :o)
12:55 kaleem left 13:03 denis_boyun left 13:10 rindolf left 13:14 FROGGS left 13:18 FROGGS[mobile] joined
jnthn away for a bit 13:20
13:29 fhelmberger joined 13:38 atroxaper left 13:39 rindolf joined 13:40 skids left 13:45 kaleem joined 13:50 kivutar joined 13:53 spider-mario joined 13:56 jnap joined 13:57 spider-mario_ joined, spider-mario left 13:59 spider-mario_ is now known as spider-mario
jnthn Seems it's 12 spectests that hang during the Moar run. 14:02
14:03 xenoterracide joined 14:04 sqirrel left 14:05 dalecooper joined
timotimo that's not even that much! 14:05
14:06 ajr joined
tadzik the rest passes? :) 14:06
timotimo probably not ;)
14:06 ajr is now known as Guest55088
jnthn no :P 14:07
14:07 Guest55088 is now known as ajr_
timotimo prolly more than 0.01% passes, though 14:07
jnthn I'd think so :) 14:08
huh...all those that hang that I tried so far seem to do so at exit 14:09
ah, not all
14:11 SamuraiJack joined 14:13 zakharyas left
dalek ast: 92d1b0e | jnthn++ | S16-filehandles/io_in_for_loops.t:
Moar fudge; gives infinite noks.
14:14
jnthn That one would distort number of tests run in daily roast, so fudged it. Will leave others for now. 14:15
14:16 SamuraiJack left 14:17 PacoAir joined
timotimo should others make an effort to fudge stuff that hangs or infiniloops? 14:18
14:21 fhelmberger left, fhelmberger joined
jnthn timotimo: Could do, though for now I suspect we can work of the daily runs, which ulimit stuff and will give us plenty of info on where to look for things to do. 14:22
14:26 fhelmberger left 14:38 tgt left 14:39 kaare__ joined 14:41 tgt joined 14:43 xinming joined 14:44 xinming_ left 14:55 bluescreen100 joined 14:56 spider-mario left 14:59 atroxaper joined, atroxaper left 15:00 colomon left 15:01 araujo left, ivanshmakov left 15:02 ivanshmakov joined, araujo joined, zakharyas joined
timotimo did a fix land for the speed improvement for the jvm spectests not using Test.jar? 15:06
jnthn timotimo: No, not yet 15:09
I did one for Moar in moar-support branch 15:10
15:10 skids joined 15:16 thou joined 15:25 hummeleB1 joined 15:38 SamuraiJack joined 15:46 sqirrel joined, spider-mario joined
masak TimToady: I forgot to say happy 26th birthday yesterday! 15:48
15:53 FROGGS[mobile] left
skids r: my Int a; # LTA error 15:53
camelia rakudo-jvm 413650: OUTPUT«===SORRY!===␤Type 'Int' is not declared. Did you mean 'int'?␤at /tmp/m1E5ncrfmA:1␤------> my Int ⏏a; # LTA error␤Malformed my␤at /tmp/m1E5ncrfmA:1␤------> my Int ⏏a; # LTA error␤ e…»
..rakudo-parrot 413650: OUTPUT«===SORRY!===␤Type 'Int' is not declared. Did you mean 'int'?␤at /tmp/ugqXsrktom:1␤------> my Int ⏏a; # LTA error␤Malformed my␤at /tmp/ugqXsrktom:1␤------> my Int ⏏a; # LTA error␤ …»
15:55 rurban1 joined
masak submits rakuodbug 15:56
jnthn std: my Int a;
camelia std 3b262af: OUTPUT«===SORRY!===␤Multiple prefix constraints not yet supported at /tmp/ZWrkaIr6kM line 1:␤------> my Int ⏏a;␤Malformed my at /tmp/ZWrkaIr6kM line 1:␤------> my Int ⏏a;␤ expecting any of:␤ mult…»
15:58 Psyche^_ joined 16:01 Psyche^ left
masak finds he doesn't mind the description in news.ycombinator.com/item?id=6934948 as much as he thought he would after reading the first few words 16:02
16:04 raiph joined 16:05 ajr_ left, ajr joined 16:06 ajr is now known as Guest13697 16:07 kivutar left 16:17 colomon joined 16:27 Guest13697 is now known as ajr_
timotimo jnthn: # java.lang.IllegalAccessError: tried to access class java.lang.AbstractStringBuilder from class org.perl6.nqp.generatedadaptor.java.lang.AbstractStringBuilder 16:28
this is how trying to .append the return value of a .append breaks
(.append returns an AbstractStringBuilder instead of a StringBuilder)
not at all sure how to proceed.
i guess i'll mark thas as todo.
dalek kudo/moar-support: de87347 | jnthn++ | src/Perl6/Actions.nqp:
Some declaration => declaration_static.

Rakudo does its own cloning (as it needs to clone code objects too). This avoids duplicate and incorrect work. That said, as we bring the other backends more inline with how Moar does closures, we may want a more general solution to what Rakudo is now doing. In the meantime, this fixes some things, meaning 'make test' now passes in full.
16:30
timotimo \o/
jnthn Now we "just" need make spectest to do the same :P 16:31
colomon SMOP 16:32
jnthn "S"MOOP :P 16:33
*MOP
16:33 kaleem left
timotimo jnthn: does our jvm interop need to learn how to cast an AbstractStringBuilder (interface i guess?) to a StringBuilder in order to chain those things together? 16:36
so we'd end up with code like $sb.'...append...'("foo").cast(...).'...append...'(1024)?
jnthn Doesn't ASB have an append method too? 16:37
timotimo or should the generated wrapper for AbstractStringBuilder notice "oh, i'm building an adaptor for an abstract class. i should cast myself before doing shit"
gimme a second
jnthn I'm guessing it does...
timotimo it does, yeah 16:38
oh!
jnthn So, I guess we just need to generate an interop type for that return object and wrap it like any other object coming back?
timotimo there is *also* a method that returns a Ljava/lang/StringBuilder; 16:39
jnthn Oh...though
timotimo and using that does work!
jnthn You sure that the second one doesn't hide the first?
As in, it's an override?
timotimo there are multiple, yeah
i don't know how hiding works; at least we *find* it and generate a wrapped method for it!
jnthn Well, I guess it's just that if two methods have identical signatures excluding the return type, then the one in the child class wins. 16:40
timotimo because the error message you get when you try to call "append" lists all methods with that exact arity
and the ones returning AbstractStringBuilder are among them
i'll have to figure out how to figure out which ones are hiding which ones, then :\ 16:41
jnthn Yeah, I suspect for the auto-dispatcher thingy we need to exclude overridden methods
Well, but I think you can get away with string comparisons...provided you know which one comes from which class.
timotimo yeah, i think so, too
just find what's after the )
jnthn Well, you need to throw away what's after the ) in the comparison.
Oh, don't rely on what's after the ) for deciding which is deepest, though 16:42
As it's possible for an override to have the same return type
16:42 shlomif joined
timotimo yeah, i meant to say "throw everything after the / away when comparing" 16:43
i'll still have to figure out which class defines which methods
jnthn aye 16:44
timotimo i should be able to count the number of steps until i reach java/lang/Object from the given object and use that to compare deepness, aye?
i need to get prepared to commute around a bit 16:45
16:45 DrEeevil joined 16:47 hummeleBop1 joined
jnthn timotimo: Yes, sounds reasonable 16:48
timotimo: As there's only single inheritance in Java.
16:48 dalecooper left 16:52 hummeleB1 left, rindolf left, bonsaikitten left 16:53 zakharyas left
xenoterracide is there an explanation somewhere of why :U is the default not :D? 16:54
well.. that's not true right :U would enforce undefined?
I guess I'm just curious as to why :D isn't the default, would almost make sense to be 16:55
jercos I see :U and :D and :V and all I think of is (\/) (°,,,°) (\/) 16:57
masak jercos: :P 16:58
"the Zoidberg modifiers"
17:00 finanalyst left
xenoterracide more important than my curiousity though, where's the docs on how I export a sub from a module? 17:02
dalek kudo/moar-support: 293f744 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
Implement coercive parameters.
17:03
jnthn Who is cutting today's release?
xenoterracide: Probably in S11 17:04
But in summary, "is export"
xenoterracide jnthn: thanks (writing notes on how to do the most common things I need to do) 17:05
17:19 tgt left, tgt joined
colomon jnthn: moritz or masak, I think. 17:22
17:23 sqirrel left
jnthn Ah, guide says moritz++ 17:24
jnthn was looking at the one in moar-support, which didn't get nom merged recently enough
xenoterracide std: my Int $a = true : 1 : 0; 17:28
camelia std 3b262af: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix : instead at /tmp/qKrlAyJWHb line 1:␤------> my Int $a = true ⏏: 1 : 0;␤Parse failed␤FAILED 00:01 124m␤»
TimToady std: my Int $a = True ? 1 : 0; 17:29
camelia std 3b262af: OUTPUT«===SORRY!===␤Unsupported use of ?: for the conditional operator; in Perl 6 please use ??!! at /tmp/Rvs1EhdHMH line 1:␤------> my Int $a = True ?⏏ 1 : 0;␤Parse failed␤FAILED 00:01 124m␤»
TimToady std: my Int $a = true: 1, 0; 17:30
camelia std 3b262af: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'true' used at line 1␤Check failed␤FAILED 00:01 125m␤»
xenoterracide std: my Int $a = True ?? 1 !! 0; 17:31
camelia std 3b262af: OUTPUT«ok 00:01 124m␤»
TimToady I assume that's whatchyer lookin for. 17:32
xenoterracide basically, I was digging for the ternary operator
TimToady p: say +True 17:33
camelia rakudo-parrot 413650: OUTPUT«1␤»
TimToady though you'll never need one to numericize a boolean :)
xenoterracide TimToady: well that's not really the goal, just fishing for syntax to write a quick, dumb comparator for my reference 17:34
jnthn err& 17:39
timotimo what type would i use to represent a tuple of values in java? 17:40
is there something like Pair<String, Int>?
also, more than two parts?
17:41 ajr_ left
xenoterracide timotimo: docs.oracle.com/javase/7/docs/api/j...l/Map.html maybe the Map docs help? but no I don't think they have a Pair type 17:43
17:43 sqirrel joined
xenoterracide timotimo: docs.oracle.com/javaee/7/api/javax/...Tuple.html 17:46
timotimo i'm building my own class now 17:50
unfortunately the interface doesn't help me 17:51
i would still have to implement it with myo wn class
17:55 denisboyun joined
raiph TimToady: S07:230 # is the verbiage about for loops up to date? 18:00
synopsebot Link: perlcabal.org/syn/S07.html#line_230
mathw jnthn: supplies are amazing! I love reactive programming so very happy to see that and such a nice API too. 18:01
xenoterracide timotimo: well at least if you use the interface it'll be compat with anything that supports said interface
asside from the bitter stupidity of implementation 18:03
privatepaste.com/e74c0410d4 why is this throwing this error
Method 'cmp' must be implemented by BasicComparator because it is required by a role
18:03 ajr joined 18:04 ajr is now known as Guest69981 18:08 alanjf joined 18:09 alanjf left, ssutch joined 18:10 Alina-malina left 18:11 Alina-malina joined, FROGGS[mobile] joined 18:12 shlomif is now known as rindolf
jnthn timotimo: docs.oracle.com/javase/7/docs/api/j...Entry.html 18:13
timotimo: Crappy long name, though...
xenoterracide: You want a * in that proto, not a ... 18:14
18:20 fhelmberger joined 18:24 sqirrel left
xenoterracide jnthn: privatepaste.com/2e5786a337 so trying to make it a required interface, which is what I thought ... does... changing to this is giving me a multimatch for signatures 18:25
TimToady raiph: yes, the verbiage is still accurate; all we changed was to make statementlist-level statements apply sink to loops 18:26
jnthn xenoterracide: We can't really compare signatures, so requirements are really just about names. 18:28
raiph TimToady: Thx. (but a bit more) 18:30
TimToady: A statementlist-level statement *ought* to be in sink, right? 18:31
(I can imagine a (seems to me poor) argument that the last statement might not be sink.)
jnthn As I understand current spec, a statementlist-level *loop* statement is always in sink context.
xenoterracide jnthn: so if there's no proto, it works... ? I'm just trying to figure out how to make it "required" for whatever that means 18:33
jnthn Make *what* required?
xenoterracide the cmp method 18:34
jnthn I think proto method foo() { ... } in a role will work, but then you probably need to declare a proto method cmp in the class doing the role too
18:35 REPLeffect left
jnthn proto methods get auto-created, but it happens after role composition, since the role may provide multi candidates... 18:36
...which is why just declaring multis isn't (presently) good enough.
xenoterracide jnthn: so for clarities sake, this appears to be doing what I want, privatepaste.com/8a492d5051 is it correct (per current limitations) 18:40
dalek p/jvm_interop_dispatchers2: 2c44525 | (Timo Paulssen)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/BootJavaInterop.java:
try to make sure we don't expose hidden methods
18:46
18:46 darutoko left
jnthn xenoterracide: Looks sane to me. 18:49
18:56 rurban1 left, denis_boyun joined 18:58 denisboyun left, odoacre left 19:01 fhelmberger left
dalek p/jvm_interop_dispatchers2: 8bd936b | (Timo Paulssen)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/BootJavaInterop.java:
fix a thinko, actually skip methods if they are hidden.
19:01
19:02 odoacre joined 19:18 denisboyun joined, denis_boyun left 19:23 SamuraiJack left
moritz what's the difference between Supply.tap and Supply.map? 19:24
19:27 zakharyas joined, denis_boyun joined
TimToady 3 bits 19:27
19:27 denisboyun left
raiph moritz: are you OK with the currently spec'd eager/lazy aspects of for loops? 19:29
as per perlcabal.org/syn/S07.html#The_lazi...operations
moritz raiph: I'm OK with how it's specced in S04 19:30
raiph: S07 might lag behind
19:32 noxgirl left 19:33 autumn joined
dalek p/jvm_interop_dispatchers2: 34775a4 | (Timo Paulssen)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/BootJavaInterop.java:
surprisingly, not compiling the code doesn't guarantee it's right.
19:40
xenoterracide privatepaste.com/c37f177e96 it doesn't seem like it should be, but is it possible to trigger "Go home Perl, you're drunk." in this via some weirdism? (again stupid implimentation simply to remind myself of syntax
19:41 rurban1 joined
dwarring fg 19:45
dwarring oops classic ww
19:48 jeffreykegler joined, denis_boyun left
moritz xenoterracide: it seems you are acting as if the 'when' clause was just a boolean condition, like the conditional in the 'if' 19:48
xenoterracide: instead the expression is evaluated, and then smart-matched against $_
given $a { when .Int > $b { ... } } 19:50
is short for -> $_ { if $_.Int > $b ~~ $_ { ... } }($a) 19:51
so you're smart-matching a Bool against $_
and since $_ is an integer, that can only be true if $_ is 0 or 1
xenoterracide :S
moritz so, either use if/elsif 19:52
masak moritz: waitwait.
moritz or when * > $b { ... } # for example
moritz waitwaits
masak moritz: isn't it 'if $_ ~~ ($_.Int > $b)' ? 19:53
moritz masak: yes, you're right
masak and smartmatching against a Bool should make it act like an if, basically.
19:54 zakharyas left
moritz but beware that a smartmatch also locally sets $_ to the RHS 19:54
which can be confusing, if there's also an outer $_ 19:55
masak aye.
does 'when' suffer from that, though? it's more of an implicit smartmatch, really.
by the way, I agree about the main point: use 'if' unless you're interested in the smartmatching behavior (or the 'succeed' semantics) 19:57
lizmat finally has some time for rakudo
and I will spend it on writing my blog post tonight 19:58
masak ++lizmat 19:59
lizmat tentative title "Defaulting to Nililism and other variable traits"
xenoterracide masak: succeed semantics? (note: again mostly doing this for a personal cheatsheet)
moritz runs m-spectest
19:59 slavik1 left
moritz xenoterracide: a successfully matched when-clause exits the outer block 19:59
p: given 42 { when 42 { say 'hi' }; say 'not reached' } 20:00
camelia rakudo-parrot 413650: OUTPUT«hi␤»
xenoterracide looks at this gather thing and wonders if one could do my $res = gather given .. when { 1 }
masak p: for 1, 2, 3, 4, 5 { say $_; when 3 { say "THREE!" }; say "hop!" }
camelia rakudo-parrot 413650: OUTPUT«1␤hop!␤2␤hop!␤3␤THREE!␤4␤hop!␤5␤hop!␤»
moritz p: for 1..5 { .say; when 3 { say 'THREE' }; LAST say 'stop'; say 'hop' } 20:02
camelia rakudo-parrot 413650: OUTPUT«1␤hop␤2␤hop␤3␤THREE␤4␤hop␤5␤hop␤stop␤»
20:05 rindolf left
xenoterracide hmm... 0.93s total, significantly faster than last year at this time... cool 20:06
moritz m-spectest seems to pass about a half or a third of the spectest files 20:08
then some which fail only a few tests
jnthn moritz: If you want a LHF-y to look into, I think it's also currently not running ones marked # icu 20:09
moritz: Which it should attempt also
moritz jnthn: should jvm run the #icu tests too? 20:10
arnsholt I'd vote for JVM running #icu tests 20:11
moritz oh, I see it does
lizmat just ran a p-spectest and some some errors in S05-modifiers/*.t
*saw
is that to be expected ? 20:12
jnthn moritz: Yes, but I think it already does
dalek kudo/moar-support: e998752 | moritz++ | t/harness:
run #icu tests on moar
jnthn lizmat: Didn't hear anything about that
moritz: Not sure if that'll get us any more passes :) 20:13
jnthn looks forward to the Coke numbers :)
20:13 sqirrel joined 20:14 slavik joined
lizmat jnthn: problem also seems to exist with jakudo 20:14
so it's not backend specific 20:15
it also has some todo's passing:
t/spec/S05-modifier/perl5_0.rakudo.parrot (Wstat: 0 Tests: 24 Failed: 0)
TODO passed: 15-17
I won't have time to look further into this until I finishes my blog post :-) 20:16
lue hello world o/ 20:25
Uh, I don't know if this has since been fixed, but at least as of 90fec0aea I noticed a serious issue: the 'make install' target forgets to copy perl6-m to /usr/local/bin, which makes the subsequent perl6-m -> perl6 steps moot. 20:27
lue updates his repos and tries again.
20:27 colomon left
jnthn didn't even know there was a make install target yet :) 20:27
20:28 colomon joined
lue :) I guess if I just copied over perl6-m manually and re-ran the target, it would work fine. But I'm updating first to see if someone's incidentally fixed it since yesterday. 20:28
jnthn: to be fair, I don't know if there are more issues with the install target, seeing as I don't have an installed perl6-m to test the install of :) 20:31
arnsholt jnthn: There's at least one piece of codegen support code I'd like to move out from P6Opaque private stuff to separate classes (for CStruct). Any preferences on which package that kind of stuff belongs in? 20:32
20:32 jeffreykegler left
arnsholt Having them in .nqp.sixmodel.reprs feels a bit weird 20:32
20:32 sqirrel left
jnthn arnsholt: Move it out to .nqp.sixmodel maybe? 20:33
arnsholt: Though, CStruct is a REPR too...
There's always the .nqp.sixmodel.reprs.util option 20:34
arnsholt Yeah, but not ByteClassloader
jnthn Deeper namespace! More enterprisey!
arnsholt More enterprisier!
But yeah, .nqp.sixmodel is probably gonna be ok 20:35
dalek kudo/moar-support: 9cf4e13 | jnthn++ | src/vm/moar/ops/perl6_ops.c:
Fix oversight in p6listitems.

This broke at least shift, which in turn broke many other things.
moritz can imagine that shift is used for a lot of things 20:58
$ git grep shift|wc -l 20:59
327
totally uscientific analysis :-)
$ git grep --word shift src/core/|wc -l
133
jnthn Well, right at the start of SEQUENCE for one... :) 21:01
21:02 dayangkun left
moritz the first 10 m-spectests pass now \o/ 21:03
21:04 risou left 21:05 risou joined, ssutch left
masak \o/ 21:05
21:06 amkrankruleuen left, amkrankruleuen joined
lizmat r: say Nil.foo # suddenly realises a part of the spec not implemented yet 21:06
camelia rakudo-jvm 413650: OUTPUT«No such method 'foo' for invocant of type 'Nil'␤ in block at /tmp/VBG4WTV5am:1␤ in any eval at gen/jvm/stage2/NQPHLL.nqp:1086␤ in any evalfiles at gen/jvm/stage2/NQPHLL.nqp:1292␤ in any command_eval at gen/jvm/stage2/NQPHLL.nqp:1196␤ in any …»
..rakudo-parrot 413650: OUTPUT«No such method 'foo' for invocant of type 'Nil'␤ in block at /tmp/CDsHvbvXD_:1␤ in any at /tmp/CDsHvbvXD_:1␤ in any at gen/parrot/stage2/NQPHLL.nqp:1146␤ in any eval at gen/parrot/stage2/NQPHLL.nqp:1133␤ in any evalfiles at gen/parrot/s…»
lizmat at least according to S02:508: "Any undefined method call 21:07
synopsebot Link: perlcabal.org/syn/S02.html#line_508
lizmat on C<Nil> returns C<Nil>, so that C<Nil> propagates down method
call chains."
21:09 ssutch joined
dalek kudo/moar-support: f1ba138 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
'is copy' for array and hash params.
21:09
lue lizmat: sounds like the perfect job for FALLBACK to me. 21:10
lizmat indeed, but that's NYI, no?
jnthn It's NYI, but you can still get at the functionality with .^add_fallback, which is what Failure does 21:11
lue The end of Day 9's post has a lovely demonstration of add_fallback: perl6advent.wordpress.com/2013/12/0...and-pairs/ 21:12
lizmat remembers and ponders implementing FALLBACK, but not right now 21:13
21:17 dayangkun joined
timotimo good progress on moar again, i see! :D 21:17
moritz yes, patching faster than I can spectest :-) 21:18
timotimo on my laptop, it seems like rakudo-jvm won't compile the setting (which takes a whole lot longer than on my desktop anyway)
lizmat r: my $a is default(42); say $a.defined # shouldn't this need to say "False" ?
camelia rakudo-parrot 413650, rakudo-jvm 413650: OUTPUT«True␤»
moritz it can't be both 42 and undefined
r: my $a is default(42); say $a 21:19
camelia rakudo-parrot 413650, rakudo-jvm 413650: OUTPUT«42␤»
lue
.oO( my $a is default(42 but undefined); )
dalek p/jvm_interop_dispatchers2: 2d1935c | (Timo Paulssen)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/BootJavaInterop.java:
init inheritanceHiding and factor in method name.
moritz can't think of any value that's more defined than 42
timotimo hm, false alarm apparently. good.
this train waits for like 15 minutes at this station :\ 21:20
jnthn timotimo: That's so when it gets delayed, there's a chance to catch up :P 21:23
timotimo interesting 21:26
now it's moving in the other direction
and i'm coding backwards
does that mean features i build get unimplemented when i push?
lizmat moritz/lue: I guess I was confusing it with :exists
21:33 PacoAir left
lue Hm. So for a while I got segfaults at the end of the MVM setting step, then yesterday those cleared up somehow, and now I have a failure on Test.pm :/ 21:36
21:38 spider-mario left
lue recompiles MVM and nqp-m with -g flags to get a more helpful gdb ... 21:39
lizmat gist of blog post in progress, comments welcome: gist.github.com/lizmat/8046770/raw...tfile1.txt 21:46
lue lizmat: two things: 1: "as we <a href=perl6advent.wordpress.com/2013/12/0...ect/>in an earlier" --> I think you are a verb. 21:48
lizmat gets out the saw 21:49
lue++
lue 2: You mention that (Any) is what the container defaults to if "nothing is specifically specified.", then move on to is default. I was thinking, perhaps mentioning that 'my Int $a' is another way of changing this before talking about is default would be helpful. 21:50
(lest people believe "is default" is the *only* mechanism to change this, is what I'm getting at.) 21:51
lizmat yes, I was thinking of mentioning that, just searching for a way to shoehorn that in 21:52
was thinking about *after* I also point out that specifying a default does not make elements in an array/hash exist
lue As long as your post doesn't end up implying that "is default" is the only (easy) way to change the default, I'm fine :) . 21:55
lizmat "is default" is the only way to change the default 21:59
the other way sets the type, which implies a default
lue: gist updated, does that address your worry ? 22:02
lue is my $a eqv. to my Any $a ?
lizmat afaik: yes
dalek kudo-star-daily: c1c2e67 | coke++ | log/ (5 files):
today (automated commit)
lizmat unless jnthn has hidden some subtle difference somewhere
22:03 c1sung left
[Coke] r-m back down to 0 tests again. 22:03
jnthn Num, my $a is my Mu $a is default(Any) :)
[Coke]: Um, huh?
22:04 skids left
lue jnthn: there's a "my" trait? Huh. :) 22:04
lizmat: I wasn't thinking exactly right about what my Int $a does. So scratch my previous concerns about the "my Foo" way of setting the default, and replace it with a simple "make clear that the factory default is the type constraint" :) 22:06
lizmat: which your updated gist seems to do, so I'm fine :) 22:07
jnthn [Coke]: I'm guesing some kind of build failure? 22:09
lue [Coke]: would this perchance be the result of a segfaulting Test.pm compile? 22:11
timotimo jnthn: it seems like .getDeclaringClass on a method will invariably get me the class where the method is *defined*, i can't see a method that will give me the class that *implements* the method i have here 22:13
[Coke] jnthn: make: *** [CORE.setting.moarvm] Error 139 22:14
timotimo it seems for each method i have to klass.getMethod and see if it resolves to the right position 22:15
[Coke] has a bit of time before he has to head out. want a bt? 22:17
or is it one of nwc10++'s reported ones, do you think?
jnthn [Coke]: No idea... 22:18
[Coke] bt it is.
timotimo well, that at least makes my code simpler
[Coke] I'm at 722aa27 - should I pull? 22:19
jnthn [Coke]: Can always try. Been fixing/doing bits all day
[Coke] I'll just wipe and start over. one sec.
oops. might want to do that in another directory to not screw up the daily run. 22:20
timotimo yay, my code seems to work! and shrinked down from about 60 or 80 lines to 4 22:24
dalek p/jvm_interop_dispatchers2: 204feb2 | (Timo Paulssen)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/BootJavaInterop.java:
shorter code, also working. pretty good improvement!
22:27
kudo/moar-support: 69860c8 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
Implement post-constraints.
jnthn timotimo++
I like short code and I cannot lie..
timotimo now methods that shouldn't be there aren't 22:28
lizmat decides to only cover "is default" and Nil in this blogpost and forget about the other variable traits for now 22:29
22:33 wsri left, wsri joined
timotimo is not sure what to do next 22:35
i should be moving the code over to rakudo. i guess that's next 22:36
lizmat look at the spectest errors in S05/modifiers?
timotimo who, me?
lizmat well, you asked :-) 22:37
timotimo "immer der, der so dumm fragt" ;)
lizmat who me? :-)
22:37 kaare__ left
jnthn Phew, that was some wrapping... :) 22:38
timotimo now i'd like to build myself a moar, too
to see some spectests pass :)
dalek kudo/moar-support: 5ec58d1 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
Implement p6isbindable.
22:40
22:42 rurban1 left
woolfy dwarring++ for perl6advent.wordpress.com/2013/12/1...-checking/ 22:47
Sweet example of (beginning of) games with Perl 6.
dalek p: d7f953d | (Arne Skjærholt)++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/ (2 files):
Extract P6Opaque.ByteClassLoader to its own class.

This is in preparation for CStruct support on JVM, which needs some of the same class generation infrastructure as P6Opaque.
22:48
timotimo i get a segfault when trying to build m-BOOTSTRAP, does that come from --optimize=3?
diakopter woolfy: mberends & sorear made neat games on niecza 22:49
jnthn timotimo: That, or just bad luck...
woolfy diakopter: interesting, games like what? Still playable?
diakopter tetris was the one I played; fun! 22:50
timotimo heh.
should i try to gdb it?
woolfy Ooh of the few games I ever played, tetris is one that I don't have to learn a lot of rules for and which is easy to play just for a couple of minutes. Does it look nice? 22:51
timotimo run_gc -> gc_collect -> gc_root_add_gen2s_to_worklist -> gc_root_add_gen2s_to_worklist -> segfault 22:53
woolfy Question (after reading some stuff on the #amsterdam.pm channel): is it possible in Perl 6 to uninstall a previously installed module, in a reliable way that is not destructive for the Perl 6 installation?
timotimo i don't have any locals on the stack, though
woolfy (I would like to mention on #amsterdam.pm that it is possible in Perl 6, and reliable, and non-destructive)(non-destructive as in "shit, now I have to re-install Perl 6 from the ground up) 22:54
timotimo woolfy: i don't think there is one yet, but i guess since we have a database for module-owned files soon anyway, it would be easy to do (unless a module is stupid enough to overwrite files from another module)
woolfy Hmmm.... "(unless a module is stupid enough to overwrite files from another module)" means that people are able to overwrite files from another module and so are able to mess up the Perl 6 installation anyway. 22:55
timotimo the module could also have some BEGIN { shell "rm -rf /" } in them
woolfy timotimo: what do you mean with "i don't think there is one yet"
timotimo that would be pretty destructive, too
i don't think there's "panda uninstall" 22:56
i don't see a reason why it would never be there
woolfy timotimo: Ah. History has shown repeatedly that an uninstall is desirable from a maintainer's point of view.
timotimo well, with less --optimize i get farther in the build
xenoterracide p: my Int ( $digit, $v ) = ( 0, -1 ); 22:57
camelia ( no output )
timotimo if you're a maintainer, you're likely using a "real" package system like rpm or dpkg and then you get uninstall for free
woolfy Like what happened to me "oh shit, this is absolutely not what I want, I want to get rid of this pile of poo as soon as possible"
timotimo yeah
22:58 bluescreen100 left
lue timotimo: o.o ... note to self, don't run modules under sudo :) 22:58
xenoterracide I don't know that I agree with that... I've uninstalled stuff for debugging purposes to great success
woolfy timotimo: uhuh, that is in my opinion the arrogant way of nerds to look at this: "if you are not able to use a real system like rpm or dpkg, than you should not mess with modules and do nothing with Perl 6..."
timotimo wow, moar does stage parse much faster than parrot does o_O
woolfy: that's not what i meant, though :)
woolfy timotimo: of course not, but that is what it boils down to at the end. 22:59
timotimo i think we should get an uninstallation command for panda
woolfy agreed
xenoterracide ++
lue is genuinely afraid of triggering the heisenbug for panda again :/
lizmat agree with needing an uninstall feature 23:00
xenoterracide though tbh, I'm not generally in favor of using git to install packages, I think it's a bad idea
lizmat in Panda
jnthn timotimo: Much faster? I thought it was only a bit faster...
23:00 BenGoldberg joined
timotimo 83 instead of 100 23:00
xenoterracide and thus I could be in favor of not worrying about it until we have a p6PAN
woolfy lue: now is the time that design changes will have not that big of an impact on the user base. The sooner this is changed and tested, the better.
jnthn Ah, that's a little bit :)
lue woolfy: of course, that was just a general lament. I'm about to have to reinstall panda anyway. 23:01
woolfy Poor lue!
lue moar goes through stage parse in about 1/2 the time of parrot (and jvm 1/6 the time of parrot), for me.
timotimo but i also segfault in Test.pm with --optimize=1
woolfy OK, anyway, I will not boast on #amsterdam.pm that it is possible (or even easy) in Perl 6 to reliably and non-destructive uninstall modules. 23:02
lue timotimo: I just tried recompiling moar and nqp with debug options to find the reason behind a Test.pm segfault, but it disappeared for me :/
timotimo :o
well, at least i have symbols in my bt full now. 23:03
woolfy After having several talks with mberends++ I am bugging lizmat every now and then that Perl 6 should have good a garbage collection system built in, so that memory usage will not explode like in Perl 5.
timotimo yeah, item is 0x1
woolfy Which is related in my eyes to being able to uninstall non-wanted unused modules. Garbage has to go and should be possible and easy to do. 23:04
timotimo why would an item end up being 1?
it gets checked against null a few lines earlier, which doesn't trigger for comparing against 1
lue woolfy: sounds good. Incidentally I have a script here that explodes from ≈ 10-30% usage to ≈80% mem usage, at least with parrot.
xenoterracide woolfy: not sure what uninstalling modules has to do with memory...
unless your applications are loading modules just because they're there 23:05
woolfy I realise that this uninstalling modules is different from garbage collection. But there's garbage in memory and garbage on diskspace and garbage in the installation. I love to clean garbage. Any garbage.
xenoterracide just OCD, I generally clean up that garbage these days by new brew, and destroy old brew 23:06
woolfy That said, tomorrow is garbage day... I have to bring out the garbage. (bring out your dead, bring out your dead)
lue our Any \garbage;
xenoterracide before a uninstall in panda a p6 brew would be nice
:D
(continues to think about trying to add rakudo to perlbrew 23:07
lue idly wonders if the heisenbug with panda was perhaps a result of a terrible habit of not turning off the computer ever.
xenoterracide lue: if you're running on windows, then yes 23:09
windows has no reboot heisenbugs all the time
rarely seen it on linux
lue xenoterracide: nope, if you go in the backlog a few days back you'll see it was a painful wrangling with fork and ENOMEM
that was fixed by not seemingly doing anything 23:10
xenoterracide well it's possible, I'm just pointing out that kind of thing happens all the time on windows
xenoterracide is convinced hibernation is a horrible idea
lue My actual suspicion is/was that forking in r-p gets amazingly terrible at times.
jnthn xenoterracide: Hm, seems the Windows machine I'm currently on has been up since 23rd August... :) 23:11
Nearly 4 months. :)
xenoterracide jnthn: does it goe into hibernation? the odds of strange errors increases by the number of times it hibernates
jnthn Well, it certainly sleeps... 23:12
Not sure if sleep == hibernate
lue
.oO(When nighttime's the best time to compile stuff, when do you shut it off?)
timotimo jnthn: an idea how i can debug what's going wrong here? or should i recompile with --optimize=0 and try again?
23:13 rurban1 joined
jnthn timotimo: You could try that, but you're probably hitting one of the not-yet-fixed GC issues. 23:13
timotimo most probably, aye
yeah, i don't really think i'm the right person to do that :P
jnthn Well, nwc10++ has given us a very nice automated tool for hunting them... :) 23:14
lue is potentially the person insane enough to at least try fixing GC bugs :P
23:14 rurban2 joined
timotimo right :) 23:16
xenoterracide jnthn: so I take it you never reboot the windows for patches?
23:17 rurban1 left
jnthn xenoterracide: It's been pestering me about it for ages...grr.. :) 23:17
jnthn should probably use Christmas break for the restart :)
23:19 rurban2 left
lizmat final update of blog post in gist.github.com/lizmat/8046770 23:20
wordpressing it now
timotimo unoptimized moar takes 135s to parse
23:20 gdey joined
lue timotimo: this is on the better or worse computer? 23:21
23:21 cognominal joined
timotimo the better one. the one that takes 100s on parrot 23:21
lue Ah. For a second I was thinking "your worse computer seems to be doing a better job of things than my one computer" :) 23:22
timotimo hah, that would be cool
i'd love to have a laptop that performs better than my desktop :P
now i segfault in stage mbc, though :(
lue after the "stage mbc" appears, or just before? 23:23
timotimo oh, after
lue
.oO(laptops are just the portable dumb terminals to your desktop, right?)
23:24
timotimo and when i hit make install again it dumps core when trying to build Test.pm
23:24 telex left
lue timotimo: FWIW I once had a segfault there too. That end-of-setting/Test.pm area of the r-m process has been volatile for me. 23:24
23:25 c1sung joined
timotimo it comes from garbage collecting stuff :( 23:26
item = 0x1
23:27 Ben_Goldberg joined
lue At least it's a (set of) random bug(s) we know specifics about :) 23:28
timotimo ig uess that means i'll have to continue work on jvm interop stuff for now :\
23:28 telex joined
timotimo yeah :\ 23:29
23:29 BenGoldberg left
timotimo everyone else can play and i have to work :( 23:31
lue try `gdb make` and then `make`, setting --debug on MVM's configure, etc. Those things have somehow made things work for me before. Not sure of the reliability of these methods :) 23:32
timotimo yeah, i've done --optimize=0 23:33
23:33 FROGGS[mobile] left 23:35 skids joined, rurban1 joined
dalek rl6-roast-data: 0c7dc9c | coke++ | / (4 files):
today (automated commit)
23:36
timotimo aaw, 00.00% 23:41
[Coke] new failure on daily roast: make: *** [gen/moar/stage1/nqpmo.moarvm] Trace/BPT trap: 5
(changed from the core setting segfault)
lizmat for those wordpress empowered among you, preview available on perl6advent.wordpress.com/?p=2181&a...eview=true
woolfy lizmat++ for het advent blog post... just had a discussion about some Nil aspects. Difficult stuff, but damn interesting and I guess very useful. 23:42
lizmat scheduled to be published in ~20 minutes
23:44 Guest69981 is now known as ajr_
lizmat notes that there still are no takers for day 23 and 24 :-( 23:47
23:48 ajr_ left
[Coke] if you're in there, when am I due? 21? 23:49
lizmat 21 Contract by signature - coke 23:50
indeed
[Coke] danke
jnthn Gotta set off to the airport in 5h or so, so gonna catch some sleep. Will be mostly offline for the next days, I suspect. 23:51
Have fun :)
'night o/
lizmat gnight jnthn!
safe travels, enjoyable time!
masak for 22 A catalogue of operator types - masak
23:55 araujo left 23:56 araujo joined
lue lizmat++ # blog post 23:57
lizmat: The second-to-last codeblock has a perl6-p instead of just perl6
lizmat fixed, lue++ 23:58
timotimo lizmat++ # blog post
lue I kinda like using 'Nil' as a way of saying "this spot in the array should be just as undefined as when it started", the way it is, instead of a :delete synonym.
Though I suppose I could just assign the proper type from Array[type] :) 23:59
lizmat lue: but that's just it, it's *not* the same way as it started