Re: JPL mothballed?
[email protected] Sat, 17 Mar 2001 12:35:07 -0800 (PST)
| Newsgroups | perl.jpl |
|---|---|
| Message-ID | <[email protected]> |
> where is some recent information on JPL? is the last release really 1999 as
> in the CPAN archives?
> does it work with perl 5.6 and jdk 1.3?
> we experienced this error attempting to install it:
> Package JNI (JNI.pm) does not match filename blib/lib/jni.pm at
I'm not sure why you're seeing that error but recently Jarkko
Hietieniemi produced a patch to make JPL work with jdk 1.2/3.
I've had success with JPL under perl 5.6 and jdk 1.3 using
the patch (included below).
Rgds,
--
Charles DeRykus
Change 8803 by jhi@alpha on 2001/02/14 03:14:14
Duplicate environment for JPL so that JDK 1.2/1.3 don't get upset.
Affected files ...
... //depot/perl/perl.c#300 edit
... //depot/perl/perl.h#315 edit
Differences ...
==== //depot/perl/perl.c#300 (text) ====
Index: perl/perl.c
--- perl/perl.c.~1~ Wed Feb 14 05:19:55 2001
+++ perl/perl.c Wed Feb 14 05:19:55 2001
@@ -3257,6 +3257,8 @@
char *s;
SV *sv;
GV* tmpgv;
+ char **dup_env_base = 0;
+ int dup_env_count = 0;
argc--,argv++; /* skip name of script */
if (PL_doswitches) {
@@ -3325,6 +3327,23 @@
env = environ;
if (env != environ)
environ[0] = Nullch;
+#ifdef NEED_ENVIRON_DUP_FOR_MODIFY
+ {
+ char **env_base;
+ for (env_base = env; *env; env++)
+ dup_env_count++;
+ if ((dup_env_base = (char **)
+ safemalloc( sizeof(char *) * (dup_env_count+1) ))) {
+ char **dup_env;
+ for (env = env_base, dup_env = dup_env_base;
+ *env;
+ env++, dup_env++)
+ *dup_env = savepv(*env);
+ *dup_env = Nullch;
+ env = dup_env_base;
+ } /* else what? */
+ }
+#endif /* NEED_ENVIRON_DUP_FOR_MODIFY */
for (; *env; env++) {
if (!(s = strchr(*env,'=')))
continue;
@@ -3340,7 +3359,13 @@
(void)PerlEnv_putenv(savepv(*env));
#endif
}
-#endif
+ if (dup_env_base) {
+ char **dup_env;
+ for (dup_env = dup_env_base; *dup_env; dup_env++)
+ Safefree(*dup_env);
+ Safefree(dup_env_base);
+ }
+#endif /* USE_ENVIRON_ARRAY */
#ifdef DYNAMIC_ENV_FETCH
HvNAME(hv) = savepv(ENV_HV_NAME);
#endif
==== //depot/perl/perl.h#315 (text) ====
Index: perl/perl.h
--- perl/perl.h.~1~ Wed Feb 14 05:19:55 2001
+++ perl/perl.h Wed Feb 14 05:19:55 2001
@@ -1692,6 +1692,13 @@
# define USE_ENVIRON_ARRAY
#endif
+#ifdef JPL
+ /* E.g. JPL needs to operate on a copy of the real environment.
+ * JDK 1.2 and 1.3 seem to get upset if the original environment
+ * is diddled with. */
+# define NEED_ENVIRON_DUP_FOR_MODIFY
+#endif
+
#ifndef PERL_SYS_INIT3
# define PERL_SYS_INIT3(argvp,argcp,envp) PERL_SYS_INIT(argvp,argcp)
#endif
End of Patch.
--
$jhi++; # http://www.iki.fi/jhi/
# There is this special biologist word we use for 'stable'.
# It is 'dead'. -- Jack Cohen