Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-08-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:05 dalek rakudo/nom: 6e78299 | tadzik++ | src/ (3 files):
00:05 dalek rakudo/nom: Apply the doc trait only for the documented objects
00:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6e78299552
00:06 tadzik jnthn: there :)
00:07 jnthn yay :)
00:08 pmichaud \o/
00:08 jnthn Grr. Getting a GC-ish segfault.
00:11 mkramer1 joined #perl6
00:20 huf joined #perl6
00:22 jnthn oh...darn it.
00:22 jnthn Parrot hashes deep clone, don't they...
00:25 pmichaud yes, they do.   a shallow clone requires a manual binding
00:25 pmichaud afk, dinner
00:27 jnthn Guess a bit of bloody consistency with RPA is too much to ask for :/
00:27 jnthn But no, I have to waste more time on stupid decisions.
00:38 dalek rakudo/nom: b1c1886 | jonathan++ | src/binder/bind.c:
00:38 dalek rakudo/nom: Unlike arrays, Parrot Hashes deep clone, which does the very wrong thing if you just want shallow. Fixes nested signatures involving nameds.
00:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b1c1886124
00:38 dalek rakudo/nom: 0d9382f | jonathan++ | src/core/Mu.pm:
00:38 dalek rakudo/nom: Mu.Capture, which coerces to a Capture based on the public attributes.
00:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0d9382fdfe
00:38 dalek rakudo/nom: 65f9068 | jonathan++ | t/spectest.data:
00:38 dalek rakudo/nom: Run S06-signature/tree-node-parameters.t
00:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/65f90688a2
00:38 dalek rakudo/nom: 5972bb9 | jonathan++ | src/core/Any.pm:
00:38 dalek rakudo/nom: Add eqv case for Capture. Oddly, if you try and eqv the same Capture with itself it comes back as False; I fear some list nommage is going on somewhere.
00:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5972bb9da5
00:38 sorear jnthn: welcome to my experience with Parrot
00:39 sorear TimToady: what's non-simple about try's catch?
00:40 jnthn sorear: Yeah. Well, I kinda don't have time to write a VM at the moment too. :)
00:40 jnthn Though I look forward to getting Rakudo running on more places :)
00:40 jnthn git st
00:40 jnthn oops
00:42 dalek rakudo/nom: 3aafdc9 | jonathan++ | NOMMAP.markdown:
00:42 dalek rakudo/nom: Update nommap.
00:42 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3aafdc9be1
00:44 tadzik oh, pmichaud, I see you're assigned to Buf. You may want to check the nom-buf branch
00:45 [Coke] argh. I keep running a check out t/spectest.data, and before it finishes, more commits roll in. ;)
00:45 [Coke] s/out/of/
00:47 jnthn I promise to sleep soon. But that still leaves night-owls and those in other timezones ;-)
00:47 dalek rakudo/nom: e084f6a | jonathan++ | .gitignore:
00:47 dalek rakudo/nom: Add Pod/To/Text.pir to .gitignore.
00:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e084f6ae37
00:49 whiteknight joined #perl6
00:55 dalek rakudo/nom: 46c05e2 | jonathan++ | src/binder/bind.c:
00:55 dalek rakudo/nom: Unbust hash part of |$c binding in signatures.
00:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/46c05e2994
00:55 dalek rakudo/nom: e606577 | jonathan++ | NOMMAP.markdown:
00:55 dalek rakudo/nom: Another nommap update.
00:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e606577c00
00:55 tokuhirom joined #perl6
01:03 jnthn sleep &
01:04 noganex joined #perl6
01:07 colomon joined #perl6
01:14 sorear o/ colomon
01:16 revdiablo joined #perl6
01:46 thou joined #perl6
01:47 Moukeddar joined #perl6
02:13 jaldhar joined #perl6
02:14 tokuhirom joined #perl6
02:18 huf joined #perl6
02:46 envi joined #perl6
02:46 colomon \o
02:51 pmichaud 00:44 <tadzik> oh, pmichaud, I see you're assigned to Buf. You may want to check the nom-buf branch
02:51 pmichaud I'm only the current listed responsible party... if you want to list yourself, that's fine.
02:53 pmichaud basically I'm just committing to do it if nobody else does :)
02:58 perlet joined #perl6
03:01 sorear o/ colomon
03:01 colomon \o sorear
03:02 sorear so I'm thinking about how to make general 'CATCH' work in niecza
03:02 sorear and I'm a little bogged down in subtleties of SIMPLECATCH and co
03:03 sorear implementing CATCH using the spec's rewrite seems quite insane
03:03 sorear I'm thinking it needs to use a helper function, perhaps largely in C# land
03:23 Su-Shee_ joined #perl6
03:50 sorear What happens if a control exception is generated when there is an exception pending, or vice versa?
03:50 sorear e.g. LEAVE { next; }
03:56 sorear Where is everyone?
03:56 jasonmay boston
03:59 sorear :(
04:00 sorear I can't get anything done like this :p
04:01 thou joined #perl6
04:14 TimToady you'd think it was a Friday night or somethin'
04:14 TimToady LEAVE is not inside an exception
04:15 TimToady it's a stack unwind thing
04:16 sorear what happens if LEAVE { next } is reached while unwinding after a CATCH?
04:16 TimToady but in general, I think control exceptions probably trump pending exceptions
04:16 TimToady on the assumption that someone knows what they're doing
04:17 TimToady the point of unwinding the stack on an exception is to get to a stable state
04:17 TimToady and maybe they know which stable state they want better than we do
04:17 TimToady doubtless it can also be abused
04:17 TimToady that's just my gut reaction
04:17 TimToady open to arguments the other way
04:20 sorear if a control exception is reached during unwind, should that abort the unwind?
04:21 TimToady that's what I thought I just said
04:21 sorear there are a lot of confusing interactions here
04:21 sorear TimToady: sorry, I didn't understand that
04:21 sorear now I do
04:21 TimToady but the viewpoint of the current unwind state is more likely to know where the control target is than if we complete the unwind and then try to do the control
04:21 sorear what if the user has a control operator in a CATCH?
04:22 TimToady same deal, I think, except that the stack may be more deeply wound at that point
04:22 TimToady since the unwind hasn't happened yet
04:23 TimToady but a CATCH with a goto in it is no worse really than a try that throws away all exceptions
04:23 kaare_ joined #perl6
04:24 TimToady that is, CATCH { goto Label } is no different from try {} goto Label if $!
04:24 TimToady assuming the label is lexotically known
04:26 TimToady it's possible, that there should be some controls on it to keep people from hurting themselves, but it's not clear what nature those controls would be
04:26 TimToady other than just saying, "You tried to do a control while unwinding, and now I'll unwind harder"
04:26 TimToady which seems...a bit stiff
04:28 sorear TimToady: what dynamic scope are LEAVE blocks executed from?
04:29 TimToady they are in the dynamic scope of their OUTER
04:29 TimToady that scope is not officially left until after LEAVE, and probably POST as well
04:30 TimToady just the flipside of what we were talking about with PRE and ENTER
04:32 Moukeddar joined #perl6
04:35 uvtc joined #perl6
04:36 TimToady it would probably be very bad style to go back into that dynamic scope with a control exception though, without reentering from the top
04:44 sorear TimToady: what if a regular or control exception is generated from a CONTROL block?
04:44 * sorear ponders how to implement LEAVE blocks with re-entry capability.
04:47 pmichaud nom developers:  Please don't push commits that leave new spectest regressions for others to have to find + deal with.  Or, if you do, at least leave a note about it in the commit log.  Otherwise the rest of us (i.e., me) spend hours trying to track down spectest failures that have nothing to do with the patch we just applied.  kthxbye
04:48 sorear pmichaud: what about developers of other compilers who occasionally push changes to roast?
04:48 pmichaud changes to roast I can deal with.
04:49 pmichaud I don't expect people making modifications to roast to have to test them against rakudo.
05:00 TimToady sorear: in that case the new exception takes precedence over the old one
05:04 dalek rakudo/nom: 11d46b3 | pmichaud++ | src/Perl6/Actions.pm:
05:04 dalek rakudo/nom: More hyper metaop code, still not complete.
05:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/11d46b3af3
05:14 TimToady sorear: As my father used to say, "It's not what you do, it's what you do next."
05:15 george_z0rwell joined #perl6
05:16 p6eval joined #perl6
05:17 kjeldahl joined #perl6
05:17 jdhore joined #perl6
05:17 cooper joined #perl6
05:17 kemono joined #perl6
05:18 jnthn joined #perl6
05:27 lue > use Numbers::Ordinal;
05:27 lue "load_bytecode" couldn't find file 'Numbers/Ordinal.pbc'
05:28 lue does anyone know of this? [Numbers::Ordinal is install in ./perl6/lib/Numbers/ as Ordinal.pm6 and Ordinal.pir]
05:28 lue *installed
05:30 lue *~/perl6/lib ...
05:40 mberends lue: If you made the directories by hand, you may need ~/.perl6 instead of ~/perl6
05:40 mberends lue: unsure, but try copying Ordinal.pir to ~/.perl6/lib/Numbers/Ordinal.pir
05:41 mberends and some versions of Rakudo would not open the .pir file unless the .pm file was also present in the same dir
05:56 lue I'm sorry, I just realized I mean ~/.perl6 , but type ./perl6 instead :/
05:56 lue [I'm using nom by the way]
05:56 lue .oO(why am I not typing the past tense today? *meant *typed)
06:21 Mowah joined #perl6
06:34 Trashlord joined #perl6
06:47 mberends .oO( lue and time - always a risky proposition ;)
06:55 woosley joined #perl6
06:57 noganex_ joined #perl6
07:02 noganex joined #perl6
07:17 Jackneill joined #perl6
07:23 masak joined #perl6
07:23 masak good morning, #perl6.
07:23 moritz joined #perl6
07:31 sorear o/ masak
07:31 sorear o/ moritz!!
07:36 envi joined #perl6
07:40 moritz \o
07:40 phenny moritz: 05 Aug 22:55Z <tadzik> tell moritz given https://github.com/rakudo/rakudo/commit/71df76fa1f and https://gist.github.com/1128691 do you see any better way to solve this but to sort the block according to their $/.from?
07:42 sorear moritz: it seems like I'm going to start playing with exceptions, X::Base, CATCH, and CONTROL in niecza Real Soon Now
07:43 sorear moritz: I'm wondering if exceptions should be considered immutable, and when the backtrace is added.
07:43 sorear for instance is the backtrace available at CATCH time?
07:49 tokuhirom joined #perl6
08:00 mberends o/ masak sorear moritz Su-Shee
08:00 masak Su-Shee moritz sorear mberends \o
08:00 sorear o/
08:01 masak it's the weekend, and I have no excuse for not being very active with YAPC::EU talk preparations.
08:02 mberends masak: \o/
08:02 masak need to implement an airport.
08:02 mberends how hard can it be? ;)
08:03 masak it's not exactly rocket science.
08:04 mberends heh. spaceports, now that's more of a challenge
08:05 masak I wanted something that people are a bit familiar with, while also avoiding the almost-clichéd example of an E-commerce site.
08:08 mj41 joined #perl6
08:13 moritz sorear: sure it is available at CATCH time ... when else would it make sense?
08:14 dalek niecza: 7e257a0 | sorear++ | / (3 files):
08:14 dalek niecza: Refactor unwinding through nested runloops; allows "last" in defaults, etc to work.
08:14 dalek niecza: review: https://github.com/sorear/niecza/commit/7e257a015b
08:14 moritz sorear: and while it makes sense to make some of the built-in exceptions immutable, I don't think you should prevent the user from throwing mutable exceptions
08:15 sorear moritz: what I'm really asking is whether die() does $exn.backtrace = ... or $exn .= clone(backtrace => ...)
08:15 kanishka joined #perl6
08:16 dalek roast: 9b9d276 | sorear++ | S04-exceptions/control_across_runloop.t:
08:16 dalek roast: Here is a test for last in an inferior runloop.  May not be general enough.
08:16 dalek roast: review: https://github.com/perl6/roast/commit/9b9d276f7e
08:16 moritz sorear: I guess it does $exn.add-backtrace($bt)
08:16 moritz sorear: so that the exception can decide what do with multiple BTs
08:16 moritz replace the old one, or add to a stack
08:17 sorear that last commit will break a couple of spectests, since it fixes a bug that my eval_dies_ok relies on
08:18 sorear tomorrow I'll redo it correctly, using CONTROL and CATCH, which I'll add
08:18 * sorear -> sleep
08:20 kanishka I am trying to build a module .. how to test it with out installing it
08:22 mberends kanishka: saving the module file in the same directory as the test script should work
08:28 moritz make test
08:29 Jackneill joined #perl6
08:29 Jackneill joined #perl6
08:31 kanishka got it
08:34 Jackneill joined #perl6
08:54 masak 'make test' works, but only if you have made yourself a Makefile for your project.
08:58 masak yay, IRC logs are back!
08:58 masak moritz++
08:58 im2ee joined #perl6
09:00 SHODAN joined #perl6
09:25 tokuhirom joined #perl6
09:29 tadzik hello #perl6
09:32 whiteknight joined #perl6
09:36 jnthn morning, #perl6
09:36 sorear o/ jnthn
09:36 * sorear cannot sleep
09:36 tadzik oh, I had this today too
09:41 kboga joined #perl6
09:48 dalek rakudo/nom: 3853e1b | jonathan++ | t/spectest.data:
09:48 dalek rakudo/nom: Disabling S02-builtin_data_types/instants-and-durations.t - it reliably hangs for me during the spectest run.
09:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3853e1b7d4
09:48 masak morning, jnthn. hello, tadzik.
09:48 * masak wishes the sun were less prominent
09:49 jnthn huh, what, they forecast rain todya
09:51 * masak hopes that comes true
10:03 wamba joined #perl6
10:04 tadzik oh, here too
10:07 masak .WHEREFORE, I think, represents the pinnacle of trying to strain question words to fit on top of behind-the-scenes relations in the language.
10:07 mberends hello tadzik, jnthn
10:07 * mberends is unhappy that in Win32, int is 32 bits and long is 32 bits also :(
10:08 tadzik masak: can you translate that to me to some Slavik language? :)
10:08 sorear masak: you noticed that too?
10:08 meteorjay joined #perl6
10:08 mux most unices are the same on x86
10:08 masak reasons it's bad, in no particular order: (1) "wherefore" means the same as "why".
10:08 masak (2) no-one uses the word, except for Juliette.
10:08 masak (3) it's exactly the kind of thing that Damian thinks is cute today.
10:09 masak (4) there's no *reason* for it to be named that.
10:09 masak I think I could almost make a better case for .WHOSE
10:09 masak it's that bad :P
10:09 mux .HENCEFORTH
10:10 masak .HITHERTO
10:10 tadzik .BECAUSE
10:10 masak o.O
10:10 tadzik it's the opposite of .WHY, if viewed right :)
10:10 masak .WHYNOT
10:10 tadzik (or viewed wrong)
10:10 mberends .SOTHERE
10:11 tadzik .DOCUMENTEE
10:11 mux .INSOFAR
10:12 masak .NONWITHSTANDING
10:12 tadzik .THUS
10:13 mberends .DONTARGUE
10:13 masak .FURTHERMORE
10:13 tadzik .ILIKECHOCOLATEMILK
10:13 * masak is reminded of http://bash.org/?23396
10:19 masak TimToady: I like your thoughts about the PLAN phaser, but I'd like to bikeshed the name to EMPTY or DEPLETE or FINISH, to rhyme better with gather/take.
10:20 sjn .WTF # lists error messages related to the object
10:21 sjn :-P
10:23 masak "What's The Failure" :)
10:23 tadzik makes sense
10:24 masak <sorear> Where is everyone?
10:24 masak <jasonmay> boston
10:24 masak *lol*
10:26 wamba joined #perl6
10:31 woosley left #perl6
10:33 Jackneill joined #perl6
10:39 dalek rakudo/nom: 614236f | jonathan++ | src/core/Capture.pm:
10:39 dalek rakudo/nom: Avoid usage of $capture.list eating the $!list in Capture by shallow cloning (pmichaud, please review).
10:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/614236fe8c
10:46 dalek 6model: ed14a43 | (Martin Berends)++ | c/t (5 files):
10:46 dalek 6model: [6model/c] get current time to microsecond resolution on unix and win32
10:46 dalek 6model: review: https://github.com/jnthn/6model/commit/ed14a4353b
11:29 moritz Ronja just ate her first grapes -- she complained when the supply wasn't fast enough :-)
11:29 jnthn :-)
11:30 Jackneill joined #perl6
11:30 Jackneill joined #perl6
11:31 gfldex that aint no suprise: http://de.wikipedia.org/wiki/Ronja_R%C3%A4ubertochter
11:32 gfldex or better: http://en.wikipedia.org/wiki/Ronia_the_Robber%27s_Daughter
11:40 masak gfldex: not sure I see the connection between that book and grapes :)
11:45 moritz the connection is ronja :-)
11:46 gfldex well, one could argue that being a robber is a complain against lacking supply
11:46 moritz :-)
11:46 gfldex and ronja knows no fear, not even of grapes
11:47 moritz it does sounds a bit far fetched though :-)
11:47 gfldex quite frankly, it is
11:48 dalek roast: b869db3 | moritz++ | S32-hash/pairs.t:
11:48 dalek roast: rakudo unfudges in pairs.t
11:48 dalek roast: review: https://github.com/perl6/roast/commit/b869db3998
11:53 mberends afaik the only thing moritz steals is code ;)
11:53 moritz and ideas :-)
11:53 moritz sometimes karma, too
11:54 masak it's true.
11:54 masak no-one has de-karma'd me as much as moritz has ;)
11:56 moritz masak: actually you have de-karma'd yourself much more often than I have :-)
11:56 masak oh, that's true. didn't consider that.
11:57 masak masak-- # too de-karma-y
11:57 masak oh wait :)
11:57 moritz https://gist.github.com/1129286
11:58 masak oh, and jonalv :)
11:58 masak and egonw.
11:58 masak people from a different universe.
11:59 masak wow, there will now forever be a gist of "people who have taken karma from masak, and how much" :P
12:04 SHODAN joined #perl6
12:36 pmichaud good morning, #perl6
12:36 jnthn morning, pmichaud
12:36 * pmichaud is proud to not be on the list of people who have de-karma'd masak++.
12:36 tadzik good morning pmichaud
12:37 pmichaud jnthn: 614236f looks fine -- you're correct, the $!list needs cloning there.
12:37 jnthn pmichaud: Yeah, sorry about that.
12:37 jnthn pmichaud: I noted the problem in the commit message, though didn't really draw much attention to it...I'd planned to deal with it last night, then got sucked into the hash clone mess. :/
12:38 jnthn (The eqv commit message, that is.)
12:38 jnthn Turns out the Parcel.Capture hack was being relied on quite heavily.
12:38 pmichaud I'm surprised, actually.
12:39 jnthn So was I
12:39 pmichaud I suspect there were a lot of bogus Capture tests.
12:39 jnthn There were
12:39 jnthn Also, we didn't run most of autoref.t on master
12:39 jnthn At least, not the bits that were unfudged for nom.
12:39 pmichaud I've long felt they were likely bogus, but couldn't find any specs to prove it.
12:39 jnthn No, I ended up asking TimToady++
12:40 pmichaud Yes, I saw.
12:40 jnthn After an unsuccessful spec trawl.
12:40 jnthn I'm working on installable nom and modules.
12:40 pmichaud +1
12:40 jnthn Need to fix up nqp's own install and module search first.
12:41 jnthn (It pokes a bunch of stuff into the Parrot library directory, rather than the nqp language directory.)
12:42 jnthn Nested sigs are pretty much done now. We fail two tests in array-unpack.t but it's not nested signature's fault.
12:44 JimmyZ joined #perl6
12:49 dalek roast: fc2707f | kboga++ | S (7 files):
12:49 dalek roast: (un)fudge tests
12:49 dalek roast: review: https://github.com/perl6/roast/commit/fc2707f183
12:50 kboga does tree-node-parameters.t fail for anyone else?
12:50 pmichaud kboga: yes, it fails for me.
12:51 jnthn Works here
12:51 jnthn (the .rakudo)
12:51 pmichaud .rakudo fails here.
12:51 jnthn (the .t fails, but it works when fudged)
12:51 jnthn oh.
12:51 pmichaud Not enough positional parameters passed; got 0 but expected 2 in sub-signature of parameter %top
12:51 jnthn hm
12:51 jnthn aha!
12:52 kboga without that test running spectest now passes (here)
12:52 jnthn forgot to push
12:52 dalek roast: 83243d7 | jonathan++ | S06-signature/tree-node-parameters.t:
12:52 dalek roast: Fix signatures now positional named fallback stuff changed.
12:52 dalek roast: review: https://github.com/perl6/roast/commit/83243d7cf5
12:54 kboga yep it now passes, jnthn++
12:54 jnthn sorry 'bout that
12:58 kboga no need :)
12:59 ranott joined #perl6
13:01 PacoLinux joined #perl6
13:02 * JimmyZ wonders how many tests nom passed.
13:03 tadzik I think it's close to 9000
13:05 flussence https://github.com/flussence/specgraphs/raw/master/output/rakudo-tests.png
13:05 flussence that answer your question? :)
13:07 tadzik oh, the graph is better and better! flussence++
13:07 JimmyZ a little old
13:08 flussence (does anyone know why those numbers are lower than the ones on http://smolder.parrot.org/app/projects/smoke_reports/5 ?)
13:26 tadzik the birth of nom looks really nice in gource :)
13:28 flussence I was looking at that the other day, it seems like rakudo gets a huge increase in activity around November each year
13:28 tadzik . o O ( No one's hacking on November )
13:32 PacoLinux joined #perl6
13:35 moritz flussence: the smoke reports includes skipped tests ass PASS, iirc
13:35 flussence ah
13:37 dalek roast: 9d302d9 | kboga++ | S09-subscript_slice/slice.t:
13:37 dalek roast: rakudo fudge in slice.t
13:37 dalek roast: review: https://github.com/perl6/roast/commit/9d302d9508
13:38 JimmyZ joined #perl6
13:51 moritz masak: fwiw those de-karma numbers are slightly bogus
13:52 moritz masak: mysql's "like" search also counted lines with a whitespace between your nick and the '--'
13:53 masak moritz: oh!
13:54 masak I didn't know that about mysql's "like" operator. wonder what the use case is for that?
13:54 jnthn masak -- he didn't get de-karma'd so much after all!
13:54 flussence (people who don't use unicode em-dashes)-- # :)
13:54 moritz masak: pseudo-but-not-quite fulltext search
13:55 moritz for example I searched for when pmichaud++ down-karamd me, and I found
13:55 moritz <pmichaud> great job this week, moritz -- see you Sunday!
13:55 moritz (that's from 2009-08-27)
13:55 moritz :-)
13:56 * masak .oO( passive-aggressive downvoting )
13:56 moritz oh, and flussence++ for the nom spectest graph
14:09 masak nom: role A { method foo { say "A" } }; role B { method foo { say "B" } }; role C does A does B {}; say "alive"
14:09 p6eval nom: OUTPUT«alive␤»
14:09 masak nom: role A { method foo { say "A" } }; role B { method foo { say "B" } }; role C does A does B {}; class D does C {}; say "alive"
14:09 p6eval nom: OUTPUT«Method 'foo' must be resolved by class D because it exists in multiple roles (A, B)␤current instr.: '_block3066' pc 48729 (src/gen/perl6-metamodel.pir:15135) (src/gen/Metamodel.pm:1432)␤»
14:10 masak nom: role A { method foo { say "A" } }; role B { method foo { say "B" } }; role C does A does B { method foo { say "resolving collision" } }; class D does C {}; say "alive"
14:10 p6eval nom: OUTPUT«alive␤»
14:10 masak and now in the master branch... :)
14:10 masak rakudo: role A { method foo { say "A" } }; role B { method foo { say "B" } }; role C does A does B { method foo { say "resolving collision" } }; class D does C {}; say "alive"
14:10 p6eval rakudo 922500: OUTPUT«alive␤»
14:10 masak huh!
14:11 masak rakudo: role A { method foo { say "A" } }; role B { method foo { say "B" } }; role C does A does B { method foo { say "resolving collision" } }; class D does C {}; D.new.foo
14:11 jnthn Not *everything* was broken in master :P
14:11 p6eval rakudo 922500: OUTPUT«resolving collision␤»
14:11 masak jnthn: I got the impression that the difference was between master and nom.
14:11 masak perhaps I misunderstood. :)
14:11 masak no matter. it's great. jnthn++
14:12 jnthn masak: tbh, I couldn't remember what master did. :)
14:12 masak hah!
14:12 masak spent too much time in perfect nommy-nom land. :P
14:12 masak nom really is already here, just unevenly distributed...
14:16 * jnthn hopes he can beat NQP module loading into submission soon so that nom can distribute itself into install directories.
14:26 tadzik yay
14:27 jnthn Well, I didn't manage it yet. :P
14:27 tadzik END { yay }
14:28 fhelmberger joined #perl6
14:33 masak KEEP { yay } # masak shows his innate pessimism :)
14:39 masak people, what is your favorite phaser?
14:39 tadzik #phasers :)
14:39 masak mine is either LEAVE or POST, I think.
14:39 tadzik oh
14:40 tadzik DOC INIT of course :)
14:40 moritz before I BEGIN, let me CHECK if my INITial KEEPers have arrived by POST
14:40 masak tadzik: :P
14:40 masak moritz answers with a junction of some sort.
14:41 jnthn BEGIN, because it means I can screw with the compiler internals. :)
14:41 tadzik nom: BEGIN { /\d/ } #hi hi
14:41 p6eval nom: OUTPUT«error:imcc:syntax error, unexpected DOT ('.')␤      in file '(file unknown)' line 68149218␤error:imcc:syntax error ... somewhere␤   in file '(file unknown)' line 68149254␤syntax error ... somewhere␤»
14:41 jnthn tadzik: you screwed it :P
14:41 jnthn nom: BEGIN { /./ } #hi hi
14:41 p6eval nom:  ( no output )
14:42 * [Coke] drinks koohii.
14:42 jnthn hm
14:42 jnthn It's char classes that bust it, huh.
14:43 tadzik not really
14:43 tadzik nom: BEGIN { <[0..9]> }
14:43 p6eval nom:  ( no output )
14:43 moritz nom: BEGIN { /\s/ }
14:43 p6eval nom: OUTPUT«error:imcc:syntax error, unexpected DOT ('.')␤      in file '(file unknown)' line 450␤error:imcc:syntax error ... somewhere␤        in file '(file unknown)' line 486␤syntax error ... somewhere␤»
14:44 jnthn achievement! I broke NQP make install too
14:45 masak [Coke]: it took me a while to catch on to the fact that that's just "coffee" in Japanese.
14:45 tadzik yay, now both nom and nqp work the same way
14:45 tadzik now we just need to change the state of workingness :)
14:45 masak phenny: jp en "kohii"?
14:45 phenny masak: The jp to en translation failed, sorry!
14:45 masak phenny: jp en "koohii"?
14:45 phenny masak: The jp to en translation failed, sorry!
14:46 moritz phenny: "kohii"?
14:46 phenny moritz: Language guessing failed, so try suggesting one!
14:46 masak phenny: jp en "コーヒー"?
14:46 phenny masak: The jp to en translation failed, sorry!
14:46 moritz phenny: one "kohii"?
14:46 masak :P
14:59 JimmyZ joined #perl6
15:01 molaf joined #perl6
15:04 Chillance joined #perl6
15:08 [Coke] phenny: en jp "coffee"
15:08 moritz [Coke]: need a trailing '?'
15:08 [Coke] phenny: en jp "coffee"?
15:08 phenny [Coke]: The en to jp translation failed, sorry!
15:09 [Coke] but, yes, those kana look right.
15:09 masak rakudo: say [+] 1..10
15:09 p6eval rakudo 922500: OUTPUT«55␤»
15:10 * masak .oO( that kana be right )
15:10 jnthn :P
15:11 * jnthn drinks a kana ビール :P
15:11 [Coke] you'll rune the day you made that pun.
15:11 masak rakudo: say sum 1..10
15:11 p6eval rakudo 922500: OUTPUT«Could not find sub &sum␤  in main program body at line 22:/tmp/SbtEzz7O61␤»
15:12 masak maybe we should provide 'sum' and 'product' in the setting? :)
15:12 jnthn [+] and [*] are provided :)
15:12 * [Coke] only knows one biiru. (sapporo)
15:13 masak jnthn: yes, I know. but it costs nothing to have the words there, too.
15:13 masak jnthn: Haskell has both foldr (+) and sum.
15:19 jnthn masak: It doesn't cost much, no. But what does it pay? :)
15:19 masak that's a motivated question.
15:20 masak jnthn: fac n = foldr (*) 1 [1..n]
15:20 masak jnthn: fac n = product [1..n]
15:20 masak jnthn: which one do you find easier to read?
15:21 JimmyZ I guess [*] 1..n ?
15:22 masak JimmyZ: right, that would correspond to the foldr one.
15:22 masak JimmyZ: Perl 6 provides the 1 as a default for *
15:22 jnthn masak: I don't find them all that different. The first means that if I know what foldr does then it's immediately clear what's going to happen. With product I could probably guess correctly if I didn't know.
15:22 masak jnthn: right.
15:22 masak jnthn: it's not a strong point but that's my point.
15:24 jnthn I suspect after a bit you memorize [*] as a word rather than as its pieces, though. :)
15:25 masak right. but with [*], the reader always has to do the chunking/unchunking herself, even when it's rote.
15:25 masak with 'product', you've abstracted away the chunking.
15:26 jnthn aye, it's just where to end
15:26 masak aye.
15:27 jnthn [==] could be all-numerically-equally
15:27 jnthn [<=] could be sorted
15:27 jnthn etc
15:27 jnthn :)
15:27 masak Perl 6 wishes to provide a "very big sweet spot". 'sum' and 'product' are very natural words from maths.
15:27 jnthn Yeah, they feel quite natural.
15:27 jnthn There's not much room to guess wrong.
15:27 masak rakudo: say [1..10].sum
15:27 p6eval rakudo 922500: OUTPUT«Method 'sum' not found for invocant of class 'Array'␤  in main program body at line 22:/tmp/CiqLyP3udv␤»
15:28 masak that could be useful, too.
15:28 masak as could .product
15:28 jnthn Well, yeah, if we're going to have a sub form we should have a method one too.
15:28 masak though my case for them is weaker, as they clutter the List class.
15:28 masak things in the Setting don't really clutter.
15:28 JimmyZ rakudo: say [1..10].[*]
15:28 p6eval rakudo 922500: OUTPUT«12345678910␤»
15:28 JimmyZ rakudo: say [1..10].[+]
15:28 p6eval rakudo 922500: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<[ ]>, couldn't find final ']' at line 22␤»
15:28 masak JimmyZ: that's a slice, good fellow :)
15:29 masak rakudo: say [1..10].reduce(infix:<*>)
15:29 p6eval rakudo 922500: OUTPUT«No candidates found to invoke for method 'reduce' on object of type 'Array'; available candidates have signatures:␤:(Mu : Code $expression;; *%_)␤␤  in main program body at line 22:/tmp/aE7gZuaB9Q␤»
15:29 jnthn rakudo: say [1..10].&prefix:<[*]>()
15:29 p6eval rakudo 922500: OUTPUT«Could not find sub &prefix:<[*]>␤  in main program body at line 22:/tmp/Sa3BVitzS_␤»
15:29 masak rakudo: say (1..10).reduce(infix:<*>)
15:29 p6eval rakudo 922500: OUTPUT«No candidates found to invoke for method 'reduce' on object of type 'Range'; available candidates have signatures:␤:(Mu : Code $expression;; *%_)␤␤  in main program body at line 22:/tmp/m9f2wHXW32␤»
15:29 masak grr
15:29 masak rakudo: say (1..10).list.reduce(infix:<*>)
15:29 p6eval rakudo 922500: OUTPUT«No applicable candidates found to dispatch to for 'reduce'. Available candidates are:␤:(Mu : Code $expression;; *%_)␤␤  in main program body at line 22:/tmp/oxHd2suJq4␤»
15:29 jnthn rakudo: say (1..10).reduce(&infix:<*>)
15:29 p6eval rakudo 922500: OUTPUT«3628800␤»
15:29 jnthn You missed the nounizer :)
15:29 masak oh, 'course
15:30 masak jnthn++
15:30 masak rakudo++
15:30 JimmyZ well, I'd like to say since we have a sub [*], we shoulde a  [*] method ;)
15:30 jnthn OK, I now have installation to the point where it starts up.
15:30 jnthn :)
15:30 JimmyZ yes, we have,  but different result
15:30 jnthn Only thing it doesn't do yet is locate its setting, but I didn't get to that bit yet.
15:31 jnthn The bad news is...that nqp builds are broken if you installed nqp. :/
15:31 jnthn Darn bootstrap staging fun.
15:32 * jnthn is once again happy that Rakudo is not a bootstrapping compiler, and builds on a smaller bootstrapped one instead.
15:33 [Coke] ooh, more tests passing.
15:33 JimmyZ but the goal is a bootstrapping compiler?
15:33 masak JimmyZ: method names have to be identifiers, and [*] isn't an identifier.
15:34 JimmyZ well, that's joke
15:34 jnthn JimmyZ: No, Rakudo being a bootstrapping compiler is not a goal.
15:34 jnthn Or at least, it's not a goal for me.
15:34 SHODAN joined #perl6
15:34 JimmyZ that's the Perl6 project goal , iirc
15:35 jnthn No.
15:35 JimmyZ maybe I missunderstand
15:35 jnthn Perl 6 project goal is to create an awesome language. ;-)
15:35 [Coke] someone is working on a perl6 in perl6, but that's their goal. (ETOOMANYPERLS)
15:35 jnthn Right. :)
15:36 jnthn Of course I'm fine with people working on it. I just don't think it's the direction Rakudo should go in. NQP being bootstrapped, otoh, is a good thing.
15:36 masak [Coke]: I'm working on a Perl 6 in Perl 6.
15:36 masak [Coke]: for some value of "working"... :/
15:36 TimToady it's not awesome unless it's *possible* to write a bootstrapping compiler
15:37 TimToady that doesn't mean it has to be done that way
15:37 jnthn TimToady: I wasn't commenting on whether it's possible, just on whether I'd consider it desirable. :)
15:37 jnthn Yes, it absolutely should be possible. :)
15:37 jnthn And niecza++ seems to be demonstrating that it is. :)
15:38 TimToady where "possible" is defined as "easy" :)
15:38 TimToady not just Turing-possible
15:38 * JimmyZ read some articles that said Perl 6 want to compile itself so Perl 6 can adapt to the theory of evolution :)
15:39 TimToady that's primarily talking about the parser
15:41 masak JimmyZ: yes, that's basically it. you can extend Perl 5, but not in all ways we'd like. Perl 6 is the "second try", in a sense, making things more extensible.
15:45 dalek roast: 7672eb3 | Coke++ | S06-signature/unpack-array.t:
15:45 dalek roast: fudge for nom
15:45 dalek roast: review: https://github.com/perl6/roast/commit/7672eb3306
15:45 JimmyZ well, I am not that ambitious, I just hope some java project like solr/Lucene/mahout will be rewritten in Perl6, and in the future most people will use  Perl 6 instead of PHP :)
15:45 * JimmyZ washes
15:46 masak just saying the word "PHP" made you need to go wash? :P
15:46 [Coke] Does anyone require tools/test_summary to show work in progress, or would a dump at the end work?
15:47 dalek rakudo/nom: b3a247b | Coke++ | t/spectest.data:
15:47 dalek rakudo/nom: passed some tests, update failure modes
15:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b3a247beb1
15:47 JimmyZ well, it's 23:50 here :)
15:47 [Coke] (it would be nice if that test file ran tests in ||)
15:48 flussence [Coke]: I'm only using it for the last few lines of output, don't care what it does in the middle
15:48 [Coke] hurm. it does a LOT, though. ah well.
15:48 [Coke] flussence: ah, so something like that that just gave you the summary would work?
15:48 [Coke] that would be easier than redoing all of test_summary.pl
15:49 flussence more specifically, I'm using it for the $ENV{REV} thing
15:49 [Coke] can you gist the part of the output you care about?
15:49 masak [Coke]: I looked at '||' and was confused. '|' is more parallel than '||' nowadays :)
15:50 * [Coke] is old school.
15:51 * [Coke] thinks, geometrically, that you need at least 2 | to show parallel.
15:51 flussence it'll take a while to get that output, but it's just the thing starting at line 250 which outputs a line for docs/spectest-progress.csv
15:53 [Coke] oh, I don't think I'm running that by default. never saw it. :)
15:54 PacoLinux joined #perl6
15:56 Mowah joined #perl6
15:57 woosley joined #perl6
16:00 donri joined #perl6
16:05 * JimmyZ is back
16:05 dual joined #perl6
16:07 whiteknight joined #perl6
16:07 * [Coke] just ran a spec test (not with test_summary):
16:07 [Coke] Files=369, Tests=10387, 908 wallclock secs ( 5.74 usr  2.69 sys + 1315.37 cusr 117.04 csys = 1440.84 CPU)
16:08 JimmyZ :D
16:08 kboga does this look sane? https://gist.github.com/1129444
16:09 masak kboga: yes.
16:09 kboga so that +$0 et al work
16:09 masak that's how I think of Match numification, at least.
16:11 im2ee joined #perl6
16:11 MayDaniel joined #perl6
16:13 flussence huh, "Bad file descriptor at tools/test_summary.pl line 401."
16:13 * JimmyZ thinks $!to >= $!from; in the Bool method should be $!to > $!from;
16:17 dalek nqp: 1f94461 | jonathan++ | src/ModuleLoader.pm:
16:17 dalek nqp: Start to re-work module loading a bit in preparation for changing install approach.
16:17 dalek nqp: review: https://github.com/perl6/nqp/commit/1f9446125c
16:17 dalek nqp: 7392f50 | jonathan++ | tools/build/Makefile.in:
16:17 dalek nqp: Sketch out how make install should probably look once he changes all work.
16:17 dalek nqp: review: https://github.com/perl6/nqp/commit/7392f509dc
16:17 dalek nqp: c82c723 | jonathan++ | tools/build/Makefile.in:
16:17 dalek nqp: Need NQP_LANG_DIR defined, of course.
16:17 dalek nqp: review: https://github.com/perl6/nqp/commit/c82c723f6a
16:17 masak JimmyZ: nope.
16:17 dalek nqp: 2ae55b1 | jonathan++ | tools/build/Makefile.in:
16:17 dalek nqp: PAST library still needs to go in Parrot library directory.
16:17 dalek nqp: review: https://github.com/perl6/nqp/commit/2ae55b15ae
16:17 dalek nqp: 314b2df | jonathan++ | src/ModuleLoader.pm:
16:17 dalek nqp: Remove debugging output.
16:17 dalek nqp: review: https://github.com/perl6/nqp/commit/314b2df6c4
16:17 dalek nqp: 2bd6964 | jonathan++ | src/ModuleLoader.pm:
16:17 dalek nqp: Unbust build after make install has been run. Essentially, the updated module loader dropped any --library far too eagerly - we use it for the bootstrapping rounds, so it needs careful attention.
16:17 dalek nqp: review: https://github.com/perl6/nqp/commit/2bd6964188
16:17 dalek nqp: 06b6cfc | jonathan++ | src/stage0/ (7 files):
16:17 dalek nqp: Update bootstrap with updated module laoder; all seems well.
16:17 dalek nqp: review: https://github.com/perl6/nqp/commit/06b6cfc957
16:17 masak JimmyZ: think of /^$/
16:18 JimmyZ masak, then Match.Str.Numeric.Bool will not equal Match.Boll
16:19 JimmyZ masak, then Match.Str.Bool will not equal Match.Boll
16:19 JimmyZ s/Boll/Bool/
16:19 masak correct.
16:19 jnthn I don't think I'd expect them to
16:19 masak also, Match.elems.Num will not equal Match.Num
16:19 masak it's all fine.
16:19 jnthn Match.Bool is really "did the match successful"
16:20 dalek rakudo/nom: 9bec8df | jonathan++ | tools/build/Makefile.in:
16:20 dalek rakudo/nom: Start getting the install target more in shape - certainly not finished yet, and relies on NQP updates.
16:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9bec8dff93
16:20 dalek rakudo/nom: b4c471b | jonathan++ | tools/build/NQP_REVISION:
16:20 dalek rakudo/nom: Get NQP installation and module loading improvements. With this, we now have a 'make install' that installs a Rakudo that will start up, though the setting and module installation is still to do. Nuking your install directory is recommended.
16:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b4c471b440
16:20 masak jnthn: in English, it's "WAS the match successful" :P
16:20 masak or "did the match SUCCEED"
16:20 jnthn oh my :)
16:20 * masak is such a tease
16:20 jnthn Told you your English is better than mine :P
16:20 masak stick to lolspeak! :P
16:21 jnthn Match.Bool is like "CAN HAZ MATCHED!"
16:21 * masak nods approvingly
16:21 * JimmyZ don't like sometimes they are equal, sometime they are not
16:22 masak JimmyZ: I don't have a problem with it.
16:22 masak JimmyZ: that's what having several different aspects of a complex enough object will give you.
16:22 masak and Match objects are nothing if not complex.
16:22 masak they're Bools, they're Strs, they're Nums, they're Lists, they're Hashes...
16:23 masak or at least they have aspects of all of these.
16:23 flussence you can't expect type conversion to perfectly preserve all semantics, that's why we have types at all
16:23 JimmyZ well, maybe I just need time to like it :)
16:23 masak one could say that it's because they don't exactly *are* all these objects that there can be differences when you convert.
16:23 masak that sentence feels odd, but I believe it's correct.
16:24 jnthn masak: I...wtf. :)
16:24 masak ...maybe not :)
16:24 jnthn don't exactly are? :)
16:24 jnthn aren't exactly :)
16:24 masak oh!
16:24 masak right.
16:25 masak that doesn't put the emphasis on the copula, though.
16:25 jnthn No, true
16:25 masak I guess my sentence can't be expressed in contemporary English.
16:25 masak this happens to me a lot :P
16:25 jnthn Wherefore?
16:25 jnthn :)
16:27 JimmyZ well, you guys read my poor english too much, so you are following my poor english out of your control
16:28 masak JimmyZ: I admire your grasp at English. I know how much work it is for a 中国人 to learn to write that well.
16:29 JimmyZ well, the max english level is eight, I am only in the three level :(
16:29 JimmyZ most times I use dictionary
16:30 masak heh, who doesn't these days? :)
16:30 masak I need a dictionary for English too, it's so tricky.
16:31 JimmyZ well, actually, I can't speak in english and listen in english
16:31 masak at the same time, you mean?
16:31 masak or you mean as opposed to reading/writing?
16:32 birdwindupbird joined #perl6
16:32 JimmyZ as opposed to reading/writing :)
16:32 masak well, my spoken Mandarin really sucks. but give me a few days and even I can write an email in it. :)
16:35 * JimmyZ didn't use any chinese-to-chinese dictionay  ;)
16:35 JimmyZ for many years
16:36 pmichaud re-good morning, #perl6
16:37 wolfman2000 joined #perl6
16:37 jnthn re-o/, pmichaud
16:37 woosley good morning #perl6 #english&chinese:)
16:38 masak good re-morning, pmichaud
16:38 * JimmyZ sleeps
16:38 JimmyZ night 'all
16:38 jnthn o/ JimmyZ
16:42 kboga there: https://github.com/rakudo/rakudo/pull/34
16:43 masak kboga: merged.
16:43 kboga thx masak :)
16:43 pmichaud I think that method needs a "multi"
16:43 masak thank *you*.
16:43 masak pmichaud: oh, good point.
16:43 masak I can add it.
16:44 kboga well
16:44 kboga it didn't compile with a multi
16:44 dalek rakudo/nom: 66e0e4e | kboga++ | src/core/Match.pm:
16:44 dalek rakudo/nom: add Numeric method for Match objects
16:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/66e0e4e16b
16:44 dalek rakudo/nom: 6d7af58 | (Carl Mäsak)++ | src/core/Match.pm:
16:44 dalek rakudo/nom: Merge pull request #34 from kboga/match-numeric
16:44 dalek rakudo/nom:
16:44 dalek rakudo/nom: Match numeric
16:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6d7af5833f
16:44 kboga Capture's Numeric doesn't have one either
16:44 pmichaud then there's a bug somewhere.
16:44 masak kboga: it didn't *compile* with a multi?
16:44 kboga uhu
16:44 masak kboga: did you write 'multi method'?
16:44 kboga yes
16:45 * masak is surprised and confused at this
16:45 jnthn There's something up with proto auto-gen.
16:45 masak ah.
16:45 pmichaud there shouldn't be an autogen'd proto.
16:45 jnthn If there's an only somewhere in the hierarchy it gets upset.
16:45 pmichaud oh, then the problem is that Capture is missing its multi also.
16:45 kboga "Could not find a proto for multi 'Numeric' in package 'Match' (it may exist, but an only is hiding it if so)"
16:45 SHODAN joined #perl6
16:45 jnthn Yeah, that's the one
16:45 pmichaud oh, then the problem is that Capture is missing its multi also.
16:45 kboga yes
16:46 pmichaud also, in general I prefer for methods of the same 'category'   (like Bool/Numeric/Str) be alphabetized within that grouping
16:46 kboga grep 'method Numeric' -r *
16:47 kboga looks like there are other non multi Numeric's
16:48 kboga intentionally?
16:48 pmichaud I only see the one for Capture and Numeric
16:48 pmichaud do you see more?
16:49 kboga Ennumeration also
16:50 kboga and Numeric?
16:50 pmichaud I tried putting a multi there but ran into problems because Enumeration is a role.
16:50 pmichaud (or something).  So Enumeration is "intentional", at least for now.
16:50 kboga ah
16:50 kboga ic
16:50 pmichaud Numeric.Numeric should probably be multi.
16:51 pmichaud (and yes, I didn't see Enumeration in my list... thanks for catching that.)
16:51 kboga np, I was wondering  if this was intentional, so thanks for the clarification =)
17:14 kboga Should all "Enumeration:D:" be "::?CLASS:D:" in the Enumeration role? And if not, why not?
17:15 pmichaud the CLASS version seems like it would be lots better.
17:17 jnthn Should be the lcass version
17:17 jnthn Or it'll multi-sort weirdly.
17:18 kboga ok, thx, spectesting now
17:20 dalek roast: bb1b10f | kboga++ | S03-operators/range.t:
17:20 dalek roast: (un)fudge range.t
17:20 dalek roast: review: https://github.com/perl6/roast/commit/bb1b10f335
17:23 dalek rakudo/nom: 033e420 | pmichaud++ | src/core/metaops.pm:
17:23 dalek rakudo/nom: Initial version of hyper metaop.  Mostly works -- doesn't support hyperop on hashes yet.
17:23 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/033e420297
17:24 jnthn \o/
17:24 jnthn Down to (I think) one last issue before I have working installable nom.
17:28 dalek roast: 90755e2 | pmichaud++ | S02-names_and_variables/list_array_perl.t:
17:28 dalek roast: Unfudge test relying on hyperops.
17:28 dalek roast: review: https://github.com/perl6/roast/commit/90755e233a
17:28 dalek roast: 8ee25b9 | pmichaud++ | S03-operators/range.t:
17:28 dalek roast: Merge branch 'master' of github.com:perl6/roast
17:28 dalek roast: review: https://github.com/perl6/roast/commit/8ee25b9fe6
17:29 pmichaud do we really want to just be fudging tests (e.g., range.t) that used to work in master?
17:31 pmichaud seems to me that we'd rather get nom to pass those tests than to fudge them out entirely
17:32 jnthn Yeah, these days as we work towards master we want to be doing that less, imo.
17:32 kboga oh, feel free to revert that commit
17:32 pmichaud as long as the fudge message contains "nom" I might be okay with it.
17:32 * jnthn wonders if we'll somehow be able to get a diff of "tests nom fudges that ng runs and does not"
17:32 pmichaud then we could quickly ack for "nom"
17:33 pmichaud jnthn: that diff is likely going to be difficult to get.
17:33 kboga if it was not the right thing to do
17:33 jnthn pmichaud: OK
17:34 pmichaud niecza:  say RangeIter
17:34 p6eval niecza v8-38-g7e257a0: OUTPUT«RangeIter()␤»
17:34 jnthn Then we shouldn't rely on doing so :)
17:34 pmichaud hmmm
17:34 jnthn std: RangeIter
17:34 p6eval std 516268a: OUTPUT«ok 00:01 117m␤»
17:34 pmichaud nom: say RangeIter
17:34 p6eval nom: OUTPUT«Could not find sub &RangeIter␤current instr.: '_block1002' pc 74 ((file unknown):108) (/tmp/ytLX8YEXof:1)␤»
17:34 pmichaud nom doesn't have (or need) a RangeIter class.
17:35 jnthn There's only one mention in S02:
17:35 jnthn RangeIter   Iterator over a Range
17:35 pmichaud right, and a couple of mentions in S03
17:37 pmichaud ok '1 3' ~~ /(\d) . (\d)/, 'regex sanity';
17:37 pmichaud is ($0..$1).join('|'), '1|2|3', 'range from $0..$1';
17:37 pmichaud I think this last test is bogus.  Anyone want to disagree?
17:37 jnthn That'd be a string range, no?
17:37 jnthn If anything at all.
17:37 pmichaud I'm thinking it's a range of Match objects.
17:38 pmichaud and Match doesn't define a .succ
17:38 jnthn *nod*
17:38 jnthn ah
17:38 jnthn Yeah
17:38 jnthn We could have an .. that's Any $a as Numeric, Any $b as Numeric I guess.
17:38 jnthn But maybe better to make people be clear about what they want.
17:39 pmichaud the spec is pretty clear about it already
17:39 sorear good * #perl6
17:39 pmichaud there's not a default conversion to Numeric -- it all depends on .succ
17:39 jnthn aha
17:39 jnthn OK, then the test is bogus.
17:39 jnthn o/ sorear
17:39 pmichaud o/ sorear
17:39 sorear niecza has RangeIter because I copied the Range implementation from master
17:40 pmichaud I started nom with a RangeIter, then realized that it made a lot more sense as Range.
17:40 sorear masak: the language code for Japanese is "ja"
17:40 masak d'oh
17:40 masak thanks.
17:40 masak phenny: ja en "koohii"?
17:40 phenny masak: "koohii" (ja to en, translate.google.com)
17:41 masak phenny: ja en "コーヒー"?
17:41 phenny masak: "Coffee" (ja to en, translate.google.com)
17:41 masak \o/
17:41 pmichaud \o/  masak++ sorear++
17:43 pmichaud nom:  my @one = 1;   say ~(@one..3);
17:43 p6eval nom: OUTPUT«Method 'succ' not found for invocant of class 'Array'␤current instr.: 'postfix:<++>' pc 634027 (src/gen/CORE.setting.pir:149648) (src/gen/CORE.setting:847)␤»
17:43 pmichaud also looks correct to me, per the spec.
17:44 masak I'm guessing @one should numify through .elems in that case.
17:44 pmichaud the spec only talks about numifying if the lhs is numeric.
17:45 pmichaud actually, I suppose it should die with a multidispatch error (mismatched types)
17:46 pmichaud oh, wait, I missed a section.
17:46 pmichaud "Smart matching against a Range object does comparisons (by coercion, if necessary) in the Real domain if either endpoint does Real.
17:46 benabik joined #perl6
17:47 masak \o/
17:48 pmichaud although there it's only talking about smartmatching, not about iterating.
17:49 pmichaud so, reading the spec strictly,   @a .. 4  would smartmatch as if it's   @a.Real .. 4,  but would fail to iterate.
17:50 woosley left #perl6
17:50 woosley joined #perl6
17:51 pmichaud TimToady: my $range = @a .. 4;   say $range.min.WHAT;   #  what gets output here?
17:51 masak my vote is on Int.
17:52 pmichaud masak: in other words, the Range coerces when it's created?
17:52 pmichaud (and we also coerce based on "either endpoint does Real"?)
17:53 pmichaud I'm fine with that... just stating the outcome of your vote :)
17:53 tadzik masak: any ideas on the .WHEREFORE and misordering?
17:54 pmichaud tadzik: .WHAT is this ".WHEREFORE misordering" of .WHICH you continually speak?
17:54 * pmichaud hasn't been following the .WHEREFORE issue closely.
17:54 tadzik pmichaud: take a look at https://github.com/rakudo/rakudo/commit/71df76fa1f346
17:55 tadzik and https://gist.github.com/1128691
17:56 jnthn tadzik: It's just that you apply the doc trait in package_def, whihc runs after all ofthe things inside of the package.
17:57 jnthn tadzik: But you have $*PACKAGE and the doc string to hand way earlier than that :)
17:57 tadzik yes
17:57 jnthn So you just need to trigger something to attach the docs earlier.
17:57 tadzik yes, but I don't have a constructed object to put into WHEREFORE
17:57 jnthn Oh?
17:57 jnthn I thought that'd just have the package?
17:57 tadzik hmm
17:57 jnthn e.g. .WHEREFORE is jsut the module in this case?
17:57 tadzik mebbe
17:58 jnthn What have you got it as now?
17:58 tadzik yes, it's what you say, of course
17:58 jnthn OK
17:58 jnthn So that's what is in $*PACKAGE :)
17:58 jnthn See package_def in the grammar for when you have it. :)
17:59 soupified2011 joined #perl6
18:00 tadzik hmm
18:00 pmichaud ouch, there's a lot of code in package_def
18:00 tadzik subs can have a sub-subs, right?
18:00 jnthn tadzik: yes, that'll be a bigger problem.
18:00 pmichaud I would think that documentation would tend to get applied right around the same time the traits are applied.
18:00 PacoLinux joined #perl6
18:00 jnthn pmichaud: Yeah, but debatably we apply them too late at the moment.
18:00 jnthn (In some cases.)
18:01 tadzik that's what makes me wonder if your fix is worthwhile, if we'll have to fix it again anyway
18:01 pmichaud as long as the documentation is applied before any blockoid, we should be pretty safe.
18:01 jnthn Well, putting it in the package_def action method is always going to be too late.
18:01 tadzik pmichaud: due to how parser and action methods work, docs for methods get there before docs for the class
18:01 pmichaud tadzik: it's the same issue there as well.
18:01 pmichaud you want the docs for the class to take place before its blockoid.
18:02 pmichaud and not in its action method.
18:02 tadzik the only thing that comes to my mind is sorting declarator blocks by their $/.from
18:02 pmichaud tadzik: you're not following what jnthn++ and I are saying, then.  :)
18:03 tadzik hmm
18:03 * tadzik rereads
18:03 jnthn A <.attach_docs> in package_def an appropraite point could be all that's needed
18:03 pmichaud correct.
18:03 tadzik okay, I see the point. But is it always possible?
18:03 dalek niecza: 1ce800e | sorear++ | / (2 files):
18:03 dalek niecza: Properly handle exceptions generated from LEAVE, including those that re-enter the associated block.
18:03 dalek niecza: review: https://github.com/sorear/niecza/commit/1ce800eb81
18:03 jnthn Not in routine_def and method_def yet.
18:03 jnthn Because we don't create the code object until the action method.
18:04 jnthn I'm pondering changing that though.
18:04 pmichaud I wonder if it could/should be attached to <.newpad> somehow.
18:04 sorear note that in niecza currently, foo: say "hi"; die pi; LEAVE { goto foo }   prints hi twice
18:04 pmichaud that always seems to be a fairly appropriate point.
18:04 jnthn pads are all about PAST::Block though
18:04 sorear because a given LEAVE block is never invoked more than once for a given frame
18:04 jnthn We don't have an object yet.
18:04 * sorear wonders if this is sane
18:04 pmichaud yes, but when we create the object, we could look at its PAD
18:05 jnthn True.
18:05 jnthn There may not always be a pad though.
18:05 jnthn #= thingy
18:05 jnthn has $!thing;
18:05 pmichaud actually, I suspect that the $*POD_BLOCKS.push   should be separated from its attachment
18:05 pmichaud i.e., we always push a $*POD_BLOCK when it's created (in its action method), but attach it later.
18:06 pmichaud a dynvar could be used to keep track of the current pod block to be attached.
18:06 tadzik possibly
18:06 jnthn oh, so things declare a :my $*POD_BLOCK; if they themselves may get one?
18:06 pmichaud yeah, something like that.
18:06 jnthn And then take care of doing stuff to the "outer" one in the right order?
18:06 pmichaud the problem isn't in the attaching, it's in the order of the push.  and the order of push should always be the order of declaration, iiuc.
18:07 jnthn It either should just be that, or needs to have the equivalent result. And of course, finding a way to Just Do It is generally better.
18:08 pmichaud yeah, sorting on $/.from is too much like "fix it up later"
18:08 tadzik abit
18:09 im2ee joined #perl6
18:10 pmichaud what creates/sets $*DOC, ooc?
18:10 dalek specs: f0be5f1 | larry++ | S03-operators.pod:
18:10 dalek specs: prohibit only Range as endpoint of a Range
18:10 dalek specs:
18:10 dalek specs: Used to prohibit Iterable, with the sad result that we couldn't't
18:10 dalek specs: use an array for its size.
18:10 dalek specs: review: https://github.com/perl6/specs/commit/f0be5f1325
18:11 tadzik pmichaud: package_def for example
18:12 pmichaud it's just a string?
18:12 tadzik yes
18:12 tadzik (so far)
18:12 tadzik let me check if formatting codes may appear there
18:13 bbkr1 joined #perl6
18:13 tadzik declarator Pod blocks are syntactically like ordinary Perl 6
18:13 pmichaud what is $*POD_BLOCKS an array of?
18:13 tadzik single-line comments and embedded comments
18:13 tadzik that's a no I think
18:13 tadzik pmichaud: Pod::Blocks serialized
18:14 pmichaud can the Pod::Block be created by  the action method for comment:sym<#=> ?
18:14 jnthn tadzik: I presume the actual objects, not the serialization code?
18:14 pmichaud instead of doing it in the document() sub?
18:15 tadzik pmichaud: possibly, but then the Pod::Block::Declarator needs a method to fill in the .WHEREFORE later
18:15 pmichaud if so, then that action method can also push it into $*POD_BLOCKS
18:15 tadzik yes
18:15 pmichaud and they'll be pretty much guaranteed to appear in $*POD_BLOCKS in the order parsed
18:16 tadzik jnthn: <compile_time_value>
18:16 bbkr1 is anyone working on BSON converter? if not I will try it (it will make MongoDB library implementation possible)
18:16 tadzik yes
18:16 sorear let's bikeshed.  What should be the type and API of $_ in a CONTROL block?
18:16 pmichaud anyway, that's the approach I'd aim for.
18:17 pmichaud it would also mean that unattached #='s  still end up in $*POD_BLOCKS
18:17 pmichaud (if such a thing is possible)
18:17 jnthn tadzik: That later attachment shouldn't be a problem.
18:17 jnthn So pmichaud++'s idea seems a good one.
18:17 pmichaud is .WHEREFORE the reverse mapping of .WHY?
18:18 tadzik yes
18:18 pmichaud ah.
18:18 jnthn ffs, Parrot's NameSpace PMC is a real POS.
18:18 tadzik pmichaud: my idea to rename that to .BECAUSE didn't find any understanding, suprisingly :)
18:19 pmichaud tadzik: .WHYNOT?  ;-)
18:19 tadzik probably because it didn't start with .W :)
18:19 sorear .say for rx/Delete a file/.WHEREFORE;
18:20 tadzik Any()
18:20 pmichaud I think it should be called .JEOPARDY  :)
18:20 pmichaud (possibly obscure?)
18:21 pmichaud although easiest would simply to say that a Pod::Block  .documents something
18:21 pmichaud i.e., given a Pod::Block in $_,    .documents returns whatever it's documenting
18:21 tadzik so, to summarize: the document() sub finds the $*IMSOLONELY Pod::Block and sets its .WHEREFORE?
18:22 jnthn tadzik: Sounds sane.
18:22 pmichaud and also applies it to the declaration
18:22 woosley left #perl6
18:22 pmichaud (the thing being declared)
18:22 jnthn Aye
18:22 tadzik does the dynamic-variableness guarantee us that it'd be the right one?
18:22 tadzik yes, of course
18:22 pmichaud it should be at least as guaranteed as what you have now :)
18:22 pmichaud I'm simply saying to keep track of the Pod::Block instead of its content string :)
18:23 jnthn tadzik: Tip: set the .WHEREFORE in the trait_mod handler that applies the doc.
18:23 pmichaud ooooh, even better!
18:23 tadzik yes, that's what I want
18:23 pmichaud jnthn++
18:23 jnthn tadzik: That is, it already makes the association in one direction, so just make it wire the other one too :)
18:23 tadzik oh, but wait
18:23 tadzik nono
18:23 tadzik .WHEREFORE is the Pod::Block::Declarator object
18:24 tadzik the class' .WHY is not a Pod::Block::Declarator, it's a string
18:24 jnthn oh
18:24 jnthn Why? :)
18:24 pmichaud classes have a block
18:25 tadzik my $chainsaw;        #= This text stored in C<$chainsaw.WHY>
18:25 jnthn I'd kinda expect that for a docuemtned thing, $thing.WHY.WHEREFORE =:= $thing or so
18:25 jnthn well, maybe ===
18:25 pmichaud yeah, same here.
18:25 tadzik we can change that
18:25 tadzik then Pod::Block::Declarator can have an .Str or even be Cool
18:26 pmichaud I think I've pushed this a little better direction, hopefully.  tadzik++ jnthn++
18:26 pmichaud now to reward myself with lunch
18:26 tadzik pmichaud++ # evenly distributed karma
18:27 pmichaud TimToady: (S03 Range change) ...   should we also update the text to say that if any endpoint is Real, the Range is Real?
18:27 pmichaud (the Range is a range of Reals?)
18:28 pmichaud currently it's tied to the left endpoint.
18:28 TimToady yes, in fact this policy is already stated under smartmatching, so it'd be consistent
18:28 pmichaud right
18:28 pmichaud just confirming that we're consistifying there :)
18:29 pmichaud okay, lunch, then hacking
18:29 pmichaud bbiaw
18:31 noganex_ joined #perl6
18:32 sorear TimToady: what would you like to see in $_ in a CONTROL block?
18:34 HarryS joined #perl6
18:36 mj41 joined #perl6
18:36 dalek niecza: 83bb53b | sorear++ | src/niecza:
18:36 dalek niecza: Fix CATCH/CONTROL action methods; they are actually statement_control, not _prefix, oops.
18:36 dalek niecza: review: https://github.com/sorear/niecza/commit/83bb53b50d
18:45 dalek niecza: 3421bd8 | sorear++ | src/niecza:
18:45 dalek niecza: Fix duplicate CATCH detection
18:45 dalek niecza: review: https://github.com/sorear/niecza/commit/3421bd8fec
19:05 diakopter sorear: btw, niecza built without a hitch on Windows under cygwin; I did have to do simple things like make sure git and mono were in $PATH
19:15 mberends diakopter++
19:16 sorear yay
19:19 diakopter sorear: mono run/Niecza.exe -e 'say "Makefile".IO ~~ :z' # returns Bool::False... shouldn't it complain z method not found
19:24 diakopter sorear: actually IO ~~ :e seems to always return false
19:26 diakopter say "Makefile".IO.e # works though
19:28 noam joined #perl6
19:29 diakopter ah well, I won't explicitly target the spec tests which all use the ~~ form; I'll test with the . form
19:31 diakopter niecza: say "Makefile".IO.e
19:31 p6eval niecza v8-41-g3421bd8: OUTPUT«Unhandled exception: CORE IO.e may not be used in safe mode␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (CORE IO.e @ 0) ␤  at /tmp/XU9eY3XiXM line 1 (MAIN mainline @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1983 (CORE C930_ANON @ 2) ␤  at /ho…
19:31 diakopter oh; heh
19:36 sorear diakopter: I guess ~~ :e is being treated as ~~ Pair
19:37 * diakopter was stuck at DFW airport for 8 hours yesterday; had to be deplaned from two different planes because of mechanical problems.  all for a 40 minute flight.
19:38 diakopter sorear: how to fix the ~~ :e thing
19:42 sorear check if Pair defines ACCEPT
19:42 sorear if not, add it
19:42 sorear look at what Rakudo does to see what it should do
19:43 sorear probably something like method ACCEPTS(\$what) { defined(self) ?? ($what."$.key"() ~~ $.value) !! nextsame }
19:43 sorear except that's not quite right, since it would make :e always true
19:52 kboga https://github.com/rakudo/rakudo/pull/35
19:53 dorlamm joined #perl6
19:56 betterworld joined #perl6
20:00 dalek rakudo/nom: f1de2a8 | jonathan++ | src/Perl6/ModuleLoader.pm:
20:00 dalek rakudo/nom: Start to flesh out module loading a bit; make it pay attention to @*INC at least, and even failing that (due to no setting loaded yet) at least check installed locations.
20:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f1de2a85ea
20:00 dalek rakudo/nom: e37f879 | jonathan++ | tools/build/Makefile.in:
20:00 dalek rakudo/nom: Install CORE.setting.pbc, so we now at least find this when running from an installed version. Not quite there yet - we struggle with loading the module loader.
20:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e37f879703
20:00 dalek rakudo/nom: 1119188 | jonathan++ | src/Perl6/SymbolTable.pm:
20:00 dalek rakudo/nom: Make sure we can locate the Perl 6 module loader from the installation.
20:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1119188196
20:00 dalek rakudo/nom: e48d487 | jonathan++ | src/Perl6/ModuleLoader.pm:
20:00 dalek rakudo/nom: Quick cheat for loading NQP::Metamodel in the setting; will un-cheat it in forthcoming modules work.
20:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e48d487886
20:00 dalek rakudo/nom: d70d16a | jonathan++ | NOMMAP.markdown:
20:00 dalek rakudo/nom: nom is now installable; update nommap. Again, nuking your current install directory is recommended if you didn't already do so with the NQP upgrade.
20:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d70d16a16e
20:10 masak pmichaud: yes, I'd vote for the array coercing going in rather than going out.
20:18 TimToady sorear: I'd think a control exception shouldn't be much heavier than a small integer; they don't have to be easily extensible by the user, and they want to be fast.  So that's what I'd expect in $_.
20:18 TimToady just enough to run a switch
20:19 TimToady (assuming the control exception doesn't have to carry the return value)
20:20 TimToady nap &
20:20 [Coke] nom from earlier this morning: "total",      9385,     0,   392,  1090, 10867, 36394
20:21 im2ee joined #perl6
20:21 [Coke] (nom fudging) I have been using the string "nom regression" on those.
20:22 [Coke] (to make them easier to find and fix later. in the meantime, better to /run/ the tests than to skip them entirely.)
20:23 bbkr1 how 2 Buf objects can be joined?
20:23 * moritz suspects there could or should be an infix:<~> for that
20:24 moritz jnthn++ # making rakudo installable
20:24 jnthn moritz: plz test :)
20:25 moritz jnthn: a say "foo" worked from outside the build dir
20:25 jnthn nom: say "I survived what jnthn did so far!"
20:25 p6eval nom: OUTPUT«I survived what jnthn did so far!␤»
20:25 bbkr1 rakudo: my $x = Buf.new([:16<02>]) ~ Buf.new([:16<00>]); $x.WHAT.say # does not work.
20:25 p6eval rakudo 922500: OUTPUT«Str()␤»
20:25 jnthn moritz: yay :)
20:25 moritz bbkr1: that's worth a bug report
20:27 bbkr1 can I append some values then to already created buf? I will report the bug of course but lack of workaround will stop my BSON project.
20:28 tadzik wow, what did I miss!
20:28 * tadzik starts porting modules and panda
20:28 masak \o/
20:28 jnthn tadzik: er
20:28 jnthn Installable
20:28 jnthn Didn't do the non-pre-compiled case yet :)
20:29 sorear bbkr1: Buf in Rakudo is a thin wrapper around my Int @x
20:29 jnthn tadzik: Feel free to start porting modules. I'd hold off a little on Panda (more)
20:29 tadzik that's a good excuse to do the proper order of compiling stuff in panda ;)
20:29 masak diakopter: I just got my Sudoku solver to do a bit of solving: https://gist.github.com/1129521
20:29 masak (not committed yet. coming right up.)
20:29 jnthn tadzik: I'm still working out exactly how it will look, but I'm thinking the installer will just install the .pm files
20:30 jnthn tadzik: And we'll leave Rakudo itself to take care of the PIR cache.
20:30 diakopter masak: cool!
20:30 [Coke] jnthn++
20:30 [Coke] pmichaud++
20:31 jnthn tadzik: Otherwise people end up with pre-compiled files all over that are out of date with their current Rakudo install.
20:33 tadzik jnthn++ # this jonathan guy stealing all the karma
20:33 awwaiid joined #perl6
20:33 moritz $ ls blib/lib/XML/Writer.pir
20:33 moritz blib/lib/XML/Writer.pir
20:33 moritz $ PERL6LIB=blib/lib perl6 -e 'use XML::Writer'
20:33 moritz "load_bytecode" couldn't find file 'XML/Writer.pbc'
20:33 moritz shouldn't that work?
20:34 jnthn moritz: In nom?
20:35 moritz jnthn: yes
20:35 jnthn moritz: May do if you turn it into a PBC
20:35 moritz the PERL6LIB is correctly added to @*INC
20:35 jnthn moritz: It goes through @*INC looking for .pbc
20:35 jnthn moritz: In theory at least.
20:35 jnthn moritz: I'm still heavily working on the whole module loading thing.
20:36 jnthn moritz: It's quite feasible we don't detect .pir stuff now
20:36 moritz doesn't work with .pbc either
20:37 moritz ah well, will try tomorrow
20:37 kboga left #perl6
20:37 jnthn ok
20:38 * jnthn takes a little break...bbs
20:38 sorear phenny: tell TimToady an unreified control exception in niecza contains an int, an optional Frame (for lexotic throws), and an optional string (label).  Pass a tuple to CONTROL?
20:38 phenny sorear: I'll pass that on when TimToady is around.
20:39 mj41 joined #perl6
20:41 moritz jnthn: strace shows that nom never looks into directories that I add to @*INC or PERL6LIB
20:53 * moritz -> sleep
20:55 masak 'night, moritz.
20:55 masak dream of visits to the @*INC and PERL6LIB directories.
20:58 soh_cah_toa joined #perl6
21:01 bbkr1 what is the most proper way in P6 to express "defined $foo" from P5?
21:02 masak rakudo: my $foo; say defined $foo
21:02 p6eval rakudo 922500: OUTPUT«Bool::False␤»
21:02 masak dunno about 'most proper', but it gets you a Bool :)
21:02 masak bbkr1: by the way, welcome back. :)
21:03 bbkr1 indeed, defined works like in old school ...
21:04 masak we kept the parts that work well.
21:04 bbkr1 i'm also glad to get back to P6
21:05 masak P6 holds you in a soft embrace.
21:07 huf joined #perl6
21:09 noganex joined #perl6
21:11 dorlamm joined #perl6
21:15 bbkr1 oh, defined also works properly as a topic variable attribute now. given $x { when .defined { say "OK" } } works \o/
21:15 tadzik jnthn: shouldn't we maybe install Test.pir in addition to Test.pm?
21:15 jnthn no
21:15 tadzik mhm
21:15 tadzik I just patched the Makefile to install Pod/To/Text.pm too, but shame it won't work :)
21:16 jnthn tadzik: Yeah, I'm working on modules thing
21:16 jnthn Though probably won't really land it until tomorrow.
21:16 tadzik no hurry
21:17 * masak is glad tadzik went with a capital 'T' in 'To'
21:18 masak bbkr1: it's a method, yes.
21:19 masak rakudo: my $foo; say $foo.defined
21:19 p6eval rakudo 922500: OUTPUT«Bool::False␤»
21:19 lue joined #perl6
21:19 masak lue! \o/
21:19 lue hello world! o/
21:19 * masak turns on the groovy music
21:20 Sarten-X joined #perl6
21:20 lue I just saw the git log, nom is installable! \o/
21:20 tadzik jnthn: compiling the setting seems to segfault randomly to me :/
21:21 amkrankruleuen joined #perl6
21:22 jnthn tadzik: huh? :/
21:22 jnthn tadzik: Got local patches?
21:22 tadzik jnthn: no that I know of
21:23 molaf joined #perl6
21:24 lue I noticed MAIN doesn't work yet (at least I did last night), the error complains about a nonexistent MAIN_HELPER routine.
21:24 tadzik yeah, I almost brought that to work
21:26 soupified2011 joined #perl6
21:26 tadzik make: *** [CORE.setting.pbc] Bus error
21:26 tadzik wtf
21:26 jnthn :/
21:26 tadzik maybe I should stop recompiling Parrot
21:34 tadzik bleh, it failed for like 4th time in a row. I'll try in a gdb
21:38 bbkr1 joined #perl6
21:38 tadzik jnthn: https://gist.github.com/1129777
21:39 kboga joined #perl6
21:39 jnthn Holy shit!
21:40 jnthn *sigh*
21:41 jnthn tadzik: Is it random?
21:41 tadzik jnthn: I'll rerun
21:42 tadzik dunno what caused that, the nom changes, the nqp changes or the parrot changes :/
21:43 bbkr1 does anyone need Mac OS X environment? I just set up shiny Lion 10.7 server so if you need free shell to test your modules compatibility leave me message on GitHub (user bbkr).
21:43 jnthn tadzik: It bothers me that we're hitting that clone case.
21:44 Psyche^ joined #perl6
21:47 mberends bbkr: I'd like to use an OS X shell account for compatibility testing
21:47 jnthn tadzik: Do you have the gdb foo to work out what _pmc is in thaw?
21:47 jnthn *fu
21:48 tadzik no, I don't think so
21:49 tadzik [Inferior 1 (process 29404) exited normally]
21:49 tadzik lucky :)
21:51 dalek roast: e0a9375 | Coke++ | S03-operators/range.t:
21:51 dalek roast: unfudge a bit for nom
21:51 dalek roast: review: https://github.com/perl6/roast/commit/e0a9375489
21:52 [Coke] pmichaud++ hyper meta op bought us back some tests.
21:53 dalek rakudo/nom: 0c336ba | Coke++ | t/spectest.data:
21:53 dalek rakudo/nom: run more spectests, track failure modes
21:53 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0c336bae32
21:56 jnthn tadzik: Got something here.
21:56 tadzik oh?
21:56 bbkr1 mberends: sure, I'l post you login details on GitHub. 10 minutes.
21:58 jnthn tadzik: Yeah, the trace gave me a good lead. Thanks.
21:59 tadzik you're welcome :)
22:00 dalek rakudo/nom: 397cf71 | tadzik++ | tools/build/Makefile.in:
22:00 dalek rakudo/nom: Install Pod/To/Text.pm along with Test.pm
22:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/397cf7114d
22:04 soupified2011 joined #perl6
22:06 bbkr1 mberends: details sent via GitHub, please confirm if login works.
22:06 soupified2011 joined #perl6
22:06 jnthn tadzik: Think it's led me to a performance bug.
22:06 tadzik good :)
22:07 tadzik nom: sub foo(Bool :$alpha) { my $binary = $alpha ?? 'alpha' !! 'perl6'; }; foo()
22:07 p6eval nom: OUTPUT«"load_bytecode" couldn't find file 'CORE.setting.pbc'␤current instr.: 'nqp;Perl6;ModuleLoader;_block1137' pc 3132 (src/gen/perl6-moduleloader.pir:1248) (src/Perl6/ModuleLoader.pm:136)␤»
22:07 tadzik meh
22:07 jnthn Maybe multiple. SixModelObject's clone v-table should never have really been called. Turns out in some places hashes get deep-cloned when shallow woulda done.
22:07 jnthn evalbot rebuild nom
22:07 p6eval OK (started asynchronously)
22:07 tadzik > sub foo(Bool :$alpha) { my $binary = $alpha ?? 'alpha' !! 'perl6'; }; foo()
22:07 tadzik Cannot unbox type object to a native integer
22:08 tadzik works fine when omitting Bool
22:08 tadzik how do I fix this? :)
22:08 jnthn Bool.Bool maybe wants :D
22:08 tadzik Boo!
22:09 tadzik > my $a = True; $a.Bool
22:09 tadzik True
22:09 tadzik oh, :D
22:09 tadzik I thought you were laughing...
22:09 jnthn no, I meant, like, Bool:D as invocant :P
22:09 tadzik multi method Bool(Bool:D:)    { self }
22:09 tadzik looks fine, what is the trailing :?
22:09 mberends bbkr1: thanks, logged in, password changed :-)
22:09 jnthn Means it's the invocant
22:10 jnthn Oh, that already looks fine. Hm
22:10 tadzik ok
22:10 jnthn tadzik: Way does say ?Bool do?
22:10 jnthn or if Bool { say 42 }
22:10 jnthn *What
22:11 tadzik > say ?Bool
22:11 tadzik Bool::False
22:11 tadzik > if Bool { say 1}
22:11 tadzik Cannot unbox type object to a native integer
22:11 tadzik gotcha
22:11 jnthn aha
22:11 jnthn oh
22:11 lue blog post!    https://rdstar.wordpress.com/2011/08/06/ideas-for-me-to-improve-perl-6/
22:11 jnthn BOOTSTRAP.pm, look for get_bool v-table override in Bool
22:12 tadzik unbox_i
22:12 tadzik rong?
22:12 tadzik should be nqp::p6bool maybe?
22:12 jnthn It's fine, just not when the thing isn't defined :)
22:12 tadzik oh :)
22:13 jnthn No, this is the low-level thingy that breaks the booleanization circularity. :)
22:13 tadzik (:
22:13 tadzik black magic
22:13 jnthn Yeah
22:13 tadzik how do I fix this?
22:13 tadzik $self.defined ?? ... !! ...
22:13 tadzik or so?
22:13 jnthn no
22:14 jnthn repr::defined__IP($self) ?? unboxi ... !! 0
22:14 jnthn gah
22:14 tadzik I get it
22:14 jnthn pir::repr_defined__IP I meant
22:18 masak lue: nice to see you back to blogging.
22:18 tadzik lue: nice post :) In addition to the graph, how about documenting the standard methods in a nice way?
22:19 [Coke] if I want to try adding a glob sub, but not put it in the setting to start... where to put it?
22:19 lue It's been forever since I've done anything P6, that's likely part of the reason why I'm scared of nom. Just trying to ease into it.
22:20 tadzik [Coke]: File::Glob or so?
22:20 tadzik lue: nom is very friendly :)
22:21 lue tadzik: That's another good idea. I've actually thought of adding a fourth group of documents to the synopses, in addition to the Synopses, Apcolypses, and Exegeses, that explains the S's in easy to understand language
22:21 lue (like Exegesis does for Apcolypse)
22:21 tadzik one day it should be possible to do this in the setting :)
22:22 tadzik and be able to do &sort.WHY and so
22:22 [Coke] er... /global/
22:22 tadzik oh
22:22 jnthn [Coke]: What do you mean by "global"?
22:22 [Coke] I want to prototype, e.g. "cosh"
22:22 tadzik put it in any module and make it 'is export'? Not sure if I understand correctly
22:23 jnthn .oO( dang, I thought we were getting an implementation of &glob :P )
22:23 [Coke] maybe later. :P
22:23 tadzik nom: module Foo { sub cosh is export { 1 } }; cosh()
22:23 p6eval nom: OUTPUT«"load_bytecode" couldn't find file 'CORE.setting.pbc'␤current instr.: 'nqp;Perl6;ModuleLoader;_block1137' pc 3132 (src/gen/perl6-moduleloader.pir:1248) (src/Perl6/ModuleLoader.pm:136)␤»
22:23 jnthn [Coke]: Why not just write a sub cosh() { ... }?
22:23 lue I've already figured the type hierarchy isn't documented in one nice little section of a spec, is it?
22:23 tadzik bleh
22:23 jnthn [Coke]: Are you wanting to implement it in order to get some tests passing?
22:23 [Coke] jnthn: yes, where? (I'm trying to avoid having the setting recompile on me)
22:23 [Coke] jnthn: yes.
22:24 jnthn [Coke]: Take a copy of the test file and just write a sub cosh at the top of it? :)
22:24 [Coke] the trig tests look like LHF at the moment.
22:24 [Coke] jnthn: ... I'll just put it where I think it goes. :P
22:25 jnthn Or put them in a module, mark them is export, pre-compile the module to PIR
22:25 jnthn And then use ThatModule
22:27 jnthn tadzik: Think I have a patch towards helping the segfault.
22:27 tadzik yay
22:27 jnthn tadzik: Bad news is that it's to something in the Parrot repo so it'll be version bumps all the way down.
22:28 tadzik no problem :)
22:28 jnthn Also adding a sanity check to make sure we don't accidentally run into this kinda thing again.
22:29 [Coke] jnthn++ #fixing parrot b00gs. I appreciate it.
22:30 jnthn [Coke]: PAST::Compiler one
22:30 tadzik oh, benabik is gonna be happy :P
22:30 jnthn l(
22:30 jnthn er
22:30 jnthn ;)
22:30 [Coke] kboga: I think I manually applied some of your pull requests without seeing your pull requests.
22:30 [Coke] kboga++
22:30 jnthn kboga++
22:31 kboga np, those were just test enable's anyway :)
22:32 kboga credit goes out to pmichaud++ all the way for his work on the metaops
22:32 [Coke] aye.
22:33 * [Coke] wonders if his newish work laptop (win7) compiles perl6 faster than his older mac osx desktop.
22:33 tadzik heh, I tried to continue my gsoc work when my laptop was broken. My PC needed 30 minutes to compile nom :)
22:36 [Coke] yah, that's why I was trying to avoid putting anything in the setting until I was ready. ;)
22:36 tadzik nom: say 1
22:36 p6eval nom: OUTPUT«"load_bytecode" couldn't find file 'CORE.setting.pbc'␤current instr.: 'nqp;Perl6;ModuleLoader;_block1137' pc 3132 (src/gen/perl6-moduleloader.pir:1248) (src/Perl6/ModuleLoader.pm:136)␤»
22:36 tadzik aroo
22:37 kboga S03-metaops/cross.t passes all but one test that was marked todo for master (but now segfaults), skip with 'nom regression' message?
22:37 PacoLinux joined #perl6
22:37 kboga nom: my @result = [~]«( <a b> X, <1 2> );
22:37 p6eval nom: OUTPUT«"load_bytecode" couldn't find file 'CORE.setting.pbc'␤current instr.: 'nqp;Perl6;ModuleLoader;_block1137' pc 3132 (src/gen/perl6-moduleloader.pir:1248) (src/Perl6/ModuleLoader.pm:136)␤»
22:37 jnthn kboga: It'd be nice to know the segfaulting code
22:39 tadzik 'bababa $binary foo'.subst('$binary', 'fasada') hangs on nom, it seems
22:39 tadzik rakudo: say 'bababa $binary foo'.subst('$binary', 'fasada')
22:39 p6eval rakudo 922500: OUTPUT«bababa fasada foo␤»
22:40 kboga oh no, my bad no segfault, mixed it up with something else
22:40 jnthn ah, OK :)
22:41 tadzik is there augment in nom?
22:41 jnthn no
22:41 kboga anyways the test is currently todo with this message: "Not at all clear if this test is correct or not"
22:42 tadzik I wonder which part of Str.subst hangs
22:42 tadzik rakudo:  'asd $binary foo'.match('$binary'); say 1
22:42 p6eval rakudo 922500: OUTPUT«1␤»
22:42 tadzik ok, that was easy :)
22:43 tadzik that one hangs on nom
22:45 kboga nom: ( <a b> X, <1 2> ).perl
22:45 p6eval nom: OUTPUT«"load_bytecode" couldn't find file 'CORE.setting.pbc'␤current instr.: 'nqp;Perl6;ModuleLoader;_block1137' pc 3132 (src/gen/perl6-moduleloader.pir:1248) (src/Perl6/ModuleLoader.pm:136)␤»
22:45 lue afk
22:46 PacoLinux__ joined #perl6
22:47 [Coke] jnthn: do you find that nmake on windows is rebuilding things it shouldn't?
22:48 [Coke] (I just built rakudo, fine. I then immediately ran "nmake spectest" and it started rebuilding again, including the setting.
22:48 tadzik oh the pain
22:48 jnthn [Coke]: Yes :(
22:49 jnthn [Coke]: I tracked it down to $(DYNOPS)
22:49 jnthn But no further
22:49 jnthn :(
22:49 jnthn Spent a while on it but no joy.
22:49 dalek rakudo/nom: 6d7cf62 | tadzik++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
22:49 dalek rakudo/nom: Fix Bool.get_bool vtable mapping, jnthn++
22:49 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6d7cf6261e
22:52 jnthn hmm. Why does git describe --match RELEASE* fail in Parrot repo?
22:52 tadzik dunno
22:52 tadzik jnthn: any performance wins in the last commit?
22:52 jnthn tadzik: Probably not really
22:52 jnthn tadzik: It saves enabling/disbling GC a load
22:52 jnthn May help a bit
22:52 jnthn Should save some allocations at least
22:57 jnthn Most importantly, we don't take the segfaulty code path any more :)
22:58 tadzik yay :)
22:58 jnthn Seems the issue has been there ages and we just got the memory alignment and bad luck to hit it today
22:58 [Coke] jnthn: think found the problem.
22:58 [Coke] (with namke)
22:58 jnthn [Coke]: Ooh!
22:59 jnthn ++[Coke]
22:59 jnthn I'd *love* a patch for that :)
23:00 [Coke] working on it.
23:02 jnthn huh what...
23:02 jnthn When I configure NQP with latest build Parrot I get "Unrecognized revision specifier 'show'"
23:05 [Coke] testing... dinner time, though
23:06 masak jnthn: sounds like bad parsing of git output somewhere.
23:13 drbean joined #perl6
23:14 jnthn masak: seems so, I nuked the repo and cloned afresh and things are better.
23:14 jnthn oh, no
23:15 jnthn hmm, and even when Parrot builds and installs and nqp builds, the build fails and the produced nqp executable won't run :/
23:16 PacoLinux joined #perl6
23:30 Moukeddar joined #perl6
23:31 jnthn :/
23:31 jnthn Could somebody else try building nqp on latest Parrot?
23:31 jnthn Here it does with "Null PMC access in set_integer_native()" towards the end of the build.
23:32 tadzik ooh, spectest all clean
23:32 tadzik jnthn: trying
23:33 jnthn Curiously, running the PBC works, just not the executable.
23:35 tadzik jnthn: seems to work fine
23:35 tadzik just did make clean; make
23:37 jnthn tadzik: ah, something musta been dirty here
23:37 jnthn Just finished a successful build.
23:37 jnthn tadzik: Thanks
23:37 tadzik no problem
23:37 tadzik my eyes autoclose, sleepytime is near
23:38 jnthn :)
23:38 jnthn same here
23:38 jnthn Can get the nqp version bump in though first :)
23:40 molaf joined #perl6
23:47 dalek nqp: ed093d3 | jonathan++ | tools/build/PARROT_REVISION:
23:47 dalek nqp: Bump PARROT_REVISION to get PAST::Compiler tweak.
23:47 dalek nqp: review: https://github.com/perl6/nqp/commit/ed093d3d19
23:47 dalek nqp: 265a34e | jonathan++ | src/pmc/sixmodelobject.pmc:
23:47 dalek nqp: Throw an exception if the clone vtable is called on a 6model object - it doesn't support it in any sane way (yet) and the default does insane things.
23:47 dalek nqp: review: https://github.com/perl6/nqp/commit/265a34edfc
23:48 [Coke] jnthn: back from dinner. initial attempt buggy, retrying.
23:48 bbkr1 joined #perl6
23:57 [Coke] the nqp version got bumped, but rakudo's nqp version didn't.
23:57 [Coke] perl6lexpad.c: In function ‘Parrot_Perl6LexPad_set_pointer_orig’:
23:57 [Coke] perl6lexpad.c:618: warning: request for implicit conversion from ‘void *’ to ‘const struct PMC *’ not permitted in C++
23:57 jnthn [Coke]: Not pushed yet, just making sure Rakudo builds :)
23:58 jnthn [Coke]: Ah, one of those errors...
23:58 [Coke] k. I have a fix for the makefile. testing on os x before pushing.
23:58 jnthn [Coke]: I've little idea what to do about those - I trust a C++ hacker can supply a patch some day. :)
23:58 PacoLinux__ joined #perl6
23:59 sftp joined #perl6

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

Perl 6 | Reference Documentation | Rakudo