summaryrefslogtreecommitdiff
path: root/common.mk
AgeCommit message (Collapse)Author
2021-10-20Update common.mkMaxime Chevalier-Boisvert
2021-10-20Remove token_paste.h dep from common.mkMaxime Chevalier-Boisvert
2021-10-20update depsAaron Patterson
2021-10-20Get rid of dependency on rb_call_cacheAlan Wu
2021-10-20YJIT: lazy polymorphic getinstancevariableAlan Wu
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-20Yet Another Ruby JIT!Jose Narvaez
Renaming uJIT to YJIT. AKA s/ujit/yjit/g.
2021-10-20uJIT: Implement opt_getinlinecacheAlan Wu
* ujit: implement opt_getinlinecache Aggressively bet that writes to constants don't happen and invalidate all opt_getinlinecache blocks on any and all constant writes. Use alignment padding on block_t to track this assumption. No change to sizeof(block_t). * Fix compile warnings when not RUBY_DEBUG * Fix reversed condition * Switch to st_table to keep track of assumptions Co-authored-by: Aaron Patterson <aaron.patterson@gmail.com> Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com>
2021-10-20Ujit bug fixesAlan Wu
* uJIT: don't compile tailcalls * Don't compile calls to protected methods We need to generate extra code to check whether the call goes through if we want to support these. * Fix copy pasta * Update blockids in branches * Update dependencies
2021-10-20Tie lifetime of uJIT blocks to iseqsAlan Wu
* Tie lifetime of uJIT blocks to iseqs Blocks weren't being freed when iseqs are collected. * Add rb_dary. Use it for method dependency table * Keep track of blocks per iseq Remove global version_tbl * Block version bookkeeping fix * dary -> darray * free ujit_blocks * comment about size of ujit_blocks
2021-10-20Update dependenciesAlan Wu
2021-10-20Directly link libcapstone for easier developmentAaron Patterson
This lets us use libcapstone directly from miniruby so we don't need a Ruby Gem to to dev work. Example usage: ```ruby def foo(x) if x < 1 "wow" else "neat" end end iseq = RubyVM::InstructionSequence.of(method(:foo)) puts UJIT.disasm(iseq) 100.times { foo 1 } puts UJIT.disasm(iseq) ``` Then in the terminal ``` $ ./miniruby test.rb == disasm: #<ISeq:foo@test.rb:1 (1,0)-(7,3)> (catch: FALSE) local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) [ 1] x@0<Arg> 0000 getlocal_WC_0 x@0 ( 2)[LiCa] 0002 putobject_INT2FIX_1_ 0003 opt_lt <calldata!mid:<, argc:1, ARGS_SIMPLE> 0005 branchunless 10 0007 putstring "wow" ( 3)[Li] 0009 leave ( 7)[Re] 0010 putstring "neat" ( 5)[Li] 0012 leave ( 7)[Re] == ISEQ RANGE: 10 -> 10 ======================================================== 0x0: movabs rax, 0x7fe816e2d1a0 0xa: mov qword ptr [rdi], rax 0xd: mov r8, rax 0x10: mov r9, rax 0x13: mov r11, r12 0x16: jmp qword ptr [rax] == ISEQ RANGE: 0 -> 7 ========================================================== 0x0: mov rax, qword ptr [rdi + 0x20] 0x4: mov rax, qword ptr [rax - 0x18] 0x8: mov qword ptr [rdx], rax 0xb: mov qword ptr [rdx + 8], 3 0x13: movabs rax, 0x7fe817808200 0x1d: test byte ptr [rax + 0x3e6], 1 0x24: jne 0x3ffff7b 0x2a: test byte ptr [rdx], 1 0x2d: je 0x3ffff7b 0x33: test byte ptr [rdx + 8], 1 0x37: je 0x3ffff7b 0x3d: mov rax, qword ptr [rdx] 0x40: cmp rax, qword ptr [rdx + 8] 0x44: movabs rax, 0 0x4e: movabs rcx, 0x14 0x58: cmovl rax, rcx 0x5c: mov qword ptr [rdx], rax 0x5f: test qword ptr [rdx], -9 0x66: jne 0x3ffffd5 ``` Make sure to `brew install pkg-config capstone`
2021-10-20Update dependenciesAlan Wu
2021-10-20Refactor uJIT code into more files for readabilityMaxime Chevalier-Boisvert
2021-10-20Update dependenciesAlan Wu
2021-10-20Update dependencyAlan Wu
2021-10-20Run ruby tool/update-deps --fixAlan Wu
2021-10-20Refactor ujit_examples.h generator. Remove dwarfdump dependencyAlan Wu
2021-10-20Don't assume srcdir is cwdAlan Wu
2021-10-20Add function to print strings from generated codeMaxime Chevalier-Boisvert
2021-10-20Fix typoAlan Wu
2021-10-20Fix dependency for ujit_examples.hAlan Wu
Once this works on GNU/Linux this could be done semi automatically.
2021-10-20Add new files, ujit_compile.c, ujit_compile.hMaxime Chevalier-Boisvert
2021-10-20Progress on x86 assembler. Encode a few simple instructions.Maxime Chevalier-Boisvert
2021-10-20Progress on porting x86 assembler for MicroJITMaxime Chevalier-Boisvert
2021-10-20Yeah, this actually works!Alan Wu
2021-10-12Suppress some messages on building mjit headerKazuhiro NISHIYAMA
2021-10-05marshal.c Marshal.load accepts a freeze: true option.Jean Boussier
Fixes [Feature #18148] When set, all the loaded objects are returned as frozen. If a proc is provided, it is called with the objects already frozen.
2021-10-05ruby tool/update-deps --fix卜部昌平
Notes: Merged: https://github.com/ruby/ruby/pull/4909
2021-10-05introduce debug.gemKoichi Sasada
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). Notes: Merged: https://github.com/ruby/ruby/pull/4804
2021-10-02Restore Hash#compare_by_identity mode [Bug #18171]Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/4893
2021-09-28lldb: Show encoding of String [ci skip]Nobuyoshi Nakada
2021-09-26Fix dependency of verconf.hNobuyoshi Nakada
template/verconf.h.tmpl reads rbconfig.rb.
2021-09-21Explicit the target of do-install-all as the same as dont-install-allNobuyoshi Nakada
2021-09-21Ripper source on mswinNobuyoshi Nakada
* Get rid of command substitution for cmd.exe. * Separate RM1 command to remove single file sans directory.
2021-09-20Add gvl and fiber assertions to scheduler interface to catch invalid usage.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/4656
2021-09-11Check ruby-related includes only [ci skip]Nobuyoshi Nakada
2021-09-11Removed minitest dir from make taskHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/4813
2021-09-10common.mk: update dependencies卜部昌平
Notes: Merged: https://github.com/ruby/ruby/pull/4815
2021-08-27Update the list of replacing objects under missingNobuyoshi Nakada
2021-08-27Use C99-defined macros to classify a floating-point numberNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/4783
2021-08-25tool/test-bundled-gems.rb: Use the bundled RBS code to test TypeProfYusuke Endoh
Formerly, TypeProf was tested with the latest RBS code during `make test-bundled-gems`. However, when a new version of rbs is released, and if it is incompatible with TypeProf, `make test-bundled-gems` starts failing, which was annoying. By this change, TypeProf is tested with the bundled version of RBS. Notes: Merged: https://github.com/ruby/ruby/pull/4774
2021-08-24Revert "tool/test-bundled-gems.rb: Use the bundled RBS code to test TypeProf"Yusuke Endoh
This reverts commit 22deda43cb98aa3cee48d0bebbff7c4db1d7652a. It was incomplete. Sorry!
2021-08-24tool/test-bundled-gems.rb: Use the bundled RBS code to test TypeProfYusuke Endoh
Formerly, TypeProf was tested with the latest RBS code during `make test-bundled-gems`. However, when a new version of rbs is released, and if it is incompatible with TypeProf, `make test-bundled-gems` starts failing, which was annoying. By this change, TypeProf is tested with the bundled version of RBS.
2021-08-24Moved exported symbols in internal/util.h to ruby/util.hNobuyoshi Nakada
[Feature #18051] Notes: Merged: https://github.com/ruby/ruby/pull/4763
2021-08-13ruby/spec no longer needs webrick to runBenoit Daloze
2021-08-07Group commands on GitHub ActionsNobuyoshi Nakada
2021-07-27Change Unicode Emoji Version from 13.0 to 13.1Martin Dürst
2021-07-19Remove unneeded quotes [ci skip]Nobuyoshi Nakada
2021-07-16Add debug assertion in `rb_funcall*` that the current thread has the gvl.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/4657
2021-07-08Update common.mk to deal with Unicode version 13.0.0Martin Dürst
- Change Unicode version to 13.0.0 - Change Emoji version to 13.0 - Adjust to moved locations of emoji-data.txt and emoji-variation-sequences.txt by splitting these files from $(UNICODE_EMOJI_FILES) and putting them into a new group $(UNICODE_UCD_EMOJI_FILES)