Skip to content

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also .

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also .
Commits on Sep 02, 2009
@brentr brentr added with-wipe-sites and enable-mbari-api 44e20b3
@brentr brentr add cont.thread #ifdef MBARI_API 1b67079
@brentr brentr Use THREAD_DATA() whereever type is guarenteed by to be Thread or Con…
…tinuation. There's no need to check the type of self, is there?
@brentr brentr hoisted invarients out of thread_mark() loops b5c27cc
@brentr brentr added GC.limit & GC.growth #ifdef MBARI_API 7e9e5c2
@brentr brentr GC_MALLOC_LIMIT should be a function of sizeof(VALUE) f0ddddc
@brentr brentr Don't automatically increase GC_MALLOC_LIMIT to reduce GC as it this …
…can cause unnecessary swapping on systems with little RAM
@brentr brentr no longer bumps malloc_increase by 2*size & accounts for 1st malloc a…
…fter gc
@brentr brentr in gc.c: replaced lev param with stack limit, added STACK_WIPE_SITES …
…to rubysig.h
@brentr brentr factored rb_eval() to reduce stack usage
corrected usage of volatile qualifier
removed race between trap handling and ruby's termination in test/ruby/suicide
@brentr brentr added __line__ and __file__ methods for Proc and Method (from MBARI6) 0f575c3
@brentr brentr alloca's parameter is supposed to be of type size_t 5bafb12
@FooBarWidget Apply the copy-on-write patches. 6378e52
@FooBarWidget Fix a bug. 00ff4e7
@FooBarWidget Fix GC cycles counting. 3b4afb4
@FooBarWidget Apply the RailsBench patches. 64b1c95
@FooBarWidget Rename PROT_NONE in PROT_EMPTY to eval.c because it conflicts with mm…
…ap's PROT_NONE macro definition.
@ice799 ice799 working heap allocated thread stacks, needs GC and extension cleanup yet b8e7a59
@ice799 ice799 adding GC for heap stacks ce65e5f
@ice799 ice799 no more debugging printf and adjust the stupid prealloc define 31329f5
@ice799 ice799 fixing frame dup bug aa81f8c
@tmm1 tmm1 align stack address on OSX, some comments 9003a24
@ice799 ice799 slightly cleaner x86 assembly de51808
@tmm1 tmm1 stack alignment magic bb7f4e5
@tmm1 tmm1 IT WORKS! (code is a mess, needs to be refactored) 53a9de5
@tmm1 tmm1 set rb_curr_thread before attempting any allocations 5b532db
@tmm1 tmm1 remove unneccessary tag/dyna_vars duping 282e0da
@ice799 ice799 Cleanup inline assembly and stack allocation.
- Give stack size constant a better name
- Wrote the 32bit/64bit inline assembly pieces for switching stacks
- Tested on OSX (i386)/Linux i386/Linux x86_64
@ice799 ice799 Some thread stack tweaks.
- Switch to mmap instead of malloc
- Add a guard region to the stack area
- Tested on OSX

Probably should add some sort of stack-area cache to reuse them.
@ice799 ice799 Enhanced signal handlers.
- Adding more debugging output for sigsegv handlers
@ice799 ice799 Rename PROT_NONE because of conflict with mmap's define.s
- PROT_NONE => PROT_EMPTY to avoid mmap conflicts
@ice799 ice799 Fix a stupid typo. 568bf05
@ice799 ice799 Fixing yet another typo. ff4f9ac
@ice799 ice799 Add a stack guard check to fault handlers.
- Hitting the stack guard should trigger either a SIGBUS or a SIGSEGV
- Add a check in the handler to let the app programmer know their stack is too small
@ice799 ice799 Forgot to add SIGBUS's new handler. 0c1a2c9
@ice799 ice799 Let the user specify the thread stack size.
- Start thread stacks out at 1meg by default
- Provide getter/setter for thread stack size for the user to adjust
- Automatically round the size up to the next 16-byte boundary to prevent
  alignment problems later.
