Hi Brian,
> This looks great. I have high hopes for Inline::Java. Here are some
> random notes:
>
> - Couldn't figure out how to build the SDK on my Linux box. I can tell
> you right now that your doc should include easy to follow instructions
> on how to install the prerequisites for the Java challenged. Don't
> assume an expertise in Java by your users. I learned C from Inline::C.
> ;)
>
Note taken. I'lll have to get more information since I didn't even install
it myself here... :)
> - Looking over your code...
>
> - Just FYI. In Perl, $ref->{foo}->[42]->{bar} can always be written as
> $ref->{foo}[42]{bar}. Only one '->' is needed.
I know about that. It's just an old habit that makes it a bit clearer for
me.
>
> - I would prefer the register() type to be 'interpreted' rather than
> 'compiled'. 'compiled' is for ILSM-s that use DynaLoader. 'interpreted'
> really means 'non-compiled'. This is minor.
Ok. I wasn't to sure how to use this since Java is a bit of both...
>
> - For configuration parameter names, it is not necessary to prefix all
> of them with 'JAVA_'. It is fine for 2 ILSM-s to share the same Config
> option names. I would avoid prefixing except for 2 cases:
> 1) If the prefixed name has an accepted meaning to Java already.
> 2) If the name is (or will be) a generic Inline option. DEBUG will be
> used by Inline in the future. You may wish to use DEBUG for now anyway,
> and it still may do the right thing when I implement debugging. But if
> you have different semantics, you'll need to change it.
>
> - For things like JAVA_BIN, you may want to call it INLINE_JAVA_BIN or
> even PERL_INLINE_JAVA_BIN externally (%ENV), and just BIN internally. I
> use
> $ENV{PERL_INLINE_DIRECTORY}
> and
> use Inline C => 'source' => DIRECTORY => ...
> to mean the same thing. Some other software may use the JAVA_BIN env
> variable differently.
I'll de-prefix them. Not a problem. Thanks for the pointer on the
PERL_INLINE_DIRECTORY stuff
>
> That's all for now. I wish I could get it running. I'll try again later.
> If anyone wants to give me a pointer, I'm running Linux 2.2.13 (Suse
> 6.3)
>
> Cheers (and lots of them :), Brian
>
> PS On last thing. It's OK to use names like
> 'Inline-Java-0.01-dev-001.tar.gz' internally, but please don't upload
> anything like that to CPAN. Just use whatever 'make dist' produces. This
> helps CPAN maintainers (like me) a lot.
I know, it was just to make it clear that it wasn't ready for CPAN yet. The
name will be
from 'make dist' for the CPAN releases.
>
> Version numbers in Perl should not contain any/much overloaded meaning
> except that they should increase in number value. They should always be
> '#.##'. It doesn't matter at all what number you start with on CPAN.
>
> My personal preference is to always increase by 0.01, and round to 0.10
> for major releases.
>
One question though: In Inline::Java I look at the PATH and CLASSPATH
variables. The delimiter is ":" un Unix and ";" on Windows. I also create a
makefile that calls "cp" (should be "copy" on Windows). I also
need took look for 'java.exe' instead of 'java' on the Windows platform.
What's the best way to detect the running OS and do this kind of
distinction? Is there any kind of standard method?
Thanks,
Patrick