»ö« 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.
lue Could it be that rakudo's just not reading in the stuff correctly? NQP at least goes off without a hitch. 00:02
timotimo hm, or maybe it's my in-line if? 00:05
ww
00:05 jnap left
jnthn sleep; 'night o/ 00:12
FROGGS_ gnight jnthn 00:13
timotimo good night, jnthn :) 00:14
00:17 spider-mario left
lue The parrot::cflags that the configuration steps reads in has the ffi include. This is weird. 00:21
00:36 jnap joined
[Coke] someone ping me when moar-support merges back to nom. 00:37
00:37 smls left
lue FROGGS_: I got it! Somehow, Moar's CFLAGS settings are overriding Parrot's, even though the Moar stuff comes after the Parrot stuff (in the Makefile, that is) 00:40
00:41 jnap left
lue Don't know how to fix that though :( 00:41
dalek rl6-roast-data: 483a968 | coke++ | / (3 files):
today (automated commit)
00:43
00:43 pdurbin joined 00:46 logie joined 00:48 jnap joined, colomon left 00:49 colomon joined
[Coke] there we go. 00:51
BenGoldberg Pre-Anouncement: The next backend VM for Rakudo will be released on 4/1/14, and will target SNUSP.
00:51 logie left
timotimo i think i'll update my diff gist and go to sleep 00:51
maybe someone figures out why it fails the way it does 00:52
gist.github.com/timo/af7bc1b6725d1734a6eb
00:58 thou left 01:05 xenoterracide joined 01:07 erkan joined 01:08 MikeFair left, immortal left, logie joined 01:11 thou joined
lue Disambiguating them to P_CFLAGS and M_CFLAGS seems to have helped. I may go and generate a PR later to do that for all such variables then. 01:13
01:18 MikeFair_ joined 01:27 logie left 01:43 dayangkun joined 01:47 logie joined 01:53 espadrine left 01:57 dayangkun left 02:17 jnap left, hoverboard left
lue anyone know why S28 puts "S26" in parens but not any other S** ? 02:18
rn: say $*VM.WHAT; 02:20
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«(Hash)␤»
..niecza v24-109-g48a8de3: OUTPUT«(timeout)[auto-compiling setting]␤»
lue Also, could you enlighten as to why we put a hash in a $ variable? :) 02:21
clsn__ I don't know if this is a bug... can't demonstrate on camelia, it only happens in the repl. Do "my $*a" and then "say $*a" on two separate lines. You get a different answer from "my $*a; say $*a" on one line. 02:23
lue clsn__: looks like a REPL error to me. 02:25
clsn__ OK.
lue (specifically, doesn't keep dynamic variable between REPL lines for some reason)
03:10 logie left 03:17 jnap joined 03:22 jnap left 03:28 aindilis left 03:36 jnap joined 03:41 jnap left
raiph p56: say 1 03:47
camelia p5-to-p6 : OUTPUT«say(1)␤»
03:49 BenGoldberg left
lue p56: print "thing\n" 03:52
camelia p5-to-p6 : OUTPUT«print('thing' ~ chr(10))␤»
03:56 thou left 03:57 hoverboard joined, daniel-s__ left 03:59 atroxaper joined 04:14 abnorman joined 04:16 logie joined 04:19 dayangkun joined 04:20 mcglk joined 04:21 logie left 04:26 logie joined 04:27 atroxaper left, hoverboard left 04:34 nebuchad` is now known as nebuchadnezzar 04:35 grondilu left 04:37 jnap joined 04:41 jnap left 04:42 preflex left 04:43 preflex joined, ChanServ sets mode: +v preflex 04:48 xenoterracide left 04:52 thou joined 04:57 kaare_ joined 05:13 kurahaupo left 05:21 cognominal__ left 05:25 logie left 05:43 kaare_ left 05:56 dayangkun left 05:57 dayangkun joined 05:58 abnorman left 06:08 erkan left 06:31 kaleem joined 06:44 darutoko joined 06:47 dayangkun left 07:19 PacoAir joined 07:23 SamuraiJack__ joined 07:25 kurahaupo joined 07:33 thou left 07:39 jnap joined 07:41 kaare_ joined 07:44 jnap left 07:58 usernotexists joined 08:17 SamuraiJack__ left 08:22 zakharyas joined 08:27 baest joined, hoverboard joined 08:28 brrt joined
brrt happy new year #perl6 08:28
08:32 darutoko left, darutoko joined 08:33 autark left 08:34 Piers joined 08:40 jnap joined
FROGGS_ happy new year brrt 08:42
TimToady: what do you think about that? gist.github.com/FROGGS/fbb4455f544...n-short-md
08:42 FROGGS_ is now known as FROGGS 08:44 jnap left 08:50 raiph left 08:57 denis_boyun joined 08:59 eternaleye left 09:00 eternaleye joined, eternaleye left 09:01 eternaleye joined 09:02 eternaleye left, eternaleye joined 09:06 denis_boyun left 09:13 denis_boyun joined 09:25 denis_boyun left 09:27 xinming_ joined 09:30 xinming left, espadrine joined
masak brrt: Year.new( :happy ) 09:37
09:37 denis_boyun joined
brrt :-) 09:37
09:41 jnap joined 09:45 denis_boyun left, jnap left
hoelzro morning #perl6! 09:46
timotimo morning!
hoelzro с новым годом!
and happy new year!
masak с новым годом, hoelzro! 09:49
09:53 hoverboard is now known as oiledupfatmama 09:57 oiledupfatmama is now known as hoverboard, hoverboard left, denis_boyun joined
masak r: for 1..10 { say "hop!"; NEXT { say $_ } } 10:02
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«hop!␤1␤hop!␤2␤hop!␤3␤hop!␤4␤hop!␤5␤hop!␤6␤hop!␤7␤hop!␤8␤hop!␤9␤hop!␤10␤» 10:03
10:03 denis_boyun left
masak very well. 10:03
r: for 1..10 { say "hop!"; ENTER { say $_ } }
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«1␤hop!␤2␤hop!␤3␤hop!␤4␤hop!␤5␤hop!␤6␤hop!␤7␤hop!␤8␤hop!␤9␤hop!␤10␤hop!␤»
10:12 denis_boyun joined 10:16 denis_boyun left 10:23 darutoko- joined 10:26 darutoko left 10:40 kurahaupo left 10:41 jnap joined 10:46 jnap left 10:47 sftp_ left, mtk0 joined 10:48 sftp joined 10:55 sftp left 10:59 sftp joined 11:00 brrt left 11:11 [Sno] left, [Sno] joined
FROGGS masak / lue: what do you think about that? gist.github.com/FROGGS/fbb4455f544...n-short-md 11:35
11:35 kurahaupo joined
masak looks 11:38
11:38 sftp left
masak FROGGS: hm -- I got to the 'action' keyword, and my forehead got furrows. 11:39
FROGGS: feels like too little bang for the buck. the 'method' keyword (in a separate class) already does that.
in order not to just say "no" to a proposal, here's a counterproposal, not necessarily perfect, which doesn't introduce the 'action' keyword: 11:40
keep 'slang COBOL', that's nice. but have a way to associate an action class to this slang. maybe through an adverb somewhere.
oh! oh!
you have $~COBOL.module-loader in the example. 11:41
do the same thing with $~COBOL.actions
FROGGS: minor nit: $~COBOL.module-loader( COBOL::ModuleLoader );
FROGGS: that's the Perl 5 way of doing setter accessors.
FROGGS $~COBOL.actions and .grammar would already be there 11:42
masak the Perl 6 way is $~COBOL.module-loader = COBOL::ModuleLoader;
FROGGS because you don't want to have a 6k lines file when you could have two 3k lines files
true
11:42 jnap joined
masak FROGGS: if that's so, then all the more reason to declare .grammar and .actions in separate blocks. 11:42
FROGGS I just think that it would be nice to have one thing for a CSV or YAML parser 11:43
masak FROGGS: come to think of it, you probably shouldn't flatten together 'slang' and 'grammar' either.
11:43 sftp joined
masak FROGGS: I'd much rather see a slang *having* a grammar and actions, and an optional module loader. 11:43
FROGGS that is the idea 11:44
masak right. nice.
then please don't declare tokens and actions directly in the slang ;)
you think it's cute today :)
but it's mixing levels.
FROGGS so, no first class "slang" keyword :/
yeah
masak I'm not against the 'slang' keyword.
FROGGS what should it do then?
masak I'm against it directly doing the work of grammars and action classes.
it should just pull the parts together, like the tip of a pyramid. 11:45
FROGGS but how?
masak maybe 'slang COBOL { has $.grammar = ...; has $.actions = ...; has $.module-loader = ...; }'
so basically a class with a funny metaclass.
FROGGS hmmm
masak very Perl 6 :)
FROGGS I could just make a role (Slangy) that stubs attributes... wait, we don't have that feature :o) 11:46
or do we?
p: my role Slangy { has $.grammar = ...; } 11:47
camelia ( no output )
FROGGS p: my role Slangy { has $.grammar = ...; }; class COBOL does Slangy { }
camelia ( no output )
FROGGS p: my role Slangy { has $.grammar = ...; }; class COBOL does Slangy { }; my $cobol = COBOL.new
camelia rakudo-parrot a77214: OUTPUT«Stub code executed␤current instr.: 'throw' pc 410302 (src/gen/p-CORE.setting.pir:171896) (gen/parrot/CORE.setting:10737)␤called from Sub 'sink' pc 446395 (src/gen/p-CORE.setting.pir:185119) (gen/parrot/CORE.setting:12127)␤called from Sub 'MAIN' pc …»
FROGGS cool
p: my role Slangy { has $.grammar = ...; }; class COBOL does Slangy { }; my $cobol = COBOL.new( :grammar )
camelia ( no output )
11:47 jnap left
FROGGS very nice 11:47
okay, so the slang keyword just applies the Slangy role, and registers the slang's name as $~name and the grammar+actions in %*LANG 11:50
masak FROGGS: though it could be argued that the above should blow up at composition-time.
as in, at the final '}' after the 'does Slangy'.
FROGGS true, but it is good enough for me
masak p: role R { method foo { ... } }; class C does R {}; BEGIN { say "alive" } 11:51
camelia rakudo-parrot a77214: OUTPUT«===SORRY!===␤Method 'foo' must be implemented by C because it is required by a role␤»
hoelzro .oO( does Slanky? )
masak FROGGS: yes, I'm just thinking from the perspective of rakudobugs ;)
masak submits one
FROGGS masak++ :o)
masak: I updated it, thank you very much! 12:01
then there is just the question if the entry point for all slangs should be token statementlist or something else
12:05 brrt joined 12:09 berekuk joined
masak hm. not TOP? 12:12
12:14 daniel-s_ joined, Timbus left
FROGGS lemme think about it... 12:17
but I think there is no reason to not use TOP
12:29 kivutar joined, census left 12:32 cognominal joined 12:43 jnap joined 12:48 kurahaupo left, jnap left
moritz was a bit surprised that www.perl.com/pub/2014/01/the-year-i...ctive.html didn't mention the p6 advent calendar, until he noticed that the author was chromatic. Go figure. 12:51
12:51 usernotexists|2 joined 12:52 usernotexists left 12:53 skids left 12:56 rindolf joined
masak moritz: fortunately, there are many p5ers who are very inclusive of Perl 6. 12:56
moritz masak: aye 12:57
(and I could very well imagine that the p6advent blog had more visitors than any of the p5 advent calendars) 12:58
13:02 psch joined
psch hi #perl6 (because i forgot it every time before) 13:05
moritz: i've looked more at #76368 and your blog posts wrt exceptions, and i fail to see how the bug fits in there 13:07
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=76368
psch from what i understand, the exceptional state happens in the optimizer, which dies right through to the backend, e.g. die_s_c in the jvm
i'd assume the backend doesn't have to know exceptions like "wrong argument type for signature" 13:09
my questions then are "how wrong am i in my understanding" and "is there already a plan how this should work" 13:12
13:18 colomon left 13:20 benabik left 13:24 colomon joined
masak hi psch 13:24
13:28 cognominal left
psch hi masak 13:28
.oO( so im not lagging out )
13:29
timotimo wow, timsort is a really complex beast; i don't think i want to implement that today 13:31
13:33 kaleem left 13:36 daniel-s_ left 13:37 ajr joined 13:38 ajr is now known as Guest3649, Guest3649 is now known as ajr_
masak anyone from .dk who has time for a brief privmsg? 13:39
13:40 wooden left
diakopter nononononono 13:40
masak hides from whatever reaction diakopter is expressing :)
diakopter :D <- a smile/smiley 13:41
masak :)
13:41 pdurbin left 13:44 jnap joined
moritz psch: well, even the optimizer should throw typed errors 13:45
arnsholt masak: Almost said I was probably close enough, until I saw it was you who was asking =) 13:46
13:48 jnap left
masak :) 13:51
13:51 Piers left
masak .oO( close enough... linguistically ) 13:51
13:53 atroxaper joined
psch moritz: okay, so for this case that would mean building the correct exception in report_inevitable_dispatch_failure in the optimizer and adapt the loops over %worrying and %deadly to handle exceptions as well? 13:55
i.e. i was wrong with thinking it goes back into the backend
13:56 daxim joined 14:06 jnap joined 14:08 berekuk left 14:15 berekuk joined 14:17 kaleem joined
moritz psch: yes, building the correct exception in report_inevitable_dispatch_failure sounds right 14:29
14:31 spider-mario joined 14:32 spider-mario left
brrt \o moritz 14:32
not that is of any interest whatever, but i have a teacher also called m.lenz 14:33
14:33 berekuk left 14:34 spider-mario joined, kbaker joined, ajr_ left 14:36 SamuraiJack__ joined 14:37 ajr joined 14:38 ajr is now known as Guest22838, Guest22838 left 14:43 ajr_ joined
moritz at least in .de, my name strikes a good balance: it's common enough that people know the name (in principle), so they know how to spell it, but it's not a group identifier either 14:43
14:45 skids joined
masak what's the URL to that site that tracks/compares the size of CPAN-alikes in various languages? 14:48
14:53 ajr_ left 14:54 berekuk joined 14:55 logie joined 14:56 ajr_ joined 14:58 berekuk left 15:01 berekuk joined 15:09 berekuk left 15:11 benabik joined 15:14 xenoterracide joined 15:15 raiph joined
Ulti did you guys realise putting 'use v6;' in this funtime box works? perltuts.com/try vti++ 15:15
since June too 15:16
timotimo whoa, it totally does 15:17
but it runs on parrot 4.3 :) 15:18
rakudo 2012.04.1
masak wow, that's cool. vti++ 15:20
masak read "This code is editable" as "This code is edible"
timotimo mhhhhh 15:21
Ulti vti has a repo for the POD of each tutorial too so I guess there is no reason Perl6 tutorials couldn't be added... is that the rakudo that comes with Debian/Ubuntu? 15:22
timotimo that's cool :)
i wanted to do something similar to that
but i've been waiting for rakudo-js for more or less obvious reasons 15:23
[Coke] I can't get any code to work on perltuts.com/try - Evaluator system error
Ulti there was something similar to that I spent a couple of days trying to get try.perl6.org to work locally ;__;
jnthn Hmm...I didn't get "use v6;" to work either... 15:24
masak I got a "Timeout". 15:25
15:25 wooden joined, wooden left, wooden joined
Ulti I think we just broke perltuts.com! 15:25
at least mine is
psch '1;' gives me an evaluator system error
so, yes, probably broken
[Coke] jnthn: I figured I'd give moarvm a few days to shake things out before I even thought about fudging/opening tickets. please let me know if there's anything I can do to help highlight issues other than make sure I post the daily run as soon as it's available.
(which, java folks, would be sooner if the eval server didn't crap out on the daily runs.) 15:26
timotimo .o( maybe even compile MoarVM with emscripten instead of waiting for rakudo-js )
15:26 kaleem left 15:34 thou joined
jnthn I don't think "has $.a = ...;" not blowing up at compile time is a rakudo bug. It's not like you can actually do anything about it at compile time. There's no way to specify the default for another attribute after you compose it in. 15:34
15:36 sorear_ left
jnthn [Coke]: Daily runs are helpful right now. We can also try doing the "categorize the most common failure modes" thing at some point, but that needs error reporting to be fixed first... 15:37
15:38 cognominal joined
diakopter rj: class A { has $.b = BEGIN $.b } 15:38
camelia rakudo-jvm a77214: OUTPUT«===SORRY!=== Error while compiling /tmp/KQu2EDWefB␤Virtual call $.b may not be used on partially constructed objects␤at /tmp/KQu2EDWefB:1␤------> class A { has $.b = BEGIN $.b⏏ }␤ expecting any of:␤ …»
jnthn Nice try :P
diakopter rj: class A { has $.b = BEGIN A }
camelia ( no output )
timotimo oh my :) 15:39
15:39 sorear joined
diakopter rj: class A { has $.b = BEGIN A.new } 15:40
camelia rakudo-jvm a77214: OUTPUT«===SORRY!===␤No such method 'new' for invocant of type 'A'␤»
diakopter rj: class A { has $.b = BEGIN say A.^methods }
camelia rakudo-jvm a77214: OUTPUT«===SORRY!===␤No such method 'dispatch:<.^>' for invocant of type 'A'␤»
jnthn diakopter: Default parent doesn't get applied until composition time... 15:41
diakopter rj: class A { has $.b = BEGIN COMPOSE say A.^methods }
camelia ( no output )
15:41 baest left
diakopter o_O 15:42
jnthn what the heck is COMPOSE?
diakopter something that silently noops? :)
timotimo :D 15:43
diakopter get it? silently noops? :)
jnthn :P 15:45
diakopter jnthn: I was just hoping there was some phaser for compose-time, since you mentioned it as a thing :)
timotimo i don't get it :( 15:46
jnthn Apparently, there is... :)
diakopter timotimo: I was just giggling about the redundancy of saying something that is no-op is also silent :D
timotimo oh
heh :)
diakopter we've got all kinds of -times 15:48
timotimo may you live in exciting -times
diakopter now what I really want is a TYPING { }
timotimo hahaha 15:49
diakopter or DESIGN { }
timotimo for each stage of the waterfall model
diakopter SCRUM { }
SCRUM { sleep while 1 } 15:50
jnthn WEBSCALE { use Bailador; ... }
diakopter SCRUM { sleep 999**999**999 } # don't actually get around to sleeping 15:51
timotimo m)
dalek kudo-star-daily: c52aa23 | coke++ | log/ (5 files):
today (automated commit)
15:56
15:57 census joined
diakopter I guess 9e99**9e99 is shorter 15:57
[Coke] ^^ several modules need to track the eval -> EVAL change. 15:58
timotimo where do all those nil thingies in xmt-writer come from?
and in svg?
[Coke] I think they've been there for a while. 15:59
you can do a bisect to see when they showed up, which will give you two rakudo commits to figure out what changed.
(assuming the module is static)
hoelzro has @.cells = map({ !generate-cell }, 1..81) doesn't work, does it? 16:00
timotimo yeah, that's not curried properly
jnthn hoelzro: Did you want self!generate-cell ?
hoelzro yes. 16:01
thanks jnthn !
timotimo is self!generate-cell a reference to the sub rather than a call without arguments?
jnthn No, it's a call to a private method
timotimo ah, it doesn't want the $_
in that case, yeah
is &self!generate-cell a reference to the method? 16:02
jnthn No, just like &self.foo isn't.
timotimo OK, you still need .^can and friends for that
or make a whatever-curried block 16:03
16:11 fribeiro joined 16:12 fribeiro left, fribeiro joined
hoelzro there's a way to take a list of kv pairs and make it into a hash, merging duplicates into an array value, right? 16:12
ex. magic-method([:foo(1), :bar(2), :foo(3)]) # { :foo([1, 3]), :bar(2) } 16:13
timotimo yeah, it's .push
().hash.push( [ ... ] )
(i think) 16:14
hoelzro does that return the resulting hash, then?
timotimo let's try
r: say ().hash.push( [ :foo(1), :bar(2), :foo(3) ] )
camelia rakudo-jvm a77214: OUTPUT«Trailing item in Hash.push␤().hash␤»
..rakudo-parrot a77214: OUTPUT«Trailing item in Hash.push in block at /tmp/ZYc1li3ZYA:1␤␤().hash␤»
timotimo whoops
r: say ().hash.push( :foo(1), :bar(2), :foo(3) )
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«().hash␤»
hoelzro hmm 16:15
timotimo r: say ().hash.push( "foo", 1, "bar", 2, "foo", 3 )
hoelzro maybe I'm looking for classify
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«("foo" => [1, 3], "bar" => 2).hash␤»
timotimo no, you're not.
well ... classify also works
hoelzro I'm not?
well
I have a list of Cell objects
and I want to organize them based on their blocks
16:16 kaare_ left
timotimo i think classify will give you "foo" => ["foo" => 1, "foo" => 3] ... 16:16
16:16 brrt left
hoelzro so I *was* going to do %remaining.push(map({ $_.block-no => $_ }, @.cells)) 16:16
timotimo suggests .push:
moritz p: say (1..8).classify(* % 2).perl 16:17
camelia rakudo-parrot a77214: OUTPUT«("1" => [1, 3, 5, 7], "0" => [2, 4, 6, 8]).hash␤»
16:19 mohij joined
masak <3 .classify 16:19
timotimo p: say (1..8).classify( * <3 ).perl 16:20
camelia rakudo-parrot a77214: OUTPUT«("True" => [1, 2], "False" => [3, 4, 5, 6, 7, 8]).hash␤»
16:24 btyler_ joined
masak ;) 16:32
16:37 kivutar left 16:38 zakharyas left, btyler_ left 16:39 btyler_ joined 16:40 btyler_ left 16:43 ajr_ left 16:46 ajr joined 16:47 ajr is now known as Guest93117, Guest93117 left
[Coke] daily moar run starting... 16:48
16:48 ajr_ joined
[Coke] it's complaining about a missing file. I assume we need another merge from nom back to moar-support? 16:48
(missing roast file)
... that was yesterday, Coke. nevermind. 16:49
today already looking much cleaner.
do we want to track timings on these daily runs? or is perlbench better for that? 16:51
japhb I would like to see timing info, because it seems not terribly hard to add, but gives a data point from a different space than perl6-bench covers -- many short-running processes, summed up. 16:52
FROGGS hmmm, does it make sense to know how fast we abort tests?
japhb Mind you, it's going to be mostly noise for r-m at first, but for each semi-mature platform, it should become useful info. 16:53
FROGGS: I think it's valuable to just get the infrastructure in place and debugged for recording and tracking it, in preparation for when it's giving more stable data. 16:55
16:55 ajr_ left
FROGGS it would be interesting indeed for test files that pass exactly like parrot/jvm, because then you would see how good moarvm is in the various regions... 16:56
japhb Right.
FROGGS like the mass regex tests
16:57 ajr_ joined
FROGGS and if we see that parrot is way faster in some categories, we can compare details (and borrow ideas) 16:57
japhb I'm expecting to find some good spots and the occasional bad spot that we should look at -- sorta like r-j's performance issues with certain string operations.
FROGGS exactly 16:58
jnthn curry, beer & 17:01
FROGGS ohh, nice
japhb Mmmm, curry.
17:04 btyler_ joined, berekuk joined
[Coke] beats me, I'm at diet soda, cupofsoup 17:06
timotimo now that we have a bunch of "provides" sections in some of our modules, rakudo could try to ask panda for packages providing a given module if you try to use something that's not installed
FROGGS timotimo: my idea was to put implement that as a module loader with a very low priority 17:07
for that we need to (heavily) test the eleven branches 17:08
timotimo sounds excellent :)
17:08 grondilu joined
timotimo point me at the place where it would have to be implemented and what the API is? :P 17:08
FROGGS timotimo: and btw, since we have :auth, we could install directly from github if auth matches /^github:\w+$/ 17:09
github.com/rakudo/rakudo/blob/elev...llation.pm 17:10
you would add a CompUnitRepo::Remote::Installer or so
timotimo that sounds nice :)
FROGGS and you would just need to implement the candidates method
by "directly installing from github" I mean that we still use panda, but it does not need to be listed in the ecosystem 17:11
17:11 btyler_ is now known as btyler
timotimo does auth<github> allow you to provide a tag with gpg signature or a full sha1? 17:11
(or would i be in charge of implementing that?) 17:12
FROGGS timotimo: we can pass additional adverbs to use statements 17:13
timotimo cool
17:13 cooper left
FROGGS you already get them passed to the candidates method I think 17:14
so, just name them :o)
17:14 cooper joined
timotimo tadzik: bailador should really do NFA construction for routes, don't you think? :3 17:14
FROGGS would be cool if the stuff from github get its version information from the tags if no other version literal is available 17:15
timotimo from the META.info? 17:16
FROGGS yes 17:17
timotimo hm. will our backends garbage-collect regexes and grammars?
like, if i eval a hundred different grammars?
and only use each grammar once or twice?
FROGGS no idea
timotimo tries 17:18
without wanting to give away too much, that question is interesting for my next project :P
my next big project, i should say. with a real possibility it'll never see the light of day :\
japhb preflex: tell jnthn I forgot to answer your question about my blockers. Right now, for p6-pb, I'm blocked on union(num,int) (I believe I have the remaining non-deprecated parts of binary Protocol Buffers implemented now). For concurrent Net-IRC, I'm semi-blocked on async sockets. There's some work I could do, but it's making design hard to have that unknown.
preflex Consider it noted.
FROGGS timotimo: these are the best projects :o) 17:20
timotimo heh
FROGGS I have one of these in my pocket and I am going to work on it again this year.... need to resurrect SDL or make the bindings to SDL2 for that 17:21
japhb (greek yogurt parfait)++
17:25 abnorman joined
timotimo at least parrot doesn't seem to free the memory back up 17:27
FROGGS yeah, it does it as late as possible
timotimo meh. 17:28
it seems like the same thing happens on the jvm, though
17:29 berekuk left
FROGGS must be jnthn++'s fault then :o) 17:29
timotimo haha
FROGGS he is the designer, he is to blame :P
17:31 Tene_ is now known as Tene
tadzik timotimo: hhehee. Sure :) Did you see the Grammar Dispatcher experiment? 17:31
timotimo no
tadzik let me find it
timotimo did you string-compose a grammar? 17:32
hm, actually, it should be possible to do it programmatically. even if it's not implemented yet
tadzik ttjjss.wordpress.com/2010/11/21/per...r-parsing/
timotimo oh god that code is unreadable :o 17:33
17:33 SamuraiJack__ left
timotimo (due to the font) 17:33
(and color) 17:34
17:34 SamuraiJack__ joined
tadzik hm, is it? :) 17:34
timotimo it's too bright and the letters seem kind of butchered
(at least on my machine) 17:35
tadzik ttjjss.wordpress.com/2010/11/27/gra...p-further/ followup, but not so interesting
seems quite readable, on the n900 :) 17:36
timotimo there's a dead link to your http-server-simple fork in that last post
tadzik aw 17:37
17:38 berekuk joined
FROGGS jnthn: if you want to play with slangs, here is a short example (including a problem): gist.github.com/FROGGS/fbb4455f544a35cf265d 17:38
17:41 filly left
timotimo i wonder what's keeping the grammars alive 17:43
17:43 espadrine1 joined
timotimo hm, maybe the code loaded into the jvm? 17:44
17:44 espadrine left
moritz the namespace entry in GLOBAL:: ? 17:45
17:46 espadrine1 left, espadrine joined
timotimo i created the grammar with eval 17:46
i'm convinced eval shouldn't write to GLOBAL::
i can build 1017 small grammars before java errors out with PermGen space running out 17:47
moritz I'm convinced it should
timotimo oh?
to the outer GLOBAL::, too?
moritz r: BEGIN eval 'grammar A { token TOP { \d+ } } '; say A.parse('42')
camelia rakudo-parrot a77214: OUTPUT«「42」␤␤Saw 1 call to deprecated code during execution.␤================================================================================␤Sub eval (from GLOBAL) called at:␤ /tmp/Bb7VfjBxda, line 1␤Please use 'EVAL' instead.␤--------------…»
..rakudo-jvm a77214: OUTPUT«「42」␤␤Saw 1 call to deprecated code during execution.␤================================================================================␤Any statement_prefix:sym<BEGIN> (from unknown) called at:␤ gen/jvm/stage2/QRegex.nqp, line 724␤Please use…»
timotimo r: EVAL q{ grammar Test { rule TOP { abcdefg } } }; say GLOBAL::.keys()
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«Test␤»
timotimo :o
r: EVAL q{ anon grammar { rule TOP { abcdefg } } }; say GLOBAL::.keys() 17:48
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«␤»
timotimo that's what my code does, fwiw
moritz if you don't want it to escape, use "my grammar ... "
hm.
timotimo even with my grammar it grows until it runs out 17:49
jnthn: a clue where i'd hvae to look to fix this? 17:50
17:51 ajr_ left
timotimo i even made sure the for loop wouldn't collect the grammars 17:52
17:54 japhb_ joined 17:56 colomon left, fribeiro left
timotimo it's kind of sucky that parrot doesn't free memory earlier; running it on a shared host for example is not nice if you hog all the ram 17:57
17:57 Tene left
moritz has high hopes for moar 17:57
17:57 Tene joined
timotimo does, too 17:58
it's not here, though :(
18:00 colomon joined 18:03 mtk0 left, mtk0 joined 18:12 berekuk left, panchiniak joined 18:16 dagurval_ joined 18:18 benabik left 18:19 berekuk joined 18:24 abnorman left 18:26 btyler left
FROGGS masak: I got even rid of the previously needed EXPORT sub, so it is pretty sweet now: gist.github.com/FROGGS/fbb4455f544a35cf265d 18:27
now I could fiddle with the slang keyword, though that feels a bit premature
TimToady how does one derive a slang from the current %*MAIN language? 18:29
FROGGS difficult 18:30
since it is an nqp grammar
TimToady that's what augment vs supersede was trying to get at
FROGGS can't we just do: slang Perl7 is Perl6 { ... } or some such? 18:31
18:31 atroxaper left
moritz "we" "simply" have to fix inheriting from NQP classes 18:33
18:34 panchiniak left
arnsholt For some value of "we" equal to "jnthn", presumably =) 18:39
18:39 berekuk left, kurahaupo_mobile joined
TimToady well, at some point, when Perl 6 is fast, we need to finish the final bootstrap stage of hiding nqp completely, but we're not there yet 18:39
moritz arnsholt: I have started a branch that does the simple parts already :-) 18:40
diakopter TimToady: also, hiding the VM backends completely. ;) 18:41
japhb Abstractions leak. Also, long game is long.
[Coke] coming later today:
6295:"total", 18027, 10456, 327, 843, 28951, 28494
TimToady I don't really believe in "write once, run anywhere"
diakopter japhb: I do not leak, you leak.
moritz wiki leaks 18:42
TimToady I think VMs should stay visible in a declarative way
japhb wonders what exactly he abstracts away
diakopter (quote from a Disney movie)
TimToady use Win32;
[Coke] r: say 18027-17219
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«808␤»
diakopter much karma to who can name the movie
japhb mightily resists googling it. 18:43
[Coke]: Yay!
[Coke] guesses BatB
japhb What's the proper divisor? 28951?
diakopter hint: the character's name was Max
moritz oh, Max & Moritz 18:44
TimToady not be confused with Maximillian
from the worst Disney movie evar
diakopter well yes, that was its nickname by the human.
japhb (The Black Hole)++
[Coke] wow, that's old school. I think I have it on dvd.
still plenty of 'eval's in roast. 18:45
diakopter anyway, the answer was Flight of the Navigator 18:47
rj: eval 1 18:48
camelia rakudo-jvm a77214: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling 'eval' will never work with argument types (int) (line 1)␤ Expected any of:␤ :(Str $code, :lang(:$lang) = { ... }, PseudoStash :context(:$context))␤»
diakopter you're a pseudostash
18:50 berekuk joined
diakopter "none of these signatures match" 18:51
18:51 SamuraiJack__ left
diakopter should be "none of these signatures matches" 18:51
moritz erm, nope
zero implies plural 18:52
erm, wait
diakopter no, "none" is short for "not one"
TimToady diakopter: you're confusing one with any
*none
kurahaupo_mobile depends on dialect, unfortunately
timotimo TimToady: are you sure our beloved perl6 will be fast enough for nqp to disappear? o_O
TimToady timotimo: I'd like to know what prevents it from being just as fast to run (given sufficient analysis at compile time) 18:53
timotimo that'd be a lot of analysis :P
18:53 mtk0 left
moritz for one, it'll (nearly) always have another layer of containerization 18:54
japhb timotimo: I'd love to know that too. At least for the native types case.
Er, that was to TimToady's comment 18:55
diakopter ok, the internets tell me 'none' can mean 'not any' in addition to 'not one'. bleh. 18:56
FROGGS[mobile] TimToady: my proposal does not make augmenting $~MAIN impossible or obsolete btw 18:57
moritz second, we have yet to find a lazy list model that fits all of Perl 6's constraints and isn't dog slow 18:58
18:58 mtk0 joined
timotimo yes :\ 18:58
18:58 usernotexists|2 left 18:59 abnorman joined
timotimo if we only have one take in each "iteration" of a gather, we can do a sick transformation into a simple MapIter ... 18:59
18:59 ivanshmakov left
[Coke] feather.perl6.nl/~coke/moar.out updated with today's run (because it'll take forever for the rest of the runs to finish) 19:03
note that several tests now say "killed", which I didn't notice earlier. (I think killing them originally segfaulted)
diakopter heh, 137 segfaults 19:04
[Coke] heh, was just counting that. :)
several of those were posted as one liners to #moarvm yesterday
19:07 ivanshmakov joined
japhb raydiak: ObPRayReleaseCheck 19:07
[Coke] most failures in S05.
diakopter: 174 instances of CORE.setting.moarvm:print_exception
FROGGS[mobile] --ll-exception would show the real error 19:08
diakopter so 137/771 files segfaulted
FROGGS[mobile] I really like the result
19:09 darutoko- left
diakopter the birthing pangs, they are coma-inducing 19:10
[Coke] r: say 137/771
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«0.177691␤»
[Coke] diakopter: double free in there, too. 19:12
19:12 btyler joined
diakopter overly liberal 19:13
19:22 Util_ left, pmichaud left, PerlJam left 19:25 dalek left 19:26 synopsebot left 19:27 [Coke] left, dalek joined, ChanServ sets mode: +v dalek 19:28 census left, masak joined, synopsebot joined, PerlJam joined 19:29 dalek left, dalek joined, ChanServ sets mode: +v dalek, Juerd joined 19:30 hugme joined, ChanServ sets mode: +v hugme 19:32 Util joined, [Coke] joined 19:34 pmichaud joined 19:38 daxim left
lue hello world! o/ 19:50
raiph \o lue 19:53
lue FROGGS: I'm not sure I like thinking of my grammar and actions as mere attributes to a class, but that's something I can deal with :) 19:55
raiph "The Lost Art of C Structure Packing" news.ycombinator.com/item?id=6995568 19:56
FROGGS lue: I share that feeling, so please come up with something better :o)
(that is still sane)
lue About that "Perl 6 grammar in NQP" issue: I imagine at some point we'd have to rewrite the grammar as Perl 6 (or remind ourselves the NQP is a subset of P6 and could quite easily be dealt with as P6 because of it) 19:57
FROGGS problem is that you have different classes... it is a NQPCursor against a Cursor class for example
raiph I'm curious about the degree to which nqp, reprs, and zavolaj allow the sort of C Structure Packing art discussed in the above article and its HN post. 19:58
FROGGS raiph: I think we want something like shown in the very last comment here gist.github.com/FROGGS/6464777 20:01
arnsholt raiph: Zavolaj allows it, in the sense that it lays out structs as C would
It's pretty much orthogonal
20:02 kurahaupo joined
arnsholt It might be interesting to get P6opaque to lay out its memory to minimise wastage though 20:03
lue FROGGS: well, I personally think "slang" (the general idea of it, anyway) is closer to "module" and "package" than it is "class".
Hang on, wouldn't a slang need a Foo::World too? Or am I just being silly there? :) 20:04
FROGGS lue: depends 20:05
but yeah, I think it would not be very unlikely to have a World too :o) 20:06
lue Yeah, I'm lead to think that any setup that forces a particular number of classes/other things would eventually hurt someone. Hrm.... 20:07
(which means no sort of slang Foo grammars G actions A module-loaders ML; ) 20:08
20:17 fribeiro joined
lue I keep on thinking there should be a "speak" keyword for slangs, à la "make" keyword, but I have no clue what that would actually *do* :D 20:20
TimToady you don't 'use English'? 20:21
huf there's English in perl6 too? 20:22
TimToady no, but there's English in English :)
huf oh good.
20:22 mcglk left
lue TimToady: no, I meant some sort of slang Foo { #`(stuff that makes up that slang) ; speak this-command-brings-it-all-together } 20:22
20:23 mcglk joined
lue I keep on thinking that kind of "speak" command would be helpful, I just have no clue what it would do, exactly, or why it'd be necessary :) 20:24
20:25 mcglk left
TimToady in that case bikeshedding the word seems a bit...premature... 20:25
20:25 mcglk joined
lue My best description for the idea is "kind of like 'make', except it assembles a slang instead of an AST" 20:27
20:28 mcglk left, mcglk joined
mcglk Apparently, I can only type in 60 characters or so at a time. 20:28
Weird.
FROGGS mcglk: just increase your key repeat rate :o) 20:29
20:31 rindolf left
hoelzro how do you get Perl 6 to interpolate members of a range? 20:31
ex. I have 0,9..81
I want multiples of 9 20:32
TimToady add another .
hoelzro obviously map({ $_ * 9 }, 0 .. 8) would work
diakopter .
hoelzro ah, thanks TimToady, diakopter 20:33
TimToady p: say 0,9...81
diakopter pugs: say 0,9...81
TimToady hmm
diakopter camelia: alive?
camelia rakudo-parrot a77214: OUTPUT«0 9 18 27 36 45 54 63 72 81␤»
pugs: OUTPUT«*** ␤ Unexpected "81"␤ expecting operator, ":", "," or term postfix␤ at /tmp/ZPlzbVtHhx line 1, column 11␤»
20:33 hoverboard joined
diakopter p: say 0,9... 20:35
camelia rakudo-parrot a77214: OUTPUT«===SORRY!=== Error while compiling /tmp/g4wTf2LDHu␤Confused␤at /tmp/g4wTf2LDHu:1␤------> say 0,9...⏏<EOL>␤ expecting any of:␤ postfix␤ dotty method or postfix␤»
[Coke] anyone talks to au, we could use some pugs maintenance, btw.
diakopter au has another pit or few
hoelzro is there a way to specify the RNG used by Array.pick? 20:39
[Coke] guesses srand, if the backends implement that. 20:40
hoelzro I'm guessing I could tweek it with srand
but I was hoping there'd be a :rng option to pick/roll 20:41
TimToady what is the proper scope of a rng? 20:42
hoelzro now that I'm not sure about =)
lue r: srand(42); say "alive!" 20:43
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«alive!␤»
lue r: my sub srand($int) { say $int }; srand(42); say "alive!"
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«42␤alive!␤»
TimToady if one says "lexical", then one immediately has the problem that Array.pick is not compiled in your lexical scope :) 20:45
hoelzro I would assume I would create some Random-doing object $rng, and I could say @seq.pick(:$rng) 20:46
and $rng.next (or whatever) would be called
[Coke] has promised to give a 30m perl 6 presentation at the next (re-inaugural) albany.pm meeting!
20:46 berekuk left
lue TimToady: almost as if you need something that can be made in a lexical fashion, but functions quite exotically. Hmmmmmmm 20:46
[Coke] now to find some presentation I can borrow! :)
TimToady lue: well, you're talking about lift semantics, which are sufficiently problematic that we removed "lift" from the language 20:47
instead we'll figure out some macroish variant that can integrate the current lexical scope's definitions for various things
but it's hard to justify turning .pick into a macro
lue TimToady: I'd prefer to see a "replace RNG" solution more general than specific functions :) 20:48
hoelzro why can't rng just be passed in as an object?
TimToady much easier to justify thinking of .EVAL as a macro, since it depends on the current language, as influences the current language's semantics
s/as/and/
lue use RNG &myfunc; or something. 20:49
hoelzro hmm
TimToady lue: but what is the scope of that?
hoelzro is there a way to maintain a Set of objects? I tried using hash keys, but they get stringified
I guess I could do %h{$obj} = $obj 20:50
lue hoelzro: have you tried Set ? :P
skids notes case of concurrent use (and hence alteration) of RNG
hoelzro lue: no, I didn't see it on doc.perl6.org =/
TimToady p: say set([<a b c>], [<d e f>]).perl 20:51
camelia rakudo-parrot a77214: OUTPUT«set(["a", "b", "c"],["d", "e", "f"])␤»
lue TimToady: Somehow that RNG scope question makes me think of slang scoping.
TimToady p: say set([<a b c>], [<d e f>]).list[0].WHAT
camelia rakudo-parrot a77214: OUTPUT«(Array)␤»
TimToady looks like an object to mee 20:52
lue: yes, was thinking a similar thing, but languages must be used in lexical scopes; you aren't allowed to change someone else's language out from under them 20:53
lue Oh! FROGGS: 'slang' can't be just syntactic sugar for 'class ... does Slangy', because 'augment slang' and 'supersede slang' should still be usable.
TimToady the *use* of slangs must be lexical
lue TimToady: oh, that would mean that 'augment/supersede slang' is strictly disallowed.
TimToady that would be a lexical declaration 20:54
was intended as lexical
lue does not support the current redefinition of augment/supersede just for slangs
FROGGS what about `augment $~MAIN.grammar`?
or just `augment Perl6::Grammar` 20:55
(once we can do that)
lue slang Foo <inherits> MAIN { ... }; $~MAIN = $~Foo; would be better than how it's currently spec'd, which is augment slang MAIN { ... }
FROGGS errm, I am talking rubbish 20:56
it actually would be `augment grammar Perl6::Grammar`
lue FROGGS: I feel like we'd need a keyword that combines temp and augment. "derivative"? 20:57
TimToady it seems meaningless to untie it from the current language braid
perigrin that'll be easy to misread as "argument grammer Perl6::Grammer" which just means "you're reading backlog in #perl6 again"
lue TimToady: I'd much rather see new keywords usable by lots of things than a change in the meanings of 'augment' and 'supersede' for just slangs. 20:59
TimToady I'm fine with not using 'augment'
FROGGS well... if we want to say that we want to change the current language (lexically?), and the slang keyword is meant to "install" a language, then `augment slang Perl6::Grammar` makes sense again
lue (because I bet some class users would like a temp+augment keyword too.) 21:00
FROGGS would be still weird that slang would only mean a grammar here and a collection in my proposal
TimToady but we need two things: 1) a way to mixin to a current braid containing anonymous languages, and 2) a way to import that new language into the braid
COBOL only needs the second
but 'augment' semantics need both 21:01
21:02 berekuk joined
lue I always thought that adding new braids would entail a $NEWBRAID.parse($<text>) in some action method of an existing braid. 21:03
lue maybe meant s:g/braid(s?)/item$0 in the braid/ 21:05
21:11 Rotwang joined, kivutar joined
skids r: role R { has $!f = 41 }; role G does R { method g { $!f.say }}; class C does G { }; C.new.g; 21:19
camelia rakudo-jvm a77214: OUTPUT«===SORRY!=== Error while compiling /tmp/gWmwvS1Y7M␤Attribute $!f not declared in role G␤at /tmp/gWmwvS1Y7M:1␤------> }; role G does R { method g { $!f.say }}⏏; class C does G { }; C.new.g;␤ expecting any of:…»
..rakudo-parrot a77214: OUTPUT«===SORRY!=== Error while compiling /tmp/iYtTkwzuia␤Attribute $!f not declared in role G␤at /tmp/iYtTkwzuia:1␤------> }; role G does R { method g { $!f.say }}⏏; class C does G { }; C.new.g;␤ expecting any …»
masak FROGGS: sorry, haven't backlogged, and you seem to be having fun talking about slangs. 21:21
FROGGS: so maybe this has come up already.
FROGGS :o) 21:22
masak FROGGS: but it seems to me one of the importantest things about traits is that variables in the outer language are (as per the discretion of the slang author) accessible in the inner language.
i.e. the slang needs to be able to somehow "inherit" the pads of the outer language. 21:23
this follows easily if you consider qq strings a slang, for example.
FROGGS that is why v5 uses the same World#
masak ah, World. yes.
that's probably what I'm thinking of.
so slang should be grammar+actions+world.
and the world can Simply Be The Same as the outer's. 21:24
FROGGS it is only a porblem when the inner language has other sigils
masak then that's the inner's problem :P
FROGGS true :o)
like you can access much from v5's blocks but not everything..., well, maybe indirectly everything 21:25
masak it's hard but not impossible to find out whether you're a Real Perl 5, or just a Perl 5 in a vat.
a Perl 5 brain in a Perl 6 vat, that is. 21:26
lue
.oO(Geez, slangs making big changes to Perl 6 seem like they'd be a lot of work to write, what with where the discussion have been going. ☺)
21:29
rjbs Every time someone mentions slangs, I think of slrn. 21:30
21:31 kbaker left
dagurval r: say (gather { my %a = ^2; my %b = 'a', 'b'; take %a; take %b; take { a => 'b' } }).perl 21:32
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«("0" => 1, "a" => "b", {"a" => "b"}).list␤»
dagurval how can I get take %a and %b as hash, take flattens them ._. 21:33
n/m, I can wrap them in { } ofcourse
FROGGS r: say (gather { my %a = ^2; my %b = 'a', 'b'; take $%a; take $%b; take { a => 'b' } }).perl
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«({"0" => 1}, {"a" => "b"}, {"a" => "b"}).list␤»
dagurval even better :)
thanks
FROGGS yw 21:34
raydiak r: role R { trusts G; has $!f = 41 }; role G does R { method g { self!R::f().say }}; class C does G { }; C.new.g;
camelia rakudo-jvm a77214: OUTPUT«===SORRY!=== Error while compiling /tmp/NBLnBgxQSm␤Cannot call private method 'f' on package R because it does not trust G␤at /tmp/NBLnBgxQSm:1␤------> ; role G does R { method g { self!R::f()⏏.say }}; class C does G…»
..rakudo-parrot a77214: OUTPUT«===SORRY!=== Error while compiling /tmp/shxjehk1Yp␤Cannot call private method 'f' on package R because it does not trust G␤at /tmp/shxjehk1Yp:1␤------> ; role G does R { method g { self!R::f()⏏.say }}; class C doe…»
masak rjbs: why? I have no experience with that news client, so I fail to see the connection. :) 21:35
dagurval are there any #perl6 happenings at FOSDEM, beside lectures at the devroom?
hoelzro yes
oops, sorry
rjbs masak: slrn is the S-Lang newsreader, using S-Lang for internal scripting
21:45 raiph left
dagurval rp: my @a := gather { take 1, take 2 }; say @a; 21:50
camelia rakudo-parrot a77214: OUTPUT«2 1 2␤»
dagurval how did that final 2 get into the output?
segomos_ you get a list like 2, (1, 2) 21:51
21:53 BenGoldberg joined
masak rjbs: oh! 21:55
21:56 itz_ joined, itz left
segomos_ dagurval: i'd imagine you get take(1,take(2)) which results in 2, (1, 2) 22:03
since take seems to return the value taken
FROGGS rp: my @a := gather { take(1), take(2) }; say @a;
camelia rakudo-parrot a77214: OUTPUT«1 2␤»
FROGGS segomos_++ 22:04
segomos_ r: say gather { say take 2 };
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«2␤2␤»
segomos_ r: my @a := gather { take 1; take 2; }; say @a;
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«1 2␤»
masak TimToady: link.springer.com/chapter/10.1007%2...15975-4_33 sounds very much like STD's approach to Cursors.
22:05 sftp left
segomos_ p6 has all kinds of cool shit 22:05
dagurval segomos_: because the inner take is called first. Nice, didn't think of that.
segomos_ stuff..has all kinds of cool stuff
FROGGS *g* 22:06
masak dagurval: that simply follows from the fact that routine invocation is strict, so the arguments have to be evaluated before the call to the outer &take. 22:07
but yes, it's a bit funky to wrap one's head around, as execution basically "pauses" between evaluating the inner &take and the outer &take :) 22:08
dagurval masak: it's simple when you get it :) 22:09
masak: are you going to FOSDEM this year? 22:11
rp: my @a := gather for ^3 { next; take $_; }; say @a 22:14
camelia rakudo-parrot a77214: OUTPUT«␤»
skids r: role A { method pub { self!priv }; method !priv () { "OHAI".say } }; class C does A { }; C.new.pub;
camelia rakudo-jvm a77214: OUTPUT«Nominal type check failed for parameter 'null'␤␤»
..rakudo-parrot a77214: OUTPUT«Nominal type check failed for parameter ''; expected $?CLASS but got C instead␤ in method priv at /tmp/eL6iqOxDYJ:1␤ in method pub at /tmp/eL6iqOxDYJ:1␤ in block at /tmp/eL6iqOxDYJ:1␤␤»
dagurval next not allowed in gather for?
skids r: role A { method pub { self!priv }; method !priv ($self:) { "OHAI".say } }; class C does A { }; C.new.pub;
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«OHAI␤»
22:16 jnap left 22:18 jnap joined
masak dagurval: unfortunately not :/ 22:18
(re FOSDEM) 22:19
22:19 dbrock left
masak dagurval: 'next' is allowed, but you nexted through the whole loop :P 22:19
unconditional 'next' is pretty weird.
skids: that... looks like a bug to me. at first blush.
skids: looks like 'self' isn't parameterized correctly in private methods in roles. 22:20
dagurval yes I did ._.
masak r: class A { method pub { self!priv }; method priv { say "OH HAI" } }; A.new.pub
camelia rakudo-jvm a77214: OUTPUT«No such private method '!priv' for invocant of type 'A'␤␤»
..rakudo-parrot a77214: OUTPUT«No such private method '!priv' for invocant of type 'A'␤ in method pub at /tmp/KEMyxqdt4o:1␤ in block at /tmp/KEMyxqdt4o:1␤␤»
masak r: class A { method pub { self!priv }; method !priv { say "OH HAI" } }; A.new.pub
camelia rakudo-parrot a77214, rakudo-jvm a77214: OUTPUT«OH HAI␤»
lue masak: wait, how is that a bug? Seems reasonable to me. 22:21
masak skids: do you know if that's already submitted?
lue: note, it works in my last eval.
lue: but it doesn't work in skid's first.
lue: the only difference is that in skid's case, pub and !priv are in a role.
skids masak: I do not. I was removing old workarounds from a year + ago and found it. 22:22
masak submits rakudobug
skids++
skids: I've found some of my best rakudobugs by making refactors which "should just work" :P
lue masak: oh, I thought you were discussing skids' last eval. nevermind then :) [somehow I also missed the $self: in that eval] 22:23
masak the second has a $self: 22:24
the first doesn't.
22:24 dbrock joined
masak the fact that those two differ in their result is also suspect. 22:24
skids At least the $self is a better workaround now than using a public method was.
masak aye. 22:25
(better workarounds)++
rt.perl.org/Ticket/Display.html?id=120919 22:28
skids
.oO(I don't have nearly the great debugging instincts as most here, but something about Perl6 brings them out. Jamming that $self in there just seemed like the right move.)
22:32
22:32 dbrock left
skids kudos to the vastly improved error messages to at least get me in the right ballpark. 22:33
masak :) 22:34
22:36 dbrock joined
skids anyway, time to brave the cold and snow. 22:37
masak speaking only for myself, debugging instincts are acquired. every debugging session is a kind of repeated bisection.
learning to *do* the bisection is fairly simple. learning *where* to do the bisection is where experience comes in.
masak .oO( either your buggy component is indivisible, or you're not done yet ) 22:39
22:40 dbrock left 22:41 lumimies left
japhb
.oO( Hitting it with a hammer: $1. Knowing *where* to hit it: $9,999. )
22:41
kurahaupo ˙°O( Knowing *when* to hit it: another $9,999 ) 22:42
22:44 skids left
raydiak japhb: after you asked, I decided to try to kick it out the door today, so probably in the next 5 or 10 hours 22:46
perigrin w 22 22:55
:/
22:56 Rotwang left 22:58 jnap left
masak perigrin: come back! we're so much nicer than w 22! :P 23:02
perigrin I dunno ... 22 is #catalyst 23:03
they're pretty nice.
masak oh, indeed. 23:07
23:10 telex left
japhb raydiak: \o/ 23:11
23:12 jnap joined, telex joined, hoverboard left, wingfold joined
masak 'night, #perl6 23:13
japhb 'night, masak
23:17 telex left 23:23 telex joined, wingfold left 23:28 telex left 23:29 telex joined 23:31 jnap left 23:32 jnap joined, ajr joined, ajr is now known as Guest87233 23:33 Guest87233 is now known as ajr_, hoverboard joined 23:34 cooper left 23:42 cooper joined 23:46 btyler left 23:49 spider-mario left 23:50 dmol left 23:56 cooper left 23:59 cooper joined, cooper left, cooper joined