Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Blocker
-
Resolution: Fixed
-
Affects Version/s: JRuby 1.0.0RC2
-
Fix Version/s: JRuby 1.0.0RC3
-
Component/s: Core Classes/Modules
-
Labels:None
-
Environment:Windows
Description
jruby.home (accessed in Java by getJRubyHome) is expected to be canonical when it populates all the $:/loadpath entries when the system comes up. Software like rubygems basically assumes this or one of its path operations break. Rubygems manipulation of $: is pretty fragile in that it expects config::Config[sitelibdir] to be an exact match with an element in $:. So:
sitelibdir=c:/foo/bar $: => ["c:/foo/bar/../bar"] or $: => ["C:/foo/bar"] or $: => ["/foo/bar"] <= Assumes system drive is 'C'
none of the above will work. Perhaps it is a burden which JRuby/MRI needs to bear to guarantee sitelibdir and same $: element are identical.
The other option was to update LoadService.addPath to make sure all entries coming in were canonical. This semed like it would be more confusing than making original path canonical.
Another option is to actually use rbconfig values to populate $:. This might be the best solution, but I want a release out today.
Fixed in commit 3825