Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-02-06

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:08 fridim_ joined #perl6
00:17 mikehh joined #perl6
00:28 payload joined #perl6
00:38 go|dfish joined #perl6
00:40 astrojp joined #perl6
00:42 kerni joined #perl6
01:09 drbean joined #perl6
01:22 wanradt joined #perl6
01:31 mikehh joined #perl6
01:37 k23z__ left #perl6
01:38 astrojp left #perl6
01:57 ispeak_ joined #perl6
02:22 old_gray_bear joined #perl6
03:15 eternaleye joined #perl6
03:49 bjwbell joined #perl6
03:57 colomon joined #perl6
05:29 cognominal joined #perl6
05:41 pugs_svn r29646 | lwall++ | [STD,et al.] add explicit copyright notices at suggestion of diakopter++
06:05 dduncan joined #perl6
06:27 __rnddim__ left #perl6
07:01 dduncan left #perl6
07:06 kaare joined #perl6
07:20 eternaleye_ joined #perl6
08:18 pugs_svn r29647 | lwall++ | [gimme5] oops, need to parse the copyright comment with correctliness
08:30 riffraff joined #perl6
08:37 f00li5h[HireMe] meow?
08:40 iblechbot joined #perl6
08:49 Su-Shee joined #perl6
08:50 Su-Shee good morning
08:55 sjn hello
08:56 sjn Anyone here know where to find a high-res version of the Rakudo logo?
09:00 clausi joined #perl6
09:06 patspam joined #perl6
09:11 mberends joined #perl6
09:24 synth joined #perl6
09:29 mberends hello sjn, pugs/misc/camelia.svg can be rasterized to any desired resolution. You may need to use inkscape to manipulate her, because Gimp and F-Spot seem to treat her as a 1px x 1px dot. Firefox also renders the svg format fine.
09:30 mberends oh wait, Rakudo logo... that will be another search...
11:13 jnthn oh hai
11:13 jnthn mmm...sleep was good. :-)
11:14 mberends jnthn: especially when you write better code as a result :)
11:17 jnthn mberends: Here's hoping! :-)
11:18 sjn o/
11:19 sjn 09:56 < sjn> Anyone here know where to find a high-res version of the Rakudo logo?
11:20 meppl joined #perl6
11:21 jnthn hi sjn
11:21 jnthn Off hand, no, 'fraid not...I'm sure I've gone looking before, but can't remember finding anything all that large.
11:22 jnthn sjn: Pm would know, but he's away for the weekend.
11:28 sjn pah weloh well
11:40 Bzek joined #perl6
12:02 uniejo joined #perl6
12:09 fridim_ joined #perl6
12:10 colomon o/
12:10 jnthn o/
12:11 szbalint fosdem says hello :)
12:11 colomon hello fosdem!
12:11 jnthn oh hai fosdem! :-)
12:11 * jnthn never made it to that conference.
12:14 colomon jnthn: so, any fresh idea how to get around the Regex::Match.Bool issue?
12:15 jnthn colomon: ooh, I'd actually forgot about it. Sorry.
12:17 colomon no worries, I forgot to look further into the Range test failures with .Bool, either.  :)
12:17 drbean joined #perl6
12:17 jnthn colomon: Remind me where we got to...was it this...
12:17 jnthn ng: augment Regex::Match { }
12:17 p6eval ng 322d1c: OUTPUT«sh: ./perl6: No such file or directory␤»
12:17 jnthn ...
12:18 jnthn ng: augment Regex::Match { }
12:18 p6eval ng 322d1c: OUTPUT«sh: ./perl6: No such file or directory␤»
12:18 jnthn aww
12:18 colomon I never tried doing that in the REPL. but doing it in the source completely broke ng
12:19 jnthn ng: augment Regex::Match { }
12:19 p6eval ng 322d1c: OUTPUT«sh: ./perl6: No such file or directory␤»
12:19 jnthn hm...slow build or broked build.
12:20 meppel joined #perl6
12:20 colomon have you pulled in the last 20 hours?  maybe my last patch broke something?
12:21 colomon afk for a minute, diaper change
12:21 jnthn colomon: no, will pull now
12:21 jnthn got something to push anyway
12:21 jnthn colomon: that augment works in the repl. Hm
12:23 jnthn colomon: yes, I'm up to date.
12:26 dalek rakudo/ng: 0cc0f71 | jonathan++ |  (2 files):
12:26 dalek rakudo/ng: Add back Associative role.
12:26 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/0​cc0f717b9702f2e608ea0e7d9e62e09851e90de
12:28 pugs_svn r29648 | jnthn++ | [t/spec] Un-todo a test that ng passes (that master never did...woo).
12:33 colomon Associative, \o/
12:35 jnthn colomon: A small step towards having hash.
12:36 colomon A giant leap towards the Perl-nature.  :)
12:41 meppl joined #perl6
12:41 jnthn colomon: In the spectest results do you also have:
12:41 jnthn t\spec\S32-str\split-simple2.rakudo                         (Wstat: 0 Tests: 41
12:41 jnthn Failed: 0) TODO passed:   39
12:42 jnthn colomon: I've been seeing it for a while, just wanted to check it's not only me that's seeing it before I remove the TODO
12:45 jnthn ng: sub foo(::T = Mu) { say T }; foo()
12:45 p6eval ng 322d1c: OUTPUT«Mu()␤»
12:47 cls_bsd joined #perl6
12:49 colomon jnthn: the reason that's TODO'd (I think) is that fudge-skip is somewhat broken in ng.  :)
12:49 jnthn oh.
12:51 colomon If I'm thinking of the right place, there are three tests in a block, and I think I had to todo the entire block rather than just the two tests that didn't work
12:51 mssm joined #perl6
12:54 orafu joined #perl6
12:58 mssm joined #perl6
13:02 salzh joined #perl6
13:03 colomon jnthn: even in the REPL, if I say augment class Regex::Match { multi Bool () { say "hello"; } };
13:03 colomon I still get Method 'Bool' not found for invocant of class 'Regex;Match'
13:04 colomon I'm wondering if the fastest solution would just be to patch Regex::Match wherever it is in Parrot...
13:04 jnthn colomon: OK, gimme a moment more working on a bit of this Hash thingy and then I'll take a look.
13:05 colomon sure.
13:12 colomon oh, I think the Range tests are failing because I broke nok somehow
13:14 payload joined #perl6
13:15 ruoso joined #perl6
13:17 colomon oh, this is great!
13:19 colomon Apparently switching prefix:<?> to do .Bool breaks the !? combination.
13:20 colomon Like prefix:<!> doesn't work on a Bool, maybe?
13:20 payload1 joined #perl6
13:20 jnthn Oh!
13:20 colomon that's not exactly it...
13:21 colomon oh, I see.
13:21 colomon Actually, it's prefix:<?> that's broken, in the most ludicrous way possible.
13:21 colomon > say ?True
13:21 colomon 1
13:21 colomon > say ?False
13:21 colomon 1
13:23 colomon Sure, there is no Bool.Bool method, so when you call it, it defaults to Mu.Bool, and both True and False are .defined.
13:23 colomon sigh.
13:23 colomon but hopefully dead easy to fix
13:24 jnthn d'oh!
13:28 colomon I'm a little disturbed it to the range tests to tell me that...
13:28 jnthn Yeah...are we running any Bool tests?
13:29 jackyf joined #perl6
13:40 colomon bother.  I successfully patched Bool.Bool, but all the nok tests still fail.
13:44 cognominal joined #perl6
13:45 jnthn colomon: I'm having plenty of un-fun with hash too. :-/
13:46 colomon just that kind of morning, I guess.
13:46 colomon looks beautiful here, anyway, the sun is out.
13:48 colomon I'm thinking I'm going to pause and try to figure out basic Bool.Bool tests before I plunge further into the madness.
13:49 jnthn That may be wise.
13:50 colomon we're actually running bool.t, it never tests Bool.Bool or prefix:<?>.  :)
13:51 cognominal ho, jnthn is swedish now :)
13:54 jnthn cognominal: Not until March! :-P
13:56 cognominal good luck moving there :)
13:59 jnthn Thanks :-)
14:03 s1n left #perl6
14:13 Su-Shee joined #perl6
14:13 colomon so, if I say ok !(0 ~~ 1..5) it passes, but if I say nok 0 ~~ 1..5 it fails.   :\
14:25 payload joined #perl6
14:37 barney joined #perl6
14:37 ruoso joined #perl6
14:40 diakopter ng: augment Regex::Match { }
14:40 p6eval ng 0cc0f7: OUTPUT«In "augment" declaration, typename Regex::Match must be predeclared (or marked as declarative with :: prefix) at line 1, near " { }"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (src/stage0/HLL-s0.pir:328)␤»
14:41 jnthn std: augment Regex::Match { }
14:41 p6eval std 29648: OUTPUT«[31m===[0mSORRY![31m===[0m␤Multiple prefix constraints not yet supported at /tmp/ljXE9XrCGR line 1:␤------> [32maugment Regex::Match [33m⏏[31m{ }[0m␤    expecting any of:␤    multi_declarator␤ typename␤FAILED 00:01 107m␤»
14:46 jnthn hmm, progress
14:46 jnthn perl6 -e "say EnumMap.new(x => 1, y => 2)<y>" # 2
14:47 mberends nice :)
14:47 * mberends pines today for open() in ng
14:48 colomon mberends: seems like that might be pretty easy to add if you were feeling adventurous....
14:49 mberends orly?
14:49 jnthn Probably needn't be that different from master.
14:49 jnthn IO probably needs to change though.
14:49 colomon I've never looked at that code, but... what jnthn said.
14:49 mberends sure, why not ;)
14:50 colomon sure, .lines needs to become lazy...
14:52 mberends a non lazy .get would be nice anyhow as a start
14:53 jnthn aye
14:53 jnthn colomon: I'm pushing my early EnumMap and Hash bits.
14:54 jnthn colomon: Not really functional, but it doesn't cause test fails.
14:54 jnthn colomon: I've got them as roles, they can become parametric for typed hashes later on.
14:55 colomon I wish I could sort out this prefix:<?> stuff, I've got a bunch of changes but a bunch of test fails, too.
14:55 jnthn Aww.
14:55 jnthn colomon: What's failing and, if you know, why?
14:55 jnthn colomon: I don't mind helping...will be a little break from the hash. :-)
14:55 dalek rakudo/ng: efd82ce | jonathan++ | src/Perl6/Grammar.pm:
14:55 dalek rakudo/ng: Fix for role Foo[::T] does Bar[T] { ... }.
14:55 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/e​fd82cef82448f690b9a6b40fa0bfa7883308562
14:55 dalek rakudo/ng: 61f444a | jonathan++ |  (8 files):
14:55 dalek rakudo/ng: Stub in a very minimal EnumMap and Hash in the core setting. Fix up slurpy hash creation. Get { } and < > postcircumfixes actually calling the appropriate methods. Nothing especially useful yet, but no newly broken tests either.
14:55 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/6​1f444ace49bc3373df0acdaa46e662178661934
14:55 colomon nok in my Range tests is the obvious thing.
14:55 jnthn colomon: How much fails?
14:55 colomon quoting myself: "so, if I say ok !(0 ~~ 1..5) it passes, but if I say nok 0 ~~ 1..5 it fails."
14:56 colomon I've got 39 failing tests in range-basic.t, and then there's the Regex::Match stuff.
14:56 jnthn hmm
14:56 jnthn multi sub nok(Mu $cond, $desc) is export { proclaim(!$cond, $desc);
14:56 jnthn }
14:56 jnthn Looks simple enough. :-/
14:56 colomon But the failures are so weird in range-basic.t that I'm worried it's a sign of more fundamental issues.
14:56 jnthn Yeah
14:57 colomon > use Test;
14:57 colomon > ok !(0 ~~ 1..5)
14:57 colomon ok 1 -
14:57 colomon > nok 0 ~~ 1..5
14:57 colomon not ok 2 -
14:58 jnthn ng: say (!(0 ~~ 1..5)).WHAT
14:58 colomon but nok seems to work for simple tests.
14:58 p6eval ng 0cc0f7: OUTPUT«Int()␤»
14:59 colomon locally that's the same, but (0 ~~ 1..5).WHAT is a Bool.
14:59 jnthn Odd
14:59 colomon but then
14:59 colomon > nok False
14:59 colomon ok 4 -
14:59 colomon > nok True
14:59 colomon not ok 5 -
14:59 jnthn Hm
15:00 athaba joined #perl6
15:00 colomon jnthn: not odd, actually prefix:<!> is essentially implemented the same way prefix:<?> was before I fixed the latter.
15:00 colomon so it's returning 0 / 1 rather than False / True
15:00 jnthn colomon: Is prefix:<!> fixed yet?
15:00 jnthn Ah.
15:00 colomon but returning 0 / 1 was fine for nok before.
15:01 jnthn colomon: Maybe you can push and I'll have a dig here? If we can't fix it soonish, we can always revert.
15:01 colomon and !True and !False give the logically correct answers.
15:01 colomon okay, that would be great.
15:01 colomon I warn you, it makes spectest very noisy with todo passes (as well as the failures).
15:02 colomon (building your changes first)
15:02 masak joined #perl6
15:02 jnthn lolitsmasak
15:02 masak \o/
15:02 mberends \o/
15:03 masak jnthn++ # nice post yesterday
15:03 masak mberends: oh hai!
15:03 mberends thanks for moving proto forward
15:03 jnthn Hmm well
15:03 jnthn > my $x = Hash.new; $x<a> = 42; say $x<a>;
15:03 jnthn 42
15:03 jnthn Not a bad start.
15:03 masak mberends: I didn't do much, actually. :)
15:04 masak jnthn: what about non-string keys? :)
15:04 jnthn masak: Give a guy a piece of string and he asks for a space elevator. :-P
15:04 masak well, yeah!
15:05 jnthn masak: Need to work out if Parrot can handle it yet or not.
15:05 masak nodnod
15:05 jnthn masak: I have got Hash as a role now though.
15:05 jnthn Though not quite parametric yet.
15:05 * masak is glad he didn't get a flat "no" :)
15:05 mberends masak: I was wondering about object-as-key, would that imply the object's address or its value?
15:05 jnthn mberends: I'm guessing it goes on ===
15:05 masak mberends: address, I think. what jnthn++ said.
15:05 jnthn Which in turn goes on .WHICH
15:06 jnthn Which means it's really up to the thingy in question.
15:06 masak mberends: because otherwise, you can't sensibly store mutable objects.
15:06 mberends no, === should mean value, but it's *hard* to do
15:06 jnthn mberends: === can mean value. It depends on the type.
15:06 mberends === should mean same type and same contents
15:07 mberends but not same address
15:07 dalek rakudo/ng: 71b6ab9 | (Solomon Foster)++ | src/ (2 files):
15:07 dalek rakudo/ng: Switch prefix:<?> to just call .Bool.
15:07 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/7​1b6ab9ad203089493ec91e3efb517f91e8cf4ea
15:07 dalek rakudo/ng: ecb6e5b | (Solomon Foster)++ |  (2 files):
15:07 dalek rakudo/ng: Merge branch 'ng' of git@github.com:rakudo/rakudo into ng
15:07 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/e​cb6e5bfec957eeb49f8fb54b9045ace47fd0f67
15:07 dalek rakudo/ng: 4efce8e | (Solomon Foster)++ |  (2 files):
15:07 dalek rakudo/ng: Add Bool.pm and implement Bool.Bool.
15:07 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/4​efce8eb2b2749ddc3d9277ce91e0ae78fa92222
15:07 dalek rakudo/ng: a02ed62 | (Solomon Foster)++ |  (9 files):
15:07 dalek rakudo/ng: Merge branch 'ng' of git@github.com:rakudo/rakudo into ng
15:07 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/a​02ed6225ee790be58c9eaff86eb3ed96b43f08e
15:08 jnthn colomon: building
15:08 masak mberends: oh, so two distinct Sets with the same members will hash the same?
15:08 mberends yes
15:08 masak mberends: that's kinda neat. but yes, that's also hard. :)
15:08 masak colomon++ # commits
15:08 jnthn mberends: As far as I understand, it's up to the type.
15:08 mberends objects can also encapsulate other objects, making it a recursive task
15:09 masak colomon: if you want to avoid many merge commits, you can try 'git pull --rebase origin ng'
15:09 masak mberends: indeed. with circular structures as an 'interesting' special case.
15:10 mberends masak: also two Temporals, for example
15:10 masak nod.
15:10 masak guess Temporal should override its WHICH, then.
15:11 jnthn colomon: Ouch.
15:11 jnthn colomon: Locally:
15:11 jnthn > sub foo($x) { say $x; if !$x { say 42 } }; foo 0 ~~ 1..5
15:11 jnthn 1
15:11 jnthn > sub foo($x) { say $x; if !$x { say 42 } }; foo 1 ~~ 1..5
15:11 jnthn 1
15:11 jnthn > sub foo($x) { say $x; if !$x { say 42 } }; foo -1 ~~ 1..5
15:11 jnthn 1
15:12 jnthn > say 0 ~~ 1..5; say 1 ~~ 1..5;
15:12 jnthn 1
15:12 jnthn 1
15:13 jnthn colomon: Looks like Range.ACCEPTS may be doing the wrong thing.
15:13 jnthn colomon: Hm
15:13 jnthn our Bool multi method ACCEPTS(Range $topic) {
15:13 jnthn That one won't match since we're comparing a value
15:13 jnthn class Range is Iterable {
15:14 jnthn So we call Iterable's ACCEPTS
15:14 jnthn Which I'm not sure what does. :-)
15:15 jnthn ng: Iterable.ACCEPTS(0)
15:15 mberends masak: for an application defined class, I think you'd make a hash key by hashing a the address of the protoobject (if it's still called that) concatenated with a binary serialization of the object data
15:15 p6eval ng 0cc0f7:  ( no output )
15:15 jnthn ng: say Iterable.ACCEPTS(0)
15:15 p6eval ng 0cc0f7: OUTPUT«0␤»
15:15 jnthn colomon: oh sorry
15:15 jnthn I was wrong
15:15 jnthn There's another multi variant
15:15 jnthn our Bool multi method ACCEPTS($topic) {
15:15 jnthn ?(self!min_test($topic) && self.max_test($topic))
15:15 jnthn }
15:16 masak mberends: not sure I get it. why both the address and the object data? using either one I'd understand, but not a concatenation of both.
15:16 jnthn colomon: min_test and max_test then do numeric comparisions.
15:16 jnthn erm
15:16 jnthn colomon: I meant string comp
15:16 jnthn colomon: Probably thus why the dodgy results.
15:17 mberends masak: the protoobject address serves as a unique identifier of the type
15:18 colomon jnthn: that's a known bug (to me anyway), but those tests all passed before the prefix:<?> shift...
15:18 masak mberends: oh! of the protoobject. yeah, now I'm with ya.
15:18 jnthn colomon: hm
15:18 masak (also known as 'type object' nowadays, by the way :)
15:18 colomon because
15:19 colomon ng: 3 lt 4
15:19 p6eval ng 0cc0f7: OUTPUT«sh: ./perl6: No such file or directory␤»
15:19 jnthn colomon: Also changed it to numeric comp doesn't help
15:19 jnthn So yeah, there's something else here.
15:19 colomon I've been meaning to add more tests that actually break when you use the wrong comp, but I haven't gotten around to it yet.  Keep on getting distracted by other things.  :)
15:19 jnthn :-)
15:20 s1n joined #perl6
15:20 jnthn colomon: It does look to me like Range.ACCEPTS is somehow returning bad results though.
15:20 colomon bad how?
15:20 jnthn Well, simply because:
15:21 jnthn > say 0 ~~ 1..5; say 1 ~~ 1..5;
15:21 jnthn 1
15:21 jnthn 1
15:21 colomon woah.
15:21 pmurias joined #perl6
15:21 colomon you're quite right.
15:21 jnthn I don't have an answer for why though.
15:22 colomon but you've bumped me into looking in the right spot, I hope.
15:23 * masak makes bad continuation jokes over at #haskell
15:25 * colomon makes min_test  "public" so he can test it from the REPL...
15:27 pmurias what's min_test?
15:27 colomon Range.min_test
15:27 jnthn pmurias: Just a helper method in the Range implementaiton.
15:27 Psyche^ joined #perl6
15:28 * pmurias doubts it should be exposed to the user
15:28 colomon tests if the value passed to it is above the minimum of the Range.
15:28 colomon but it should definitely be exposed to the tester at this moment in time.
15:28 colomon > say (1..5).min_test(0) && (1..5).max_test(0)
15:28 colomon 0
15:28 colomon > say ?((1..5).min_test(0) && (1..5).max_test(0))
15:28 colomon 1
15:29 colomon > say ?0
15:29 colomon 1
15:29 colomon > say ?1
15:29 colomon 1
15:29 colomon well, that's easy enough to fix...
15:30 jnthn oh!
15:30 colomon and something else that should be tested somewhere, of course...
15:31 jnthn > my %h; %h<a> = 42; say %h<a>;
15:31 jnthn 42
15:31 jnthn Another baby step. :-)
15:31 pmurias colomon: please don't test for min_test in the offical Perl 6 test suit
15:32 jnthn pmurias: I think colomon was referring to ?0 and ?1
15:32 colomon indeed
15:33 colomon stupid, fundamental tests that never-the-less can fail, and in very ugly ways.
15:41 dalek rakudo/ng: 48c9903 | (Solomon Foster)++ | src/core/Int.pm:
15:41 dalek rakudo/ng: Add Int.Bool.
15:41 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/4​8c99037dc9277e3077fe901fa33cbc0d6058a73
15:42 colomon heh, I wondered about that.  A lot of the todo passes disappear with that patch.  :(
15:43 colomon well, we're getting there...
15:43 jnthn colomon: Does it fix most of the fails?
15:43 colomon it fixes all those range fails.
15:43 jnthn Great.
15:44 jnthn So "just" the regex one now?
15:44 colomon still fails S05-metasyntax/changed.t  and S12-class/instantiate.t, which are Regex::Math.
15:44 colomon *Match
15:44 jnthn righty
15:44 colomon S03-operators/boolean-bitwise.t is failing two tests, I didn't notice those before.
15:44 colomon that's definitely my bailiwick.   :)
15:45 jnthn colomon: I just pushed a small patch that gets my %h putting a properly init'd Hash in %h. :-)
15:45 colomon oh, turns out this is a good stress test for prefix:<?>.  :)
15:45 colomon \o/
15:46 colomon ng: say ''.Bool
15:46 p6eval ng a02ed6: OUTPUT«1␤»
15:46 colomon rakudo: say ''.Bool
15:46 p6eval rakudo 1d4928: OUTPUT«Method 'Bool' not found for invocant of class 'Str'␤in Main (file src/gen_setting.pm, line 324)␤»
15:46 colomon rakudo: say ?('')
15:46 p6eval rakudo 1d4928: OUTPUT«0␤»
15:46 jnthn I like it when we get it more right in ng than in master. :-)
15:46 colomon wait, is ''.Bool supposed to be Tree?
15:46 colomon *True?
15:47 dalek rakudo/ng: 861695b | jonathan++ | src/ (4 files):
15:47 dalek rakudo/ng: Get my %h declarations init'ing a Hash correctly.
15:47 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/8​61695b7e5b9f08a30d593b012eaa2775f775cd3
15:47 jnthn No
15:47 jnthn Str.Bool is probably missing!
15:47 jnthn d'oh
15:47 jnthn :-)
15:47 jnthn I was happy that we *had* a Bool.
15:47 colomon Ah, okay.  :)
15:48 jnthn rakudo: my %h = x => 1, y => 2; for %h { .WHAT.say }
15:48 p6eval rakudo 1d4928:  ( no output )
15:48 jnthn rakudo: my %h = x => 1, y => 2; for %h { .WHAT.say }
15:48 colomon I need to get moving with the rest of my life at the moment, if someone hasn't coded Str.Bool by the time I'm back I'll take a stab at it.  :)
15:48 p6eval rakudo 1d4928:  ( no output )
15:49 jnthn colomon: OK, cool. :-)
15:50 TimToady ng: say Bool ~~ Int
15:50 p6eval ng 861695: OUTPUT«0␤»
15:51 TimToady that should be 1, since Bool is an enum
15:52 jnthn TimToady: Heh. Apart from we didn't implement enums yet. :-)
15:52 TimToady ng: enum X <A B C>; say A ~~ Int
15:52 p6eval ng 861695: OUTPUT«Could not find non-existent sub &X␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
15:52 TimToady ah :)
15:52 TimToady still, seems to me that Bool.Bool were missing, and properly a subset of Int, then it would have defaulted to Int.Bool rather than Mu.Bool
15:53 TimToady and Int.Bool would consider 1 to be true
15:53 TimToady and 0 false
15:54 jnthn Oh, cunning. :-)
15:54 TimToady but maybe that would break the circularity saw on booleans
15:54 jnthn Yeah, that is a tricky issue.
15:57 sjohnson in p6, will 1 .. 5 and 1..5 behave differently?
15:57 TimToady no
15:57 masak S06 explains that if one does 'is tighter' twice based on the same precedence level, one ends up on the same precedence level. I know why this is, since I know how it works internally, with the strings representing the precedence level. what I'm curious about is why it's spec'd to work that way, rather than two 'is tighter' based on the same precedence level creating two distinct precedence levels, the second one slightly tighter than
15:57 masak the first?
15:58 sjohnson my vim syntax highlighting shows it differently.. i suppose i'll have to take it up with whoever wrote that
15:58 TimToady vim syntax highlighting is cheating all over the place
15:58 masak sjohnson: the vim syntax highlighting can never be perfect as long as it doesn't implement an STD-like Perl 6 parser. :)
16:00 uniejo ng: say ?0.0, ?0i
16:00 p6eval ng 861695: OUTPUT«11␤»
16:00 sjohnson i wonder if people were burnt at the stake for color syntax highlighting back in the DOS days
16:00 jnthn More missing .Bool
16:01 TimToady masak: that would take a registry of all existing precedence levels to detect collisions, including any imported ones.
16:01 masak granted.
16:01 TimToady and I'm not sure it woudl DW most people M.
16:01 masak I'm thinking whether the current model might trip people up too.
16:02 TimToady well, we could always add 'is tighterer' if it becomes and issue
16:02 masak :)
16:02 TimToady but most people are simply going to alias to an existing level
16:03 masak nod.
16:03 TimToady so they can tell themselves "This is just like addition"
16:03 masak maybe there should be a slight social stigma on using 'is tighter' where 'is equiv' would work.
16:04 TimToady slight social stigmas a Perl culture speciality
16:05 masak yeah. I can see how people from S&M languages may freak out if the miss the part about slight social stigmas. :)
16:06 TimToady TMTOWTDIWrong
16:09 jnthn ng: Regex::Match.HOW
16:09 p6eval ng 861695:  ( no output )
16:09 jnthn ng: say Regex::Match.HOW
16:09 p6eval ng 861695:  ( no output )
16:09 jnthn ng: say Regex::Match.HOW.name
16:09 p6eval ng 861695: OUTPUT«Method 'name' not found for invocant of class 'P6metaclass'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
16:10 TimToady ng: say Match.WHAT.perl
16:10 p6eval ng 861695: OUTPUT«Could not find non-existent sub &Match␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
16:11 jnthn ng: say Regex::Match.WHAT.perl
16:11 p6eval ng 861695: OUTPUT«Regex::Match␤»
16:11 TimToady so to make diakopter's implicit question explicit, why is there a Regex:: on the front?
16:11 jnthn TimToady: Dunno.
16:12 jnthn TimToady: I'm guessing there shouldn't be?
16:12 TimToady well, it's specced as just Match, and I'm wondering what the reasoning is.  we'll have to ask pm when he comes back
16:12 jnthn TimToady: Yeah. May just be oversight.
16:13 jnthn TimToady: I'd rather ask Pm before trying to change it. :-)
16:13 TimToady me2
16:15 TimToady rakudo: enum X <a b c>; say a ~~ Int; say True ~~ Int   # buglet
16:15 p6eval rakudo 1d4928: OUTPUT«1␤0␤»
16:16 jnthn Aye.
16:16 TimToady rakudo: say SAME ~~ Int
16:16 p6eval rakudo 1d4928: OUTPUT«Could not find non-existent sub SAME␤in Main (file src/gen_setting.pm, line 324)␤»
16:16 jnthn Quick! Masak!
16:16 jnthn :-)
16:16 TimToady rakudo: say Same ~~ Int
16:16 masak what? what? :)
16:16 p6eval rakudo 1d4928: OUTPUT«Could not find non-existent sub Same␤in Main (file src/gen_setting.pm, line 324)␤»
16:17 TimToady rakudo: say Increasing ~~ Int
16:17 p6eval rakudo 1d4928: OUTPUT«Could not find non-existent sub Increasing␤in Main (file src/gen_setting.pm, line 324)␤»
16:17 jnthn rakudo: say Order::Increasing ~~ Int
16:17 p6eval rakudo 1d4928: OUTPUT«invoke() not implemented in class 'Undef'␤in Main (file <unknown>, line <unknown>)␤»
16:17 jnthn ...
16:17 * masak submits TimToady++'s rakudobuglet
16:17 * jnthn thought rakudo master knew about Order
16:17 jnthn rakudo: say Order::Increase ~~ Int
16:17 p6eval rakudo 1d4928: OUTPUT«1␤»
16:17 jnthn oh.
16:18 jnthn TimToady: Should it be Increasing or Increase?
16:18 TimToady Increase is fine
16:18 TimToady I just couldn't remember the spec :)
16:18 jnthn Just found it. :-)
16:19 jnthn Yes, it's spec (S03) as Order::Increase
16:19 masak TimToady: should a ~~ Int be 0 or 1 in your example?
16:19 TimToady enums are integers, generally
16:19 * masak guesses 1
16:19 masak right.
16:19 TimToady so it's a bit like asking Int ~~ Int
16:20 TimToady depending on how real you think the subtype is
16:20 masak oh, I see now! True is (supposed to be) an enum too.
16:20 masak an enum value.
16:20 TimToady yeah
16:20 colomon TimToady: Int.Bool wouldn't have helped with Bool.Bool even if ng had Bool ~~ Int -- Int.Bool wasn't implemented either.
16:22 TimToady well in any case, that was depending on a low level self == 0 test that can decode any integer including a boolean, which is unlikely (hence the circularity saw business)
16:23 TimToady somehow conditionals have to break the Bool.Bool returns a Bool problem
16:24 justatheory joined #perl6
16:24 colomon I'm not sure I see the problem?
16:26 TimToady one way would be to return an int rather than an Int, maybe, assuming that conditionals can test a native int without calling .Bool
16:26 jnthn colomon: Argh, I think I've found The Problem. :-/
16:27 jnthn colomon: With Regex::Match
16:27 jnthn colomon: And...argh.
16:27 jnthn colomon: Basically, we import the namespace from a library
16:27 jnthn colomon: Which is fine, apart from...it goes and scribbles over the namespace that's set up by writing an augment class Regex::Match { }
16:28 jnthn And so we lose the code to do that, and then we explode.
16:29 jnthn ...that took some finding. :-/
16:30 TimToady rakudo: say Finding ~~ Fixing
16:30 p6eval rakudo 1d4928: OUTPUT«Could not find non-existent sub Fixing␤in Main (file src/gen_setting.pm, line 324)␤»
16:32 TimToady hmm
16:32 TimToady rakudo: say 2.Bool
16:32 p6eval rakudo 1d4928: OUTPUT«Method 'Bool' not found for invocant of class 'Int'␤in Main (file src/gen_setting.pm, line 324)␤»
16:32 jnthn colomon: well, there's a workaround... ;-)
16:32 jnthn INIT {
16:32 jnthn Regex::Match.^add_method('Bool', method () {
16:32 jnthn self.to >= self.from
16:32 jnthn });
16:32 jnthn }
16:32 TimToady rakudo: say Bool(2)
16:32 p6eval rakudo 1d4928: OUTPUT«invoke() not implemented in class 'Boolean'␤in Main (file <unknown>, line <unknown>)␤»
16:33 TimToady rakudo: say Order(1)
16:33 p6eval rakudo 1d4928: OUTPUT«invoke() not implemented in class 'Integer'␤in Main (file <unknown>, line <unknown>)␤»
16:33 jnthn TimToady: In the spec Foo($x) where Foo is a typename is equivalent to $x.Foo
16:33 jnthn TimToady: Is that a static transformation?
16:33 TimToady was just thinking Order() is potentially the same as sign()
16:34 TimToady jnthn: yes, one of the reasons we want to know all typenames in advance
16:34 jnthn TimToady: OK, that makes it easier to implement then :-)
16:34 TimToady indeed :)
16:34 * TimToady bows and bonks oversized head on floor
16:35 am0c joined #perl6
16:35 jnthn colomon: I'm putting in what I pasted above as a cheat.
16:36 jnthn colomon: Need to check what Pm's intentions are for Match and its relation to Regex::Match, or if they're the same, or whatever. :-)
16:36 TimToady is self.to -1 on a non-match?
16:37 jnthn TimToady: iirc, it's gonna be less than .form
16:37 masak jnthn: that ^add_method method... wow! <3
16:37 jnthn May be -1 though.
16:37 jnthn masak: I met a model and loved her too.
16:37 TimToady rakudo: 'a' ~~ /b/; say $/.to
16:37 p6eval rakudo 1d4928: OUTPUT«-2␤»
16:37 TimToady no, it's not -1 :)
16:37 TimToady rakudo: 'a' ~~ /b/; say $/.from
16:37 masak jnthn: thought she was an oil queen.
16:37 p6eval rakudo 1d4928: OUTPUT«1␤»
16:38 jnthn masak: sshhhh...no campaigning the day before the election!
16:38 * masak zips it
16:38 jnthn masak: She's a gas queen anyway. :-P
16:38 masak oh, gas.
16:38 jnthn masak: Actually, a gas princess. :-P
16:38 jnthn Cute, huh.
16:38 jnthn :-)
16:38 * TimToady wishes more guys could keep it zipped in the presence of rich models
16:38 masak yeah. important distincion. queen would have sucked in a way.
16:39 masak s/c/ct/
16:39 TimToady not gonna touch that one...
16:39 jnthn I was thinking just the same!
16:39 masak pervs. :P
16:39 jnthn colomon: Hm
16:40 jnthn colomon: OK, seems we fail less now.
16:40 k23z__ joined #perl6
16:40 masak .oO( you err and err and err but less and less and less... )
16:41 masak http://www.poemhunter.com/poem/the-road-to-wisdom/
16:41 TimToady the meter limps
16:41 masak I quoted it wrong.
16:43 jnthn colomon: Oh noes, I think I broke slurpy hashes somehow. Though I'm sure it passed when I comitted. :-/
16:44 dalek rakudo/ng: 253ce4b | jonathan++ |  (2 files):
16:44 dalek rakudo/ng: Cheat for Match.Bool.
16:44 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/2​53ce4b7c1f56b41f584eee66455bf961acbd221
16:44 jnthn oh, I know what I did
16:44 jnthn duh
16:45 TimToady there is a distinct lack of grammatical parallelism between Increase and Same though
16:47 jnthn Yeah
16:47 TimToady though as I recall, we picked Increase because it couldn't be read the other way: a is bigger than b
16:48 TimToady a mumble b --> Increase is obviously b > a
16:48 TimToady Downward,Same,Upward maybe
16:49 masak More,Same,Less :)
16:49 TimToady can be misready as a 'is more than' b
16:49 masak right.
16:49 TimToady misread, even
16:49 dalek rakudo/ng: e2c5052 | jonathan++ | src/core/ (2 files):
16:49 dalek rakudo/ng: Rip out an accidentally committed fail.
16:49 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/e​2c505229684256972bfbbcc72c690b81a5e82c7
16:50 masak Trumps,Ties,Folds
16:50 TimToady Trend::Upward
16:50 TimToady if 2 values can make a trend...
16:51 TimToady but the graphical slope is a good way to disambiguate the metaphor, anyway
16:51 jnthn TimToady: Hmm. Question.
16:51 jnthn TimToady: In hash.t we have:
16:51 jnthn isa_ok(%hash1, Hash);
16:51 iblechbot joined #perl6
16:52 jnthn TimToady: Thing is, Hash is now a role (so we can make it parametric).
16:52 jnthn TimToady: Is this test wrong, or should .isa me smart enough to pun a role?
16:52 jnthn *be
16:52 jnthn And ask if the object is an instance of the punned class?
16:52 TimToady I doubt .isa should be in the business of anything other than introspection
16:52 jnthn Or should the test just do %hash1 ~~ Hash
16:53 TimToady .does really
16:53 TimToady since .does is supposed to encompass .is
16:54 jnthn OK, will change. thanks.
16:54 TimToady at least I think it's still specced that way
16:54 TimToady it's a more specific test than ~~, so perhaps faster
16:55 pugs_svn r29649 | jnthn++ | [t/spec] Check .does rather than using isa_ok for Hash test.
16:56 jnthn oh, gah, there's more instances.
16:56 TimToady and ~~ has to dispatch to ACCEPTS(Any:U:) before it can decide to do .does
16:56 TimToady though again, we know that types are types at compile time
16:56 TimToady so it could be optimized away
16:59 pugs_svn r29650 | jnthn++ | [t/spec] More s/isa/does/ in hash.t.
17:06 dalek joined #perl6
17:11 masak http://news.perlfoundation.org/2010/0​2/2010_grant_proposal_enhancing.html
17:11 dalek joined #perl6
17:12 masak that grant proposal piques my interest, though I don't feel knowledgeable enough to judge whether it'd benefit Perl 6.
17:24 mberends It would be interesting to see what diakopter++ thinks of the alternative proposal, since he has a very good understanding of pattern languages and regex engines. Bottom line: would it make the ultimate Christmas earlier or later?
17:26 masak I don't see how it'd make it come earlier. :)
17:26 masak but it might make it more interesting or something.
17:26 mberends From a grant perspective, it does not feel right to make an award retroactively for past and incomplete work.
17:26 masak I agree we should hear what diakopter says.
17:26 colomon joined #perl6
17:26 masak and other type-fu people.
17:27 masak mberends: oh, is it for past and incomplete work? I didn't read it that carefully.
17:29 mberends imho a grant should be for a finite but complete deliverable, including implementation.
17:30 colomon TimToady: you mentioned something the other day about ?$a returning something that does Boolean rather than just a Bool?
17:30 masak mberends: aye. I agree.
17:31 masak mberends: maybe write something to that effect in the comments section of that post?
17:31 mberends oki
17:31 TimToady colomon: just pointing out that + and ~ are casts to roles, and maybe ? is similar
17:32 TimToady except there aren't a lot of Bool types
17:32 colomon TimToady: ah, so that's something that would make sense but is not spec'd at all yet, then?
17:32 colomon I was just pondering if I should make my spectests more encompassing...
17:33 masak time to go home and do laundry/cleaning/baking :) &
17:33 dalek rakudo/ng: 2d5c300 | jonathan++ | src/core/Hash.pm:
17:33 dalek rakudo/ng: Start to fill our Hash!STORE. Gets us a bit further into hash.t.
17:33 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/2​d5c300cbcff5636bc5ecf50b30b7d5c375d48a5
17:34 * colomon wonders why the Wendy's parking lot is so crowded at the moment.
17:42 colomon \o/   # came up with a Str.bool which makes spectest pass.
17:45 jnthn \o/ # now up to test 12 in hash.t
17:47 jnthn TimToady: What would you expect (%hash5{"one", "three"}).WHAT to be?
17:47 jnthn TimToady: That is, what should a slice from a Hash give back?
17:48 colomon jnthn: should I expect t/spec/S02-whitespace_and_comments/minimal-whitespace.t to fail for the moment?
17:48 jnthn colomon: oh, yes, sorry.
17:48 jnthn colomon: Meant to mention that.
17:48 colomon "Odd number of elements found where hash expected" us the error.
17:48 colomon okay.
17:48 jnthn It was a bit bogus that we passed it before anyway :-)
17:49 colomon oooo, racing patches here.  ;)
17:50 jnthn :-D
17:51 dalek rakudo/ng: 0a9c12d | jonathan++ |  (3 files):
17:51 dalek rakudo/ng: Split up Enum (immutable) and Pair (mutable).
17:51 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/0​a9c12d1f58e0ad89092c704ef7e6851fb6ee7d2
17:51 dalek rakudo/ng: 815a825 | jonathan++ | src/core/Hash.pm:
17:51 dalek rakudo/ng: Teach Hash's STORE about Enum (and thus Pair).
17:51 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/8​15a825f25b79ef3ee0a1e2018a3edfc0c97dd2e
17:51 dalek rakudo/ng: 73f7929 | jonathan++ | src/ (2 files):
17:51 colomon good thing we don't have hour-long spectests at the moment...
17:51 dalek rakudo/ng: Implement infix => operator for pair construction.
17:51 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/7​3f7929d505eca6c452115264982d673eb65aa1f
17:51 colomon ay ay ay!
17:51 jnthn colomon: I've hit the point of realizing pairs need some attention before I go much further with hashes. :-)
17:51 colomon oh, okay, that's all the stuff I just pulled a second ago.
17:51 colomon :)
17:52 uniejo joined #perl6
17:53 TimToady jnthn: I would expect it to return a Parcel, like pretty much anything else that can return a list
17:53 * colomon kind of hopes to shock pmichaud with how much progress has been made by the time he gets back.  :)
17:54 jnthn colomon: :-)
17:54 jnthn colomon: wfm
17:54 jnthn TimToady: OK, thanks.
17:57 __rnddim__ joined #perl6
18:02 dalek rakudo/ng: c0ae54d | (Solomon Foster)++ |  (2 files):
18:02 dalek rakudo/ng: Add Str.pm and implement Str.Bool.
18:02 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/c​0ae54dcbd8bded4bfdc5ebe491ef61e84fd18c9
18:02 dalek rakudo/ng: 654b789 | (Solomon Foster)++ | src/core/Hash.pm:
18:02 dalek rakudo/ng: Merge branch 'ng' of git@github.com:rakudo/rakudo into ng
18:02 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/6​54b789687ffc194a60f4decdb14399d804b4c34
18:02 dalek rakudo/ng: 2000083 | (Solomon Foster)++ |  (6 files):
18:02 dalek rakudo/ng: Merge branch 'ng' of git@github.com:rakudo/rakudo into ng
18:02 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/2​000083630a4de7f5cad4a4eceeddf41baf6a930
18:02 colomon joined #perl6
18:02 pugs_svn r29651 | colomon++ | [t/spec] Add tests for Bool.Bool and ?Bool.
18:02 colomon oh, connected long enough to get back on here.
18:03 colomon Wendy's wi-fi is proving spotty today (from their parking lot)
18:03 jackyf joined #perl6
18:04 mssm joined #perl6
18:04 pugs_svn r29652 | colomon++ | [t/spec] Tests to verify that ?|, ?&, and ?^ return Bool.
18:07 colomon ng: say 5.Str
18:07 p6eval ng 73f792: OUTPUT«5␤»
18:07 colomon ng: say "5".Int
18:07 p6eval ng 73f792: OUTPUT«Method 'Int' not found for invocant of class 'Perl6Str'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
18:09 lichtkind joined #perl6
18:11 pugs_svn r29653 | colomon++ | [t/spec] Tests for Int.Bool and ?Int.
18:14 colomon rakudo:  say ?'0'
18:14 p6eval rakudo 1d4928: OUTPUT«0␤»
18:14 colomon rakudo: say ?'1'
18:14 p6eval rakudo 1d4928: OUTPUT«1␤»
18:15 jnthn \o/
18:16 colomon \o/ ?
18:16 pugs_svn r29654 | colomon++ | [t/spec] Tests for Str.Bool and ?Str.  More tests would probably be useful.
18:17 jnthn colomon: Getting colonpair back in properly and almost got it working.
18:17 colomon \o/ indeed
18:17 colomon !
18:23 colomon rakudo: say ?(0.Num)
18:23 p6eval rakudo 1d4928: OUTPUT«0␤»
18:24 colomon That's some blazing speed there, p6eval!  (or is it just a bad connection on my end?)
18:25 ash_ joined #perl6
18:25 dalek rakudo/ng: f2368bc | (Solomon Foster)++ | t/spectest.data:
18:25 dalek rakudo/ng: Add new S32-str/bool.t to spectest.
18:25 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/f​2368bca067c6f35e8df0133cbe6c0f0cd58ff6a
18:25 * jnthn should remember to stop hacking and eat at some point :-)
18:26 ash_ food is good
18:26 ash_ i rather enjoy eating food
18:26 colomon same here.  :)
18:26 __rnddim__ what is this "food"? Where I come from, we eat noms.
18:27 colomon where I come from, we nom food.
18:27 __rnddim__ I've heard of people who nom noms! (they're weird...) :)
18:28 ash_ my dog nom's noms and noms most things that aren't edible
18:29 ash_ like the power cable to my laptop...
18:29 * __rnddim__ want noms to nom now.
18:31 jnthn ng: my $foo = :x(42); say $foo.WHAT
18:31 p6eval ng 200008: OUTPUT«No applicable candidates found to dispatch to for '&infix:<=>'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
18:31 jnthn That one works now :-)
18:32 ash_ thats a pair right?
18:32 jnthn aye
18:32 jnthn ng up to this point has only really cared for pairs in argument lists though
18:32 jnthn Rather than thinking of them as pair objects that in argument lists become named parameters.
18:33 jnthn (We do the transform at compile time, so we emit a call with named args, mind.)
18:33 jnthn OK, let's see if this thing spectests now I did those bunch of changes...
18:35 colomon "ng 200008" -- some software is on version 2010 by now, but Perl 6 is literally 100,000 years ahead of them...
18:35 jnthn yay, tests are no worse.
18:35 colomon \o/
18:37 payload joined #perl6
18:39 ash_ joined #perl6
18:41 colomon ng: say "5" + "4"
18:41 p6eval ng 200008: OUTPUT«9␤»
18:41 jnthn Though sadly auto-pairs failed.
18:41 jnthn Trying to fix.
18:41 colomon ng: say "5".Num
18:41 p6eval ng 200008: OUTPUT«Method 'Num' not found for invocant of class 'Perl6Str'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
18:41 colomon ng: say +"5"
18:41 p6eval ng 200008: OUTPUT«5␤»
18:42 ash_ is 200008 the git hash for the current commit?
18:43 jnthn ash_: Yeah!
18:43 ash_ sweet
18:44 jnthn grrr...tsssk...why do I have to wash up before I cook dinner. :-/
18:45 colomon ash_: it's actually not the current commit, but p6eval hasn't yet caught up.  enjoy it while it lasts.  :)
18:46 ash_ alrighty, will do
18:47 ash_ how does it auto update? is it on a cronjob to git pull? or does it have a github commit hook that tells the server to re-compile? (i assume not if its not completely up to date)
18:48 jnthn ash_: cronjob I think
18:49 colomon joined #perl6
18:49 takadonet1 joined #perl6
18:50 takadonet1 hey everyone
18:50 jnthn hi takadonet1
18:50 colomon o/
18:51 takadonet1 I normally don't login into #perl6 on the weekend but I just checked the commits for the ng branch and WOW! Good job jnthn and colomon!
18:52 * colomon blushes
18:52 colomon and jnthn++ for the key insight into understanding where I was going wrong...
18:54 Chillance joined #perl6
18:55 ash_ i wonder if you'd ever be able to do all of perl 6 in nqp-rx or if you'd need something else... that would be cool cause if you could implement nqp-rx in anything then you could also  run perl 6
18:56 colomon My boy is stirring in the backseat and my MBP battery is running low, probably won't be on here for too much longer this afternoon, as I plan on trying to take him to the open contradance band jam once we get home.
18:56 jnthn Cool :-)
18:57 jnthn colomon++ # nice commits today!
18:57 jnthn colomon: Just landed another couple. :-)
18:58 takadonet1 cya everyone Monday morning
18:58 colomon He loves traditional-ish music and if things go really well I might even get to play a little.  (Not that I know much contra music, but I think they borrow from Irish dance music a good bit, and that I know.)
18:58 colomon \o/ on more commits!
18:58 pmurias ash_: running the Perl 6 *compiler* on anything would give us much
18:59 dalek rakudo/ng: 267a6ea | jonathan++ | t/spectest.data:
18:59 dalek rakudo/ng: We now pass S12-construction/autopairs.t again.
18:59 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/2​67a6eae379ffe94a5397989f83798b0fe4d6f1b
18:59 dalek rakudo/ng: 68f1289 | jonathan++ | src/Perl6/ (2 files):
18:59 dalek rakudo/ng: Get our pair handling more in line with how it should be. We also handle more cases of colonpair, and more correctly to boot, and our parsing of them looks like STD. A little refactor so we can trivially get auto-pairs like :$!x and :$.x right too (in theory, untested).
18:59 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/6​8f1289d7e00ce970f87a073df3872a8a5181033
19:00 jnthn ash_: I've been thinking along those lines too, fwiw. :-)
19:00 colomon I think it would be very hard to do, say, the numeric bits in nqp-rx at the moment.
19:01 ash_ ng: <(*+*)*(*+* +*/*) **** ** * * *+*+*/* **** ** * * *+*-*/* **** ** * * *+* ****-* **** ** * * *-(*-*/ *) ** (*+*/*) **** ** * * *-* **** ** * * *-*+*/* **** ** * * *+* **** ** * * *-* * * ***((* - */*) ** * * *-*/*) * * **** ** * * *+*/* ****-* ***(*-* /*)**(*+*/*) * * ***((*-*/*)** * * *-*/*) * * **** ** * * *+*/* **** ** * * *+*+*/*-* * *>.split(<***>).map: {eval("(* ** *+*+*-*/*+$_)(<* * *>)").chr\.print} # :-( moritz obfu doesn't wor
19:01 p6eval ng f2368b: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (src/stage0/Regex-s0.pir:907)␤»
19:01 colomon being able to call down to Parrot for them is a huge help.
19:03 ash_ i know a suggest from coke in #parrot was to give nqp some way of overiding vtables from within nqp, so you don't have to drop down to pir, not sure if that would help rakudo much though, just kinda thinking
19:05 ash_ the dependency chain of things is kinda interesting, rakudo needs nqp-rx needs nqp needs pge needs imcc
19:06 jnthn nqp-rx doesn't need nqp and pge now - it's bootstrapped. :-)
19:07 ash_ ah, i didn't know that, i thought it needed nqp still
19:08 ash_ stage 0 just uses pir then?
19:09 jnthn Yeah
19:13 ash_ how did pmichaud write stage 0? there are some very seemingly random bits in it, were they made with something else?
19:13 jnthn ash_: stage0 is just the saved, generated output
19:14 ash_ oh, i see a build/gen_bootstrap.pl
19:14 cognominal joined #perl6
19:15 ash_ hmm
19:15 ash_ that doesn't do much
19:15 ash_ i am just a bit baffled how all of that works
19:15 jnthn I'm not completely sure in details; you'd have to ask Pm. :-)
19:16 jnthn dinner break :-)
19:21 cognominal joined #perl6
19:28 colomon joined #perl6
19:37 eternaleye joined #perl6
19:40 cognominal joined #perl6
19:45 araujo joined #perl6
19:53 jnthn ng: sub foo($a, $b) { $a.WHAT ~ $b.WHAT }; say foo(1,2)
19:53 p6eval ng 267a6e: OUTPUT«0Int()␤»
19:53 jnthn wtf.
19:53 jnthn ng: sub foo($a, $b) { ~$a.WHAT ~ ~$b.WHAT }; say foo(1,2)
19:53 p6eval ng 267a6e: OUTPUT«Int()Int()␤»
19:55 dalek joined #perl6
19:57 dalek rakudo/ng: 7ff29e3 | jonathan++ | t/spectest.data:
19:57 dalek rakudo/ng: Another test that we can pass now.
19:57 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/7​ff29e33f47ece74e0cc32b0eed633168e703d24
19:59 ash_ did ~ not stringify both sides?
19:59 ash_ in your above foo
20:00 jnthn ash_: Not quite sure what's going on.
20:01 jnthn ah
20:01 jnthn ng: say 1.WHAT ~ 2.WHAT
20:01 p6eval ng 267a6e: OUTPUT«0Int()␤»
20:03 ash_ ng: say 1.5.WHAT ~ 2.WHAT
20:03 p6eval ng 267a6e: OUTPUT«Multiple Dispatch: No suitable candidate found for 'concatenate_str', with signature 'PSP->P'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
20:03 __rnddim__ that's weird. It says Int()Int() in my local copy of rakudo.
20:03 __rnddim__ rakudo: say 1.WHAT ~ 2.WHAT
20:03 p6eval rakudo 1d4928: OUTPUT«Int()Int()␤»
20:03 jnthn oh, it was just using the pir op directly :-/
20:04 jnthn __rnddim__: This is from the ng branch rather than Rakudo.
20:04 jnthn erm
20:04 jnthn rather than master I meant.
20:04 __rnddim__ ah. Ok.
20:05 ash_ ng is a kinda fork of rakudo to rework its innards
20:07 ash_ jnthn: does that msg help any? when i did 1.5.WHAT
20:08 ash_ weird...
20:08 jnthn ash_: I think I've got it fixed.
20:08 ash_ look at this:
20:08 ash_ ng: say (1.5.WHAT).Str
20:08 jnthn Commit coming.
20:08 p6eval ng 267a6e: OUTPUT«Type objects do not have state, but you tried to access attribute $!numerator␤current instr.: 'perl6;Rat;Num' pc 271815 (src/gen/core.pir:27275)␤»
20:08 ash_ ng: say 1.WHAT.Str
20:08 p6eval ng 267a6e: OUTPUT«Int()␤»
20:10 jnthn ash_: Hmm...weird-ish.
20:15 dalek rakudo/ng: 273ce82 | jonathan++ | src/ (3 files):
20:15 dalek rakudo/ng: Move infix:<~> to the core setting; also remove the :pirop mention from the grammar (we never actually used the PIR version of the op).
20:15 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/2​73ce825102b052ad7f6cbe1dd6d0aaa92791f3f
20:15 ash_ i guess the 1.5.WHAT.Str has something to do with rat's
20:15 ash_ not the ~
20:17 jnthn ash_: I think so, yes.
20:18 pugs_svn r29655 | jnthn++ | [t/spec] Some corrections, along with a little re-fudging of S02-literals/pairs.t.
20:26 dalek rakudo/ng: 3c1bb0a | jonathan++ | src/core/operators.pm:
20:26 dalek rakudo/ng: Add WHAT(...) - wants to be a macro in the future, when we support them.
20:26 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/3​c1bb0aef7db312fb885350841496ae9a69fafe7
20:26 dalek rakudo/ng: bcd6689 | jonathan++ | t/spectest.data:
20:26 dalek rakudo/ng: Two more tests that we can pass again.
20:26 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/b​cd6689bf2613c4c87fde1ef68fb77f84cfc40a6
20:34 justatheory joined #perl6
20:35 payload joined #perl6
20:43 dalek rakudo/ng: 951c71c | jonathan++ |  (3 files):
20:43 dalek rakudo/ng: Move most of the things in Pair to Enum, which Pair inherits from. Bring in various things from master, including ACCEPTS, which has been corrected to meet the latest spec.
20:43 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/9​51c71cfc4f5aaa65c07e114297a132d6c2ff9f8
20:43 dalek rakudo/ng: 9b6f83b | jonathan++ | t/spectest.data:
20:43 dalek rakudo/ng: We now pass S03-smartmatch/any-pair.t.
20:43 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/9​b6f83b91094b2ab6bfecb43ca39b581cbdd6b12
20:51 _Jedai_ joined #perl6
20:55 dalek rakudo/ng: 2849ae6 | jonathan++ | src/builtins/Mu.pir:
20:55 dalek rakudo/ng: s/Iterator/iterator/.
20:55 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/2​849ae6bfe101de267f6febd2b0573eec7870cb0
21:12 jnthn colomon: I've added back a few basic IO bits - the iterationy things need a good fixing/cleanup though before it's really usable. Figure you know that stuff better than I, so feel free to hack on it if you like. I'm done for today. :-)
21:12 jnthn mberends: I think you asked for open (or slurp) this morning...you can haz it now. :-)
21:12 dalek rakudo/ng: 137e8f8 | jonathan++ | src/core/IO.pm:
21:12 dalek rakudo/ng: Implement basic open support in the core setting.
21:12 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/1​37e8f82470eff15e06dd206fe6b67a435102880
21:12 dalek rakudo/ng: 6a82784 | jonathan++ | src/core/IO.pm:
21:12 dalek rakudo/ng: Add back close and slurp functions, re-written into Perl 6.
21:12 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/6​a82784789cfef43db2288a56af85581c2169357
21:13 uniejo Now ng fails on me: make: *** No rule to make target `src/core/Enum.pm', needed by `src/gen/core.pm'.  Stop.
21:14 jnthn ah, hrovno
21:14 mberends jnthn: wow! I waz lookin at howto put back open, an U haz dun it :-)
21:15 nwc10 joined #perl6
21:15 nwc10 jnthn: so this is what happens when you have a good rest? http://github.com/rakudo/rakudo/commits/ng/  :-)
21:16 jnthn nwc10: This is what happens *after* I have a good rest. :-)
21:17 jnthn (good rest)++
21:17 jnthn Wow...I did *that* many commits?!
21:18 jnthn uniejo: Erm. I'm kinda confused...git seems to think that file exists and is under version control.
21:18 nwc10 well, the computer says that you did :-)
21:18 nwc10 will ng merge back to master soon?
21:18 jnthn OH NO
21:18 nwc10 OH NO?
21:18 jnthn Git has it as enum.pm
21:19 nwc10 ah. two conversations.
21:19 jnthn When it should be Enum.pm
21:19 jnthn nwc10: I think the plan is to do so next week.
21:19 nwc10 ah right.
21:20 nwc10 good luck with that. well, I hope you don't need luck. but if you do, ...
21:20 jnthn :-)
21:21 nwc10 left #perl6
21:21 jnthn uniejo: I'm not quite sure what I've done. I am quite sure it only affects you folks on pesky operating systems with csae-sensitive file systems. :-)
21:23 jnthn uniejo: Try now. :_)
21:23 jnthn *:-)
21:24 dalek rakudo/ng: e0970e3 | jonathan++ | src/core/enum.pm:
21:24 dalek rakudo/ng: Try to fix Enum.pm issue (part 1).
21:24 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/e​0970e3578b2f633f2bcb8d530a3080ff6f1a71b
21:24 dalek rakudo/ng: aa0a084 | jonathan++ | src/core/Enum.pm:
21:24 dalek rakudo/ng: Try to fix Enum.pm issue (part 2).
21:24 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/a​a0a0844463277cf2ce53ec80277645503dcfa02
21:24 huf i'm going to make an fs that confuses random characters on every remount, to point out the insanity of case-insensitive fs-es ;)
21:24 * uniejo is still looking for command to ucall /vmlinuz    ;-)
21:25 jnthn huf: You make insanity out all bad. :-)
21:28 * uniejo is now compiling (on slow netbook)
21:30 uniejo jnthn: Looks good. Thanks.
21:32 jnthn \o/ Thanks, uniejo++
21:33 jnthn mberends: If you want to do other bits on IO, you could always put back the sockets. :-)
21:36 tlb joined #perl6
21:38 __rnddim__ how does one convert decimal numbers to hex in perl?
21:40 lichtkind jnthn: cheers, why uses NQP  := instead of = ?
21:42 muujtabaalboori joined #perl6
21:43 muujtabaalboori left #perl6
21:44 hello joined #perl6
21:44 sjohnson __rnddim__: do you know what they are in Perl 5?
21:44 sjohnson i had trouble finding the Perl 6 equivs, but they are probably around
21:45 muujtabaalboori joined #perl6
21:45 __rnddim__ Tried 33.hex, 33.Hex, hex(33), and so on. 0x33 works, but I need the other way round.
21:45 __rnddim__ I suppose if I knew p5 I would have a better idea :)
21:46 __rnddim__ \me thinks of how he skipped learning perl 5 because perl 6 looks better.
21:46 * __rnddim__ thinks of how he skipped learning perl 5 because perl 6 looks better.
21:46 * __rnddim__ apologizes for the wrong slash (stupid LaTeX)
21:47 muujtabaalboori left #perl6
21:47 mberends jnthn: I just verified that .eof and .get also work :-) I'll try to puzzle sockets out (but don't know how well that will go)
21:50 jnthn __rnddim__: I don't remember how to do that off the top of my head, sorry.
21:50 jnthn lichtkind: NQP does not support assignment, only binding.
21:51 jnthn lichtkind: Only providing binding keeps the implementation simpler and makes the code a bit easier to analyse and reason about.
21:51 lichtkind jnthn: ah thatswhy thanks and why ? restriction on purpose?
21:51 lichtkind ah
21:51 __rnddim__ ah well, its not important now.
21:51 jnthn Yes, intentional.
21:51 jnthn mberends: Cool! I think iteration doesn't quite work though.
21:51 jnthn mberends: But I'm behind on catching up with the new API.
21:53 jnthn Shouldn't be too hard to get it back in shape, anyway.
21:53 * mberends just added a long comment to http://news.perlfoundation.org/2010/0​2/2010_grant_proposal_enhancing.html
21:53 jnthn Taking the PIR versions of chdir/unlink/rmdir and re-working those into the setting is also a relatively straightforwardish task.
21:54 jnthn (find the PIR versions in src/old/builtins/io.pir, but we should really put these back in Perl 6 with pir::op style things as needed).
21:55 mberends yes it's in the same area, probably a good learning exercise to have a crack at it :)
21:56 jnthn <pointing with big finger> Your ng needs you!
21:59 hercynium joined #perl6
22:00 * mberends has no idea what jnthn means ;)
22:01 jnthn mberends++ # good comments
22:03 kensanata joined #perl6
22:19 snearch_ joined #perl6
22:22 cognominal joined #perl6
22:30 __rnddim__ I would love, for once, to see a programming language that can handle hex fractions, such as A.3 or 6.2A.
22:30 Helios joined #perl6
22:30 __rnddim__ Just for fun, of course :)
22:36 * __rnddim__ checks his hexclock. It says the time is 9_BA (roughly in the PST area)
22:37 Helios joined #perl6
22:41 mberends pugs: say :16<a.a>
22:41 p6eval pugs: OUTPUT«10.625␤»
22:42 mberends pugs: say :16<A.3>; say :16<6.2A>;
22:42 p6eval pugs: OUTPUT«10.1875␤6.1640625␤»
22:42 jnthn rakudo: say :16<a.a>
22:42 p6eval rakudo 1d4928: OUTPUT«10␤»
22:43 jnthn :-/
22:43 mberends pugs++
22:43 jnthn Indeed.
22:43 jnthn of course...
22:43 jnthn ng: say :16<a.a>
22:43 p6eval ng aa0a08: OUTPUT«Confused at line 1, near "say :16<a."␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (src/stage0/HLL-s0.pir:328)␤»
22:43 jnthn :-)
22:43 jnthn Todo!
22:44 * mberends ponders unlink
22:44 snearch_ joined #perl6
22:45 __rnddim__ ng: say :16<16D.4>
22:45 p6eval ng aa0a08: OUTPUT«Confused at line 1, near "say :16<16"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (src/stage0/HLL-s0.pir:328)␤»
22:45 5EXAAB3AV joined #perl6
22:46 __rnddim__ pugs: say :16<16D.4>
22:46 p6eval pugs: OUTPUT«365.25␤»
22:46 __rnddim__ conclusion: must get pugs!
22:48 ascent_ joined #perl6
22:53 __rnddim__ ng: say :16<DEAD>
22:53 p6eval ng aa0a08: OUTPUT«Confused at line 1, near "say :16<DE"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (src/stage0/HLL-s0.pir:328)␤»
22:54 __rnddim__ rakudo: say :16<DEAD>
22:54 p6eval rakudo 1d4928: OUTPUT«57005␤»
22:55 __rnddim__ one ought to fix that in ng (maybe me, if I feel like learning another language)
22:56 jnthn __rnddim__: Feel free to have a crack at it. :-)
22:57 __rnddim__ all right... First off, do I use the Googel or the Yayhoo! operating system? :)
22:58 jnthn :-)
22:58 jnthn Rakudo will build on any of Windows/Linux/OSX...
22:59 __rnddim__ I know, I have it from the Fedora repositories (probably doesn't use ng though)
23:00 payload joined #perl6
23:01 __rnddim__ I'll take a crack at it later. I've been sitting in front of the computer since 9:30 (about) and now it's 15:00.
23:01 jnthn Ah, certainly time for a break. :-)
23:01 __rnddim__ I'm only quitting because I can't see through all the blood in my eyes :)
23:01 k23z__ joined #perl6
23:03 lichtkind wow  the parrot guys are really busy
23:08 payload joined #perl6
23:12 mberends hmm. The unlink() in master slurped a list of string file names. S32 calls it Path.remove().  Spectests do unlink($filename). I'll go with spectests FTW
23:14 jnthn Sounds like a step towards consistency. :-)
23:15 mberends deleting multiple files in one call is overkill, and what would the status be if you deleted some and not others?
23:18 jnthn I guess if you really want that there's unlink(all(@files)) :-)
23:19 jnthn Anyway, wfm.
23:19 mberends :-)
23:27 patspam joined #perl6
23:45 drbean joined #perl6
23:51 lichtkind mberends++
23:51 colomon joined #perl6
23:51 lichtkind thanks and good night :)
23:51 mberends good night lichtkind :)
23:52 lichtkind mberends: if you want to make more on the wiki we talk tomorrow :)
23:52 mberends good idea
23:59 colomon ;

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

Perl 6 | Reference Documentation | Rakudo