On Mon, 28 May 2007 02:05:24 +0200 pancake <[EMAIL PROTECTED]> wrote:
> Hi to everyone! > > How can I set a new include path into the library loader of parrot? There is a hook into init_library_paths in library.c on a C level. You have to provide C code to append to the array. On a PIR level I am not sure. > A gcc-like '-I' flag would be desirable instead of the raw @INC like > perl5 does. > > Is the library path crosslanguage? How parrot handles these include > paths for other languages than pasm/pir? I'm mixing concepts? How > this is done/(going to be done) on parrot. See [RFC] extension guessing on the ML. I am working on the design for this right now. > Why my parrot can't find the installed libraries on > $prefix/lib/parrot/ ? library.c uses relative paths, does it means > that parrot does not finds the libraries (on last instance) there? If a path is relative in the path-list it will be prefixed with one of two possible values. The first is "prefix" which is set in config.pasm. The environment variable PARROT_RUNTIME can override the iglobals[prefix]. > And more comments O:) > > library.c:117 -- shouldn't this code must live inside a #if > __Darwin__ clause? (refering to the comment) > > /* OS/X has .dylib and .bundle */ > if (strcmp(PARROT_LOAD_EXT, PARROT_SHARE_EXT)) { > entry = const_string(interp, PARROT_SHARE_EXT); > VTABLE_push_string(interp, paths, entry); > } I am re-factoring this. I want to get rid of it entirely and generate this robotic C code from a configuration file of some sort. > library.c:155 -- The XXX comment should not be there. This function > only returns a boolean value. And it is fine for *NIX > > library.c:260 -- set LOAD_EXT_CODE_LAST equal to 4. > - this change will drop a +1 on the following line > and will make the for loop of library.c:321 more logical. (use < > instead of <= comparisions) there was a extension guessing part that was reverted while a more thorough design is hashed out. In the extension guessing proposal there was a feature to traverse the array in reverse order. That is why the array traversals are [end] instead of [end + 1] as usual. The revert probably ripped out the comments that documented why this was. > --pancake If you are really interested in this area please look at what I have been doing so we do not collide. There are two patches in RT currently: one that hoists all of the generic path handling routines into path.c/path.h , and one that cleans up Parrot_get_runtime_prefix. Beyond that I have the RFC where a new design is hashed out and a prototype implementation. Cheers, Mike Mattie - [EMAIL PROTECTED]
signature.asc
Description: PGP signature