aboutsummaryrefslogtreecommitdiffstats
path: root/common.mk
Commit message (Collapse)AuthorAgeFilesLines
* Make the commit of updated bundled_gems fileNobuyoshi Nakada2021-02-161-0/+2
|
* Added Thread::Backtrace.limit [Feature #17479]Nobuyoshi Nakada2021-02-151-0/+2
|
* Add a benchmark-driver runner for Ractor (#4172)Takashi Kokubun2021-02-101-1/+1
| | | | | | | | | | | | | * Add a benchmark-driver runner for Ractor * Process.clock_gettime(Process:CLOCK_MONOTONIC) could be slow in Ruby 3.0 Ractor * Fetching Time could also be slow * Fix a comment * Assert overriding a private method
* Expose scheduler as public interface & bug fixes. (#3945)Samuel Williams2021-02-091-7/+13
| | | | | | | | | * Rename `rb_scheduler` to `rb_fiber_scheduler`. * Use public interface if available. * Use `rb_check_funcall` where possible. * Don't use `unblock` unless the fiber was non-blocking.
* Ignore warnings when transforming preprocessed headerNobuyoshi Nakada2021-02-011-1/+1
| | | | | For already preprocessed header, -Werror=misleading-indentation doesn't make sense.
* CFLAGS includes ARCH_FLAGNobuyoshi Nakada2021-01-261-1/+1
|
* Sort autogenerated dependencies [ci skip]Nobuyoshi Nakada2021-01-231-1/+1
|
* Remove common output directoryNobuyoshi Nakada2021-01-221-1/+1
|
* Skip updating exts in also test-spec to reduce the turnaround time (#4089)Takashi Kokubun2021-01-181-1/+1
| | | | | | Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> Partially reversing a4f3e1762aa195969ace000ac0dc8d300dda85cb like 21df4dce5308bb0e04e09dc654cdc92af000caf6. We usually run them through make check which has the dependency, and test-all and test-spec without the dependency are useful for running only individual tests.
* dtoa.c: make thread-safe by using atomic CASNobuyoshi Nakada2021-01-101-0/+2
|
* set RUBY_ON_BUG on runruby rule.Koichi Sasada2021-01-051-1/+1
| | | | | set RUBY_ON_BUG='gdb -x $(srcdir)/.gdbinit -p' to catch SEGV on `make runruby` rule.
* Commented out the sh-specific code, in cmd.exeNobuyoshi Nakada2021-01-051-1/+2
|
* Add a missing dependencyTakashi Kokubun2021-01-031-1/+1
|
* Add -v to make benchmarkTakashi Kokubun2021-01-011-1/+1
| | | | I simply can't tell which of compare-ruby and built-ruby is what.
* Improve performance some Float methods [Feature #17498] (#4018)S.H2021-01-011-4/+4
|
* Moved time.rb to timev.rbNobuyoshi Nakada2020-12-311-3/+3
|
* Add time.rb as builtinNobuyoshi Nakada2020-12-311-0/+4
|
* Make more silent when -s on GNU makeNobuyoshi Nakada2020-12-291-1/+1
|
* transcode-tblgen.rb: make silent a little when just -vNobuyoshi Nakada2020-12-291-0/+1
|
* Update help of sync-default-gemsTakashi Kokubun2020-12-281-1/+1
|
* Bypass check for warning_category on internal callsNobuyoshi Nakada2020-12-281-0/+1
|
* Do not include external library sources into packagesNobuyoshi Nakada2020-12-271-1/+2
|
* Expose atomic operation macros with RUBY prefixNobuyoshi Nakada2020-12-241-0/+36
| | | | | Now we need atomic operations, which are lighter than mutex, more widely for extension libraries because of Ractor.
* TracePoint.new(&block) should be ractor-localKoichi Sasada2020-12-221-0/+1
| | | | | TracePoint should be ractor-local because the Proc can violate the Ractor-safe.
* should use owned_p instead of locked_pKoichi Sasada2020-12-211-0/+1
| | | | | It should raise an error if the same thread tris to call receive/receive_if.
* make RB_DEBUG_COUNTER_INC()_thread-safeKoichi Sasada2020-12-171-0/+1
|
* [memory_view] Make MemoryView API Ractor-safe (#3911)Kenta Murata2020-12-161-0/+4
| | | | | | | | | | | * memory_view.c: make Ractor-safe * test/ruby/test_memory_view.rb: Add test_ractor * memory_view: fix typo * memory_view.c: Use st_update in unregster_exported_object * memory_view: update dependency
* add vm_sync debug countersKoichi Sasada2020-12-161-0/+4
| | | | | | | | * vm_sync_lock * vm_sync_lock_enter * vm_sync_lock_enter_nb * vm_sync_lock_enter_cr * vm_sync_barrier
* Update dependenciesAlan Wu2020-12-141-0/+3
|
* trap on non-main ractorKoichi Sasada2020-12-121-0/+4
| | | | | trap can accept blopck/Proc and it can violate Rator isolation, so the Proc should be isolatable when trap is used on non-main ractor.
* add RUNOPT and RUNOPT0 for dev rules.Koichi Sasada2020-12-111-6/+6
| | | | | | | | | | run, runruby, ... accept RUNOPT and RUNOPT0 configuration to pass some commandline argument like that: $(BTESTRUBY) $(RUNOPT0) $(TESTRUN_SCRIPT) $(RUNOPT) RUNOPT0 is options for ruby interpreter (-w, -v, ...) RUNOPT is options for the script (ARGV/ARGF)
* Added tool/lib into test-spec loadpathHiroshi SHIBATA2020-12-101-1/+1
|
* Fix ArithmeticSequence#last and ArithmeticSequence#each for non-integer ↵Kenta Murata2020-12-091-0/+2
| | | | | | sequences (#3870) [Bug #17218] [ruby-core:100312]
* Add support for non-blocking `Process.wait`.Samuel Williams2020-12-091-0/+1
|
* cancel theap on multi-ractorsKoichi Sasada2020-12-071-0/+1
| | | | | | | accessing theap needs complicating synchronization but it reduce performance on multi-ractor mode. So simply stop using theap on multi-ractor mode. In future, theap should be replaced with more cleaver memory strategy.
* Moved update-bundled_gems code to a toolNobuyoshi Nakada2020-12-061-10/+1
|
* Proposed method for dealing with stack locals which have non-local lifetime.Samuel Williams2020-12-051-0/+1
|
* test-bundled-gems: select bundled gems to test by BUNDLED_GEMSNobuyoshi Nakada2020-12-021-1/+2
|
* ractor local storage C-APIKoichi Sasada2020-12-011-0/+1
| | | | | | | | | | | | | | | | | | | | | | To manage ractor-local data for C extension, the following APIs are defined. * rb_ractor_local_storage_value_newkey * rb_ractor_local_storage_value * rb_ractor_local_storage_value_set * rb_ractor_local_storage_ptr_newkey * rb_ractor_local_storage_ptr * rb_ractor_local_storage_ptr_set At first, you need to create a key of storage by rb_ractor_local_(value|ptr)_newkey(). For ptr storage, it accepts the type of storage, how to mark and how to free with ractor's lifetime. rb_ractor_local_storage_value/set are used to access a VALUE and rb_ractor_local_storage_ptr/set are used to access a pointer. random.c uses this API.
* Clean temproray directory created by test-specNobuyoshi Nakada2020-11-301-0/+1
|
* Clean static-rubyNobuyoshi Nakada2020-11-301-1/+1
|
* Keep references of memory-view-exported objects (#3816)Kenta Murata2020-11-301-0/+1
| | | | | | | | | * memory_view.c: remove a reference in view->obj at rb_memory_view_release * memory_view.c: keep references of memory-view-exported objects * Update common.mk * memory_view.c: Use st_update
* Make --disable-jit-support compileTakashi Kokubun2020-11-221-0/+1
| | | | | | vm_core.h needs to be included to know rb_execution_context_t, etc. I also added a trivial refactoring in mjit.c and missing dependency for process.c.
* Combine mjit.h and internal/mjit.hTakashi Kokubun2020-11-221-5/+1
| | | | It's very hard to remember which mjit.h has what.
* dist: added DISTOPTS and PKGSDIRNobuyoshi Nakada2020-11-221-1/+2
|
* fix public interfaceKoichi Sasada2020-11-181-15/+13
| | | | | | | | | | | | | | | | | | To make some kind of Ractor related extensions, some functions should be exposed. * include/ruby/thread_native.h * rb_native_mutex_* * rb_native_cond_* * include/ruby/ractor.h * RB_OBJ_SHAREABLE_P(obj) * rb_ractor_shareable_p(obj) * rb_ractor_std*() * rb_cRactor and rm ractor_pub.h and rename srcdir/ractor.h to srcdir/ractor_core.h (to avoid conflict with include/ruby/ractor.h)
* Update dependenciesSamuel Williams2020-11-071-0/+24
|
* Include c_escape.rb in COMPILE_PRELUDENobuyoshi Nakada2020-10-261-1/+2
| | | | template/prelude.c.tmpl requires tool/ruby_vm/helpers/c_escape.rb.
* Ractor.make_shareable(obj)Koichi Sasada2020-10-211-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | Introduce new method Ractor.make_shareable(obj) which tries to make obj shareable object. Protocol is here. (1) If obj is shareable, it is shareable. (2) If obj is not a shareable object and if obj can be shareable object if it is frozen, then freeze obj. If obj has reachable objects (rs), do rs.each{|o| Ractor.make_shareable(o)} recursively (recursion is not Ruby-level, but C-level). (3) Otherwise, raise Ractor::Error. Now T_DATA is not a shareable object even if the object is frozen. If the method finished without error, given obj is marked as a sharable object. To allow makng a shareable frozen T_DATA object, then set `RUBY_TYPED_FROZEN_SHAREABLE` as type->flags. On default, this flag is not set. It means user defined T_DATA objects are not allowed to become shareable objects when it is frozen. You can make any object shareable by setting FL_SHAREABLE flag, so if you know that the T_DATA object is shareable (== thread-safe), set this flag, at creation time for example. `Ractor` object is one example, which is not a frozen, but a shareable object.
* Some global variables can be accessed from ractorsKoichi Sasada2020-10-201-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some global variables should be used from non-main Ractors. [Bug #17268] ```ruby # ractor-local (derived from created ractor): debug '$DEBUG' => $DEBUG, '$-d' => $-d, # ractor-local (derived from created ractor): verbose '$VERBOSE' => $VERBOSE, '$-w' => $-w, '$-W' => $-W, '$-v' => $-v, # process-local (readonly): other commandline parameters '$-p' => $-p, '$-l' => $-l, '$-a' => $-a, # process-local (readonly): getpid '$$' => $$, # thread local: process result '$?' => $?, # scope local: match '$~' => $~.inspect, '$&' => $&, '$`' => $`, '$\'' => $', '$+' => $+, '$1' => $1, # scope local: last line '$_' => $_, # scope local: last backtrace '$@' => $@, '$!' => $!, # ractor local: stdin, out, err '$stdin' => $stdin.inspect, '$stdout' => $stdout.inspect, '$stderr' => $stderr.inspect, ```