I've just committed a fix so that putenv and getenv actually do what they claim to do. As part of this, master()->_main no longer takes an environment mapping.
I think I've made the corresponding change for that in OCPikeInterpreter.m too, but someone who knows what's going on there better take a look at it, because to me the call to master()->_main seems to be missing altogether.
I haven't looked at the code recently, but I don't believe there's a call to master()->_main. It's intended to fire up the interpreter and wait for someone to run some code (ala embedded pike). Do you think there's some code in master()->_main that should be executed at the beginning of an embedded session?
Bill
On Thu, 5 Jun 2008, Martin Stjernholm, Roxen IS @ Pike developers forum wrote:
I've just committed a fix so that putenv and getenv actually do what they claim to do. As part of this, master()->_main no longer takes an environment mapping.
I think I've made the corresponding change for that in OCPikeInterpreter.m too, but someone who knows what's going on there better take a look at it, because to me the call to master()->_main seems to be missing altogether.
Well, there is some bootstrapping of the master going on there too, but I haven't really thought much about that.
What I noticed was some code in there that apparently sets up a call to _main without actually doing it:
... lots of SETJMP error handling ...
if ((m = load_pike_master())) { back.severity=THROW_EXIT; // pike_push_argv(argc, argv); pike_push_env();
}
I don't understand what this is supposed to accomplish. Anyway, I've removed the pike_push_env function entirely now. Do you really need it there?
pike-devel@lists.lysator.liu.se