Parrot 3.4.0 released | parrot.org | Log: irclog.perlgeek.de/parrot/today
Set by moderator on 17 May 2011.
00:07 davidfetter left 00:14 dmalcolm left
soh_cah_toa whiteknight++ indeed. finally some decent docs for winxed. very nice 00:22
00:30 lucian_ is now known as lucian
lucian hugs whiteknight in a totally non-awkward way 00:30
whiteknight thanks! It's clearly not complete or anything
a good starting point 00:31
lucian still very useful, especially the list of builtins
whiteknight also it's in the rosella repo now, so pull requests accepted
dalek rrot: 88938d0 | soh_cah_toa++ | src/call/pcc.c:
Added missing =cut that was messing up perldoc
00:37
whiteknight lucian++ on the blogpost 00:42
lucian whiteknight: thanks, it's just narration 00:43
whiteknight lucian++ on the narration 00:45
lucian :) 00:46
whiteknight++: in winxed, is using an expression? 00:47
whiteknight i don't think so 00:48
I thnk it's a statement
lucian it bothers me that the last name in the chain is just bound locally 00:49
whiteknight yeah 00:50
i never liked that too much either
there is a "using namespace" statement that's newer and probably does more of what you want
lucian yeah, that does sound better 00:51
whiteknight but that's for static searches only. Doesn't work for dynamically loaded libaries 00:52
lucian hmm
bleah, the named arg calling syntax is yucky 00:53
declaring syntax isn't much better, but i understand why
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.
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
cotto: not only that but it seems to be giving me -1 randomly. sometimes a legimate number, sometimes -1. it's weird
lucian i think i found a bug in winxed, or at least a missing feature 00:58
whiteknight lucian: what? 00:59
lucian it uses .line for marking line numbers, and the docs recommend .annotate
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?
lucian yeah
whiteknight when I do it, I see ".annotate 'line' XX" 01:01
lucian you do? odd. let me try again
cotto ~~ 01:02
lucian oh, me too. i'm confused, why did i see .line yesterday
cotto need nom
lucian whiteknight: oh, btw, i ended up writing a python distutils command for building winxed and pir
cotto will investimagate in a bit
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 01:08 benabik left, benabik_ is now known as benabik
soh_cah_toa man, i am so stumped. there really is no legimate way to find line numbers in pir code 01:16
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
scratch that. comments aren't annotated at all
sorear comments don't need to be annotated 01:17
soh_cah_toa but what if i want to stop at one?
break that is
whiteknight soh_cah_toa: I figured it was going to be hard. I didn't think it was impossible
sorear gdb doesn't allow breaking on comments
why should you?
only allow breaking on executable code
soh_cah_toa it doesn't? i was pretty sure it did 01:18
soh_cah_toa checks
sorear if the user tries to break on a comment, gdb instead breaks on the first executable code after the comment
cotto If someone wants to do something silly like break at a comment, cheat.
do what sorear said
soh_cah_toa yeah, i just tried it. that's exactly what it does 01:19
cotto I'm not sure if you'd even call that cheating. 01:20
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
*can't
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)`?
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
benabik Converting PIR to NQP is very educational about what PCT does. 01:24
bubaflub benabik: are you rewriting stuff that was in the Q:PIR { } blocks into NQP? 01:25
benabik bubaflub: Yes.
bubaflub benabik: fantastic.
benabik bubaflub: github.com/Benabik/parrot/commits/nqp_pct
bubaflub benabik: great work - that's much much simpler 01:26
benabik bubaflub: The resulting PIR is much larger in most cases. 01:28
bubaflub benabik: really? is that because of the inefficiency of generated PIR? 01:29
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:30
bubaflub: I don't expect that the final result will be too much slower. (timewise) 01:31
01:31 bacek left
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.
bubaflub: Also, I hope that PCT will learn to be better.
bubaflub benabik: great. 01:34
benabik bubaflub: An earlier GSoC project: 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.
bubaflub benabik: ah, i remember that one.
soh_cah_toa cotto: i hope so 01:38
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 01:58 whiteknight left 02:00 bubaflub left 02:02 kid51 left
soh_cah_toa what header file do i need to #include to use CONST_STRING()? gcc is whining about an undefined reference 02:03
cotto It's a magic macro that gets converted by c2str.pl 02:04
The easier answer is to use Parrot_str_new_from_cstring (or the similarly named function that exists)
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.
cotto Go for it. We're adventurous.
benabik And I could close my ticket on PDD 19. :-D 02:07
dalek rrot: 51ee42f | (Brian Gernhardt)++ | docs/pdds/pdd19_pir.pod:
PDD 19: Explain :method :multi(_)

I didn't expect :multi to need to add the type of the invocant. So let's add an explanation to the first place I looked for an answer.
02:12
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.
cotto we love our hacks
why do you think we have so many? ;)
benabik Alphabetical by N: field? 02:17
cotto something like that
t
dalek rrot: c2e3158 | benabik++ | CREDITS:
Add myself to CREDITS

I like getting credit for things.
02:19
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
benabik Let's see if the other thing worked. 02:21
dalek Heuristic branch merge: pushed 1500 commits to parrot/nqp_pct by Benabik
benabik :-D
GSoC week 2 and I've already pushed 1502 commits. 02:23
cotto soh_cah_toa, I think so. Let me check. 02:24
actually, I remember my answer: the annotations ops 02:25
lucian i think my commit messages are getting a bit too long
soh_cah_toa oh yeah
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.
lucian hmm, good point
cotto Long commit messages are great if properly formatted.
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 :)
cotto There's a line between what belongs in a commit message and what deserves its own blog post.
lucian nods 02:28
usually it's things like "did this in way Foo, should change to Bar soon"
cotto on a completely unrelated note, "time sync" is a very self-descriptive command
lucian let me guess: it syncs time? 02:29
dalek TT #2122 closed by benabik++: :method and :multi 02:32
TT #2122: trac.parrot.org/parrot/ticket/2122
cotto it's a time sink 02:33
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.
you'll probably want to iterate through it 02:40
02:40 bubaflub joined
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:41
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.
soh_cah_toa sometimes i get -1 and it only reports line #'s for opcodes
cotto Keep in mind your long-term goals, but you'll understand how the whole system fits together once you have something workable.
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:43
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:45
it's essentially the same as a comment for purposes of the debugger 02:46
soh_cah_toa well, that's gonna cause problems later b/c i plan on using breakpoints internally to implement single step 02:47
cotto soh_cah_toa, that wouldn't work anyway. A PIR instruction doesn't always correspond to a single op. 02:50
often, but not always 02:51
soh_cah_toa well then i have no idea how to do stepping then. i'll worry about it later though. 02:53
i still have the -1 problem though
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
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
You'll have to make sure to restore the op correctly, but that's doable.
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:55
cotto You just have to be careful, that's all. 02:56
After thinking about it some, I've warmed up to the idea.
soh_cah_toa how am i able to ready the actual byte value of an opcode though? 02:57
*read
cotto same way that DO_OP does. Look at *pc 03:01
soh_cah_toa well, i'm thinking a few steps ahead actually. i still have the issue of line numbers 03:04
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
soh_cah_toa will be right back 03:05
benabik Line numbers may be one of the harder things due to how crazy IMCC is. 03:07
dalek rrot/m0-prototype: 3c050e5 | cotto++ | t/m0/ (26 files):
reorganize tests and files, fix m0_noop.m0
cotto benabik, yeah. It's unfortunate that it's also such a natural starting place when working on a debugger. 03:09
soh_cah_toa is back 03:19
03:23 preflex left
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:23
cotto soh_cah_toa, sure 03:25
03:25 preflex joined
cotto soh_cah_toa, what do you mean "acting like this"? 03:25
soh_cah_toa cotto: line #: 3, 4, 5, 6, -1, -1, -1, -1, -1, -1, -1 03:27
03:27 SteveH joined
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
soh_cah_toa imcc: i make crappy code 03:29
imcc: i make coders cry
imcc has become my enemy 03:30
cotto If you're questioning your sanity and imcc is involved, you're probably sane. 03:33
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.
soh_cah_toa benabik: that would be great 03:37
benabik: one possible end point for my gsoc project is intense therapy
cotto soh_cah_toa, take all the frustration you
're experiencing, multiply it by everyone who's had to work on imcc and you'll learn a lot about our motivations. 03:38
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:42
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
It was not intended to be a long-term solution.
There are some features of PIR that make compilation harder than it needs to be. 03:44
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
between pirate and m0, parrot is really getting a nice makeover
cotto now you understand why a bit more
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:48
cotto Don't pull your hair out trying to work around imcc. Just go with what works. 03:49
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:51
cotto What's your example code? 03:54
soh_cah_toa i'm making a nopaste now
cotto great 03:55
03:58 SteveH left
nopaste "soh_cah_toa" at 192.168.1.3 pasted "-1" (111 lines) at nopaste.snit.ch/49472 04:01
cotto It's pretty broken. 04:08
soh_cah_toa yeah, i'd say so 04:09
plobsing looks like all the ops in the first sub get numbered fine. 04:19
what happens when you switch the order in which the subs are defined? 04:20
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:22
nopaste "soh_cah_toa" at 192.168.1.3 pasted "Flipped definition of count_args() and main()" (25 lines) at nopaste.snit.ch/49473 04:24
04:26 theory joined
dalek lrskate: d4c3d2c | tcurtis++ | src/LALR/Grammar.winxed:
Add comments describing the LALR.Grammar class and its methods.
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)
dalek lrskate: 832df2e | tcurtis++ | src/LALR/Grammar.winxed:
Rework the Grammar API a little bit.
lrskate: 8d3adc9 | tcurtis++ | src/LALR/Grammar/Prettyprint/BNF.winxed:
Update the prettyprinter to work after the Grammar changes.
lrskate: 1550136 | tcurtis++ | examples/ (2 files):
Update the example grammars.
nopaste "soh_cah_toa" at 192.168.1.3 pasted "Without any subroutine calls" (36 lines) at nopaste.snit.ch/49474
lrskate: ff39ff2 | tcurtis++ | t/lalr-grammar.t:
Update the test file.
bubaflub plobsing: i had a few questions about handling strings through NCI if you've got a moment
plobsing bubaflub: shoot
tcurtis ~~
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.
there are other ways, but that is the easiest (if not the most efficient)
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
plobsing: i think that string stuff will work - there aren't many functions for strings, just formatted output and converting input.
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
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.
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
cotto: i'll talk to you tomorrow
cotto soh_cah_toa, ok
04:33 soh_cah_toa left
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:40
plobsing bubaflub: not without multi 04:45
bubaflub plobsing: okey dokey. thanks for all your help.
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:50
hmm, well, mpz_clear seems to do the trick as well 04:51
dalek rrot-gmp: f52fa99 | bubaflub++ | src/GMP.winxed:
make sure we have a destructor so we free our allocated space
04:53
rrot-gmp: c830b46 | bubaflub++ | gmph2ncidef.pl:
annotate each line in the NCI def with the convenient name of the function
04:56 bubaflub left 05:11 hudnix left 05:12 theory left 05:17 Khisanth left
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:25
dalek rrot/m0-prototype: c15bc7c | cotto++ | t/m0/ (4 files):
move a couple m0 test files that don't output TAP
05:29
rrot/m0-prototype: 020ab89 | cotto++ | / (3 files):
update integration test to run anything in t/m0/integration and parse the TAP

This test now requires TAP::Parser.
rrot/m0-prototype: e6953c4 | cotto++ | / (3 files):
fix instruction count calculation in m0 assembler
rrot/m0-prototype: dd7ba4c | cotto++ | t/m0/ (3 files):
rewrite remaining failing integration tests
05:29 Khisanth joined
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
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.
sorear what features does his debugger have? 05:35
obviously no breakpoints or single-stepping
cotto right now there's not much
sorear does it have a command loop?
is it online anywhere?
cotto just a sec 05:36
no command loop so far (iirc)
github.com/soh-cah-toa/parrot/tree...toa%2Fhbdb
sorear I'll maybe spend an hour or two tommorrow trying to implement break $IP, go, singlestep? 05:37
sorear checks out 05:38
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:40
cotto shouldn't 05:41
not sure why you'd want 2.8, but you should be fine
sorear well... "make" in rakudo-ng segfaults during the build
it's the last version of Parrot I installed 05:42
cotto awesome 05:43
dukeleto ~~ 05:46
cotto hio dukeleto 05:47
dukeleto cotto: wazzup
dukeleto is about to go to a wedding on the east coast
cotto: i plane to do some m0 hacking on the plane 05:48
cotto: other than m0_cover, what else is top priority?
cotto dukeleto, increasing coverage
I found a bug in the assembler by chasing down a warning earlier this evening 05:49
dukeleto cotto: coolio
cotto dukeleto, do you have TAP::Parser installed?
dukeleto cotto: yes, 3.17 05:52
cotto: it is a dependency of most test modules
cotto great
dukeleto cotto: many people may have a 2.x version, tho 05:53
cotto: but that shouldn't matter much
cotto I'm not using it very sophisitcatedly.
I'm shooting for "correct", but that'll need verification. ;)
05:53 woosley joined
dukeleto cotto: i will take a look 05:54
cotto dukeleto, thanks
dukeleto cotto: i spent most of the day preparing for my trip, and haven't backlogged or looked at he repo
but I just updated all my repos for the flight ;)
cotto dukeleto, what trip? 05:55
dukeleto cotto: going to a wedding of a good friend 06:00
cotto dukeleto, sounds like a good time 06:01
cotto is done for the night 06:05
dalek rrot/m0-prototype: a7424dd | cotto++ | / (2 files):
add add_i test, fix goto_if bug in assembler
dukeleto grabs the latest Devel::Cover and m0-prototype 06:06
cotto dukeleto++ 06:07
dukeleto .fly($east_coast)
06:09 fperrad joined 06:21 unStatiK left, preflex left 06:24 preflex joined 06:40 preflex left 06:42 preflex joined 07:12 mj41 joined 07:31 jsut_ joined 07:35 jsut left 08:54 Kulag left 08:57 Kulag joined 09:00 ligne_pub is now known as ligne_work 09:31 woosley left 10:02 JimmyZ joined 10:08 mtk left 10:15 mtk joined 10:40 contingencyplan left 10:46 contingencyplan joined 10:53 contingencyplan left 11:12 lucian joined
dalek nxed: r1033 | NotFound++ | trunk/winxedst1.winxed:
fix the lexical workarounds and reorganize LocalFunction var search methods
11:37
11:38 lucian left 11:40 lucian joined 12:19 davidfetter joined 12:22 dodathome joined 12:29 lucian left 12:32 whiteknight joined 12:33 davidfetter left, bluescreen joined
whiteknight good morning, #parrot 12:36
tadzik good morning whiteknight
12:37 bluescreen left 12:40 bubaflub joined
dalek rrot/m0-prototype: 85dc95c | dukeleto++ | config/gen/makefiles/root.in:
Add a m0_cover target to generate coverage with Devel::Cover
12:47
rrot/m0-prototype: 180e23f | dukeleto++ | t/m0/ (2 files):
Add a todoed test for add_n and make tests care about exit codes
rrot/m0-prototype: 886300e | dukeleto++ | t/m0/ (2 files):
Add a test+coverage for invalid registers
rrot/m0-prototype: 7512e60 | dukeleto++ | t/m0/ (2 files):
Add a test for invalid register numbers
rrot/m0-prototype: d68fcb6 | dukeleto++ | t/m0/ (2 files):
Add todo test for invalid register types
rrot/m0-prototype: 3b38c4d | dukeleto++ | t/m0/m0_assembler.t:
Also test that one of the invalid m0 tests didn't create a m0b file
12:52 bluescreen joined
bubaflub ~ 12:53
dalek nxed: r1034 | NotFound++ | trunk/t/basic/02hashexpr.t:
basic tests for hash expresions
12:55
13:00 SteveH joined
NotFound whiteknight++ Winxed doc! 13:03
whiteknight NotFound: you like? I have more that I haven't uploaded yet. Will upload tonight
I also need to break it into smaller files 13:04
13:05 lucian joined
NotFound whiteknight: just one pitfall: you call the modifiers "flags" in some places. I think being consistent in that bit is important. 13:06
whiteknight they should always be called modifiers? 13:07
NotFound Yes, even the ones that act like flags.
whiteknight ok
13:15 SteveH left
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:18
About the breakpoints: there is a pir problem in that regard, there is no reliable way to annotate the start of a .sub 13:21
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
Ubuntu 11.04 i386 (g++ --optimize)
whiteknight I hate PIR 13:25
seriously. Hate
hate hate hate
hate hate hate hate hate hate hate hate hate hate hate hate hate hate hate hate hate hate hate hate hate
oh, and IMCC-- too
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:27
whiteknight yay assistance! 13:30
PIR and IMCC are the anchors that are holding Parrot's head under water
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)
s/tset1/test1/ 13:34
I don't really see PIR as the problem, IMCC is 13:37
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
mikehh the whole problem is that IMCC is a virus that mutated without proper control 13:41
PIRC was an attempt to get rid of IMCC, but unfortunately had a very low bus number 13:43
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
mikehh also I was told that it was not a high priority and other things needed to be done first 13:45
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
whiteknight People kept changing IMCC and PIR syntax to have more features, beause too many people were writing PIR code by hand
we didn't have alternatives like Winxed or even NQP for a whole hell of a lot of time
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
for that matter, PIR shouldn't exist. It should have all been PASM
atrodo whiteknight++
whiteknight code generators can generate PASM sequences just as easily as PIR.
NotFound The problem I see is that pasm is too low level and pir a bit too high.
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
whiteknight the biggest problem with PASM is that as IMCC has been updated, PIR gained capabilities that PASM does not have
several directives from PIR don't exist in PASM mode
NotFound pasm lack several features.
whiteknight right, because they were added to PIR as "sugar" and never backported 13:49
originally, PIR was just an overlay for PASM with nicer syntax.
PIR has a register allocator, for instance. PASM code doesn't use it
which means the HLL would have to use PIR or provide it's own register allocator 13:50
I don't think PASM currently has nice support for lexicals either
NotFound We can strip-down some pir features. For example, a modifier that works like :method minus the automatic 'self' may be useful.
whiteknight maybe it does, I can't remember
NotFound: yes, automatic self is a problem
jnthn__ Rakudo and new nqp don't use :method fwiw. 13:52
It's too tied to Parrot's object model.
whiteknight I really don't think it should exist at the Parrot level either, in the long run
a :method is just an ordinary .sub with some magic for making self appear and keeping it out of the namespace
actually, it doesn't avoid the namespace. It's still in there, we just have no API to look it up 13:53
which is the same thing, from the user perspective
NotFound Don't know the long run, but *now* we need that magic. And that magic must not neccesarily go together with 'self'.
whiteknight NotFound: The problem with getting rid of self is that we break a lot of existing PIR code 13:54
lots of code in t/, lots of code in runtime/parrot/library/
and lots of user code written in PIR
we need a lengthy deprecation, at least
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.
jnthn__ A method installation should go in a meta-object, and how that and a namesapce relate - if they do - is quite langauge-specific.
NotFound jnthn__: the problem is the one with annotations I said a few lines ago.
whiteknight jnthn__: well, the namespace serves that purpose in PIR. We don't have a syntax for defining class objects at compile time
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.
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
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. :)
mikehh along with M0 specification we should consider what is needed in M1+
NotFound Someone said: "In the Long Run, We're All Dead"
whiteknight jnthn__: right. But when do we make those method calls? And where do we store the subs until we call the methods?
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 :-}
jnthn__ whiteknight: But really the compiler would make those method calls and have the entire bunch of stuff get serialized.
whiteknight jnthn__: so .add_method it at runtime? Explicitly or implicitly?
jnthn__ whiteknight: That's where nqp and Rakudo are heading.
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.
whiteknight okay, that's what I figure we want to do.
jnthn__ whiteknight: But I dunno that it's worth it. I didn't think encouraging people to write PIR was helpful.
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
jnthn__ Make it a pain and people will write/use HLLs.
NotFound Code generators write pir. They need ways to do what they need.
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.
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
NotFound I can't annotate method's entry point, that is an actual problem.
whiteknight like the relationships between NameSpace and Class, or NameSpace and PMCProxy
and the differences between Sub and Method
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.
whiteknight mikehh: yes, that's a good point
jnthn__ NotFound: I'm not talking about now. I'm talking about ideal future.
NotFound jnthn__: I'm thiking about the future but working in the opresent. 14:02
14:02 hudnix joined
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:02
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?
NotFound I think decoupling some chunks of pir magic is a good start towards anything.
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:06
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:08
whiteknight true 14:13
14:16 mikehh left, arnsholt left, estrabd left, sorear left, TimToady left, p6eval left, dalek left, ingy left, krunen left, cxreg left, jnthn__ left, marc left, tadzik left, JimmyZ left, Kulag left, mj41 left, wagle left, tty234 left, pjcj left, PacoLinux left, spinclad left, Coke_ left, eternaleye left, slavorgn left, GeJ left, davidfetter left, lucian left, dodathome left, mtk left, autark left, bubaflub left, Khisanth left, ligne_work left, TonyC left, AzureSto_ left, tcurtis left, allison left, NotFound left, simcop2387 left, dngor left, baest left, rblackwe left, ttbot left, Maddingue left, Infinoid left, bluescreen left, jsut_ left, preflex left, perlite left, shachaf left, plobsing left, TiMBuS left, cotto left, cotto_work left, KaeseEs left, cosimo left, frodwith left, Hunger left, ascent left, janus left, PerlJam left, dukeleto left, bacek_at_work left, aloha left, slavorg left, Tene left, Util left, knewt left 14:30 GeJ joined, slavorgn joined, eternaleye joined, Coke_ joined, spinclad joined, PacoLinux joined, pjcj joined, tty234 joined, wagle joined, mj41 joined, Kulag joined, JimmyZ joined, hercynium joined, knewt joined, Util joined, Tene joined, slavorg joined, aloha joined, bacek_at_work joined, dukeleto joined, PerlJam joined, janus joined, ascent joined, Hunger joined, frodwith joined, cosimo joined, KaeseEs joined, cotto_work joined, cotto joined, TiMBuS joined, plobsing joined, shachaf joined, perlite joined, preflex joined, jsut_ joined, bluescreen joined, lucian_ joined, mikehh joined, arnsholt joined, estrabd joined, sorear joined, TimToady joined, p6eval joined, dalek joined, ingy joined, krunen joined, cxreg joined, marc joined, jnthn__ joined, tadzik joined 14:34 lucian_ is now known as lucian
lucian i missed the method discussion earlier 14:35
never mind, after reading the backlog, what i was going to say wouldn't have been relevant 14:36
whiteknight does PASM have .const 'Sub' syntax? 14:41
14:45 dmalcolm joined, davidfetter joined, bubaflub joined, dodathome joined, mtk joined, Khisanth joined, autark joined, baest joined, ligne_work joined, TonyC joined, AzureSto_ joined, tcurtis joined, allison joined, simcop2387 joined, NotFound joined, dngor joined, rblackwe joined, ttbot joined, Maddingue joined, Infinoid joined 14:52 lucian left 14:54 lucian joined
ambs seen moritz 15:02
aloha moritz was last seen in #parrot 32 mins 45 seconds ago joining the channel.
lucian whiteknight: in your lovely winxed docs, there's mention of multiple return 15:03
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
whiteknight :(<params>) = func(<args>)
:(a [slurpy], b [named,optional], has_b [opt_flag]) = func(...) 15:05
lucian right, that's the caller. how about the callee?
whiteknight oh, right
"return 1, 2, 3, 4, 5"
lucian oh, ok
whiteknight or "return 1, 2, 3, b:[flat]" 15:06
it's exactly the same as the argument list on the caller
lucian right, thanks
whiteknight "return 4:[named("foo")], ..."
lucian whiteknight: i'm starting to get used to Rosella.Test 15:13
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
I'm happy to make improvements for my users :) 15:15
15:18 lucian_ joined
lucian_ whiteknight: uh, i do. i can't find anything for identify in the asserter 15:18
i really need to set up some client-server irc client
right now options are ctrlproxy, irssi, quassel, smuxi, weechat 15:19
whiteknight what do you mean "identify"? 15:20
lucian_ whiteknight: determine if two names reference the same object
15:21 lucian left, lucian_ is now known as lucian
whiteknight oh. There's a "same" and "not_same" to test if they are the same reference or not 15:21
and "equal" and "not_equal" to test for equality
lucian ah, ok
didn't spot same 15:22
dalek rrot/m0-spec: 5112b61 | cotto++ | docs/pdds/draft/pdd32_m0.pod:
make the args for iton and ntoi more intuitive
lucian again, i'm spoilt. this time by py.test
whiteknight the list of assertions has grown too large
15:22 bluescreen left
whiteknight I need to look at py.test 15:22
15:23 bluescreen joined
lucian just so you know, py.test isn't very popular 15:23
it lets you use python's assert, so you can do "assert 1 == 1" for equal or "assert 1 is 1" for identity
for rosella, it's possible that xunit style is better, since it's supposed to be usable by different languages 15:24
15:29 bluescreen left, autark left, mtk left, davidfetter left, dodathome left, ttbot left, NotFound left, simcop2387 left, bubaflub left, dmalcolm left, baest left, allison left, tcurtis left, AzureSto_ left, Khisanth left, ligne_work left, Infinoid left, Maddingue left, rblackwe left, dngor left, TonyC left, lucian left, jnthn__ left, krunen left, p6eval left, estrabd left, arnsholt left, mikehh left, TimToady left, sorear left, marc left, cxreg left, tadzik left, ingy left, dalek left, JimmyZ left, wagle left, PacoLinux left, spinclad left, Coke_ left, eternaleye left, GeJ left, Kulag left, hercynium left, tty234 left, pjcj left, mj41 left, slavorgn left, shachaf left, plobsing left, TiMBuS left, cotto left, cotto_work left, cosimo left, bacek_at_work left, aloha left, jsut_ left, slavorg left, Hunger left, janus left, KaeseEs left, frodwith left, PerlJam left, dukeleto left, Tene left, Util left, preflex left, perlite left, ascent left, knewt left 15:53 Infinoid joined, Maddingue joined, ttbot joined, rblackwe joined, dngor joined, NotFound joined, simcop2387 joined, allison joined, tcurtis joined, AzureSto_ joined, TonyC joined, ligne_work joined, baest joined, autark joined, Khisanth joined, mtk joined, dodathome joined, bubaflub joined, davidfetter joined, dmalcolm joined 15:54 hercynium joined, JimmyZ joined, Kulag joined, mj41 joined, wagle joined, tty234 joined, pjcj joined, PacoLinux joined, spinclad joined, Coke_ joined, eternaleye joined, slavorgn joined, GeJ joined, jsut_ joined, preflex joined, perlite joined, shachaf joined, plobsing joined, TiMBuS joined, cotto joined, cotto_work joined, KaeseEs joined, cosimo joined, frodwith joined, Hunger joined, ascent joined, janus joined, PerlJam joined, dukeleto joined, bacek_at_work joined, aloha joined, slavorg joined, Tene joined, Util joined, knewt joined 15:55 lucian joined, mikehh joined, arnsholt joined, estrabd joined, sorear joined, TimToady joined, p6eval joined, dalek joined, ingy joined, krunen joined, cxreg joined, marc joined, jnthn__ joined, tadzik joined
cotto_work ~~ 15:59
whiteknight: ping 16:01
whiteknight pong
cotto_work whiteknight: what does your intuition say about github.com/parrot/parrot/commit/5112b61c3a ? 16:02
16:02 theory joined
whiteknight so iton i n x? 16:02
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?
cotto_work yes
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.
ok
I don't like the cognitive dissonance between the name and the order of the arguments though.
whiteknight so rename the op 16:05
NotFound Then change te name.
whiteknight ifromn, nfromi
cotto_work deal
whiteknight how is the float->int conversion done? truncation? Rounding?
16:05 lucian_ joined
whiteknight that's an important detail to mention 16:05
cotto_work whiteknight: atm it's whatever perl 5 does. 16:06
whiteknight ok
in the final version, we need to be *very* specific
cotto_work whiteknight: sure.
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:08
Now's a great time to start refining the semantics of M0. 16:09
16:10 lucian left
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:10
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
NotFound "a" CPU or "the" CPU? 16:15
cotto_work also, which cpu? 16:16
sorear also, which cpu semantics?
a lot of cpus have no native rounding mode
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.
NotFound Then the question: similarly to what? 16:18
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)
NotFound A C compiler do what the C standard says. 16:20
(in the best cases) 16:21
16:23 bluescreen joined 16:24 JimmyZ left 16:25 mj41 left
cotto_work would "round like ansi C" work? 16:26
jnthn__ cotto_work: Probably.
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
if we want software to have native performance, write in a natively-compiled language like C 16:27
if you want better semantics than C, at cost, use a VM
cotto_work "better"? 16:29
NotFound But a cast to int is not a rounding operation.
C has "implementation defined" semantic in a lot of operations because of historical reasons and, in some cases, speed. 16:33
I don't think we have that reasons in low level operations.
('historical' here means 'the past millenium') 16:34
cotto_work It's something that deserves more thought than I've been giving it. 16:36
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:37
Not being sure about the valueof an int in mundane situations is the road to nowhere. 16:39
dalek p: 473c265 | tadzik++ | src/HLL/Compiler.pm:
Quit REPL and print a newline on ^D

This also works in Rakudo/nom, which makes RT #70297 fixed in nom.
16:45
16:58 [hudnix] joined 16:59 hudnix left 17:16 ligne_work left 17:34 plobsing left 17:43 zby_home joined 17:55 lucian joined 17:56 lucian left
Coke_ tadzik++ 17:59
tadzik now messing in HLLCompiler.pir is not something I really want 18:01
I'm fine with "in nom" part 18:02
18:05 lucian joined
lucian wishes winxed allowed global vars 18:24
18:33 contingencyplan joined
NotFound lucian: maybe someday, but in the meantime is good to avoid depending on them. 18:33
whiteknight NotFound: is there a way to get a reference to the NameSpace PMC? 18:37
like the class keyword as a statement?
NotFound whiteknight: You mean at compile time? 18:39
whiteknight NotFound: like the statement: "var c = class Foo.Bar.Baz;" 18:40
but with the namespace instead of the calss
class
if we had that, we could use normal keyed access to put data into and retrieve out of the namespace 18:41
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:44
lucian whiteknight: +1 18:50
whiteknight okay
dalek nxed: r1035 | NotFound++ | trunk/winxedst (2 files):
Put the compiler into a namespace:

in stage 0 to make it able to compile stage 1 after the changes. Fix hash values emision. Drop all using and using static from the stage 1 compiler. And add the namespaces opening and closing.
19:26
NotFound That was hard. 19:28
lucian whiteknight: is there an easy way to mark a test for skipping? 19:37
whiteknight I think so
lucian whiteknight: other than commenting it? 19:38
whiteknight there's self.status.todo() and self.status.unimplemented()
lucian ah, ok 19:39
thanks
whiteknight but I don't have a .skip() yet. I assume skip() would immediately end the test as TODO?
or "# SKIP"
I can't remeber the tap protocol for it off the top of my head
lucian whiteknight: i don't really know TAP, todo is fine 19:40
whiteknight .todo() marks the test TODO and ignores any failures
I need to add a .skip() method. I'll figure that out tonight 19:41
lucian iirc skip is used for reducing noise when you have a lot of unimplemented features in the code 19:43
(not in the tests)
19:44 lucian left 19:45 lucian joined
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
bubaflub lucian: well, to each his own 19:58
lucian as i said earlier, i haven't much used any xunit clone
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 19:59
mikehh yeah - TODO is for tests that fail (hopefully with a failure message) - SKIP is to avoid tests that can break things 20:01
lucian right, i'm perfectly fine with todo then 20:03
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
TODOed
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:08
whiteknight lucian: if you don't want the test to run, comment out all the asserts 20:14
any test with no failiing asserts is considered a pass
lucian yeah, i figured that
whiteknight or mark it todo or unimplemented
all those things will cut down on noise
mikehh NotFound: ping 20:15
NotFound mikehh: pong
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
6+ hours
NotFound mikehh: my girlfrien has had older versions running for weeks, without noticeable leaks, 20:18
Looks like our GC is not so bad ;)
mikehh was just wondering if 200MB is what is expected? 20:19
20:21 lucian_ joined
NotFound In my amd-64 right now top says is using 3.5% od mem, and free says Total mem is 4065608 20:21
20:21 bluescreen left
NotFound I'm not sure about what we should expect, haven't checked other usages. 20:22
20:22 mj41 joined 20:23 lucian__ joined
NotFound fly has a lot of objects plus the opengl module, 200 MB doesn't seem bad. 20:23
20:25 lucian left 20:27 lucian_ left 20:29 whiteknight left
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:34
20:36 bluescreen joined
mikehh thats on 2.6.38-9-generic-pae #43-Ubuntu SMP - Ubuntu 11.04 i386 20:37
I'll check on amd64 version later 20:39
dalek rrot/m0-prototype: 37d6ea8 | cotto++ | / (4 files):
tighten assembler register parsing, fix a couple tests

For reals this time, all tests pass.
20:43
20:50 dodathome left
dalek lrskate: aa018a6 | tcurtis++ | src/LALR/Grammar.winxed:
Add comments describing the newly added aspects of the grammar api.
20:54
mikehh I am getting an error building rakudo 20:58
20:58 mj41 left
mikehh /home/mht/install/lib/bin/parrot perl6.pbc --target=pir --output=Test.pir Test.pm 20:58
No such attribute '$!storage'
21:01 lucian joined 21:05 lucian__ left
jnthn__ mikehh: What are you trying to build? The nom branch? 21:05
If so, it won't compile Test.pm yet. 21:06
mikehh jnthn__: nah just master 21:08
cotto_work Rakudo master looked fine a couple days ago with Parrot master. 21:09
or at least built
jnthn__ mikehh: ah, ok, then it's probably an issue. 21:11
21:11 lucian left, lucian joined 21:13 mj41 joined
nopaste "mikehh" at 192.168.1.3 pasted "rakudo build failure" (20 lines) at nopaste.snit.ch/49579 21:14
21:18 lucian_ joined 21:20 fperrad left 21:21 preflex left 21:23 lucian left 21:24 ambs left 21:25 preflex joined 21:28 lucian__ joined 21:31 lucian__ is now known as lucian 21:33 lucian_ left 21:35 soh_cah_toa joined 21:39 bluescreen left 21:46 Psyche^ joined 21:51 Patterner left, Psyche^ is now known as Patterner
dalek rrot/m0-spec: da50c14 | cotto++ | docs/pdds/draft/pdd32_m0.pod:
change xtoy to yfromx, add a note to about semantics and op arg usage

I'm still on the fence about the "yfromx" naming convention but it is less cognitively dissonant from "iton N0, I0, x".
21:55
21:58 bluescreen joined 22:00 davidfetter left 22:01 mj41 left 22:02 kid51 joined
cotto_work trying to build rakudo master with parrot master now 22:04
22:15 hercynium left
mikehh cotto_work: any luck? 22:18
22:20 bluescreen left
cotto_work mikehh: the build looks fine for me 22:21
22:22 bluescreen joined
mikehh cotto_work: 'k let me do some fresh checkouts 22:22
NotFound Has someone tested the with_winxed branch? 22:27
mikehh which branch? 22:28
ah ok, will do that after the rakudo test 22:29
NotFound origin/with_winxed
I've tested it with i386 and amd64, more platforms welcome. 22:30
22:35 bluescreen left
mikehh NotFound: that's all I've got at the moment 22:36
NotFound Anyway, some test out of my house will be good ;) 22:37
22:37 lucian left 22:39 bluescreen joined 22:43 bluescreen left
dalek rrot/m0-prototype: 731de5b | cotto++ | src/m0/perl5/m0_assembler.pl:
remove an unused sub from the assembler
22:45
p: 7ca852e | jonathan++ | src/ (2 files):
More decontainerization twiddling.
22:46
22:46 bluescreen joined
cotto_work dukeleto++ for m0_cover 22:47
22:47 bluescreen left
dalek rrot/tt1682/vtable_substr: fb1cc04 | jkeenan++ | / (2 files):
Begin process of deprecating VTABLE_substr. Eliminate instances of usage.
22:48
22:49 lucian joined
cotto_work unsurprisingly, the only un-covered parts of the M0 interp are ops. 22:49
22:51 whiteknight joined, lucian left
cotto_work other than some bits that need invalid m0b to exercise 22:52
23:02 bluescreen joined
mikehh cotto_work: rakudo builds, but there is an error building Test.pir and thus the tests won't run 23:11
I tried it with gcc --optimize and g++ --optimize - Ubuntu 11.04 i386 23:12
23:13 bluescreen left
mikehh and perl 5.14.0 23:13
cotto_work mikehh: spectest_regression is running for me 23:15
slow, but that's expected
mikehh cotto_work: definately failing to build Test.pir with -> No such attribute '$!storage' 23:19
cotto_work: what platform?
cotto_work mikehh: 32-bit ubuntu 23:25
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:28
I am on Ubuntu 11.04 i386 with perl 5.14.0 23:29
dalek rrot/tt1682/vtable_substr: 1d125de | jkeenan++ | / (10 files):
Substitute 'substr' for 'substr_str' throughout.
23:34
cotto_work mikehh: try blowing away the Rakudo directory and doing git reset --hard
there might be some leftover messing up your results 23:35
sorear mikehh: edit the makefile and add -g ms2 23:49
mikehh: I have the exact same problem
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, kid51 is now known as kid51_at_dinner
sorear now if only there were a way to pass gc options to fakecutables 23:52
dalek rrot/m0-prototype: 82eeb68 | cotto++ | t/m0/integration/m0_sub_ (2 files):
add tests for sub_i and sub_n
23:57
rrot/m0-prototype: b9ef0c5 | cotto++ | t/m0/integration/m0_ (4 files):
add mult_i and mult_n tests, fix copy/pate goof in sub_x tests
rrot/m0-prototype: e85566c | cotto++ | t/m0/integration/m0_div_ (2 files):
add tests for div_i and div_n
rrot/m0-prototype: 4a29187 | cotto++ | t/m0/integration/m0_mod_ (2 files):
add tests for mod_n and mod_i