Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-09-27

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 supernovus does sigspace no longer apply to rules anymore?
00:06 sorear supernovus: nom's support for grammars is very lacking
00:08 supernovus sorear: I am discovering this. I managed to bring my machine to a standstill, with 100% CPU usage. I'm going to leave Exemel in an ng-only state for now. :(
00:08 sorear supernovus: there's a reason nom still isn't officially released.
00:09 supernovus sorear: I know, I like to play with it anyway, sometimes I can help find bugs :-)
00:10 replore joined #perl6
00:18 * sorear is trying to figure out how augment will work in niecza/serialize
00:20 araujo joined #perl6
00:20 araujo joined #perl6
00:26 mtk joined #perl6
00:40 ingy TimToady: https://gist.github.com/1243907
00:41 ingy I think that's as good as I've thought of so far. Also reasonably close to your current.
00:42 ingy what do you guys use for commit points?
00:42 ingy I see <commit>
00:42 diakopter http://perlcabal.org/syn/S0​5.html#Backtracking_control
00:43 diakopter ::, ::>, :::
00:50 ingy diakopter: It's hard to grok all that on first read but I could prolly just adopt :: for a commit operator
00:52 soh_cah_toa ingy: indeed, the synopsis (especially s05) can be quite...overwhelming ;)
00:52 diakopter I'm guessing you want <commit> semantics though; the others are for longest-token-matching afaik
00:54 ingy diakopter: yes, likely
00:54 ingy I could even use do
00:55 ingy name: /xyz/  commit  <foo>
00:55 ingy words outside // or <> mean nothing now
00:56 ingy but I like sigils and twigils
00:57 ingy zzzzzzz time
01:01 uasi joined #perl6
01:14 [particle]1 joined #perl6
01:18 wolfman2000 joined #perl6
01:30 jeffreykegler joined #perl6
01:43 DarthGandalf joined #perl6
01:54 dalek specs: 2448d23 | (Geoffrey Broadwell)++ | S06-routines.pod:
01:54 dalek specs: Delete a phrase in S06:3314-3316 that gave surprising --help semantics; s/argument/option/ in the same sentence so that '--' can be handled properly.
01:54 dalek specs: review: https://github.com/perl6/specs/commit/2448d23b94
02:15 benabik joined #perl6
02:53 s1n1 joined #perl6
03:02 HarryS joined #perl6
03:07 woosley joined #perl6
03:39 envi_laptop joined #perl6
03:49 jeffreykegler joined #perl6
03:54 satyavvd joined #perl6
04:09 am0c joined #perl6
04:14 * moritz is very happy about http://irclog.perlgeek.de/​perl6/2011-09-26#i_4484022
04:14 phenny moritz: 26 Sep 22:03Z <jnthn> tell moritz nice cleanup job on the tests optimizer disliked :)
04:14 phenny moritz: 26 Sep 22:04Z <jnthn> tell moritz S04-exception-handlers/catch.t seems to legitimately fail CHECK still.
04:16 cognominal___ joined #perl6
04:17 envi_|2 joined #perl6
04:17 donri joined #perl6
04:22 dalek roast: 4082112 | moritz++ | S06-multi/lexical-multis.t:
04:22 dalek roast: fix lexical-multis.t
04:22 dalek roast:
04:22 dalek roast: use eval around failures which can be detected at compile time,
04:22 dalek roast: and avoid eval_dies_ok due to scoping issues. Also refudge for rakudo.
04:22 dalek roast: review: https://github.com/perl6/roast/commit/40821124f4
04:23 dalek roast: 43ef0a2 | moritz++ | S04-exception-handlers/catch.t:
04:23 dalek roast: fix catch.t
04:23 dalek roast: review: https://github.com/perl6/roast/commit/43ef0a266a
04:27 jaldhar joined #perl6
05:29 dayangkun joined #perl6
05:43 koban` joined #perl6
05:53 wtw joined #perl6
05:59 kaleem joined #perl6
06:06 orafu joined #perl6
06:11 dalek niecza/serialize: 68c1184 | sorear++ | / (3 files):
06:11 dalek niecza/serialize: First p6side changes for type definitions
06:11 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/68c1184ef4
06:11 * sorear sleep
06:27 cognominal joined #perl6
06:33 packetknife joined #perl6
06:52 moritz nqp: say(pir::const::CONTROL_ERROR)
06:52 p6eval nqp: OUTPUT«61␤»
06:58 wamba joined #perl6
07:23 mj41 joined #perl6
07:34 envi_laptop joined #perl6
07:35 envi_ joined #perl6
08:03 masak joined #perl6
08:03 masak gmmmrmng, #perl6.
08:11 moritz generic greetings, masak
08:13 masak rakudo: role Greeting[::T] { say "Good, {T.^name}, moritz" }; class Morning {}; Greeting[Morning].new
08:13 p6eval rakudo 3e8911: OUTPUT«Good, Morning, moritz␤»
08:13 masak ah, comma fail :)
08:13 masak rakudo: role Greeting[::T] { say "Good {T.^name}, moritz" }; class morning {}; Greeting[morning].new
08:13 p6eval rakudo 3e8911: OUTPUT«Good morning, moritz␤»
08:13 masak that's a generic greeting :P
08:13 dalek rakudo/nom: 4b23759 | moritz++ | / (41 files):
08:13 dalek rakudo/nom: Merge branch 'nom' into nom-exceptions
08:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4b237598a8
08:13 dalek rakudo/nom: b522144 | moritz++ | src/core/Exception.pm:
08:13 dalek rakudo/nom: only unwrap CONTROL_ERROR exceptions
08:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b522144123
08:13 dalek rakudo/nom: 287b0d8 | moritz++ | src/core/ (4 files):
08:13 dalek rakudo/nom: Merge branch 'nom-exceptions' into nom
08:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/287b0d85b4
08:14 moritz jnthn: fwiw the optimizer branch shaves 4s off the mandelbrot benchmark
08:15 masak reading the backlog, I see that jnthn seems to imply that he doesn't own no chickens. this surprises me, as I've been to his apartment, and I've never failed to see no chickens while there.
08:16 dakkar joined #perl6
08:16 masak maybe I didn't look hard enough.
08:16 moritz rakudo: role Greating[::T] { say "Good T.^name(), masak" }; Greeting[ class morning { }]
08:16 p6eval rakudo 3e8911: OUTPUT«Could not find sub &Greeting␤  in <anon> at /tmp/dnNbmYNvPN:1␤  in <anon> at /tmp/dnNbmYNvPN:1␤␤»
08:16 moritz rakudo: role Greeting[::T] { say "Good T.^name(), masak" }; Greeting[ class morning { }]
08:16 p6eval rakudo 3e8911:  ( no output )
08:17 moritz rakudo: role Greeting[::T] { say "Good T.^name(), masak" }; Greeting[ class morning { }].new
08:17 p6eval rakudo 3e8911: OUTPUT«Good T.^name(), masak␤»
08:17 moritz hm, doesn't start with a sigil
08:17 moritz rakudo: role Greeting[::T] { say "Good ::T.^name(), masak" }; Greeting[ class morning { }].new
08:17 p6eval rakudo 3e8911: OUTPUT«Good ::T.^name(), masak␤»
08:17 moritz not sigilish enough
08:17 masak :: isn't that kind of sigil.
08:17 moritz rakudo: role Greeting[$T] { say "Good $T.^name(), masak" }; Greeting[ class morning { }].new
08:17 p6eval rakudo 3e8911: OUTPUT«Good morning, masak␤»
08:18 masak rakudo: role R[::T] { say "maybe I don't even need to use .new" }; R[Int]
08:18 p6eval rakudo 3e8911:  ( no output )
08:18 masak seems I do.
08:19 masak rakudo: role R[::T] { say "seems I do need to use .new" }; R[Int].new
08:19 p6eval rakudo 3e8911: OUTPUT«seems I do need to use .new␤»
08:19 moritz evalbot rebuild nom
08:19 p6eval OK (started asynchronously)
08:22 newsbad_com joined #perl6
08:26 masak nom: sub emph($s is copy, $level) { given $level { when * > 1 { $s .= ucfirst; proceed }; when * > 2 { $s ~= "!"; proceed }; when * > 3 { $s .= uc; proceed }; for 4..$level { $s ~= <1 ! !>.roll(2).join } }; $s }; say "om ", join " ", map { emph "nom", $_ }, 0..10
08:26 p6eval nom 3e8911: OUTPUT«om nom nom Nom Nom! NOM!!! NOM!!!!! NOM!!1!!!! NOM!!!1!!!1! NOM!!!1!!!1!11 NOM!!1!!!!11!1!! NOM!111!1!!!!!1!!!␤»
08:26 masak don't do this at home.
08:27 sbp cf. http://thechive.files.wordp​ress.com/2010/06/54zhb1.gif
08:27 jnthn moritz: (4s more off mandelbrot) nice :)
08:28 masak sbp: that is one happy Cookie Monster.
08:28 jnthn moritz: So, current time is?
08:28 masak jnthn: 10:27 :P
08:28 masak also, it's Tuesday.
08:28 moritz jnthn: around 46s
08:28 moritz (on optimizer)
08:29 jnthn masak: :P
08:30 jnthn nom: say (16 * 60 + 14) / 46
08:30 p6eval nom 3e8911: OUTPUT«21.1739130434783␤»
08:43 cognominal_ joined #perl6
08:43 mls_ morning perl6!
08:43 mls_ oh no, an exception update! I hops it doesn't collide with my code...
08:43 masak mls_: morning!
08:43 moritz mls_: it just does a bit of surface polishing
08:44 masak rakudo: .say for { "bl{$_}p" }, <i u oo>
08:44 p6eval rakudo 3e8911: OUTPUT«_block1010␤i␤u␤oo␤»
08:44 masak rakudo: .say for map { "bl{$_}p" }, <i u oo>
08:44 p6eval rakudo 3e8911: OUTPUT«blip␤blup␤bloop␤»
08:44 daxim joined #perl6
08:45 mls_ moritz: why do you only unwrap CONTROL_ERROR?
08:45 moritz mls_: because I have no bloody idea what to do in other cases
08:46 mls_ I use 'pir::type_check__IPP($payload, Exception)' to check if the payload is an perl6 exception object
08:46 moritz ... and because pmichaud complained that I didn't check the type of the parrot exception, so now I do
08:47 moritz mls_: feel free to change that to whatever makes sense for you
08:47 mls_ ok, will do ;)
08:49 masak perl6: for "abc", "abd" -> $string { say $string ~~ / 'ab' <commit> 'c' / }
08:49 p6eval niecza v10-1-g02435c5: OUTPUT«Unhandled exception: Unable to resolve method commit in class Cursor␤  at /tmp/5HE8AI2H83 line 1 (MAIN C2_ANON @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1567 (CORE Regex.ACCEPTS @ 3) ␤  at /tmp/5HE8AI2H83 line 1 (MAIN C1_ANON @ 1) ␤  at /tmp/5HE8…
08:49 p6eval ..rakudo 3e8911: OUTPUT«Method 'commit' not found for invocant of class 'Cursor'␤  in regex <anon> at /tmp/tglFj8Zghy:1␤  in method ACCEPTS at src/gen/CORE.setting:6149␤  in block <anon> at /tmp/tglFj8Zghy:1␤  in method reify at src/gen/CORE.setting:3730␤  in method reify at src/gen/CORE.…
08:49 p6eval ..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6​.2.13.16/blib6/pugs/perl5/lib';␤    eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HANDLE>' trapped b…
08:50 masak ok, so no-one implements <commit>.
08:53 mls_ moritz: should Exception.throw really modify the Exception object?
08:55 moritz mls_: it's probably redundant, now that sub EXCEPTION rebinds the parrot exception anyway
08:55 cognominal___ joined #perl6
08:56 mls_ moritz: I also clone the payload in EXCEPTION so that I don't modify $!ex.
08:57 moritz mls_: how do you know deep to clone that?
08:58 moritz they are going to be non-trivial perl 6 objects
08:58 mls_ I just call .clone on the payload
08:58 mls_ I have a bad feeling about modifying the original object. But it's just a feeling, I don't know what's correct or wrong.
08:59 moritz I have a bad feeling about uncontrolled cloning of user-supplied objects
08:59 mls_ Well, there are some reasons for cloning, and some against it... ;)
09:01 mj41 joined #perl6
09:01 masak design is hard! :)
09:01 mls_ true, true ;)
09:02 moritz what are the most important nom regressions?
09:02 moritz proto tokens and variable interpolation into regexes come to mind
09:03 masak ISTR there are more things about regexes and grammars that don't work.
09:03 moritz action methods are missing
09:03 * masak tries crypt on nom
09:03 mls_ btw, anything from pmichaud++ about the release?
09:04 moritz http://irclog.perlgeek.de/​perl6/2011-09-26#i_4481819 was the last uptime
09:04 masak ooh, I get an attribute conflict!
09:04 masak inneresting!
09:05 moritz since he didn't report back since then, I fear we have to assume his mother isn't very well, and the release planning neither :(
09:06 masak nod.
09:06 masak if we were to release nom around now, what would users gain from that?
09:07 moritz regular releases
09:07 moritz lots of speedups
09:07 masak leaving aside that they're likely to hit one of our big regressions, I mean.
09:07 moritz a new MOP
09:07 Woodi IO::Socket::INET.recv works :) thank you moritz++ :)
09:07 moritz masak: lots of benefits, see the ChangeLog
09:09 moritz nom: say 'aaaa' ~~ m/a+a/
09:09 p6eval nom 287b0d: OUTPUT«aaaa␤»
09:09 moritz nom: say 'aaaa' ~~ m:r/a+a/
09:09 p6eval nom 287b0d: OUTPUT«␤»
09:09 woosley joined #perl6
09:10 masak moritz: it feels like a http://en.wikipedia.org/wiki​/Sensitivity_and_specificity thing. release too early, and people will hit too many regressions. release too late, and they'll not get the benefits early enough.
09:11 moritz masak: well, we did commit to a regular, time based release cycle
09:11 masak aye.
09:11 masak I really like that part.
09:11 moritz masak: the point is that if we have too many regressions now, we know that the next release is only ~3 weeks away
09:11 masak nod.
09:11 moritz masak: if we start to slip all releases (like the last and the current one), we lose that confidence
09:12 masak aye.
09:12 masak agreed.
09:12 masak that's a "resource" in itself that we have to safeguard.
09:12 masak slipping time-based releases for feature reasons is possibly bad for internal morale too.
09:13 masak moritz: is there any way I can help?
09:13 moritz masak: yep
09:13 masak \o/
09:13 masak it's my Perl 6 day today, by the way.
09:13 moritz masak: review the release announcement that I just pushed
09:14 masak okie.
09:14 masak I had a minor breakthrough with macros D1 yesterday.
09:14 masak might push something today.
09:14 moritz anybody remember when we branched nom?
09:15 masak February?
09:15 masak just do 'git log master..' and you'll know.
09:15 masak or whatever master's called nowadays.
09:16 masak mls_: do you belong to a .pm group?
09:17 mls_ what does that mean?
09:18 moritz mls_: if there's a perl mongers group you attend
09:18 masak moritz: "There are also a number of regressions, which we hope to fix in the next release."
09:19 masak this may be true. but it's overpromising. I don't like the phrasing after the comma.
09:19 dalek rakudo/nom: cf31a11 | moritz++ | / (3 files):
09:19 dalek rakudo/nom: list of contributors
09:19 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cf31a118bc
09:19 moritz (we chose release names based on perl mongers groups)
09:19 djanatyn joined #perl6
09:19 moritz masak: feel free to change to something more conservative
09:19 masak ok
09:20 moritz nom: say 'aaaaa' ~~ my token { a+ a}
09:20 p6eval nom 287b0d: OUTPUT«aaaaa␤»
09:20 mls_ moritz: your commit also changed Grammar.pm and Exceptions.pm ;)
09:20 moritz mls_: yep, I didn't mean to
09:20 moritz that's the danger of commit -am '...'
09:21 masak o.O
09:21 moritz I meant to commit them, but separately
09:21 masak that's the danger of doing two changes in your working copy at the same time!
09:21 moritz two? three!
09:21 masak >two
09:21 [particle] joined #perl6
09:22 moritz anyway, the change to Grammar.pm fixed the meaning of 'token' and 'regex'
09:22 masak er >= two
09:22 moritz troo
09:23 masak anyway, moritz++
09:23 moritz in general, I think we're doing release announcements the wrong way
09:23 moritz too much boilerplate on the start
09:23 moritz we should start by stating the really interesting things
09:24 moritz new object model! 15x speed improvements! compact object storage!
09:26 masak moritz: taglines!
09:26 dalek rakudo/nom: ede97de | masak++ | docs/announce/2011.09:
09:26 dalek rakudo/nom: [docs/announce/2011.09] underpromise, overdeliver
09:26 dalek rakudo/nom:
09:26 dalek rakudo/nom: Rephrasing to be a bit more conservative.
09:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ede97de4ca
09:27 jnthn Maybe it's worth some wording like "This is the first compiler release from the latest development branch of Rakudo. It brings many exciting improvements, but also some regressions, which we are working on. If your primary interest is that your existing code running on Rakudo Perl continues to work, we suggest sticking with the Rakudo Star distribution release for a little longer. If instead you want to play with the latest in Rakudo development - including meta-pr
09:27 moritz jnthn: cut off after meta-pro
09:27 masak +1
09:27 moritz jnthn: and yes, +1
09:27 jnthn including meta-programming and performance improvements - try this release."
09:28 jnthn hmm, maybe wants a clarification that it's a compiler release, not a distro one.
09:28 moritz Please note: This announcement is not for the Rakudo Star distribution --
09:28 moritz it's announcing a new release of the compiler only
09:28 moritz we already have that as the second paragraph
09:29 masak oh, true.
09:29 jnthn OK, so long as it's in the announcement somewhere
09:30 dalek roast: 1b3d861 | moritz++ | S04-exception-handlers/catch.t:
09:30 dalek roast: more catch.t hacking
09:30 dalek roast: review: https://github.com/perl6/roast/commit/1b3d861235
09:31 MayDaniel joined #perl6
09:32 moritz so, who adds jnthn++'s suggestions to the announcement?
09:32 jnthn Not jnthn...he's already behind with $dayjob today...
09:32 moritz ok
09:34 * jnthn goes to focus on that for a bit
09:35 masak oh for @&#%.
09:35 masak I have a bug in crypt-on-nom that disappears when I golf it.
09:35 moritz what do you think of Riga as a release name?
09:36 masak perfect.
09:36 masak is it a .pm group? :)
09:36 dalek rakudo/nom: 900ccf3 | moritz++ | docs/announce/2011.09:
09:36 dalek rakudo/nom: [announce] note that people who are afraid of regressions should use 2011.07
09:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/900ccf3bd2
09:36 moritz masak: nope, but pmichaud++ suggested it anyway
09:37 masak basically anything that honours Andrew Shitov is fine with me ;)
09:38 bbkr joined #perl6
09:38 jnthn That contributor list is awesome
09:38 dalek rakudo/nom: 41ecebe | moritz++ | docs/announce/2011.09:
09:38 dalek rakudo/nom: [announce] call it Riga
09:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/41ecebe2b0
09:39 jnthn (Because of the number of people in it. Not because it has me first. :P)
09:39 moritz so, what about NQP?
09:39 moritz we tag it so it's easy to refer to that version
09:40 jnthn +1
09:40 moritz but don't create a separate tarball for it, right?
09:40 jnthn moritz: Sounds fine for now.
09:40 jnthn Oh! IN release announce
09:41 jnthn Don't forget this is the frist release with tadzik++'s POD work in too :)
09:41 masak ooh!
09:41 jnthn That should certainly make the specific improvements list :)
09:41 masak without a doubt.
09:43 jerome_ joined #perl6
09:44 jnthn Maybe the better BEGIN support deserves a metion too
09:44 jnthn nom: sub foo { say 42 } BEGIN foo(); jdja omg !!! syntax fail
09:44 p6eval nom 287b0d: OUTPUT«===SORRY!===␤Confused at line 1, near "sub foo { "␤»
09:44 jnthn nom: sub foo { say 42 }; BEGIN foo(); jdja omg !!! syntax fail
09:44 p6eval nom 287b0d: OUTPUT«42␤Stub code executed␤  in sub die at src/gen/CORE.setting:413␤  in <anon> at /tmp/1qGsFt0irx:1␤  in <anon> at /tmp/1qGsFt0irx:1␤␤»
09:44 jnthn oh dammit, I failed at making a syntax error :)
09:44 masak :P
09:44 jnthn nom: sub foo { say 42 }; BEGIN foo(); 1 2
09:45 p6eval nom 287b0d: OUTPUT«42␤===SORRY!===␤Confused at line 1, near "1 2"␤»
09:45 moritz jnthn: 1 1 # fine syntax error
09:45 jnthn Taht's the one
09:59 dalek rakudo/nom: 97b518c | moritz++ | tools/build/NQP_REVISION:
09:59 dalek rakudo/nom: bump NQP_REVISION to 2011.09 tag
09:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/97b518c5a0
10:01 dalek rakudo/nom: 43be162 | moritz++ | docs/announce/2011.09:
10:01 dalek rakudo/nom: [announce] mention Pod and BEGIN
10:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/43be1629cc
10:06 moritz I'm now running a test on a test release, but even if it succeeds I'll wait a bit longer with the release
10:08 masak oki.
10:08 masak aaah. I love to chase bugs that don't golf easily. :)
10:09 masak now down to one screenful.
10:15 masak ok, here we go.
10:15 masak nom: my $x; role A { has $!foo }; role B does A {}; role C does A {}; class D does B does C {}
10:15 p6eval nom 41eceb:  ( no output )
10:15 masak nom: my $x; role A { has $!foo = $x }; role B does A {}; role C does A {}; class D does B does C {}
10:15 p6eval nom 41eceb: OUTPUT«===SORRY!===␤Attribute '$!foo' conflicts in role composition␤»
10:16 masak b: my $x; role A { has $!foo = $x }; role B does A {}; role C does A {}; class D does B does C {}
10:16 p6eval b 1b7dd1:  ( no output )
10:16 masak nom: my $x; role A { has $!foo }; role B does A {}; role C does A {}; class D does B does C {}; say "alive"
10:16 p6eval nom 41eceb: OUTPUT«alive␤»
10:16 masak b: my $x; role A { has $!foo = $x }; role B does A {}; role C does A {}; class D does B does C {}; say "alive"
10:16 p6eval b 1b7dd1: OUTPUT«alive␤»
10:16 * masak submits rakudobug
10:16 masak note, that external reference to $x is *necessary* to trigger the role composition error.
10:17 jnthn Ah, that kinda follows.
10:17 masak it does?
10:18 masak I'm glad it's obvious to one of us :P
10:18 jnthn masak: Attributes that have defaults always get their meta-objects generically instantiated.
10:18 jnthn masak: Because the default may refer to role arguments.
10:19 masak oh!
10:19 jnthn masak: I suspect we're doing an identity check in the role composer.
10:19 masak nom: my $x; role A { has $!foo = 42 }; role B does A {}; role C does A {}; class D does B does C {}; say "alive"
10:19 p6eval nom 41eceb: OUTPUT«===SORRY!===␤Attribute '$!foo' conflicts in role composition␤»
10:19 jnthn masak: And instead it wants to check name + declaring package.
10:20 masak ok, so this is a bug? phew!
10:20 jnthn Yeah, it should be fixed.
10:20 * masak beams
10:20 jnthn Just thought an explanation of why the default value matters might be interesting. ;)
10:20 masak was a long time I found a bug as juicy as this :)
10:21 jnthn It's subtle, yes.
10:21 masak crypt++
10:21 masak again, Real Applications take first prize.
10:22 moritz masak: you mean, $n+1st prize, after the test suite collected ^$n :-)
10:24 masak oh, I didn't intend to put the test suite down :)
10:24 masak I was talking about discovering new, unknown bugs.
10:40 connect joined #perl6
10:41 connect Hi ~monks
10:41 connect I have a problem
10:41 connect compile nqp branch kill-useless-defaults just got  version 2011.06-227
10:41 connect I compile nqp master failed!
10:42 connect any suggestion?
10:43 donri joined #perl6
10:45 gfldex what's the error message?
10:46 connect called from Sub '_block1000' pc 196 (src/stage0/NQP-s0.pir:102) (src\stage2\gen\NQP.pm:1) make: *** [src/stage1/ModuleLoader.pbc] Error 1
10:47 connect called from Sub '_block1000' pc 196 (src/stage0/NQP-s0.pir:102) (src\stage2\gen\NQP.pm:1) make: *** [src/stage1/nqpmo.pbc] Error 1
10:51 connect get_pointer() not implemented in class 'GLOBALish'
10:51 tzhs joined #perl6
10:56 envi_ joined #perl6
10:59 envi_|2 joined #perl6
11:02 envi_|2 joined #perl6
11:04 replore joined #perl6
11:06 wtw_ joined #perl6
11:13 * moritz didn't understand which branch failed, and which worked
11:15 donri joined #perl6
11:15 donri joined #perl6
11:17 moritz no patience, the young ones
11:18 dalek niecza: feda112 | Coke++ | t/spectest.data:
11:18 dalek niecza: Run fudged spectests.
11:18 dalek niecza: review: https://github.com/sorear/niecza/commit/feda1128a5
11:19 masak it's almost a tautology: those who won't become regulars on the channel often leave too early.
11:19 [Coke] and noooow I notice those aren't in alpha order. *sigh*
11:25 masak heh. http://spikedmath.com/445.html
11:29 jnthn masak: :D
11:36 moritz [Coke]: I might have broken alpha order with the Big Spectest Rename last week
11:36 moritz "a neutrino" -- "who's there?" -- "knock, knock"
11:36 Psyche^ joined #perl6
11:39 masak moritz: only in badly done research, apparenly.
11:39 snarkyboojum heh
11:39 moritz masak: I seem to have missed something... got an update for me?
11:41 benabik joined #perl6
11:44 envi_ joined #perl6
11:46 Mowah_ joined #perl6
11:49 mtk joined #perl6
11:54 masak moritz: no, not really.
11:54 masak all I know I've read here on #perl6.
11:54 masak about neutrinos, that is. ;)
11:54 gfldex you dont have to worry about neutrinos. They don't really do anything.
11:54 * yath is waiting for a neutrino branch
11:54 yath then you can claim it's faster than c!
11:55 * masak groans
11:56 pmichaud good morning, #perl6
11:56 alim joined #perl6
11:56 snarkyboojum good evening!
11:57 moritz good am, pm
11:57 benabik o/ pmichaud!
11:57 masak pmichaud! \o/
11:57 moritz pmichaud: I've done some release preparations, but nothing is set in stone yet
11:58 pmichaud moritz: I saw the preps, thanks!  (more)
11:58 tadzik hello
11:58 pmichaud it's a little soon to be certain, but it's looking like I might actually have tuits this morning.
11:58 pmichaud (still have to get the kids off to school)
11:59 benabik Huh.  Round Tuits are only $15 for a 50 pack (according to El Goog)
11:59 tadzik pod is now parsed, and can be attached to objects and printed with --pod
11:59 tadzik it's --doc
11:59 * tadzik fixes
11:59 moritz benabik: and now search for QRegex-shaped tuits :-)
12:00 tadzik I'll expand the subject a bit too, I hope you don't mind
12:00 moritz tadzik: please do
12:01 benabik moritz: QRegex can't match 'Round'?  ;-)
12:01 moritz benabik: not with ltm, and not with proto tokens
12:02 jnthn o/ pmichaud
12:05 dalek rakudo/nom: cec5770 | tadzik++ | docs/announce/2011.09:
12:05 dalek rakudo/nom: [announce] Expand some Pod news
12:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cec5770074
12:07 snarkyboojum jnthn: btw, I also have a version of my grammar with causes rakudo to core dump on os x :)
12:08 jnthn snarkyboojum: On nom?
12:08 snarkyboojum jnthn: which I'll also have to gist at some point (yeah, on nom)
12:08 snarkyboojum I write *really* crappy grammars :D
12:08 * moritz didn't know that mac os x did core dumps :-)
12:08 jnthn OK, great. I'll wait until pmichaud++ has done various grammar/regex bits first, in case they make it go away :)
12:08 snarkyboojum jnthn: yeah - thought the same :)
12:09 jnthn But otherwise, it's good to hunt down the segfaults.
12:09 snarkyboojum moritz: hey, it's a Unix (™) ! :P
12:09 moritz snarkyboojum: yes, but it has a very funny hat on :-)
12:09 benabik No, it's a BSD.  :-D
12:10 snarkyboojum moritz: true.. a beret or something :P
12:10 * moritz speculates that it could be an infite recursion + inferior run loop
12:10 benabik moritz: It generally doesn't, as it tries to write them to /cores, which doesn't exist by default.
12:10 * benabik learned way too much about OS X core dumps and dynamic linking this week.
12:10 snarkyboojum benabik: I don't remember creating /cores, but perhaps I did at some point :)
12:12 moritz unrelated but funny: if you start mplayer with -dumpstream, it writes "core dumped :-)" when it's done
12:15 lateau_ joined #perl6
12:15 * [Coke] checks backscroll and sees that neutrinos are like platypuses.
12:16 [Coke] moritz: ;)
12:17 moritz :-)
12:19 dalek rakudo/nom: f83304d | moritz++ | docs/release_guide.pod:
12:19 dalek rakudo/nom: [docs] markup fix
12:19 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f83304dd55
12:28 furura left #perl6
12:30 [Coke] hurm. I probably should have started out on niecza running the existing list of spec tests.
12:32 * tadzik rages on twitter and advertises Non-blocking IO in Rakudo
12:32 masak rakudo: sub cutpoint($a, $b) { return $_ if defined $b.index($a.substr($_, 1)) for ^$a.chars }; sub hybrid($a, $b) { die "No cutpoint" unless defined(my $cutpoint = cutpoint($a, $b)); my $cutchar = $a.substr($cutpoint, 1); $a.substr(0, $cutpoint) ~ $b.substr(index($b, $cutchar)) }; say hybrid "spoon", "fork
12:32 p6eval rakudo 43be16: OUTPUT«===SORRY!===␤Confused at line 1, near "say hybrid"␤»
12:32 masak rakudo: sub cutpoint($a, $b) { return $_ if defined $b.index($a.substr($_, 1)) for ^$a.chars }; sub hybrid($a, $b) { die "No cutpoint" unless defined(my $cutpoint = cutpoint($a, $b)); my $cutchar = $a.substr($cutpoint, 1); $a.substr(0, $cutpoint) ~ $b.substr(index($b, $cutchar)) }; say hybrid "spoon", "fork"
12:32 p6eval rakudo 43be16: OUTPUT«spork␤»
12:32 masak \o/
12:33 masonkramer joined #perl6
12:34 masak rakudo: sub cutpoint($a, $b) { return $_ if defined $b.index($a.substr($_, 1)) for ^$a.chars }; sub hybrid($a, $b) { die "No cutpoint" unless defined(my $cutpoint = cutpoint($a, $b)); my $cutchar = $a.substr($cutpoint, 1); $a.substr(0, $cutpoint) ~ $b.substr(index($b, $cutchar)) }; say hybrid "fork", "knife"; say hybrid "knife", "fork"
12:34 p6eval rakudo 43be16: OUTPUT«fe␤k␤»
12:34 masak fek :(
12:34 [Coke] t/spec/S05-metasyntax/repeat.t has old syntax.
12:35 masak indeed.
12:37 * [Coke] wonders why "make spectest" in niecza, which uses prove, doesn't seem to respect his TEST_JOBS setting.
12:38 jnthn rakudo: sub cutpoint($a, $b) { return $_ if defined $b.index($a.substr($_, 1)) for ^$a.chars }; sub hybrid($a, $b) { die "No cutpoint" unless defined(my $cutpoint = cutpoint($a, $b)); my $cutchar = $a.substr($cutpoint, 1); $a.substr(0, $cutpoint) ~ $b.substr(index($b, $cutchar)) }; say hybrid "perl", "python";
12:38 p6eval rakudo 43be16: OUTPUT«python␤»
12:38 jnthn ...not very hybrid.
12:38 jnthn rakudo: sub cutpoint($a, $b) { return $_ if defined $b.index($a.substr($_, 1)) for ^$a.chars }; sub hybrid($a, $b) { die "No cutpoint" unless defined(my $cutpoint = cutpoint($a, $b)); my $cutchar = $a.substr($cutpoint, 1); $a.substr(0, $cutpoint) ~ $b.substr(index($b, $cutchar)) }; say hybrid "beer", "elephant";
12:38 p6eval rakudo 43be16: OUTPUT«belephant␤»
12:39 snarkyboojum say hybrid "perl", "python" should output "parrot" right?
12:39 jnthn rakudo: sub cutpoint($a, $b) { return $_ if defined $b.index($a.substr($_, 1)) for ^$a.chars }; sub hybrid($a, $b) { die "No cutpoint" unless defined(my $cutpoint = cutpoint($a, $b)); my $cutchar = $a.substr($cutpoint, 1); $a.substr(0, $cutpoint) ~ $b.substr(index($b, $cutchar)) }; say hybrid "masak", "sandwich";
12:39 p6eval rakudo 43be16: OUTPUT«mandwich␤»
12:40 snarkyboojum heh
12:40 jnthn rakudo: sub cutpoint($a, $b) { return $_ if defined $b.index($a.substr($_, 1)) for ^$a.chars }; sub hybrid($a, $b) { die "No cutpoint" unless defined(my $cutpoint = cutpoint($a, $b)); my $cutchar = $a.substr($cutpoint, 1); $a.substr(0, $cutpoint) ~ $b.substr(index($b, $cutchar)) }; say hybrid "masak", "sakist";
12:40 p6eval rakudo 43be16: OUTPUT«makist␤»
12:40 jnthn oh...hm
12:40 tadzik jnthn: at what state is NCI in nom?
12:41 jnthn tadzik: Not so far...I started working on the native call abstraction layer stuff in nqp
12:41 drbean joined #perl6
12:42 tadzik I'm now talking to sri about Mojolicious and async IO in Rakudo, and turns out he prefers poll() to select(), I'm wondering if that could be implemented using NCI in Pure Perl 6 rather than pushing a new PMC to Parrot
12:43 masak tadzik++
12:43 tadzik masak: that required me to open a twitter account :)
12:43 _sri tadzik: actually i prefer epoll/kqueue if available :)
12:43 masak having a Mojoli6ious would be great.
12:43 tadzik _sri: neither of those ring a bell to me, but neither did poll() until 5 minutes ago
12:44 _sri these days we even use libev in mojolicious to get the most scalable backend on all platforms
12:44 tadzik _sri: I'm not really fluent in this non-blocking IO stuff, I'm just trying to address what users need
12:45 PerlJam greets
12:45 flussence epoll, afaik, is a linux-specific less-sucky alternative to select()
12:47 PerlJam tadzik: you should talk to LeoNerd on #perl ... He's very knowledgable about async  (He wrote p5's IO::Async too)
12:48 benabik And once Rakudo has a good solution, we'll steal^Wborrow what we can in Parrot.  :-D
12:48 PerlJam (I've tried to get him involved in parrot/perl6 but he's never "connected" with anyone else that I'm aware of)
12:48 snarkyboojum epoll is a variant of poll
12:49 _sri and kqueue is the bsd/osx version of epoll
12:49 snarkyboojum right on
12:49 benabik What's the difference between select and poll?  Seem to do the same thing just with different arguments.
12:49 _sri they scale better because only active handles are passed around
12:50 masak we do need async people here.
12:50 _sri select and poll tend to be the same thing these days, select is often a wrapper around poll
12:50 _sri on osx poll is even a wrapper around kqueue :)
12:52 snarkyboojum masak: "async people" has several interesting interpretations :D
12:53 _sri portability is a huge problem though, APIs tend to break a lot, that's why libev got extremely popular recently
12:57 snarkyboojum _sri++ and tadzik++ for looking into it ;)
12:59 drbean joined #perl6
13:06 cognominal___ tadzik, you could use as a model recent work on nodejs that is designed to work both on windows and unix. ryan dahl logs his progress on his libuv (https://github.com/joyent/libuv) effort on  http://blog.nodejs.org/
13:08 [Coke] phenny, seen sorear?
13:08 [Coke] phenny: seen sorear?
13:09 masak seen sorear
13:09 masak seen sorear?
13:09 Holy_Cow joined #perl6
13:09 flussence seen aloha
13:09 Holy_Cow left #perl6
13:09 flussence :(
13:10 moritz aloha was last seen in the logs.
13:10 * [Coke] finds several niecza exceptions in spectests about walking off the end of an array. smells like a null pmc error. ;)
13:10 masak [Coke]: sorear was last seen at 06:11 UTC, saying "sleep"
13:10 [Coke] aloha was run by bacek, who is no longer about, but aloha source is checked into github somewhere.
13:11 moritz niecza: "
13:11 p6eval niecza v10-2-gfeda112: OUTPUT«Unhandled exception: System.IndexOutOfRangeException: Array index is out of range.␤  at Lexer.Run (System.String from, Int32 pos) [0x00000] in <filename unknown>:0 ␤  at Lexer.RunDispatch (Niecza.Frame fromf, Niecza.P6any cursor) [0x00000] in <filename unkn…
13:11 moritz [Coke]: this one? :-)
13:13 [Coke] Something like that, yes. ;)
13:13 [Coke] anyone counted nom's spectest run recently?
13:14 benabik Huh.  aloha's still alive over in #parrot.  :-/
13:14 _sri tadzik: what cognominal said, libuv has it all
13:16 mj41 joined #perl6
13:19 * [Coke] suspects an old TAP::Harness on his prove issue.
13:20 [Coke] All tests successful.
13:20 [Coke] Files=167, Tests=4121, 841 wallclock secs ( 1.29 usr  0.89 sys + 713.02 cusr 29.92 csys = 745.12 CPU)
13:20 [Coke] (niecza)
13:21 dalek roast: af38363 | Coke++ | S0 (7 files):
13:21 dalek roast: niecza fudging
13:21 dalek roast: review: https://github.com/perl6/roast/commit/af38363d8c
13:22 dalek niecza: 89960a0 | Coke++ | t/spectest.data:
13:22 dalek niecza: alpha sort test listing.
13:22 dalek niecza: review: https://github.com/sorear/niecza/commit/89960a0e9b
13:22 dalek niecza: a4064ae | Coke++ | t/run_spectests:
13:22 dalek niecza: Allow for commented out tests in t/spectest.data
13:22 dalek niecza: review: https://github.com/sorear/niecza/commit/a4064aef82
13:22 dalek niecza: a8e6d5e | Coke++ | t/spectest.data:
13:22 dalek niecza: Track failure modes.
13:22 dalek niecza: review: https://github.com/sorear/niecza/commit/a8e6d5e05c
13:23 masak [Coke]++
13:24 [Coke] karma coke?
13:25 masak ENOALOHA
13:25 flussence Inf.pick
13:25 felher /go laber
13:29 im2ee joined #perl6
13:29 masak im2ee! \o/
13:30 im2ee Hello! :)
13:32 drbean left #perl6
13:32 im2ee \o/ :)
13:33 masak nqp: sub foo() { if 42 { return 1 }; return 2 }; say(foo())
13:33 p6eval nqp: OUTPUT«1␤»
13:33 masak oh, good.
13:34 benabik masak: You expected something different?
13:35 masak not really. just exclusing unpleasant suspicions ;)
13:36 masak nqp: sub foo() { if 42 { return }; return 2 }; say(foo())
13:36 p6eval nqp: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'nqp;Regex;Cursor;FAILGOAL' pc 3863 (src/Regex/Cursor.pir:244)␤»
13:36 masak nqp: sub foo() { if 42 { return; }; return 2 }; say(foo())
13:36 p6eval nqp: OUTPUT«2␤»
13:36 masak o.O
13:36 masak a-HA!
13:36 benabik ...?
13:37 masak I'd call that a bug.
13:37 bbkr_ joined #perl6
13:37 * masak peruses the nqr tests
13:37 masak nqp*
13:37 jnthn masak: Looks like. Patches welcome.
13:38 benabik If it makes you feel better (it probably shouldn't), nqp-rx appears to have the same behavior.
13:38 masak jnthn: will do ;)
13:38 jnthn nqp: sub foo() { return; say 42 }; foo()
13:38 p6eval nqp: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'nqp;Regex;Cursor;FAILGOAL' pc 3863 (src/Regex/Cursor.pir:244)␤»
13:39 jnthn nqp: sub foo() { return; say(42) }; foo()
13:39 p6eval nqp: OUTPUT«42␤»
13:39 jnthn heh
13:39 jnthn :)
13:39 benabik return doesn't?
13:39 jnthn Looks like argless return is fail.
13:39 jnthn nqp: sub foo() { return 1; say(42) }; foo()
13:39 p6eval nqp:  ( no output )
13:39 benabik In nqp-rx it appears to be a PAST::Var node.
13:39 jnthn nqp: sub foo() { return (); say(42) }; foo()
13:39 p6eval nqp:  ( no output )
13:39 benabik Parse fail?
13:40 jnthn where?
13:40 jnthn oh, the return;
13:40 jnthn dunno
13:40 jnthn maybe
13:40 bluescreen10 joined #perl6
13:40 masak nqp: sub foo() { return(); say(42) }; foo()
13:40 p6eval nqp: OUTPUT«Could not find sub return␤current instr.: 'foo' pc 254 ((file unknown):110) (/tmp/eyLdJmVNk5:1)␤»
13:40 BLZbubba joined #perl6
13:40 jnthn Yeah, return isn't a sub in nqp
13:40 jnthn It's more primitive than that.
13:41 jnthn Otherwise we could never write return 42
13:41 benabik Parsed as part of EXPR?
13:41 jnthn Since we don't have list ops
13:42 benabik Yes.  return; parsed as EXPR('return'), return 42; as EXPR(OPER('return', 42))
13:42 masak I'm compiling nqp to run the test suite. after that, writing a failing test.
13:42 masak after that, trying to make a patch. :)
13:42 benabik I don't think EXPR handles nullary ops.
13:44 masak nqp: sub foo() {}; say foo()
13:44 p6eval nqp: OUTPUT«Confused at line 1, near "say foo()"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23698 (src/stage2/gen/NQPHLL.pir:6757) (src/stage2/gen/NQPHLL.pm:329)␤»
13:45 masak nqp: sub foo() {}; say(foo())
13:45 p6eval nqp: OUTPUT«foo␤»
13:45 masak hm.
13:45 jnthn nqp: sub foo() {1}; say(foo())
13:45 p6eval nqp: OUTPUT«1␤»
13:45 jnthn curious
13:45 jnthn beats a NPMCA :P
13:45 masak indeed :)
13:46 im2ee What is nqp? :)
13:46 PerlJam im2ee: nqp == not quite perl
13:46 masak im2ee: it's a smaller programming language used to build Rakudo.
13:47 PerlJam im2ee: theoretically it's a subset of Perl 6.
13:47 masak if you squint.
13:47 benabik crosseyed
13:47 jnthn It's more of a subset than nqp-rx was
13:48 jnthn But yeah, there's leaks.
13:48 benabik True.  NQP probably just requires squinting.  -rx needed the cross-eyes too.
13:48 im2ee Thanks. :)
13:48 jnthn I suspect a bunch of leaks get plugged as we do other backends though.
13:48 itz joined #perl6
13:53 sergot joined #perl6
13:55 masak a few failing tests in nqp, in t/qregex/01-qregex.t
13:55 masak oh :)
13:55 zenog joined #perl6
13:56 zenog hi
13:56 masak zenog: hi!
13:58 zenog Is there a way to load arbitrary CLR .dll files with niecza?
13:58 zenog The examples in examples/ all load things that are in the GAC (I think)
14:00 benabik There was an example of using GTK+ in niecza not that long ago...
14:00 benabik https://gist.github.com/1235342
14:00 zenog benabik: Yes, this uses a DLL that is registered in the GAC.
14:01 benabik zenog: Ah, sorry.
14:02 zenog benabik: No need to say sorry!
14:02 benabik Presumably you could access the .NET functions that would let you do it in some similar way.
14:02 zenog I just heard the awesome news that one can now work with CLR objects ;-)
14:02 zenog ... and I wanted to try it out.
14:06 Trashlord joined #perl6
14:08 masak nqp: return; say(42)
14:08 p6eval nqp: OUTPUT«42␤»
14:08 koban` left #perl6
14:08 masak what I don't understand is this. 'return' is a prefix op.
14:08 masak why isn't that a syntax error?
14:10 sorear [Coke]: I seem to have a bit of a problem with alternately committing spectest.data in LANG=C and LANG=en_US alpha order... you breaking it is not a big deal.
14:12 masak pmichaud, jnthn, moritz: if you're backlogging over this, I'd be happy to talk about the above question.
14:12 sorear masak: maybe it's fallbacking to get_global "return"
14:13 sorear nqp: doesnotexist; say(42)
14:13 p6eval nqp: OUTPUT«42␤»
14:13 masak oh!
14:13 masak sorear++
14:14 sorear zenog: CLR:: syntax just passes the string to Type.GetType after replacing :: with .
14:14 * flussence found a very interesting error message just now - "Caught exception of unknown type -- this probably should not happen"
14:15 sorear zenog: it can find non-GAC assemblies, if they are located in AppDomain.CurrentDomain.BaseDirectory ($NIECZA_ROOT/obj)
14:15 * masak &
14:15 zenog sorear: OK, I'll try that.
14:15 sorear zenog: otherwise you'll probably need to use CLR::System::Reflection::Assembly.LoadFrom($path)
14:16 flussence rakudo: module A { }; A.new();
14:16 p6eval rakudo f83304: OUTPUT«Caught exception of unknown type -- this probably should not happen␤Null PMC access in elements()␤  in method bless at src/gen/CORE.setting:526␤  in method new at src/gen/CORE.setting:513␤  in <anon> at /tmp/LbCtoYrP3l:1␤  in <anon> at /tmp/LbCtoYrP3l:1␤␤»…
14:17 _twitch joined #perl6
14:24 mike joined #perl6
14:33 tyatpi joined #perl6
14:33 pmichaud back again
14:33 pmichaud and look!  qregex-shaped tuits!
14:33 * pmichaud hacks.
14:35 jnthn \o/
14:36 sftp joined #perl6
14:37 zenog So, I can load the assembly: CLR::System::Reflection::As​sembly.LoadFrom($dll_path);
14:38 plobsing joined #perl6
14:44 benabik Regex shaped tuits?  .oO( /tuit/  /tuit/  /tuit/ )
14:44 sorear \o/ pmichaud
14:45 thou joined #perl6
14:45 cognominal better than shaped as peg ex-tuits.
14:45 burning_aces joined #perl6
14:55 zenog sorear: I can call Class.new in the REPL, but not when I run the complete script. Any idea what I am doing wrong?
14:58 sorear zenog: My first guess would be that you aren't obtaining the class in exactly the same way
15:05 zenog sorear: The difference is: "mono Niecza.exe script.p6" vs. "mono Niecza.exe < script.p6"
15:06 benabik Probably the REPL loads something that niecza normally doesn't.
15:06 sorear care to share script.p6?
15:07 tokuhiro_ joined #perl6
15:07 uasi joined #perl6
15:10 zenog sorear, benabik: https://gist.github.com/1245315
15:11 * benabik has no idea past "REPL doing some kind of setup".
15:11 sorear REPL runs lines in the order you type them
15:12 sorear but in a file, constants are initialized *before* running any other code
15:12 zenog sorear: So I should not use constants, right?
15:13 sorear that, or put the LoadFrom call in a BEGIN block
15:14 sorear although come to think of it constants might prove to be a problem in the long run
15:18 [Coke] pmichaud++ o/
15:18 [Coke] sorear: patches today hokay?
15:18 moritz pmichaud: fwiw I already gave nqp the 2011.09 tag
15:18 moritz pmichaud: feel free to delete it and later re-apply it
15:19 pmichaud moritz: no problem.
15:19 _twitch joined #perl6
15:23 * sorear leaves.
15:23 zenog hm. Next problem: I get an exception that a type could not be loaded: https://gist.github.com/1245315
15:23 zenog sorear: bye, thanks so far!
15:24 zenog here is the stack trace: https://gist.github.com/1245362
15:25 flussence niecza: module A { }; A.new(); # just curious to see if it does something like rakudo...
15:25 p6eval niecza v10-5-ga8e6d5e: OUTPUT«Unhandled exception: Unable to resolve method new in class A␤  at /tmp/INH2oSZgkQ line 1 (MAIN mainline @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2115 (CORE C1022_ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2116 (CORE module-CORE @ …
15:25 hugme joined #perl6
15:25 moritz it even calls it "class A"
15:25 flussence that error makes a bit more sense...
15:27 [Coke] sorear: https://gist.github.com/1245372 - can I apply that?
15:27 jnthn I need to look into the nom one
15:28 jnthn I *expected* it to say "you can't instantiate this" or some such.
15:28 [Coke] phenny: ask sorear if https://gist.github.com/1245372 - can I apply that?
15:28 phenny [Coke]: I'll pass that on when sorear is around.
15:28 [Coke] argh.
15:39 bluescreen10 joined #perl6
15:39 burning_aces joined #perl6
15:41 alim joined #perl6
15:45 pmichaud http://gist.github.com/1245430   # qregex now has action methods (locally)
15:47 PerlJam pmichaud!  greetings :)
15:48 PerlJam pmichaud: how goes things?
15:48 [Coke] niecza doesn't seem to like DOES.
15:48 jnthn pmichaud: yay! :)
15:49 masak pmichaud: woot!
16:09 kaleem joined #perl6
16:10 pmichaud PerlJam: it's been a really rough few weeks here :-/
16:11 TimToady .oO(Back To School Night!)
16:12 simcop2387 joined #perl6
16:17 pmichaud should I delete the 2011.09 tag on nqp, or shall we just make a 2011.09.1 tag on it when we're ready to cut the Rakudo release?
16:17 dalek nqp: bd69bd1 | pmichaud++ | src/PAST/SixModelPASTExtensions.pir:
16:17 dalek nqp: Merge branch 'master' of github.com:perl6/nqp
16:17 dalek nqp: review: https://github.com/perl6/nqp/commit/bd69bd1064
16:17 dalek nqp: 99933fc | pmichaud++ | src/NQPQ/Actions.pm:
16:17 dalek nqp: Add 'self' register to regexes created via regex|token|rule .
16:17 dalek nqp: review: https://github.com/perl6/nqp/commit/99933fc6de
16:17 dalek nqp: fbfccdf | pmichaud++ | src/NQPQ/Actions.pm:
16:17 dalek nqp: Make sure that regex/token/rule set 'self' (both register and lexical).
16:17 dalek nqp: review: https://github.com/perl6/nqp/commit/fbfccdf3e0
16:17 dalek nqp: e839242 | pmichaud++ | src/QRegex/Cursor.nqp:
16:17 dalek nqp: Add first version of NQPCursor.parse() method.
16:17 dalek nqp: review: https://github.com/perl6/nqp/commit/e839242640
16:17 dalek nqp: dfef2ef | pmichaud++ | src/Q (3 files):
16:17 dalek nqp: Add support for QRegex action methods.
16:17 dalek nqp: review: https://github.com/perl6/nqp/commit/dfef2ef79e
16:17 masak pmichaud: 2011.09.1 or equiv, methinks.
16:17 masak deleting tags sounds wrong on principle.
16:18 pmichaud wfm
16:18 masak even if there are no known downstream dependencies.
16:18 pmichaud I agree in principle.  :)
16:20 icwiener joined #perl6
16:20 icwiener joined #perl6
16:22 PerlJam deleting a tag no one has really used doesn't sound too bad.
16:24 pmichaud it might be worthwhile to go ahead and test/prove that we can handle .1 designations, though.
16:24 pmichaud especially since mistakes now are a bit more tolerable than they may be later.
16:26 yves_ joined #perl6
16:26 sjohnson man PHP sucks
16:26 * masak hugs sjohnson
16:26 * sjohnson hugs masak back
16:26 masak sjohnson: programming languages are just tools. use them as well as possible. avoide the bad parts.
16:27 sjohnson unfortunately we chose to use PHP about 10 years ago at work for the website
16:27 benabik PHP's a tool.  ;-)
16:27 sjohnson now we're stuck with it
16:27 masak remember what kind of workmen it is who blame their tools.
16:27 sjohnson *sad face*
16:27 pmichaud some languages are full of bad parts, though :)
16:27 TimToady 90% of tools are crud.
16:27 masak 90% of webapps are CRUD. :P
16:27 zby_home joined #perl6
16:28 benabik masak: Wouldn't that be nice.
16:28 sjohnson well if i needed a hammer and all i could find near me was a rubber mallet... i'd still think the mallet wasn't very good at pounding nails
16:28 masak heh.
16:28 TimToady 90% of workmen who blame their tools are Absolutely Correct.  :)
16:28 sjohnson right now, Perl is not available.  *sniff*
16:28 masak progress depends upon the workmen who blame their tools.
16:28 benabik sjohnson: But you might be able to get the job done with the mallet.
16:29 sjohnson in today's modern world, we need to stop repressing ourselves, and let our our PHP rage :)
16:29 masak or just let PHP out...
16:30 MayDaniel joined #perl6
16:30 MayDaniel joined #perl6
16:30 TimToady someone just needs to write a refactoring PHP-to-Perl-6 translator...
16:30 sjohnson if it was just a simple script sure... but we're talking about PHP system that's evolved at work that could take 6 years to replace.  so i probably just need to stop complaining and use preg_match
16:31 mux e dislikes those "every language is a tool..." sayings
16:31 mux they avoid legitimate discussions about some language
16:32 mux some tools are plain broken too.
16:32 TimToady maybe masak prefers to err on the side of being correct. :)
16:33 masak mux: most discussions and comparisons about languages are made with such a narrow perspective that I don't feel they're worth my time reading.
16:33 mux masak: that I agree with
16:33 PerlJam masak: progress depends on workmen who blame their tools for things that really and truly are the tools' fault  ;)
16:33 masak legitimate discussions are few and far between.
16:33 TimToady by that definition, PHP wasn't progress :)
16:34 masak one nice trend I remember from a few years back was "please name five things you *don't* like about your favorite language"
16:34 PerlJam I think PHP was originally a misunderstanding.
16:34 masak PerlJam: seems so to me too.
16:34 masak someone who didn't understand the flexibility of Perl decided to create a templating language.
16:34 jnthn PHP must have got *something* right to have got as widely adopted as it has.
16:34 mux PHP is the only language I just sincerely cannot think of any good reason to use
16:35 masak jnthn: deployment.
16:35 mux jnthn: that's completely bullshit
16:35 jnthn masak: Right.
16:35 PerlJam jnthn: mod_php + apache was *so* right
16:35 sjohnson PHP:  Now you're playing with Power.
16:35 PerlJam mux: COBOL?
16:35 jnthn mux: The "right thing" doesn't have to be anything to do with the language. :)
16:35 masak mux: I can think of two good reasons. Wikipedia, and Wordpress.
16:35 kaleem joined #perl6
16:35 mux PerlJam: it used to serve a purposed and filled a niche when there wasn't anything else at the time
16:35 masak hm, MediaWiki, I should say.
16:36 sjohnson i think PHP was popular cause it's WAY easier to get it working on Ubuntu with apache2 out of the box than p5... and its lack of scoping appealed to novices in my opinion
16:36 pmichaud I absolutely chose PHP over Perl for one of my webapp projects strictly because of ease of deployment.
16:36 zenog masak: Wikipedia used usemod in the beginning, which was written in Perl.
16:36 mux masak: that would not be a good reason in my book
16:36 masak zenog: aye.
16:36 pmichaud also because PHP would be more accessible to non-programmers.
16:36 masak zenog: and they switched to PHP.
16:36 mux pmichaud: yes, that's another problem. ;-)
16:36 sjohnson PHP == raw power
16:37 zenog masak: I am not sure why, it could have been that Magnus Manske knew PHP better than Perl.
16:37 pmichaud http://gist.github.com/1245559 # nom now has action methods
16:37 jnthn pmichaud++
16:38 PerlJam pmichaud: push it or it doesn't exist :)
16:38 pmichaud PerlJam: ... should I spectest it first?  ;-)
16:38 masak mux: by "programming languages are tools", I do not want to shut off legitimate discussion so much as suggest that if you really are stuck with a given language on a project, there are many ways to work around its weaknesses. will never be quite as pleasant as not having to do it, of course. but there are lots of possibilities.
16:38 jnthn PerlJam: Sometimes, people spectest first ;)
16:38 Exodist joined #perl6
16:39 masak I'm grateful for having learned Perl 6 simply because it gives me a nice programming language semantics to strive for in other languages ;)
16:39 zenog masak: also - http://en.wikipedia.org/wiki/Worse_is_better
16:39 mux masak: I think we're actually in violent agreement (and I didn't mean to attack you when I said I don't like those sayings)
16:39 masak zenog: yes, that most likely explains it.
16:40 [Coke] (php, web apps, lack of deployment) that's why I love mojo. you can run it even if you don't have a server at the moment.
16:40 masak mux: well, I agree with you in the sense that I definitely wouldn't mind using Perl over PHP (for example) on basically any greenfield project.
16:41 PerlJam masak: you know how Perl exported its fancy regex via PCRE?  Wouldn't it be nice if there were a "Perl 6 compability" library for <insert favorite languages> ?
16:41 masak yes, it would.
16:42 PerlJam I was reading about coffee script earlier today and kept thinking of how Perl 6 concepts could be injected.
16:43 masak PerlJam: the trick, as is often the case, is to make callbacks work well.
16:43 masak PerlJam: in this case, things like {} and <?{}> in regexes and grammars.
16:45 TimToady well, P6 is specifically designed to call back into whatever the outer braided language happens to be
16:45 sjohnson i like tim toady's PHP -> perl6 idea
16:46 sjohnson or the other way around.  that'd be better
16:46 TimToady it's the refactoring part that's hard :)
16:46 TimToady P6 -> PHP would also be...hard...motivationally at least
16:48 sjohnson yeah, only 5% of p6 could be ported to PHP :)
16:49 TimToady and bug compatibility is difficult to compete with when they've brainwashed people into thinking that you get efficiency by learning to think in terms of those bugs
16:49 TimToady so if you translate to clean PHP, it won't run as fast as the "idiomatic" PHP
16:50 TimToady I know this because backtranslating to Perl 5 has the same difficulty :)
16:50 dalek rakudo/nom: 6b21ca0 | pmichaud++ | / (3 files):
16:50 dalek rakudo/nom: Add action methods to regexes.
16:50 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6b21ca09cf
16:50 TimToady come to think of it, translating Perl 6 to almost anything has this problem :)
16:50 pmichaud okay, I need a break for lunch.
16:51 pmichaud I should have a bit more time to work on qregex (protoregexes), but don't know how long that will take.  should we go ahead and cut a nom release based on what we have?
16:51 pmichaud (I'll read backscroll for answers when I return.)
16:51 pmichaud afk
16:52 TimToady including translation to PIR, CIL, JS, LLVM...
16:54 pmichaud PerlJam: nqp is intended to potentially serve as a "p6 regex compatibility library"  :-(
16:54 pmichaud s/'('/')'/
16:54 PerlJam pmichaud: but for PHP and ruby and Perl 5?
16:54 pmichaud especially if/when nqp targets other backends
16:54 pmichaud it wouldn't surprise me if some form of C becomes a viable backend someday
16:54 PerlJam pmichaud: since you're still here ... where's the list of what's missing from nom that was in ng?
16:55 espadrine joined #perl6
16:55 TimToady maybe the Go form of C :)
16:55 moritz pmichaud: I think <&foo> style rule calling might be easier and more benefitial in the short run
16:55 pmichaud PerlJam: it's always hard to come up with "what's missing".  but I had a "punch list" in NOMMAP
16:55 TimToady short lunch?
16:55 * PerlJam looks
16:55 moritz and maybe scalar variable interpolation
16:55 pmichaud popped back in for a moment to get my shoes before leaving
16:56 pmichaud variable interp isn't too hard, I can do that.
16:56 pmichaud but first, lunch.
16:56 pmichaud afk (for real, with shoes this time)
16:57 PerlJam The only thing in NOMMAP that really bothers me is missing grammar/regex
17:02 sjohnson i just asked on #php how to print to STDERR, and i get:   sjohnson, file_put_contents to php://stderr iirc....
17:02 sjohnson i can feel a headache a comin'!
17:03 mux hahaha
17:07 TimToady well, at least they didn't ban you
17:07 PerlJam sjohnson: fwrite(STDERR, "blah");  # I think
17:07 PerlJam Assuming that's more palatable to you
17:08 sjohnson PerlJam: i tried it, getting a syntax error.  oh well
17:09 localhost joined #perl6
17:10 PerlJam sjohnson: wfm, you must be doing something else wrong :)
17:10 sjohnson ohhh. oopsies
17:10 sjohnson forgot the semi colon.  classic error!
17:11 felher std: (1,2,3)>>+>>3
17:11 p6eval std 8b331d2: OUTPUT«ok 00:01 122m␤»
17:11 felher std: (1,2,3)>>->>3
17:11 p6eval std 8b331d2: OUTPUT«[31m===[0mSORRY![31m===[0m�Unsupported use of -> as postfix; in Perl 6 please use either . to call a method, or whitespace to delimit a pointy block at /tmp/4Uf2A2RtSZ line 1:�------> [32m(1,2,3)>>->[33m�[31m>3[0m�Parse failed�FAILED 00:01 121m�»
17:11 felher is that expected?
17:11 sjohnson thanks PerlJam !
17:11 PerlJam sjohnson: (also note that I installed php5-cli just so I could test it for you  :)
17:11 TimToady felher: sure, it's expected
17:11 ashleydev how hard is it going to be to use some existing languages like ruby and python in lexical scopes in Perl 6?
17:11 TimToady LTM requires -> over -
17:12 ashleydev are there grammer rules of perl6 that are going to excude those languages?
17:12 sjohnson PerlJam: PHPJam :)
17:12 TimToady either don't use Texas hypers, or use [-] in the middle
17:12 moritz and do use whitespace around infix ops
17:12 TimToady that too
17:12 TimToady which might fix this one, or might not
17:12 cognominal_ joined #perl6
17:12 PerlJam ashleydev: exclude?
17:12 TimToady std: (1,2,3) >>->> 3
17:12 p6eval std 8b331d2: OUTPUT«ok 00:01 122m␤»
17:12 TimToady does, turns out
17:13 ashleydev PerlJam well i've seen things go into STD like requiring white space around operators that may be hard to munge
17:13 TimToady but I'll always prefer »-»
17:13 PerlJam ashleydev: your question is about the future in any case; we can only guess (or lie :)
17:13 felher TimToady: Ah, LTM. Yeah, makes sense. Thnx :)
17:13 dalek roast: 7ecf7e3 | moritz++ | S05-grammar/action-stubs.t:
17:13 dalek roast: remove {*} from tokens that execute action stubs
17:13 dalek roast: review: https://github.com/perl6/roast/commit/7ecf7e34ce
17:13 felher moritz: yeah, thnx :)
17:13 PerlJam ashleydev: The Perl 6 grammar has nothing to do with those other languages.
17:14 TimToady but what moritz said--if you don't put space around your infixes, you're always going to get them interpreted as postfix if possible
17:14 ashleydev doesn't it if you want to use one of them in your lexical scope and still carry variablies and such across your lexical scopes?
17:14 moritz jnthn: there's a compile time error in t/spec/S05-grammar/action-stubs.t,  "Null PMC access in set_pmc_keyed() current instr.: 'nqp;Perl6;SymbolTable;install_package_symbol'"
17:14 moritz jnthn: might be an interesting test case for you
17:15 PerlJam ashleydev: I don't understand what you're trying to get at.   The Perl 6 parser won't be involved when executing Ruby code and vice versa.
17:15 ashleydev what parses strings or regex? is that not the perl 6 parser?
17:16 felher TimToady: Yeah, now that you two told me, it makes perfect sense :) ty
17:16 TimToady that would depend on the parser in question
17:16 PerlJam ashleydev: aye, but the Perl 6 parser is unlikely to parse Ruby
17:16 PerlJam (for instnace)
17:16 TimToady the main exception is comma, which I never put a space before
17:16 ashleydev so if you have perl 6 and decide to put a block of say PHP into it  what happens to the perl 6 parser durring that block?
17:17 moritz ashleydev: it errors out :-)
17:17 PerlJam although ... I guess you could consider every other language out there as a Perl 6 slang so ...  :)
17:17 TimToady the Ruby parser will parse regex using the P6 parser only if the Ruby parser choooses to do so
17:17 moritz ashleydev: or you can parse it call a different parser
17:17 tadzik 'evening
17:17 moritz *can patch it
17:17 moritz \o tadzik
17:17 ashleydev so would the php in that case be a perl 6 slang?
17:17 TimToady ashleydev: parsers nest, and an internal parser can re-use a dynamically enclosing parser if it likes
17:18 TimToady all languages are Perl 6 slangs :)
17:18 moritz if you squint hard enough
17:18 PerlJam or take the right drugs
17:18 TimToady but it depends on how you write the slang whether it reuses any of Perl 6
17:18 ashleydev so there would be limits, like how the inner language uses '}' and such right?
17:18 felher TimToady: yep.
17:18 felher TimToady++, moritz++
17:18 PerlJam ashleydev: no, not really.
17:19 TimToady ashleydev: that would, again, depend on how you write the slang
17:19 moritz ashleydev: it must be able to find its own end reliably
17:19 TimToady P6 never guesses
17:19 TimToady it doesn't do multi-pass parsing
17:19 ashleydev moritz: eh? doesn't perl 6 give it it's end? or only it's beginning?
17:19 TimToady it relies entirely on the subparser to return when it's done
17:19 ashleydev TimToady: ah
17:19 moritz ashleydev: how could the perl 6 parser know where ruby code ends?
17:19 TimToady though it might pass a '}' to a sublanguage as a suggested terminator
17:20 ashleydev suggestions eh?
17:20 ashleydev interesting
17:20 TimToady look at the top rule in STD, it takes a suggestion.
17:20 ashleydev ah so if the slang can't parse the '}' it may just decide to terminate there
17:20 TimToady method TOP ($STOP = '') {
17:20 jnthn nom: grammar Foo { }; say Foo.WHO.WHAT
17:20 p6eval nom 6b21ca: OUTPUT«Stash()␤»
17:21 TimToady if the ruby subparser is calling into another language, it might suggest '}' | 'end'
17:21 tyatpi joined #perl6
17:21 ashleydev so then it becomes up to the slang how it uses variables and what variables cross the boundary
17:21 TimToady well, give or take some token boundaries
17:22 TimToady yes
17:22 TimToady so to leave something that Ruby knows how to deal with, you might need an alias
17:22 replore_ joined #perl6
17:22 ashleydev is the slang allowed to multi-pass parse?
17:22 TimToady but since operators are just strangly-named functions, you can alias them to identifiers
17:23 TimToady ashleydev: it's probably a requirement to have bug-compatible Perl 5 :)
17:23 TimToady however, it will be discouraged
17:24 ashleydev this is what I'm getting at, are we really going to allow any kind of slang...
17:24 TimToady Perl 5 does way too much multi-pass parsing, which is why Perl 6 doesn't :)
17:24 ashleydev :)
17:24 moritz which leads to different insanities :-)
17:24 TimToady ashleydev: um, grammars are Turing Complete.  How could we prevent it?
17:24 ashleydev then it just depends on how it's discouraged...
17:25 * TimToady chambers a shell
17:26 jnthn moritz: Will investigate the test fail after dinner.
17:27 Chillance joined #perl6
17:33 bluescreen10 joined #perl6
17:35 * diakopter shambles a shill
17:43 diakopter when's the new phasers
17:44 tadzik tomorrow
17:44 diakopter oh, Wed
17:45 diakopter masak: you're a spork
17:52 Trashlord joined #perl6
17:54 imarcusthis joined #perl6
17:55 sayu joined #perl6
17:57 sergot joined #perl6
17:59 sergot Hello. :-)
18:00 moritz hi sergot
18:00 flussence random thought: it'd be nice to have "Pod::Block does Positional" so that I could write $node[3][5][1][whatever] for any part of the pod tree
18:01 pmichaud back from lunch
18:02 moritz flussence: I might even go so far as to make Block inherit from Array
18:03 moritz flussence: a less radical step: https://gist.github.com/1245773
18:04 flussence whoa, I had no idea you could do that.
18:04 tadzik that's cool
18:04 moritz it seems you can't, in the setting :(
18:04 jnthn no, you can't use handles in the setting.
18:04 moritz nom: class A { has @.x handles <elems atpos> }; say A.new(x => [5, 6, 7]).[1]
18:05 p6eval nom 6b21ca: OUTPUT«.[1] out of range for type A<62675904>␤  in method at_pos at src/gen/CORE.setting:998␤  in method postcircumfix:<[ ]> at src/gen/CORE.setting:980␤  in <anon> at /tmp/lBBdyZe6Gc:1␤  in <anon> at /tmp/lBBdyZe6Gc:1␤␤»
18:05 moritz nom: class A { has @.x handles <elems at_pos> }; say A.new(x => [5, 6, 7]).[1]
18:05 p6eval nom 6b21ca: OUTPUT«6␤»
18:07 espadrine joined #perl6
18:08 dalek rakudo/nom: 54dff96 | moritz++ | docs/announce/2011.09:
18:08 dalek rakudo/nom: we do action methods, pmichaud++
18:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/54dff968b0
18:09 moritz nom: Grammar::A { }
18:09 p6eval nom 6b21ca: OUTPUT«Caught exception of unknown type -- this probably should not happen␤Null PMC access in get_pmc_keyed()␤  in <anon> at /tmp/j8OQOwnAdL:1␤  in <anon> at /tmp/j8OQOwnAdL:1␤␤»
18:09 jnthn nom: say Grammar.WHO
18:09 p6eval nom 6b21ca: OUTPUT«Caught exception of unknown type -- this probably should not happen␤Null PMC access in find_method('gist')␤  in sub say at src/gen/CORE.setting:4910␤  in <anon> at /tmp/3e5VGP0zHc:1␤  in <anon> at /tmp/3e5VGP0zHc:1␤␤»
18:09 jnthn aha
18:10 moritz I think I know the problem
18:10 moritz the WHO isn'T set in BOOTSTRAP.pm
18:10 jnthn oh...
18:10 jnthn yeah
18:10 jnthn hm, looks like some others are missing too.
18:11 jnthn Yes, it has no add_stash call
18:11 moritz jnthn: when I tried to add 'em all, I got compilation errors a few days ago
18:11 jnthn Want to fix it? Or I can later...bit distracted right now.
18:11 moritz Perl6::Metamodel::ClassHOW.add_stash(Grammar);
18:11 jnthn yup
18:11 moritz => Can only use set_who on a SixModelObject
18:11 moritz current instr.: 'nqp;Perl6;Metamodel;Stashing;_block1791' pc 29806 (src/gen/perl6-metamodel.pir:6596) (src/gen/Metamodel.pm:92)
18:11 jnthn moritz: oh
18:12 jnthn moritz: Yes but Grammar shows up later in the file.
18:12 moritz oh, I'm trying to do it too early
18:12 jnthn :)
18:17 dakkar joined #perl6
18:21 moritz Could not find sub &make
18:37 wamba joined #perl6
18:37 masak diakopter: I know ;)
18:41 moritz nom: 'a' ~~ /\w/; say callframe(0).my<$/>
18:41 p6eval nom 6b21ca: OUTPUT«a␤»
18:41 moritz nom: sub m() { say callframe(1).my<$/> }; { 'a' ~~ /w/; m }
18:41 p6eval nom 6b21ca: OUTPUT«Any()␤»
18:42 moritz oh, because it's not a sub.
18:42 moritz nom: sub m() { say callframe(1).my<$/> }; sub f { 'a' ~~ /w/; m }; f
18:42 p6eval nom 6b21ca: OUTPUT«␤»
18:43 masak ooh, nice. a translation of one of my p6advent posts: http://www.php-oa.com/2011/09/27/p​erl6-the-beauty-of-formatting.html
18:44 masak it says that unfortunately the parting gift can't be run under nom :/
18:44 masak rakudo: say " "x 9-$_,"#"x$_*2-1 for 0..9,2 xx 3
18:44 p6eval rakudo 6b21ca: OUTPUT«Caught exception of unknown type -- this probably should not happen␤Cannot repeat with negative arg␤  in sub infix:<x> at src/gen/CORE.setting:3149␤  in block <anon> at /tmp/wOJCLrNTNa:1␤  in method reify at src/gen/CORE.setting:3736␤  in method reify at src/gen/CO…
18:44 masak :(
18:44 masak std: say " "x 9-$_,"#"x$_*2-1 for 0..9,2 xx 3
18:45 p6eval std 8b331d2: OUTPUT«ok 00:01 123m␤»
18:45 * masak submits rakudobug
18:45 moritz perl6: say 'a' xx -1
18:45 PerlJam TimToady: Are you on facebook?
18:45 p6eval pugs, rakudo 6b21ca, niecza v10-5-ga8e6d5e: OUTPUT«␤»
18:45 masak moritz: maybe the x
18:45 moritz perl6: say 'a' x -1
18:45 p6eval rakudo 6b21ca: OUTPUT«Caught exception of unknown type -- this probably should not happen␤Cannot repeat with negative arg␤  in sub infix:<x> at src/gen/CORE.setting:3149␤  in <anon> at /tmp/qCvrKkMFGD:1␤  in <anon> at /tmp/qCvrKkMFGD:1␤␤»
18:45 p6eval ..pugs, niecza v10-5-ga8e6d5e: OUTPUT«␤»
18:45 masak yeah. definitely a rakudobug.
18:46 moritz and easy to fix
18:46 masak aye.
18:46 moritz perl6: say 'a' x 0
18:46 p6eval pugs, rakudo 6b21ca, niecza v10-5-ga8e6d5e: OUTPUT«␤»
18:47 TimToady PerlJam: no, only twitter
18:48 masak it's odd we didn't have a spectest for that.
18:49 * moritz fixes it in nom, and adds &make
18:51 pyrimidine joined #perl6
18:52 mj41 joined #perl6
18:53 moritz ... easier said than done
18:53 moritz Can not bind non-existant attribute '$!ast' on class 'Match' in sub make at src/gen/CORE.setting:6128
18:53 moritz ... but I added it!
18:53 moritz +    has $.ast;
18:54 moritz $ ./perl6 -e 'say Match.^attributes>>.name'
18:54 moritz $!orig $!from $!to $!CURSOR $!ast $!list $!hash
18:55 masak maybe it's at another level of the metacircularity loop?
18:55 moritz masak: nope, Match is not in BOOTSTRAP.pm
18:56 moritz perl6: my $x = Match.new; $x.ast = 3
18:56 p6eval rakudo 6b21ca: OUTPUT«Caught exception of unknown type -- this probably should not happen␤Method 'ast' not found for invocant of class 'Match'␤  in <anon> at /tmp/jn7Mq8Tdq_:1␤  in <anon> at /tmp/jn7Mq8Tdq_:1␤␤»
18:56 p6eval ..niecza v10-5-ga8e6d5e: OUTPUT«Unhandled exception: No value for parameter $ in CORE Match.new␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (CORE Match.new @ 0) ␤  at /tmp/wmYOhoGu0E line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2115 (CORE C1022_ANON @ 2)…
18:56 p6eval ..pugs: OUTPUT«*** No such method in class Match: "&ast"␤    at /tmp/ve1oBxr1_9 line 1, column 20 - line 2, column 1␤»
18:56 moritz b: my $x = Match.new; $x.ast = 3
18:57 p6eval b 1b7dd1:  ( no output )
18:57 * moritz removes that 'Caught exception of unknown type' message -- it happens far too often
18:58 moritz though I'm still curious why some exceptions are of type CONTROL_ERROR and others are not
18:59 mberends joined #perl6
19:02 dalek nqp: e3d5c8b | pmichaud++ | src/QRegex/Cursor.nqp:
19:02 dalek nqp: Add !LITERAL method to NQPCursorRole to simplify HLL literal matching.
19:02 dalek nqp: review: https://github.com/perl6/nqp/commit/e3d5c8b649
19:04 dalek rakudo/nom: f2d7d26 | pmichaud++ | src/ (2 files):
19:04 dalek rakudo/nom: Add simple variable literal interpolation.
19:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f2d7d26aba
19:04 dalek rakudo/nom: 4659b25 | pmichaud++ | tools/build/NQP_REVISION:
19:04 dalek rakudo/nom: Bump NQP_REVISION.
19:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4659b253c7
19:08 dalek rakudo/nom: b1481ba | moritz++ | src/core/Exception.pm:
19:08 dalek rakudo/nom: in EXCEPTION, check for the payload rather than the excpetion type, which varies more than I thought it does
19:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b1481ba770
19:08 dalek rakudo/nom: e314924 | moritz++ | src/core/Str.pm:
19:08 dalek rakudo/nom: allow negative count on infix:<x>
19:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e314924e5c
19:08 dalek rakudo/nom: 33300b0 | moritz++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
19:08 dalek rakudo/nom: give Grammar a stash
19:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/33300b0598
19:10 moritz https://gist.github.com/1245934 that's the not working patch for &make and Match.ast
19:10 moritz but I don't have the brains left to debug, need to go to bed soon
19:11 PerlJam TimToady: Happy Birthday!
19:11 moritz oooh, TimToady++
19:11 * TimToady bows deeply, then wonders if he can straighten up again...
19:12 PerlJam TimToady: If we choose the appropriate bases, you and I have the same textual representation for our age (at least for a little while :)
19:12 pyrimidine joined #perl6
19:14 pmichaud ah yes, it is TimToady++'s birthday!
19:14 TimToady we'll have an easier time choosing our input bases than our output bases
19:15 masak TimToady: many happy returns. \o/
19:15 masak no pun intended.
19:15 TimToady or leaves, at least, since it's autumn :)
19:17 masak ok, pun maybe intended a little :)
19:18 felher TimToady++: yeah, happy birthday :)
19:18 TimToady danke!
19:18 jnthn happy birthday! :)
19:20 * TimToady is the product of two primes this year
19:21 [Coke] ¡Feliz cumpleaños!
19:21 TimToady ¡Gracias
19:21 TimToady !
19:22 masak 祝你生日快樂!
19:22 TimToady ありがとうございます!
19:23 TimToady merci!
19:23 TimToady 謝謝, even
19:23 masak there we go ;)
19:24 TimToady or should I say 谢谢 in the interests of political correctness?  :)
19:26 thou joined #perl6
19:26 masak no, 'cus I congratulated you in Traditional, not Simple ;)
19:27 masak you can see it on the last character, which is 樂 in T and 乐 in S.
19:27 bluescreen10 joined #perl6
19:28 TimToady indeed, that's why I initially thought it was 日本語. :)
19:29 masak there's a nice (but spurious) correspondence between geographical proximity and charset proximity ;)
19:29 masak doesn't explain Hong Kong, tho'.
19:30 TimToady though it's 誕生日 in Japanese
19:31 frhodes joined #perl6
19:31 benabik joined #perl6
19:31 TimToady Honk Kong is mostly explained in terms of 英国
19:31 thou_ joined #perl6
19:32 Tene joined #perl6
19:32 Tene joined #perl6
19:32 masak
19:32 djanatyn joined #perl6
19:33 masak or 英國, even ;)
19:34 TimToady 固然
19:35 mberends (TimToady++)++
19:36 TimToady ooh, how meta!
19:36 mberends :)
19:36 [Coke] careful, or his age will go up again.
19:37 masak here's hoping it will, many times!
19:37 TimToady either that, or my name will change to TimToadz
19:37 masak some of my best friends are Toadz.
19:45 bluescreen10 joined #perl6
19:51 TimToady s/Honk/Hong/  # no editorial intended...
19:53 TimToady course, if I'd just written 香港 to start with, I wouldn't have that problem...
19:54 masak I made the same typo, but caught it before hitting <Enter>.
20:12 japhb joined #perl6
20:23 colomon joined #perl6
20:24 thou joined #perl6
20:36 pmichaud nom:  say eval('sub { 1 }').WHAT;
20:36 p6eval nom 33300b: OUTPUT«Can only use get_what on a SixModelObject␤  in <anon> at /tmp/quH_eaIIo3:1␤  in <anon> at /tmp/quH_eaIIo3:1␤␤»
20:36 * pmichaud cries.
20:36 masak :(
20:37 jnthn ...huh. :/
20:37 vlixes joined #perl6
20:37 jnthn nom: eval('sub { 1 }'); say $!
20:37 p6eval nom 33300b: OUTPUT«Mu()␤»
20:37 ab5tract joined #perl6
20:37 jnthn nom: eval('sub { 1 }').()
20:37 p6eval nom 33300b: OUTPUT«Null PMC access in invoke()␤  in <anon> at /tmp/6uVZeiW6Jx:1␤  in <anon> at /tmp/6uVZeiW6Jx:1␤␤»
20:37 pmichaud converting variable interpolation into regexes is problematic because I can't get them into rakudo-shaped subs :-(
20:37 jnthn nom: say eval('sub { 1 }; 1').WHAT
20:37 p6eval nom 33300b: OUTPUT«Int()␤»
20:38 pmichaud nom: say eval('my $a = sub { 1 };  $a').WHAT
20:38 p6eval nom 33300b: OUTPUT«Sub()␤»
20:38 vlixes joined #perl6
20:38 pmichaud nom: say eval('my $a = rx { 1 };  $a').WHAT
20:38 p6eval nom 33300b: OUTPUT«Any()␤»
20:38 pmichaud *sob*
20:38 jnthn nom: say (sub { 1 }).WHAT
20:38 p6eval nom 33300b: OUTPUT«Sub()␤»
20:38 pmichaud nom: say (rx { 1 }).WHAT
20:38 p6eval nom 33300b: OUTPUT«Could not find sub &rx␤  in <anon> at /tmp/VEtZkL5lW2:1␤  in <anon> at /tmp/VEtZkL5lW2:1␤␤»
20:39 diakopter all the crying and sobbing
20:39 jnthn nom: my $a = rx { 1 };
20:39 p6eval nom 33300b: OUTPUT«Could not find sub &rx␤  in <anon> at /tmp/tyzoX09Qov:1␤  in <anon> at /tmp/tyzoX09Qov:1␤␤»
20:39 pmichaud enorx?
20:39 diakopter or was that "s.o.b."
20:39 jnthn pmichaud: Looks like...
20:39 jnthn nom: my $a = regex { 1 }; say $a.WHAT
20:39 p6eval nom 33300b: OUTPUT«Useless declaration of a has-scoped method in mainline␤Regex()␤»
20:40 pmichaud I already tried regex and got the warning.  :)
20:40 jnthn er, wtf...
20:40 jnthn nom: my $a = anon regex { 1 }; say $a.WHAT
20:40 p6eval nom 33300b: OUTPUT«Regex()␤»
20:40 pmichaud nom: say eval('my $a = anon regex { 1 }').WHAT
20:40 p6eval nom 33300b: OUTPUT«Regex()␤»
20:40 jnthn nom: say eval('my $a = anon sub { 1 };  $a').WHAT
20:40 p6eval nom 33300b: OUTPUT«Sub()␤»
20:40 jnthn nom: say eval('anon sub { 1 }').WHAT
20:40 pmichaud that might be good enough for me for now
20:40 p6eval nom 33300b: OUTPUT«Can only use get_what on a SixModelObject␤  in <anon> at /tmp/_jp6NS1fJ5:1␤  in <anon> at /tmp/_jp6NS1fJ5:1␤␤»
20:41 jnthn OK, not same issue
20:41 jnthn Investigating both.
20:42 jnthn oh, sink hanling fail...
20:42 jnthn *handling
20:42 pmichaud ...it thinks it's in sink context?
20:43 jnthn pmichaud: Does PAST::Want work with 'v'?
20:43 jnthn pmichaud: Yeah.
20:43 pmichaud sure, it works with 'v'.  That's the primary purpose.
20:44 jnthn > say eval('anon sub { 1 }').WHAT
20:44 jnthn Sub()
20:45 jnthn Making sure the patch builds the setting, and then spectesting.
20:45 jnthn oh, dammit, I'm patching the optimizer branch...
20:47 jnthn Moment, gotta build the new NQP too.
20:54 pmichaud http://gist.github.com/1246217  # regex interpolation works locally
20:55 masak \o/
20:56 pmichaud spectesting
20:56 ponbiki joined #perl6
20:58 * jnthn spectesting a patch for the eval issue too
20:59 im2ee good night !:)
20:59 masak dobranoc!
20:59 jnthn im2ee: dobranoc!
20:59 masak :)
20:59 im2ee Great! :)
20:59 im2ee dobranoc
20:59 im2ee Miłej nocy.
20:59 jnthn .oO( polishing our language skills... )
20:59 im2ee :)
21:01 dalek roast: 6737bd0 | (Felix Herrmann)++ | S32-num/rat.t:
21:01 dalek roast: [S32-num/rat.t] fix invalid "vim:"-modeline
21:01 dalek roast: review: https://github.com/perl6/roast/commit/6737bd0613
21:01 dalek rakudo/nom: d7757b0 | jnthn++ | src/Perl6/Actions.pm:
21:01 dalek rakudo/nom: Unconflate two things that should not have been conflated; improve sink handling thanks to PAST::Want. Fixed eval('sub { 1 }') sub found by pmichaud++.
21:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d7757b0400
21:01 masak "Miłej" looks like the Russian word for "dear".
21:02 [Coke] jnthn++ pmichaud++
21:03 masak jnthn, pmichaud: yes, you guys rock.
21:03 masak 'night, #perl6.
21:03 [Coke] Helllllllo, nurse.
21:07 dalek rakudo/nom: 154292e | pmichaud++ | src/ (3 files):
21:07 dalek rakudo/nom: Add regex interpolation.
21:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/154292e024
21:07 pmichaud I'm afk for a while.
21:08 * diakopter idly wonders what QAST is
21:08 pmichaud it's the successor to PAST
21:09 diakopter ah
21:09 diakopter reminds me of quaddle
21:09 pmichaud (since "PAST" == "Parrot Abstract Syntax Tree",  "QAST" == "nQp Abstract Syntax Tree")
21:09 pmichaud I'm open for better names than QAST, yes :)
21:11 bbkr joined #perl6
21:14 [Coke] I'm sure anything else would be NASTier.
21:18 sjn "New Abstract Syntax Tree"?
21:19 bluescreen10 joined #perl6
21:20 sjn or "NASTY Abstrat Syntax Tree, Yeah Baby!" (a.k.a. NASTYBABY :)
21:20 sjn oops. Abstact*
21:21 * sjn hides under a rock again
21:33 dalek rakudo/nom: 317f89d | jnthn++ | src/Perl6/Actions.pm:
21:33 dalek rakudo/nom: Eliminate bogus warning from regex { a } style constructs.
21:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/317f89d60d
21:34 vlixes` joined #perl6
21:34 soh_cah_toa joined #perl6
21:36 uasi joined #perl6
21:39 ab5tract joined #perl6
21:41 diakopter sorear: ping
21:47 diakopter phenny: tell sorear I submitted two niecza issues
21:47 phenny diakopter: I'll pass that on when sorear is around.
21:48 bluescreen10 joined #perl6
21:58 djanatyn joined #perl6
22:00 * flussence tries to get Str.indent working in nom
22:02 saaki joined #perl6
22:08 jnthn night, #perl6
22:09 diakopter o/
22:09 diakopter niecza: grammar A is STD { } # why doesn't this work
22:09 p6eval niecza v10-5-ga8e6d5e: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Unhandled trait STD for this context at /tmp/DVzS3zYaJs line 1:â�¤------> [32mgrammar A is STD [33mâ��[31m{ } # why doesn't this work[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line …
22:09 replore joined #perl6
22:13 tyatpi joined #perl6
22:26 TimToady we lied, there's only one dialect of Perl 6
22:27 diakopter niecza: grammar A { }; grammar B is A { token TOP { a } }; say B.parse("aaa"); use B
22:27 p6eval niecza v10-5-ga8e6d5e: OUTPUT«Unhandled exception: Unable to locate module B in @path␤  at /home/p6eval/niecza/boot/lib/CORE.setting line 685 (CORE die @ 2) ␤  at /home/p6eval/niecza/src/NieczaPathSearch.pm6 line 23 (NieczaPathSearch NieczaPathSearch.load_module @ 11) ␤  at /home/p6eval…
22:27 diakopter niecza: grammar A { }; grammar B is A { token TOP { a } }; say B.parse("aaa");
22:27 p6eval niecza v10-5-ga8e6d5e: OUTPUT«B()␤»
22:27 * diakopter fumbles about
22:30 diakopter lolz
22:30 diakopter std: https://gist.github.com/1246449
22:30 p6eval std 8b331d2: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Variable $ is not predeclared at /tmp/bCw5_aOmrB line 308:â�¤------> [32m    { @*MEMOS[[33mâ��[31m$¢.pos]<endstmt> ||= 1; }[0mâ�¤Confused at /tmp/bCw5_aOmrB line 308:â�¤------> [32m    { @*MEMOS[$Â[33mâ��[31m¢.pos]<endstmt> ||= 1; }[0mâ�¤â€¦
22:31 diakopter bah
22:32 diakopter the web browser understands it correctly
22:32 diakopter niecza: https://gist.github.com/1246449
22:32 p6eval niecza v10-5-ga8e6d5e: OUTPUT«Unhandled exception: Unable to locate module DEBUG in @path␤  at /home/p6eval/niecza/boot/lib/CORE.setting line 685 (CORE die @ 2) ␤  at /home/p6eval/niecza/src/NieczaPathSearch.pm6 line 23 (NieczaPathSearch NieczaPathSearch.load_module @ 11) ␤  at /home/p6…
22:39 soh_cah_toa joined #perl6
22:59 gern joined #perl6
23:05 cognominal joined #perl6
23:14 tokuhiro_ joined #perl6
23:18 flussence rakudo: say ('  abc' ~~ /^(\h) $0* [ \S | $ ]/).perl
23:18 p6eval rakudo 317f89: OUTPUT«  a␤»
23:18 flussence rakudo: say ('  abc' ~~ /^(\h) $0* [ \S | $ ]/).perl; say $0.perl
23:18 p6eval rakudo 317f89: OUTPUT«  a␤ ␤»
23:18 flussence huh, doesn't seem to work locally.
23:19 flussence or I'm doing something stupid...
23:22 lichtkind joined #perl6
23:23 lichtkind TimToady: happy birthday (from a friend not me :) )
23:23 flussence rakudo: ' abc' ~~ /^(\h) $0* [ \S | $ ]/); say $0.chars
23:23 p6eval rakudo 317f89: OUTPUT«===SORRY!===␤Confused at line 1, near "); say $0."␤»
23:23 flussence rakudo: ' abc' ~~ /^(\h) $0* [ \S | $ ]/; say $0.chars
23:23 p6eval rakudo 317f89: OUTPUT«Method 'chars' not found for invocant of class 'Match'␤  in <anon> at /tmp/AHK5CjdZZ3:1␤  in <anon> at /tmp/AHK5CjdZZ3:1␤␤»
23:23 flussence rakudo: ' abc' ~~ /^(\h) $0* [ \S | $ ]/; say $0.Str.chars
23:23 p6eval rakudo 317f89: OUTPUT«1␤»
23:24 gern I don't know if this is in doubt, but got an Win x64 build of raduko that appears to be just fine. Just had to jump through some small hoops
23:24 flussence (adding .Str to $0 just got me 9 more passing tests)
23:25 flussence oh wait, I miscounted
23:25 flussence oh wait, I miscounted
23:26 flussence whoops, up arrow in wrong window
23:26 tyatpi joined #perl6
23:27 flussence I keep getting an empty $0 for that regex when it should contain whitespace (like it does above) :/
23:29 diakopter flussence: `perl6 -e xxx` or `perl6 file`?
23:29 flussence file
23:30 diakopter different git branch/distro?
23:31 flussence should be new - "This is perl6 version 2011.04-2086-g154292e built on parrot 3.8.0 revision RELEASE_3_8_0"
23:32 aindilis joined #perl6
23:33 [particle] joined #perl6
23:37 cognominal_ joined #perl6
23:37 jerome_ joined #perl6
23:49 vlixes` joined #perl6
23:50 cognominal joined #perl6
23:55 whiteknight joined #perl6

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

Perl 6 | Reference Documentation | Rakudo