»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
sjn or, at least tell which words are ignored (and perhaps why) 00:03
masak aye. 00:17
and how to override that.
good night, #perl6 00:24
sjn nn 00:25
sjn has done enough hackathon preparations for one day
jnthn sjn++
sjn notes sorear has some issues getting to Oslo :-( 00:26
00:26 pmurias left
jnthn figures it's high time he took some rest 00:28
'night
skids Is there a way specced to add adverbs to a grammar (and then access them from rules)? 00:29
00:33 Alias_ left 00:34 saxoBeat joined 01:09 cognominal joined 01:16 Trashlord left 01:17 Trashlord joined 01:18 Trashlord is now known as Guest91991
dalek ecza: 361d214 | sorear++ | FETCH_URL:
Update bootstrap version to v14
01:45
ecza: 16e2a53 | sorear++ | src/niecza:
/<[]>/ compilation fix (fixes #105)
colomon updates! \o/ 01:46
sorear skids: I am not certain what you mean by "adverbs" 01:51
rakudo: say "\c[ARABIC MATHEMATICAL KAF]" 01:54
p6eval rakudo a47a56: OUTPUT«===SORRY!===␤Unrecognized character name ARABIC MATHEMATICAL KAF at line 1, near "]\""␤»
sorear rakudo: say "\c[MIAO LETTER PA]" 01:55
p6eval rakudo a47a56: OUTPUT«===SORRY!===␤Unrecognized character name MIAO LETTER PA at line 1, near "]\""␤»
skids sorear: e.g. mygrammar.parse("str",:rule<rule>,:i,:my_own_adverb(some_setting)) or somesuch 01:56
sorear :i would also have to be custom 01:57
you could do that by overriding "parse"
niecza: my grammar Number { token TOP { ^ \d ** {$*count} $ } ; method parse(:count($*count), |other) { self.Grammar::parse(|other) } }; say Number.parse("555", :count(3)); say Number.parse("5555", :count(3)) 01:59
p6eval niecza v13-389-g852f0ff: OUTPUT«===SORRY!===␤␤Cannot put required parameter after variadic parameters at /tmp/k9PqahEqSK line 1:␤------> } ; method parse(:count($*count), |other⏏) { self.Grammar::parse(|other) } }; say␤␤Unhandled exception: Check fai…
sorear interesting 02:00
obviously a bug - |foo should be allowed anywhere
I'll fix that
colomon doesn't understand how panda installs lib files. Can only find rules for blib, bin, and doc.... 02:03
mind you, it seems to work, I just don't know why it does 02:07
sorear lib files aren't installed 02:09
(if panda emulates EU:MM) 02:10
colomon it's creating a ~/.niecza/lib directory full of .pm files... 02:11
sorear those files are copied from blib, not lbi
colomon ah. 02:12
how do they get to blib, then?
skids sorear++ for pointing out :foo($*foo). Hadn't yet clicked for me that there was more to :foo($bar) than just cosmetics.
sorear colomon: during "make", EU:MM copies files from lib to blib 02:15
(disclaimer: I don't know anything about panda)
02:15 saxoBeat left
colomon good call, Panda::Builder does indeed copy the lib files to blib 02:19
and then blib installs them back to lib
well, to ~/.niecza.lib 02:20
any bright ideas for copying a file but changing the first line? 02:24
colomon once again wishes for FIRST. ;) 02:25
sorear slurp, regex, and spew? 02:32
02:52 PacoAir left, PacoAir joined 02:53 PacoAir left
colomon my @script := $source.lines; 02:54
@script.shift;
for @script -> $line {
02:58 whiteknight left
colomon sorear: I'm a bit worried you may have blown up regexes with that last patch.... spectesting now 03:01
sorear looks like one fail on the self-test 03:12
colomon t/spec/S05-metasyntax/charset.t failed six tests (spectest ongoing, but that just flashed across my screen in red) 03:13
03:15 wolfman2000 joined
colomon spectest seems a bit slow, but it may be because I'm running on battery (or my machine is just running slow tonight) 03:17
sorear can you spectest niecza on a single battery? 03:18
colomon yes 03:19
03:23 jaldhar joined
colomon lots of fails: 03:26
t/spec/integration/advent2009-day08.t 03:27
t/spec/S02-literals/radix.t
t/spec/S03-operators/inplace.t
t/spec/S03-operators/overflow.t
t/spec/S04-statements/for.t
t/spec/S05-grammar/protoregex.t
t/spec/S05-mass/rx.t
t/spec/S05-metasyntax/charset.t
t/spec/S32-str/numeric.t
sorear sorry - I should have said earlier I'm not interested 03:29
I already have a failing case from the self-test
colomon no worries, it was a cut and paste. 03:30
03:42 bluescreen10 left 03:54 bluescreen10 joined
dalek ecza: 4bfefee | sorear++ | src/niecza:
Fix .. in character classes being suddenly treated as \q[..]
03:55
03:57 orafu left 03:59 orafu joined
dalek ecza: 22f2298 | sorear++ | lib/unidata:
Update to Unicode character database 6.1.0
04:04
04:09 Chillance left
sorear colomon: what would you use FIRST for? 04:14
04:40 tokuhirom joined 04:42 zjmarlow joined 04:43 sftp left 05:10 zjmarlow left 05:11 fasad left 05:19 drbean left 05:20 drbean joined 05:24 pullphing joined 05:27 bluescreen10 left 05:31 sboyette left 05:38 sboyette joined
sorear perl6: say ord("\c[MIAO LETTER PA]").fmt('%x') 05:53
p6eval pugs b927740: OUTPUT«Unknown charname 'MIAO LETTER PA' at /usr/share/perl/5.10/unicore/Name.pl line 1␤fffd␤»
..rakudo a47a56: OUTPUT«===SORRY!===␤Unrecognized character name MIAO LETTER PA at line 1, near "]\").fmt('%"␤»
..niecza v14-6-g22f2298: OUTPUT«16f00␤»
sorear hrhrm. 05:57
looks like lenny only has ICU 3.8, for Unicode 5.0
perl6: say ord("\c[GREEK CAPITAL LETTER HETA]").fmt('%x') # added in 5.1 05:59
p6eval pugs b927740, rakudo a47a56, niecza v14-6-g22f2298: OUTPUT«370␤»
sorear perl6: say ord("\c[SAMARITAN LETTER ALAF]").fmt('%x') # added in 5.2
p6eval rakudo a47a56, niecza v14-6-g22f2298: OUTPUT«800␤»
..pugs b927740: OUTPUT«Unknown charname 'SAMARITAN LETTER ALAF' at /usr/share/perl/5.10/unicore/Name.pl line 1␤fffd␤»
sorear perl6: say ord("\c[MANDAIC LETTER AB]").fmt('%x') # added in 6.0 06:00
p6eval niecza v14-6-g22f2298: OUTPUT«841␤»
..pugs b927740: OUTPUT«Unknown charname 'MANDAIC LETTER AB' at /usr/share/perl/5.10/unicore/Name.pl line 1␤fffd␤»
..rakudo a47a56: OUTPUT«===SORRY!===␤Unrecognized character name MANDAIC LETTER AB at line 1, near "]\").fmt('%"␤»
06:04 rasto left
sorear eep 06:12
it seems it's not actually possible to download the Unicode Standard 6.1.0 yet
06:18 rasto joined 07:06 cooper left
dalek ecza: 46bc6c4 | sorear++ | lib/Kernel.cs:
Enum and Pair as early classes so that => can be folded in the setting
07:13
07:19 cooper joined, Guest91991 is now known as Trashlord, Trashlord left, Trashlord joined
moritz o/ 07:30
TimToady: re irclog search, because it uses mysql's broken fulltext index
07:33 kaare_ joined
TimToady ah well 07:33
moritz I have a branch that switches the search to use KinoSearch, but it needs some more work before it can be merged 07:35
and I guess while I'm at it, I should also switch it to Lucy (KinoSearch'es successor) 07:36
sorear perl6: if 0 { 1 + "foo" } 07:59
p6eval pugs b927740, rakudo a47a56, niecza v14-6-g22f2298: ( no output )
dalek ecza: 2ea3308 | sorear++ | src/ (2 files):
mergeback
08:00
ecza: 2762955 | sorear++ | / (5 files):
If a constant foldable expression throws an exception, treat it as a compile error.
sorear (I can't beleive I'm actually implementing something based on a suggestion from dduncan)
colomon sorear: t/spec/S05-mass/properties-general.t is still failing (that's before these two commits) 08:01
sorear hmm. it's been failing for a while for me, but I always blamed it on ulimits.
you aren't running with a 250MB ulimit by chance?
08:02 GlitchMr joined
sorear investigates 08:02
o/ GlitchMr
colomon as far as I know I'm not running with ulimit 08:03
on the other hand, my panda problems seem to be of my own making. (Just ran git stash and it suddenly works again.) 08:08
sorear eheheh. Now I'm seeing your fail 08:12
colomon definitely not ulimit, the test runs to completion. :) 08:13
sorear What do you mean by the test?
nevermind, I'm not actually seeing your fail 08:17
colomon: I need to strangle the person who wrote the failing test 08:20
\x[A679] is \c[COMBINING CYRILLIC LETTER YERU]; it is *not* a noncharacter
age="6.1"
niecza's behavior is completely correct
colomon S05-mass/properties-general.t is what I meant by "test runs to completion" 08:21
sorear (and Rakudo will start failing the same test once you update ICU to a version that supports 6.1)
colomon ah, so does this mean the latest Unicode stuff applied to niecza is the "problem" here? 08:22
sorear yes
colomon did something also change about \c[KHMER VOWEL INHERENT AQ]
?
sorear yes, it seems to have changed from Cf to Mn 08:25
General_Category=Format/Mark_Nonspacing
www.unicode.org/reports/tr44/tr44-8...code_6.1.0 08:26
colomon niecza: ($_ * 2 if $_ ** 2 > 3 for 0 .. 5).say 08:27
p6eval niecza v14-9-g2762955: OUTPUT«␤»
colomon new test is claiming that should be "4 6 8 10" 08:28
08:29 awoodland joined
sorear new test is right, niecza is (still) wrong 08:31
for-as-an-expression hasn
't worked properly for quite some time, if it ever worked
colomon: I'm curious what your use case for FIRST is.
colomon sorear: I was just thinking that I could do something like for lines -> $line { FIRST { change this one; next; } don't change these } 08:32
it certainly wasn't a compelling reason to bother implementing it. 08:33
08:33 birdwindupbird joined 08:41 tokuhir__ joined, tokuhirom left
dalek ecza: 10d9320 | sorear++ | docs/DIRECTIONS:
Kill DIRECTIONS since I obviously can't keep it up to date and perl6.org/features works better anyhow
09:01
moritz will be gone for most of the weekend 09:04
sorear have the appropriate amount of fun 09:05
09:07 snearch joined
colomon sorear: t/spec/S03-operators/arith.t is failing after your constant folding exception patch 09:10
09:34 awoodland left
colomon what the heck was the name of the script which tried installing every module to see if it worked? I'd like to get it working with panda-niecza, but I can't find it anywhere... 09:36
afk # back to bed
emmentaler!
wait, it only knows about neutro? 09:38
afk # back to bed for real
dalek ecza: de9cc16 | sorear++ | / (3 files):
Rename _newtiedscalar to Proxy.new and tweak the API for compatibility
09:39
sorear tomorrow, I'll look at arith.t and all the Proxy spectests 09:40
afk # bed
09:41 kaare__ joined 09:43 spine joined 09:44 fasad joined, kaare_ left 09:48 awoodland joined 09:51 Patterner left 09:52 Psyche^ joined, Psyche^ is now known as Patterner 09:54 fasad left 09:56 awoodland left 09:58 fasad joined
masak good antenoon, #perl6. 10:00
10:03 mj41 joined 10:05 Trashlord left 10:13 zby_home joined
jnthn morning, #perl6 10:30
masak morning, jnthn-san. 10:42
what's on the schedule for today?
will we get boundedly serialized closures?
jnthn Not sure if I'll get the closures bit in today, but should at least be able to get the static code refs sorted. 10:44
jnthn also wants to go for a walk in the sunny weather :) 10:45
masak \o/ 10:51
11:07 mj41 left
bbkr1 rakudo: Method.^methods>>.say 11:19
p6eval rakudo a47a56: OUTPUT«(signal SEGV)assuming␤of␤arity␤rw␤»
jnthn That one was ticketed recently. 11:20
bbkr1 i've ticketed #108968, which was segfaulting on signature 11:21
although this is probably related, i'll just update this ticket
jnthn Yes, it is
bbkr1 rakudo: my $m = method { &?ROUTINE.name.say }; class A{}; A.^add_method("foo", $m); A.foo # is this a bug? according to the spec it returns lexically innermost Method, so once installed in class it should return lexical name "foo", am I right? 11:27
p6eval rakudo a47a56: OUTPUT«<anon>␤»
bbkr1 on the other hand how can method knows that it is installed somewhere... 11:31
11:31 MayDaniel joined
jnthn Rakudo is behaving as designed there. I really don't think that the meta-objects should go fiddling with the code objects that are passed. 11:33
It'd also make it weird/tricky to install the same method under multiple names. 11:34
So, those almost certainly want to stay decoupled.
masak +1 11:47
rakudo: class A { our method foo { say "OH HAI" } }; say &A::foo.^name
p6eval rakudo a47a56: OUTPUT«Method␤» 11:48
masak rakudo: class A { our method foo { say "OH HAI" } }; my $m = &A::foo; class B {}; B.^add_method("bar", $m); B.bar 11:49
p6eval rakudo a47a56: OUTPUT«Nominal type check failed for parameter ''; expected A but got B instead␤ in method foo at /tmp/WTIohgyjSw:1␤ in block <anon> at /tmp/WTIohgyjSw:1␤ in <anon> at /tmp/WTIohgyjSw:1␤»
masak rakudo: class A { our method foo { say "OH HAI" } }; my $m = &A::foo; class B {}; B.^add_method("bar", $m); B::bar(A)
p6eval rakudo a47a56: OUTPUT«Could not find symbol 'B::&bar'␤ in block <anon> at /tmp/wKH5abfwye:1␤ in <anon> at /tmp/wKH5abfwye:1␤»
masak jnthn: how do I add a method so that it's 'our'-scoped?
rakudo: class A { our method foo { say "OH HAI" } }; my $m = &A::foo; class B {}; &B::bar = $m; B::bar(A) 11:54
p6eval rakudo a47a56: OUTPUT«OH HAI␤»
masak that works :)
jnthn masak: Yeah. Package and method table installations are separate operatins. 11:55
That is, if you want it in both, install it in both. That's what the compiler does for you when you write "our method ..." :) 11:56
masak as usual, Perl desugars to something very sensible. 12:03
12:16 jferrero joined
spine perl6: my &infix:<c> = {$^a+$^b}; say 1 c 2; 12:28
p6eval niecza v14-11-gde9cc16: OUTPUT«3␤»
..rakudo a47a56: OUTPUT«===SORRY!===␤Confused␤at /tmp/o_PnO5M2fr:1␤»
..pugs b927740: OUTPUT«*** ␤ Unexpected "c"␤ expecting operator, ":" or ","␤ at /tmp/T1iFYdZGvA line 1, column 34␤»
spine reading moritz' comments on my solution to t1 for the p6cc just made me remember how sad i was about this not working in rakudo
12:28 mj41 joined
spine made me do unnecessary double function calls :) 12:28
jnthn Hm, should that work... 12:29
std: my &infix:<c> = {$^a+$^b}; say 1 c 2;
p6eval std 48335fc: OUTPUT«ok 00:01 116m␤»
jnthn Hm, appears so.
12:31 MayDaniel left
spine well, I don't know the spec, but it would enable you to use curryed functions as infix ops 12:33
12:40 MayDaniel joined
masak it should definitely work. 12:43
spine: I have you as "simon" in the table at strangelyconsistent.org/p6cc2011/ -- do you prefer "spine"? I didn't know your nick until now.
spine masak: that's perfect, I actually prefer simon. 12:46
12:46 HarryS left, HarryS joined
masak *poof* thy will be done. 12:47
masak enjoys NOP wish fulfillments :)
jnthn: how about I submit a Rakudobug on infix:<c> not working? 12:48
jnthn masak: please do
masak nom: sub infix:<c> { $^a + $^b }; say 1 c 2
p6eval nom a47a56: OUTPUT«3␤»
masak submits rakudobug 12:49
dalek kudo/stdinit: 50d8eec | jnthn++ | src/Perl6/Grammar.pm:
Make my &infix:<c> = ... add the required categorical. (Note, bit messy, but categorical handling is in for an overhaul anyway when we get qbootstrap in place.)
12:53
jnthn spine++
(Note, it's done in a branch where I'm doing other stuffs to variable declaration anyway.) 12:54
spine hüt wäri scho motivierter :) 12:58
oops fc
13:01 lestrrat left
masak phenny: "hüt wäri scho motivierter"? 13:02
phenny masak: "Hüt wäri scho motivated" (de to en, translate.google.com)
13:02 MayDaniel left 13:03 lestrrat joined
masak no no, that's not German. 13:03
what is it?
it's something Germanic, but not German.
spine swiss german 13:05
masak is that the same as, or distinct from, Romansh?
spine very distinct
masak ah.
spine swiss german is just a very strange dialect of german :) 13:06
arnsholt Apparently it's german, just really weird
Or, what he said ^_^
spine well it wasn't meant for this channel 13:07
masak a bit like Perl 5 and Perl 6, then :)
spine phenny: "heute wäre ich da schon motivierter"?
phenny spine: "Today, I would be there already motivated" (de to en, translate.google.com)
spine that would be the german version :)
masak GT fares better with that version :) 13:08
by the time you said "swiss german", a DDG search had already led me to conclude that you were from .ch :)
but then I wrongly concluded Romansh over at Wikipedia, because I didn't consider that Switzerland has a very dialectal German. 13:09
13:10 wooden left
jnthn has holidayed quite a bit in the Swiss German speaking part of Switzerland :) 13:13
Didn't pick up all that much of the language though. 13:14
walk & 13:17
masak niecza: class A { has $.x; has $.y //= $!x }; my $a = A.new(:x(42)); say $a.y 13:22
p6eval niecza v14-11-gde9cc16: OUTPUT«===SORRY!===␤␤Variable $!x used where no 'self' is available at /tmp/qXkjBIcCwo line 1:␤------> class A { has $.x; has $.y //= ⏏$!x }; my $a = A.new(:x(42)); say $a.y␤␤Unhandled exception: Check failed␤␤ at /home/p6eva…
masak nom: class A { has $.x; has $.y //= $!x }; my $a = A.new(:x(42)); say $a.y 13:23
p6eval nom a47a56: OUTPUT«Can only use repr_get_attr_obj on a SixModelObject␤ in <anon> at /tmp/9SZS2nhHpc:1␤ in block <anon> at /tmp/9SZS2nhHpc:1␤ in <anon> at /tmp/9SZS2nhHpc:1␤»
13:30 PacoAir joined 13:41 birdwindupbird left 13:50 tarch joined 13:51 bbkr1 left 13:52 bbkr1 joined
spine oh, I just remembered a workaround I tried for the infix thing, which wasn't consistent with different compilers either: 13:54
perl6: sub infix:<c> {}; &infix:<c> := {$^a+$^b}; say 1 c 2;
p6eval pugs b927740: OUTPUT«3␤»
..niecza v14-11-gde9cc16: OUTPUT«===SORRY!===␤␤Cannot use bind operator with this LHS at /tmp/VdVU1fimCH line 1:␤------> ub infix:<c> {}; &infix:<c> := {$^a+$^b}⏏; say 1 c 2;␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.se…
..rakudo a47a56: OUTPUT«===SORRY!===␤Cannot use bind operator with this left-hand side␤at /tmp/qXKrR7CCAn:1␤»
spine but I guess that should not work anyways :)
masak looks pretty consistent between Niecza and Rakudo. 13:55
Pugs, as usual, lags a little in this regard. 13:56
spine oh, ok
colomon and Pugs, bless its heart, is years behind
jnthn masak: On that attr one, Rakudo will do the same as Niecza soon on it.
spine so pugs behaving different is kind of normal? 13:57
masak spine: yes.
spine: don't expect Pugs to align very well to current spec.
13:58 snearch left
colomon is smoke testing all the modules under panda-niecza 13:59
gist.github.com/1738033 # installed! just means it passed all the included tests -- I'm suspecting some of these successes are failures that don't have any tests. 14:10
that's 29 of 103 modules working 14:11
masak colomon++ 14:12
14:18 pullphing left 14:28 sftp joined 14:30 awoodland joined
tadzik g'morning 14:33
jnthn o/ tadzik 14:34
colomon \o
14:39 cosimo left 14:40 whiteknight joined
masak good almost-four-in-the-afternoon, tadzik :) 14:45
colomon niecza: say 10.join 14:51
p6eval niecza v14-11-gde9cc16: OUTPUT«10␤»
14:53 Trashlord joined
colomon 30 of 103; I just fixed List::Utils. (Trivial.) 14:56
tadzik: I think we should add columns to modules.perl6.org saying whether or not the module works under Rakudo and/or Niecza. 14:57
masak isn't the goal for the Perl 6 modulespace to work under Rakudo and Niecza? 14:59
(barring things like blizkost and zavolaj)
14:59 Woodi left 15:00 Woodi joined
arnsholt Sure. But some indication of how well reality and theory correlate might be nice =) 15:00
masak sounds to me like fairly volatile information, still.
tadzik colomon: certainly
masak oops! Rakudo made a little update. now it doesn't work on Rakudo anymore.
colomon doesn't modules.perl6.org update automatically? 15:01
masak I can attest to reality being quite volatile in this regard :)
arnsholt Yeah, it'll definitely be volatile, so some kind of datestamp to go along would be needed as well
15:01 wooden joined, wooden left, wooden joined
colomon I'm certainly not proposing someone types all this in by hand... 15:01
masak I leave it up to you to decide whether the extra complexity/management is worth it :)
colomon: oh! smoking?
colomon yes
masak that's a neat idea.
much neater than what I thought you meant :P 15:02
tadzik emmentaller :)
masak sorry for being thick :)
yeah.
we've wanted smoke-testing for ages now.
tadzik it even worked for a while :)
masak ideally, we should have a bot that reports on failures, too.
colomon tadzik: emmentaller talks about neutro, so I went ahead and implemented smoke testing on top of Panda.
tadzik (tjs.azalayah.net/)
colomon well, panda-niecza
tadzik cool
colomon it was pretty trivial
masak tadzik++ 15:03
tadzik: the thing I like about you perhaps most of all is how you pick up my great ideas and implement them. :D
tadzik i should have some new load of tuits in a week (after the last exam)
masak the color scheme on that page is well-meant, but unbearable. give me access and I'll fix it. 15:04
tadzik this page is outdated as hell, and uses neutro, and doesn't work
just sayin' :)
I think the code is here: github.com/tadzik/emmentaler 15:05
masak looks
hehe, sergenerator.pl
tadzik that's one awful script :P 15:06
masak seems I have write access already...
spine mhm, I like that name :)
masak well, working code trumps no code.
spine: you know Polish?
spine emmentaler is a swiss cheese :p 15:07
tadzik phenny: "ser"?
phenny tadzik: "be" (es to en, translate.google.com)
tadzik be yourself
phenny: pl "ser"?
phenny tadzik: "cheese" (pl to en, translate.google.com)
masak spine: yes, I know. the name is mine. it's about how Rakudo had lots of "holes" (bugs) in it, and the game was finding, reporting and fixing them.
tadzik: I had forgotten all about 'bgcolor' -- thanks for reminding me. :) 15:08
tadzik: nowadays I just put things all in style="" or a CSS file.
tadzik: anyway, I think I can definitely work with this. I'll leave the tab open and get back to it later this afternoon. 15:09
spine masak: hehe, nice one
anyways, I have to go. cu #perl6
15:09 spine left
masak spine: \o 15:09
tadzik masak: heh, I've never really learned CSS 15:10
all I know about HTML is what I've learned in this 4th year of primary school, or something
or was it 5th?
masak CSS is when HTML starts being worth learning, IMO. 15:14
well, somewhere around the DOM, at least. even though the DOM has the weirdest overdesigned interface in the history of crap.
a bonus is that if you learn CSS well, you'll get jQuery almost for free. and it rocks. 15:15
tadzik mebbe. I've never been particulary interested in learning those client-side technologies, tbh 15:17
colomon you kids today and your fancy web technologies.... 15:18
cognominal masak, in a sense, that has been an opportunity, great librairies have been designed to decouple from that crap. 15:21
colomon tadzik: github.com/colomon/panda/blob/mast...oke-niecza
tadzik colomon: that looks a bit like masstest
colomon (sorry for the delay -- there was an incident of potty training and then I realized I'd never deleted the dead code for smoke-niecza) 15:22
masstest?
tadzik hah, I never commited that, it'd seem 15:23
gist.github.com/1738468 this thingy
we have like wrote almost identical code, for the same purpose
colomon yes! I was trying to find that in the middle of the night...
it's pretty obvious code, really. :) 15:24
tadzik aye :)
colomon I was more paranoid about having the script die in process, thus writing out each result as it goes 15:25
whereas you just used std out
tadzik I see 15:26
colomon I haven't actually tried it yet, but I don't think there's any reason you can't use both panda and panda-niecza on the same system, without interference. 15:27
tadzik neither do I
colomon (I used different directory names.)
tadzik tbh, I doubt there's a doubt for a special thing named panda-niecza
otoh, I don't know how much your branch is different from mine
colomon it's not very different 15:28
tadzik but I'd really like to have just one panda which will just work
colomon agreed, but it still will need to keep track of which projects are installed for Rakudo and which for Niecza.
tadzik true 15:29
colomon I figure having a separate panda-niecza is a pretty short term thing
gotta run get ready to take my 3-year-old to the preschool open houses this morning 15:30
masak cognominal: I don't buy that reasoning. if the DOM had been easier to use, we'd have gotten cooler things sooner, and not had to wait for crap-decoupling libraries. 15:50
(Set and Bag in Niecza)++ 16:03
I approve.
TimToady++ 16:04
16:04 rasto left 16:08 Blinky- joined 16:11 eiro left 16:12 MayDaniel joined
masak I just had a 'where' clause catch a bug in a script I wrote. 16:16
I turned the sub in question into a multi, and added a catch-all case which died with enough debug indo.
info*
16:17 rasto joined
masak and it turned out I had entered a piece of data wrong somewhere, and the dispatch caught it because I was checking my arguments against that data. 16:17
16:17 eiro joined 16:19 kmwallio joined 16:20 MayDaniel left
TimToady colomon++ did most of the later work 16:23
masak colomon++ 16:24
16:35 tokuhir__ left, tokuhir__ joined 16:36 mtk left
TimToady niecza: say bag 2,2,3,4,4 16:36
p6eval niecza v14-11-gde9cc16: OUTPUT«bag(2, 2, 3, 4, 4)␤»
16:37 tokuhir__ left
TimToady niecza: say +bag 2,2,3,4,4 16:37
p6eval niecza v14-11-gde9cc16: OUTPUT«5␤»
TimToady niecza: say bag(2,2,3,4,4) ∩ bag(2,3,3,4,4,4)
p6eval niecza v14-11-gde9cc16: OUTPUT«===SORRY!===␤␤Confused at /tmp/KnicX_aVPD line 1:␤------> say bag(2,2,3,4,4) ⏏∩ bag(2,3,3,4,4,4)␤␤Parse failed␤␤»
TimToady niecza: say set(2,3,4) ∩ set(3,4,5) 16:38
p6eval niecza v14-11-gde9cc16: OUTPUT«===SORRY!===␤␤Confused at /tmp/359CRCEtn7 line 1:␤------> say set(2,3,4) ⏏∩ set(3,4,5)␤␤Parse failed␤␤»
16:38 tokuhir__ joined
TimToady niecza: say set(2,3,4) (&) set(3,4,5) 16:38
p6eval niecza v14-11-gde9cc16: OUTPUT«===SORRY!===␤␤Confused at /tmp/xaoVdIUec1 line 1:␤------> say set(2,3,4) ⏏(&) set(3,4,5)␤␤Parse failed␤␤»
masak :/
TimToady niecza: use Set; say set(2,3,4) (&) set(3,4,5) 16:39
p6eval niecza v14-11-gde9cc16: OUTPUT«Unhandled exception: Unable to locate module Set in @path␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1344 (die @ 3) ␤ at /home/p6eval/niecza/src/NieczaPathSearch.pm6 line 23 (NieczaPathSearch.load_module @ 12) ␤ at /home/p6eval/niecza/src/Niecza…
TimToady hmm
masak set operators are commented out in Niecza source.
they're in lib/CORE.setting 16:40
TimToady I thought they were working earlier
16:41 chee joined
chee :)(: 16:41
masak the last commit on those lines is the one that adds the class, with the operators commented out.
commit-messages colomon: "Import version of TimToady++'s Set class. Alas, the operators are all commented out for the moment."
TimToady chee: there's no need to be two-faced :)
masak .oO( excessive chee will be rectified ) 16:42
TimToady masak: ah well, all in good time
chee :D
16:47 awoodland left 16:49 icwiener joined
jnthn back 16:51
masak method legal_moves { %possible_moves{ @.pieces }.grep({ is_legal($_) }) } 17:05
I love Perl 6 :)
er, that should be self.is_legal 17:09
but still. pretty succinct.
perl6: sub foo($ where 5) {}; foo 42 17:11
p6eval niecza v14-11-gde9cc16: OUTPUT«Unhandled exception: Constraint type check failed for parameter in foo␤ at /tmp/7ET7v4cEOk line 0 (foo @ 1) ␤ at /tmp/7ET7v4cEOk line 1 (mainline @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3609 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.set…
..rakudo a47a56: OUTPUT«Constraint type check failed for parameter ''␤ in sub foo at /tmp/PRuhLgstd7:1␤ in block <anon> at /tmp/PRuhLgstd7:1␤ in <anon> at /tmp/PRuhLgstd7:1␤»
..pugs b927740: OUTPUT«*** ␤ Unexpected "$ where"␤ expecting formal parameter or ")"␤ at /tmp/JkZiTSmi68 line 1, column 9␤»
masak sorear: might want to at least take Rakudo's route here and quote the parameter name, in case it doesn't exist :) 17:12
in these cases, maybe numbering the paramters somehow helps more.
I dunno.
TimToady if it's a set, should probably be %.pieces :) 17:19
and if I were a piece, I'd think I was the object and not the board; the board is just the universe :) 17:20
hmm, I see no rosettacode entries for bags/multisets offhand (en.wikipedia.org/wiki/Multiset) 17:22
masak sorear: the "declared but not used" warnings are pretty useless on the REPL. 17:25
it's quite natural to declare something on one line and then use it on the next. (that still works, it's just the warning that's annoying.) 17:26
niecza: my %h = foo => [1, 2], bar => [3, 4]; my @a = <foo bar>; say %h{ @a }.perl 17:27
p6eval niecza v14-11-gde9cc16: OUTPUT«([1, 2], [3, 4])␤»
masak what can I do to get just a flat list, (1, 2, 3, 4)? 17:28
(given that the values of %h really are arrays)
jnthn nom: my %h = foo => [1, 2], bar => [3, 4]; my @a = <foo bar>; say %h{ @a }>>.flat.perl
p6eval nom a47a56: OUTPUT«([1, 2], [3, 4])␤»
jnthn ah
nom: my %h = foo => [1, 2], bar => [3, 4]; my @a = <foo bar>; say %h{ @a }>>.list.perl 17:29
p6eval nom a47a56: OUTPUT«([1, 2], [3, 4])␤»
jnthn heh, not that then :)
oh, of course
hypers maintain structure
duh.
nom: my %h = foo => [1, 2], bar => [3, 4]; my @a = <foo bar>; say ([Z,] %h{ @a }).perl 17:30
p6eval nom a47a56: OUTPUT«((1, 3), (2, 4)).list␤»
jnthn That's one way.
oh, not if you want them in order 17:31
grr
:)
masak I don't care about the order.
jnthn nom: my %h = foo => [1, 2], bar => [3, 4]; my @a = <foo bar>; say (.flat for %h{ @a }).perl
p6eval nom a47a56: OUTPUT«(1, 2, 3, 4).list␤»
jnthn That is also possible. :)
masak thanks :)
TimToady niecza: my %h = foo => [1, 2], bar => [3, 4]; my @a = <foo bar>; say %h{ @a }.map(*.flat).perl 17:32
p6eval niecza v14-11-gde9cc16: OUTPUT«(1, 2, 3, 4).list␤»
masak why does .map work but not >>.flat ?
TimToady because nobody implements the spec yet
masak :P 17:33
jnthn Oh my, is that the duck mapping thing...
masak yeah. not a fan.
jnthn Yeah. Repeated "not a fan" comments have kinda put me off spending tuits on it. :) 17:34
TimToady not a fan of the "why doesn't my hyper work" FAQ either
masak TimToady: so you're saying >>.flat above would work if your duck mapping idea were implemented?
TimToady yes
jnthn b: my %h = foo => [1, 2], bar => [3, 4]; my @a = <foo bar>; say %h{ @a }>>.flat.perl
masak in that case, that's score 1 for the idea, I guess.
p6eval b 1b7dd1: OUTPUT«([1, 2], [3, 4])␤»
jnthn ah, and b did something else there too. 17:35
TimToady if [] implements .flat then it shouldn't descend into it
the only tricksy thing is that it is specced to ignore the list methods from Any, which won't dwtm in this case 17:37
niecza: my %h = foo => [1, 2], bar => [3, 4]; my @a = <foo bar>; say %h{ @a }.map(*.values).perl 17:43
p6eval niecza v14-11-gde9cc16: OUTPUT«(1, 2, 3, 4).list␤»
TimToady niecza: my %h = foo => [1, 2], bar => [3, 4]; my @a = <foo bar>; say %h{ @a }.map(&values).perl
p6eval niecza v14-11-gde9cc16: OUTPUT«(1, 2, 3, 4).list␤» 17:44
gfldex perl6: my %h = a => 1, b => 2; say %h{*}.perl; 17:46
TimToady the Any-exclusion smell makes me wonder if promotion of item to list should be done elsewise than by the Any monkeys
p6eval niecza v14-11-gde9cc16: OUTPUT«Any␤»
..rakudo a47a56: OUTPUT«(1, 2)␤»
..pugs b927740: OUTPUT«\undef␤»
TimToady perl6: my %h = a => 1, b => 2; say %h{}.perl 17:47
p6eval pugs b927740: OUTPUT«{("a" => 1), ("b" => 2)}␤»
..niecza v14-11-gde9cc16: OUTPUT«Unhandled exception: No value for parameter index in postcircumfix:<{ }>␤ at /home/p6eval/niecza/lib/CORE.setting line 0 (postcircumfix:<{ }> @ 1) ␤ at /tmp/BVWFUqpde3 line 1 (mainline @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3609 (ANON @ 3) …
..rakudo a47a56: OUTPUT«(1, 2).list␤»
TimToady niecza doesn't do Zen slice either yet
perl6: say perl list 1 17:51
p6eval niecza v14-11-gde9cc16: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'perl' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1344 (die @ 3) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 33) ␤ at /hom…
..pugs b927740: OUTPUT«1␤»
..rakudo a47a56: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&perl' called (line 1)␤»
masak we never nailed down which methods should also be subs. 17:52
it's kinda arbitrary as it is.
17:52 nebuchadnezzar left
TimToady note that the listop form of list methods automatically promote items 17:52
TimToady wonders if a failed listop dispatch should just assume that, and not fill Any with coercions 17:53
a failed single dispatch, that is
if we did something like that, we wouldn't have to make an Any exemption for duck mapping 17:55
well, maybe
well, maybe not 17:56
I guess it would still fail if were using the same dispatcher (with the failover) to determine whether the method is available
17:57 Juerd left
sorear good * #perl6 17:57
17:58 Juerd joined, PerlJam left
TimToady o/ 17:58
17:58 nebuchadnezzar joined, MayDaniel joined, PerlJam joined
nebuchadnezzar yo 17:59
TimToady perl6: say 1.&list 18:01
p6eval pugs b927740, rakudo a47a56, niecza v14-11-gde9cc16: OUTPUT«1␤»
TimToady perl6: say 1.&list.perl
p6eval rakudo a47a56: OUTPUT«(1,).list␤»
..pugs b927740: OUTPUT«(1,)␤»
..niecza v14-11-gde9cc16: OUTPUT«(1, ).list␤»
TimToady I guess the interesting observation I'd make is that .&foo will arrange a promotion to list if .foo won't, if foo is a listop 18:02
so I wonder whether we really need the Any list promotions at all, if the .&foo form is available 18:03
assuming we add a perl listop and such where appropriate 18:04
dalek ecza: 923f0f3 | sorear++ | lib/Kernel.cs:
Add quotes to parameter binding errors
TimToady I wonder how much code currently depends on List(Item) coercion... 18:08
we used to depend on .[0] being a no-op rather heavily, but I don't know if we do that any more 18:11
I guess idioms like hash push that depend on upgrading an item to a list still depend on the Any upgrades for those items that were not promoted to array 18:14
but generally those would want to dwim by applying a listop, which we can have the .&foo form of 18:15
the .[0] is not often used for that (and currently we don't have a .&[0] form corresponding to .&foo)
since there's no prefix subscript op (other than postcircumfixfix:<[ ]> of course) 18:16
18:20 birdwindupbird joined
TimToady pmichaud, sorear, jnthn: opinions? if we clean out most of the list stuff from Any (leaving .list at least), how much stuff would break? 18:27
I suppose it might be worth a before/after comparison on the spectests...
18:28 fasad left
TimToady BTW, method perl is in fact specced as 'is export' 18:29
not that that's a list method exclusively... 18:30
and an exported method doesn't automatically turn into a listop, of course 18:31
sorear TimToady: I don't know - it could work 18:32
TimToady so the actual export in S32/Basics is not really adequate
sorear what else would an exported method turn into?
TimToady it would at least need to allow a capture as its invocant, if it were to handle all the list args
but that's probably not what someone wants if they use perl as a listop 18:33
they probably just want map *.perl, @list
jnthn TimToady: IIRC, various methods you'd expect to call on Parcel currently go through a .list coercion in Any. Things like %hash.grep ... may also suffer.
TimToady but the perl listop is a side issue
jnthn Of course, we could move the coercion methods into a Listesque role that those various things compose. 18:34
TimToady that might be a lot cleaner
the need for an Any exclusion to duck mapping is a design smell to me 18:35
jnthn TimToady: Yes, that's largely put me off implementing it.
I couldn't believe that bit of the design would survive. :)
And it's a minor pain to do.
TimToady I'm just sayin' the problem may not be in the duck mapping, but in Any 18:36
without the exclusion, duck mapping is trivial
jnthn TimToady: Yes, the exclusion is what I'm talking about.
TimToady you just reverse the order
cognominal rakudo: grammar A { rule TOP { [ $<a>=a ]+ }}; say A.parse('aaaa'); 18:37
p6eval rakudo a47a56: OUTPUT«#<failed match>␤»
TimToady so I'm looking at whether List(Item) promotion is really appropriate in the single-dispatch realm
cognominal rakudo: grammar A { token TOP { [ $<a>=a ]+ }}; say A.parse('aaaa');
p6eval rakudo a47a56: OUTPUT«=> <aaaa>␤ a => <a>␤ a => <a>␤ a => <a>␤ a => <a>␤␤»
TimToady especially if there's a 1 character workaround for listops 18:38
cognominal how comes TOP works only as a token?
sorear wait, wait, are you saying MMD should have a special case to coerce items to lists?
TimToady no 18:39
I'm saying list operators naturally already do that
sorear cognominal: when you use "rule", you're requiring whitespace between the as
jnthn cognominal: It's nothing to do with TOP
cognominal: what sorear said quicker than me ;)
sorear cognominal: if you want to match "a a a a", use rule. if you want to match "aaaa", use token
TimToady cognominal: the currently specced whitespace rules would still workl, but we haven't quite implemented them
cognominal I thought they ere optional not mandatory 18:40
TimToady not inside an identifier
sorear cognominal: if you want to match either, use rule with token ws { \h* }
TimToady and the new specced rules won't help with that part
cognominal TimToady, can you point me to the new specced rule? 18:41
TimToady needs to rewrite STD to only look for sigspace after real matches
S05:319
cognominal thx 18:42
TimToady you can always do [:!s a a a a] too to turn off sigspace in a scope 18:47
dalek p/bs: cac5607 | jnthn++ | src/ (3 files):
Give SCs an extra slot set for code refs.
18:49
p/bs: 9d4ef26 | jnthn++ | t/serialization/02-types.t:
Add (currently failing) tests for serializing types with methods.
p/bs: 4a1b573 | jnthn++ | src/6model/serialization.c:
Start sketching out serialization of static code refs.
jnthn dinner time &
p/bs: 4a9b1a7 | jnthn++ | src/ (3 files):
Update deserialization API to take an initial list of the compilation unit's static code refs.
p/bs: 3410ab0 | jnthn++ | t/serialization/0 (2 files):
Update tests for new deserialization API.
p/bs: ff11af1 | jnthn++ | src/ (3 files):
Add an op for adding a code ref to an SC.
p/bs: d0e53db | jnthn++ | t/serialization/02-types.t:
Update test case to bring it inline with current design. Now survives serialization, though not deserialization.
p/bs: 016bec6 | jnthn++ | src/6model/serialization.c:
Static code ref deserialization. Tests for this now pass.
cognominal the problem was to identify the problem. This is Perl, when identified, there are may ways to solve it. :)
18:51 birdwindupbird left 18:59 GlitchMr left 19:06 kmwallio left 19:07 Blinky- left
dalek ecza: 38a95d6 | sorear++ | src/STD.pm6:
Suppress unused warnings in REPL (masak)
19:10
ast: 5815031 | sorear++ | S03-operators/arith.t:
[S03-operators/arith] Use eval_dies_ok because Niecza catches 5/0 at compile time now
19:11
masak sorear++ 19:20
...and Niecza catches divisions by 0 at compile time?! 19:21
(yes, I understand that it's only in constant foldings. still cool.)
colomon sorear++ 19:32
19:34 snearch joined 19:35 awoodland joined 19:36 wolfman2000 left 19:40 MayDaniel left 19:46 mj41 left 19:47 imarcusthis left 19:48 imarcusthis- joined 19:51 mj41 joined
dalek ast: 428e7b0 | sorear++ | S0 (2 files):
Fix(?) S06/lvalue-subroutines, fudge Proxy tests for niecza
19:54
ecza: c008e24 | sorear++ | t/spectest.data:
Run two new test files for Proxy
19:59 abhishek__ joined 20:00 abhishek__ left, abhishek_ joined 20:01 abhishek_ left 20:02 abhishek_ joined
colomon Proxy! 20:04
\o/
colomon realizes this means he's going to have to learn how to use Proxy... 20:05
20:05 Moukeddar joined 20:06 abhishek_ left
masak Moukeddar! \o/ 20:07
Moukeddar Hi masak :D
it's a pleasure to be here, again
colomon o/ 20:08
Moukeddar how are you doig guys?
colomon great! 20:09
masak couldn't be better!
Moukeddar so, Craigslist donated 100,000$ to Perl5 :)
masak oh, did they? good for craigslist and Perl 5 ;) 20:10
Moukeddar Yep, i hope they don't spend it on beer 20:11
masak (well, not until they worked for the money, at least!) 20:12
Moukeddar lol 20:13
crazy devs
sorear o/ Moukeddar 20:14
Moukeddar hi sorear :)
how are you ?
sorear ok 20:15
20:15 abhishekisnot joined, abhishekisnot left, snearch left 20:16 abhishekisnot joined
Moukeddar i'm watching stanford lectures :) 20:17
20:22 abhishekisnot left 20:23 abhishekisnot joined, y3llow_ joined, pothos_ joined 20:24 abhishekisnot left 20:25 abhishekisnot joined, y3llow left, pothos left 20:26 awoodland left, y3llow_ left, y3llow joined, pothos_ left, pothos joined 20:28 y3llow left, abhishekisnot left, y3llow joined 20:29 pothos left 20:30 pothos joined, abhishekisnot joined, y3llow left, imarcusthis- left 20:31 y3llow joined 20:33 bluescreen10 joined, abhishekisnot left 20:35 abhishekisnot joined 20:40 Moukeddar left 20:43 awoodland joined 20:45 icwiener left
colomon sorear: any chance you can fix the tests in S05-mass/properties-general.t? I'm not qualified, when I went to school EBCDIC was still an important consideration... ;) 20:59
20:59 abhishekisnot left
sorear I *could*, but... 21:00
the last time I fixed those tests (for Unicode 6.0), it took a lot out of me :|
colomon hmm... is it only those two blocks of tests which are likely to be wrong? 21:02
colomon is totally not joking about EBCDIC, btw -- about a third of his classes had coursework done on an IBM mainframe... 21:04
whiteknight jnthn: ping 21:12
21:13 kaare__ left
jnthn whiteknight: pong 21:20
whiteknight jnthn: gist.github.com/1740148 A new get_context op that was just added to Parrot master might help a little with Rakudo args processing performance 21:21
not a huge amount of help, but not nothing
jnthn whiteknight: Does the op magically make passing args to the .sub where there are no .param declarations OK? 21:22
21:22 abhishekisnot joined
jnthn whiteknight: Or is it still the case that no .param decl means no check? 21:22
whiteknight no check. It's a simple accessor. I thought Rakudo has handling checks in the binder? 21:23
jnthn whiteknight: It does, I more wondered from a Parrot perspective (more)
21:23 abhishekisnot left
jnthn I'd been under the impression that it was considered a bug that a .sub that contained no .param declarations accepted any number of args and ignored them. 21:24
whiteknight jnthn: depends who you talk to. Once you have the context, you can insert your own checks. If you use .param and friends, Parrot checks for you
if you do neither, you can't expect anything to happen 21:25
jnthn whiteknight: Well, the issue (though it's not a problem for me) is that Parrot provides no way to declaratively say that a .sub expects to be passed nothing.
sorear I raised the same issue with whiteknight earlier 21:26
jnthn whiteknight: Since it's no problem for me, I won't push the issue. I can just see it getting resolved in the future and the code you gave me getting broken. :)
whiteknight jnthn: at the PIR level I don't feel like that matters. It's an assembly language and if you want params counted and managed, you need to do that yourself or ask parrot to do it for you
I don't subscribe to the thought that it should just magically happen
jnthn whiteknight: Yes, but I'm saying there's no way to ask for that short of grabbing the CallContext and checking it.
whiteknight jnthn: that op is part of my overall plan to remove magic, and it explicitly won't change behavior in the future
jnthn OK.
whiteknight: Also wrt your mailing list post... 21:27
whiteknight jnthn: I jsut checked nqp, it doesn't look like nqp uses self
jnthn The latest NQP (that Rakudo uses) doesn't use :method any more for generated code anyway (and thus not self)
whiteknight yeah, I'm eternally grateful for that update
because now I can move on with plans to kill :method too
happy days are here again
jnthn whiteknight: I'm probably going to kill out usage of :instanceof in the near future too. 21:28
*off
Only NQP uses it, not Rakudo (well, apart from Rakudo depending on NQP...)
whiteknight jnthn: awesome. I tried to remove that from IMCC earlier this month, only to see I'd broken Rakudo.
jnthn Yeah.
whiteknight I suspect strongly we can come up with an alternate, superior method for doing something similar in the future, if you still need something like it
:instance_of was always the wrong answer to the wrong question 21:29
jnthn It's worked for me until now but 6model is in a better place than it was back when I used it.
And I can do what I wanted more easily with using a 6model object and delegation than a subclass of a PMC.
whiteknight I want all Parrot languages to do like NQP does: no :method, explicitly declaring "self", not expecting magic from the .pbc loader, etc
that's the way things should be, and if NQP is ahead of the curve that means deprecation and backwards compatibility issues are almost moot 21:30
21:36 apricoti joined
whiteknight jnthn: also, I'm probably going to get working on a 6model port to Parrot by the end of the month. I know you're busy, but any help/advice you can provide on that effort would be appreciated 21:37
jnthn whiteknight: How deeply do you want to get it in to Parrot? 21:40
whiteknight jnthn: at the lowest level.
I want to completely redo PMCs, VTABLEs, the works. 6model is just the first step on that road
jnthn whiteknight: Well, the first challenge is right there. Currently 6model on Parrot uses PMCs to integrate with how Parrot is today. Whereas really PMCs should just be normal 6model objects. 21:44
apricoti hi everyone, can someone tell me how to store a regex rule name (part of a defined grammar) in a variable and then use it? i already read A05 and S05 and it's not clear to me. I do have it working without variables, like MyGrammar.parse("some text", :rule<MyRule>) but I would like to replace MyRule with a variable and then it breaks
jnthn apricoti: Are you doing :MyRule<$the_variable> ?
whiteknight jnthn: First step is just to cut+paste move 6model from NQP to Parrot, and do things like initializing it from interp creation, etc
jnthn apricoti: If so, <...> is literal syntax. 21:45
cah
I meant :rule<$the_varialbe> # won't work
whiteknight jnthn: Thereafter we can merge the two object models (and by "merge" I mean "delete anything that isn't 6model") and refactor
jnthn apricoti: Do :rule($variable)
whiteknight When 6model is the only game in town, so long as we keep the top-level interface the same, we can make changes to the implementation throughout
apricoti jnthn: thanks, that's working. is the name of the grammar implied because I'm doing MyGrammar.parse(...) ? or how is that working? 21:46
jnthn whiteknight: If you do the first step without having figured out what the next steps will look like, it won't end well.
whiteknight jnthn: I do have several of the next steps figured out. I can't say I have a clear picture of what the end product will be in 10 years, but I know what to do to keep me busy through 2012 21:47
jnthn apricoti: MyGrammar is just the name of your grammar, .parse calls the parse method on it, and :rule just gives the name of the method (e.g. rule/token/regex) in your grammar to start parsing at.
apricoti: It's all just method calls under the hood, since grammars are really just like classes and rules just like methods, but you write them in regexy syntax, not normal Perl 6 syntax. :) 21:49
whiteknight: OK. It's just a daunting bunch of work.
apricoti jnthn: ok thanks! 21:50
21:51 perimosocordiae joined
felher whiteknight++ # for all the great work on Parrot :) 21:52
apricoti jnthn: oh so :rule($variable) or :rule<literal> is just a named parameter to the parse() method right? 21:59
sorear Right. 22:00
apricoti hooray! thanks 22:01
22:15 awoodland left 22:28 tarch left 22:39 nebuchadnezzar left 22:47 nebuchadnezzar joined
gfldex nom: class Foo{ method postcircumfix:<( )>(){ say "Gihihihi!"; } }; my $f = Foo.new; $f(); 22:53
p6eval nom a47a56: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤ in method postcircumfix:<( )> at /tmp/cCXDYM7Sv7:1␤ in <anon> at src/gen/Metamodel.pm:3418␤ in block <anon> at /tmp/cCXDYM7Sv7:1␤ in <anon> at /tmp/cCXDYM7Sv7:1␤»
gfldex nom: class Foo{ method postcircumfix:<( )>(){ say "Gihihihi!"; } }; my $f = Foo.new; $f.();
p6eval nom a47a56: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤ in method postcircumfix:<( )> at /tmp/c4r_KUBoL6:1␤ in <anon> at src/gen/Metamodel.pm:3418␤ in block <anon> at /tmp/c4r_KUBoL6:1␤ in <anon> at /tmp/c4r_KUBoL6:1␤»
jnthn gfldex: postcircumfix:<( )> always takes a single argument, which is the Capture containing the arguments. 22:55
gfldex even if i intend to have no arguments at all? 22:56
22:56 puurl joined 22:57 puurl left
jnthn gfldex: Yes, in that case you'll get an empty capture 22:58
gfldex does that mean if I want to have MMD I have to delegate to normal methods? 22:59
jnthn gfldex: Yeah, or use sub-signatures 23:00
gfldex jnthn: how is the spec calling sub-signatures? 23:03
sorear alternatively, use niecza, which implements slightly more reasonable semantics for postcircumfix:<( )> :D
jnthn sighs at sorear 23:04
gfldex: I thought it called them that
23:04 mj41 left
jnthn gfldex: ah, S06 calls it unpacking 23:05
gfldex found it, tyvm
sorear I was under the impression that the use of Capture there was a relic from when invocants were special
masak good night, #perl6. 23:07
sorear bye masak 23:08
wtf does S13:150 even mean
jnthn sorear: Suggesting to TimToady++ that the spec be changed would be more helpful than doing it differently, then saying Niecza is better because it doesn't implement the spec. :) 23:09
sorear: I'm not really in favor of the way things are, I just implemented it the way it was spec'd.
sorear: And ruoso didn't seem to argue for the status quo too strongly last time it was discussed, from what I recall.
sorear jnthn: ah... I see what I did wrong there 23:12
jnthn The multi-dispatch argument is a decent one for why it'd be preferable to change the spec to the way Niecza has it.
Time to go rest a bit...and tomorrow it's back up to Stockholm 23:15
Timbus for some reason you just cant bring yourself to leave that place..
sorear I wasn't really trying to say it was on purpose. Now I'll make it clear by fixing the bug
jnthn feels like a yoyo
sorear sorry 23:16
jnthn Timbus: Yeah, I seem to end up there more and more these days. 23:17
sorear: Well, or fix the spec if you don't think TimToady will be disagreeable with the change. :)
jnthn really afk, back sometime tomorrow... 23:19
TimToady I don't care about .() but .[] and .{} have to handle multidim subscripts somehow
the question being, what does .[1,2,3; 4,5,6] desugar to? 23:20
sorear the current interpretation is .postcircumfix:<[ ]>((1,2,3), (4,5,6)) 23:21
jnthn TimToady: I'd figured .[(1,2,3), (4,5,6)] and the thingy on the receiving end is **@dims
.oO( this afk-ing ain't going so well... :) )
TimToady as long as .[1,2,3] turns into ((1,2,3),)
sorear removing the item/list punning will make **@dims even more broken 23:22
jnthn OK, really really going this time o/ 23:23
sorear bye
TimToady o/
23:24 awoodland joined
sorear I think S13:204 is a fossil 23:25
TimToady anyway, the .() stuff was from before we realized there was always a proto if there are multis
sorear it seems to be saying that $x.Str might fall back to Str($x)
TimToady well, DRY says you shouldn't have to define coercion in both the source and the target class 23:26
if really depends on which one was defined first or last
which classes know about which other classes, which can happen in either order
sorear RFC: pastie.org/3318273 23:27
TimToady if I add a new class, it should probably specify how to coerce both to and from Str. The Str class should not change
sorear TimToady: I think in our current model it makes no sense for $str.NewClass to work 23:28
TimToady you have a funny definition of "makes no sense" 23:29
sorear isn't $string.method_name controlled entirely by Str and Str.HOW? 23:30
23:30 apricoti left
whiteknight hypothetically, if I have a changeset for Rakudo to use, are patches still preferred or can a pull request work? 23:32
TimToady known typenames were always reserved there syntactically; it's one of the reasons types must be predeclared
sorear ah. (I don't think this reservation is coded explicitly in STD?)
TimToady STD doesn't actually care whether method names exist :) 23:33
so yeah...
a slightly weaker position would be to failover to a coercion on dispatch failure, but I'm little leary of failovers these days, having purged so many of them from the design in the past 23:37
on list/item punning, I'm not proposing removing it entirely; a single item can still bind as a capture/subcapture 23:38
I'm only proposing kicking the list methods out of Any
so that duckmapping can't see them 23:39
and that's only the single-dispatch methods
sorear I'm curious to know more about the history of failovers in Perl 6.
TimToady listop $a is still perfectly fine
it mostly stemmed from trying to avoid poeple having to put a : into 'close $foo:;' 23:40
so single arg functions where ambiguously also method calls in the early design
*were 23:41
sorear Do you have any objection to the RFC'd patch?
TimToady nope
dalek ecs: 4fe1480 | sorear++ | S13-overloading.pod:
Respec postcircumfix:<( )> to take arguments directly

This makes it possible to implement it as a set of multi methods.
23:41 silug_ joined
TimToady eventually we decided that the who's to be master problem dictated a clean separation between single dispatch and lexical dispatch 23:42
the desire to dwim on coercions is the only intentional remnant of that
23:42 mls_ joined 23:43 BooK__ joined, mathw_ joined, Woodi_ joined 23:44 avarab joined, LoRe_ joined, PerlPilot joined
TimToady interestingly, coercions are starting to look more like functions rather than methods all the time because of the trend toward using submethods 23:44
23:44 yeltzooo7 joined, Lorn_ joined
TimToady our gists and perls and Strs tend to assume no derivation types, which is wrongish 23:44
23:45 Pzter joined, silug left, mls left, Lorn left, PerlJam left, BooK_ left, avar left, Woodi left, PZt left, tokuhirom3 left, yeltzooo left, araujo left, LoRe left, mathw left, zby_home left, araujo joined
TimToady looks like some bad irc weather... 23:45
23:45 tokuhirom3 joined
whiteknight my knee has been swelling up, that means a netsplit's a'brewin' 23:46
TimToady rheumatism has to be good for sump'n 23:47
sorear TimToady: would you say $foo."TypeName"() is different from $foo.TypeName() then? 23:49
TimToady yes
that was one of the motivations for the quoted form 23:51
especially if calling into a different language with different uc conventions on method names 23:52
otoh, we didn't have .& back then
one could argue that .&Str is the unambiguous postfix form, and break .Str in favor of letting the target decide 23:54
sorear TimToady: to what extent do gist and perl have the typename coercion nature?
TimToady they coerce to string, just differently
but we have a general problem with coercions assuming they speak for subclasses when they don't 23:55
been playing around with various bandaids^Wsolutions in my head 23:56
mostly modelled on the BUILDALL/BUILD relationship
23:58 imarcusthis joined
TimToady not sure whether we should go as far as to mandate 'submethod GIST' though, or whether we can rely on community standards for the gists to compose properly 23:59
but people will write 'method gist' and then give it submethod semantics inadvertently all the time, I think