-
-
Notifications
You must be signed in to change notification settings - Fork 925
Comparing changes
Open a pull request
base repository: jruby/jruby
base: 3b3bea1b9352
head repository: jruby/jruby
compare: 04c3e9787bcc
Commits on Oct 5, 2015
-
using either rackup, puma or torquebox as server and sinatra as web framework, running from filesystem as is. further using bundler and having plenty of jar dependencies both locked down (Gemfile.lock and Jars.lock)
Configuration menu - View commit details
-
Copy full SHA for 09d15b9 - Browse repository at this point
Copy the full SHA 09d15b9View commit details -
make clean behave more as you expect it
it does delete bin/jruby and lib/jni but will recreate them immediately. this allows to run ```mvn clean install``` and have everything in place in fresh manner.
Configuration menu - View commit details
-
Copy full SHA for b799bff - Browse repository at this point
Copy the full SHA b799bffView commit details -
Enum#values is a new array every time, so avoid it for Visibility.
Several places used Visibility.values to get a list of all Visibilities, with the result that they created a new array every time. There may be other enums with the same usage but they have not shown up in my profiles.
Configuration menu - View commit details
-
Copy full SHA for b33d760 - Browse repository at this point
Copy the full SHA b33d760View commit details -
Configuration menu - View commit details
-
Copy full SHA for 52ab58d - Browse repository at this point
Copy the full SHA 52ab58dView commit details -
Share evalType threadlocal between mixed mode and compiled block.
Fixes #3368 evalType gets tweaked at various stages of block execution, and when there were two copies in MixedModeIRBlockBody and its contained CompiledIRBlockBody, they weren't being set consistently in both places. This change makes them share the threadlocal and fixes the issues in #3368 leading to eval not scoping right. The root problem was that evalType is used to indicate that a given body is being used for an eval, which in this case meant it was being used for a Class.new class eval. Without the flag, the search for a method def scope would walk past the Class.new block and out into the containing class, defining methods in the wrong place. TODO: Clean up state like evalType and do a better job of unifying the different container objects for block bodies.
Configuration menu - View commit details
-
Copy full SHA for e9d5c94 - Browse repository at this point
Copy the full SHA e9d5c94View commit details -
Configuration menu - View commit details
-
Copy full SHA for a9cc1b7 - Browse repository at this point
Copy the full SHA a9cc1b7View commit details -
Configuration menu - View commit details
-
Copy full SHA for eef0e41 - Browse repository at this point
Copy the full SHA eef0e41View commit details -
Configuration menu - View commit details
-
Copy full SHA for d223041 - Browse repository at this point
Copy the full SHA d223041View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7103905 - Browse repository at this point
Copy the full SHA 7103905View commit details -
[Truffle] Check the length of the Hash while iterating.
* It could change if mutated while iterating. * Rubinius #each_item expects this check at least in #select!.
Configuration menu - View commit details
-
Copy full SHA for ecb7abd - Browse repository at this point
Copy the full SHA ecb7abdView commit details -
Configuration menu - View commit details
-
Copy full SHA for 82db605 - Browse repository at this point
Copy the full SHA 82db605View commit details -
5
Configuration menu - View commit details
-
Copy full SHA for 7a19cab - Browse repository at this point
Copy the full SHA 7a19cabView commit details -
2
Configuration menu - View commit details
-
Copy full SHA for 9a4bf4f - Browse repository at this point
Copy the full SHA 9a4bf4fView commit details
Commits on Oct 6, 2015
-
Configuration menu - View commit details
-
Copy full SHA for 7292d31 - Browse repository at this point
Copy the full SHA 7292d31View commit details -
Configuration menu - View commit details
-
Copy full SHA for 50ce6bf - Browse repository at this point
Copy the full SHA 50ce6bfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 39d6355 - Browse repository at this point
Copy the full SHA 39d6355View commit details -
Revert "[Truffle] proc.binding.local_variable_get PE just fines."
This reverts commit eef0e41.
Configuration menu - View commit details
-
Copy full SHA for 813a0cd - Browse repository at this point
Copy the full SHA 813a0cdView commit details -
Configuration menu - View commit details
-
Copy full SHA for bbfadac - Browse repository at this point
Copy the full SHA bbfadacView commit details -
7
Configuration menu - View commit details
-
Copy full SHA for dffe5aa - Browse repository at this point
Copy the full SHA dffe5aaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 63fb366 - Browse repository at this point
Copy the full SHA 63fb366View commit details -
Configuration menu - View commit details
-
Copy full SHA for f2020e0 - Browse repository at this point
Copy the full SHA f2020e0View commit details -
TL;DR define_method defined methods will execute ~2x faster in common…
… cases. This optimization will convert define_method from being a block and fully promoting it to a method (only for JIT now). Once we unify InterpretedIRMethod and MixedModeIRMethod we can enable this for full builds in -X-C as well. This ended up have more issues than anticipated. block_given? in particular refers to the block outside the define_method block and not to any block passed to that newly defined method. This required the creation of a new Method type DefineMethodMethod. The biggest limitation to this optimization is that if the block for define_method references any variables in a parent scope then we will not perform the optimization. This is mildly undesirable and for read-only lvar access I think we can hoist the value from the parent scope and pass it into our converted method. This seemed like a ton of extra work so it is a blue sky future. There will be a future set of commit(s) to make this optimization trigger more often. Right now if the new method has contained closures which acceess lvars outside of their current scope then we do not perform this opt. The next round of optimization will involve calculating whether nested closures can escape the define_method only. Before: Calculating ------------------------------------- define_method w/ capture 56.284k i/100ms def 104.909k i/100ms define_method 63.224k i/100ms ------------------------------------------------- define_method w/ capture 1.115M (± 5.8%) i/s - 5.572M def 3.409M (± 9.3%) i/s - 16.890M define_method 1.086M (± 4.8%) i/s - 5.437M After: system ~/work/jruby master * 1412% jruby ../snippets/define_method3.rb Calculating ------------------------------------- define_method w/ capture 58.167k i/100ms def 108.644k i/100ms define_method 92.163k i/100ms ------------------------------------------------- define_method w/ capture 1.171M (± 6.4%) i/s - 5.875M def 3.241M (± 8.1%) i/s - 16.079M define_method 2.795M (± 8.7%) i/s - 13.917M MRI: system ~/work/jruby master * 1408% mri22 ../snippets/define_method3.rb Calculating ------------------------------------- define_method w/ capture 46.709k i/100ms def 63.690k i/100ms define_method 46.901k i/100ms ------------------------------------------------- define_method w/ capture 832.886k (± 6.4%) i/s - 4.157M def 1.732M (± 7.8%) i/s - 8.662M define_method 856.637k (± 6.6%) i/s - 4.268M
Configuration menu - View commit details
-
Copy full SHA for 3c3055d - Browse repository at this point
Copy the full SHA 3c3055dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1176a10 - Browse repository at this point
Copy the full SHA 1176a10View commit details -
Configuration menu - View commit details
-
Copy full SHA for e5e7eb9 - Browse repository at this point
Copy the full SHA e5e7eb9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8c52582 - Browse repository at this point
Copy the full SHA 8c52582View commit details -
Configuration menu - View commit details
-
Copy full SHA for 43278c6 - Browse repository at this point
Copy the full SHA 43278c6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 04c3e97 - Browse repository at this point
Copy the full SHA 04c3e97View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff 3b3bea1b9352...04c3e9787bcc