Camelia, the Perl 6 bug

IRC log for #parrot, 2011-06-03

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:07 davidfetter left #parrot
00:14 dmalcolm left #parrot
00:22 soh_cah_toa whiteknight++ indeed. finally some decent docs for winxed. very nice
00:30 lucian_ is now known as lucian
00:30 * lucian hugs whiteknight in a totally non-awkward way
00:30 whiteknight thanks! It's clearly not complete or anything
00:31 whiteknight a good starting point
00:31 lucian still very useful, especially the list of builtins
00:31 whiteknight also it's in the rosella repo now, so pull requests accepted
00:37 dalek parrot: 88938d0 | soh_cah_toa++ | src/call/pcc.c:
00:37 dalek parrot: Added missing =cut that was messing up perldoc
00:37 dalek parrot: review: https://github.com/parrot/parrot/commit/88938d04dc
00:42 whiteknight lucian++ on the blogpost
00:43 lucian whiteknight: thanks, it's just narration
00:45 whiteknight lucian++ on the narration
00:46 lucian :)
00:47 lucian whiteknight++: in winxed, is using an expression?
00:48 whiteknight i don't think so
00:48 whiteknight I thnk it's a statement
00:49 lucian it bothers me that the last name in the chain is just bound locally
00:50 whiteknight yeah
00:50 whiteknight i never liked that too much either
00:50 whiteknight there is a "using namespace" statement that's newer and probably does more of what you want
00:51 lucian yeah, that does sound better
00:52 whiteknight but that's for static searches only. Doesn't work for dynamically loaded libaries
00:52 lucian hmm
00:53 lucian bleah, the named arg calling syntax is yucky
00:53 lucian declaring syntax isn't much better, but i understand why
00:53 Tene somehow, the only code that I've actually written for personal projects in the past year or so has all been tiny little toys doing shit with dynamically loaded libraries.
00:57 soh_cah_toa cotto: i've run into an issue. Parrot_sub_get_line_from_pc() only reports the line number if there's an opcode. if there's anything else like ".local pmc foo", it does nothing
00:57 soh_cah_toa cotto: not only that but it seems to be giving me -1 randomly. sometimes a legimate number, sometimes -1. it's weird
00:58 lucian i think i found a bug in winxed, or at least a missing feature
00:59 whiteknight lucian: what?
00:59 lucian it uses .line for marking line numbers, and the docs recommend .annotate
01:00 lucian if i understand this correctly, that's the reason parrot doesn't report line numbers on failures in winxed files
01:00 whiteknight where, in the generated PIR?
01:00 lucian yeah
01:01 whiteknight when I do it, I see ".annotate 'line' XX"
01:01 lucian you do? odd. let me try again
01:02 cotto ~~
01:02 lucian oh, me too. i'm confused, why did i see .line yesterday
01:02 cotto need nom
01:02 lucian whiteknight: oh, btw, i ended up writing a python distutils command for building winxed and pir
01:02 cotto will investimagate in a bit
01:03 whiteknight lucian: oh, nice
01:03 lucian if it works out well, i'll probably put it on PyPI or something
01:06 benabik_ joined #parrot
01:08 benabik left #parrot
01:08 benabik_ is now known as benabik
01:16 soh_cah_toa man, i am so stumped. there really is no legimate way to find line numbers in pir code
01:16 soh_cah_toa even w/ annotations it's difficult b/c (at least in winxed) annotations only start at the first statement. any comments or "function foo()"'s before the first statement don't get annotated
01:16 soh_cah_toa scratch that. comments aren't annotated at all
01:17 sorear comments don't need to be annotated
01:17 soh_cah_toa but what if i want to stop at one?
01:17 soh_cah_toa break that is
01:17 whiteknight soh_cah_toa: I figured it was going to be hard. I didn't think it was impossible
01:17 sorear gdb doesn't allow breaking on comments
01:17 sorear why should you?
01:17 sorear only allow breaking on executable code
01:18 soh_cah_toa it doesn't? i was pretty sure it did
01:18 * soh_cah_toa checks
01:18 sorear if the user tries to break on a comment, gdb instead breaks on the first executable code after the comment
01:18 cotto If someone wants to do something silly like break at a comment, cheat.
01:18 cotto do what sorear said
01:19 soh_cah_toa yeah, i just tried it. that's exactly what it does
01:20 cotto I'm not sure if you'd even call that cheating.
01:21 soh_cah_toa i also can do a "run to main" type thing b/c things like "function foo()" aren't annotated as well
01:21 soh_cah_toa *can't
01:22 cotto You don't need annotations for that.  Just check the current context for the function name.
01:22 benabik One last NQP question for the night:  Is `self.meth(|%hash)` the same as PIR's `self.'meth'(hash :flat :named)`?
01:23 sorear yes
01:23 soh_cah_toa agh, i'm not even gonna try going into context's tonight. i have a big enough headache already. stopping at function definitions will be another day
01:24 benabik Converting PIR to NQP is very educational about what PCT does.
01:25 bubaflub benabik: are you rewriting stuff that was in the Q:PIR { } blocks into NQP?
01:25 benabik bubaflub: Yes.
01:25 bubaflub benabik: fantastic.
01:25 benabik bubaflub: https://github.com/Benabik/parrot/commits/nqp_pct
01:26 bubaflub benabik: great work - that's much much simpler
01:28 benabik bubaflub: The resulting PIR is much larger in most cases.
01:29 bubaflub benabik: really?  is that because of the inefficiency of generated PIR?
01:30 benabik bubaflub: Mostly, yes.  PCT is not smart enough to do things once and cache the results, and it spends a decent amount of time boxing and unboxing.
01:31 benabik bubaflub: I don't expect that the final result will be too much slower. (timewise)
01:31 bacek left #parrot
01:32 bubaflub benabik: interesting. i imagine having stuff in NQP will be easier to optimize later, right?
01:32 benabik bubaflub: It will make it easier to change, really.  Making the computer work a bit harder in order to reduce programmer time.
01:32 benabik bubaflub: Also, I hope that PCT will learn to be better.
01:34 bubaflub benabik: great.
01:37 benabik bubaflub: An earlier GSoC project: https://github.com/parrot/tree-optimization - should make it possible to do nice optimizations.
01:37 cotto soh_cah_toa, no problem.  I think you'll discover that finding the function name is much easier than dealing with annotations.
01:37 bubaflub benabik: ah, i remember that one.
01:38 soh_cah_toa cotto: i hope so
01:48 cotto soh_cah_toa, I see you made a commit to master.  Do you want to move your branch to parrot/parrot?
01:48 soh_cah_toa sure
01:55 kid51 joined #parrot
01:58 whiteknight left #parrot
02:00 bubaflub left #parrot
02:02 kid51 left #parrot
02:03 soh_cah_toa what header file do i need to #include to use CONST_STRING()? gcc is whining about an undefined reference
02:04 cotto It's a magic macro that gets converted by c2str.pl
02:04 cotto The easier answer is to use Parrot_str_new_from_cstring (or the similarly named function that exists)
02:05 cotto Parrot_str_new_constant
02:05 benabik I should probably move the stable bits of my fork into parrot/parrot.  Of course, I made a bunch of changes to what I thought was stable earlier.
02:05 cotto Go for it.  We're adventurous.
02:07 benabik And I could close my ticket on PDD 19.  :-D
02:12 dalek parrot: 51ee42f | (Brian Gernhardt)++ | docs/pdds/pdd19_pir.pod:
02:12 dalek parrot: PDD 19: Explain :method :multi(_)
02:12 dalek parrot:
02:12 dalek parrot: I didn't expect :multi to need to add the type of the invocant.  So
02:12 dalek parrot: let's add an explanation to the first place I looked for an answer.
02:12 dalek parrot: review: https://github.com/parrot/parrot/commit/51ee42f4cc
02:16 cotto benabik, you can add yourself to CREDITS with an a: line for your irc nick and an e: line for your github email address and dalek will credit your irc nick
02:16 benabik cotto: That sounds clever.
02:16 cotto we love our hacks
02:16 cotto why do you think we have so many? ;)
02:17 benabik Alphabetical by N: field?
02:17 cotto something like that
02:17 cotto t
02:19 dalek parrot: c2e3158 | benabik++ | CREDITS:
02:19 dalek parrot: Add myself to CREDITS
02:19 dalek parrot:
02:19 dalek parrot: I like getting credit for things.
02:19 dalek parrot: review: https://github.com/parrot/parrot/commit/c2e3158b22
02:20 soh_cah_toa cotto: i'm not sure if i already asked this but is there a way to retrieve any annotations that are in effect given the current opcode (pc)? maybe a pc->anno that returns a PackFileAnnotation pmc?
02:20 cotto benabik, and it worked
02:21 benabik Let's see if the other thing worked.
02:21 dalek Heuristic branch merge: pushed 1500 commits to parrot/nqp_pct by Benabik
02:21 benabik :-D
02:23 benabik GSoC week 2 and I've already pushed 1502 commits.
02:24 cotto soh_cah_toa, I think so.  Let me check.
02:25 cotto actually, I remember my answer: the annotations ops
02:25 lucian i think my commit messages are getting a bit too long
02:25 soh_cah_toa oh yeah
02:26 benabik lucian: I generally like descriptive commits, although I try to keep the first line short.
02:26 cotto lucian, benabik has the right idea.  put a short summary as the first line, leave a blank line and then go nuts.
02:26 lucian hmm, good point
02:26 cotto Long commit messages are great if properly formatted.
02:27 benabik Strangely enough, my current commits all have short messages.  But I'm not doing much complicated yet.
02:27 lucian i realised it was getting a bit silly when i started detailing future plans in them :)
02:27 cotto There's a line between what belongs in a commit message and what deserves its own blog post.
02:28 * lucian nods
02:28 lucian usually it's things like "did this in way Foo, should change to Bar soon"
02:28 cotto on a completely unrelated note, "time sync" is a very self-descriptive command
02:29 lucian let me guess: it syncs time?
02:32 dalek TT #2122 closed by benabik++: :method and :multi
02:32 dalek TT #2122: http://trac.parrot.org/parrot/ticket/2122
02:33 cotto it's a time sink
02:39 soh_cah_toa cotto: PackFile_Annotations_lookup() returns a hash pmc. 1) how can i make sure this is a line annotation and not something else and 2) how do i get a pmc hash value in c code?
02:39 cotto Use the vtable interface.  It's a little clunky but quite doable.
02:40 cotto you'll probably want to iterate through it
02:40 bubaflub joined #parrot
02:41 cotto Personally, I'd focus on getting PIR-only breakpoints working first.  You should try to get a minimal viable debugger going as your first goal.
02:42 soh_cah_toa yeah but Parrot_sub_get_line_from_pc() is a pain in my ass
02:42 cotto soh_cah_toa, yes it is, but you only have to write that code once.
02:42 soh_cah_toa sometimes i get -1 and it only reports line #'s for opcodes
02:42 cotto Keep in mind your long-term goals, but you'll understand how the whole system fits together once you have something workable.
02:43 soh_cah_toa i wan't to be able to break on lines like ".local pmc foo" and i can't do that w/ Parrot_sub_get_line_from_pc()
02:45 cotto That's because that line doesn't compile to anything meaningful in bytecode.  It's just a macro that says that "foo" gets allocated a P register.
02:46 cotto it's essentially the same as a comment for purposes of the debugger
02:47 soh_cah_toa well, that's gonna cause problems later b/c i plan on using breakpoints internally to implement single step
02:50 cotto soh_cah_toa, that wouldn't work anyway.  A PIR instruction doesn't always correspond to a single op.
02:51 cotto often, but not always
02:53 soh_cah_toa well then i have no idea how to do stepping then. i'll worry about it later though.
02:53 soh_cah_toa i still have the -1 problem though
02:53 cotto You might consider sorear's recommendation of modifying the op stream for that.  I don't think it'll be quite as hard as you're worried about.
02:54 lucian left #parrot
02:54 cotto Just make the first byte of an op something that'll never appear as the first byte of a normal op and check for that in the runloop.
02:54 cotto You'll have to make sure to restore the op correctly, but that's doable.
02:55 soh_cah_toa ??? i thought that was a bad idea? that's what i was gonna do for breakpoints but it's ok for stepping?
02:56 cotto You just have to be careful, that's all.
02:56 cotto After thinking about it some, I've warmed up to the idea.
02:57 soh_cah_toa how am i able to ready the actual byte value of an opcode though?
02:57 soh_cah_toa *read
03:01 cotto same way that DO_OP does.  Look at *pc
03:04 soh_cah_toa well, i'm thinking a few steps ahead actually. i still have the issue of line numbers
03:04 soh_cah_toa right now, using Parrot_sub_get_line_from_pc(), i'm able to print a few line #'s but then all of a sudden i'll get a bunch of -1's. that's what i gotta fix first but i have no idea why it's doing that
03:05 * soh_cah_toa will be right back
03:07 benabik Line numbers may be one of the harder things due to how crazy IMCC is.
03:07 dalek parrot/m0-prototype: 3c050e5 | cotto++ | t/m0/ (26 files):
03:07 dalek parrot/m0-prototype: reorganize tests and files, fix m0_noop.m0
03:07 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/3c050e5865
03:09 cotto benabik, yeah.  It's unfortunate that it's also such a natural starting place when working on a debugger.
03:19 * soh_cah_toa is back
03:23 preflex left #parrot
03:23 soh_cah_toa cotto: do you think you could take a look at hbdb_get_line_number() in src/hbdb.c? i pretty much copy/pasted the code that the profiling core uses so i don't understand why it's acting like this
03:25 cotto soh_cah_toa, sure
03:25 preflex joined #parrot
03:25 cotto soh_cah_toa, what do you mean "acting like this"?
03:27 soh_cah_toa cotto: line #: 3, 4, 5, 6, -1, -1, -1, -1, -1, -1, -1
03:27 SteveH joined #parrot
03:27 soh_cah_toa cotto: it's supposed to just print the line #, execute opcode, and repeat
03:27 cotto soh_cah_toa, imcc-- is why
03:29 soh_cah_toa imcc: i make crappy code
03:29 soh_cah_toa imcc: i make coders cry
03:30 soh_cah_toa imcc has become my enemy
03:33 cotto If you're questioning your sanity and imcc is involved, you're probably sane.
03:35 soh_cah_toa i now see (at least one reason) why pirate is being written in it's place
03:35 benabik soh_cah_toa: One possible end point of my GSoC is an IMCC-less parrot.
03:37 soh_cah_toa benabik: that would be great
03:37 soh_cah_toa benabik: one possible end point for my gsoc project is intense therapy
03:37 cotto soh_cah_toa, take all the frustration you
03:38 cotto 're experiencing, multiply it by everyone who's had to work on imcc and you'll learn a lot about our motivations.
03:42 soh_cah_toa is intermediate code generation really that difficult? i mean, do all java vm developers hate their intermediate code generater too like we do? or is imcc just the wrong solution to the right problem?
03:43 soh_cah_toa b/c i don't think i've ever seen a parrot dev around here going "man, i just love imcc! it's fantastic!"
03:43 cotto imcc was a prototype that was put into parrot over the objections of the guy who wrote it
03:43 cotto It was not intended to be a long-term solution.
03:44 cotto There are some features of PIR that make compilation harder than it needs to be.
03:45 soh_cah_toa i had a feeling that maybe imcc was something very old left over from the early stages of development that maybe worked at the time but not in the long run
03:45 soh_cah_toa between pirate and m0, parrot is really getting a nice makeover
03:45 cotto now you understand why a bit more
03:48 soh_cah_toa well, i can't just do an "if (line_num == -1) { return; }" b/c there's supposed to be an actual number there. i'm completely clueless on how to work around this
03:49 cotto Don't pull your hair out trying to work around imcc.  Just go with what works.
03:51 soh_cah_toa well, nothing works. ;) if i use annotations, it's only useful for hll's (which is what i want, just not right now). and if i want pir support, i need...imcc :(
03:54 cotto What's your example code?
03:54 soh_cah_toa i'm making a nopaste now
03:55 cotto great
03:58 SteveH left #parrot
04:01 nopaste "soh_cah_toa" at 192.168.1.3 pasted "-1" (111 lines) at http://nopaste.snit.ch/49472
04:08 cotto It's pretty broken.
04:09 soh_cah_toa yeah, i'd say so
04:19 plobsing looks like all the ops in the first sub get numbered fine.
04:20 plobsing what happens when you switch the order in which the subs are defined?
04:22 soh_cah_toa good idea. let me try. i get similar behavior even when i don't call a subroutine. all i had was a bunch of say()'s and it still borked
04:24 nopaste "soh_cah_toa" at 192.168.1.3 pasted "Flipped definition of count_args() and main()" (25 lines) at http://nopaste.snit.ch/49473
04:26 theory joined #parrot
04:27 dalek lalrskate: d4c3d2c | tcurtis++ | src/LALR/Grammar.winxed:
04:27 dalek lalrskate: Add comments describing the LALR.Grammar class and its methods.
04:27 dalek lalrskate: review: https://github.com/ekiru/l​alrskate/commit/d4c3d2cafb
04:27 plobsing those look vaguely like the right numbers for the count_args function taken from the beginning of said function (as opposed to beginning of file)
04:27 dalek lalrskate: 832df2e | tcurtis++ | src/LALR/Grammar.winxed:
04:27 dalek lalrskate: Rework the Grammar API a little bit.
04:27 dalek lalrskate: review: https://github.com/ekiru/l​alrskate/commit/832df2efe3
04:27 dalek lalrskate: 8d3adc9 | tcurtis++ | src/LALR/Grammar/Prettyprint/BNF.winxed:
04:27 dalek lalrskate: Update the prettyprinter to work after the Grammar changes.
04:27 dalek lalrskate: review: https://github.com/ekiru/l​alrskate/commit/8d3adc9c7d
04:27 dalek lalrskate: 1550136 | tcurtis++ | examples/ (2 files):
04:27 nopaste "soh_cah_toa" at 192.168.1.3 pasted "Without any subroutine calls" (36 lines) at http://nopaste.snit.ch/49474
04:27 dalek lalrskate: Update the example grammars.
04:27 dalek lalrskate: review: https://github.com/ekiru/l​alrskate/commit/1550136c8b
04:27 dalek lalrskate: ff39ff2 | tcurtis++ | t/lalr-grammar.t:
04:27 dalek lalrskate: Update the test file.
04:27 bubaflub plobsing: i had a few questions about handling strings through NCI if you've got a moment
04:27 dalek lalrskate: review: https://github.com/ekiru/l​alrskate/commit/ff39ff28f7
04:27 plobsing bubaflub: shoot
04:27 tcurtis ~~
04:29 bubaflub plobsing: i was looking at how you handled strings in your ZeroMQ bindings and I think I might do the same.  Correct me if I'm wrong, but everytime I need to pass in a string i use the 'p' NCI type and then do some Parrot_cstring type method calls to convert it, right?
04:29 plobsing bubaflub: yes.
04:29 plobsing there are other ways, but that is the easiest (if not the most efficient)
04:30 bubaflub plobsing: great.  also, i noticed you had some destructor functions to make sure the pointer that you're encapsulating gets freed.  i imagine i need something similar as well?  my GMP.Integer is just a convenience wrapper around a single var ptr that represents a GMPz object.
04:30 bubaflub plobsing: i think that string stuff will work - there aren't many functions for strings, just formatted output and converting input.
04:32 plobsing bubaflub: you don't *always* have to attach destructors to encapsulated memory. if you are using StructView.alloc(), a default destructor is already provided.
04:32 plobsing but when you get memory from an external library which you are expected to free, you can either pass the buck to your caller or attach a destructor.
04:33 bubaflub plobsing: ok, well, it's pretty easy to just attach a destructor so i'll do that.
04:33 soh_cah_toa cotto: i'm gonna call it a night. tomorrow i think i'll work on something else like listing the source or something b/c i'm sick and tired of having zero progress. i still don't know what to do about this line number business though
04:33 soh_cah_toa cotto: i'll talk to you tomorrow
04:33 cotto soh_cah_toa, ok
04:33 soh_cah_toa left #parrot
04:40 bubaflub plobsing: just wondering - will Winxed handle multiple constructors with different signatures - i.e. init a blank GMP Integer, init from an int, init from a string?
04:45 plobsing bubaflub: not without multi
04:45 bubaflub plobsing: okey dokey.  thanks for all your help.
04:50 bubaflub plobsing: ah, one last question.  i'm looking for a destructor function for GMP, but it doesn't really seem necessary.  Quoth the manual, "Applications that need to return memory to the heap at some particular point can use mpz_realloc2, or clear variables no longer needed."  Does that mean I can just set ptr = null and be on my merry way?
04:51 bubaflub hmm, well, mpz_clear seems to do the trick as well
04:53 dalek parrot-gmp: f52fa99 | bubaflub++ | src/GMP.winxed:
04:53 dalek parrot-gmp: make sure we have a destructor so we free our allocated space
04:53 dalek parrot-gmp: review: https://github.com/bubaflub/​parrot-gmp/commit/f52fa992b3
04:53 dalek parrot-gmp: c830b46 | bubaflub++ | gmph2ncidef.pl:
04:53 dalek parrot-gmp: annotate each line in the NCI def with the convenient name of the function
04:53 dalek parrot-gmp: review: https://github.com/bubaflub/​parrot-gmp/commit/c830b46cfd
04:56 bubaflub left #parrot
05:11 hudnix left #parrot
05:12 theory left #parrot
05:17 Khisanth left #parrot
05:25 sorear would it be out of line for me to offer to attack single-stepping and the breakpoint kernel the next time soh_cah_toa shows up? :|
05:29 dalek parrot/m0-prototype: c15bc7c | cotto++ | t/m0/ (4 files):
05:29 dalek parrot/m0-prototype: move a couple m0 test files that don't output TAP
05:29 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/c15bc7c1f6
05:29 dalek parrot/m0-prototype: 020ab89 | cotto++ | / (3 files):
05:29 dalek parrot/m0-prototype: update integration test to run anything in t/m0/integration and parse the TAP
05:29 dalek parrot/m0-prototype:
05:29 dalek parrot/m0-prototype: This test now requires TAP::Parser.
05:29 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/020ab891d1
05:29 dalek parrot/m0-prototype: e6953c4 | cotto++ | / (3 files):
05:29 dalek parrot/m0-prototype: fix instruction count calculation in m0 assembler
05:29 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/e6953c43ea
05:29 dalek parrot/m0-prototype: dd7ba4c | cotto++ | t/m0/ (3 files):
05:29 dalek parrot/m0-prototype: rewrite remaining failing integration tests
05:29 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/dd7ba4cbad
05:29 Khisanth joined #parrot
05:31 cotto sorear, it's tempting to say go ahead, but it'd go against the spirit of gsoc.  You could give him a description of what to do.
05:31 cotto I don't like seeing him so frustrated.  I think he's trying too hard to fight against imcc instead of moving on to more productive areas.
05:35 sorear what features does his debugger have?
05:35 sorear obviously no breakpoints or single-stepping
05:35 cotto right now there's not much
05:35 sorear does it have a command loop?
05:35 sorear is it online anywhere?
05:36 cotto just a sec
05:36 cotto no command loop so far (iirc)
05:36 cotto https://github.com/soh-cah-toa/​parrot/tree/soh-cah-toa%2Fhbdb
05:37 sorear I'll maybe spend an hour or two tommorrow trying to implement break $IP, go, singlestep?
05:38 * sorear checks out
05:40 sorear would having a Parrot 2.8 installed in /usr/local interfere with building a Parrot 3.4 for /home/stefan/dl/rakudo-ng/parrot_install ?
05:41 cotto shouldn't
05:41 cotto not sure why you'd want 2.8, but you should be fine
05:41 sorear well... "make" in rakudo-ng segfaults during the build
05:42 sorear it's the last version of Parrot I installed
05:43 cotto awesome
05:46 dukeleto ~~
05:47 cotto hio dukeleto
05:47 dukeleto cotto: wazzup
05:47 * dukeleto is about to go to a wedding on the east coast
05:48 dukeleto cotto: i plane to do some m0 hacking on the plane
05:48 dukeleto cotto: other than m0_cover, what else is top priority?
05:48 cotto dukeleto, increasing coverage
05:49 cotto I found a bug in the assembler by chasing down a warning earlier this evening
05:49 dukeleto cotto: coolio
05:49 cotto dukeleto, do you have TAP::Parser installed?
05:52 dukeleto cotto: yes, 3.17
05:52 dukeleto cotto: it is a dependency of most test modules
05:52 cotto great
05:53 dukeleto cotto: many people may have a 2.x version, tho
05:53 dukeleto cotto: but that shouldn't matter much
05:53 cotto I'm not using it very sophisitcatedly.
05:53 cotto I'm shooting for "correct", but that'll need verification. ;)
05:53 woosley joined #parrot
05:54 dukeleto cotto: i will take a look
05:54 cotto dukeleto, thanks
05:54 dukeleto cotto: i spent most of the day preparing for my trip, and haven't backlogged or looked at he repo
05:54 dukeleto but I just updated all my repos for the flight ;)
05:55 cotto dukeleto, what trip?
06:00 dukeleto cotto: going to a wedding of a good friend
06:01 cotto dukeleto, sounds like a good time
06:05 * cotto is done for the night
06:05 dalek parrot/m0-prototype: a7424dd | cotto++ | / (2 files):
06:05 dalek parrot/m0-prototype: add add_i test, fix goto_if bug in assembler
06:05 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/a7424dd43d
06:06 * dukeleto grabs the latest Devel::Cover and m0-prototype
06:07 cotto dukeleto++
06:07 * dukeleto .fly($east_coast)
06:09 fperrad joined #parrot
06:21 unStatiK left #parrot
06:21 preflex left #parrot
06:24 preflex joined #parrot
06:40 preflex left #parrot
06:42 preflex joined #parrot
07:12 mj41 joined #parrot
07:31 jsut_ joined #parrot
07:35 jsut left #parrot
08:54 Kulag left #parrot
08:57 Kulag joined #parrot
09:00 ligne_pub is now known as ligne_work
09:31 woosley left #parrot
10:02 JimmyZ joined #parrot
10:08 mtk left #parrot
10:15 mtk joined #parrot
10:40 contingencyplan left #parrot
10:46 contingencyplan joined #parrot
10:53 contingencyplan left #parrot
11:12 lucian joined #parrot
11:37 dalek winxed: r1033 | NotFound++ | trunk/winxedst1.winxed:
11:37 dalek winxed: fix the lexical workarounds and reorganize LocalFunction var search methods
11:37 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=1033
11:38 lucian left #parrot
11:40 lucian joined #parrot
12:19 davidfetter joined #parrot
12:22 dodathome joined #parrot
12:29 lucian left #parrot
12:32 whiteknight joined #parrot
12:33 davidfetter left #parrot
12:33 bluescreen joined #parrot
12:36 whiteknight good morning, #parrot
12:36 tadzik good morning whiteknight
12:37 bluescreen left #parrot
12:40 bubaflub joined #parrot
12:47 dalek parrot/m0-prototype: 85dc95c | dukeleto++ | config/gen/makefiles/root.in:
12:47 dalek parrot/m0-prototype: Add a m0_cover target to generate coverage with Devel::Cover
12:47 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/85dc95c71e
12:47 dalek parrot/m0-prototype: 180e23f | dukeleto++ | t/m0/ (2 files):
12:47 dalek parrot/m0-prototype: Add a todoed test for add_n and make tests care about exit codes
12:47 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/180e23f1a5
12:47 dalek parrot/m0-prototype: 886300e | dukeleto++ | t/m0/ (2 files):
12:47 dalek parrot/m0-prototype: Add a test+coverage for invalid registers
12:47 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/886300e786
12:47 dalek parrot/m0-prototype: 7512e60 | dukeleto++ | t/m0/ (2 files):
12:47 dalek parrot/m0-prototype: Add a test for invalid register numbers
12:47 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/7512e60679
12:47 dalek parrot/m0-prototype: d68fcb6 | dukeleto++ | t/m0/ (2 files):
12:47 dalek parrot/m0-prototype: Add todo test for invalid register types
12:47 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/d68fcb6d17
12:47 dalek parrot/m0-prototype: 3b38c4d | dukeleto++ | t/m0/m0_assembler.t:
12:47 dalek parrot/m0-prototype: Also test that one of the invalid m0 tests didn't create a m0b file
12:47 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/3b38c4de46
12:52 bluescreen joined #parrot
12:53 bubaflub ~
12:55 dalek winxed: r1034 | NotFound++ | trunk/t/basic/02hashexpr.t:
12:55 dalek winxed: basic tests for hash expresions
12:55 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=1034
13:00 SteveH joined #parrot
13:03 NotFound whiteknight++ Winxed doc!
13:03 whiteknight NotFound: you like? I have more that I haven't uploaded yet. Will upload tonight
13:04 whiteknight I also need to break it into smaller files
13:05 lucian joined #parrot
13:06 NotFound whiteknight: just one pitfall: you call the modifiers "flags" in some places. I think being consistent in that bit is important.
13:07 whiteknight they should always be called modifiers?
13:07 NotFound Yes, even the ones that act like flags.
13:07 whiteknight ok
13:15 SteveH left #parrot
13:18 NotFound About the doubt on "using": the current state in using and family are a bit inconsistente, but the idea is that they are declarations, so they'll never be expresions.
13:21 NotFound About the breakpoints: there is a pir problem in that regard, there is no reliable way to annotate the start of a .sub
13:23 NotFound Since a recent change in annotations handling is possible to put an annotation before a .param block, but fails in case of :method
13:23 mikehh All tests PASS (pre/post-config, make corevm/make coretest, make world/make test, fulltest) at 3_4_0-153-gc2e3158
13:23 mikehh Ubuntu 11.04 i386 (g++ --optimize)
13:25 whiteknight I hate PIR
13:25 whiteknight seriously. Hate
13:25 whiteknight hate hate hate
13:25 whiteknight hate hate hate hate hate hate hate hate hate hate hate hate hate hate hate hate hate hate hate hate hate
13:25 whiteknight oh, and IMCC-- too
13:27 lucian whiteknight: come in, the bar is on the right hand side as you go in, straight ahead there's the head-smashing wall, there'll be someone to assist you in calling the ambulance afterwards
13:30 whiteknight yay assistance!
13:30 whiteknight PIR and IMCC are the anchors that are holding Parrot's head under water
13:33 Coke_ Us old timers will just sit over here and cry into our beer.
13:33 mikehh winxed (r1034) builds on parrot (3_4_0-153-gc2e3158) make test/tset1/test2 PASS, some examples tested (opengl/fly others) Ubuntu 11.04 i386 (g++ --optimize)
13:34 mikehh s/tset1/test1/
13:37 mikehh I don't really see PIR as the problem, IMCC is
13:39 whiteknight mikehh: the two are one and the same problem. Also PIR syntax forces certain semantics and assumptions that Parrot can't seem to get around
13:39 mikehh once you can modularize parrot sufficiently to be able to replace IMCC you could fix PIR
13:41 davidfetter joined #parrot
13:41 mikehh the whole problem is that IMCC is a virus that mutated without proper control
13:43 mikehh PIRC was an attempt to get rid of IMCC, but unfortunately had a very low bus number
13:44 atrodo to me, it looks like parrot was improved while imcc was ignored
13:44 mikehh I tried to get on the bus but unfortunately other things intervened
13:45 ambs joined #parrot
13:45 mikehh also I was told that it was not a high priority and other things needed to be done first
13:46 whiteknight it's not that IMCC was ignored. IMCC was changed, but not with any particular direction in mind
13:46 lucian mikehh: i can tell you right now that implementing python's frame semantics on PIR is impossible without interpretation
13:46 whiteknight People kept changing IMCC and PIR syntax to have more features, beause too many people were writing PIR code by hand
13:46 whiteknight we didn't have alternatives like Winxed or even NQP for a whole hell of a lot of time
13:47 lucian PIR is much, much too high-level to be generated, and much, much too unstructured and low-level to be written
13:47 whiteknight PIR is an assembly language that should only ever have been generated by HLL compilers
13:47 whiteknight for that matter, PIR shouldn't exist. It should have all been PASM
13:47 atrodo whiteknight++
13:47 whiteknight code generators can generate PASM sequences just as easily as PIR.
13:47 NotFound The problem I see is that pasm is too low level and pir a bit too high.
13:48 whiteknight NotFound: PIR is too high-level, yes. PASM is not too low. We want low
13:48 atrodo whiteknight> That always seemed like a strange move to me.  I never quite understood why compilers would target pir instead of pasm
13:48 whiteknight the biggest problem with PASM is that as IMCC has been updated, PIR gained capabilities that PASM does not have
13:48 whiteknight several directives from PIR don't exist in PASM mode
13:48 NotFound pasm lack several features.
13:49 whiteknight right, because they were added to PIR as "sugar" and never backported
13:49 whiteknight originally, PIR was just an overlay for PASM with nicer syntax.
13:49 whiteknight PIR has a register allocator, for instance. PASM code doesn't use it
13:50 whiteknight which means the HLL would have to use PIR or provide it's own register allocator
13:50 whiteknight I don't think PASM currently has nice support for lexicals either
13:50 NotFound We can strip-down some pir features. For example, a modifier that works like :method minus the automatic 'self' may be useful.
13:50 whiteknight maybe it does, I can't remember
13:50 whiteknight NotFound: yes, automatic self is a problem
13:52 jnthn__ Rakudo and new nqp don't use :method fwiw.
13:52 jnthn__ It's too tied to Parrot's object model.
13:52 whiteknight I really don't think it should exist at the Parrot level either, in the long run
13:52 whiteknight a :method is just an ordinary .sub with some magic for making self appear and keeping it out of the namespace
13:53 whiteknight actually, it doesn't avoid the namespace. It's still in there, we just have no API to look it up
13:53 whiteknight which is the same thing, from the user perspective
13:53 NotFound Don't know the long run, but *now* we need that magic. And that magic must not neccesarily go together with 'self'.
13:54 whiteknight NotFound: The problem with getting rid of self is that we break a lot of existing PIR code
13:54 whiteknight lots of code in t/, lots of code in runtime/parrot/library/
13:54 whiteknight and lots of user code written in PIR
13:54 whiteknight we need a lengthy deprecation, at least
13:55 jnthn__ I don't really see the automatic self as the real problem with :method. It's the fact that methods and namespaces have anything to do with each other.
13:55 NotFound No need to break things, add a new modifier. Later, we can think about deprecating the old.
13:55 jnthn__ A method installation should go in a meta-object, and how that and a namesapce relate - if they do - is quite langauge-specific.
13:55 NotFound jnthn__: the problem is the one with annotations I said a few lines ago.
13:55 whiteknight jnthn__: well, the namespace serves that purpose in PIR. We don't have a syntax for defining class objects at compile time
13:56 whiteknight the only place to store the sub PMCs is in the namespace PMC
13:56 jnthn__ Sure, at the moment. But that shouldn't be the end goal.
13:56 whiteknight and when we get to runtime, we have to do the magic dance of creating the class in an :init :load sub, and pull the methods out of the namespace
13:57 whiteknight jnthn__: so a PIR syntax for defining classes at compile time?
13:57 jnthn__ Anyway, with meta-objects you don't really need a syntax for defining classes etc. You just need to be able to make method calls. :)
13:57 mikehh along with M0 specification we should consider what is needed in M1+
13:57 NotFound Someone said: "In the Long Run, We're All Dead"
13:57 whiteknight jnthn__: right. But when do we make those method calls? And where do we store the subs until we call the methods?
13:58 jnthn__ whiteknight: if you're going to generate code to build it, just use .const 'Sub' $P0 = 'subid' syntax and .add_method it
13:58 mikehh NotFound: yes but hopefully we will have replacements :-}
13:58 jnthn__ whiteknight: But really the compiler would make those method calls and have the entire bunch of stuff get serialized.
13:58 whiteknight jnthn__: so .add_method it at runtime? Explicitly or implicitly?
13:58 jnthn__ whiteknight: That's where nqp and Rakudo are heading.
13:59 NotFound mikehh: yeah, and that replacements wil solve his problems at his time.
13:59 jnthn__ whiteknight: You could add some sugar for it in PIR.
13:59 whiteknight okay, that's what I figure we want to do.
13:59 jnthn__ whiteknight: But I dunno that it's worth it. I didn't think encouraging people to write PIR was helpful.
13:59 whiteknight we're still talking about a hell of a lot of breakage. At that point it's better to ditch PIR/PASM entirely and build something with less suck from scratch
13:59 jnthn__ Make it a pain and people will write/use HLLs.
13:59 NotFound Code generators write pir. They need ways to do what they need.
14:00 mikehh we really need to consider backporting what is needed into PASM and generators for that
14:00 jnthn__ NotFound: Yes, but a code generator is quite happy to build meta-objects, or build code to create them.
14:00 whiteknight of course, it's not going to be a clean break, where we drop IMCC and replace it with the new shiney. Parrot makes a hell of a lot of assumptions internally that need to be changed
14:00 NotFound I can't annotate method's entry point, that is an actual problem.
14:00 whiteknight like the relationships between NameSpace and Class, or NameSpace and PMCProxy
14:00 whiteknight and the differences between Sub and Method
14:01 mikehh documentation of some form is needed to specify these problems and possible solutions
14:01 NotFound jnthn__: we don't have a meta object system yet.
14:01 whiteknight mikehh: yes, that's a good point
14:01 jnthn__ NotFound: I'm not talking about now. I'm talking about ideal future.
14:02 NotFound jnthn__: I'm thiking about the future but working in the opresent.
14:02 hudnix joined #parrot
14:02 whiteknight We have two questions: First, what do we want the end goal to be? Second: How do we get from here to there?
14:03 mikehh my problem here is that we often seem to be taking one step forward and two back
14:03 whiteknight mikehh: any recent examples?
14:03 NotFound I think decoupling some chunks of pir magic is a good start towards anything.
14:06 mikehh whiteknight: mainly that we are being help up by things like IMCC and as you said PIR, we improve a lot of things but are being held back by that, gc also
14:08 mikehh we are looking at a new low level interface, but we also need to consider the next level or it will not improve things
14:13 whiteknight true
14:16 mikehh left #parrot
14:16 arnsholt left #parrot
14:16 estrabd left #parrot
14:16 sorear left #parrot
14:16 TimToady left #parrot
14:16 p6eval left #parrot
14:16 dalek left #parrot
14:16 ingy left #parrot
14:16 krunen left #parrot
14:16 cxreg left #parrot
14:16 jnthn__ left #parrot
14:16 marc left #parrot
14:16 tadzik left #parrot
14:16 JimmyZ left #parrot
14:16 Kulag left #parrot
14:16 mj41 left #parrot
14:16 wagle left #parrot
14:16 tty234 left #parrot
14:16 pjcj left #parrot
14:16 PacoLinux left #parrot
14:16 spinclad left #parrot
14:16 Coke_ left #parrot
14:16 eternaleye left #parrot
14:16 slavorgn left #parrot
14:16 GeJ left #parrot
14:16 davidfetter left #parrot
14:16 lucian left #parrot
14:16 dodathome left #parrot
14:16 mtk left #parrot
14:16 autark left #parrot
14:16 bubaflub left #parrot
14:16 Khisanth left #parrot
14:16 ligne_work left #parrot
14:16 TonyC left #parrot
14:16 AzureSto_ left #parrot
14:16 tcurtis left #parrot
14:16 allison left #parrot
14:16 NotFound left #parrot
14:16 simcop2387 left #parrot
14:16 dngor left #parrot
14:16 baest left #parrot
14:16 rblackwe left #parrot
14:16 ttbot left #parrot
14:16 Maddingue left #parrot
14:16 Infinoid left #parrot
14:16 bluescreen left #parrot
14:16 jsut_ left #parrot
14:16 preflex left #parrot
14:16 perlite left #parrot
14:16 shachaf left #parrot
14:16 plobsing left #parrot
14:16 TiMBuS left #parrot
14:16 cotto left #parrot
14:16 cotto_work left #parrot
14:16 KaeseEs left #parrot
14:16 cosimo left #parrot
14:16 frodwith left #parrot
14:16 Hunger left #parrot
14:16 ascent left #parrot
14:16 janus left #parrot
14:16 PerlJam left #parrot
14:16 dukeleto left #parrot
14:16 bacek_at_work left #parrot
14:16 aloha left #parrot
14:16 slavorg left #parrot
14:16 Tene left #parrot
14:16 Util left #parrot
14:16 knewt left #parrot
14:30 GeJ joined #parrot
14:30 slavorgn joined #parrot
14:30 eternaleye joined #parrot
14:30 Coke_ joined #parrot
14:30 spinclad joined #parrot
14:30 PacoLinux joined #parrot
14:30 pjcj joined #parrot
14:30 tty234 joined #parrot
14:30 wagle joined #parrot
14:30 mj41 joined #parrot
14:30 Kulag joined #parrot
14:30 JimmyZ joined #parrot
14:30 hercynium joined #parrot
14:30 knewt joined #parrot
14:30 Util joined #parrot
14:30 Tene joined #parrot
14:30 slavorg joined #parrot
14:30 aloha joined #parrot
14:30 bacek_at_work joined #parrot
14:30 dukeleto joined #parrot
14:30 PerlJam joined #parrot
14:30 janus joined #parrot
14:30 ascent joined #parrot
14:30 Hunger joined #parrot
14:30 frodwith joined #parrot
14:30 cosimo joined #parrot
14:30 KaeseEs joined #parrot
14:30 cotto_work joined #parrot
14:30 cotto joined #parrot
14:30 TiMBuS joined #parrot
14:30 plobsing joined #parrot
14:30 shachaf joined #parrot
14:30 perlite joined #parrot
14:30 preflex joined #parrot
14:30 jsut_ joined #parrot
14:30 bluescreen joined #parrot
14:30 lucian_ joined #parrot
14:30 mikehh joined #parrot
14:30 arnsholt joined #parrot
14:30 estrabd joined #parrot
14:30 sorear joined #parrot
14:30 TimToady joined #parrot
14:30 p6eval joined #parrot
14:30 dalek joined #parrot
14:30 ingy joined #parrot
14:30 krunen joined #parrot
14:30 cxreg joined #parrot
14:30 marc joined #parrot
14:30 jnthn__ joined #parrot
14:30 tadzik joined #parrot
14:34 lucian_ is now known as lucian
14:35 lucian i missed the method discussion earlier
14:36 lucian never mind, after reading the backlog, what i was going to say wouldn't have been relevant
14:41 whiteknight does PASM have .const 'Sub' syntax?
14:45 dmalcolm joined #parrot
14:45 davidfetter joined #parrot
14:45 bubaflub joined #parrot
14:45 dodathome joined #parrot
14:45 mtk joined #parrot
14:45 Khisanth joined #parrot
14:45 autark joined #parrot
14:45 baest joined #parrot
14:45 ligne_work joined #parrot
14:45 TonyC joined #parrot
14:45 AzureSto_ joined #parrot
14:45 tcurtis joined #parrot
14:45 allison joined #parrot
14:45 simcop2387 joined #parrot
14:45 NotFound joined #parrot
14:45 dngor joined #parrot
14:45 rblackwe joined #parrot
14:45 ttbot joined #parrot
14:45 Maddingue joined #parrot
14:45 Infinoid joined #parrot
14:52 lucian left #parrot
14:54 lucian joined #parrot
15:02 ambs seen moritz
15:02 aloha moritz was last seen in #parrot 32 mins 45 seconds ago joining the channel.
15:03 lucian whiteknight: in your lovely winxed docs, there's mention of multiple return
15:04 whiteknight yessir
15:04 lucian there's an example of caller syntax, but i can't figure out the syntax for return from the callee
15:04 whiteknight :(<params>) = func(<args>)
15:05 whiteknight :(a [slurpy], b [named,optional], has_b [opt_flag]) = func(...)
15:05 lucian right, that's the caller. how about the callee?
15:05 whiteknight oh, right
15:05 whiteknight "return 1, 2, 3, 4, 5"
15:05 lucian oh, ok
15:06 whiteknight or "return 1, 2, 3, b:[flat]"
15:06 whiteknight it's exactly the same as the argument list on the caller
15:06 lucian right, thanks
15:06 whiteknight "return 4:[named("foo")], ..."
15:13 lucian whiteknight: i'm starting to get used to Rosella.Test
15:14 lucian i think i may ignore the harness though, and do it from setup.py
15:14 whiteknight lucian: Let me know if you have any feedback at all. it's not set in stone
15:15 whiteknight I'm happy to make improvements for my users :)
15:18 lucian_ joined #parrot
15:18 lucian_ whiteknight: uh, i do. i can't find anything for identify in the asserter
15:18 lucian_ i really need to set up some client-server irc client
15:19 lucian_ right now options are ctrlproxy, irssi, quassel, smuxi, weechat
15:20 whiteknight what do you mean "identify"?
15:20 lucian_ whiteknight: determine if two names reference the same object
15:21 lucian left #parrot
15:21 lucian_ is now known as lucian
15:21 whiteknight oh. There's a "same" and "not_same" to test if they are the same reference or not
15:21 whiteknight and "equal" and "not_equal" to test for equality
15:21 lucian ah, ok
15:22 lucian didn't spot same
15:22 dalek parrot/m0-spec: 5112b61 | cotto++ | docs/pdds/draft/pdd32_m0.pod:
15:22 dalek parrot/m0-spec: make the args for iton and ntoi more intuitive
15:22 dalek parrot/m0-spec: review: https://github.com/parrot/parrot/commit/5112b61c3a
15:22 lucian again, i'm spoilt. this time by py.test
15:22 whiteknight the list of assertions has grown too large
15:22 bluescreen left #parrot
15:22 whiteknight I need to look at py.test
15:23 bluescreen joined #parrot
15:23 lucian just so you know, py.test isn't very popular
15:23 lucian it lets you use python's assert, so you can do "assert 1 == 1" for equal or "assert 1 is 1" for identity
15:24 lucian for rosella, it's possible that xunit style is better, since it's supposed to be usable by different languages
15:29 bluescreen left #parrot
15:29 autark left #parrot
15:29 mtk left #parrot
15:29 davidfetter left #parrot
15:29 dodathome left #parrot
15:29 ttbot left #parrot
15:29 NotFound left #parrot
15:29 simcop2387 left #parrot
15:29 bubaflub left #parrot
15:29 dmalcolm left #parrot
15:29 baest left #parrot
15:29 allison left #parrot
15:29 tcurtis left #parrot
15:29 AzureSto_ left #parrot
15:29 Khisanth left #parrot
15:29 ligne_work left #parrot
15:29 Infinoid left #parrot
15:29 Maddingue left #parrot
15:29 rblackwe left #parrot
15:29 dngor left #parrot
15:29 TonyC left #parrot
15:29 lucian left #parrot
15:29 jnthn__ left #parrot
15:29 krunen left #parrot
15:29 p6eval left #parrot
15:29 estrabd left #parrot
15:29 arnsholt left #parrot
15:29 mikehh left #parrot
15:29 TimToady left #parrot
15:29 sorear left #parrot
15:29 marc left #parrot
15:29 cxreg left #parrot
15:29 tadzik left #parrot
15:29 ingy left #parrot
15:29 dalek left #parrot
15:29 JimmyZ left #parrot
15:29 wagle left #parrot
15:29 PacoLinux left #parrot
15:29 spinclad left #parrot
15:29 Coke_ left #parrot
15:29 eternaleye left #parrot
15:29 GeJ left #parrot
15:29 Kulag left #parrot
15:29 hercynium left #parrot
15:29 tty234 left #parrot
15:29 pjcj left #parrot
15:29 mj41 left #parrot
15:29 slavorgn left #parrot
15:29 shachaf left #parrot
15:29 plobsing left #parrot
15:29 TiMBuS left #parrot
15:29 cotto left #parrot
15:29 cotto_work left #parrot
15:29 cosimo left #parrot
15:29 bacek_at_work left #parrot
15:29 aloha left #parrot
15:29 jsut_ left #parrot
15:29 slavorg left #parrot
15:29 Hunger left #parrot
15:29 janus left #parrot
15:29 KaeseEs left #parrot
15:29 frodwith left #parrot
15:29 PerlJam left #parrot
15:29 dukeleto left #parrot
15:29 Tene left #parrot
15:29 Util left #parrot
15:29 preflex left #parrot
15:29 perlite left #parrot
15:29 ascent left #parrot
15:29 knewt left #parrot
15:53 Infinoid joined #parrot
15:53 Maddingue joined #parrot
15:53 ttbot joined #parrot
15:53 rblackwe joined #parrot
15:53 dngor joined #parrot
15:53 NotFound joined #parrot
15:53 simcop2387 joined #parrot
15:53 allison joined #parrot
15:53 tcurtis joined #parrot
15:53 AzureSto_ joined #parrot
15:53 TonyC joined #parrot
15:53 ligne_work joined #parrot
15:53 baest joined #parrot
15:53 autark joined #parrot
15:53 Khisanth joined #parrot
15:53 mtk joined #parrot
15:53 dodathome joined #parrot
15:53 bubaflub joined #parrot
15:53 davidfetter joined #parrot
15:53 dmalcolm joined #parrot
15:54 hercynium joined #parrot
15:54 JimmyZ joined #parrot
15:54 Kulag joined #parrot
15:54 mj41 joined #parrot
15:54 wagle joined #parrot
15:54 tty234 joined #parrot
15:54 pjcj joined #parrot
15:54 PacoLinux joined #parrot
15:54 spinclad joined #parrot
15:54 Coke_ joined #parrot
15:54 eternaleye joined #parrot
15:54 slavorgn joined #parrot
15:54 GeJ joined #parrot
15:54 jsut_ joined #parrot
15:54 preflex joined #parrot
15:54 perlite joined #parrot
15:54 shachaf joined #parrot
15:54 plobsing joined #parrot
15:54 TiMBuS joined #parrot
15:54 cotto joined #parrot
15:54 cotto_work joined #parrot
15:54 KaeseEs joined #parrot
15:54 cosimo joined #parrot
15:54 frodwith joined #parrot
15:54 Hunger joined #parrot
15:54 ascent joined #parrot
15:54 janus joined #parrot
15:54 PerlJam joined #parrot
15:54 dukeleto joined #parrot
15:54 bacek_at_work joined #parrot
15:54 aloha joined #parrot
15:54 slavorg joined #parrot
15:54 Tene joined #parrot
15:54 Util joined #parrot
15:54 knewt joined #parrot
15:55 lucian joined #parrot
15:55 mikehh joined #parrot
15:55 arnsholt joined #parrot
15:55 estrabd joined #parrot
15:55 sorear joined #parrot
15:55 TimToady joined #parrot
15:55 p6eval joined #parrot
15:55 dalek joined #parrot
15:55 ingy joined #parrot
15:55 krunen joined #parrot
15:55 cxreg joined #parrot
15:55 marc joined #parrot
15:55 jnthn__ joined #parrot
15:55 tadzik joined #parrot
15:59 cotto_work ~~
16:01 cotto_work whiteknight: ping
16:01 whiteknight pong
16:02 cotto_work whiteknight: what does your intuition say about https://github.com/parrot/parrot/commit/5112b61c3a ?
16:02 theory joined #parrot
16:02 whiteknight so iton i n x?
16:03 cotto_work whiteknight: I'm thinking about the order of the arguments
16:03 whiteknight how are the m0 ops usually structured? source, dest, other? dest, source, source2?
16:03 cotto_work yes
16:04 whiteknight i think it's more important to be consistant about ordering than it is for any one op to make slightly more sense
16:04 cotto_work usually the destination is first.  That's why I ask.
16:04 cotto_work ok
16:04 cotto_work I don't like the cognitive dissonance between the name and the order of the arguments though.
16:05 whiteknight so rename the op
16:05 NotFound Then change te name.
16:05 whiteknight ifromn, nfromi
16:05 cotto_work deal
16:05 whiteknight how is the float->int conversion done? truncation? Rounding?
16:05 lucian_ joined #parrot
16:05 whiteknight that's an important detail to mention
16:06 cotto_work whiteknight: atm it's whatever perl 5 does.
16:06 whiteknight ok
16:06 whiteknight in the final version, we need to be *very* specific
16:06 cotto_work whiteknight: sure.
16:08 cotto_work Doing so now wouldn't hurt either.  It's in an hll, so a slow explicit conversion wouldn't cause a meaningful slowdown unless we emulated a CPU to do it.
16:09 cotto_work Now's a great time to start refining the semantics of M0.
16:10 lucian left #parrot
16:10 jnthn__ I suspect you'd want to provide "CPU semantics" for these things at some level. It's fast, and some langagues specify "CPU semantics" for such things.
16:11 cotto_work jnthn__: what do you mean by that?  Do what a CPU would do?
16:11 jnthn__ cotto_work: Yeah
16:12 lucian_ is now known as lucian
16:14 lucian left #parrot
16:15 NotFound "a" CPU or "the" CPU?
16:16 cotto_work also, which cpu?
16:16 sorear also, which cpu semantics?
16:16 sorear a lot of cpus have no native rounding mode
16:17 NotFound I don't think it makes more sense to delegate behavior to the CPU in a virtual machine so isolated to the hardware as parrot.
16:17 cotto_work NotFound: I don't think jnthn__ is saying that, just that it should behave similarly.
16:18 NotFound Then the question: similarly to what?
16:19 NotFound I prefer to clearly document what an operation do rather than aluding to some mitical generic CPU.
16:19 jnthn__ I probably mis-phrased. I mostly meant, it's good to have a way to do whatever is typical/fast on whatever current hardware platform we're running on (e.g., what would a smart C compiler do for (int)f or (float)i)
16:20 NotFound A C compiler do what the C standard says.
16:21 NotFound (in the best cases)
16:23 bluescreen joined #parrot
16:24 JimmyZ left #parrot
16:25 mj41 left #parrot
16:26 cotto_work would "round like ansi C" work?
16:26 jnthn__ cotto_work: Probably.
16:26 whiteknight I think we should specify exactly what Parrot does. On some machines maybe int->float will be a little faster than on other machiens using our semantics
16:27 whiteknight if we want software to have native performance, write in a natively-compiled language like C
16:27 whiteknight if you want better semantics than C, at cost, use a VM
16:29 cotto_work "better"?
16:29 NotFound But a cast to int is not a rounding operation.
16:33 NotFound C has "implementation defined" semantic in a lot of operations because of historical reasons and, in some cases, speed.
16:33 NotFound I don't think we have that reasons in low level operations.
16:34 NotFound ('historical' here means 'the past millenium')
16:36 cotto_work It's something that deserves more thought than I've been giving it.
16:37 NotFound I don't think so. If for some reason we want to provide lower level loosely defined speed critical operations, we can do it later, but start with well defined semantics.
16:39 NotFound Not being sure about the valueof an int in mundane situations is the road to nowhere.
16:45 dalek nqp: 473c265 | tadzik++ | src/HLL/Compiler.pm:
16:45 dalek nqp: Quit REPL and print a newline on ^D
16:45 dalek nqp:
16:45 dalek nqp: This also works in Rakudo/nom, which makes RT #70297 fixed in nom.
16:45 dalek nqp: review: https://github.com/perl6/nqp/commit/473c2658e5
16:58 [hudnix] joined #parrot
16:59 hudnix left #parrot
17:16 ligne_work left #parrot
17:34 plobsing left #parrot
17:43 zby_home joined #parrot
17:55 lucian joined #parrot
17:56 lucian left #parrot
17:59 Coke_ tadzik++
18:01 tadzik now messing in HLLCompiler.pir is not something I really want
18:02 tadzik I'm fine with "in nom" part
18:05 lucian joined #parrot
18:24 * lucian wishes winxed allowed global vars
18:33 contingencyplan joined #parrot
18:33 NotFound lucian: maybe someday, but in the meantime is good to avoid depending on them.
18:37 whiteknight NotFound: is there a way to get a reference to the NameSpace PMC?
18:37 whiteknight like the class keyword as a statement?
18:39 NotFound whiteknight: You mean at compile time?
18:40 whiteknight NotFound: like the statement: "var c = class Foo.Bar.Baz;"
18:40 whiteknight but with the namespace instead of the calss
18:40 whiteknight class
18:41 whiteknight if we had that, we could use normal keyed access to put data into and retrieve out of the namespace
18:44 NotFound Not a bad idea, but I still need some fixes and improvements in scope handling before adding more features, specially if HLL namespaces are involved.
18:50 lucian whiteknight: +1
18:50 whiteknight okay
19:26 dalek winxed: r1035 | NotFound++ | trunk/winxedst (2 files):
19:26 dalek winxed: Put the compiler into a namespace:
19:26 dalek winxed: Add some more scope search features and improve instanceof operator
19:26 dalek winxed: in stage 0 to make it able to compile stage 1 after the changes.
19:26 dalek winxed: Fix hash values emision.
19:26 dalek winxed: Drop all using and using static from the stage 1 compiler.
19:26 dalek winxed: And add the namespaces opening and closing.
19:26 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=1035
19:28 NotFound That was hard.
19:37 lucian whiteknight: is there an easy way to mark a test for skipping?
19:37 whiteknight I think so
19:38 lucian whiteknight: other than commenting it?
19:38 whiteknight there's self.status.todo() and self.status.unimplemented()
19:39 lucian ah, ok
19:39 lucian thanks
19:39 whiteknight but I don't have a .skip() yet. I assume skip() would immediately end the test as TODO?
19:39 whiteknight or "# SKIP"
19:39 whiteknight I can't remeber the tap protocol for it off the top of my head
19:40 lucian whiteknight: i don't really know TAP, todo is fine
19:40 whiteknight .todo() marks the test TODO and ignores any failures
19:41 whiteknight I need to add a .skip() method. I'll figure that out tonight
19:43 lucian iirc skip is used for reducing noise when you have a lot of unimplemented features in the code
19:43 lucian (not in the tests)
19:44 lucian left #parrot
19:45 lucian joined #parrot
19:56 bubaflub lucian: todo is for a test that is written correctly but not passing; skip is for a test that might actually segfault the entire test suite or some such disastrous code that *should* work but doesn't
19:56 lucian bubaflub: ah, so i'm wrong
19:58 bubaflub lucian: well, to each his own
19:58 lucian as i said earlier, i haven't much used any xunit clone
19:59 bubaflub lucian: the way i've seen it done / the way i understand it is that TODO runs the code block but ignores a failure, SKIP will not run the code block
20:01 mikehh yeah - TODO is for tests that fail (hopefully with a failure message) - SKIP is to avoid tests that can break things
20:03 lucian right, i'm perfectly fine with todo then
20:05 mikehh and on my TODO list is to check the SKIPped tests in the parrot test suite to see which can be TOTOed and which might even pass now
20:05 mikehh TODOed
20:08 mikehh the whole problem with a SKIP is that the test is not performed, so you don't know if it is still failing or maybe even passing
20:14 whiteknight lucian: if you don't want the test to run, comment out all the asserts
20:14 whiteknight any test with no failiing asserts is considered a pass
20:14 lucian yeah, i figured that
20:14 whiteknight or mark it todo or unimplemented
20:14 whiteknight all those things will cut down on noise
20:15 mikehh NotFound: ping
20:15 NotFound mikehh: pong
20:17 mikehh NotFound: I just noticed that I still had fly.winxed running (^+ hours), when I stopped it my memory usage dropped from 1.2GB to 1.0GB (System Monitor)
20:17 mikehh 6+ hours
20:18 NotFound mikehh: my girlfrien has had older versions running for weeks, without noticeable leaks,
20:18 NotFound Looks like our GC is not so bad ;)
20:19 mikehh was just wondering if 200MB is what is expected?
20:21 lucian_ joined #parrot
20:21 NotFound In my amd-64 right now top says is using 3.5% od mem, and free says Total mem is 4065608
20:21 bluescreen left #parrot
20:22 NotFound I'm not sure about what we should expect, haven't checked other usages.
20:22 mj41 joined #parrot
20:23 lucian__ joined #parrot
20:23 NotFound fly has a lot of objects plus the opengl module, 200 MB doesn't seem bad.
20:25 lucian left #parrot
20:27 lucian_ left #parrot
20:29 whiteknight left #parrot
20:34 mikehh NotFound: looks like 115.5MB Resident memory in the Processes window (the Resources window reports the same (1.2GB dropping to 1.0GB when stopped)
20:36 bluescreen joined #parrot
20:37 mikehh thats on 2.6.38-9-generic-pae #43-Ubuntu SMP - Ubuntu 11.04 i386
20:39 mikehh I'll check on amd64 version later
20:43 dalek parrot/m0-prototype: 37d6ea8 | cotto++ | / (4 files):
20:43 dalek parrot/m0-prototype: tighten assembler register parsing, fix a couple tests
20:43 dalek parrot/m0-prototype:
20:43 dalek parrot/m0-prototype: For reals this time, all tests pass.
20:43 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/37d6ea8537
20:50 dodathome left #parrot
20:54 dalek lalrskate: aa018a6 | tcurtis++ | src/LALR/Grammar.winxed:
20:54 dalek lalrskate: Add comments describing the newly added aspects of the grammar api.
20:54 dalek lalrskate: review: https://github.com/ekiru/l​alrskate/commit/aa018a6017
20:58 mikehh I am getting an error building rakudo
20:58 mj41 left #parrot
20:58 mikehh /home/mht/install/lib/bin/parrot  perl6.pbc  --target=pir --output=Test.pir Test.pm
20:58 mikehh No such attribute '$!storage'
21:01 lucian joined #parrot
21:05 lucian__ left #parrot
21:05 jnthn__ mikehh: What are you trying to build? The nom branch?
21:06 jnthn__ If so, it won't compile Test.pm yet.
21:08 mikehh jnthn__: nah just master
21:09 cotto_work Rakudo master looked fine a couple days ago with Parrot master.
21:09 cotto_work or at least built
21:11 jnthn__ mikehh: ah, ok, then it's probably an issue.
21:11 lucian left #parrot
21:11 lucian joined #parrot
21:13 mj41 joined #parrot
21:14 nopaste "mikehh" at 192.168.1.3 pasted "rakudo build failure" (20 lines) at http://nopaste.snit.ch/49579
21:18 lucian_ joined #parrot
21:20 fperrad left #parrot
21:21 preflex left #parrot
21:23 lucian left #parrot
21:24 ambs left #parrot
21:25 preflex joined #parrot
21:28 lucian__ joined #parrot
21:31 lucian__ is now known as lucian
21:33 lucian_ left #parrot
21:35 soh_cah_toa joined #parrot
21:39 bluescreen left #parrot
21:46 Psyche^ joined #parrot
21:51 Patterner left #parrot
21:51 Psyche^ is now known as Patterner
21:55 dalek parrot/m0-spec: da50c14 | cotto++ | docs/pdds/draft/pdd32_m0.pod:
21:55 dalek parrot/m0-spec: change xtoy to yfromx, add a note to about semantics and op arg usage
21:55 dalek parrot/m0-spec:
21:55 dalek parrot/m0-spec: I'm still on the fence about the "yfromx" naming convention but it is
21:55 dalek parrot/m0-spec: less cognitively dissonant from "iton N0, I0, x".
21:55 dalek parrot/m0-spec: review: https://github.com/parrot/parrot/commit/da50c14fde
21:58 bluescreen joined #parrot
22:00 davidfetter left #parrot
22:01 mj41 left #parrot
22:02 kid51 joined #parrot
22:04 cotto_work trying to build rakudo master with parrot master now
22:15 hercynium left #parrot
22:18 mikehh cotto_work: any luck?
22:20 bluescreen left #parrot
22:21 cotto_work mikehh: the build looks fine for me
22:22 bluescreen joined #parrot
22:22 mikehh cotto_work: 'k let me do some fresh checkouts
22:27 NotFound Has someone tested the with_winxed branch?
22:28 mikehh which branch?
22:29 mikehh ah ok, will do that after the rakudo test
22:29 NotFound origin/with_winxed
22:30 NotFound I've tested it with i386 and amd64, more platforms welcome.
22:35 bluescreen left #parrot
22:36 mikehh NotFound: that's all I've got at the moment
22:37 NotFound Anyway, some test out of my house will be good ;)
22:37 lucian left #parrot
22:39 bluescreen joined #parrot
22:43 bluescreen left #parrot
22:45 dalek parrot/m0-prototype: 731de5b | cotto++ | src/m0/perl5/m0_assembler.pl:
22:45 dalek parrot/m0-prototype: remove an unused sub from the assembler
22:45 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/731de5b065
22:46 dalek nqp: 7ca852e | jonathan++ | src/ (2 files):
22:46 dalek nqp: More decontainerization twiddling.
22:46 dalek nqp: review: https://github.com/perl6/nqp/commit/7ca852e10a
22:46 bluescreen joined #parrot
22:47 cotto_work dukeleto++ for m0_cover
22:47 bluescreen left #parrot
22:48 dalek parrot/tt1682/vtable_substr: fb1cc04 | jkeenan++ | / (2 files):
22:48 dalek parrot/tt1682/vtable_substr: Begin process of deprecating VTABLE_substr.  Eliminate instances of usage.
22:48 dalek parrot/tt1682/vtable_substr: review: https://github.com/parrot/parrot/commit/fb1cc0486f
22:49 lucian joined #parrot
22:49 cotto_work unsurprisingly, the only un-covered parts of the M0 interp are ops.
22:51 whiteknight joined #parrot
22:51 lucian left #parrot
22:52 cotto_work other than some bits that need invalid m0b to exercise
23:02 bluescreen joined #parrot
23:11 mikehh cotto_work: rakudo builds, but there is an error building Test.pir and thus the tests won't run
23:12 mikehh I tried it with gcc --optimize and g++ --optimize - Ubuntu 11.04 i386
23:13 bluescreen left #parrot
23:13 mikehh and perl 5.14.0
23:15 cotto_work mikehh: spectest_regression is running for me
23:15 cotto_work slow, but that's expected
23:19 mikehh cotto_work: definately failing to build Test.pir with -> No such attribute '$!storage'
23:19 mikehh cotto_work: what platform?
23:25 cotto_work mikehh: 32-bit ubuntu
23:28 mikehh cotto_work: 'k - not sure what is going wrong, parrot passes all tests - up to fulltest, but I amstill getting that failure with Test.pm -> Test.pir
23:29 mikehh I am on Ubuntu 11.04 i386 with perl 5.14.0
23:34 dalek parrot/tt1682/vtable_substr: 1d125de | jkeenan++ | / (10 files):
23:34 dalek parrot/tt1682/vtable_substr: Substitute 'substr' for 'substr_str' throughout.
23:34 dalek parrot/tt1682/vtable_substr: review: https://github.com/parrot/parrot/commit/1d125de2ec
23:34 cotto_work mikehh: try blowing away the Rakudo directory and doing git reset --hard
23:35 cotto_work there might be some leftover messing up your results
23:49 sorear mikehh: edit the makefile and add -g ms2
23:49 sorear mikehh: I have the exact same problem
23:50 sorear mikehh: jnthn says that it's almost certainly a missing write barrier in the MMD core and he's queued a TODO
23:50 benabik I <3 git-bisect so much.
23:52 silug joined #parrot
23:52 kid51 is now known as kid51_at_dinner
23:52 sorear now if only there were a way to pass gc options to fakecutables
23:57 dalek parrot/m0-prototype: 82eeb68 | cotto++ | t/m0/integration/m0_sub_ (2 files):
23:57 dalek parrot/m0-prototype: add tests for sub_i and sub_n
23:57 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/82eeb68980
23:57 dalek parrot/m0-prototype: b9ef0c5 | cotto++ | t/m0/integration/m0_ (4 files):
23:57 dalek parrot/m0-prototype: add mult_i and mult_n tests, fix copy/pate goof in sub_x tests
23:57 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/b9ef0c5105
23:57 dalek parrot/m0-prototype: e85566c | cotto++ | t/m0/integration/m0_div_ (2 files):
23:57 dalek parrot/m0-prototype: add tests for div_i and div_n
23:57 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/e85566c72e
23:57 dalek parrot/m0-prototype: 4a29187 | cotto++ | t/m0/integration/m0_mod_ (2 files):
23:57 dalek parrot/m0-prototype: add tests for mod_n and mod_i
23:57 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/4a291877b8

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

Parrot | source cross referenced