@ice799 ice799 Cleanup.
- Removed some comments / commented out code
- Condensed a few code paths
- Fixed a comment typo.
- Added a few extra comments to make some things more clear
@ice799 ice799 Naming convention fix. stacksize => stack_size 2a68ef5
@ice799 ice799 More cleanup.
- Condense the register dumps in signal.c to reduce replicated code
- Fix spacing of register dumps to make them more readable
- Condensed other code paths
- Removed dead code from eval.c (restore/save context)
@ice799 ice799 Last few spacing fixes. dd26733
@ice799 ice799 Free stacks correctly. 7e3958a
@ice799 ice799 Global search replace fail. d8faa60
@ice799 ice799 A more real guard check. 27c3db5
@ice799 ice799 Fix a typo and split out guard check into a different function. 4532ef2
@tmm1 tmm1 Don't reference tags and scopes created before thread start (fixes bu…
…s error in eval)
@FooBarWidget Revert "hoisted invarients out of thread_mark() loops"
This reverts commit b5c27cc.
@FooBarWidget Merge branch 'heap_stacks' into zero_copy_context_switch
@FooBarWidget Fix bugs which cause crashes when threading is involved. 1d2ac6e
@FooBarWidget Disable continuations because they conflict with the zero-copy contex…
…t switching patch.
@FooBarWidget Add a RUBY_ENGINE constant, as discussed on abb335e
@ph7 ph7 Plain vanilla caller_for_all_threads patch 8ee7cd1
@FooBarWidget Move a chunk of code in order to prevent merge problems. cd6e445
Commits on Sep 03, 2009
@FooBarWidget Fix compilation error on x86_64. 13d650d
Commits on Jan 04, 2010
@FooBarWidget Merge branch 'master' into mbari
@FooBarWidget Merge branch 'mbari' into copy_on_write
@FooBarWidget Merge branch 'copy_on_write' into ruby_engine 8f0c95a
@FooBarWidget Merge branch 'copy_on_write' into caller_for_all_threads 67517e0
@FooBarWidget Merge branch 'copy_on_write' into railsbench dbe58d6
@FooBarWidget Merge branch 'copy_on_write' into zero_copy_context_switch
Commits on Jan 18, 2010
@FooBarWidget Fix a crashing bug as reported by issue #9. 7c20f17
Commits on Jun 01, 2010
@FooBarWidget Use atof to parse RUBY_HEAP_SLOTS_GROWTH_FACTOR value. bb77b19
Commits on Jun 02, 2010
@FooBarWidget Merge branch 'master' into mbari 8542447
@FooBarWidget Merge branch 'mbari' into copy_on_write db73b4e
@FooBarWidget Merge branch 'copy_on_write' into caller_for_all_threads b893bce
@FooBarWidget Merge branch 'copy_on_write' into railsbench 3351a21
@FooBarWidget Merge branch 'copy_on_write' into ruby_engine 043e50e
@FooBarWidget Merge branch 'copy_on_write' into zero_copy_context_switch 9f6078b
@FooBarWidget FreeBSD does not allow using more than 4 MB of stack even though getr…
…limit() reports a much higher amount. Limiting to 4 MB gets rid of 'Illegal instruction' crashes.
@FooBarWidget Merge branch 'mbari' into copy_on_write ce457cb
@FooBarWidget Merge branch 'copy_on_write' into caller_for_all_threads f5cc508
@FooBarWidget Merge branch 'copy_on_write' into railsbench 491a3d8
@FooBarWidget Merge branch 'copy_on_write' into zero_copy_context_switch ca2f5e4
Commits on Feb 11, 2011
@FooBarWidget Merge branch 'master' into mbari
@FooBarWidget * ext/rational/rational.c: Added to provide a fast implementation
  of Fixnum#gcd (and maybe some others in the future) in C.  The
  base code was submitted by Kurt Stephens. [Feature #2561]

* ext/rational/lib/rational.rb: Moved from lib/rational.rb.  Make
  overall code optimization; submitted by Kurt Stephens.
  [Feature #2561]

* test/rational/test_rational.rb, test/rational/test_rational2.rb:
  Add tests for Rational, ported from trunk.

* test/rational/test_fixnum_gcd.rb: Add a test for Integer#gcd.
  Case values are only provided for i386 and amd64 at the moment;
  submitted by Kurt Stephens. [Feature #2561]

git-svn-id: b2dd03c8-39d4-4d8f-98ff-823fe69b080e


@FooBarWidget Fix a typo in the OpenSSL extension. Thanks Issue #39. 831b0f7
@FooBarWidget Merge branch 'mbari' into copy_on_write 4880b86
@FooBarWidget Merge branch 'copy_on_write' into caller_for_all_threads c993bfc
@FooBarWidget Merge branch 'copy_on_write' into railsbench 28ce77b
@FooBarWidget Merge branch 'copy_on_write' into ruby_engine 78b809a
@FooBarWidget Merge branch 'copy_on_write' into zero_copy_context_switch cb59d68
@FooBarWidget * ext/zlib/zlib.c (zstream_append_input2): add RB_GC_GUARD.
  This caused failure when test/csv is executed with GC.stress = true.

git-svn-id: b2dd03c8-39d4-4d8f-98ff-823fe69b080e


@FooBarWidget Free thread stacks when they die. Patch by Kurt Stephens. Issue #57. 9d7a0ee
@FooBarWidget Merge branch 'railsbench' into merge 98114f5
@FooBarWidget Merge branch 'ruby_engine' into merge e0ebd2d
@FooBarWidget Merge branch 'zero_copy_context_switch' into merge fe5a06a
@FooBarWidget Merge branch 'bugfix_backport' into merge 41c3664
@FooBarWidget Add installer, tcmalloc and system_allocator stuff. 63cc143
@FooBarWidget tcmalloc doesn't support ARM. 18164cd
@FooBarWidget Fix Rakefile. cf9466f
@FooBarWidget Include REE version number in Ruby version string. 7627364
@FooBarWidget Update the documentation 28748fc
@FooBarWidget Optimize for size. f676acf
@FooBarWidget Fix patch generation for zero_copy_context_switch branch. e11f6f9
@FooBarWidget Disable the zero-copy context switching patch by default; it still ha…
…s some issues.

In particular, the MBARI stack wiping code needs operate on thread stacks too.
The whole thing needs more testing on x86_64.
@FooBarWidget Bump version to 20090903. 4c147e9
@FooBarWidget Enable MBARI API by default. 3675f11
@FooBarWidget Display MBARI stack wipe sites in version string. 2abceca
@FooBarWidget Bump version to 20090906. 256fc63
@FooBarWidget Change prefix of Debian package to /usr/local. 992e09d
@FooBarWidget Bump version to 20090928. f2b0e69
@FooBarWidget Check for 'make' as required dependency. Fixes issue #4. 1173e74
@FooBarWidget Do not compile with -fno-stack-protector and do compile with -fno-str…
…ict-aliasing. Fixes issues #2 and #3.
@FooBarWidget Bump version number to B. 64a6e79
@FooBarWidget Upgrade to tcmalloc 1.4. c90a588
@FooBarWidget Install the newer 'pg' gem instead of 'postgres'. Fixes issue #5. a2d348a
@FooBarWidget When running test_installer, symlink installer.rb to the test directo…
…ry so that changes are immediately picked up.
@FooBarWidget Disable tcmalloc on Snow Leopard, it still has issues. 9742bd9
@FooBarWidget Update manual installation instructions 85c151c
@FooBarWidget Recompile the Linux x86_64 bootstrap binary so that it works on syste…
…ms with an older glibc than 2.7.
@FooBarWidget Alphabetical versioning isn't such a good idea after all, Debian pack…
…ages can't handle them. Switch to a version numbering system consisting of year + sequence number.
@FooBarWidget Install documentation as well by default, and bump version to 2010.01. 6a2477b
@FooBarWidget Compile without -fno-strict-aliasing because it's no longer necessary…
… now that util.c is fixed. Use -O2 because -Os because O2 turns out to be faster after all. Fixes issues #16 and #17.
@FooBarWidget When generating the Debian package, do not strip the binaries so that…
… Joe and Aman's Memprof works out of the box. Fixes issue #14.
@FooBarWidget When installing developer documentation, DESTDIR should be respected. a4d5045
@trevorturk trevorturk Documentation should make mention of installer options 50bfc58
@FooBarWidget Update manual installation instructions: document the fast threading …
…patch and replace -Os -fno-strict-aliasing with -O2
@FooBarWidget Document the fact that the fast threading patch only works on x86 and…
… x86_64.
@FooBarWidget Add 'patch' utility as dependency. Fixes issue #10. a1438cb
@FooBarWidget Update documentation: SIGVTALARM patch is now merged upstream. d45f7db
@FooBarWidget When compiling Ruby, create a so that the make command can be…
… easily reproduced.
@FooBarWidget Fix some issues in the manual. ca5b7b7
@FooBarWidget Fix generation. b1de9d3
@FooBarWidget Fix iconv compilation on FreeBSD. 0799829
@FooBarWidget Add a bootstrap binary for x86_64 FreeBSD 8. 35dfcfa
@FooBarWidget Remove empty fields in the Debian package specification, apparently h…
…aving empty fields can cause problems with some versions of Apt.
@FooBarWidget Unset GEM_HOME and GEM_PATH in before running the installer 5e89767
@FooBarWidget Upgrade to RubyGems 1.3.7 173c2cb
@FooBarWidget Bump version to 2010.02 57524bb
@FooBarWidget On FreeBSD, always link to pthread and don't use more than 4 MB of st…

- For some reason FreeBSD does not allow dlopen()ing native extensions
  that are linked to pthread if the main executable isn't.
- FreeBSD does not allow using more than 4 MB of stack even though getrlimit()
  reports a much higher amount. Limiting to 4 MB gets rid of
  'Illegal instruction' crashes.
@FooBarWidget Upgrade to RubyGems 1.5.2. b487a4c
@FooBarWidget Bump version to 2011.01. 5a8d666
@FooBarWidget Upgrade to tcmalloc 1.7. 8350b43
@FooBarWidget The installer shouldn't install sqlite3-ruby and fastthread anymore. …
…The former has been renamed and the latter is no longer necessary.
@jpr5 jpr5 Re-incorporate "mutual join deadlock" patch fix.
Observed odd mutex behaviour in a threaded rack app while ab'ing it for performance
testing.  Discovered that this issue had already been addressed: demonstrates the issue.  I used the two patches at to solve it.
@FooBarWidget Merge branch 'bugfix_backport' into merge 31d6038
@FooBarWidget Merge branch 'merge' into release 81bae00
@FooBarWidget No need to fix sqlite3-ruby permissions anymore. Incidentally this al…
…so fixes issue #42.
@FooBarWidget When looking for a command in PATH, one should also check whether it'…
…s a regular file instead of just checking the executable bit, in order to avoid detecting directories as commands. Fixes issue #59.
Commits on Feb 12, 2011
@FooBarWidget Add Bundler to list of useful gems. 6834860
Commits on Feb 19, 2011
@FooBarWidget Merge branch 'master' into bugfix_backport
@FooBarWidget Merge branch 'bugfix_backport' into merge 877a805
@FooBarWidget Merge branch 'merge' into release 412da8c
Commits on Feb 21, 2011
@FooBarWidget Bump version to 2011.02. d03a455
Commits on Feb 23, 2011
@FooBarWidget Revert "Re-incorporate "mutual join deadlock" patch fix."
This reverts commit 189d67e.
@nobu nobu * eval.c (rb_thread_join), ext/thread/thread.c (wake_one): adjusts
  targets of rest waiting threads to join.  [ruby-core:23457]

git-svn-id: svn+ssh:// b2dd03c8-39d4-4d8f-98ff-823fe69b080e
@FooBarWidget Merge branch 'bugfix_backport' into merge 8a47963
@FooBarWidget Merge branch 'merge' into release c889673
@FooBarWidget Compile everything with -I/opt/local/include and -L/opt/local/lib so …
…that we properly link the openssl extension against MacPort's OpenSSL, otherwise Ruby may crash on OS X when it attemps to load two different versions of OpenSSL.
Commits on Feb 24, 2011
@FooBarWidget Set the installer script's encoding to binary so that it works correc…
…tly on Ruby 1.9.
@FooBarWidget Bump version to 2011.03. 16c22cf