perl-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gerald Richter" <>
Subject Re: Status of ActivePerl in CVS
Date Fri, 01 Sep 2000 18:22:41 GMT
Hi Randy,

>     I managed to build Embperl with ActivePerl - like Matt mentioned,
> adding _WINDOWS to the defines and taking out
> -D_PERL_IMPLICIT_SYS from the defines gets rid of the
> problems with malloc.h and signal.h.


> However, the tests fail -
> I've attached the dialogue of 'nmake test'. This may be related to
> some warnings in the build, which I've also attached. I know you
> don't have a lot of time, but if something in the warnings rings
> a bell, let me know - I'll look at this later today.

Of course I take the time to help you. I am very interested that Embperl
works with ActiveState. The problem is the following warning:

epmain.c(325) : warning C4113: 'int (__cdecl *)(struct sv *,struct magic *)'
differs in parameter lists from 'int (__cdecl *)(struct interpreter *,struct
sv *,struct magic *)'

The reason lies in the line 55 and the following function defines in

int EMBPERL_mgGet##name (pTHX_ SV * pSV, MAGIC * mg) \

For a threaded Perl 5.6.0 pTHX_  gets declared correct so that it takes the
Perl context. For ActiveState this should be the same (see man perlguts at
the end), but as the warning shows us, it isn't. To work correctly pTHX_
must be defined as " struct interpreter * ". I guess there is some define
that is missing, which would cause the right #if in perl.h where all this
stuff is setup.

Maybe it would be enought to add a

#define pTHX_ struct interpreter *

at the top of epnames.h.

Hope this helps a little bit (I send a copy to, maybe
somebody there has more ideas)


P.S. You and Matt talked about a lot of objects that you had to add manualy.
What exactly was neccessary to do? Maybe I have an idea how to fix this,
because I had played a some time around when I made the first version of
Embperl to compile on Win32.

View raw message