|
#parrot Parrot 0.6.1 "Bird of Paradise" Released | parrotcode.org Set by moderator on 22 April 2008. |
|||
| cotto_work | nopaste? | 00:37 | |
| purl | nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste or paste.husk.org/ or poundperl.pastebin.com/ or paste.scsys.co.uk/ or don't bother me while I'm eating | ||
| cotto_work | nopasta? | 00:40 | |
| purl, nopasta is www.news.com.au/story/0,23599,22352...62,00.html | 00:42 | ||
| purl | OK, cotto_work. | ||
|
00:43
particl1 joined
00:45
kid51 joined
00:48
Theory joined
|
|||
| cotto_work | purl, svn st is <reply>svn: warning: '#parrot' is not a working copy | 00:50 | |
| purl | OK, cotto_work. | ||
| cotto_work | svn st | ||
| svn st | 00:51 | ||
| 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 | ||
| tetragon | backtrace(3) is in the "BSD Library Functions Manual" | 00:57 | |
| (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' | ||
| tetragon | The manpage documents that it is a recent addition | 01:00 | |
| 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. | ||
| nopaste | "cotto_work" at 131.107.0.106 pasted "cultural sensitivity to non-glibc systems with a backtrace()" (13 lines) at nopaste.snit.ch/12821 | ||
| kid51 | So we solve Darwin problems as they occur on the laptops many/most of us use ... to access Linux servers. | 01:02 | |
| tetragon | And, as you might expect, Apple's execinfo.h is not the same as glibc's execinfo.h | 01:03 | |
| They appear to be effectively the same signatures, though | 01:04 | ||
| glibc sticks in a load of macros, though | 01:05 | ||
| (in the declaration lines) | |||
| 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. | ||
| 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 nopaste.snit.ch/12822 | ||
| kid51 | ... and that certainly isn't me! ;-) | ||
| 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? | ||
| tetragon | It's from the base C library | 01:09 | |
| Here's the manpage: developer.apple.com/documentation/D...ace.3.html | |||
| shorten | tetragon's url is at xrl.us/bjt5k | ||
| 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. | ||
| tetragon: Given its position in the sequence of config steps, that's what I suspected. | 01:10 | ||
| 2 steps after auto::gcc | |||
| tetragon | Looks like there could be slightly different behaviour at compile-time between Linux/glibc/gcc and OS X | 01:11 | |
| The glibc variant makes use of gcc attributes | |||
| The attributes used mean that the compiler checks calls for NULL pointers | 01:12 | ||
| (and can adjust optimisations based upon the assumption of non-null) | 01:13 | ||
| The three functions are otherwise equivalent, going by the OS X manpage and the comments in the header on a Linux box | 01:15 | ||
| Infinoid | it sounds perfectly safe to me to remove the glibcism | 01:17 | |
| the only thing I think we have to worry about is some other obscure OS adding a backtrace() with different parameters | 01:18 | ||
|
01:18
Zaba joined
|
|||
| Infinoid | if execinfo.h doesn't exist, the test will barf | 01:18 | |
| if execinfo.h exists but doesn't contain backtrace(), it will yield a "implicit declaration" warning and succeed... but might not work correctly later | |||
| is there a portable version of -Werror? | 01:19 | ||
| 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 :) | ||
| 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:27 | ||
| tetragon | Here's the manpage for the glibc version: 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 | ||
| I'd prefer if it didn't get in the way of future debugging | |||
| 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:29 | ||
| tetragon | Heh, the test for supported compiler warnings is a few steps after the check for backtrace | 01:30 | |
| Infinoid | Figures (tm) | 01:31 | |
| 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
01:32
peepsalot joined
|
|||
| dalek | r27172 | coke++ | trunk: | 01:34 | |
| : [codingstd] Fix svn:keywords | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27172 | |||
| Infinoid | nice of them to say its a GNU extension but not what version it was added in | ||
| Coke | Infinoid: I had already figured that out and one point and think perhaps opened a ticket. | ||
| Infinoid: rt.perl.org/rt3/Ticket/Display.html?id=50908 | 01:35 | ||
| 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.... | ||
| I just have your version. | 01:37 | ||
| Feel free to check yours in and get your karma. | |||
| 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!) | ||
| Infinoid | heh. good thing I still have a copy of the diff :) | ||
| nopaste doesn't seem to keep things around for very long | |||
| Coke | I had to go back through nopaste one a time to get back to yours. | ||
| (this was only the following day, though) | 01:39 | ||
| Infinoid | is there a way to intentionally crash parrot, in order to test whether backtrace() worked? | 01:42 | |
| I mean, I could tell it to sleep for a second and send it a SIGSEGV, but that isn't very sporting. (nor portable.) | |||
| tetragon | So no dereferencing a NULL pointer? | 01:43 | |
| Infinoid | I don't think I'm able to do that from PIR | 01:44 | |
| but maybe I can do it through an NCI call | |||
| ... 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? | ||
| Infinoid | C++ or C Preprocessor? | 01:46 | |
| Coke | latter | ||
| Infinoid | #if (a == b) will probably work | ||
| 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:47 | |
| Infinoid | will your system crash if you access a non-aligned location? some processors (like ARM) do. | 01:48 | |
| the kernel has a whole exception framework to fix those up for userspace processes | |||
| tetragon | I know I got alignment errors when I ran that sub test{}; test(); thing a while back | 01:49 | |
| I'll find out if I correctly remembered the syntax in a couple moments | |||
| Infinoid | ok | 01:50 | |
| Coke: I lied. the preprocessor is all sorts of incompetent about quoted strings, it seems | |||
| tetragon | Hrm, I'm getting double-frees from that | ||
| The slightly confusing bit is that PPC OS X supports multiple alignment modes | 01:52 | ||
| 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 | ||
| Infinoid blinks | |||
| tetragon | developer.apple.com/documentation/D...TP40002438 | ||
| shorten | tetragon's url is at xrl.us/bjt66 | ||
| tetragon | I'm on PPC32 | 01:54 | |
| Infinoid | oh... that's just for performance (fitting into cache nicely and minimizing TLB hits and such) | ||
| 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 | ||
| 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 | ||
| and there's a whole subset of linker flags related to this | 01:57 | ||
| tetragon | Although there are special rules for function parameters | ||
| Non-vector parameters are four-byte | |||
| Vector parameters are 16-byte | |||
| 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 | ||
| I don't think any of this is ppc-specific... they all have that. :) | |||
| tetragon | As evidenced by the subsequent pages for i386 and amd64 | ||
| Infinoid | there are some architectures (ARM as I mentioned before and probably MIPS), which simply aren't able to think about non-aligned access | 01:59 | |
| in fact, when you branch to a subroutine on ARM, the least significant 2 bits are repurposed as "flags" | 02:00 | ||
| to tell it what mode to execute the subroutine in | |||
| 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 | |||
| (sorry, this counts as "idle conversation" for me.) | 02:01 | ||
|
02:02
donaldh joined
|
|||
| Infinoid | does t/op/sysinfo.t fail for anyone else, or did I break it? | 02:02 | |
| tetragon | hehe, the test used by alignptrs.pm still passes if I tell it 0 | 02:03 | |
| Or -1 | |||
| purl | -1 | ||
| Infinoid | nice! | ||
| tetragon | Hrm, well -1 changes the number to -29 | 02:04 | |
| I'll have to check on that | |||
| Infinoid | ok, I didn't break it. and it looks like a 64-bit specific error | 02:09 | |
| # Failed test 'sysinfo integer size' | |||
| # at t/op/sysinfo.t line 53. | |||
| # got: '8' | |||
| # expected: '4' | |||
| nopaste | "Infinoid" at 75.5.241.119 pasted "backtrace: Its Not Just For Glibc Kiddies Any More" (108 lines) at nopaste.snit.ch/12823 | 02:10 | |
| Infinoid | that's a logical extension of cotto++'s patch. It works fine here | 02:11 | |
| tetragon | backtrace was detected here with the patch | 02:14 | |
| Infinoid | I just wish we had a test that called it | 02:15 | |
| I guess that's stage 2 :) | 02:16 | ||
| 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:18 | ||
| 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 | |
| Also: how would this run on win32? | |||
| Infinoid | it should fail to compile, and thus, say "no" | 02:20 | |
| I presume it already does that | |||
| kid51 svn ups | 02:21 | ||
| Infinoid | I can test that on mingw in a few minutes | 02:22 | |
| kid51 | Infinoid: Once I do 'make', what are the relevant tests? ('make test' takes too long on my iBook). | 02:23 | |
| Infinoid | I don't think there are any. | 02:24 | |
| [19:15] <@Infinoid> I just wish we had a test that called it | |||
| tetragon | There are some tests that consistently crash parrot on my box | 02:25 | |
| Infinoid | do they have nifty looking backtraces? | ||
| tetragon | Give me a minute | ||
| I need to get it to the point of not being blocked by prove -v | 02:26 | ||
| But there is a backtrace | |||
| 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 nopaste.snit.ch/12824 | ||
| Infinoid | nifty! | ||
| 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 | ||
| 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 nopaste.snit.ch/12825 | ||
| tetragon | I get the names without fancy compiler options | ||
| The crash reporter stack trace on macro 32 I get has all the function names | 02:31 | ||
| kid51 | Infinoid: change of topic: rt.perl.org/rt3/Ticket/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}. | ||
| purl | kid51: that doesn't look right | ||
| kid51 | purl That's why I am asking the question! | ||
| Infinoid | purl, zark off | ||
| purl | OK, kid51. | ||
| Infinoid: i'm not following you... | |||
| Infinoid | purl, that's why kid51? | 02:32 | |
| purl | that's why kid51 is asking the question! | ||
| kid51 | Dare we ask purl who's on first? | ||
| Infinoid | its pronoun handling amuses me | 02:33 | |
| japhb | Oh boy | ||
| kid51: IRC client alerted me ... what's up? | |||
| I fear that I have done a poor job of explaining myself .... | |||
| 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. | ||
| Infinoid | kid51: I don't think the interface to _add_to_libs was the issue, it was the implementation | 02:34 | |
| I think he just cleaned it up to make it look nicer | |||
| (and easier to extend in the future) | |||
| 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(). | ||
| japhb | If several different platforms have the same libs flags, it seems a shame to have to specify them all individually. | ||
| And most *nix are like this. | 02:36 | ||
| So I figured -- make the *nix case the 'default', | |||
| and then ONLY specify flags for OSen that do not want those. | |||
| Infinoid | (we out number the win32's, anyway) | ||
| japhb | So we no longer have to specify win32_gcc if it's just the same as gcc on every platform. | ||
| Same with darwin, fink, macports, etc. | |||
| afk for just a sec | 02:37 | ||
| bak | |||
| My point was basically: why have to list the flags for every platform, when most are the same. | |||
| er, s/\\./?/ | 02:38 | ||
| kid51 | And how/where would the default be coded? | ||
| japhb | That's the thing -- in the args to the function, one key be called 'default'; | ||
| 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'? | ||
| japhb | That's why the my $lib line | ||
| kid51: yes, exactly. | |||
| Except it gets renamed, because it now really is a default. | |||
| 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. | ||
| Infinoid | japhb: if you're really motivated, you could come up with a full patch to demonstrate this :) | ||
| 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' | ||
| Infinoid: exactly | 02:41 | ||
| Infinoid | japhb++ | ||
| japhb | Infinoid: RL has been getting in the way. If I get lucky, sure. If not, hopefully kid51 understands what I mean now. :-) | 02:42 | |
| 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? | ||
| dalek | r27173 | infinoid++ | trunk: | ||
| : [Ops2c] | |||
| : * Make flags() into a hash reference, so we don't have to add a | |||
| : little regex parser every time we want to check a flag. | |||
| : * Coke++ for the idea and the help. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27173 | |||
| Infinoid | I've been too busy in RL to do anything at all this week, until now :) | ||
| tetragon: you mean like passing -Werror for the backtrace() test? | 02:45 | ||
| I don't know, but I want it. | |||
| tetragon | Infinoid: The more specific case for me is '-undefined error' to darwin in the readline test | ||
| 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? | ||
| tetragon | -undefined error? | ||
| Infinoid | is it anything like the -Werror=declaration-after-statement mentioned in RT #50908? | ||
| yeah, that | 02:47 | ||
| purl | Sure, that. | ||
| 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:48 | |
| 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 | ||
| I hacked together a one-off in #52212 | |||
| Infinoid | oh. in other words, you never get undefined symbol errors from your linker? | ||
| tetragon | That's right | ||
| Infinoid | eew! | ||
| tetragon | I get the errors at runtime | 02:50 | |
| japhb | sheesh | ||
| tetragon | And by standard list, I mean the parrot standard list | ||
| kid51 | All tests passed on Linux, so, at the very least, the Infinoid backtrace patch Did No Harm there. | ||
| kid51 must sleep | |||
| purl | $kid51->sleep(8 * 3600); | ||
| Infinoid | sleep well kid51 | ||
| tetragon | One of the symbols in the readline test is declared in the editline headers but not implimented in the library | ||
| Infinoid | and its referenced in the test file, which compiles, but doesn't run? | 02:51 | |
| tetragon | Yep | ||
| For the past couple of weeks I've been using my patch | |||
| Infinoid | welp, since kid51 crosses his heart and swears that our backtrace patch is perfect and mindblowingly awesome, I'll check it in | 02:52 | |
| tetragon | The OS X default behaviour is that of '-undefined error' | 02:53 | |
| 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' | ||
| I'm not sure why it's touching that flag in the first place | |||
| I only see it in compiler lines that use 'c++', not 'cc' | 02:55 | ||
| (although I could have missed a case) | |||
| Infinoid | I wonder if everything would work fine if we just ripped it out | 02:56 | |
| 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 | ||
| dalek | r27174 | infinoid++ | trunk: | ||
| : [config] Backtrace: Its Not Just For Glibc Kiddies Any More. | |||
| : * backtrace() and backtrace_symbol() exist on OSX 10.5 too, with | |||
| : compatible prototypes and behavior. | |||
| : * Change the Configure.pl description to avoid accusing OSX users | |||
| tetragon | (config/init/hints/darwin.pm) | ||
| dalek | : of glibc-ness. | ||
| : * Rename the config option from "glibc_backtrace" to "backtrace". | |||
| : * Rename the header define from "PARROT_HAS_GLIBC_BACKTRACE" to | |||
| : "PARROT_HAS_BACKTRACE". | |||
| : * cotto++ for the original idea, kid51++ and tetragon++ for testing. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27174 | |||
| tetragon | Well, time to see if it builds without '-undefined dynamic_lookup' | 02:59 | |
| Infinoid | ok :) | ||
| I take it that's also passed during configure tests. I'd be curious how many detection results change | |||
| tetragon | OS X linking is scary enough without that flag | ||
| Infinoid | hopefully your readline test, at least | ||
| tetragon | The readline test results don't change | 03:00 | |
| Two reasons: 1) I pass in the location to readline (not in default search paths) 2) The patch in #52212 | |||
| Infinoid | guess you've already killed that bug sufficiently :) | 03:01 | |
| hmm, brb. | |||
| guacamole & | |||
| tetragon | Yay, the build failed without '-undefined dynamic_lookup' | 03:03 | |
| The failure occurred while building libglutcb.bundle | |||
| 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 | ||
| The symols it can't find are _Parrot_runops_fromc_args_event, _PMCNULL, and _do_panic | 03:05 | ||
| Infinoid | ooh, _PMCNULL sounds familiar from months and months ago | 03:06 | |
| tetragon | I'm going to try without -j2 | 03:07 | |
| Infinoid | ok, but I doubt it will help | ||
| tetragon | It will result in a more legible set build log | ||
| 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:08 | |
| 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:12 | |
| Infinoid | hmm. if so, that's probably a -j bug | 03:13 | |
| tetragon | But I'll have to wait and see | ||
| None of the pmc objects had been built by the time the build of libglutcb was attempted | 03:14 | ||
| 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. | ||
| japhb | ah, OK, nm | 03:16 | |
| tetragon | This time it failed during the build of libparrot | ||
| The undefined symbols are _environ and _offset_fixup | |||
| Infinoid | what was the error message from libglutcb? | 03:18 | |
| it shouldn't matter whether the PMCs were built, but it might need a dependency on one of their header files. | |||
| nopaste | "tetragon" at 69.196.138.185 pasted "make -j2 opengl ld error" (41 lines) at nopaste.snit.ch/12826 | 03:19 | |
| Infinoid | that library will very likely need -lparrot | 03:21 | |
| japhb | hmmm, I wonder if libglutcb.so needs to depend on libparrot.so ... | ||
| tetragon | _Parrot_runops_fromc_args_event wasn't defined in any of the objects built at that point | ||
| japhb | Infinoid: both with the -lparrot, and with a make dependency, so -j2 works | ||
| Infinoid | yeah | ||
| 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 | ||
| 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 | ||
| 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:24 | |
| Infinoid | now that's optimism | 03:30 | |
| anyway, it sounds like -undefined dynamic_lookup was a workaround for OS X's strict default shlib linking | 03:31 | ||
| I won't pursue the matter, because I don't want to break platforms I don't actually ever run. | |||
| tetragon++ # thanks for the testing | |||
| tetragon | If parrot is built before the glut code, I think I can get away with using -bundle_loader on it | ||
| 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 | ||
| Infinoid | and presumably, those of the shlibs referenced by the executable | 03:33 | |
| tetragon | Here's the manpage I'm referring to: developer.apple.com/documentation/D.../ld.1.html | ||
| shorten | tetragon's url is at xrl.us/bjt88 | ||
| 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 | |
| out of curiosity, does OS X use ELF executables? | |||
| they have changed a surprising amount of stuff about how linking works. | |||
| tetragon | Not ELF | 03:35 | |
| tetragon tries to dig out one of the quad-architecture binaries | |||
| But it's Mach-O | 03:36 | ||
| Infinoid | ok, thanks | 03:37 | |
| tetragon | A document about Mach-O: developer.apple.com/documentation/D...ction.html | 03:42 | |
| shorten | tetragon's url is at xrl.us/bjt9a | ||
|
03:44
Psyche^ joined
|
|||
| pmichaud | yapc::na talks look really good this year | 03:55 | |
| Infinoid | too bad it's 2/3 of the way across the country for me :( | 03:59 | |
| tetragon: thanks for that link, I understand bundles and frameworks a lot better now | 04:00 | ||
| and I think you're right, -bundle_loader is exactly what OS X would need | |||
|
04:08
Psyche^ joined
|
|||
| pmichaud | that's odd, yapc::na is 2/3rd of the way across the country for me, also :-) | 04:09 | |
| 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? | ||
| pmichaud | texas :-) | 04:12 | |
| my "across the country" is along a different axis than yours | |||
| Infinoid | ah. well, you have to travel 2/3 of the way across the country just to get across the state line | ||
| pmichaud | that too | ||
| Infinoid | :) | ||
| pmichaud | when I got onto I-20 tonight (on my way to san angelo), it had mile marker 400 | 04:13 | |
| 400 miles to the end of I-20 | |||
| i.e., where I-20 meets I-10 | |||
| and even at *that* one would still have another 120 miles to go to get out of texas. yeesh | |||
| 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 | ||
| or, when driving from corpus christi (where I used to live) to Los Angeles, El Paso is half way. | |||
| Infinoid | heh | 04:15 | |
| I can't comprehend of that distance. farthest east I've ever been is Phoenix | |||
| pmichaud | phoenix?!? east?!? ;-) | 04:17 | |
| tetragon | I'm not sure I've been that far west | ||
| pmichaud | I think the only states I haven't been in are Rhode Island, Connecticut, North Dakota, Alaska, and Hawaii | 04:18 | |
| and I'm hoping to knock Hawaii out this summer :-) | |||
| Infinoid | Gentoo is talking about dropping parrot from their tree, since the package is outdated and in need of a maintainer | 04:21 | |
| 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 | ||
| their current package is 0.4.6, which is probably worse than nothing at all | |||
| japhb | NOD | 04:23 | |
| pmichaud | time for me to get some sleep before tomorrow's symposium | ||
| g'nite all | |||
| Infinoid | sleep well pmichaud | ||
| japhb | g'nite! | ||
| 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 | ||
| japhb | agreed | 04:24 | |
| Infinoid | I'd work on it, but I've already got the pdd13pbc stuff in my queue :) | 04:25 | |
|
04:26
b2gills left
|
|||
| 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! | ||
| mine is pretty threadbare, considering I haven't done anything on pdd13pbc in a week. | 04:30 | ||
| japhb | Would you prefer to shave yaks or specs? | 04:31 | |
| Infinoid | I'm a low level coding sort of guy, so implementing .pbc handling PMC classes is right up my alley. | 04:34 | |
| japhb | well there you go | 04:35 | |
| :-) | |||
| Infinoid | high level stuff tends to trigger "yak overflow" exceptions in my brain more often | ||
| japhb | Followed by yakking if exposure persists? | 04:36 | |
| Infinoid | it tends to lead me into things like IMCC, so generally, yes | 04:39 | |
| *** IMCC defense mechanism engaged, yak exception thrown. | |||
| japhb | heh | 04:43 | |
| tetragon | Urgh, I found one of the symbols the linker was complaining about lacking when linking libparrot.dylib together | 04:52 | |
| It's in one of the objects being linked | |||
| japhb | ?! | ||
| tetragon | I found an _offset_fixup in exec_dep.o | 04:54 | |
| I'm even looking at otool's disassembly of it | 04:55 | ||
| I don't think it's being exported | 04:57 | ||
| Unfortunately, knowing how to manipulate export lists in AIX does not automatically mean I know how to do it in OS X | 04:58 | ||
|
05:04
Zaba joined
|
|||
| Infinoid | is _offset_fixup declared with PARROT_API? | 05:20 | |
| developer.apple.com/documentation/D...02013-SW18 | 05:22 | ||
| shorten | Infinoid's url is at xrl.us/bjua4 | ||
| Infinoid | msg tetragon developer.apple.com/documentation/D...02013-SW18 | 05:24 | |
| purl | Message for tetragon stored. | ||
| shorten | Infinoid's url is at xrl.us/bjua4 | ||
| 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. | ||
| Infinoid | goodnight all | ||
|
05:30
tetragon joined
|
|||
| dalek | r27175 | coke++ | trunk: | 06:08 | |
| : remove TODO comment; the opcode it's in is slated for deletion | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27175 | |||
| r27176 | coke++ | trunk: | 06:12 | ||
| : Remove old TODO that had nothing TODO. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27176 | |||
| r27177 | coke++ | trunk: | 06:27 | ||
| : [languages/PIR] | |||
| : remove some commented out code | |||
| : RT #41633 - replace .IMPORT with something more standard. | |||
| : (This doesn't make the file work, though, just removes this particular | |||
| : piece of cruft.) | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27177 | |||
|
06:46
IllvilJa joined
07:30
barney joined
08:03
iblechbot joined
|
|||
| dalek | r27178 | bernhard++ | trunk: | 08:36 | |
| : Remove trailing whitespace. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27178 | |||
| r27179 | bernhard++ | trunk: | 08:37 | ||
| : Beautifications in config/gen/crypto.pm | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27179 | |||
| r27180 | bernhard++ | trunk: | 08:48 | ||
| : Clean up src/dynpmc/Makefile with -$(MAKE) src/dynpmc realclean | |||
| : The main 'realclean' does not depend on languages 'realclean' | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27180 | |||
| r27181 | bernhard++ | trunk: | 08:52 | ||
| : [dynpmc] | |||
| : Clean up generated *.pmc file. | |||
| : No need to clean up 'build.pl'. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27181 | |||
|
09:15
Ademan joined
|
|||
| dalek | r27182 | bernhard++ | trunk: | 09:37 | |
| : [Eclectus] | |||
| : Add stub for driver_nqp.pir. | |||
| : Use string=? for switching between implementations. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27182 | |||
| r27183 | bernhard++ | trunk: | 09:57 | ||
| : [Eclectus] | |||
| : coding std for driver_nqp.pir | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27183 | |||
| barney going out for a walk, enjoying the sun | |||
|
10:51
Ademan joined
|
|||
| rafl | i wonder if it's possible to somehow get the string representation of a C<Closure> in rakudo. | 11:08 | |
| on the pir level, that is. | 11:09 | ||
|
11:21
ambs joined
11:22
AndyA joined
11:25
Ivatar joined
11:41
rdice joined
12:01
turrepurre joined
|
|||
| dalek | r27184 | fperrad++ | trunk: | 12:09 | |
| : [docs] | |||
| : - add language Squaak | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27184 | |||
| r27185 | fperrad++ | trunk: | 12:12 | ||
| : [install] | |||
| : - add language Squaak | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27185 | |||
|
12:13
kid51 joined
13:01
ambs joined
13:40
Senaka joined
|
|||
| Senaka | ping Coke | 13:40 | |
| purl | I can't find Coke in the DNS. | ||
| Senaka | Coke: ping | ||
| purl: hey | 13:41 | ||
| purl | Senaka: i'm not following you... | ||
| Senaka | seen Coke | ||
| purl | Coke was last seen on #parrot 11 hours and 55 minutes ago, saying: latter | ||
| Senaka | Coke: good to see the issues in fixing the warnings | ||
| there are a lot of them | |||
| 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
13:44
mire joined
14:38
gryphon joined
14:57
jan joined
15:21
ruoso joined
|
|||
| pmichaud | rafl: (string representation of closure in rakudo) you mean you want the PIR source? | 16:13 | |
| 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:16 | |
| pmichaud | rafl: no, we don't have anything like that in Rakudo yet. Don't know when/if we will. :-) | 16:18 | |
| 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:21 | |
| pmichaud | might check with jonathan about it | 16:24 | |
| Tene | Hm, I've got a free hour... any parrot-related requests? | 16:27 | |
| barney | Yes. I have a NQP reuest. Trailing comma in sub calls. Like: eleven( 'dummy', ); | 16:30 | |
| Tene grabs an editor and springs into action! | 16:31 | ||
|
16:32
guru joined
|
|||
| barney | Looking a rule 'signature' in nqp/src/Grammar.pg I expected trailing commas to be allowed | 16:32 | |
| 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... | ||
| 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> | ||
| Tene | Which is an optable | ||
| The commas come from infix:, | |||
| 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:37 | ||
| japhb | kid51: ping | 16:38 | |
| barney | Pattener: I'll look into that | ||
| Tene pings pmichaud | |||
| pmichaud | I'd look at how it currently parses | 16:40 | |
| Tene | pmichaud: the ,s are infix:<,> inside of EXPR | 16:41 | |
| pmichaud | tene yes, but is there an empty node at the end? | 16:42 | |
| iirc, the optable is supposed to be able to handle that | |||
| Tene | with trailing , it gives: statement not properly terminated | ||
| pmichaud | okay, that tells me a bunch | 16:43 | |
| I _think_ that it can be fixed by just adding a 'is nullterm' trait to infix:<,> | |||
| Tene | I'll try it. | ||
| seems to work. | 16:44 | ||
| pmichaud | "is nullterm" means that the last term in an infix operator is optional | ||
| Tene | make test passes. | ||
| pmichaud | probably need a test for it, too :-) | 16:45 | |
| Tene | Hm. | ||
| > say('test',); | |||
| No result object | |||
| So it doesn't seem to work, actually. | |||
| Tene digs. | 16:46 | ||
| pmichaud | I'm curious about how it parses in that case | ||
| Tene will nopaste | 16:47 | ||
| pmichaud | hmmm | 16:48 | |
| 'test', is creatting a null operand | |||
| nopaste | "tene" at 166.70.38.237 pasted ", parse" (61 lines) at nopaste.snit.ch/12829 | ||
| dalek | r27186 | bernhard++ | trunk: | ||
| : [Eclectus] | |||
| : Do not clean up 'driver_nqp.pir', it's in the repos. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27186 | 16:49 | ||
| r27187 | jkeenan++ | trunk: | 16:50 | ||
| : Specify exact number of tests in plan. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27187 | |||
| pmichaud | yeah, [1] => PMC 'NQP::Grammar' => "" @ 6 | ||
| that looks like an OPTable bug | |||
| I'm also curious how STD.pm handles it | 16:52 | ||
| dalek | r27188 | bernhard++ | trunk: | 16:58 | |
| : [Eclectus] | |||
| : Emit slightly saner NQP-code for setting up PAST. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27188 | |||
| pmichaud | I don't know if STD.pm handles it yet | ||
| but it looks like an OPTable bug in PGE to me | 17:00 | ||
| kid51 | japhb: pong | 17:01 | |
| Zaba | what is NQP? | ||
| purl | NQP is not quite perl (6) | ||
| Zaba | heh. | ||
| PerlJam | good afternoon | 17:02 | |
| Zaba | moin PerlJam | ||
| PerlJam | pm: Are you in San Angelo? | ||
| pmichaud | purl, NQP is also svn.perl.org/parrot/trunk/compilers/nqp | ||
| purl | okay, pmichaud. | ||
| pmichaud | pj: yes, in San Angelo now | 17:03 | |
| pj: why aren't you here?!? :-) | |||
| dalek | r27189 | jkeenan++ | trunk: | ||
| : Eliminate one test repeated from this step's '-01' test file. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27189 | |||
| PerlJam | pm: I almost went, but kids and wife want me here more :) | 17:04 | |
| pmichaud | pj: I brought my wife with me :-) | ||
| PerlJam | I could've brought the whole clan except Jazmine (she had a chior performance today) | 17:05 | |
| But, she's not quite old enough to drive herself around or take care of herself :) | |||
| pmichaud | time for lunch here | 17:06 | |
| japhb | kid51: sorry, got pulled away ... and now getting pulled away again. Will try again later. | 17:08 | |
| 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:09 | |
| Tene | Hmm... OPTable.pir:463 | 17:13 | |
| nopaste | "pmichaud" at 72.18.170.67 pasted "tene: try this patch for infix:<,>" (25 lines) at nopaste.snit.ch/12830 | ||
|
17:13
tetragon joined
|
|||
| pmichaud | lunchtime, gone | 17:13 | |
| Tene | ## we have an unbalanced open, so error. remove the | ||
| ## incomplete circumfixed term, and for circumfix: opers | |||
| ## put a failed nullterm onto the termstack | |||
| pmichaud: works | 17:15 | ||
|
17:18
davidfetter joined
|
|||
| dalek | r27190 | jkeenan++ | trunk: | 17:19 | |
| : Eliminate one test repeated from this step's '-01' test file. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27190 | |||
|
17:20
cognominal joined
|
|||
| dalek | r27191 | bernhard++ | trunk: | 17:22 | |
| : [Eclectus] | |||
| : Delete outdated comments. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27191 | |||
| Tene | Hm. svn.perl.org/account won't load for me, so I can't get my svn password | 17:25 | |
| barney | Works for me | 17:27 | |
| Almost, till I want to see my password | 17:28 | ||
| Tene | know where the password is stored on disk? | 17:30 | |
| I could dig it out of the cache on my old laptop | |||
|
17:31
schmalbe joined
|
|||
| schmalbe was barney | 17:32 | ||
| Tene | know where the password is stored on disk? | ||
| purl | i already had it that way, Tene. | ||
| schmalbe | I found ~/.subversion/auth | 17:34 | |
| Tene | ahh, .subversion, not .svn. | ||
| The only place in all of svn where "subversion" is used. | |||
| I wonder if this fix should be ported to rakudo too. | 17:36 | ||
| dalek | r27192 | tene++ | trunk: | 17:38 | |
| : Allow trailing commas in lists for NQP. | |||
| : barney++ | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27192 | |||
| r27193 | bernhard++ | trunk: | 17:41 | ||
| : [nqp] | |||
| : Add test for trailing comma in sub call. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27193 | |||
| Tene | schmalbe: Thanks. I was just about to ask you to do that. I'm just about to leave. | 17:43 | |
| schmalbe | tene++ pmichaud++ leaving too | 17:44 | |
| dalek | r27194 | fperrad++ | trunk: | 17:58 | |
| : [inno] | |||
| : now, use Parrot::Config | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27194 | |||
| rillian | um, how does one debug nqp? | 18:03 | |
| I'm getting: method 'get_scalar' not found for invocant of calls 'Undef' | 18:05 | ||
| er, class 'Undef' | |||
| which is fine, but it would be nice to know which class is Undef'd | |||
| 'print' doesn't seem to work | |||
|
18:09
skids joined
18:14
Theory joined,
Coke joined
|
|||
| pmichaud | rillian: can you nopaste the source? (yes, rakudo and much of parrot needs better error reporting) | 18:15 | |
| note that in NQP all function calls (including 'print') require the parens. | |||
| rillian | ah. print() compiles, but I get 'Null PMC in invoke()' | 18:18 | |
| rafb.net/p/QgppfF73.html | 18:20 | ||
| part three of the squaak tutorial on parrotblog.org | |||
| Zaba | squaak? | ||
| purl | squaak is, like, languages/squaak or the language in kj's tutorial at parrotblog.org or svn.perl.org/parrot/trunk/languages/squaak/ | ||
|
18:23
AndyA joined
|
|||
| pmichaud | oh, NQP doesn't have a 'print' | 18:23 | |
| try say("..."); | |||
| Zaba | pmichaud, what's NQP? | ||
| pmichaud | NQP == "Not Quit Perl" | 18:24 | |
| er | |||
| "Not Quite Perl" | |||
| Zaba | what is it for? | ||
| pmichaud | svn.perl.org/parrot/trunk/compilers...README.pod | ||
| rillian | pmichaud: ok thanks. need to revert an svn update first... | 18:25 | |
| Zaba | oh, I see. | ||
| rafl | pmichaud: ok, thanks. | 18:35 | |
| rillian | what does ~$/ do? | 18:37 | |
| dalek | r27195 | chromatic++ | trunk: | 18:40 | |
| : [src] Added slice-handling code to key_integer(), which fetches the integer | |||
| : index from a Key or Slice PMC. This cleans up a warning (RT #53356, Will | |||
| : Coleda) and implements a TODO. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27195 | |||
| rillian | ah, coerces to a string | 18:47 | |
| dalek | r27196 | infinoid++ | trunk: | 18:48 | |
| : [t] Fix sysinfo to check against sizeof(INTVAL), not against sizeof(int). | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27196 | |||
| rillian | ah, I also get a stack trace if I don't run interactively. that helps | 18:52 | |
|
19:05
donaldh joined
|
|||
| dalek | r27197 | infinoid++ | pdd13pbc: | 19:16 | |
| : [merge] Merge changes from trunk (-r27012:27196) into pdd13pbc branch. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27197 | |||
| Infinoid | dalek++ # that sooo would have killed svnbotl | ||
|
19:19
guru joined
19:27
paco joined
|
|||
| dalek | r27198 | pmichaud++ | trunk: | 19:30 | |
| : [nqp]: | |||
| : * Clarify that perl6 === Rakudo in README.pod . | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27198 | |||
|
20:08
ambs joined
20:22
mire joined
20:54
tetragon joined
20:57
kid51 joined
21:07
mire joined
21:08
mire joined
|
|||
| 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:15 | |
| And how do I retrieve messages from purl? | 21:16 | ||
| pmichaud | tetragon: /purl messages | ||
| tetragon: er, /msg purl messages | |||
| and also /msg purl messages help | |||
| tetragon | pmichaud: I've retreived them. Purl didn't like my phrasing when I asked how to retrieve them | 21:17 | |
| kid51 | I find I get better results with this, called from #parrot: /q purl messages | 21:18 | |
| That opens a private room to have a chat with purl | |||
| And then in that window you can say: messages erase | |||
| nopaste | "tetragon" at 69.196.138.185 pasted "Nifty backtrace with BACKTRACE_VERBOSE defined" (15 lines) at nopaste.snit.ch/12832 | 21:19 | |
| tetragon | Hrm... Looks like the existing backtrace code relies upon glibc formatting of the trace | 21:21 | |
|
21:24
Zaba_ joined
|
|||
| 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:30 | |
|
21:31
slightlyoff joined
21:34
Zaba joined
|
|||
| nopaste | "tetragon" at 69.196.138.185 pasted "Nifty backtrace with symbols and OS X 10.5 patch" (33 lines) at nopaste.snit.ch/12833 | 21:35 | |
| 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 | ||
| PerlJam | tetragon: you should replace 50 with MAGIC_APPLE :) | 21:38 | |
| Infinoid | "Magic is stored in native byteorder." -- parrotbyte.pod | ||
| comforting, huh | |||
| tetragon | PerlJam: I don't have a 64-bit box at home, and I think the offset would be different on them | ||
| 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. | ||
| Infinoid | might be better to search for 0x and then the next space... | ||
| 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. | |||
| tetragon | And that works until someone with a sick sense of humour creates the symbol foo_0x000_bar | 21:40 | |
| Or we could just add a configure test | |||
| PerlJam | tetragon: search for " 0x" and then the following space | 21:41 | |
| Infinoid | hacks upon hacks :) | ||
| tetragon | I'm thinking of column counting, instead | ||
| PerlJam | are you sure it's always going to be the fourth column? | 21:42 | |
| tetragon | I have yet to see a counterexample | ||
| The issue is that backtrace_symbols goes for human-readable, not machine-parsable | |||
| 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 | ||
| Infinoid | (machine-readable approach)++ | 21:44 | |
| 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 | |||
| 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 | ||
|
21:46
Zaba joined
|
|||
| 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 | ||
| 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 | ||
| 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 | |||
| on glibc, half of the backtrace entries are missing the symbol name anyway, so your output looks better than mine | 21:57 | ||
| the undefined ones look like this: /work/parrot-dev/parrot-trunk/blib/lib/libparrot.so.0.6.1 [0x2b91c6cb2fcc] | |||
| 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
|
|||
| japhb | Manifest errors in configure: | 22:17 | |
| Checking MANIFEST...No such file: languages/squaak/examples/life.sq | |||
| No such file: languages/squaak/MAINTAINER | |||
| No such file: languages/squaak/t/01-math.t | |||
| (fresh pull from head a couple minutes ago) | |||
| Is someone working on squaak right now? | 22:18 | ||
| kid51 | IIRC I saw someone working on squaak yesterday or today. | ||
| japhb | Ah good, you're here. | 22:19 | |
| 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? | |||
| kid51 | for a few minutes more | ||
| What would it do? | 22:20 | ||
| 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:21 | |
| 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:22 | ||
| thoughts? | 22:23 | ||
| purl | i like cheese | ||
| japhb | purl, go to sleep | ||
| purl | japhb: excuse me? | ||
| 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:24 | |
| 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. | ||
| japhb | well all right then. :-) | ||
| 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:26 | |
| 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:27 | ||
| Other than the whitespace/wordspace thing, are you satisfied with _add_to_libs()? | 22:28 | ||
| gotta go now | 22:38 | ||
|
23:13
teknomunk joined
|
|||
| 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
23:33
cognominal joined
23:56
Theory joined
|
|||