Comments (6)
The hard-coding of the JDK used in the compilation for the abcl
/abcl.bat
wrapper scripts was a deliberate choice for simplicity of implementation.
Background
-
the wrapper scripts were intended for development, so use of the compiling JDK was a natural choice. It was anticipated that packaging systems would write their own shims for locating an appropriate JVM. For the ABCL binary releases we don't provide any shim.
-
most other wrapper scripts are rather complicated in their logic. The
mvn
script runs to some 200 lines of bash scripting (admittedly with comments) but covers a lot of edge cases (interaction with CLASSPATH settings, path differences when running on MSFT Windows under Cygwin) -
testing for the many differing operating system/shell combination situations gets complicated pretty quickly, and probably always going to have weird edge cases, so it was easier to punt the maintenance downstream. I decided that I would rather spend my time improving the ABCL implementation itself, and leaving it to system packagers how to chose the invoking JVM.
-
Does a user really expect that if they specify a
java
which can be found in theirPATH
, that a differing value ofJAVA_HOME
would mean a different JVM invocation? One may answer "yes, of course, that's what JAVA_HOME means!" but I have seen systems set up/shipped where this isn't the expectation -
even if we just picked "a) BASH under a UNIX and b) cmd.exe under a shipping MSFT Windows" as the two environments to support, the differences between the shells esp. in how paths are treated is different enough to require separate testing for each environment
Offer
All that being said, if someone were to provide patches for Unix Bash/MS-DOS implementation that was more sophisticated, I would seriously consider including it. Bonus points if one has a single base template that "(com/trans)piles into" Bash/MS-DOS scripts.
from abcl.
So I'm coming here from macports/macports-ports#21762 to mention that this is indirectly preventing me from upgrading abcl in MacPorts, btw... hardcoding the JDK means that the port has to use OpenJDK21, which fails to build for me currently due to: https://trac.macports.org/ticket/69440
from abcl.
I have a more sophisticated launcher but it is partially out of date and undocumented. Still, if it looks useful I will consider putting some time into it if there are opinions about what the functionality should be: https://github.com/alanruttenberg/lsw2/blob/owlapiv4/bin/abcl
Among other things it just calls plain java, which should respect JAVA_HOME, but that can also be overridden by providing ABCL_JAVA environment variable.
from abcl.
from abcl.
Just to emphasize: I'm happy to accept patches for this functionality, but we would need to have equivalent (and tested) functionality under Windows which is what makes this more difficult than it should be.
I use https://github.com/jenv/jenv to manage my Java runtimes. Maybe it has a Windows equivalent?
from abcl.
I'm afraid I don't know anything about running in a windows environment or how to drive any of the windows shells.
from abcl.
Related Issues (20)
- CLOS effective method cache doesn't work on specializers which are subtypes of `mop:specializer` HOT 17
- LABELS local function fails to shadow top-level function under some circumstances HOT 1
- Release abcl-1.9.2 HOT 1
- EQness of literals lost
- Circular lists HOT 2
- Circular lists (maybe) HOT 7
- ABCL doesn't respect `HOME` env HOT 7
- The symbol "MAKE-THREAD-LOCK" was not found in package EXT. HOT 4
- Documentation: "inability to inspect local variables in a given call frame" HOT 5
- Error after compiling some quoted forms
- [clos] update-instance-for-redefined-class is not working correctly
- [clos] changes to a class are only propagated to its existent direct instances but not to the existent instances of its subclasses HOT 1
- CALL-ARGUMENT-LIMIT is too high
- Evaluate implementing Profile-Guided Optimization (PGO) approach in ABCL
- parse-namestring ignores current directory spec HOT 1
- two problems I met about abcl-stepper HOT 3
- Two directory issues HOT 4
- Reading 694656019000000000.0d0 yields 0.0d0 HOT 2
- Release 1.9.3 for ELS 2024
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from abcl.