Camelia, the Perl 6 bug

IRC log for #parrot, 2008-04-26

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:37 cotto_work nopaste?
00:37 purl nopaste is at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://rafb.net/paste or http://paste.husk.org/ or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/ or don't bother me while I'm eating
00:40 cotto_work nopasta?
00:42 cotto_work purl, nopasta is http://www.news.com.au/story/0​,23599,22352536-13762,00.html
00:42 purl OK, cotto_work.
00:43 particl1 joined #parrot
00:45 kid51 joined #parrot
00:48 Theory joined #parrot
00:50 cotto_work purl, svn st is <reply>svn: warning: '#parrot' is not a working copy
00:50 purl OK, cotto_work.
00:50 cotto_work svn st
00:51 cotto_work svn st
00:55 tetragon "Determining whether libc has the backtrace* functions (glibc only).....yes."?  I don't have use glibc.
00:55 cotto_work that's what you think
00:57 tetragon backtrace(3) is in the "BSD Library Functions Manual"
00:59 tetragon (And was added to OS X in 10.5)
00:59 kid51 ... which explains why on OS X 10.4, I get "no entry" for 'man backtrace'
01:00 tetragon The manpage documents that it is a recent addition
01:01 tetragon It's in execinfo.h
01:01 kid51 Part of our problem is that we don't (as far as I know) have anyone who *primarily* develops Parrot on BSD -- not counting Darwin.
01:01 nopaste "cotto_work" at 131.107.0.106 pasted "cultural sensitivity to non-glibc systems with a backtrace()" (13 lines) at http://nopaste.snit.ch/12821
01:02 kid51 So we solve Darwin problems as they occur on the laptops many/most of us use ... to access Linux servers.
01:03 tetragon And, as you might expect, Apple's execinfo.h is not the same as glibc's execinfo.h
01:04 tetragon They appear to be effectively the same signatures, though
01:05 tetragon glibc sticks in a load of macros, though
01:05 tetragon (in the declaration lines)
01:05 kid51 cotto_work:  I don't think we can accept that patch unless we understand that step's runstep() method better.  After all, it specifically sets 'glibc_backtrace' in the P::C object.  I can't say that that's 100% correct, but it was clearly the intent of the person who wrote the step.
01:07 cotto_work I would expect an actual commit to be made by someone more knowledgeable about that than me
01:07 nopaste "kid51" at 68.237.13.171 pasted "How auto::backtrace first appeared as a separate config step class in Parrot" (6 lines) at http://nopaste.snit.ch/12822
01:07 kid51 ... and that certainly isn't me! ;-)
01:08 cotto_work I really should get some BSD system set up for testing
01:08 kid51 Is 'backtrace' something on the order of these libraries we've been adding lately, e.g., readline, gdbm, gmp, opengl?   Or is it something more fundamentally tied in with the C compiler?
01:09 tetragon It's from the base C library
01:09 tetragon Here's the manpage: http://developer.apple.com/documentation/Dar​win/Reference/ManPages/man3/backtrace.3.html
01:09 shorten tetragon's url is at http://xrl.us/bjt5k
01:09 kid51 cotto_work:  I dunno know about lately, but in the past year we've had good *smoke* testing on FreeBSD and Dragonfly -- but that's not quite the same thing as active developing on the system.
01:10 kid51 tetragon:  Given its position in the sequence of config steps, that's what I suspected.
01:10 kid51 2 steps after auto::gcc
01:11 tetragon Looks like there could be slightly different behaviour at compile-time between Linux/glibc/gcc and OS X
01:11 tetragon The glibc variant makes use of gcc attributes
01:12 tetragon The attributes used mean that the compiler checks calls for NULL pointers
01:13 tetragon (and can adjust optimisations based upon the assumption of non-null)
01:15 tetragon The three functions are otherwise equivalent, going by the OS X manpage and the comments in the header on a Linux box
01:17 Infinoid it sounds perfectly safe to me to remove the glibcism
01:18 Infinoid the only thing I think we have to worry about is some other obscure OS adding a backtrace() with different parameters
01:18 Zaba joined #parrot
01:18 Infinoid if execinfo.h doesn't exist, the test will barf
01:18 Infinoid if execinfo.h exists but doesn't contain backtrace(), it will yield a "implicit declaration" warning and succeed... but might not work correctly later
01:19 Infinoid is there a portable version of -Werror?
01:26 tetragon I can't think of one.  The Linux manpage for backtrace(3) I found claims that backtrace is a GNU extension.
01:26 Infinoid several things have started out that way :)
01:27 Infinoid but it doesn't mean someone else might have a backtrace() of their own, with different arguments/semantics (one might expect to be passed a pthread_t, for example)
01:28 tetragon Here's the manpage for the glibc version: http://linux.die.net/man/3/backtrace
01:28 Infinoid so what I'm worried about is, we try out a new platform, detect backtrace bogusly, crash horribly at runtime for some other reason (pointer alignment perhaps), try to call backtrace, and make the problem even worse
01:28 Infinoid I'd prefer if it didn't get in the way of future debugging
01:29 Infinoid but I suppose that isn't a big deal.  just removing "glibc" from the variable names and Configure.pl output is a step in the right direction
01:30 tetragon Heh, the test for supported compiler warnings is a few steps after the check for backtrace
01:31 Infinoid Figures (tm)
01:31 Infinoid I don't want to add -Werror to the standard set of compiler warnings, but it would be nice if it could compile this particular test with it
01:31 Andy joined #parrot
01:32 peepsalot joined #parrot
01:34 dalek r27172 | coke++ | trunk:
01:34 dalek : [codingstd] Fix svn:keywords
01:34 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=27172
01:34 Infinoid nice of them to say its a GNU extension but not what version it was added in
01:34 Coke Infinoid: I had already figured that out and one point and think perhaps opened a ticket.
01:35 Coke Infinoid: http://rt.perl.org/rt3/Tic​ket/Display.html?id=50908
01:36 Infinoid Coke: Nice.  Speaking of beating me to it, did you get anywhere with the ops2c flags hashification thingy?
01:36 Coke Every time I try to improve upon your version, I screw it up in an incompatible fashion. I think I might have something I can commit, checking....
01:37 Coke I just have your version.
01:37 Coke Feel free to check yours in and get your karma.
01:38 Infinoid ok, I will.  and I'll add a blurb to the accessor method as you suggested
01:38 Coke (in fact, I just reverted it to force you!)
01:38 Infinoid heh.  good thing I still have a copy of the diff :)
01:38 Infinoid nopaste doesn't seem to keep things around for very long
01:38 Coke I had to go back through nopaste one a time to get back to yours.
01:39 Coke (this was only the following day, though)
01:42 Infinoid is there a way to intentionally crash parrot, in order to test whether backtrace() worked?
01:42 Infinoid I mean, I could tell it to sleep for a second and send it a SIGSEGV, but that isn't very sporting.  (nor portable.)
01:43 tetragon So no dereferencing a NULL pointer?
01:44 Infinoid I don't think I'm able to do that from PIR
01:44 Infinoid but maybe I can do it through an NCI call
01:45 Infinoid ... call fprintf(undef) or try to call stdout as a function or somesuch
01:45 Coke is there a CPP way to see if two literal strings are equal?
01:46 Infinoid C++ or C Preprocessor?
01:46 Coke latter
01:46 Infinoid #if (a == b) will probably work
01:47 tetragon Hrm... the pointer alignment test detects a minimum alignment of one byte on my system, except based upon my (brief) look at the rules and compiler flags, it should probably be four
01:48 Infinoid will your system crash if you access a non-aligned location?  some processors (like ARM) do.
01:48 Infinoid the kernel has a whole exception framework to fix those up for userspace processes
01:49 tetragon I know I got alignment errors when I ran that sub test{}; test(); thing a while back
01:49 tetragon I'll find out if I correctly remembered the syntax in a couple moments
01:50 Infinoid ok
01:50 Infinoid Coke: I lied.  the preprocessor is all sorts of incompetent about quoted strings, it seems
01:50 tetragon Hrm, I'm getting double-frees from that
01:52 tetragon The slightly confusing bit is that PPC OS X supports multiple alignment modes
01:53 Infinoid interesting... does it depend on how the OS and/or bootloader set things up?  or how the RAM is wired?  or what?
01:53 tetragon Compiler flags and pragmas
01:53 * Infinoid blinks
01:53 tetragon http://developer.apple.com/documentation/Devel​operTools/Conceptual/LowLevelABI/Articles/32bi​tPowerPC.html#//apple_ref/doc/uid/TP40002438
01:53 shorten tetragon's url is at http://xrl.us/bjt66
01:54 tetragon I'm on PPC32
01:54 Infinoid oh... that's just for performance (fitting into cache nicely and minimizing TLB hits and such)
01:55 Infinoid or does it actually crash when you get this wrong?
01:55 tetragon I think the flags (or more correctly lack thereof) put me into Power mode, but the single byte would only be correct for packed
01:56 tetragon Docs suggest that it's performance and that the compiler will pad things out
01:56 Infinoid yep, you'll find your generated assembly dotted with ".align" tags for that
01:57 Infinoid and there's a whole subset of linker flags related to this
01:57 tetragon Although there are special rules for function parameters
01:57 tetragon Non-vector parameters are four-byte
01:57 tetragon Vector parameters are 16-byte
01:58 * tetragon is so glad that compilers take care of this stuff
01:58 Infinoid that's to keep the stack working, and scannable by gdb and backtrace()-like functions
01:58 Infinoid I don't think any of this is ppc-specific... they all have that. :)
01:58 tetragon As evidenced by the subsequent pages for i386 and amd64
01:59 Infinoid there are some architectures (ARM as I mentioned before and probably MIPS), which simply aren't able to think about non-aligned access
02:00 Infinoid in fact, when you branch to a subroutine on ARM, the least significant 2 bits are repurposed as "flags"
02:00 Infinoid to tell it what mode to execute the subroutine in
02:00 Infinoid so you couldn't call an unaligned function even if you tried, it would round down to the next dword boundary and start executing there
02:01 Infinoid (sorry, this counts as "idle conversation" for me.)
02:02 donaldh joined #parrot
02:02 Infinoid does t/op/sysinfo.t fail for anyone else, or did I break it?
02:03 tetragon hehe, the test used by alignptrs.pm still passes if I tell it 0
02:03 tetragon Or -1
02:03 purl -1
02:03 Infinoid nice!
02:04 tetragon Hrm, well -1 changes the number to -29
02:04 tetragon I'll have to check on that
02:09 Infinoid ok, I didn't break it.  and it looks like a 64-bit specific error
02:09 Infinoid #   Failed test 'sysinfo integer size'
02:09 Infinoid #   at t/op/sysinfo.t line 53.
02:09 Infinoid #          got: '8'
02:09 Infinoid #     expected: '4'
02:10 nopaste "Infinoid" at 75.5.241.119 pasted "backtrace: Its Not Just For Glibc Kiddies Any More" (108 lines) at http://nopaste.snit.ch/12823
02:11 Infinoid that's a logical extension of cotto++'s patch.  It works fine here
02:14 tetragon backtrace was detected here with the patch
02:15 Infinoid I just wish we had a test that called it
02:16 Infinoid I guess that's stage 2 :)
02:18 Infinoid kid51: so, the patches we've been tossing around just change the name and description to avoid accusing OSX people of GNU-ness.  Should I just check it in?  I don't think it makes the current situation any worse...
02:19 kid51 I have no big personal investment in this step.  Other than the 2 steps tests -- which I'm glad to see you adjusted -- I didn't have any thing to do with it.  But let me see what I get on OS X 10.4.
02:19 kid51 Also:  how would this run on win32?
02:20 Infinoid it should fail to compile, and thus, say "no"
02:20 Infinoid I presume it already does that
02:21 * kid51 svn ups
02:22 Infinoid I can test that on mingw in a few minutes
02:23 kid51 Infinoid:  Once I do 'make', what are the relevant tests?  ('make test' takes too long on my iBook).
02:24 Infinoid I don't think there are any.
02:24 Infinoid [19:15] <@Infinoid> I just wish we had a test that called it
02:25 tetragon There are some tests that consistently crash parrot on my box
02:25 Infinoid do they have nifty looking backtraces?
02:25 tetragon Give me a minute
02:26 tetragon I need to get it to the point of not being blocked by prove -v
02:26 tetragon But there is a backtrace
02:27 Infinoid I'm not really sure under what conditions it does this.  but it looks like "Backtrace - Obtained %zd stack frames (max trace depth is %d).\n"
02:27 nopaste "tetragon" at 69.196.138.185 pasted "Nifty looking backtrace from the crash of t/imcc/syn/macro.t, test 32" (20 lines) at http://nopaste.snit.ch/12824
02:27 Infinoid nifty!
02:28 tetragon This particular test is one that crashes hard enough to trigger the OS X crash reporter
02:28 Infinoid hmm, kinda nifty.  but I wonder if we need to compile with -g or something, to get symbol names
02:30 tetragon Want to see the output made using the sample C code in the OS X manpage?
02:30 nopaste "Infinoid" at 75.5.241.119 pasted "Linux has some symbol names, but is still missing some" (17 lines) at http://nopaste.snit.ch/12825
02:30 tetragon I get the names without fancy compiler options
02:31 tetragon The crash reporter stack trace on macro 32 I get has all the function names
02:31 kid51 Infinoid:  change of topic:  http://rt.perl.org/rt3/Tic​ket/Display.html?id=53270  Do you know what interface to _add_to_libs() japhb wanted?  I kinda understand his point about the internals, but am unsure what he meant by $args->{default}.
02:31 purl kid51: that doesn't look right
02:31 kid51 purl  That's why I am asking the question!
02:31 Infinoid purl, zark off
02:31 purl OK, kid51.
02:31 purl Infinoid: i'm not following you...
02:32 Infinoid purl, that's why kid51?
02:32 purl that's why kid51 is asking the question!
02:32 kid51 Dare we ask purl who's on first?
02:33 Infinoid its pronoun handling amuses me
02:33 japhb Oh boy
02:33 japhb kid51: IRC client alerted me ... what's up?
02:33 japhb I fear that I have done a poor job of explaining myself ....
02:33 kid51 Infinoid:  Your patch passed Configure.pl --test on both Linux and Darwin 10.4.  backtrace correctly detected on former and correctly not found on latter.  Am currently running make test on Linux only.
02:34 Infinoid kid51: I don't think the interface to _add_to_libs was the issue, it was the implementation
02:34 Infinoid I think he just cleaned it up to make it look nicer
02:34 Infinoid (and easier to extend in the future)
02:35 japhb Infinoid: mostly what you just said.  Plus the default thing, as follows:
02:35 kid51 Okay:  I understand that you'd like that darwin KVP so that we could accommodate one more conversion from _handle_mswin32.  And I understand that you'd prefer cascading ternary on the inside.   But I'm unclear as to what you wanted for the interface for _add_to_libs().
02:35 japhb If several different platforms have the same libs flags, it seems a shame to have to specify them all individually.
02:36 japhb And most *nix are like this.
02:36 japhb So I figured -- make the *nix case the 'default',
02:36 japhb and then ONLY specify flags for OSen that do not want those.
02:36 Infinoid (we out number the win32's, anyway)
02:36 japhb So we no longer have to specify win32_gcc if it's just the same as gcc on every platform.
02:36 japhb Same with darwin, fink, macports, etc.
02:37 japhb afk for just a sec
02:37 japhb bak
02:37 japhb My point was basically:  why have to list the flags for every platform, when most are the same.
02:38 japhb er, s/\./?/
02:38 kid51 And how/where would the default be coded?
02:38 japhb That's the thing -- in the args to the function, one key be called 'default';
02:39 japhb depending on the platform detected, if there is no explicit arg for that platform, it falls back to using the 'default'.
02:39 kid51 So, more or less, 'default' substitutes for what I referred to as 'non_win32'?
02:39 japhb That's why the my $lib line
02:39 japhb kid51: yes, exactly.
02:39 japhb Except it gets renamed, because it now really is a default.
02:40 Infinoid and now we have the ability to add special cases for things other than win32, in the future, without looking really bizarre
02:40 kid51 Ok.  Since it's getting late here, I won't try to do this now.  Will try over the weekend.
02:40 Infinoid japhb: if you're really motivated, you could come up with a full patch to demonstrate this :)
02:40 japhb So for example, if only VC++ is different, you would only specify { win32_other => 'foo.lib', default => '-lfoo' }.  Then darwin, win32_gcc, non_win32, etc. all would use 'default'
02:41 japhb Infinoid: exactly
02:41 Infinoid japhb++
02:42 japhb Infinoid: RL has been getting in the way.  If I get lucky, sure.  If not, hopefully kid51 understands what I mean now.  :-)
02:44 Infinoid no problem, thanks for the help
02:44 tetragon Would there be some provision for temporary flags in the sense of only added on for some platforms during certain tests, with the temporary flags being removed in both cases of failing and passing the checks?
02:44 dalek r27173 | infinoid++ | trunk:
02:44 dalek : [Ops2c]
02:44 dalek : * Make flags() into a hash reference, so we don't have to add a
02:44 dalek :   little regex parser every time we want to check a flag.
02:44 dalek : * Coke++ for the idea and the help.
02:44 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=27173
02:44 Infinoid I've been too busy in RL to do anything at all this week, until now :)
02:45 Infinoid tetragon: you mean like passing -Werror for the backtrace() test?
02:45 Infinoid I don't know, but I want it.
02:45 tetragon Infinoid: The more specific case for me is '-undefined error' to darwin in the readline test
02:46 tetragon I need that tacked onto the end of the parameter list so that editline doesn't trick Configure.pl into thinking the system has readline
02:46 Infinoid what's it do?
02:46 tetragon -undefined error?
02:46 Infinoid is it anything like the -Werror=declaration-after-statement mentioned in RT #50908?
02:47 Infinoid yeah, that
02:47 purl Sure, that.
02:48 japhb tetragon: I don't think there currently is such a facility (unless auto::readline implements it as a one-off), but that could be added later.  Or auto::readline could subclass the standard methods.
02:49 Infinoid it sounds like a feature we both want
02:49 tetragon '-undefined dynamic_lookup' is passed in the standard g++ flag list on OS X.  This tells the linker that undefined symbols are to be looked up dynamically
02:49 tetragon I hacked together a one-off in #52212
02:49 Infinoid oh.  in other words, you never get undefined symbol errors from your linker?
02:49 tetragon That's right
02:49 Infinoid eew!
02:50 tetragon I get the errors at runtime
02:50 japhb sheesh
02:50 tetragon And by standard list, I mean the parrot standard list
02:50 kid51 All tests passed on Linux, so, at the very least, the Infinoid backtrace patch Did No Harm there.
02:50 * kid51 must sleep
02:50 purl $kid51->sleep(8 * 3600);
02:50 Infinoid sleep well kid51
02:50 tetragon One of the symbols in the readline test is declared in the editline headers but not implimented in the library
02:51 Infinoid and its referenced in the test file, which compiles, but doesn't run?
02:51 tetragon Yep
02:51 tetragon For the past couple of weeks I've been using my patch
02:52 Infinoid welp, since kid51 crosses his heart and swears that our backtrace patch is perfect and mindblowingly awesome, I'll check it in
02:53 tetragon The OS X default behaviour is that of '-undefined error'
02:54 Infinoid tetragon: hmm.  is there a good reason why parrot shouldn't leave that behavior alone?
02:54 tetragon The options are 'error', 'warning', 'suppress', and 'dynamic_lookup'
02:54 tetragon I'm not sure why it's touching that flag in the first place
02:55 tetragon I only see it in compiler lines that use 'c++', not 'cc'
02:55 tetragon (although I could have missed a case)
02:56 Infinoid I wonder if everything would work fine if we just ripped it out
02:57 tetragon I can always realclean and find where it comes from
02:57 Infinoid maybe it was in there because it was hard to figure out what libs to link against, or their paths or something
02:57 dalek r27174 | infinoid++ | trunk:
02:57 dalek : [config] Backtrace: Its Not Just For Glibc Kiddies Any More.
02:57 dalek : * backtrace() and backtrace_symbol() exist on OSX 10.5 too, with
02:57 dalek :   compatible prototypes and behavior.
02:57 dalek : * Change the Configure.pl description to avoid accusing OSX users
02:57 tetragon (config/init/hints/darwin.pm)
02:57 dalek :   of glibc-ness.
02:57 dalek : * Rename the config option from "glibc_backtrace" to "backtrace".
02:57 dalek : * Rename the header define from "PARROT_HAS_GLIBC_BACKTRACE" to
02:57 dalek :   "PARROT_HAS_BACKTRACE".
02:57 dalek : * cotto++ for the original idea, kid51++ and tetragon++ for testing.
02:57 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=27174
02:59 tetragon Well, time to see if it builds without '-undefined dynamic_lookup'
02:59 Infinoid ok :)
02:59 Infinoid I take it that's also passed during configure tests.  I'd be curious how many detection results change
02:59 tetragon OS X linking is scary enough without that flag
02:59 Infinoid hopefully your readline test, at least
03:00 tetragon The readline test results don't change
03:00 tetragon Two reasons: 1) I pass in the location to readline (not in default search paths) 2) The patch in #52212
03:01 Infinoid guess you've already killed that bug sufficiently :)
03:01 Infinoid hmm, brb.
03:01 Infinoid guacamole &
03:03 tetragon Yay, the build failed without '-undefined dynamic_lookup'
03:03 tetragon The failure occurred while building libglutcb.bundle
03:04 Infinoid that's not at all surprising.  Didn't we omit the -lGL (and so forth) for glut on darwin?
03:04 tetragon There still is '-framework OpenGL -framework GLUT', but I don't think that's it
03:05 tetragon The symols it can't find are _Parrot_runops_fromc_args_event, _PMCNULL, and _do_panic
03:06 Infinoid ooh, _PMCNULL sounds familiar from months and months ago
03:07 tetragon I'm going to try without -j2
03:07 Infinoid ok, but I doubt it will help
03:07 tetragon It will result in a more legible set build log
03:08 Infinoid _PMCNULL doesn't exist at all, or there were multiple instances of it?  (I'm trying to figure out if this is how we fixed a bug last August.)
03:12 tetragon Actually, I haven't reached where the OpenGL code builds, but it looks like omitting -j2 may help with at least one symbol
03:13 Infinoid hmm.  if so, that's probably a -j bug
03:13 tetragon But I'll have to wait and see
03:14 tetragon None of the pmc objects had been built by the time the build of libglutcb was attempted
03:15 japhb tetragon: I wonder if the '-undefined dynamic_lookup' is why you found no difference before when you tried getting rid of the -framework flags ...?
03:15 tetragon japhb: Doubtful.  I did the test code at the command line without any flags and it worked.
03:16 japhb ah, OK, nm
03:16 tetragon This time it failed during the build of libparrot
03:16 tetragon The undefined symbols are _environ and _offset_fixup
03:18 Infinoid what was the error message from libglutcb?
03:18 Infinoid it shouldn't matter whether the PMCs were built, but it might need a dependency on one of their header files.
03:19 nopaste "tetragon" at 69.196.138.185 pasted "make -j2 opengl ld error" (41 lines) at http://nopaste.snit.ch/12826
03:21 Infinoid that library will very likely need -lparrot
03:21 japhb hmmm, I wonder if libglutcb.so needs to depend on libparrot.so ...
03:21 tetragon _Parrot_runops_fromc_args_event wasn't defined in any of the objects built at that point
03:21 japhb Infinoid: both with the -lparrot, and with a make dependency, so -j2 works
03:21 Infinoid yeah
03:22 Infinoid this is definitely a difference in behavior.  linux ld doesn't care about undefined symbols in shared objects, because there will always be some of those.  OSX (without the ultimate-laziness cheat code) seems to be a bit stricter about resolving these at dynlib link time
03:22 tetragon There's also the warning option
03:23 japhb Why bother to warn if we won't do anything about it?
03:23 tetragon _Parrot_runops_fromc_args_event is from inter_run.o
03:24 japhb I'd prefer to do what it takes to make OS X happy, but barring that, no reason to have a warning appear that we are guaranteed not to do anything about.
03:30 Infinoid now that's optimism
03:31 Infinoid anyway, it sounds like -undefined dynamic_lookup was a workaround for OS X's strict default shlib linking
03:31 Infinoid I won't pursue the matter, because I don't want to break platforms I don't actually ever run.
03:31 Infinoid tetragon++ # thanks for the testing
03:31 tetragon If parrot is built before the glut code, I think I can get away with using -bundle_loader on it
03:32 japhb What does that do?
03:32 tetragon libglutcb.bundle is built as a bundle, and -bundle_loader <executable> tells ld to also check the executable's symbols
03:33 Infinoid and presumably, those of the shlibs referenced by the executable
03:33 tetragon Here's the manpage I'm referring to: http://developer.apple.com/documentation/​Darwin/Reference/ManPages/man1/ld.1.html
03:33 shorten tetragon's url is at http://xrl.us/bjt88
03:34 Infinoid interesting.  so -bundle_loader is a way of telling OS X, "look, I'm only going to be loading this library from this program over here, so don't complain about any symbols that program defines"?
03:34 Infinoid out of curiosity, does OS X use ELF executables?
03:34 Infinoid they have changed a surprising amount of stuff about how linking works.
03:35 tetragon Not ELF
03:35 * tetragon tries to dig out one of the quad-architecture binaries
03:36 tetragon But it's Mach-O
03:37 Infinoid ok, thanks
03:42 tetragon A document about Mach-O: http://developer.apple.com/documentation/Develop​erTools/Conceptual/MachOTopics/introduction.html
03:42 shorten tetragon's url is at http://xrl.us/bjt9a
03:44 Psyche^ joined #parrot
03:55 pmichaud yapc::na talks look really good this year
03:59 Infinoid too bad it's 2/3 of the way across the country for me :(
04:00 Infinoid tetragon: thanks for that link, I understand bundles and frameworks a lot better now
04:00 Infinoid and I think you're right, -bundle_loader is exactly what OS X would need
04:08 Psyche^ joined #parrot
04:09 pmichaud that's odd, yapc::na is 2/3rd of the way across the country for me, also :-)
04:11 tetragon Infinoid: OS X can be such fun when combining Unix and OS X conventions and build techniques
04:11 Infinoid pmichaud: are you in california?
04:12 pmichaud texas :-)
04:12 pmichaud my "across the country" is along a different axis than yours
04:12 Infinoid ah.  well, you have to travel 2/3 of the way across the country just to get across the state line
04:12 pmichaud that too
04:12 Infinoid :)
04:13 pmichaud when I got onto I-20 tonight (on my way to san angelo), it had mile marker 400
04:13 pmichaud 400 miles to the end of I-20
04:13 pmichaud i.e., where I-20 meets I-10
04:13 pmichaud and even at *that* one would still have another 120 miles to go to get out of texas.  yeesh
04:14 Infinoid I know the feeling.  its ridiculous that I can drive 600 miles (from here to San Diego) and still be in the same state
04:14 pmichaud largest mile marker I've ever seen is mile marker 880 on I-10 near Orange, Texas
04:14 pmichaud or, when driving from corpus christi (where I used to live) to Los Angeles, El Paso is half way.
04:15 Infinoid heh
04:15 Infinoid I can't comprehend of that distance.  farthest east I've ever been is Phoenix
04:17 pmichaud phoenix?!?  east?!?  ;-)
04:17 tetragon I'm not sure I've been that far west
04:18 pmichaud I think the only states I haven't been in are Rhode Island, Connecticut, North Dakota, Alaska, and Hawaii
04:18 pmichaud and I'm hoping to knock Hawaii out this summer :-)
04:21 Infinoid Gentoo is talking about dropping parrot from their tree, since the package is outdated and in need of a maintainer
04:22 Infinoid I'm not so sure that's a bad thing, considering the general opinion of "oh, we don't really support make install anyway"
04:22 Infinoid their current package is 0.4.6, which is probably worse than nothing at all
04:23 japhb NOD
04:23 pmichaud time for me to get some sleep before tomorrow's symposium
04:23 pmichaud g'nite all
04:23 Infinoid sleep well pmichaud
04:23 japhb g'nite!
04:23 Infinoid that said, I hope we can get the installation stuff sorted out soon, so we can install a nifty looking "perl6" executable that actually works
04:24 japhb agreed
04:25 Infinoid I'd work on it, but I've already got the pdd13pbc stuff in my queue :)
04:26 b2gills left #parrot
04:27 japhb Long ago I had a job writing InstallShield scripts for Windows boxen.  I went insane, only cured by swearing off writing installers.  ;-)
04:27 Infinoid wow, that's a good excuse!
04:30 Infinoid mine is pretty threadbare, considering I haven't done anything on pdd13pbc in a week.
04:31 japhb Would you prefer to shave yaks or specs?
04:34 Infinoid I'm a low level coding sort of guy, so implementing .pbc handling PMC classes is right up my alley.
04:35 japhb well there you go
04:35 japhb :-)
04:35 Infinoid high level stuff tends to trigger "yak overflow" exceptions in my brain more often
04:36 japhb Followed by yakking if exposure persists?
04:39 Infinoid it tends to lead me into things like IMCC, so generally, yes
04:39 Infinoid *** IMCC defense mechanism engaged, yak exception thrown.
04:43 japhb heh
04:52 tetragon Urgh, I found one of the symbols the linker was complaining about lacking when linking libparrot.dylib together
04:52 tetragon It's in one of the objects being linked
04:52 japhb ?!
04:54 tetragon I found an _offset_fixup in exec_dep.o
04:55 tetragon I'm even looking at otool's disassembly of it
04:57 tetragon I don't think it's being exported
04:58 tetragon Unfortunately, knowing how to manipulate export lists in AIX does not automatically mean I know how to do it in OS X
05:04 Zaba joined #parrot
05:20 Infinoid is _offset_fixup declared with PARROT_API?
05:22 Infinoid http://developer.apple.com/documentation/​DeveloperTools/Conceptual/DynamicLibrarie​s/Articles/DynamicLibraryDesignGuidelines​.html#//apple_ref/doc/uid/TP40002013-SW18
05:22 shorten Infinoid's url is at http://xrl.us/bjua4
05:24 Infinoid msg tetragon http://developer.apple.com/documentation/​DeveloperTools/Conceptual/DynamicLibrarie​s/Articles/DynamicLibraryDesignGuidelines​.html#//apple_ref/doc/uid/TP40002013-SW18
05:24 purl Message for tetragon stored.
05:24 shorten Infinoid's url is at http://xrl.us/bjua4
05:25 Infinoid msg tetragon Parrot runs gcc with -fvisibility-hidden, thus, symbols you want to export must be declared with PARROT_API.  ...which is defined to __attribute__ ((visibility("default"))
05:25 purl Message for tetragon stored.
05:25 Infinoid goodnight all
05:30 tetragon joined #parrot
06:08 dalek r27175 | coke++ | trunk:
06:08 dalek : remove TODO comment; the opcode it's in is slated for deletion
06:08 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=27175
06:12 dalek r27176 | coke++ | trunk:
06:12 dalek : Remove old TODO that had nothing TODO.
06:12 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=27176
06:27 dalek r27177 | coke++ | trunk:
06:27 dalek : [languages/PIR]
06:27 dalek : remove some commented out code
06:27 dalek : RT #41633 - replace .IMPORT with something more standard.
06:27 dalek : (This doesn't make the file work, though, just removes this particular
06:27 dalek : piece of cruft.)
06:27 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=27177
06:46 IllvilJa joined #parrot
07:30 barney joined #parrot
08:03 iblechbot joined #parrot
08:36 dalek r27178 | bernhard++ | trunk:
08:36 dalek : Remove trailing whitespace.
08:36 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=27178
08:37 dalek r27179 | bernhard++ | trunk:
08:37 dalek : Beautifications in config/gen/crypto.pm
08:37 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=27179
08:48 dalek r27180 | bernhard++ | trunk:
08:48 dalek : Clean up src/dynpmc/Makefile with -$(MAKE) src/dynpmc      realclean
08:48 dalek : The main 'realclean' does not depend on languages 'realclean'
08:48 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=27180
08:52 dalek r27181 | bernhard++ | trunk:
08:52 dalek : [dynpmc]
08:52 dalek : Clean up generated *.pmc file.
08:52 dalek : No need to clean up 'build.pl'.
08:52 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=27181
09:15 Ademan joined #parrot
09:37 dalek r27182 | bernhard++ | trunk:
09:37 dalek : [Eclectus]
09:37 dalek : Add stub for driver_nqp.pir.
09:37 dalek : Use string=? for switching between implementations.
09:37 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=27182
09:57 dalek r27183 | bernhard++ | trunk:
09:57 dalek : [Eclectus]
09:57 dalek : coding std for driver_nqp.pir
09:57 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=27183
09:57 * barney going out for a walk, enjoying the sun
10:51 Ademan joined #parrot
11:08 rafl i wonder if it's possible to somehow get the string representation of a C<Closure> in rakudo.
11:09 rafl on the pir level, that is.
11:21 ambs joined #parrot
11:22 AndyA joined #parrot
11:25 Ivatar joined #parrot
11:41 rdice joined #parrot
12:01 turrepurre joined #parrot
12:09 dalek r27184 | fperrad++ | trunk:
12:09 dalek : [docs]
12:09 dalek : - add language Squaak
12:09 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=27184
12:12 dalek r27185 | fperrad++ | trunk:
12:12 dalek : [install]
12:12 dalek : - add language Squaak
12:12 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=27185
12:13 kid51 joined #parrot
13:01 ambs joined #parrot
13:40 Senaka joined #parrot
13:40 Senaka ping Coke
13:40 purl I can't find Coke in the DNS.
13:40 Senaka Coke: ping
13:41 Senaka purl: hey
13:41 purl Senaka: i'm not following you...
13:41 Senaka seen Coke
13:41 purl Coke was last seen on #parrot 11 hours and 55 minutes ago, saying: latter
13:41 Senaka Coke: good to see the issues in fixing the warnings
13:41 Senaka there are a lot of them
13:42 Senaka msg Coke good to see the issues in fixing the warnings. there are a lot of them
13:42 purl Message for coke stored.
13:42 Senaka left #parrot
13:44 mire joined #parrot
14:38 gryphon joined #parrot
14:57 jan joined #parrot
15:21 ruoso joined #parrot
16:13 pmichaud rafl:  (string representation of closure in rakudo)   you mean you want the PIR source?
16:16 rafl pmichaud: no. I have a Closure object (the condition attribute of an Subset object) and want a string that describes it. similar to B::Deparse::coderef2text.
16:18 pmichaud rafl:  no, we don't have anything like that in Rakudo yet.  Don't know when/if we will.  :-)
16:21 rafl pmichaud: i wanted to improve the typecheck error messages. do you think i should commit that even if it can't tell anything useful if subtypes are involved?
16:24 pmichaud might check with jonathan about it
16:27 Tene Hm, I've got a free hour... any parrot-related requests?
16:30 barney Yes. I have a NQP reuest. Trailing comma in sub calls. Like:    eleven( 'dummy', );
16:31 * Tene grabs an editor and springs into action!
16:32 guru joined #parrot
16:32 barney Looking a rule 'signature' in nqp/src/Grammar.pg I expected trailing commas to be allowed
16:34 Tene barney: signature is for defining a sub, not calling it.
16:34 Patterner "make distclean" removes "languages/eclectus/driver_nqp.pir" which is in the MANIFEST and Configure.pl complains bitterly...
16:36 Tene barney: the rule you want to look at is arglist, which just contains a single EXPR
16:36 barney Tene: Yes, I saw that too now, so it's <arglist>
16:36 Tene Which is an optable
16:36 Tene The commas come from infix:,
16:37 Tene It would be possible to just add a \,? to arglist, but that's awkward enough that I'd want to ping pmichaud about it first.
16:38 japhb kid51: ping
16:38 barney Pattener: I'll look into that
16:38 * Tene pings pmichaud
16:40 pmichaud I'd look at how it currently parses
16:41 Tene pmichaud: the ,s are infix:<,> inside of EXPR
16:42 pmichaud tene yes, but is there an empty node at the end?
16:42 pmichaud iirc, the optable is supposed to be able to handle that
16:42 Tene with trailing , it gives: statement not properly terminated
16:43 pmichaud okay, that tells me a bunch
16:43 pmichaud I _think_ that it can be fixed by just adding a 'is nullterm' trait to infix:<,>
16:43 Tene I'll try it.
16:44 Tene seems to work.
16:44 pmichaud "is nullterm" means that the last term in an infix operator is optional
16:44 Tene make test passes.
16:45 pmichaud probably need a test for it, too :-)
16:45 Tene Hm.
16:45 Tene > say('test',);
16:45 Tene No result object
16:45 Tene So it doesn't seem to work, actually.
16:46 * Tene digs.
16:46 pmichaud I'm curious about how it parses in that case
16:47 * Tene will nopaste
16:48 pmichaud hmmm
16:48 pmichaud 'test',   is creatting a null operand
16:48 nopaste "tene" at 166.70.38.237 pasted ", parse" (61 lines) at http://nopaste.snit.ch/12829
16:48 dalek r27186 | bernhard++ | trunk:
16:48 dalek : [Eclectus]
16:48 dalek : Do not clean up 'driver_nqp.pir', it's in the repos.
16:49 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=27186
16:50 dalek r27187 | jkeenan++ | trunk:
16:50 dalek : Specify exact number of tests in plan.
16:50 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=27187
16:50 pmichaud yeah,                                                     [1] => PMC 'NQP::Grammar' => "" @ 6
16:50 pmichaud that looks like an OPTable bug
16:52 pmichaud I'm also curious how STD.pm handles it
16:58 dalek r27188 | bernhard++ | trunk:
16:58 dalek : [Eclectus]
16:58 dalek : Emit slightly saner NQP-code for setting up PAST.
16:58 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=27188
16:58 pmichaud I don't know if STD.pm handles it yet
17:00 pmichaud but it looks like an OPTable bug in PGE to me
17:01 kid51 japhb:  pong
17:01 Zaba what is NQP?
17:01 purl NQP is not quite perl (6)
17:01 Zaba heh.
17:02 PerlJam good afternoon
17:02 Zaba moin PerlJam
17:02 PerlJam pm: Are you in San Angelo?
17:02 pmichaud purl, NQP is also http://svn.perl.org/parrot/trunk/compilers/nqp
17:02 purl okay, pmichaud.
17:03 pmichaud pj: yes, in San Angelo now
17:03 pmichaud pj:  why aren't you here?!?  :-)
17:03 dalek r27189 | jkeenan++ | trunk:
17:03 dalek : Eliminate one test repeated from this step's '-01' test file.
17:03 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=27189
17:04 PerlJam pm: I almost went, but kids and wife want me here more :)
17:04 pmichaud pj:  I brought my wife with me :-)
17:05 PerlJam I could've brought the whole clan except Jazmine (she had a chior performance today)
17:05 PerlJam But, she's not quite old enough to drive herself around or take care of herself  :)
17:06 pmichaud time for lunch here
17:08 japhb kid51: sorry, got pulled away ... and now getting pulled away again.  Will try again later.
17:09 kid51 See your comment.  I actually did mean 'wordspace', not 'whitespace' -- because I don't know how tabs would work.  Would 'single whitespace' be clearer?
17:13 Tene Hmm... OPTable.pir:463
17:13 nopaste "pmichaud" at 72.18.170.67 pasted "tene: try this patch for infix:<,>" (25 lines) at http://nopaste.snit.ch/12830
17:13 tetragon joined #parrot
17:13 pmichaud lunchtime, gone
17:13 Tene ##   we have an unbalanced open, so error.  remove the
17:13 Tene ##   incomplete circumfixed term, and for circumfix: opers
17:13 Tene ##   put a failed nullterm onto the termstack
17:15 Tene pmichaud: works
17:18 davidfetter joined #parrot
17:19 dalek r27190 | jkeenan++ | trunk:
17:19 dalek : Eliminate one test repeated from this step's '-01' test file.
17:19 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=27190
17:20 cognominal joined #parrot
17:22 dalek r27191 | bernhard++ | trunk:
17:22 dalek : [Eclectus]
17:22 dalek : Delete outdated comments.
17:22 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=27191
17:25 Tene Hm.  https://svn.perl.org/account won't load for me, so I can't get my svn password
17:27 barney Works for me
17:28 barney Almost, till I want to see my password
17:30 Tene know where the password is stored on disk?
17:30 Tene I could dig it out of the cache on my old laptop
17:31 schmalbe joined #parrot
17:32 * schmalbe was barney
17:32 Tene know where the password is stored on disk?
17:32 purl i already had it that way, Tene.
17:34 schmalbe I found ~/.subversion/auth
17:34 Tene ahh, .subversion, not .svn.
17:34 Tene The only place in all of svn where "subversion" is used.
17:36 Tene I wonder if this fix should be ported to rakudo too.
17:38 dalek r27192 | tene++ | trunk:
17:38 dalek : Allow trailing commas in lists for NQP.
17:38 dalek : barney++
17:38 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=27192
17:41 dalek r27193 | bernhard++ | trunk:
17:41 dalek : [nqp]
17:41 dalek : Add test for trailing comma in sub call.
17:41 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=27193
17:43 Tene schmalbe: Thanks.  I was just about to ask you to do that.  I'm just about to leave.
17:44 schmalbe tene++ pmichaud++    leaving too
17:58 dalek r27194 | fperrad++ | trunk:
17:58 dalek : [inno]
17:58 dalek : now, use Parrot::Config
17:58 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=27194
18:03 rillian um, how does one debug nqp?
18:05 rillian I'm getting: method 'get_scalar' not found for invocant of calls 'Undef'
18:05 rillian er, class 'Undef'
18:05 rillian which is fine, but it would be nice to know which class is Undef'd
18:05 rillian 'print' doesn't seem to work
18:09 skids joined #parrot
18:14 Theory joined #parrot
18:14 Coke joined #parrot
18:15 pmichaud rillian: can you nopaste the source?   (yes, rakudo and much of parrot needs better error reporting)
18:15 pmichaud note that in NQP all function calls (including 'print') require the parens.
18:18 rillian ah. print() compiles, but I get 'Null PMC in invoke()'
18:20 rillian http://rafb.net/p/QgppfF73.html
18:20 rillian part three of the squaak tutorial on parrotblog.org
18:20 Zaba squaak?
18:20 purl squaak is, like, languages/squaak or the language in kj's tutorial at parrotblog.org or http://svn.perl.org/parrot/trunk/languages/squaak/
18:23 AndyA joined #parrot
18:23 pmichaud oh, NQP doesn't have a 'print'
18:23 pmichaud try say("...");
18:23 Zaba pmichaud, what's NQP?
18:24 pmichaud NQP == "Not Quit Perl"
18:24 pmichaud er
18:24 pmichaud "Not Quite Perl"
18:24 Zaba what is it for?
18:24 pmichaud http://svn.perl.org/parrot/tr​unk/compilers/nqp/README.pod
18:25 rillian pmichaud: ok thanks. need to revert an svn update first...
18:25 Zaba oh, I see.
18:35 rafl pmichaud: ok, thanks.
18:37 rillian what does ~$/ do?
18:40 dalek r27195 | chromatic++ | trunk:
18:40 dalek : [src] Added slice-handling code to key_integer(), which fetches the integer
18:40 dalek : index from a Key or Slice PMC.  This cleans up a warning (RT #53356, Will
18:40 dalek : Coleda) and implements a TODO.
18:40 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=27195
18:47 rillian ah, coerces to a string
18:48 dalek r27196 | infinoid++ | trunk:
18:48 dalek : [t] Fix sysinfo to check against sizeof(INTVAL), not against sizeof(int).
18:48 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=27196
18:52 rillian ah, I also get a stack trace if I don't run interactively. that helps
19:05 donaldh joined #parrot
19:16 dalek r27197 | infinoid++ | pdd13pbc:
19:16 dalek : [merge] Merge changes from trunk (-r27012:27196) into pdd13pbc branch.
19:16 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=27197
19:16 Infinoid dalek++ # that sooo would have killed svnbotl
19:19 guru joined #parrot
19:27 paco joined #parrot
19:30 dalek r27198 | pmichaud++ | trunk:
19:30 dalek : [nqp]:
19:30 dalek : * Clarify that perl6 === Rakudo in README.pod .
19:30 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=27198
20:08 ambs joined #parrot
20:22 mire joined #parrot
20:54 tetragon joined #parrot
20:57 kid51 joined #parrot
21:07 mire joined #parrot
21:08 mire joined #parrot
21:15 tetragon I took a quick look at the backtrace code used by parrot when it crashes.  I get all the symbols if I uncomment "#define BACKTRACE_VERBOSE" in exceptions.c
21:16 tetragon And how do I retrieve messages from purl?
21:16 pmichaud tetragon: /purl messages
21:16 pmichaud tetragon: er, /msg purl messages
21:16 pmichaud and also  /msg purl messages help
21:17 tetragon pmichaud: I've retreived them.  Purl didn't like my phrasing when I asked how to retrieve them
21:18 kid51 I find I get better results with this, called from #parrot:  /q purl messages
21:18 kid51 That opens a private room to have a chat with purl
21:18 kid51 And then in that window you can say:  messages erase
21:19 nopaste "tetragon" at 69.196.138.185 pasted "Nifty backtrace with BACKTRACE_VERBOSE defined" (15 lines) at http://nopaste.snit.ch/12832
21:21 tetragon Hrm... Looks like the existing backtrace code relies upon glibc formatting of the trace
21:24 Zaba_ joined #parrot
21:30 tetragon I now have it displaying the symbol names on OS X 10.5, but the code my change is a bit fragile looking
21:31 slightlyoff joined #parrot
21:34 Zaba joined #parrot
21:35 nopaste "tetragon" at 69.196.138.185 pasted "Nifty backtrace with symbols and OS X 10.5 patch" (33 lines) at http://nopaste.snit.ch/12833
21:37 Infinoid oh, my, that does look fragile
21:37 tetragon Yes, I did count the characters in Apple's fixed-width format to get 50
21:38 PerlJam tetragon: you should replace 50 with MAGIC_APPLE  :)
21:38 Infinoid "Magic is stored in native byteorder." -- parrotbyte.pod
21:38 Infinoid comforting, huh
21:38 tetragon PerlJam: I don't have a 64-bit box at home, and I think the offset would be different on them
21:39 Infinoid probably
21:39 purl Really? Probably? Are you Certain it's not certain? Are you sure it's unsure? I think you need to look harder.
21:39 Infinoid might be better to search for 0x and then the next space...
21:39 Infinoid or it might be better to just let the OS tell it what it wants, and pass it directly to the user, for both glibc and OSX.
21:40 tetragon And that works until someone with a sick sense of humour creates the symbol foo_0x000_bar
21:40 tetragon Or we could just add a configure test
21:41 PerlJam tetragon: search for " 0x" and then the following space
21:41 Infinoid hacks upon hacks :)
21:41 tetragon I'm thinking of column counting, instead
21:42 PerlJam are you sure it's always going to be the fourth column?
21:42 tetragon I have yet to see a counterexample
21:42 tetragon The issue is that backtrace_symbols goes for human-readable, not machine-parsable
21:43 PerlJam machines can parse anything given sufficiently smart humans to write the parser  :)
21:43 tetragon May be simpler to just ignore backtrace_symbols and use dladdr
21:44 Infinoid (machine-readable approach)++
21:44 Infinoid PerlJam: the problem is, the humans available in 2008 aren't smart enough to anticipate weird things Apple (or GNU) will throw at it in 2012
21:46 Infinoid I don't really have a problem with taking the human-readable output given by backtrace_symbols() and reporting that to the user directly, in its entirety
21:46 Zaba joined #parrot
21:46 tetragon You get that if you define BACKTRACE_VERBOSE
21:46 Infinoid ...but if we do want a reliable way to get the function name, dladdr() is a far more sane approach than parsing backtrace_symbols() is
21:52 Infinoid I'm confused.  I'm trying to learn the .pbc file format as it exists in parrot today, but docs/pdds/pdd13_bytecode.pod isn't it.  and surprisingly, docs/parrotbyte.pod doesn't seem to be it, either.
21:52 Infinoid I'm just getting started on this, but so far judging from the output of hexdump, the specs have more in common with eachother than either has in common with reality
21:57 Infinoid on glibc, half of the backtrace entries are missing the symbol name anyway, so your output looks better than mine
21:57 Infinoid the undefined ones look like this: /work/parrot-dev/parrot-trunk​/blib/lib/libparrot.so.0.6.1 [0x2b91c6cb2fcc]
21:57 Infinoid normal ones look like this: /work/parrot-dev/parrot-trunk/blib/lib/​libparrot.so.0.6.1(Parrot_confess+0x41) [0x2b91c6cb2fa1]
22:07 Psyche^ joined #parrot
22:17 japhb Manifest errors in configure:
22:17 japhb Checking MANIFEST...No such file: languages/squaak/examples/life.sq
22:17 japhb No such file: languages/squaak/MAINTAINER
22:17 japhb No such file: languages/squaak/t/01-math.t
22:17 japhb (fresh pull from head a couple minutes ago)
22:18 japhb Is someone working on squaak right now?
22:18 kid51 IIRC I saw someone working on squaak yesterday or today.
22:19 japhb Ah good, you're here.
22:19 japhb I want to add a new gen:: config step.  Any special things you want me to do to make you happy (well happier) with the patch?
22:19 kid51 for a few minutes more
22:20 kid51 What would it do?
22:21 japhb Instead of using a static call_list.txt, concatenate it from snippets; that way, a Parrot not containing something humongous (like say OpenGL) need not generate stubs for the 250 NCI signatures it won't ever use.
22:22 japhb Plus, I'm going to be generating those ~250 sigs from system headers, so I would have to merge them into call_list.txt somehow, might as well generalize the process.
22:23 japhb thoughts?
22:23 purl i like cheese
22:23 japhb purl, go to sleep
22:23 purl japhb: excuse me?
22:24 kid51 I actually haven't done very much work in the 'gen' step classes.  If you looked at the corresponding t/steps/gen_*.t tests, you'd see they're mostly stubs.  So in turns of keeping *me* happy, all you'd have to do is include a stub test file.  But this is a case where I recommend filing an RT so that others can evaluate what would be the pluses and minuses of adding this step.
22:25 japhb I was planning to.
22:25 kid51 I just don't like to wake up in the morning and find out that someone has added a new config step without discussing it on list first.
22:25 japhb well all right then.  :-)
22:26 kid51 But I don't have fixed opinions as to what should be in or not in the config system.  My own objective is more modest:  that what's in it should have well tested Perl 5.
22:27 kid51 So that if we move to different ways of running the config system, we'll have tests to remind us of all we've broken ;-)
22:28 kid51 Other than the whitespace/wordspace thing, are you satisfied with _add_to_libs()?
22:38 kid51 gotta go now
23:13 teknomunk joined #parrot
23:15 japhb msg kid51 yes, you said all tests passed, the structure looks good, and the triangle still spins for me, so the _add_to_libs patch is +1 from me.
23:15 purl Message for kid51 stored.
23:26 guru joined #parrot
23:33 cognominal joined #parrot
23:56 Theory joined #parrot

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

Parrot | source cross referenced