Camelia, the Perl 6 bug

IRC log for #parrot, 2009-01-19

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:01 TiMBuS joined #parrot
00:09 AndyA joined #parrot
00:18 Whiteknight joined #parrot
00:25 Rahly joined #parrot
00:41 dalek r35731 | Whiteknight++ | trunk/src/gc:
00:41 dalek : [GC] apply a patch from jimmy++ to simplify a debug condition for TT#84
00:41 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35731
01:04 Tene_ joined #parrot
01:22 particle joined #parrot
01:25 tetragon joined #parrot
01:34 bkuhn Hey, can someone suggest the best example to look at if my goal is wrap an object in C and have it appear as an  object in Parrot?
01:35 kid51 joined #parrot
02:03 dalek r35732 | julianalbo++ | trunk/src:
02:03 dalek : allow packfile.c to compile with c++ again
02:03 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35732
02:06 Infinoid bkuhn: a generic object?  or something in particular?  (Generally that's what PMCs are for.)
02:07 bkuhn Yeah, I'm starting to discover that.  I have a data structure in C that I want to present as an object in PIR.  Seems that I should just use the NCI and wrap it with PIR code that makes it an objection.  Am I on the right track?
02:08 bkuhn s/an objection/an object/ :)
02:08 Infinoid NCI is for calling functions; PMCs are for representing objects in PIR.  together, they fight crime.
02:09 Infinoid if you just want something generic you can pass around, you can probably just use UnmanagedStruct or Pointer as-is.  If you want to implement some methods to call on it and that sort of thing, you should probably write a PMC for it, and src/pmc/ is full of examples
02:09 bkuhn Yes, I have some crime I want to fight.  It sounds like these are the guys I need.
02:09 NotFound bkuhn: if you cat treat the structure as an opaque object, NCI migth be fine. If not, yoy can have more problems.
02:10 bkuhn Yeah, I have been looking at examples in the code of opaque objects.  I can probably do so and have  C function operate on it when I need to reach into it.
02:11 Infinoid great
02:14 mdiep joined #parrot
02:19 jimmy joined #parrot
02:20 jimmy Anyone helps me to take a look at TT #153?
02:23 NotFound jimmy: Why do you want to modify this function?
02:24 jimmy PMC_IS_NULL did the same action.
02:24 NotFound jimmy: PMC_IS_NULL is mapped to that function in extern/embed usage.
02:25 NotFound Or at least that was the intention some time ago.
02:25 jimmy PMC_IS_NULL is global.
02:25 jimmy at least, it works for pmc.c
02:26 NotFound jimmy: is a macro, there is no scope for macros.
02:26 mdiep there should be a comment in the source to that effect then
02:28 NotFound mdiep: agree, and maybe his declaration must be moved to extend.h
02:30 NotFound By the way, some day we must drop the PARROT_CATCH_NULL thing. There are a lot of things that depends on catch null PMC
02:31 jimmy yes, seems that there is a TT on it.
02:32 Coke_distracted jonathan: ping.
02:32 galeron joined #parrot
02:32 galeron hi
02:33 galeron What's with the perl channel?
02:33 NotFound jimmy: in any case, currently we cannot implement PMC_is_null by using PMC_IS_NULL, because PMC_IS_NULL can be defined as calling PMC_is_null, depending on what and why we are compiling.
02:33 galeron Not anymore perl oriented?
02:33 jimmy move PMC_IS_NULL out of PARROT_IN_CORE condition
02:33 Infinoid no idea.
02:34 galeron There's a bunch of new ops going crazy.
02:34 jimmy NotFound: and then we can remove it.
02:34 galeron Where's the perl channel?
02:34 purl hmmm... the perl channel is there elite holds discussions
02:34 jimmy galeron: irc.freenode.org/perl6
02:35 galeron Oh it's moved from here?
02:35 galeron Sigh
02:35 Infinoid I think #perl is for perl5
02:35 jimmy yep
02:35 Infinoid (according to http://www.perlfoundation.org/pe​rl5/index.cgi?perl_irc_channel)
02:35 shorten Infinoid's url is at http://xrl.us/becyuw
02:35 Infinoid the one jimmy mentioned is specific to perl6.
02:35 galeron Not exactly, it's some server admin spouting racial slurs and making bans
02:36 NotFound jimmy: we can, but I think that that way just add confusion to the code.
02:36 Infinoid That sounds about average, from what I've heard.
02:36 galeron The perl channel used to be a lot better before.
02:37 galeron Oh well freenode it is I guess.
02:37 galeron Later
02:37 galeron Thanks.
02:37 Infinoid good luck, galeron
02:39 NotFound jimmy: the reason for the functions is to not depend of exposing an internal variable to the outside world, even if wrapped in a macro.
02:39 jimmy however, PMC_IS_NULL must be defined, why not define it outside?
02:39 Infinoid indeed.  if I remember right, exporting variables from a DLL doesn't work
02:40 jimmy ah
02:42 jimmy NotFound: thanks. I know that now.
02:42 NotFound BTW, what is that ASSERT_ARGS(PMC_is_null) thing?
02:44 Infinoid NotFound: it enforces NULL checks on ARGIN()/ARGMOD()/ARGOUT() parameters by use of runtime asserts
02:45 NotFound Infinoid: It enforces it in a function where all arguments can be null?
02:45 jimmy maybe we should use BEGIN_ASSERT_ARGS, END_ASSERT_ARGS too make MSVC debug works.
02:45 Infinoid no.  that's why you declare those parameters as ARGIN_NULLOK() or the like
02:46 jimmy but, it is ugly.
02:46 Infinoid if it isn't NULLOK, it gets checked.
02:46 Infinoid yeah, it's ugly.  but it seems to be better than the alternative
02:47 NotFound Is as ugly as hell.
02:47 Infinoid agreed.  unfortunately, the problem it fixes is even uglier
02:47 Infinoid it has exposed (and allowed us to fix) a few bugs already
02:48 NotFound Infinoid: and there is some reason to not have a semicolon at his end?
02:49 jimmy yes, makes gcc and msvc more happy.
02:49 Infinoid NotFound: more specifically, msvc doesn't have an equivalent of __attribute__((unused)), and so we need to define it to nothing on that architecture.  the semicolon caused tons of C90 warnings in that case
02:49 NotFound jimmy: usually there are ways to make the compilers happy without disturbing the programmers.
02:50 bkuhn Is embed.pod still current instructions for embedding an interpreter?
02:51 jimmy Hadn't found another way yet.
02:51 Infinoid NotFound: the "proper" solution (in my opinion) would be to fix gcc's handling of __attribute__((nonnull)).  The current implementation in gcc 4.x is a bit ... half-written, and often hurts more than it helps.
02:53 NotFound Infinoid: my personal view is that we must no use that feature because is a known source of problems for no clear benefit, but I know that opinion is not majoritary.
02:54 Infinoid I advocated getting rid of __attribute__((nonnull)) at one point, too.  I was voted down.
02:55 NotFound And the not C99 thing, i fixed problems ot that nature just by adding an scope in several places.
02:56 NotFound scopes usually does not harm the compilers nor the programmers
02:56 Infinoid C90, you mean?
02:57 Infinoid the ugly lack of semicolon was due to "mixed declarations and code" errors on MSVC
02:57 Infinoid I think I can dig up a nopaste if you want details.
02:57 jimmy yep, ugly.
02:57 NotFound Infinoid: yes, that problem. You fix it just by moving the declarations in a scope.
02:58 Infinoid by "scope", you mean adding curly braces?  I would love to do that, but with 1800 functions to maintain, it's not very easy
02:58 NotFound I agree that adding a scope to all functions will also be ugly.
02:58 Infinoid it's much easier when you are generating the code like with ops2c or pmc2c, but for the bare C files, it's ... time-consuming
02:59 Infinoid this is one of the few things I *do* like about XS :)
02:59 NotFound Infinoid: is some cases there is not even need to add an empty scope, you just need no move the declarations to the appropiate branch of an if.
03:00 Infinoid that sounds like a much nicer solution
03:00 Infinoid for what it's worth, they did something similar to the perl5 codebase.  It was Nicholas Clark who suggested it for parrot
03:00 NotFound Infinoid: in particular cases is. But for a general prelude to all functions...
03:00 Infinoid http://www.nntp.perl.org/group/perl.p​erl6.internals/2008/12/msg49677.html
03:00 shorten Infinoid's url is at http://xrl.us/bea6n7
03:01 Infinoid if you are selective about what functions it applies to, the problem, then, is how do you enforce it as a codingstd
03:02 NotFound Infinoid: the ugliness I see in that ASSERT_ARGS thing is the it remembers me too much of the macro abuse in XS.
03:03 Infinoid what.  you don't like my beautiful macros? :P
03:03 Infinoid I agree that XS is ugly and should be avoided at all costs.  I also admit that the current implementation isn't pretty to look at.
03:03 jimmy ;(
03:03 jimmy :(
03:03 NotFound Infinoid: I like some macros, but the code that depends too much on them is ususally ugly.
03:04 Infinoid the only thing I like about it is that it *works*
03:04 Infinoid if you've got a better way, I'm certainly open to suggestion
03:05 NotFound Don't be afraid, I like to at least have a way to check that pesky nonnulled null problems.
03:05 * jimmy wonders Is there a better way?
03:05 Infinoid fixing gcc would make me happy
03:06 Infinoid that is, in my mind, the best possible solution.  because it can also generate warnings/errors from the perspective of the caller, which is more useful (in my opinion) than just indicating the function that broke
03:07 NotFound jimmy: there is no way, at least until a day when we have a way to check that non-nullness in all usages of the function at compile time.
03:07 Infinoid I'd have gcc generate runtime checks
03:07 Infinoid if the optimizer is relying on it, then the assumption needs to be validated
03:08 jimmy as somebody said: removing all functions is the better way.:D
03:08 Infinoid and then it can decide the runtime check isn't necessary when it's just passing a notnull argument to another function being called
03:08 Infinoid kinda like how constness is inherited
03:08 Infinoid it only needs to do the check at the roots of the tree
03:08 NotFound Infinoid: I think that is not enough. If we promise to the compiler that will never be called with null, we must have a way to check.
03:09 Infinoid yes.  I just think it would be nice if gcc could do that check, generating runtime to do it if necessary
03:09 Infinoid runtime code, I mean.
03:10 NotFound Infinoid: if you add runtime checks, you are pessimizing instead of optimizing.
03:10 Infinoid if you have one function with a nonnull argument, which calls another, which calls another, you only need to do the check at the base of the call stack
03:11 Infinoid currently gcc generates compile-time checks when it can, and just shrugs and drops it on the floor the rest of the time
03:11 Infinoid ...but optimizes based on it regardless
03:12 NotFound Infinoid: funny you mention the const thing, is also a recurrent problem.
03:13 Infinoid yeah.  but I'm primarily concerned with seatbelts, not optimization
03:13 NotFound And possibly related to this one: every place where we have a cast to solve a contness problem, we a have pointer that change type, effectively disabling known information about nonnullness available.
03:14 Infinoid hmm, that's a good point.  unfortunately, I don't know of a practical way to enforce it other than at function entry
03:15 NotFound Well, that is one more point to keep working in const consistency.
03:15 Infinoid well... on the other hand, hmm
03:16 Infinoid for ARGIN(), that variable shouldn't be modified anyway
03:16 Infinoid I think I asked about making that one const by default, but Andy said for some reason it wouldn't work
03:17 Infinoid for the others, the ARGMOD() contract is only for its value at the beginning of the function, it doesn't necessarily mean the function can't modify the variable later on
03:17 Infinoid and so I'm not sure it needs to be sanity checked after that point
03:17 Infinoid ...but will the optimizer get confused about this?
03:18 NotFound Infinoid: I don't have a clear image of what exactly does that modifiers.
03:19 Infinoid ARGIN() means a pointer is being passed into the function which won't be modified.
03:19 Infinoid ARGOUT() means a pointer is being passed into the function which won't be read; it will only be written to.
03:19 Infinoid ARGMOD() means both may occur.
03:19 Infinoid the ASSERT_ARGS() stuff makes sure those pointers are not NULL
03:20 NotFound The pointed to thing, I suppose.
03:20 Infinoid it doesn't care about the pointed to thing, it's only looking at the pointers themselves
03:21 Infinoid but if the pointer itself is modified, for example, by ptr = realloc(ptr, size, whatever), and then you have a check to make sure ptr isn't NULL, will the optimizer strip out the check in that case?
03:21 Infinoid I don't know if the __attribute__((nonnull)) is for the variable's initial value, or if it follows the variable even if it's been reassigned.
03:22 Infinoid I'm a little confused about this
03:24 NotFound Infinoid: the comments in the source says "The pointer target"
03:26 Infinoid yeah, that's the difference between ARGIN/ARGOUT/ARGMOD.
03:26 Infinoid but the difference between ARGxx and ARGxx_NULLOK is about the pointer, not the pointer target
03:26 Infinoid sorry if I misunderstood your earlier comment
03:27 NotFound The net changed it ;)
03:32 NotFound Turning to the original point, the PMC_is_null function: the macro in that case is just to aid enforcing in a policy that all functions have it?
03:34 Infinoid the macro is nice because then you can skip a function call
03:34 Ademan joined #parrot
03:34 Infinoid I gather the function is *only* there for embedders.
03:34 jimmy yes,
03:35 NotFound The ASSERT_ARGS macro, I mean.
03:35 jimmy It had'nt been used yet.
03:35 jimmy ah, I meant PMC_is_null
03:36 Infinoid oh.  yes
03:36 NotFound Both args can be NULL, so there is nothing to check.
03:36 Infinoid well, there's 2 parts to it
03:36 NotFound In fact, the interpreter is always NULL in the current implementation.
03:36 Infinoid (typing)
03:37 Infinoid first, the test (t/codingstd/c_arg_assert.t) checks that all ASSERT_ARGS_* macros emitted by the headerizer are actually used
03:37 Infinoid second, I made the headerizer emit them for *everything* to reduce the number of "wtfs" when someone changes the NULLOK tagging on a parameter and all of a sudden codingstd tests fail
03:37 Infinoid in other words, to reduce test flapping.
03:37 Infinoid but I don't feel too strongly about the second part, so I don't mind it being changed
03:38 NotFound That is another problem, people frequently forgot, or don't care, to run headerizer.
03:39 NotFound In fact I was just abotu to commit a headerize whe we started talking.
03:39 Infinoid yes, indeed.  and the codingstd failures don't show up until you have done so
03:40 Infinoid headerizer has still been a pretty useful tool for this purpose :)
03:41 NotFound Infinoid: is not my favourite thing, but I agree is useful.
03:42 Infinoid it's far better than doing it by hand...
03:42 particle1 joined #parrot
03:44 NotFound In fact I was just (one more time) fixing c++ buildability, and this things are someway complicating it, but it can just that I'm not yet used to them.
03:45 Infinoid what's the problem?  I haven't tried to build for c++ for a while.
03:45 dalek r35733 | julianalbo++ | trunk/include/parrot (2 files):
03:45 dalek : update headerizing
03:45 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35733
03:46 NotFound The usual ones of casting dropping or adding constness.
03:46 Infinoid ah.  (picky compilers)++
03:47 NotFound Infinoid: but c++ bulidability is a must, I located, fixed and prevented lots of problems thanks to it.
03:47 Infinoid NotFound++
03:50 NotFound Now to realclean and configure for g++ again...
03:53 * Coke tries to get mdiep back into hacking on partcl and nearly fails due to parrot bugs.
03:58 dalek r35734 | allison++ | trunk/runtime/parrot/include:
03:58 dalek : [pdd30install] Apply change to reduce full pathname to just module pathname. (Reini Urban) Fix part of TT #123.
03:58 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35734
04:37 allison joined #parrot
04:38 * allison is committing parrot changes from Windows today
04:39 allison strange, but not too painful
04:39 allison a bit like doing development through a porthole window
04:39 NotFound This is an "You are enter a military zone" warning of sort?
04:39 allison heh, yes :)
04:47 Coke hey, allison.
04:47 purl allison is, like, Allison Randal <mailto:allison@perl.org>
04:48 allison hey, coke
04:54 Coke that -t1 segfault I just posted seems to be IO related.
04:58 Andy joined #parrot
04:58 Infinoid msg moritz Now that we're following the advice from Nicholas Clark in RT #61242, is there any chance you can check whether you still get segfaults building with --optimize?
04:58 purl Message for moritz stored.
05:01 allison Coke: mailing list or ticket?
05:08 NotFound I'm unable to fix c++ build now, too much interrelated things to look for.
05:08 cotto allison, re ATTRs, does the suggestion you made on the list ( http://rt.perl.org/rt3/Ticket/D​isplay.html?id=48014#txn-521960 ) account for multiple inheritance?
05:08 shorten cotto's url is at http://xrl.us/becy7g
05:09 allison cotto: nope, but C PMCs can't really multiply inherit anyway
05:09 cotto ISTR that some do
05:10 cotto let me check
05:10 Coke allison: ticket.
05:11 Coke TT #193
05:11 cotto Some of the LuaFunction does, but I don't think there are any others.
05:12 cotto so multiple inheritance isn't a concern?
05:12 cotto s/Some of //
05:13 cotto because that'll make the code *much* simpler
05:13 allison cotto: it's a problem if two parents have attributes of the same name but a different type
05:13 allison cotto: or, if attempting to use a child pmc with a different struct layout with the parent's struct description
05:14 allison otherwise, multiple inheritance will still work
05:14 cotto Do those cases fall in the "don't do that" category or should the code deal gracefully with them?
05:14 allison cotto: but, yes, you can go with single inheritance assumptions for now
05:16 allison cotto: the general answer to both is "if you use the standard vtable function/method interface, you won't have problems"
05:16 cotto I'd rather not write something that we know will have to be changed later.
05:16 cotto vtable++
05:16 allison C-level PMC inheritance has to be changed anyway, so better not to write a hack now that has to be ripped out later
05:17 allison using ATTR declarations isn't required, it's just a convenience, so we're providing the most common case in the convenience
05:18 allison more complex cases may have to step outside the convenience
05:18 allison Coke: yup, looks like an IO bug. What platform? Or have you duplicated it on several?
05:18 cotto Does that mean I should hold off on the UnionVal deprecation (as far as it'd need an inheritance update) until C-level PMC inheritance can be fixed?
05:19 Coke osx/86 for me. I'm guessing that's mdiep's core platform as well.
05:19 Coke cotto: makes sense to me.
05:20 allison cotto: you don't need a UnionVal to declare your own data struct
05:20 allison cotto: so, no
05:21 allison cotto: look at LuaFunction and see what it needs
05:25 NotFound Did we have some policy about trac account names? Must be the same as in the svn repository?
05:26 Coke I don't think that was said, but I imagine it'll be easier if you keep them the same.
05:27 NotFound That can be delayed until we migrate the repo
05:28 NotFound Then, can someone give permissions to the NotFound trac account?
05:29 Coke sure.
05:29 Coke you should now have developer access
05:29 NotFound Thanks. Must log out and in?
05:30 Coke maybe?
05:30 Coke (probably)
05:32 allison NotFound: when the svn repository migrates, your svn name will be the same as your trac name
05:32 cotto allison, it looks like it uses PMC_struct_val and PMC_pmc_val similarly to the Sub PMC (and other related PMCs)
05:32 allison NotFound: (or, you can maintain two trac accounts, if you'd prefer)
05:32 allison cotto: does it inherit from Sub?
05:33 cotto It also uses VTABLE functions from Sub and LuaAny.
05:33 cotto is that what you mean?
05:33 allison cotto: the main question is, does it add any new struct members, or could it just use the ones from Sub?
05:33 NotFound allison: I like better to change the snv one
05:34 allison cotto: if it's not using anything but PMC_struct_val and PMC_pmc_val, it's likely that it can just use a direct copy of Sub's ATTR declarations
05:35 cotto It's also using PMC_metadata and PMC_sub.
05:36 cotto That's all.
05:40 allison is it a known problem that ActivePerl won't even make it through configure on MSVC 2008 Express Edition?
05:41 allison Cygwin also won't make it through configure
05:42 allison only Strawberry Perl/MSVC seems to work
05:42 Coke does SDL work anywhere?
05:42 Coke allison: strawberry/ming should also work.
05:42 allison Coke: don't know, haven't tried it
05:43 Coke (which is the default make suggested for strawberry)_
05:44 allison Coke: I'm not customizing the options here, just taking the defaults, so it may be using ming instead of msvc
05:44 Coke if you type "nmake", you get msvc.
05:45 Coke if you use mingw32-make, you get the strawberry toolchain.
05:45 NotFound I don't see any change in the trac, "leave as new" is still the only option available :?
05:45 allison I typed 'nmake' but 'mingw32-make' is what was scrolling past on the screen
05:46 Coke allison: configure might have hardcoded the choice it told you to make.
05:46 Coke I thought cygwin worked, though. (haven't tried it in some time.)
05:46 Coke for the longest time (pre you) I had trouble with cygwin; in the past year or so it's been pretty stable when I try it once every quarter or so.
05:47 NotFound Cygwin does not require his own version of perl?
05:48 Coke I thought it did.
05:48 Coke read the cygwin readme in parrot root.
05:48 Coke (yes)
05:49 allison Coke: yes, looks like it's setting an environment variable for MAKE at the top of the Makefile (setting it to mingw32-make)
05:49 allison NotFound: yes, I'm using the Cygwin version of Perl
05:50 allison Coke: any special incantations you invoke when you try Cygwin every quarter or so?
05:51 Coke nope.
05:51 Coke oh, yes. there's one.
05:51 Coke (it's in the readme. =-)
05:51 Coke parrot/runtime/parrot/library/SDL.pir
05:51 Coke no, that's not it.
05:51 Coke Parrot builds out of the box under Cygwin after
05:51 Coke C<export PATH=`pwd`/blib/lib:$PATH>
05:51 Coke that's it.
05:52 Coke without that, you'll fail hard trying to link against libparrot.
05:52 NotFound Coke: I take some looks at SDL a month ago, seems broken.
05:55 Coke Then I won't bother trying to fixup the examples. :|
05:55 dalek r35735 | allison++ | trunk/examples/tge/branch (2 files):
05:55 dalek : [cage] Update TGE examples so they'll actually compile and run. Found while attempting to test Reini Urban's path change for TT #123.
05:55 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35735
05:55 NotFound I think it uses still the :: in namespaces
05:55 dalek r35736 | coke++ | trunk/examples/library:
05:55 dalek : update opcode usage.
05:55 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35736
05:58 NotFound Coke: the trac account looks unchanged
06:00 Coke NotFound: did you have an account that was all lowercase?
06:00 NotFound Coke: one sec...
06:01 Coke should be fixed.
06:01 Coke trac seems to let me add permissions to things that don't exist.
06:01 Coke so I added it to 'notfound', saw it was set, and moved on.
06:01 Coke just added it to "NotFound" and removed the wrong permission.
06:02 NotFound I was creatig "notfound" now
06:02 NotFound Will delete it
06:03 NotFound Deleted notfound and login as NotFound
06:03 particle joined #parrot
06:04 NotFound Ah, yes, now I have cute new buttons
06:04 NotFound Coke: thanks
06:06 allison Coke: yes, adding permissions to a name that doesn't exist as a user creates a group
06:06 allison Coke: that's how the 'developer' group was created
06:17 jkva joined #parrot
06:29 dalek r35737 | allison++ | trunk/runtime/parrot/library/SDL:
06:29 dalek : [pdd30install] Shorten library path, 'library/' prefix unnecessary. For TT #123 (Reini Urban).
06:29 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35737
06:30 moritz good morning
06:31 moritz Infinoid: optimized make still segfaults for me (during ./miniparrot config_lib.pasm) on 64bit linux
06:34 dalek r35738 | allison++ | trunk/runtime/parrot/library/Test:
06:34 dalek : [pdd30install] Shorten library path, 'runtime/parrot/library/' prefix unnecessary. For TT #123 (Reini Urban).
06:34 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35738
06:36 Infinoid moritz: hmm.  ok, thanks.  is that --optimize -specific?  I think that might be TT #179
06:37 moritz Infinoid: I'm trying without --optimize now...
06:40 moritz uhm, yeah, segfaults at the same stage
06:40 moritz how very inconvenient
06:41 Infinoid TiMBuS: I just noticed your comments and patch to TT #179.  That's ... odd.  What your patch really does is prevent the get_type() method from actually being implemented, since it no longer parses correctly.
06:43 Infinoid (METHODs are sorta like XS.  In METHODs, the return value is specified in the RETURN() macro, not on the function declaration line.)
06:45 Infinoid I'd be interested to know if that patch helps on other x86-64 machines
06:47 HG` joined #parrot
06:48 mdiep joined #parrot
06:48 justin joined #parrot
06:49 mc_ joined #parrot
06:49 mc_ hello all
06:49 purl It's a crazy world, but hello to you too!
06:50 mdiep hi mc_
06:50 mc_ any channel rules somewhere? this is my first time here
06:51 mc_ oops: nickname already used
06:52 moritz well, that happens
06:52 moritz channel rules: be polite, stay on topic
06:52 mdiep we're a pretty easygoing group
06:53 khatar pastebin prefered? do i have to introduce myself?
06:53 mdiep purl: nopaste?
06:53 purl rumour has it nopaste is at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://rafb.net/paste or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at http://www.extpaste.com/ or http://paste.scsys.co.uk (for #catalyst, #dbix-class, #moose  and others)
06:54 moritz nopaste preferred, no need for an introduction IMHO
06:54 mdiep you can tell purl who you are though.
06:54 mdiep purl: mdiep?
06:54 purl well, mdiep is Matt Diephouse <mailto:matt@diephouse.com> http://matt.diephouse.com/parrot or .
06:54 namenlos joined #parrot
06:54 khatar (sorry: i'm comming from france in where we're just strangled by rules and law
06:55 khatar ok
06:55 khatar newbie questions welcome?
06:55 mdiep no, purl mdiep is Matt Diephouse <mailto:matt@diephouse.com>
06:55 purl okay, mdiep.
06:55 moritz khatar: sure
06:55 khatar ok
06:56 khatar i've tried http://en.wikibooks.org/wiki/Parrot_Virt​ual_Machine/Squaak_Tutorial/Introduction yesterday
06:56 shorten khatar's url is at http://xrl.us/beczd7
06:56 khatar read the .pir, understood a part of it
06:57 khatar i try to squaak -e 'say 42'
06:57 khatar and it fail
06:57 * moritz has to run to catch the bus, bbl
06:57 moritz hope somebody else can help you
06:57 khatar data or instructions ?
06:58 mdiep how does it fail?
06:58 khatar mdiep, syntax error
06:58 khatar i added a ;
06:59 khatar but it desn't change
07:00 * mdiep looks
07:02 Coke mdiep: hey.
07:02 mdiep Coke: ho.
07:03 Infinoid khatar: looks like the implementation in languages/squaak/ has suffered a bit of bitrot; I can't run a simple "say" command either
07:03 mdiep me neither
07:03 Coke mdiep: looks like [unknown] will require [return -options -level N] where N is 1 or 2, depending on what you try to unknown.
07:03 Coke level 1 is easy (it's just tcl_return)
07:03 Infinoid goodnight all
07:04 * Infinoid z &
07:04 Theory joined #parrot
07:04 Coke anything higher than one might require a slight redo on on our control flow exceptions.
07:04 Coke (to basically track how far down we are, and let the control exception keep propagating until the level is reached.
07:05 mdiep Coke: I will try to take a look
07:05 Coke mdiep++
07:06 Coke bah. woke up at 11am local time, so I'm still wide awake now.
07:10 khatar ok. so i didn't fucked up :)
07:10 mdiep lol, no
07:10 namenlos joined #parrot
07:27 * Coke reclaims at least 4 more partcl spec tests...
07:34 alvar joined #parrot
07:39 Coke +3 more...
07:40 Coke mdiep: hurm. haven't seen any commit messages for a few days.
07:44 Coke mdiep: Any objections to me making tclarray a class instead of a PMC?
07:45 Coke (right now it's just there to be a placeholder; I need something I can easily add attributes to for [array search] and friends.
07:48 dalek r35739 | allison++ | trunk/tools/dev:
07:48 dalek : [cage] Fix simple typo in install_files.pl. (Reini Urban)
07:48 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35739
07:50 mdiep Coke: have at it!
07:53 Coke anyone know how to say a class does a role from PIR?
07:57 mdiep I think there's a roles array that you modify and push the role onto.
07:57 mdiep or an attribute, maybe?
07:57 Coke in c, it looks like it's a string.
07:57 mdiep an array of strings?
07:57 Coke so if I do hash and array, it's "hash array"
07:57 mdiep oh
07:58 Coke also, "ew"
07:58 mdiep that's less than ideal
07:58 mdiep yes. ew ew ew ew ew.
07:58 Coke looks like I need to modify "provides_str", but I don't see a way to get at that from pir.
07:59 mdiep there's an addrole opcode
08:01 Coke I think that's for adding actually roles
08:01 Coke I don't think provides_str actually provides roles.
08:04 mdiep there's also an add_role vtable
08:04 mdiep looks like that might do what you want
08:05 Coke roles != provides.
08:05 mdiep ohhh
08:06 mdiep maybe
08:11 * Coke hits the list.
08:13 Coke I would not be upset if the response was "create a dummy role and use that." if it also mean that this got ripped out.
08:18 * mdiep heads to bedd
08:18 mdiep err... bed
08:18 Coke mmm.
08:18 Coke I should have done that 4 hours ago.
08:18 Coke ~~
08:21 iblechbot joined #parrot
08:24 particle1 joined #parrot
08:40 Coke chromatic++
08:49 jimmy joined #parrot
09:21 bacek joined #parrot
10:05 jonathan morning all
10:05 purl afternoon, jonathan
10:36 barney joined #parrot
10:37 dalek r35740 | fperrad++ | trunk/config/auto:
10:37 dalek : [OpenGL] MinGW
10:37 dalek : - gives reference & external link
10:37 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35740
10:44 particle joined #parrot
10:46 kj joined #parrot
10:56 masak joined #parrot
11:06 gaz joined #parrot
11:14 nopaste joined #parrot
11:22 ruoso joined #parrot
11:27 dalek r35741 | bernhard++ | trunk:
11:27 dalek : [Pipp] NEWS item about constants
11:27 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35741
11:27 dalek r35742 | bernhard++ | trunk:
11:27 dalek : [docs] fix a typo
11:27 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35742
11:27 dalek r35743 | bernhard++ | trunk/src:
11:27 dalek : [codingstd] Move ASSERT_ARGS(sub_pragma) to top of function
11:27 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35743
11:32 ruoso joined #parrot
11:40 kj joined #parrot
11:46 ruoso joined #parrot
12:00 ruoso joined #parrot
12:13 Hinrik joined #parrot
12:15 ruoso joined #parrot
12:20 Hinrik joined #parrot
12:30 ruoso joined #parrot
12:44 ruoso joined #parrot
12:52 tomyan joined #parrot
12:56 dalek r35744 | fperrad++ | trunk/t/codingstd:
12:56 dalek : [codingstd]
12:56 dalek : SVN keyword Id must by followed by a column
12:56 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35744
12:58 dalek r35745 | fperrad++ | trunk (6 files):
12:58 dalek : [codingstd]
12:58 dalek : fix malformed SVN $Id
12:58 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35745
12:58 ruoso joined #parrot
13:04 particle1 joined #parrot
13:09 bacek joined #parrot
13:12 dalek r35746 | bernhard++ | trunk/languages/pipp/docs:
13:12 dalek : [Pipp] add ling to namespaces FAQ
13:12 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35746
13:13 dalek r35747 | bernhard++ | trunk/languages/pipp/docs:
13:13 dalek : [Pipp] type hints are TODO
13:13 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35747
13:13 dalek r35748 | bernhard++ | trunk/languages/pipp/docs:
13:13 dalek : [Pipp] edit cycle over internals.pod
13:13 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35748
13:13 dalek r35749 | bernhard++ | trunk/languages/pipp (2 files):
13:13 dalek : [Pipp]mark leading backslash in 'name', leading backslash is not allowed
13:13 dalek : in namespace declaration
13:13 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35749
13:13 ruoso joined #parrot
13:27 dalek r35750 | bernhard++ | trunk/t/codingstd:
13:27 dalek : [codingstd] unexpanded SVN tags are OK for git-svn users and for new
13:27 dalek : files
13:27 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35750
13:28 ruoso joined #parrot
13:42 ruoso joined #parrot
13:50 tetragon joined #parrot
13:50 dalek r35751 | bernhard++ | trunk/languages/pipp/src/pct (2 files):
13:50 dalek : [Pipp] Eliminate token constant_name
13:50 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35751
13:51 dalek r35752 | bernhard++ | trunk/languages/pipp/t/php:
13:51 dalek : [Pipp] FOO in different namespace block
13:51 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35752
14:01 ruoso joined #parrot
14:03 pjcj joined #parrot
14:07 gryphon joined #parrot
14:07 bacek joined #parrot
14:19 ruoso joined #parrot
14:29 dalek r35753 | jonathan++ | trunk/languages/perl6:
14:29 dalek : [rakudo] Make proclaim accept a junction rather than thread over it, but give a warning; moritz++ for input on how to handle this.
14:29 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35753
14:32 dalek r35754 | jonathan++ | trunk/languages/perl6/src/classes (2 files):
14:32 dalek : [rakudo] Handling of junction auto-threading for the single dispatch case with positional arguments. Note that it won't work for built-ins written in PIR; those will start working when we switch to a PIR prelude.
14:32 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35754
14:32 jonathan gah!
14:32 jonathan a Perl 6 prelude!!
14:33 dalek r35755 | jonathan++ | trunk/languages/perl6/t:
14:33 dalek : [rakudo] Add S03-junctions/autothreading.t to the spectests list.
14:33 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35755
14:34 masak joined #parrot
14:35 ruoso joined #parrot
14:42 Whiteknight joined #parrot
14:50 ruoso joined #parrot
14:50 dalek r35756 | bernhard++ | trunk/languages/pipp (3 files):
14:50 dalek : [Pipp] Add support for constants with fully qualified name.
14:50 dalek : Keep the trailing '\' in namespace names.
14:50 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35756
14:53 PacoLinux joined #parrot
14:55 riffraff joined #parrot
14:58 riffraff hi everyon
15:00 barney Hi
15:01 barney riffraff entered the scene
15:02 riffraff someone knows if there is a way of visualizing what PGE is doing ? I seem to have generated some crazily slow interaction of rules, but I cannot understand what is wrong :/
15:03 Andy joined #parrot
15:03 jonathan At Parrot level, --trace 4 will show you what is being called...
15:03 jonathan But it'll be a lot of output.
15:03 Whiteknight jonathan, when you get a chance could you add some clarification to TT#158?
15:04 ruoso joined #parrot
15:05 riffraff ah i never understood what the arguments to trace were supposed to be :)
15:05 riffraff thanks
15:15 dalek r35757 | bernhard++ | trunk/languages/pipp/t/php:
15:15 dalek : [Pipp] fix expected test output
15:15 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35757
15:17 jonathan Whiteknight: I'm only talking there about add_method method (not vtable method) in Class PMC.
15:18 jonathan And it should actually be just ripping out some code, rather than anything hard.
15:18 donaldh joined #parrot
15:19 ruoso joined #parrot
15:25 particle joined #parrot
15:27 dalek r35758 | bernhard++ | trunk:
15:27 dalek : NEWS about Pipp and m4
15:27 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35758
15:30 masak joined #parrot
15:43 dalek r35759 | jonathan++ | trunk/languages/perl6/src (2 files):
15:43 dalek : [rakudo] Make auto-threading work in the multi-dispatch case.
15:43 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35759
15:45 masak help, my Parrot doesn't build. :/
15:45 masak http://gist.github.com/49027
15:46 jonathan masak: I built on Win32 this morning, so either it's a compiler specific one or something introduced very recently...
15:46 masak I should add that I just switched to this computer.
15:47 masak so yes, it's probably something to do with that.
15:47 jonathan Hmm.
15:47 jonathan I don't see anything this morning that woulda been likely to do it.
15:47 jonathan So I suspect the latter.
15:47 masak still, a bit worrying.
15:47 masak it should just build out of the box.
15:49 jonathan Indeed.
15:50 jonathan Hmm. I struggle to see recent patches that may have caused that. :-|
15:51 masak maybe I just have a stricter compiler than everybody else.
15:51 jonathan Erm.
15:51 jonathan Which one?
15:52 jonathan That error looks odd.
15:52 jonathan Like, header not in sync...but it's in generated code. :-|
15:52 Coke-zzz jonathan: trace -4 is also broken again.
15:52 jonathan Again?!
15:52 jhorwitz joined #parrot
15:52 Coke unless you just fixed it.
15:52 masak gcc says it's 4.0.1 here.
15:53 Coke there's a ticket for -t4 and for -t1 :|
15:53 jonathan Coke: Nope. I seem to remember someone (might have been me even) fixing --trace=4 a while back.
15:53 jonathan --trace 1 is broken too?
15:53 Coke I was going to ask you about it, since you're the only one who modified the code since I fixed it.
15:53 Coke jonathan: in some cases, yes.
15:53 Coke -t1 segfaults with the "right" bytecode.
15:54 jonathan Hmm.
15:54 jonathan Ticket #?
15:54 Coke t1: https://trac.parrot.org/parrot/ticket/193
15:55 Coke t4: https://trac.parrot.org/parrot/ticket/122
15:55 dalek r35760 | pmichaud++ | trunk/languages/perl6/docs:
15:55 dalek : [rakudo]: spectest-progress.csv update: 290 files, 6352 passing, 0 failing
15:55 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35760
15:55 Coke t4's not got a nice reproducible test case.
15:56 jonathan Oh, I remember the previous fix now...
15:56 jonathan I pointed you at what to copy/paste. :-)
15:57 jonathan I don't remember updating Perl6MultiSub though.
15:57 jonathan With anything additional.
15:57 ruoso joined #parrot
15:57 jonathan So doubt it's the same kinda problem.
15:57 Coke yah; you committed something to disable GC in the middle of the fix here; no clue what that's for.
15:57 jonathan Weird errors.
16:07 Whiteknight joined #parrot
16:07 Coke Whiteknight: I will gladly take you up on your offer to fix my problem! =-)
16:09 Whiteknight and which problem is that? I blindly offer to fix so many of them
16:09 Coke Whiteknight: where are you looking to see if the override is supported or not? src/pmc/class.pmc ?
16:09 Coke whhttps://trac.parrot.org/parrot/ticket/195
16:09 Coke er, Whiteknight : https://trac.parrot.org/parrot/ticket/195
16:10 jonathan I suspect Object.pmc.
16:10 Whiteknight src/pmc/object.c, after it's been generated by pmc2c
16:10 Whiteknight and src/pmc/object.pmc too.
16:10 Coke ah. that actually seems like an easy fix,then.
16:11 Coke finding the right place to put your 3 lines of code? 97% of the job.
16:12 ruoso joined #parrot
16:13 dalek r35761 | fperrad++ | trunk/config/gen:
16:13 dalek : [OpenGL] MinGW
16:13 dalek : - find includes without using environment variable INCLUDE
16:13 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35761
16:13 Whiteknight Coke: it will be a relatively easy fix. I'll play with it tonight after work
16:14 Whiteknight or maybe during my lunch break, if I eat in
16:14 jhorwitz jonathan: ping
16:14 jonathan jhorwitz: pong
16:15 jonathan OH! Yes, I forgot about that ticket you wanted me to look at. Sorry. :-(
16:15 jhorwitz had a chance to look at RT #62326 yet?
16:15 jhorwitz LOL
16:15 jhorwitz you read my mind
16:16 jonathan OK, let me finish getting a fix in for something else I just discovered, and then some more tests, then I'll look at that one.
16:17 jhorwitz awesome.
16:22 bkuhn joined #parrot
16:23 Infinoid good morning
16:24 jonathan morning, Infinoid
16:26 Coke Whiteknight: I added a patch to the ticket that adds tests.
16:27 Coke er, /am adding/ my internets are slow.
16:28 Coke there, added.
16:28 Coke only tricky bit is that we should probably still 'does' what our parent does.
16:28 Coke Though I would not cry if I could do that check in PIR.
16:31 ruoso joined #parrot
16:31 * masak gradually realizes how little he can do without a built Parrot
16:31 masak I think this computer is one of those osx_64 thingies.
16:31 Whiteknight masak, why isn't your parrot built?
16:31 masak anyone else have one of those?
16:32 masak Whiteknight: because it doesn't build. :/
16:32 masak http://gist.github.com/49027
16:32 Whiteknight where does the build fail?
16:32 masak see gist.
16:33 Whiteknight wow, that's a weird error, but it should be easy enough to fix I think
16:33 Whiteknight I don't have a darwin PC, so I can't really test it
16:33 Infinoid uh.  I would think a realclean would fix that
16:33 Infinoid pmc_default.h is generated from default.pmc
16:34 masak Infinoid: why do I need a realclean when it's the first time I try to build?
16:34 * masak tries the realclean anyway
16:34 Casan joined #parrot
16:34 Infinoid masak: I don't know.  if the prototype in pmc_default.h doesn't match the declaration in default.c, and they were both generated at the same time by pmc2c, then it seems pmc2c is emitting the wrong stuff
16:35 Infinoid if its your first time building, then that rules out an old pmc_default.h
16:36 masak the osx_64 thing was a false lead, btw.
16:36 masak aye, building after make clean produces the same error.
16:37 Infinoid ok.  what's the definition look like, and what's the prototype look like?
16:38 Infinoid for me, they are both PARROT_EXPORT INTVAL Parrot_default_is_same(PARROT_INTERP, PMC *pmc, PMC *value)
16:38 Infinoid (with various amounts of whitespace inserted)
16:38 masak INTVAL is_same(const PMC* value) and PARROT_API extern INTVAL Parrot_default_is_same(Interp *, PMC*, PMC* value), respectively.
16:39 dalek r35762 | jonathan++ | trunk/languages/perl6/src/parser:
16:39 dalek : [rakudo] When we had a multi foo() rather than a multi sub foo() we didn't call !SIGNATURE_BIND nor did we set the block type to Sub. Fix that.
16:39 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35762
16:39 Infinoid masak: you want to look at the generated default.c, not the default.pmc
16:39 moritz so the difference is a const?
16:39 masak oh.
16:39 Infinoid though "extern" smells a little off
16:41 Infinoid hmm.  it isn't "const" in my checkout, oddly
16:41 masak Parrot_default_is_same(Interp *interp, PMC* pmc, const PMC* value) and PARROT_API extern INTVAL Parrot_default_is_same(Interp *, PMC*, PMC* value), then.
16:42 Infinoid I've added const to my copy, and rebuilt src/pmc/default.o
16:42 Infinoid both the definition and the prototype were updated properly, no build error.
16:43 masak any idea why I'm the only one getting this error?
16:44 Infinoid not yet.  I think we can rule out 64 bitness, as I'm on linux x86-64
16:44 Infinoid I'm guessing you get the same error if you do this?
16:44 Infinoid rm src/pmc/pmc_default.h src/pmc/default.c; make src/pmc/default.o
16:44 Coke perhaps running the preprocessor on that file would be instructive?
16:44 Infinoid its the pre-preprocessor (pmc2c) that seems to be broken.
16:48 Coke have we done a diff on the generated .c on his platform vs. a building platform?
16:49 masak Infinoid: aye, same error.
16:50 Infinoid well, the difference seems to be that his .c file has "const" and his .h file doesn't
16:50 Infinoid masak: though, my .pmc file doesn't have a const, either.  is this a trunk checkout, or some branch?
16:51 ruoso joined #parrot
16:51 masak Infinoid: checking.
16:51 Tene joined #parrot
16:51 masak oh!
16:51 masak erm.
16:51 masak found it, guys.
16:51 masak it's trunk, but it's r19310...
16:51 Coke BWAHAHAHA
16:51 jonathan ....wow!
16:52 Infinoid :)
16:52 masak sorry to take up your time :)
16:52 Coke yah, you owe us a cookie. =-)
16:52 Infinoid mmm, cookie
16:52 masak this is what happens when you specify revision numbers in svn-externals...
16:53 * masak svn ups
16:53 Coke wow, I figured that was going to be much older than a year.
16:54 Coke (it's only, what, about 17 months)
16:54 Coke er, 19
16:54 Infinoid yarly.  That is a *huge* number of commits
17:07 davidfetter joined #parrot
17:10 ruoso joined #parrot
17:11 jonathan jhorwitz: *Think* I have a fix, doing make spectest to be sure I didn't break anything.
17:12 jhorwitz excellent!
17:12 purl EGG-see-lent!
17:14 gryphon joined #parrot
17:21 dalek r35763 | jonathan++ | trunk/languages/perl6/src/parser:
17:21 dalek : [rakudo] Fix say A::b() to actually call A::b.
17:21 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35763
17:26 jonathan jhorwitz: And there was the patch. :-)
17:27 jhorwitz yay, jonathan++
17:28 jonathan Heh, that randomly fixed a completely unrelated bug too.
17:29 ruoso joined #parrot
17:30 jhorwitz even better  :)
17:31 jhorwitz confirmed -- works on my end.  :)
17:31 AndyA joined #parrot
17:31 jhorwitz now if we can get TT #185 ironed out, mod_perl6 will work again.
17:32 davidfetter w00t!
17:36 dalek r35764 | jonathan++ | trunk/languages/perl6/t:
17:36 dalek : [rakudo] Add (probably passing since rvar merge) S12-attributes/inheritance.t to spectest.data.
17:36 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35764
17:41 ruoso joined #parrot
17:46 particle1 joined #parrot
18:00 donaldh joined #parrot
18:08 Whiteknight joined #parrot
18:08 tomyan left #parrot
18:15 dalek r35765 | infinoid++ | trunk/src/pmc:
18:15 dalek : Merge ssh://infinoid@10.0.254.2/home/infinoid/parrot-dev/test
18:15 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35765
18:15 dalek r35766 | moritz++ | trunk:
18:15 dalek : [NEWS] mention Junction autothreading in Rakudo's section
18:15 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35766
18:15 Infinoid erk.  commit message fail
18:16 Infinoid was supposed to be "As tomorrow is Release Day, temporarily work around TT #179."
18:17 Infinoid (that'll teach me to make sure I do a rebase before the dcommit)
18:18 dalek r35767 | kjs++ | trunk/compilers/pirc (2 files):
18:18 dalek : [pirc] update README file and TODO file.
18:19 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35767
18:21 * Infinoid tries again with further clarification
18:21 dalek r35768 | infinoid++ | trunk/src/pmc:
18:21 dalek : As tomorrow is Release Day, temporarily work around TT #179.
18:21 dalek : Note: this causes pmc2c to not emit the PackfileFixupEntry.get_type()
18:21 dalek : method, as it no longer parses correctly.
18:21 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35768
18:23 dalek r35769 | kjs++ | trunk (2 files):
18:23 dalek : [pirc] remove unused bctest.c file that contained a test framework for bytecode generation. PIRC's bcgenerator works nicely now, and compilers/pirc/src/bcgen.c contains a fairly re-usable bytecode generation interface (except there's 1 thing to make it completely independent from pirc/src/*).
18:23 dalek : + update MANIFEST.
18:23 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35769
18:26 * Infinoid just overwrote TT #179's main description by typing his comment into the wrong text box.
18:27 * Infinoid isn't having a very good day
18:27 moritz one could also complain about track in this one
18:27 moritz I personally don't find it appropriate to force bug submitters to learn a markup just so that trac can uses its wiki capabilities...
18:31 Infinoid yeah... and the comment box and description box aren't visually distinct enough (or maybe I'm just used to those things existing on separate pages)
18:38 Whiteknight Coke, I think I got your does issue solved. I'm building and testing now
18:41 dalek r35770 | kjs++ | trunk/compilers/pirc/src:
18:41 dalek : [pirc] add function doc.
18:41 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35770
18:44 tewk :q
18:44 moritz E37: No write since last change (add ! to override)
19:14 * jonathan seems to have got the named argument auto-threading stuff working
19:14 jonathan commits when make spectest has (hopefully) completed successfully...going for dinner now
19:20 jrockway joined #parrot
19:24 ruoso joined #parrot
19:29 chromatic joined #parrot
19:52 Tene joined #parrot
19:57 Infinoid oh, cool, I can reproduce the miniparrot segfault in an ubuntu chroot here.
20:02 jonathan Cool, that should give a better chance of it being findable. :-)
20:06 Infinoid Oh, my.  I'm stepping through the creation/initialization of the Scheduler PMC, and it seems Parrot_go_collect() got called.  I'm starting to strongly suspect it was freed during its own initialization phase.
20:06 chromatic Sounds plausible, if it's vtable goes 0xdeadbeef.
20:06 chromatic s/it's/its/
20:06 chromatic need lunch
20:07 particle joined #parrot
20:07 Infinoid it does.
20:07 * purl stays quiet
20:08 jonathan staying quiet fail!
20:12 dalek r35771 | jonathan++ | trunk/languages/perl6/src (2 files):
20:12 dalek : [rakudo] Handle auto-threading of named arguments correctly. (The named ones that passed in the single dispatch case seem to have done so as a result of a Parrot bug; this gets them passing for real and also handles the multi-dispatch case.)
20:12 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35771
20:12 nopaste "Infinoid" at 96.238.213.50 pasted "Scheduler->vtable goes deadbeef in the middle of its own init function." (55 lines) at http://nopaste.snit.ch/15358
20:13 Infinoid I would assume the current stack contains a few local variables that point to the Scheduler object.  Which (I guess) means the GC's stack scanner didn't find it.
20:19 jonathan 121                 PMC * const pmc = get_new_pmc_header(interp, base_type, 0);
20:19 jonathan (gdb)
20:19 jonathan 122                 VTABLE_init(interp, pmc);
20:19 jonathan I'd guess it's on the stack there for sure. As pmc.
20:19 jonathan Unless somehow it is optimized to just keep it in a register...
20:19 jonathan ...but that'd get shuffled onto the stack during the call.
20:20 jonathan So hmm, it must be.
20:20 Infinoid Yeah.  I start to get a little paranoid about gcc optimizations playing tricks like offsetting the pointer on the stack after some point in the child function when it only needs to reference a particular member from then on
20:20 Infinoid but I'm not quite desperate enough to be poring through the disassembly just yet.
20:21 jonathan Infinoid: One thing to check. Somewhere I think we set the point in the stack that we walk down to.
20:21 jonathan We're not by any chance creating that PMC *before* setting up that variable, are we?
20:21 Infinoid I'm not too familiar with the internals of the GC.  any particular place I should start?
20:22 jonathan I think it's a member of interpreter...
20:22 * Infinoid starts flipping through parrot_interp_t
20:23 jonathan void *lo_var_ptr;
20:24 Infinoid (gdb) print interp->lo_var_ptr
20:24 Infinoid $3 = (void *) 0x0
20:24 Infinoid so, my next question is, is that good or bad?
20:25 jonathan Is that at the point of the segfault?
20:25 Infinoid its just after the 0xdeadbeef
20:25 Infinoid but ... if it excludes stack locations with addresses less than 0, I'm not so sure that's the worst thing that can happen
20:26 Infinoid its a starting point tho, I'll see if I can learn more about how this stuff works.
20:26 Infinoid thanks!
20:26 jonathan /* Create a local variable on the system stack. This represents the
20:26 jonathan "top" of the stack. A value stored in interp->lo_var_ptr represents
20:26 jonathan the "bottom" of the stack. We must trace the entire area between the
20:26 jonathan top and bottom. */
20:28 jonathan Infinoid: It appears to be at least set in runops_int
20:28 jonathan But only if it's not already set.
20:28 Infinoid ok.  if we assume a stack model that counts downward (I don't remember which way x86 counts), you're starting to make more sense
20:29 jonathan Thing is, we're likely setting up the scheduler before we've run any ops.
20:30 Infinoid I seem to recall there's some simple stack-like API for telling the GC not to run during a section of code... that might be a quick fix
20:30 jonathan IMCC sets it in imcc_run
20:31 jonathan Which is called from main.c
20:32 Whiteknight src/cpu_dep.c
20:33 Whiteknight it's ugly as hell, but that's the stack-walking code
20:33 jonathan Infinoid: aha.
20:33 jonathan See make_interpreter
20:33 Whiteknight I know it works for x86, I don't know if it is as reliable for x86_64
20:33 jonathan in inter_create.c
20:33 jonathan interp->lo_var_ptr = NULL;
20:33 jonathan And later in that function
20:33 jonathan Parrot_cx_init_scheduler(interp);
20:34 jonathan Note also that *before* that we unblock GC!!
20:34 jonathan /* Okay, we've finished doing anything that might trigger GC.
20:34 jonathan * Actually, we could enable DOD/GC earlier, but here all setup is
20:34 jonathan * done
20:34 jonathan */
20:34 jonathan lol
20:34 Infinoid heh
20:34 Infinoid in other words, "but since we got here, life is happy, daisies and butterflies"
20:34 jonathan Sugget moving the two lines and that comment like, down several :-)
20:35 Infinoid that makes a lot of sense.
20:35 jonathan *amused*
20:35 pmichaud jonathan: ping
20:36 jonathan pmichaud: hi
20:36 Infinoid Parrot_cx_init_scheduler is where all this crashy stuff comes from, so I think you must be right :)
20:36 jonathan pmichaud: Is that a reply to my ping, or a ping of your own? ;-)
20:36 pmichaud re: r35771 -- so, are we basically planning to do our own argument passing for a while until Parrot catches up to us?
20:36 pmichaud (ping of my own -- didn't see an earlier ping)
20:36 Infinoid cool, that triggered a different crash
20:36 jonathan Infinoid: It's just possible you want to set the lo_var_ptr...
20:36 pmichaud I'm in-and-out today, lots of stuff going on around the house (no school for kids)
20:37 * jonathan looks up which patch that was
20:37 pmichaud r35771 is the one that handles named arguments, I think.
20:37 nopaste "Infinoid" at 96.238.213.50 pasted "miniparrot crash after moving the unblock-GC stuff below the call to Parrot_cx_init_scheduler()" (12 lines) at http://nopaste.snit.ch/15359
20:38 jonathan pmichaud: Don't quite get what you mean.
20:38 jonathan We need to detect which argument to thread on.
20:38 jonathan Oh, you're commenting on my comment about the Parrot bug?
20:38 pmichaud yes (more)
20:38 chromatic Re: scheduler in a register, the stack scanner uses setjmp to store register contents in a memory structure which we can scan during system area scanning.
20:38 pmichaud in r35771, are we only doing this for junction calls?
20:38 jonathan pmichaud: Yes.
20:38 pmichaud or for every dispatch?
20:39 Infinoid fetching thai takeout, brb
20:39 jonathan The Parrot bug in question is that it will let a positional argument fill a named slot.
20:39 pmichaud right
20:39 pmichaud I'm hoping that gets fixed, soon.
20:39 pmichaud actually
20:39 jonathan So before, when my dispatcher wasn't looking for junctions in named slots, it just worked by accident.
20:39 pmichaud I'm hoping that gets fixed.  I'm despairing of "soon".
20:39 jonathan I didn't know quite why because I knew it wasn't meant to work yet...
20:40 pmichaud okay.  If what you're doing is only for junctions then I'm great with that.
20:40 jonathan ('cus I hadn't written the code to auto-thread named args...)
20:40 pmichaud I haven't had much opportunity to watch the patches in detail this weekend
20:40 jonathan Oh, even when the Parrot bug is fixed, we'd still need to find which named argument is the right one to thread over.
20:40 pmichaud (or do much rakudo-related over the weekend)
20:40 jonathan This isn't a workaround for a Parrot bug. The Parrot bug just worked around my lack of implementation of named arg auto-threading. ;-)
20:41 pmichaud jonathan: yes, got it.
20:41 pmichaud jonathan: understood, and it's fine.
20:41 jonathan OK. Sorry the comment message wasn't clear on that.
20:41 jonathan I didn't commit anything over the weekend either...
20:41 jonathan So you've only got todays. :-)
20:41 pmichaud okay.
20:42 pmichaud thanks.
20:42 pmichaud you pinged me for something?
20:42 jonathan Yeah
20:42 jonathan I'm getting to the point where the p6 prelude is starting to matter.
20:42 pmichaud same here.
20:42 pmichaud this week we *have* to resolve the repository issues.
20:43 jonathan Yes, agree.
20:43 pmichaud so that may be delayed by another week
20:43 jonathan But basically my reasons are:
20:43 jonathan (not disagreeing, just want you to understand what I'm needing out of it)
20:43 jonathan 1) Auto-threading of built-ins will just fall out of us having the p6 prelude
20:44 jonathan So say(1|2) etc (not to mention the operators) won't work until we do that.
20:44 pmichaud iirc, say doesn't autothread.  :-)
20:44 pmichaud but yes, I understand the point :-)
20:44 jonathan 2) To handle the later parts of my grant, I need to start making various things (e.g. Array) into parametric roles.
20:45 jonathan I epicly do not want to hand-role those in pir.
20:45 jonathan uh, handroll
20:45 jonathan ;-)
20:45 pmichaud yes, understood on both parts.
20:45 jonathan OK.
20:45 jonathan say doesn't? Heh. I didn't know that bit. :-)
20:45 pmichaud well, it takes a slurpy list as an argument, so no autothreading there :-)
20:46 jonathan Oh, yes.
20:46 pmichaud and we really want it to output a junction.
20:46 jonathan That makes sense. :-)
20:46 jonathan How does it output a junction?
20:46 jonathan Or is that unspec?
20:46 pmichaud "1|2"  iirc.
20:46 pmichaud it's almost like a call to .perl
20:46 moritz right
20:46 jonathan Yes. But not quite. :-)
20:46 jonathan Do junctions stringify in this way generally?
20:46 pmichaud yes.
20:46 jonathan Or is this special to say/print?
20:47 jonathan OK, good.
20:47 jonathan That's quite easy to write.
20:47 jonathan Stringify the eigenvalues and join on the appropriate separator.
20:47 pmichaud I think it's already written, or is fairly close.
20:47 jonathan Does it paren nested junctions too?
20:47 jonathan rakudo: say 1|2;
20:47 polyglotbot OUTPUT[Junction<0xb6a60988>␤]
20:47 jonathan Close. ;-)
20:47 pmichaud rakudo:  say ~(1|2);
20:47 jonathan rakudo: say (1|)2.Str;
20:47 polyglotbot OUTPUT[Junction<0xb6a4b580>␤]
20:47 polyglotbot OUTPUT[Statement not terminated properly at line 1, near "|)2.Str;"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤called from Sub 'parrot;Perl6;Grammar;eat_terminator' pc 31408 (src/gen_grammar.pir:3387)␤called from Sub 'parrot;Perl6;Grammar;statementlist'
20:47 polyglotbot ..pc 30056 (src/gen_grammar.pir:2854)␤called from S...
20:48 jonathan fail
20:48 pmichaud fail.
20:48 jonathan rakudo: say (1|2).Str;
20:48 polyglotbot OUTPUT[Junction<0xb69d01a0>␤]
20:48 jonathan epic fail
20:48 purl i guess epic fail is chopping chili and go pee without washing hands
20:48 pmichaud anyway, easy to do when we need it.
20:48 jonathan Easier than most of the code I've been comitting of late, yes.
20:48 pmichaud yes, I understand the need for prelude, and it's likely to be immediately following the repository stuff.
20:48 * jonathan wants something easy to work on now. :-)
20:48 jonathan OK, great.
20:49 pmichaud that means that I'll be doing my milestones out of sequence as well, but maybe we can work that out.
20:49 pmichaud and I just ordered a new notebook last night, so I'll need some way to pay for it :-)
20:49 jonathan OTOH, it gives you something on your milestone that you can tick off as done.
20:53 jonathan Ooh, seems like with today's work I've about done my January grant tasks too. :-)
20:53 jonathan Now I need to go back and do those bits I didn't do in December. ;-)
20:54 jonathan (I've had last week and half of this week as pretty much uninterupted time, so decided to get the big/hard things in during that.)
21:11 dalek r35772 | chromatic++ | trunk (3 files):
21:11 dalek : [src] Added a test for TT #24, where \xab escapes in literal PIR don't work
21:11 dalek : correctly for iso-8859-1 encoding.
21:11 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35772
21:12 chromatic lathos, the test I added in r35772 relates to the Unicode escaping bug we looked at the other day.
21:17 nopaste "Infinoid" at 96.238.213.50 pasted "This hacky patch fixes the miniparrot segfault." (36 lines) at http://nopaste.snit.ch/15360
21:18 Infinoid jonathan++ for suggesting it
21:18 Theory joined #parrot
21:19 chromatic Seems to me we already have code like that somewhere.
21:19 Infinoid yeah, it just runs too late.
21:20 chromatic Could we call it earlier?
21:21 Infinoid as long as it's called before the unblock_GC functions in make_interpreter(), I think it closes this race
21:21 chromatic Are you working on a slightly less hacky patch along those lines then?
21:21 Tene chromatic: re ops review: count_eh was broken and completely unused and untested, last I checked.
21:22 Infinoid chromatic: I certainly can.
21:22 Infinoid without the patch, there's a window between the unblock_GC functions and the lo_var_ptr initialization code in imcc_run(), during which, if the gc is called, it fails horribly.  Parrot_cx_init_scheduler() is within that window.
21:23 chromatic Tene, I thought so too.
21:23 Tene count_eh can be a method on something
21:25 jonathan I'm not sure why it's hacky in a way...
21:26 Infinoid jonathan: well, first off, the prototype isn't in a headerfile and I haven't documented it at all
21:26 jonathan I mean, the fix is to set lo_var_ptr, AFAICT.
21:26 chromatic Adding a static function in one place when we already have a function which does the same thing in another place, just at the wrong time, is hacky.
21:26 Infinoid I don't think the existing initializer is in a dedicated function, c.
21:26 chromatic Hm, I thought it was.  Perhaps it should be.
21:26 Infinoid it's just at the top of imcc_run()
21:26 Infinoid well, that's what I plan to do with my patch
21:27 jonathan Sure, then if there's another function we should call that. But the _idea_ behind this fix isn't hacky, is more what I meant.
21:27 Infinoid Glad to hear it.  (I'm not at all familiar with this stuff.)
21:28 GeJ Good morning everyone
21:29 Infinoid hi GeJ
21:32 Infinoid uh.  and there's another initializer at the top of runops_int(), which is also too late.
21:34 GeJ I'm sorry I can't bother anymore with conversion patches. But $job got in the way. Hopefully, I should be able to resume my Parrot activity in a few days.
21:37 kj joined #parrot
21:51 Infinoid chromatic: Was Parrot_init_stacktop() the function you were thinking of?
21:51 chromatic That sounds right.
21:52 Infinoid any objection to my calling that from mem_setup_allocator()?
21:53 jonathan Infinoid: Thing is, how deep is that?
21:54 jonathan It's not about how early you call it, so much as where the stack is at the point you call it...
21:54 Infinoid jonathan: yeah.  mem_setup_allocator() is called from make_interpreter().  The alternative is to call it from make_interpreter(), directly.
21:54 Infinoid Either way I think it will work.
21:54 jonathan Perhaps. ;-)
21:54 chromatic t/op/trans.t fails with -j
21:54 chromatic specifically the atan2 test
21:55 Infinoid I was just thinking it should be part of the GC init, hence looking at mem_setup_allocator()...
21:55 chromatic Infinoid, the only complication is when Parrot's run embedded from another process.
21:55 chromatic Provided all of the tests pass (we have tests for that), it's a workable fix.
21:56 Infinoid Great.  I think I can address the stack-position issue too.  With Parrot_init_stacktop(), it isn't about where you call it from, it's about where you got the pointer you're passing to it.
21:58 chromatic Makes sense.
22:06 dalek r35773 | kjs++ | trunk/compilers/pirc (4 files):
22:06 dalek : [pirc] add some #if for comments. + add tests
22:06 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35773
22:08 Infinoid Sadly, Parrot_init_stacktop() also calls init_world_once(), which also crashes.
22:08 Infinoid The yaks are lining up.
22:10 * jonathan hands Infinoid a shaver
22:11 chromatic Why in the world does this not assign to NREG(1) under JIT?
22:11 chromatic NREG(1) = atan2((FLOATVAL)NREG(2), (FLOATVAL)NREG(3));
22:12 jonathan chromatic: Is the op jitted?
22:12 chromatic I don't believe so, no.
22:13 chromatic I stuffed fprintf() calls in the body of the op in src/ops/core_ops.c and they print during normal and JIT operations.
22:13 chromatic Atan_n_n_n: 1, 1 = 0.785398163397448 (0.785398163397448)
22:13 chromatic Atan_n_n_n: 1, 1 = nan (0.785398163397448)
22:14 chromatic The second case prints NREG(2), NREG(3), NREG(1), and the results of the atan2 call directly.
22:16 jonathan What does the NREG macro resolve to?
22:16 chromatic The appropriate N register based on the register number of the opcode address + offset.
22:17 jonathan Under JIT too?
22:17 chromatic Yes.
22:20 dalek r35774 | jonathan++ | trunk/languages/perl6/src (2 files):
22:20 dalek : [rakudo] Make //= work (but see RT#61880 for discussion on this patch).
22:20 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35774
22:22 TiMBuS joined #parrot
22:27 particle1 joined #parrot
22:31 dalek r35775 | infinoid++ | trunk (5 files):
22:31 dalek : [core] The GC is being called too early, and didn't have enough stuff
22:31 dalek : set up yet to scan the stack effectively.  This caused early frees of
22:31 dalek : critical objects (in this case, the Scheduler) and crashed miniparrot
22:31 dalek : during the build process.  Initialize the stack pointer stuff earlier,
22:31 dalek : before the GC is enabled.  This fixes TT #179.
22:31 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35775
22:31 dalek r35776 | infinoid++ | trunk/src/pmc:
22:31 dalek : Undo the TT #179 workaround... reenable building of the get_type() method.
22:31 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35776
22:31 Infinoid chromatic: Please sanity check r35775 for me, if you have a moment.
22:32 chromatic Looking now.
22:33 chromatic It looks sane.
22:35 Infinoid thanks!
22:35 Infinoid PerlJam, TiMBuS: do either of you have a moment to see whether miniparrot still segfaults in the current trunk?  (I was able to reproduce it locally, and seem to have fixed it here.)
22:35 gravity joined #parrot
22:36 TiMBuS Infinoid, yeah i just did a svn checkout and it compiled fine
22:36 Infinoid TiMBuS++, thanks for all your testing help
22:37 TiMBuS no problem. it gets you motivated to help out when its not working heh
22:41 kj or mapping)
22:41 kj mmm.
22:41 kj jonathan: hi
22:44 jonathan kj: hi
22:44 purl que tal, jonathan.
22:45 jonathan muy bien, purl...
22:45 purl i guess muy bien is spanish right?
22:45 Infinoid purl: Your attacks upon us will not go unpunished.  You are in contravention of the New Paradigm.
22:45 purl OK, Infinoid.
22:45 jonathan Yes purl.
22:45 kj not sure if all my messages arrive. crap irc client today
22:45 kj anyway, I'm trying to find out where debug mappings are stored in bytecode
22:45 kj apparently, the mappings are there, when running pbc_disassemble
22:45 jonathan For PIR file/line numbers?
22:46 jonathan They go in a debug seg.
22:46 kj well, for each .sub, there's a line like 'Current Source Filename <filename>'
22:46 kj if you pbc_disassemble a pbc file
22:47 Andy ping pmichaud
22:47 purl I can't find pmichaud in the DNS.
22:47 kj and I can't really find out where 1) the debug segment is created, and 2) when this information is stored in that debug segment
22:47 jonathan It's all in pbc.c in imcc
22:47 jonathan In one routine
22:48 jonathan I think emit_bytecode or something
22:48 jonathan The main one that emits the bytecode.
22:48 kj yes I know that one
22:48 NotFound kj: I looked for that some months ago when working with the debugger, and failed miserably
22:48 jonathan But basically it stores for each op an entry in the data part of the segment.
22:48 kj that doesn't promise much good.
22:48 kj jonathan: ok, thanks
22:48 jonathan That holds the line number that this op was on.
22:49 jonathan It's pretty dumb, but works.
22:49 kj ah now I notice the difference between pirc-generated pbc and imcc-generated pbc
22:49 kj hadn't noticed before
22:51 TonyC joined #parrot
22:57 jhorwitz chromatic: ping
22:57 dalek r35777 | kjs++ | trunk/compilers/pirc/src (2 files):
22:57 dalek : [pirc] store PIR source line in the instruction for each, ehm, source line :-)
22:57 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35777
22:58 chromatic pong
22:58 jonathan kj: There is the mapping section with filenames in the header too, if you didn't already do that bit.
22:59 kj no, don't think so.
22:59 jhorwitz chromatic: been working on TT #185, but my fixes exposed other problems.  question -- would it make sense for subs with empty labels ('') to be automatically marked :anon?
23:00 chromatic as in .sub '' ?
23:00 jhorwitz correct
23:00 kj what really troubles me is that the generated PBC can be disassembled nicely, but fails massively when running
23:00 chromatic Makes sense to me.
23:00 jhorwitz how would that be done?
23:02 chromatic In IMCC, when you parse the sub declaration rule, you need to set VT_ANON or whatever the right flag is on the resulting Sub object.
23:03 kj setting :anon in imcc: around line 1105 in imcc.y
23:04 jhorwitz ok i'll try that out.
23:04 kj that's also the part where other flags are set, as 'sub_proto' indicates flags
23:04 kj well, not really, the flags are really set in the actions for sub_proto; aruond line 1330
23:04 kj but I guess you can add it later
23:11 chromatic Hm, I wonder if this has ever worked.
23:11 NotFound How do we make references to trac tickets in source comments? TT#num ?
23:11 chromatic TT #num
23:11 NotFound With a space?
23:11 chromatic Please.
23:12 chromatic As of July last year, the JIT atan2 test triggered NAN.  How odd.
23:16 dalek r35778 | allison++ | trunk/src:
23:16 dalek : [install] Include configured 'libdir' and 'includedir' in default search path for libraries and include files.
23:16 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35778
23:22 dalek r35779 | julianalbo++ | trunk/compilers/imcc:
23:22 dalek : add assertion that catches TT #162 segfault
23:22 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35779
23:26 dalek r35780 | kjs++ | trunk/compilers/pirc/src (3 files):
23:26 dalek : [pirc] add debug segment and debug info. Not finished yet, but at least pbc_disassemble does now print it.
23:26 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35780
23:30 iblechbot joined #parrot
23:36 dalek r35781 | kjs++ | trunk/compilers/pirc/src (2 files):
23:36 dalek : [pirc] fix source lines for debug info.
23:36 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35781
23:43 Whiteknight joined #parrot
23:44 dalek r35782 | kjs++ | trunk/compilers/pirc/src (2 files):
23:44 dalek : [pirc] Eh. debug linenrs are /not/ fixed yet, but the problem is identified. + add some comments. Will fix Another Day.
23:44 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35782
23:49 kid51 joined #parrot
23:51 Whiteknight Coke here?

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

Parrot | source cross referenced