»ö« 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!1hop!2hop!3hop!4hop!5hop!6hop!7hop!8hop!9hop!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«1hop!2hop!3hop!4hop!5hop!6hop!7hop!8hop!9hop!10hop!» | ||
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 executedcurrent 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/KQu2EDWefBVirtual call $.b may not be used on partially constructed objectsat /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 1Please 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 724Please 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/g4wTf2LDHuConfusedat /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«42alive!» | ||
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/gWmwvS1Y7MAttribute $!f not declared in role Gat /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/iYtTkwzuiaAttribute $!f not declared in role Gat /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/NBLnBgxQSmCannot call private method 'f' on package R because it does not trust Gat /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/shxjehk1YpCannot call private method 'f' on package R because it does not trust Gat /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«22» | ||
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
|