revert a part of 1.197 by pgollucci which breaks rake with
ruby 1.9 and switch back to using the ruby 1.9 bundled one.
PR: ports/155539, ports/156217
Submitted by: Ralf Gebhart <gebhart@secnetix.de>, Anonymous <swell.k@gmail.com>
there's already nothing to stop. Only mark the timer thread as stopped.
That fixes spontaneous lockups in ruby popen call.
Reported by: renchap @ FreeNode
- On FreeBSD >= 7.2 allocate the new thread with adequate amount of stack
space to run the main ruby code in. This allows to mitigate problem
when too low stack space available for ruby when running with pthreads
enabled.
- Bump portrevision.
The long version. Before this change we used to link ruby against pthreads
uncoditionally on all versions of FreeBSD. This is indispensable in order
to load the threaded shared objects withing ruby. However, this causes a
dramatic decrease in the stack space available as pthreads only allows
up to several megabytes of stack space for the main application threads.
The only solution to this is to create the new thread immediately after
the program start with rigth stack size attributes set. Nonetheless this
scheme won't work for us on FreeBSD version before 7.2 as malloc implementation
in these versions was not threaded fork safe (i.e. this is impossible to
fork from the threaded program and expect malloc/free functions to work).
Thus the only solution for now can be to disable pthreads entirely on
FreeBSD <= 7.2. This won't cause any performance/usability problems for
users as Ruby 1.8 uses green threads, however it may prevent <= 7.2
users to load shared libraries linked agains pthreads.
Reported by: "François Montel" <seanmullen@gmail.com>
Tested by: Sean Mullen <seanmullen@gmail.com>
we were linking the ruby binary against pthreads, and the default
stack size detection method with getrlimit didn't returned right
values in this case. Now, if threads enabled, it also tries to
determine the stack size via pthreads calls and use this value if
it is smaller than what getrlimit returned. Furthermore, the stack
overflow detection routine now works proactively, generating
exception if there're probability the stack will be exhausted by
the time of the next check (ruby performs checks only in each 256th
call of rb_call0). [1]
- Build pthreads-enabled ruby by default. I have not received any
bug reports for this for years, and this verison will work correctly
with threaded libraries. Also, do not link agains pthreads in non-pthread
case (this breaks stack size detection algorithm), and eliminate the
option to disable pthreads (so only power users who know what they're
doing can disable them).
- Build RDoc by default so it is available in the package.
- Bump portrevision.
PR: ports/132158
Reported by: Eugene Pimenov <libc@libc.st>
been triggered by portupgrade which uses finalizers to remove lockfiles.
- Fix the bug in URI module that smashed uri paths in merge method for
ftp uris. [1]
- Fix segmentation fault when cloning objects with dynamically created
methods (via instance_eval). [2]
PR: ports/131775 [1], ports/135533 [2]
Submitted by: Yoshisato YANAGISAWA <osho@pcc-software.org> [2],
Helmut Schneider <jumper99@gmx.de> [1],
Jaakko Heinonen <jh@saunalahti.fi> [1],
Peter Hofer <ph@desktopbsd.net> [1]
Obtained from: ruby_1_8 svn tree (rev 22679) [2]
This updates also borrows some important bugfixes from Ruby CVS that
is not available in patchlevel 160 yet.
- Drop GC patch support. It is broken with the new ruby version and
seem to require the complete rewriting.
- Implement new knobs for gems and rake (these are included in
ruby 1.9 distribution already). Also move gem bits from
ruby-gems/Makefile.common to bsd.ruby.mk[1]. Now to depend
on gems or rake you should define USE_RUBYGEMS/USE_RAKE
accordingly. Also RAKE_BIN variable is provided for
pointing to the right rake executable.
- Rewrite RUBY_SCHEBANG in awk to eliminate build dependency
on ruby.
Discussed with: Jonathan Weiss <jw@innerewut.de> [1] (gems maintainer)
Tested by: ports@
bsd.commands.mk and can be easily reused within the infrastructure.
- Revert old DESTDIR implementation.
- Add a new, fully chrooted DESTDIR implementation as bsd.destdir.mk.
Sponsored by: Google Summer of Code 2007
Approved by: portmgr (pav)