Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2012-02-04

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:03 sjn or, at least tell which words are ignored (and perhaps why)
00:17 masak aye.
00:17 masak and how to override that.
00:24 masak good night, #perl6
00:25 sjn nn
00:25 * sjn has done enough hackathon preparations for one day
00:25 jnthn sjn++
00:26 * sjn notes sorear has some issues getting to Oslo :-(
00:28 * jnthn figures it's high time he took some rest
00:28 jnthn 'night
00:29 skids Is there a way specced to add adverbs to a grammar (and then access them from rules)?
00:34 saxoBeat joined #perl6
01:09 cognominal joined #perl6
01:17 Trashlord joined #perl6
01:45 dalek niecza: 361d214 | sorear++ | FETCH_URL:
01:45 dalek niecza: Update bootstrap version to v14
01:45 dalek niecza: review: https://github.com/sorear/niecza/commit/361d214249
01:45 dalek niecza: 16e2a53 | sorear++ | src/niecza:
01:45 dalek niecza: /<[]>/ compilation fix (fixes #105)
01:45 dalek niecza: review: https://github.com/sorear/niecza/commit/16e2a53866
01:46 colomon updates!  \o/
01:51 sorear skids: I am not certain what you mean by "adverbs"
01:54 sorear rakudo: say "\c[ARABIC MATHEMATICAL KAF]"
01:54 p6eval rakudo a47a56: OUTPUT«===SORRY!===␤Unrecognized character name ARABIC MATHEMATICAL KAF at line 1, near "]\""␤»
01:55 sorear rakudo: say "\c[MIAO LETTER PA]"
01:55 p6eval rakudo a47a56: OUTPUT«===SORRY!===␤Unrecognized character name MIAO LETTER PA at line 1, near "]\""␤»
01:56 skids sorear: e.g. mygrammar.parse("str",:rule<rule>,:i,:my_own_adverb(some_setting)) or somesuch
01:57 sorear :i would also have to be custom
01:57 sorear you could do that by overriding "parse"
01:59 sorear 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«[31m===[0mSORRY![31m===[0m��Cannot put required parameter after variadic parameters at /tmp/k9PqahEqSK line 1:�------> [32m} ; method parse(:count($*count), |other[33m�[31m) { self.Grammar::parse(|other) } }; say[0m��Unhandled exception: Check fai…
02:00 sorear interesting
02:00 sorear obviously a bug - |foo should be allowed anywhere
02:00 sorear I'll fix that
02:03 * colomon doesn't understand how panda installs lib files.  Can only find rules for blib, bin, and doc....
02:07 colomon mind you, it seems to work, I just don't know why it does
02:09 sorear lib files aren't installed
02:10 sorear (if panda emulates EU:MM)
02:11 colomon it's creating a ~/.niecza/lib directory full of .pm files...
02:11 sorear those files are copied from blib, not lbi
02:12 colomon ah.
02:12 colomon how do they get to blib, then?
02:12 skids sorear++ for pointing out :foo($*foo).  Hadn't yet clicked for me that there was more to :foo($bar) than just cosmetics.
02:15 sorear colomon: during "make", EU:MM copies files from lib to blib
02:15 sorear (disclaimer: I don't know anything about panda)
02:15 saxoBeat left #perl6
02:19 colomon good call, Panda::Builder does indeed copy the lib files to blib
02:19 colomon and then blib installs them back to lib
02:20 colomon well, to ~/.niecza.lib
02:24 colomon any bright ideas for copying a file but changing the first line?
02:25 * colomon once again wishes for FIRST.  ;)
02:32 sorear slurp, regex, and spew?
02:52 PacoAir joined #perl6
02:54 colomon my @script := $source.lines;
02:54 colomon @script.shift;
02:54 colomon for @script -> $line {
03:01 colomon sorear: I'm a bit worried you may have blown up regexes with that last patch.... spectesting now
03:12 sorear looks like one fail on the self-test
03:13 colomon t/spec/S05-metasyntax/charset.t failed six tests (spectest ongoing, but that just flashed across my screen in red)
03:15 wolfman2000 joined #perl6
03:17 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:18 sorear can you spectest niecza on a single battery?
03:19 colomon yes
03:23 jaldhar joined #perl6
03:26 colomon lots of fails:
03:27 colomon t/spec/integration/advent2009-day08.t
03:27 colomon t/spec/S02-literals/radix.t
03:27 colomon t/spec/S03-operators/inplace.t
03:27 colomon t/spec/S03-operators/overflow.t
03:27 colomon t/spec/S04-statements/for.t
03:27 colomon t/spec/S05-grammar/protoregex.t
03:27 colomon t/spec/S05-mass/rx.t
03:27 colomon t/spec/S05-metasyntax/charset.t
03:27 colomon t/spec/S32-str/numeric.t
03:29 sorear sorry - I should have said earlier I'm not interested
03:29 sorear I already have a failing case from the self-test
03:30 colomon no worries, it was a cut and paste.
03:54 bluescreen10 joined #perl6
03:55 dalek niecza: 4bfefee | sorear++ | src/niecza:
03:55 dalek niecza: Fix .. in character classes being suddenly treated as \q[..]
03:55 dalek niecza: review: https://github.com/sorear/niecza/commit/4bfefeef82
03:59 orafu joined #perl6
04:04 dalek niecza: 22f2298 | sorear++ | lib/unidata:
04:04 dalek niecza: Update to Unicode character database 6.1.0
04:04 dalek niecza: review: https://github.com/sorear/niecza/commit/22f2298f17
04:14 sorear colomon: what would you use FIRST for?
04:40 tokuhirom joined #perl6
04:42 zjmarlow joined #perl6
05:20 drbean joined #perl6
05:24 pullphing joined #perl6
05:38 sboyette joined #perl6
05:53 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␤»
05:54 p6eval ..rakudo a47a56: OUTPUT«===SORRY!===␤Unrecognized character name MIAO LETTER PA at line 1, near "]\").fmt('%"␤»
05:54 p6eval ..niecza v14-6-g22f2298: OUTPUT«16f00␤»
05:57 sorear hrhrm.
05:57 sorear looks like lenny only has ICU 3.8, for Unicode 5.0
05:59 sorear 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␤»
05:59 sorear perl6: say ord("\c[SAMARITAN LETTER ALAF]").fmt('%x') # added in 5.2
05:59 p6eval rakudo a47a56, niecza v14-6-g22f2298: OUTPUT«800␤»
05:59 p6eval ..pugs b927740: OUTPUT«Unknown charname 'SAMARITAN LETTER ALAF' at /usr/share/perl/5.10/unicore/Name.pl line 1␤fffd␤»
06:00 sorear perl6: say ord("\c[MANDAIC LETTER AB]").fmt('%x') # added in 6.0
06:00 p6eval niecza v14-6-g22f2298: OUTPUT«841␤»
06:00 p6eval ..pugs b927740: OUTPUT«Unknown charname 'MANDAIC LETTER AB' at /usr/share/perl/5.10/unicore/Name.pl line 1␤fffd␤»
06:00 p6eval ..rakudo a47a56: OUTPUT«===SORRY!===␤Unrecognized character name MANDAIC LETTER AB at line 1, near "]\").fmt('%"␤»
06:12 sorear eep
06:12 sorear it seems it's not actually possible to download the Unicode Standard 6.1.0 yet
06:18 rasto joined #perl6
07:13 dalek niecza: 46bc6c4 | sorear++ | lib/Kernel.cs:
07:13 dalek niecza: Enum and Pair as early classes so that => can be folded in the setting
07:13 dalek niecza: review: https://github.com/sorear/niecza/commit/46bc6c4a20
07:19 cooper joined #perl6
07:19 Trashlord joined #perl6
07:30 moritz o/
07:30 moritz TimToady: re irclog search, because it uses mysql's broken fulltext index
07:33 kaare_ joined #perl6
07:33 TimToady ah well
07:35 moritz I have a branch that switches the search to use KinoSearch, but it needs some more work before it can be merged
07:36 moritz and I guess while I'm at it, I should also switch it to Lucy (KinoSearch'es successor)
07:59 sorear perl6: if 0 { 1 + "foo" }
07:59 p6eval pugs b927740, rakudo a47a56, niecza v14-6-g22f2298:  ( no output )
08:00 dalek niecza: 2ea3308 | sorear++ | src/ (2 files):
08:00 dalek niecza: mergeback
08:00 dalek niecza: review: https://github.com/sorear/niecza/commit/2ea3308dac
08:00 dalek niecza: 2762955 | sorear++ | / (5 files):
08:00 dalek niecza: If a constant foldable expression throws an exception, treat it as a compile error.
08:00 dalek niecza: review: https://github.com/sorear/niecza/commit/2762955c3b
08:00 sorear (I can't beleive I'm actually implementing something based on a suggestion from dduncan)
08:00 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.
08:01 sorear you aren't running with a 250MB ulimit by chance?
08:01 GlitchMr joined #perl6
08:02 * sorear investigates
08:02 sorear o/ GlitchMr
08:03 colomon as far as I know I'm not running with ulimit
08:08 colomon on the other hand, my panda problems seem to be of my own making.  (Just ran git stash and it suddenly works again.)
08:12 sorear eheheh.  Now I'm seeing your fail
08:13 colomon definitely not ulimit, the test runs to completion.  :)
08:13 sorear What do you mean by the test?
08:17 sorear nevermind, I'm not actually seeing your fail
08:20 sorear colomon: I need to strangle the person who wrote the failing test
08:20 sorear \x[A679] is \c[COMBINING CYRILLIC LETTER YERU]; it is *not* a noncharacter
08:20 sorear age="6.1"
08:20 sorear niecza's behavior is completely correct
08:21 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)
08:22 colomon ah, so does this mean the latest Unicode stuff applied to niecza is the "problem" here?
08:22 sorear yes
08:22 colomon did something also change about \c[KHMER VOWEL INHERENT AQ]
08:22 colomon ?
08:25 sorear yes, it seems to have changed from Cf to Mn
08:25 sorear General_Category=Format/Mark_Nonspacing
08:26 sorear http://www.unicode.org/reports/tr44/tr44-8.html#Unicode_6.1.0
08:27 colomon niecza: ($_ * 2 if $_ ** 2 > 3 for 0 .. 5).say
08:27 p6eval niecza v14-9-g2762955: OUTPUT«␤»
08:28 colomon new test is claiming that should be "4 6 8 10"
08:29 awoodland joined #perl6
08:31 sorear new test is right, niecza is (still) wrong
08:31 sorear for-as-an-expression hasn
08:31 sorear 't worked properly for quite some time, if it ever worked
08:31 sorear colomon: I'm curious what your use case for FIRST is.
08:32 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 colomon it certainly wasn't a compelling reason to bother implementing it.
08:33 birdwindupbird joined #perl6
08:41 tokuhir__ joined #perl6
09:01 dalek niecza: 10d9320 | sorear++ | docs/DIRECTIONS:
09:01 dalek niecza: Kill DIRECTIONS since I obviously can't keep it up to date and perl6.org/features works better anyhow
09:01 dalek niecza: review: https://github.com/sorear/niecza/commit/10d93200e4
09:04 * moritz will be gone for most of the weekend
09:05 sorear have the appropriate amount of fun
09:07 snearch joined #perl6
09:10 colomon sorear: t/spec/S03-operators/arith.t is failing after your constant folding exception patch
09:36 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 colomon afk # back to bed
09:36 colomon emmentaler!
09:38 colomon wait, it only knows about neutro?
09:38 colomon afk # back to bed for real
09:39 dalek niecza: de9cc16 | sorear++ | / (3 files):
09:39 dalek niecza: Rename _newtiedscalar to Proxy.new and tweak the API for compatibility
09:39 dalek niecza: review: https://github.com/sorear/niecza/commit/de9cc16027
09:40 sorear tomorrow, I'll look at arith.t and all the Proxy spectests
09:40 sorear afk # bed
09:41 kaare__ joined #perl6
09:43 spine joined #perl6
09:44 fasad joined #perl6
09:48 awoodland joined #perl6
09:52 Psyche^ joined #perl6
09:58 fasad joined #perl6
10:00 masak good antenoon, #perl6.
10:03 mj41 joined #perl6
10:13 zby_home joined #perl6
10:30 jnthn morning, #perl6
10:42 masak morning, jnthn-san.
10:42 masak what's on the schedule for today?
10:42 masak will we get boundedly serialized closures?
10:44 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:45 * jnthn also wants to go for a walk in the sunny weather :)
10:51 masak \o/
11:19 bbkr1 rakudo: Method.^methods>>.say
11:19 p6eval rakudo a47a56: OUTPUT«(signal SEGV)assuming␤of␤arity␤rw␤»
11:20 jnthn That one was ticketed recently.
11:21 bbkr1 i've ticketed #108968, which was segfaulting on signature
11:21 bbkr1 although this is probably related, i'll just update this ticket
11:21 jnthn Yes, it is
11:27 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>␤»
11:31 bbkr1 on the other hand how can method knows that it is installed somewhere...
11:31 MayDaniel joined #perl6
11:33 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:34 jnthn It'd also make it weird/tricky to install the same method under multiple names.
11:34 jnthn So, those almost certainly want to stay decoupled.
11:47 masak +1
11:47 masak rakudo: class A { our method foo { say "OH HAI" } }; say &A::foo.^name
11:48 p6eval rakudo a47a56: OUTPUT«Method␤»
11:49 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␤»
11:49 masak rakudo: class A { our method foo { say "OH HAI" } }; my $m = &A::foo; class B {}; B.^add_method("bar", $m); B::bar(A)
11:49 p6eval rakudo a47a56: OUTPUT«Could not find symbol 'B::&bar'␤  in block <anon> at /tmp/wKH5abfwye:1␤  in <anon> at /tmp/wKH5abfwye:1␤»
11:49 masak jnthn: how do I add a method so that it's 'our'-scoped?
11:54 masak 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␤»
11:54 masak that works :)
11:55 jnthn masak: Yeah. Package and method table installations are separate operatins.
11:56 jnthn 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 ..." :)
12:03 masak as usual, Perl desugars to something very sensible.
12:16 jferrero joined #perl6
12:28 spine perl6: my &infix:<c> = {$^a+$^b}; say 1 c 2;
12:28 p6eval niecza v14-11-gde9cc16: OUTPUT«3␤»
12:28 p6eval ..rakudo a47a56: OUTPUT«===SORRY!===␤Confused␤at /tmp/o_PnO5M2fr:1␤»
12:28 p6eval ..pugs b927740: OUTPUT«*** ␤    Unexpected "c"␤    expecting operator, ":" or ","␤    at /tmp/T1iFYdZGvA line 1, column 34␤»
12:28 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 #perl6
12:28 spine made me do unnecessary double function calls :)
12:29 jnthn Hm, should that work...
12:29 jnthn std: my &infix:<c> = {$^a+$^b}; say 1 c 2;
12:29 p6eval std 48335fc: OUTPUT«ok 00:01 116m␤»
12:29 jnthn Hm, appears so.
12:33 spine well, I don't know the spec, but it would enable you to use curryed functions as infix ops
12:40 MayDaniel joined #perl6
12:43 masak it should definitely work.
12:43 masak spine: I have you as "simon" in the table at http://strangelyconsistent.org/p6cc2011/ -- do you prefer "spine"? I didn't know your nick until now.
12:46 spine masak: that's perfect, I actually prefer simon.
12:46 HarryS joined #perl6
12:47 masak *poof* thy will be done.
12:47 * masak enjoys NOP wish fulfillments :)
12:48 masak jnthn: how about I submit a Rakudobug on infix:<c> not working?
12:48 jnthn masak: please do
12:48 masak nom: sub infix:<c> { $^a + $^b }; say 1 c 2
12:48 p6eval nom a47a56: OUTPUT«3␤»
12:48 * masak submits rakudobug
12:53 dalek rakudo/stdinit: 50d8eec | jnthn++ | src/Perl6/Grammar.pm:
12:53 dalek rakudo/stdinit: 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 dalek rakudo/stdinit: review: https://github.com/rakudo/rakudo/commit/50d8eec815
12:53 jnthn spine++
12:54 jnthn (Note, it's done in a branch where I'm doing other stuffs to variable declaration anyway.)
12:58 spine hüt wäri scho motivierter :)
12:58 spine oops fc
13:02 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 lestrrat joined #perl6
13:03 masak no no, that's not German.
13:03 masak what is it?
13:03 masak it's something Germanic, but not German.
13:05 spine swiss german
13:05 masak is that the same as, or distinct from, Romansh?
13:05 spine very distinct
13:05 masak ah.
13:06 spine swiss german is just a very strange dialect of german :)
13:06 arnsholt Apparently it's german, just really weird
13:06 arnsholt Or, what he said ^_^
13:07 spine well it wasn't meant for this channel
13:07 masak a bit like Perl 5 and Perl 6, then :)
13:07 spine phenny: "heute wäre ich da schon motivierter"?
13:07 phenny spine: "Today, I would be there already motivated" (de to en, translate.google.com)
13:07 spine that would be the german version :)
13:08 masak GT fares better with that version :)
13:08 masak by the time you said "swiss german", a DDG search had already led me to conclude that you were from .ch :)
13:09 masak but then I wrongly concluded Romansh over at Wikipedia, because I didn't consider that Switzerland has a very dialectal German.
13:13 * jnthn has holidayed quite a bit in the Swiss German speaking part of Switzerland :)
13:13 jnthn Didn't pick up all that much of the language though.
13:17 jnthn walk &
13:22 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«[31m===[0mSORRY![31m===[0mâ�¤â�¤Variable $!x used where no 'self' is available at /tmp/qXkjBIcCwo line 1:â�¤------> [32mclass A { has $.x; has $.y //= [33mâ��[31m$!x }; my $a = A.new(:x(42)); say $a.y[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eva…
13:23 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 #perl6
13:50 tarch joined #perl6
13:52 bbkr1 joined #perl6
13:54 spine oh, I just remembered a workaround I tried for the infix thing, which wasn't consistent with different compilers either:
13:54 spine perl6: sub infix:<c> {}; &infix:<c> := {$^a+$^b}; say 1 c 2;
13:54 p6eval pugs b927740: OUTPUT«3␤»
13:54 p6eval ..niecza v14-11-gde9cc16: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Cannot use bind operator with this LHS at /tmp/VdVU1fimCH line 1:â�¤------> [32mub infix:<c> {}; &infix:<c> := {$^a+$^b}[33mâ��[31m; say 1 c 2;[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.se…
13:54 p6eval ..rakudo a47a56: OUTPUT«===SORRY!===␤Cannot use bind operator with this left-hand side␤at /tmp/qXKrR7CCAn:1␤»
13:54 spine but I guess that should not work anyways :)
13:55 masak looks pretty consistent between Niecza and Rakudo.
13:56 masak Pugs, as usual, lags a little in this regard.
13:56 spine oh, ok
13:56 colomon and Pugs, bless its heart, is years behind
13:56 jnthn masak: On that attr one, Rakudo will do the same as Niecza soon on it.
13:57 spine so pugs behaving different is kind of normal?
13:57 masak spine: yes.
13:57 masak spine: don't expect Pugs to align very well to current spec.
13:59 * colomon is smoke testing all the modules under panda-niecza
14:10 colomon https://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 colomon that's 29 of 103 modules working
14:12 masak colomon++
14:18 pullphing left #perl6
14:28 sftp joined #perl6
14:30 awoodland joined #perl6
14:33 tadzik g'morning
14:33 jnthn o/ tadzik
14:34 colomon \o
14:40 whiteknight joined #perl6
14:45 masak good almost-four-in-the-afternoon, tadzik :)
14:51 colomon niecza: say 10.join
14:51 p6eval niecza v14-11-gde9cc16: OUTPUT«10␤»
14:53 Trashlord joined #perl6
14:56 colomon 30 of 103; I just fixed List::Utils.  (Trivial.)
14:57 colomon tadzik: I think we should add columns to modules.perl6.org saying whether or not the module works under Rakudo and/or Niecza.
14:59 masak isn't the goal for the Perl 6 modulespace to work under Rakudo and Niecza?
14:59 masak (barring things like blizkost and zavolaj)
15:00 Woodi joined #perl6
15:00 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.
15:00 tadzik colomon: certainly
15:00 masak oops! Rakudo made a little update. now it doesn't work on Rakudo anymore.
15:01 colomon doesn't modules.perl6.org update automatically?
15:01 masak I can attest to reality being quite volatile in this regard :)
15:01 arnsholt Yeah, it'll definitely be volatile, so some kind of datestamp to go along would be needed as well
15:01 wooden joined #perl6
15:01 wooden joined #perl6
15:01 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 :)
15:01 masak colomon: oh! smoking?
15:01 colomon yes
15:01 masak that's a neat idea.
15:02 masak much neater than what I thought you meant :P
15:02 tadzik emmentaller :)
15:02 masak sorry for being thick :)
15:02 masak yeah.
15:02 masak we've wanted smoke-testing for ages now.
15:02 tadzik it even worked for a while :)
15:02 masak ideally, we should have a bot that reports on failures, too.
15:02 colomon tadzik: emmentaller talks about neutro, so I went ahead and implemented smoke testing on top of Panda.
15:02 tadzik (http://tjs.azalayah.net/)
15:02 colomon well, panda-niecza
15:02 tadzik cool
15:02 colomon it was pretty trivial
15:03 masak tadzik++
15:03 masak tadzik: the thing I like about you perhaps most of all is how you pick up my great ideas and implement them. :D
15:03 tadzik i should have some new load of tuits in a week (after the last exam)
15:04 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
15:04 tadzik just sayin' :)
15:05 tadzik I think the code is here: https://github.com/tadzik/emmentaler
15:05 * masak looks
15:05 masak hehe, sergenerator.pl
15:06 tadzik that's one awful script :P
15:06 masak seems I have write access already...
15:06 spine mhm, I like that name :)
15:06 masak well, working code trumps no code.
15:06 masak spine: you know Polish?
15:07 spine emmentaler is a swiss cheese :p
15:07 tadzik phenny: "ser"?
15:07 phenny tadzik: "be" (es to en, translate.google.com)
15:07 tadzik be yourself
15:07 tadzik phenny: pl "ser"?
15:07 phenny tadzik: "cheese" (pl to en, translate.google.com)
15:07 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.
15:08 masak tadzik: I had forgotten all about 'bgcolor' -- thanks for reminding me. :)
15:08 masak tadzik: nowadays I just put things all in style="" or a CSS file.
15:09 masak 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
15:09 spine anyways, I have to go. cu #perl6
15:09 masak spine: \o
15:10 tadzik masak: heh, I've never really learned CSS
15:10 tadzik all I know about HTML is what I've learned in this 4th year of primary school, or something
15:10 tadzik or was it 5th?
15:14 masak CSS is when HTML starts being worth learning, IMO.
15:14 masak well, somewhere around the DOM, at least. even though the DOM has the weirdest overdesigned interface in the history of crap.
15:15 masak a bonus is that if you learn CSS well, you'll get jQuery almost for free. and it rocks.
15:17 tadzik mebbe. I've never been particulary interested in learning those client-side technologies, tbh
15:18 colomon you kids today and your fancy web technologies....
15:21 cognominal masak, in a sense, that has been an opportunity, great librairies have been designed to decouple from that crap.
15:21 colomon tadzik: https://github.com/colomon/panda/blob/master/bin/smoke-niecza
15:21 tadzik colomon: that looks a bit like masstest
15:22 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 colomon masstest?
15:23 tadzik hah, I never commited that, it'd seem
15:23 tadzik https://gist.github.com/1738468 this thingy
15:23 tadzik we have like wrote almost identical code, for the same purpose
15:23 colomon yes!  I was trying to find that in the middle of the night...
15:24 colomon it's pretty obvious code, really.  :)
15:24 tadzik aye :)
15:25 colomon I was more paranoid about having the script die in process, thus writing out each result as it goes
15:25 colomon whereas you just used std out
15:26 tadzik I see
15:27 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
15:27 colomon (I used different directory names.)
15:27 tadzik tbh, I doubt there's a doubt for a special thing named panda-niecza
15:27 tadzik otoh, I don't know how much your branch is different from mine
15:28 colomon it's not very different
15:28 tadzik but I'd really like to have just one panda which will just work
15:28 colomon agreed, but it still will need to keep track of which projects are installed for Rakudo and which for Niecza.
15:29 tadzik true
15:29 colomon I figure having a separate panda-niecza is a pretty short term thing
15:30 colomon gotta run get ready to take my 3-year-old to the preschool open houses this morning
15:50 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.
16:03 masak (Set and Bag in Niecza)++
16:03 masak I approve.
16:03 masak TimToady++
16:08 Blinky- joined #perl6
16:12 MayDaniel joined #perl6
16:16 masak I just had a 'where' clause catch a bug in a script I wrote.
16:16 masak I turned the sub in question into a multi, and added a catch-all case which died with enough debug indo.
16:16 masak info*
16:17 rasto joined #perl6
16:17 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 eiro joined #perl6
16:19 kmwallio joined #perl6
16:23 TimToady colomon++ did most of the later work
16:24 masak colomon++
16:35 tokuhir__ joined #perl6
16:36 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 TimToady niecza: say +bag 2,2,3,4,4
16:37 p6eval niecza v14-11-gde9cc16: OUTPUT«5␤»
16:37 TimToady niecza: say bag(2,2,3,4,4) ∩ bag(2,3,3,4,4,4)
16:37 p6eval niecza v14-11-gde9cc16: OUTPUT«[31m===[0mSORRY![31m===[0m��Confused at /tmp/KnicX_aVPD line 1:�------> [32msay bag(2,2,3,4,4) [33m�[31m∩ bag(2,3,3,4,4,4)[0m��Parse failed��»
16:38 TimToady niecza: say set(2,3,4) ∩ set(3,4,5)
16:38 p6eval niecza v14-11-gde9cc16: OUTPUT«[31m===[0mSORRY![31m===[0m��Confused at /tmp/359CRCEtn7 line 1:�------> [32msay set(2,3,4) [33m�[31m∩ set(3,4,5)[0m��Parse failed��»
16:38 tokuhir__ joined #perl6
16:38 TimToady niecza: say set(2,3,4) (&) set(3,4,5)
16:38 p6eval niecza v14-11-gde9cc16: OUTPUT«[31m===[0mSORRY![31m===[0m��Confused at /tmp/xaoVdIUec1 line 1:�------> [32msay set(2,3,4) [33m�[31m(&) set(3,4,5)[0m��Parse failed��»
16:38 masak :/
16:39 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…
16:39 TimToady hmm
16:39 masak set operators are commented out in Niecza source.
16:40 masak they're in lib/CORE.setting
16:40 TimToady I thought they were working earlier
16:41 chee joined #perl6
16:41 chee :)(:
16:41 masak the last commit on those lines is the one that adds the class, with the operators commented out.
16:41 masak commit-messages colomon: "Import version of TimToady++'s Set class.  Alas, the operators are all commented out for the moment."
16:41 TimToady chee: there's no need to be two-faced :)
16:42 * masak .oO( excessive chee will be rectified )
16:42 TimToady masak: ah well, all in good time
16:42 chee :D
16:49 icwiener joined #perl6
16:51 * jnthn back
17:05 masak method legal_moves { %possible_moves{ @.pieces }.grep({ is_legal($_) }) }
17:05 masak I love Perl 6 :)
17:09 masak er, that should be self.is_legal
17:09 masak but still. pretty succinct.
17:11 masak 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…
17:11 p6eval ..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␤»
17:11 p6eval ..pugs b927740: OUTPUT«*** ␤    Unexpected "$ where"␤    expecting formal parameter or ")"␤    at /tmp/JkZiTSmi68 line 1, column 9␤»
17:12 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 masak in these cases, maybe numbering the paramters somehow helps more.
17:12 masak I dunno.
17:19 TimToady if it's a set, should probably be %.pieces :)
17:20 TimToady and if I were a piece, I'd think I was the object and not the board; the board is just the universe :)
17:22 TimToady hmm, I see no rosettacode entries for bags/multisets offhand (http://en.wikipedia.org/wiki/Multiset)
17:25 masak sorear: the "declared but not used" warnings are pretty useless on the REPL.
17:26 masak 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:27 masak 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])␤»
17:28 masak what can I do to get just a flat list, (1, 2, 3, 4)?
17:28 masak (given that the values of %h really are arrays)
17:28 jnthn nom: my %h = foo => [1, 2], bar => [3, 4]; my @a = <foo bar>; say %h{ @a }>>.flat.perl
17:28 p6eval nom a47a56: OUTPUT«([1, 2], [3, 4])␤»
17:28 jnthn ah
17:29 jnthn 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])␤»
17:29 jnthn heh, not that then :)
17:29 jnthn oh, of course
17:29 jnthn hypers maintain structure
17:29 jnthn duh.
17:30 jnthn 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␤»
17:30 jnthn That's one way.
17:31 jnthn oh, not if you want them in order
17:31 jnthn grr
17:31 jnthn :)
17:31 masak I don't care about the order.
17:31 jnthn nom: my %h = foo => [1, 2], bar => [3, 4]; my @a = <foo bar>; say (.flat for %h{ @a }).perl
17:31 p6eval nom a47a56: OUTPUT«(1, 2, 3, 4).list␤»
17:31 jnthn That is also possible. :)
17:31 masak thanks :)
17:32 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␤»
17:32 masak why does .map work but not >>.flat ?
17:32 TimToady because nobody implements the spec yet
17:33 masak :P
17:33 jnthn Oh my, is that the duck mapping thing...
17:33 masak yeah. not a fan.
17:34 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
17:34 masak TimToady: so you're saying >>.flat above would work if your duck mapping idea were implemented?
17:34 TimToady yes
17:34 jnthn b: my %h = foo => [1, 2], bar => [3, 4]; my @a = <foo bar>; say %h{ @a }>>.flat.perl
17:34 masak in that case, that's score 1 for the idea, I guess.
17:34 p6eval b 1b7dd1: OUTPUT«([1, 2], [3, 4])␤»
17:35 jnthn ah, and b did something else there too.
17:35 TimToady if [] implements .flat then it shouldn't descend into it
17:37 TimToady the only tricksy thing is that it is specced to ignore the list methods from Any, which won't dwtm in this case
17:43 TimToady 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␤»
17:43 TimToady niecza: my %h = foo => [1, 2], bar => [3, 4]; my @a = <foo bar>; say %h{ @a }.map(&values).perl
17:44 p6eval niecza v14-11-gde9cc16: OUTPUT«(1, 2, 3, 4).list␤»
17:46 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
17:46 p6eval niecza v14-11-gde9cc16: OUTPUT«Any␤»
17:46 p6eval ..rakudo a47a56: OUTPUT«(1, 2)␤»
17:46 p6eval ..pugs b927740: OUTPUT«\undef␤»
17:47 TimToady perl6: my %h = a => 1, b => 2; say %h{}.perl
17:47 p6eval pugs b927740: OUTPUT«{("a" => 1), ("b" => 2)}␤»
17:47 p6eval ..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) …
17:47 p6eval ..rakudo a47a56: OUTPUT«(1, 2).list␤»
17:47 TimToady niecza doesn't do Zen slice either yet
17:51 TimToady perl6: say perl list 1
17:51 p6eval niecza v14-11-gde9cc16: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤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…
17:51 p6eval ..pugs b927740: OUTPUT«1␤»
17:51 p6eval ..rakudo a47a56: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&perl' called (line 1)␤»
17:52 masak we never nailed down which methods should also be subs.
17:52 masak it's kinda arbitrary as it is.
17:52 TimToady note that the listop form of list methods automatically promote items
17:53 * TimToady wonders if a failed listop dispatch should just assume that, and not fill Any with coercions
17:53 TimToady a failed single dispatch, that is
17:55 TimToady if we did something like that, we wouldn't have to make an Any exemption for duck mapping
17:55 TimToady well, maybe
17:56 TimToady well, maybe not
17:56 TimToady I guess it would still fail if were using the same dispatcher (with the failover) to determine whether the method is available
17:57 sorear good * #perl6
17:58 Juerd joined #perl6
17:58 TimToady o/
17:58 nebuchadnezzar joined #perl6
17:58 MayDaniel joined #perl6
17:58 PerlJam joined #perl6
17:59 nebuchadnezzar yo
18:01 TimToady perl6: say 1.&list
18:01 p6eval pugs b927740, rakudo a47a56, niecza v14-11-gde9cc16: OUTPUT«1␤»
18:01 TimToady perl6: say 1.&list.perl
18:01 p6eval rakudo a47a56: OUTPUT«(1,).list␤»
18:01 p6eval ..pugs b927740: OUTPUT«(1,)␤»
18:01 p6eval ..niecza v14-11-gde9cc16: OUTPUT«(1, ).list␤»
18:02 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:03 TimToady so I wonder whether we really need the Any list promotions at all, if the .&foo form is available
18:03 TimToady assuming we add a perl listop and such where appropriate
18:04 dalek niecza: 923f0f3 | sorear++ | lib/Kernel.cs:
18:04 dalek niecza: Add quotes to parameter binding errors
18:04 dalek niecza: review: https://github.com/sorear/niecza/commit/923f0f3d7a
18:08 TimToady I wonder how much code currently depends on List(Item) coercion...
18:11 TimToady we used to depend on .[0] being a no-op rather heavily, but I don't know if we do that any more
18:14 TimToady 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:15 TimToady but generally those would want to dwim by applying a listop, which we can have the .&foo form of
18:15 TimToady the .[0] is not often used for that (and currently we don't have a .&[0] form corresponding to .&foo)
18:16 TimToady since there's no prefix subscript op (other than postcircumfixfix:<[ ]> of course)
18:20 birdwindupbird joined #perl6
18:27 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 TimToady I suppose it might be worth a before/after comparison on the spectests...
18:29 TimToady BTW, method perl is in fact specced as 'is export'
18:30 TimToady not that that's a list method exclusively...
18:31 TimToady and an exported method doesn't automatically turn into a listop, of course
18:32 sorear TimToady: I don't know - it could work
18:32 TimToady so the actual export in S32/Basics is not really adequate
18:32 sorear what else would an exported method turn into?
18:32 TimToady it would at least need to allow a capture as its invocant, if it were to handle all the list args
18:33 TimToady but that's probably not what someone wants if they use perl as a listop
18:33 TimToady they probably just want map *.perl, @list
18:33 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.
18:33 TimToady but the perl listop is a side issue
18:34 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
18:35 TimToady 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.
18:35 jnthn I couldn't believe that bit of the design would survive. :)
18:35 jnthn And it's a minor pain to do.
18:36 TimToady I'm just sayin' the problem may not be in the duck mapping, but in Any
18:36 TimToady without the exclusion, duck mapping is trivial
18:36 jnthn TimToady: Yes, the exclusion is what I'm talking about.
18:36 TimToady you just reverse the order
18:37 cognominal rakudo: grammar A { rule TOP { [ $<a>=a ]+ }};  say A.parse('aaaa');
18:37 p6eval rakudo a47a56: OUTPUT«#<failed match>␤»
18:37 TimToady so I'm looking at whether List(Item) promotion is really appropriate in the single-dispatch realm
18:37 cognominal rakudo: grammar A { token TOP { [ $<a>=a ]+ }};  say A.parse('aaaa');
18:37 p6eval rakudo a47a56: OUTPUT«=> <aaaa>␤ a => <a>␤ a => <a>␤ a => <a>␤ a => <a>␤␤»
18:38 TimToady especially if there's a 1 character workaround for listops
18:38 cognominal how comes TOP works only as a token?
18:38 sorear wait, wait, are you saying MMD should have a special case to coerce items to lists?
18:39 TimToady no
18:39 TimToady I'm saying list operators naturally already do that
18:39 sorear cognominal: when you use "rule", you're requiring whitespace between the as
18:39 jnthn cognominal: It's nothing to do with TOP
18:39 jnthn cognominal: what sorear said quicker than me ;)
18:39 sorear cognominal: if you want to match "a a a a", use rule.  if you want to match "aaaa", use token
18:39 TimToady cognominal: the currently specced whitespace rules would still workl, but we haven't quite implemented them
18:40 cognominal I thought they ere optional not mandatory
18:40 TimToady not inside an identifier
18:40 sorear cognominal: if you want to match either, use rule with token ws { \h* }
18:40 TimToady and the new specced rules won't help with that part
18:41 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
18:41 TimToady S05:319
18:42 cognominal thx
18:47 TimToady you can always do [:!s a a a a] too to turn off sigspace in a scope
18:49 dalek nqp/bs: cac5607 | jnthn++ | src/ (3 files):
18:49 dalek nqp/bs: Give SCs an extra slot set for code refs.
18:49 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/cac560741f
18:49 dalek nqp/bs: 9d4ef26 | jnthn++ | t/serialization/02-types.t:
18:49 dalek nqp/bs: Add (currently failing) tests for serializing types with methods.
18:49 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/9d4ef26e76
18:49 dalek nqp/bs: 4a1b573 | jnthn++ | src/6model/serialization.c:
18:49 jnthn dinner time &
18:49 dalek nqp/bs: Start sketching out serialization of static code refs.
18:49 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/4a1b573ec6
18:49 dalek nqp/bs: 4a9b1a7 | jnthn++ | src/ (3 files):
18:49 dalek nqp/bs: Update deserialization API to take an initial list of the compilation unit's static code refs.
18:49 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/4a9b1a7867
18:49 dalek nqp/bs: 3410ab0 | jnthn++ | t/serialization/0 (2 files):
18:49 dalek nqp/bs: Update tests for new deserialization API.
18:49 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/3410ab0634
18:49 dalek nqp/bs: ff11af1 | jnthn++ | src/ (3 files):
18:49 dalek nqp/bs: Add an op for adding a code ref to an SC.
18:49 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/ff11af14ec
18:49 dalek nqp/bs: d0e53db | jnthn++ | t/serialization/02-types.t:
18:49 dalek nqp/bs: Update test case to bring it inline with current design. Now survives serialization, though not deserialization.
18:49 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/d0e53db5e5
18:49 dalek nqp/bs: 016bec6 | jnthn++ | src/6model/serialization.c:
18:49 dalek nqp/bs: Static code ref deserialization. Tests for this now pass.
18:49 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/016bec62f5
18:49 cognominal the problem was to identify the problem. This is Perl, when identified, there are may ways to solve it. :)
19:10 dalek niecza: 38a95d6 | sorear++ | src/STD.pm6:
19:10 dalek niecza: Suppress unused warnings in REPL (masak)
19:10 dalek niecza: review: https://github.com/sorear/niecza/commit/38a95d65c8
19:11 dalek roast: 5815031 | sorear++ | S03-operators/arith.t:
19:11 dalek roast: [S03-operators/arith] Use eval_dies_ok because Niecza catches 5/0 at compile time now
19:11 dalek roast: review: https://github.com/perl6/roast/commit/5815031305
19:20 masak sorear++
19:21 masak ...and Niecza catches divisions by 0 at compile time?!
19:21 masak (yes, I understand that it's only in constant foldings. still cool.)
19:32 colomon sorear++
19:34 snearch joined #perl6
19:35 awoodland joined #perl6
19:48 imarcusthis- joined #perl6
19:51 mj41 joined #perl6
19:54 dalek roast: 428e7b0 | sorear++ | S0 (2 files):
19:54 dalek roast: Fix(?) S06/lvalue-subroutines, fudge Proxy tests for niecza
19:54 dalek roast: review: https://github.com/perl6/roast/commit/428e7b0384
19:54 dalek niecza: c008e24 | sorear++ | t/spectest.data:
19:54 dalek niecza: Run two new test files for Proxy
19:54 dalek niecza: review: https://github.com/sorear/niecza/commit/c008e24400
19:59 abhishek__ joined #perl6
20:00 abhishek_ joined #perl6
20:02 abhishek_ joined #perl6
20:04 colomon Proxy!
20:04 colomon \o/
20:05 * colomon realizes this means he's going to have to learn how to use Proxy...
20:05 Moukeddar joined #perl6
20:07 masak Moukeddar! \o/
20:07 Moukeddar Hi masak :D
20:07 Moukeddar it's a pleasure to be here, again
20:08 colomon o/
20:08 Moukeddar how are you doig guys?
20:09 colomon great!
20:09 masak couldn't be better!
20:09 Moukeddar so, Craigslist donated 100,000$ to Perl5 :)
20:10 masak oh, did they? good for craigslist and Perl 5 ;)
20:11 Moukeddar Yep, i hope they don't spend it on beer
20:12 masak (well, not until they worked for the money, at least!)
20:13 Moukeddar lol
20:13 Moukeddar crazy devs
20:14 sorear o/ Moukeddar
20:14 Moukeddar hi sorear :)
20:14 Moukeddar how are you ?
20:15 sorear ok
20:15 abhishekisnot joined #perl6
20:16 abhishekisnot joined #perl6
20:17 Moukeddar i'm watching stanford lectures :)
20:23 abhishekisnot joined #perl6
20:23 y3llow_ joined #perl6
20:23 pothos_ joined #perl6
20:25 abhishekisnot joined #perl6
20:26 y3llow joined #perl6
20:26 pothos joined #perl6
20:28 y3llow joined #perl6
20:29 pothos joined #perl6
20:30 abhishekisnot joined #perl6
20:31 y3llow joined #perl6
20:33 bluescreen10 joined #perl6
20:35 abhishekisnot joined #perl6
20:43 awoodland joined #perl6
20:59 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...  ;)
21:00 sorear I *could*, but...
21:00 sorear the last time I fixed those tests (for Unicode 6.0), it took a lot out of me :|
21:01 colomon hmm... is it only those two blocks of tests which are likely to be wrong?
21:04 * colomon is totally not joking about EBCDIC, btw -- about a third of his classes had coursework done on an IBM mainframe...
21:12 whiteknight jnthn: ping
21:20 jnthn whiteknight: pong
21:21 whiteknight jnthn: https://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 whiteknight not a huge amount of help, but not nothing
21:22 jnthn whiteknight: Does the op magically make passing args to the .sub where there are no .param declarations OK?
21:22 abhishekisnot joined #perl6
21:22 jnthn whiteknight: Or is it still the case that no .param decl means no check?
21:23 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:24 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
21:25 whiteknight 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.
21:26 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. :)
21:26 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
21:26 whiteknight I don't subscribe to the thought that it should just magically happen
21:26 jnthn whiteknight: Yes, but I'm saying there's no way to ask for that short of grabbing the CallContext and checking it.
21:26 whiteknight jnthn: that op is part of my overall plan to remove magic, and it explicitly won't change behavior in the future
21:26 jnthn OK.
21:27 jnthn whiteknight: Also wrt your mailing list post...
21:27 whiteknight jnthn: I jsut checked nqp, it doesn't look like nqp uses self
21:27 jnthn The latest NQP (that Rakudo uses) doesn't use :method any more for generated code anyway (and thus not self)
21:27 whiteknight yeah, I'm eternally grateful for that update
21:27 whiteknight because now I can move on with plans to kill :method too
21:27 whiteknight happy days are here again
21:28 jnthn whiteknight: I'm probably going to kill out usage of :instanceof in the near future too.
21:28 jnthn *off
21:28 jnthn Only NQP uses it, not Rakudo (well, apart from Rakudo depending on NQP...)
21:28 whiteknight jnthn: awesome. I tried to remove that from IMCC earlier this month, only to see I'd broken Rakudo.
21:28 jnthn Yeah.
21:28 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
21:29 whiteknight :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.
21:29 jnthn And I can do what I wanted more easily with using a 6model object and delegation than a subclass of a PMC.
21:29 whiteknight I want all Parrot languages to do like NQP does: no :method, explicitly declaring "self", not expecting magic from the .pbc loader, etc
21:30 whiteknight 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:36 apricoti joined #perl6
21:37 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:40 jnthn whiteknight: How deeply do you want to get it in to Parrot?
21:40 whiteknight jnthn: at the lowest level.
21:40 whiteknight I want to completely redo PMCs, VTABLEs, the works. 6model is just the first step on that road
21:44 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
21:44 jnthn apricoti: Are you doing :MyRule<$the_variable> ?
21:44 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
21:45 jnthn apricoti: If so, <...> is literal syntax.
21:45 jnthn cah
21:45 jnthn I meant :rule<$the_varialbe> # won't work
21:45 whiteknight jnthn: Thereafter we can merge the two object models (and by "merge" I mean "delete anything that isn't 6model") and refactor
21:45 jnthn apricoti: Do :rule($variable)
21:45 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
21:46 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.
21:47 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.
21:49 jnthn 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 jnthn whiteknight: OK. It's just a daunting bunch of work.
21:50 apricoti jnthn:  ok thanks!
21:51 perimosocordiae joined #perl6
21:52 felher whiteknight++ # for all the great work on Parrot :)
21:59 apricoti jnthn:  oh so :rule($variable)  or :rule<literal>  is just a named parameter to the parse() method right?
22:00 sorear Right.
22:01 apricoti hooray! thanks
22:47 nebuchadnezzar joined #perl6
22:53 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␤»
22:53 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/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␤»
22:55 jnthn gfldex: postcircumfix:<( )> always takes a single argument, which is the Capture containing the arguments.
22:56 gfldex even if i intend to have no arguments at all?
22:56 puurl joined #perl6
22:58 jnthn gfldex: Yes, in that case you'll get an empty capture
22:59 gfldex does that mean if I want to have MMD I have to delegate to normal methods?
23:00 jnthn gfldex: Yeah, or use sub-signatures
23:03 gfldex jnthn: how is the spec calling sub-signatures?
23:03 sorear alternatively, use niecza, which implements slightly more reasonable semantics for postcircumfix:<( )> :D
23:04 * jnthn sighs at sorear
23:04 jnthn gfldex: I thought it called them that
23:05 jnthn gfldex: ah, S06 calls it unpacking
23:05 gfldex found it, tyvm
23:05 sorear I was under the impression that the use of Capture there was a relic from when invocants were special
23:07 masak good night, #perl6.
23:08 sorear bye masak
23:08 sorear wtf does S13:150 even mean
23:09 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 jnthn sorear: I'm not really in favor of the way things are, I just implemented it the way it was spec'd.
23:09 jnthn sorear: And ruoso didn't seem to argue for the status quo too strongly last time it was discussed, from what I recall.
23:12 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.
23:15 jnthn 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..
23:15 sorear I wasn't really trying to say it was on purpose.  Now I'll make it clear by fixing the bug
23:15 * jnthn feels like a yoyo
23:16 sorear sorry
23:17 jnthn Timbus: Yeah, I seem to end up there more and more these days.
23:17 jnthn sorear: Well, or fix the spec if you don't think TimToady will be disagreeable with the change. :)
23:19 * jnthn really afk, back sometime tomorrow...
23:19 TimToady I don't care about .() but .[] and .{} have to handle multidim subscripts somehow
23:20 TimToady the question being, what does .[1,2,3; 4,5,6] desugar to?
23:21 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
23:21 jnthn .oO( this afk-ing ain't going so well... :) )
23:21 TimToady as long as .[1,2,3] turns into ((1,2,3),)
23:22 sorear removing the item/list punning will make **@dims even more broken
23:23 jnthn OK, really really going this time o/
23:23 sorear bye
23:23 TimToady o/
23:24 awoodland joined #perl6
23:25 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
23:25 sorear it seems to be saying that $x.Str might fall back to Str($x)
23:26 TimToady well, DRY says you shouldn't have to define coercion in both the source and the target class
23:26 TimToady if really depends on which one was defined first or last
23:26 TimToady which classes know about which other classes, which can happen in either order
23:27 sorear RFC: http://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
23:28 sorear TimToady: I think in our current model it makes no sense for $str.NewClass to work
23:29 TimToady you have a funny definition of "makes no sense"
23:30 sorear isn't $string.method_name controlled entirely by Str and Str.HOW?
23:31 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
23:32 sorear ah.  (I don't think this reservation is coded explicitly in STD?)
23:33 TimToady STD doesn't actually care whether method names exist :)
23:33 TimToady so yeah...
23:37 TimToady 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:38 TimToady on list/item punning, I'm not proposing removing it entirely; a single item can still bind as a capture/subcapture
23:38 TimToady I'm only proposing kicking the list methods out of Any
23:39 TimToady so that duckmapping can't see them
23:39 TimToady and that's only the single-dispatch methods
23:39 sorear I'm curious to know more about the history of failovers in Perl 6.
23:39 TimToady listop $a is still perfectly fine
23:40 TimToady it mostly stemmed from trying to avoid poeple having to put a : into 'close $foo:;'
23:40 TimToady so single arg functions where ambiguously also method calls in the early design
23:41 TimToady *were
23:41 sorear Do you have any objection to the RFC'd patch?
23:41 TimToady nope
23:41 dalek specs: 4fe1480 | sorear++ | S13-overloading.pod:
23:41 dalek specs: Respec postcircumfix:<( )> to take arguments directly
23:41 dalek specs:
23:41 dalek specs: This makes it possible to implement it as a set of multi methods.
23:41 dalek specs: review: https://github.com/perl6/specs/commit/4fe14806a6
23:41 silug_ joined #perl6
23:42 TimToady eventually we decided that the who's to be master problem dictated a clean separation between single dispatch and lexical dispatch
23:42 TimToady the desire to dwim on coercions is the only intentional remnant of that
23:42 mls_ joined #perl6
23:43 BooK__ joined #perl6
23:43 mathw_ joined #perl6
23:43 Woodi_ joined #perl6
23:44 avarab joined #perl6
23:44 LoRe_ joined #perl6
23:44 PerlPilot joined #perl6
23:44 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 yeltzooo7 joined #perl6
23:44 Lorn_ joined #perl6
23:44 TimToady our gists and perls and Strs tend to assume no derivation types, which is wrongish
23:45 Pzter joined #perl6
23:45 araujo joined #perl6
23:45 TimToady looks like some bad irc weather...
23:45 tokuhirom3 joined #perl6
23:46 whiteknight my knee has been swelling up, that means a netsplit's a'brewin'
23:47 TimToady rheumatism has to be good for sump'n
23:49 sorear TimToady: would you say $foo."TypeName"() is different from $foo.TypeName() then?
23:49 TimToady yes
23:51 TimToady that was one of the motivations for the quoted form
23:52 TimToady especially if calling into a different language with different uc conventions on method names
23:52 TimToady otoh, we didn't have .& back then
23:53 TimToady 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?
23:54 TimToady they coerce to string, just differently
23:55 TimToady but we have a general problem with coercions assuming they speak for subclasses when they don't
23:56 TimToady been playing around with various bandaids^Wsolutions in my head
23:56 TimToady mostly modelled on the BUILDALL/BUILD relationship
23:58 imarcusthis joined #perl6
23:59 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 TimToady but people will write 'method gist' and then give it submethod semantics inadvertently all the time, I think

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo