Alan Wu
7c08538aa3
Cleanup diff against upstream. Add comments
...
I did a `git diff --stat` against upstream and looked at all the files
that are outside of YJIT to come up with these minor changes.
2021-10-20 18:19:42 -04:00
Aaron Patterson
41f405c486
Remove the scraper
...
Now that we're using the jit function entry point, we don't need the
scraper. Thank you for your service, scraper. ❤️
2021-10-20 18:19:38 -04:00
Aaron Patterson
30f20d7c38
Remove some MicroJIT vestiges
...
Just happened to run across this, so lets fix them
2021-10-20 18:19:36 -04:00
Alan Wu
5d834bcf9f
YJIT: lazy polymorphic getinstancevariable
...
Lazily compile out a chain of checks for different known classes and
whether `self` embeds its ivars or not.
* Remove trailing whitespaces
* Get proper addresss in Capstone disassembly
* Lowercase address in Capstone disassembly
Capstone uses lowercase for jump targets in generated listings. Let's
match it.
* Use the same successor in getivar guard chains
Cuts down on duplication
* Address reviews
* Fix copypasta error
* Add a comment
2021-10-20 18:19:31 -04:00
Maxime Chevalier-Boisvert
fe3bd57007
Remove trailing whitespaces
2021-10-20 18:19:31 -04:00
Jose Narvaez
4e2eb7695e
Yet Another Ruby JIT!
...
Renaming uJIT to YJIT. AKA s/ujit/yjit/g.
2021-10-20 18:19:31 -04:00
Maxime Chevalier-Boisvert
2e561ff255
Restore interpreter regs in ujit hook. Implement leave bytecode.
2021-10-20 18:19:28 -04:00
Alan Wu
3c7251b41b
Tally instructions when taking side exists for --ujit-stats
...
shopify/ruby#29
Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
2021-10-20 18:19:28 -04:00
Maxime Chevalier-Boisvert
e4c65ec49c
Refactor uJIT code into more files for readability
2021-10-20 18:19:26 -04:00
Alan Wu
b75169a440
Fix typo
2021-10-20 18:19:26 -04:00
Alan Wu
5f9beb9b1b
Include disassembly in MicroJIT scraper output
2021-10-20 18:19:26 -04:00
Alan Wu
11c1daea17
Add to the MicroJIT scraper an example that passes ec
2021-10-20 18:19:25 -04:00
Alan Wu
7662653b4c
Fix compilation for OPT_THREADED_CODE=2
2021-10-20 18:19:24 -04:00
Alan Wu
2790428e55
Zero sized array are not standard C
2021-10-20 18:19:24 -04:00
Alan Wu
a3e58f4df8
Compile with MicroJIT disabled when scrape fails
...
This is just so we can build successfully on -O0 and other cases that
are not supported by the code scraper.
2021-10-20 18:19:24 -04:00
Alan Wu
f3c961f273
endbr64 is fine
2021-10-20 18:19:24 -04:00
Alan Wu
453218b272
Preliminary GNU/Linux support for code scraper
...
Let's see if this works on CI
2021-10-20 18:19:24 -04:00
Alan Wu
3d87eadf16
Refactor ujit_examples.h generator. Remove dwarfdump dependency
2021-10-20 18:19:24 -04:00
Maxime Chevalier-Boisvert
3739588811
Remove PC argument from ujit instructions
2021-10-20 18:19:23 -04:00
Alan Wu
16c5ce863c
Yeah, this actually works!
2021-10-20 18:19:22 -04:00
Alan Wu
cec197696f
Add example handler for ujit and scrape it from vm.o
2021-10-20 18:19:22 -04:00
Nobuyoshi Nakada
6c74976aef
Remove Test::Unit::TestCase.make_my_diffs_pretty!
...
`Test::Unit::CoreAssertions#mu_pp` is defined always using
`pretty_inspect`.
2021-10-18 17:36:06 +09:00
Nobuyoshi Nakada
d1b8544b4d
Remove Test::Unit::Assertions#exception_details
...
Never used since fa0f3eff228bb26de6d5b0e1238b1f358165dbd0.
2021-10-18 17:36:06 +09:00
Nobuyoshi Nakada
c7eac1be51
Retry hung up tests verbosely
2021-10-17 22:40:31 +09:00
Nobuyoshi Nakada
13716898df
Retry hung tests after parallel runs
2021-10-17 16:33:58 +09:00
Nobuyoshi Nakada
478187e9a3
Timeout parallel test worker processes
2021-10-17 16:33:58 +09:00
Nobuyoshi Nakada
5de6e25144
Replace unpack with unpack1
2021-10-17 00:48:45 +09:00
Nobuyoshi Nakada
855db8e9ce
Use __dir__
2021-10-15 19:42:39 +09:00
Nobuyoshi Nakada
370fff98ce
Prefer require_relative
2021-10-15 18:47:25 +09:00
Nobuyoshi Nakada
679054208e
Use __dir__
2021-10-15 15:07:31 +09:00
Hiroshi SHIBATA
9e86a60306
Removed redundant digest namespace
2021-10-14 14:07:50 +09:00
Hiroshi SHIBATA
3265af2f9e
separate pure ruby location under the digest/* extensions
2021-10-14 13:31:45 +09:00
Hiroshi SHIBATA
13772caee2
Move pure ruby files under the ext/gemname/lib directory.
2021-10-14 13:23:45 +09:00
Pavel Rosický
94882df3a2
[ruby/digest] jruby support
...
https://github.com/ruby/digest/commit/2e9dc14693
2021-10-12 20:46:13 +09:00
Takashi Kokubun
b5f0e20936
Add comments in sync_default_gems.rb
...
to ease the maintenance of ruby-commit-hook/bin/update-default-gem.sh
2021-10-10 23:49:15 -07:00
Takashi Kokubun
69cedee2a6
chmod +x tool/sync_default_gems.rb
...
I'm too lazy to start the command with `ruby`.
2021-10-10 23:38:51 -07:00
Nobuyoshi Nakada
cec61d16d2
Run JIT tests first when random order instead of no-sort
2021-10-10 19:23:52 +09:00
Nobuyoshi Nakada
fb9ea391cf
Default the test order to random
2021-10-10 18:30:33 +09:00
Nobuyoshi Nakada
c423cc932e
Refactor Test::Unit::CoreAssertions#assert_nothing_raised
...
* Separate exception classes to be rescued or reraised
* Use the filtered backtrace in the failure message
* Raise a new `AssertionFailedError` with the original backtrace
2021-10-09 18:14:21 +09:00
Nobuyoshi Nakada
fc913ad21d
Exclude also core_assertions.rb from backtraces
2021-10-09 16:17:37 +09:00
Nobuyoshi Nakada
3932227d96
Unify Test::Unit::Assertions#message
...
Merge `Test::Unit::CoreAssertions#message`.
2021-10-09 16:17:01 +09:00
Nobuyoshi Nakada
489c22b17f
Let Test::Unit::CoreAssertions::AllFailures#for yield the key
...
Similar to `Test::Unit::CoreAssertions::AllFailures#foreach`.
2021-10-09 14:28:27 +09:00
OKURA Masafumi
7e506716d2
Newly generated gems require Ruby 2.6.0
...
In 2021, Ruby 2.5 and older are EOL.
We can set the default required Ruby version to 2.6.0 to
encourage people to use newer Ruby.
If the command is executed with old Ruby, it falls back to 2.3.0.
It's still possible to create a gem for older Ruby just by changing
two lines of code (one in gemspec and another is in rubocop.yml).
2021-10-09 09:07:47 +09:00
Nobuyoshi Nakada
7c98e673d7
Fix a typo since 688f2e1a893e04457a1a5aa3577b13f74b2bc080
2021-10-05 18:24:34 +09:00
Koichi Sasada
bc96a45f12
introduce debug.gem
...
For the `test-bundled-gems`, make `debug.so` with extconf.rb and
`make` command directly because `rake-compiler` assume ruby is
installed (but `test-bundled-gems` can run without installation).
2021-10-05 02:07:33 +09:00
Hiroshi SHIBATA
cbb115213c
Enabled to build extensions with the bundled gems
2021-10-05 02:07:33 +09:00
Nobuyoshi Nakada
b44c5187b4
Expose instruction information for debuggers [Feature #18026 ]
2021-10-04 09:43:09 -07:00
Nobuyoshi Nakada
c4570acc86
Refactor ordering of tests
...
* Split the sorting types into classes.
* Apply the same sorting to method sorting under the parallel
test.
2021-10-04 20:46:47 +09:00
Nobuyoshi Nakada
44b2e32fb6
Fix a typo
2021-10-04 20:44:38 +09:00
Nobuyoshi Nakada
3842e723da
Leave builddir absolute
...
So that rubygems installer will work to build extension gems.
2021-10-04 20:04:38 +09:00