rhodes 3.1.1 → 3.2.0.beta.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +5 -2
- data/doc/alert-api.txt +51 -0
- data/doc/build.txt +52 -43
- data/doc/configuration.txt +9 -5
- data/doc/connect-to-web-services.txt +4 -4
- data/doc/device-caps.txt +80 -28
- data/doc/extensions.txt +1 -1
- data/doc/install.txt +1 -1
- data/doc/introduction.txt +1 -1
- data/doc/rhodes-api.txt +62 -62
- data/doc/rhom.txt +36 -23
- data/doc/{rhodes-api/ringtonemanager-api.txt → ringtonemanager-api.txt} +0 -0
- data/doc/scanner.txt +507 -0
- data/doc/simulator.txt +6 -1
- data/doc/synchronization.txt +32 -27
- data/doc/{rhodes-api/timer-api.txt → timer-api.txt} +1 -1
- data/doc/tutorial.txt +8 -8
- data/installer/OLD-README.html +81 -0
- data/installer/README.html +6 -4
- data/installer/RHOSTUDIO-LICENSE.txt +675 -0
- data/installer/rhostudio.nsi +147 -20
- data/lib/build/compileRB/compileRB.rb +5 -2
- data/lib/build/jake.rb +3 -2
- data/lib/extensions/barcode/ext/barcode/platform/android/Rakefile +1 -1
- data/lib/extensions/barcode/ext/barcode/platform/bb/Rakefile +1 -1
- data/lib/extensions/barcode/ext/barcode/shared/ruby/barcode_wrap.c +391 -111
- data/lib/extensions/digest-md5/ext/Rakefile +1 -1
- data/lib/extensions/digest-sha1/ext/Rakefile +1 -1
- data/lib/extensions/digest/ext/Rakefile +1 -1
- data/lib/extensions/fcntl/ext/Rakefile +1 -1
- data/lib/extensions/mspec/mspec/expectations/expectations.rb +4 -4
- data/lib/extensions/mspec/mspec/expectations/should.rb +9 -8
- data/lib/extensions/mspec/mspec/guards.rb +3 -0
- data/lib/extensions/mspec/mspec/guards/conflict.rb +7 -2
- data/lib/extensions/mspec/mspec/guards/endian.rb +7 -10
- data/lib/extensions/mspec/mspec/guards/feature.rb +47 -0
- data/lib/extensions/mspec/mspec/guards/guard.rb +18 -13
- data/lib/extensions/mspec/mspec/guards/platform.rb +4 -0
- data/lib/extensions/mspec/mspec/guards/specified.rb +66 -0
- data/lib/extensions/mspec/mspec/guards/user.rb +17 -0
- data/lib/extensions/mspec/mspec/helpers.rb +6 -4
- data/lib/extensions/mspec/mspec/helpers/const_lookup.rb +2 -1
- data/lib/extensions/mspec/mspec/helpers/datetime.rb +30 -0
- data/lib/extensions/mspec/mspec/helpers/ducktype.rb +4 -4
- data/lib/extensions/mspec/mspec/helpers/encode.rb +21 -0
- data/lib/extensions/mspec/mspec/helpers/environment.rb +13 -9
- data/lib/extensions/mspec/mspec/helpers/fixture.rb +2 -1
- data/lib/extensions/mspec/mspec/helpers/flunk.rb +1 -1
- data/lib/extensions/mspec/mspec/helpers/fmode.rb +15 -0
- data/lib/extensions/mspec/mspec/helpers/io.rb +21 -2
- data/lib/extensions/mspec/mspec/helpers/language_version.rb +13 -3
- data/lib/extensions/mspec/mspec/helpers/numeric.rb +89 -0
- data/lib/extensions/mspec/mspec/helpers/ruby_exe.rb +138 -123
- data/lib/extensions/mspec/mspec/helpers/singleton_class.rb +7 -0
- data/lib/extensions/mspec/mspec/helpers/stasy.rb +33 -0
- data/lib/extensions/mspec/mspec/helpers/tmp.rb +34 -26
- data/lib/extensions/mspec/mspec/matchers.rb +9 -0
- data/lib/extensions/mspec/mspec/matchers/base.rb +14 -14
- data/lib/extensions/mspec/mspec/matchers/be_computed_by.rb +36 -0
- data/lib/extensions/mspec/mspec/matchers/be_computed_by_function.rb +35 -0
- data/lib/extensions/mspec/mspec/matchers/be_valid_dns_name.rb +24 -0
- data/lib/extensions/mspec/mspec/matchers/equal_utf16.rb +5 -7
- data/lib/extensions/mspec/mspec/matchers/have_class_variable.rb +12 -0
- data/lib/extensions/mspec/mspec/matchers/have_constant.rb +6 -24
- data/lib/extensions/mspec/mspec/matchers/have_data.rb +49 -0
- data/lib/extensions/mspec/mspec/matchers/have_instance_method.rb +1 -1
- data/lib/extensions/mspec/mspec/matchers/have_instance_variable.rb +12 -0
- data/lib/extensions/mspec/mspec/matchers/have_method.rb +1 -1
- data/lib/extensions/mspec/mspec/matchers/have_private_instance_method.rb +1 -1
- data/lib/extensions/mspec/mspec/matchers/have_private_method.rb +24 -0
- data/lib/extensions/mspec/mspec/matchers/have_protected_instance_method.rb +24 -0
- data/lib/extensions/mspec/mspec/matchers/have_public_instance_method.rb +1 -1
- data/lib/extensions/mspec/mspec/matchers/have_singleton_method.rb +24 -0
- data/lib/extensions/mspec/mspec/matchers/output_to_fd.rb +71 -71
- data/lib/extensions/mspec/mspec/matchers/raise_error.rb +4 -3
- data/lib/extensions/mspec/mspec/matchers/stringsymboladapter.rb +1 -1
- data/lib/extensions/mspec/mspec/matchers/variable.rb +28 -0
- data/lib/extensions/mspec/mspec/mocks/mock.rb +102 -60
- data/lib/extensions/mspec/mspec/mocks/object.rb +5 -1
- data/lib/extensions/mspec/mspec/mocks/proxy.rb +41 -6
- data/lib/extensions/mspec/mspec/runner.rb +1 -0
- data/lib/extensions/mspec/mspec/runner/actions/debug.rb +2 -0
- data/lib/extensions/mspec/mspec/runner/context.rb +58 -13
- data/lib/extensions/mspec/mspec/runner/exception.rb +7 -6
- data/lib/extensions/mspec/mspec/runner/formatters.rb +1 -0
- data/lib/extensions/mspec/mspec/runner/formatters/dotted.rb +15 -3
- data/lib/extensions/mspec/mspec/runner/formatters/profile.rb +70 -0
- data/lib/extensions/mspec/mspec/runner/mspec.rb +32 -19
- data/lib/extensions/mspec/mspec/runner/object.rb +4 -0
- data/lib/extensions/mspec/mspec/runner/shared.rb +1 -1
- data/lib/extensions/mspec/mspec/utils/name_map.rb +8 -1
- data/lib/extensions/mspec/mspec/utils/options.rb +25 -8
- data/lib/extensions/mspec/mspec/utils/ruby_name.rb +1 -1
- data/lib/extensions/mspec/mspec/utils/script.rb +4 -4
- data/lib/extensions/mspec/mspec/version.rb +1 -1
- data/lib/extensions/nfc/ext/nfc/platform/android/Rakefile +1 -1
- data/lib/extensions/nfc/ext/nfc/shared/ruby/nfc_wrap.c +427 -149
- data/lib/extensions/set/tsort.rb +242 -0
- data/lib/extensions/thread/monitor.rb +277 -0
- data/lib/extensions/thread/thread.rb +357 -0
- data/lib/framework/base64.rb +4 -4
- data/lib/framework/date/format.rb +36 -64
- data/lib/framework/dateOrig.rb +40 -23
- data/lib/framework/ostruct.rb +14 -8
- data/lib/framework/rational.rb +2 -2
- data/lib/framework/rbconfig.rb +71 -0
- data/lib/framework/rho/rho.rb +46 -43
- data/lib/framework/rho/rhocontact.rb +60 -36
- data/lib/framework/rho/rhofsconnector.rb +2 -2
- data/lib/framework/rho/rhoutils.rb +10 -6
- data/lib/framework/rhodes.rb +1 -1
- data/lib/framework/rhoframework.rb +0 -13
- data/lib/framework/rhom/rhom.rb +64 -1
- data/lib/framework/rhom/rhom_object_factory.rb +4 -4
- data/lib/framework/rhosystem.rb +27 -25
- data/lib/framework/time.rb +48 -16
- data/lib/framework/version.rb +1 -1
- data/lib/rhodes.rb +1 -1
- data/lib/test/framework_test.rb +1 -1
- data/platform/android/Rhodes/AndroidManifest.xml +35 -9
- data/platform/android/Rhodes/default.properties +1 -1
- data/platform/android/Rhodes/jni/Android.mk +5 -4
- data/platform/android/Rhodes/jni/include/rhodes.h +65 -3
- data/platform/android/Rhodes/jni/include/rhodes/JNIRhodes.h +3 -1
- data/platform/android/Rhodes/jni/include/rhodes/jni/com_rhomobile_rhodes_geolocation_GeoLocationImpl.h +12 -2
- data/platform/android/Rhodes/jni/src/callbacks.cpp +6 -2
- data/platform/android/Rhodes/jni/src/event.cpp +60 -1
- data/platform/android/Rhodes/jni/src/geolocation.cpp +42 -13
- data/platform/android/Rhodes/jni/src/mapview.cpp +169 -42
- data/platform/android/Rhodes/jni/src/phonebook.cpp +90 -74
- data/platform/android/Rhodes/jni/src/rhodes.cpp +91 -3
- data/platform/android/Rhodes/jni/src/rhodesapp.cpp +1 -1
- data/platform/android/Rhodes/res/drawable/callout_a1.png +0 -0
- data/platform/android/Rhodes/res/drawable/callout_a2.png +0 -0
- data/platform/android/Rhodes/res/drawable/callout_a3.png +0 -0
- data/platform/android/Rhodes/res/drawable/callout_b1.png +0 -0
- data/platform/android/Rhodes/res/drawable/callout_b2.png +0 -0
- data/platform/android/Rhodes/res/drawable/callout_b3.png +0 -0
- data/platform/android/Rhodes/res/drawable/callout_c1.png +0 -0
- data/platform/android/Rhodes/res/drawable/callout_c2.png +0 -0
- data/platform/android/Rhodes/res/drawable/callout_c3.png +0 -0
- data/platform/android/Rhodes/res/drawable/callout_d.png +0 -0
- data/platform/android/Rhodes/res/drawable/google.png +0 -0
- data/platform/android/Rhodes/res/drawable/location.png +0 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/AndroidR.java +12 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesActivity.java +44 -21
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesService.java +12 -25
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/alert/PopupActivity.java +2 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/bluetooth/RhoBluetoothDeviceListActivity.java +2 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/CameraSettings.java +11 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/ImageCapture.java +13 -3
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/event/Event.java +7 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/event/EventStore.java +127 -37
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/geolocation/GeoLocation.java +69 -23
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/geolocation/GeoLocationImpl.java +287 -124
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/Annotation.java +6 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/AnnotationsOverlay.java +57 -6
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/Callout.java +296 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/CalloutOverlay.java +143 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/GoogleMapView.java +109 -3
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/MapView.java +53 -5
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/Contact.java +16 -119
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/ContactAccessor.java +4 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/ContactAccessorNew.java +284 -120
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/ContactAccessorOld.java +58 -23
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/Phonebook.java +42 -77
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/util/PerformOnUiThread.java +1 -1
- data/platform/android/build/RhodesSRC_build.files +2 -0
- data/platform/android/build/android.rake +90 -40
- data/platform/android/build/android_tools.rb +16 -0
- data/platform/android/build/androidcommon.rb +2 -0
- data/platform/android/build/librhocommon_build.files +3 -0
- data/platform/android/build/libruby_build.files +2 -1
- data/platform/bb/RubyVM/src/com/rho/net/AsyncHttp.java +6 -2
- data/platform/bb/RubyVM/src/com/rho/sync/ClientRegister.java +3 -2
- data/platform/bb/RubyVM/src/com/rho/sync/SyncEngine.java +17 -24
- data/platform/bb/RubyVM/src/com/rho/sync/SyncNotify.java +26 -2
- data/platform/bb/RubyVM/src/com/rho/sync/SyncProtocol_3.java +6 -1
- data/platform/bb/RubyVM/src/com/rho/sync/SyncSource.java +4 -0
- data/platform/bb/RubyVM/src/com/rho/sync/SyncThread.java +50 -54
- data/platform/bb/build/bb.rake +4 -4
- data/platform/bb/rhodes/src/com/rho/rubyext/RhoPhonebook.java +6 -6
- data/platform/bb/rhodes/src/rhomobile/camera/Camera.java +7 -0
- data/platform/bb/rhodes/src/rhomobile/mapview/MapView.java +10 -0
- data/platform/iphone/Classes/AppManager/AppManager.m +29 -0
- data/platform/iphone/Classes/Dispatcher/Dispatcher.c +1 -1
- data/platform/iphone/Classes/GeoLocation/LocationController.h +2 -1
- data/platform/iphone/Classes/GeoLocation/LocationController.m +23 -0
- data/platform/iphone/Classes/MapView/MapAnnotation.h +6 -0
- data/platform/iphone/Classes/MapView/MapAnnotation.m +5 -1
- data/platform/iphone/Classes/MapView/MapViewController.m +48 -4
- data/platform/iphone/Classes/MapView/MapViewManager.m +7 -0
- data/platform/iphone/Classes/Phonebook/phonebook.m +44 -0
- data/platform/iphone/Classes/Rhodes.m +1 -1
- data/platform/iphone/Info.plist +1 -1
- data/platform/iphone/RhoLib/RhoLib.xcodeproj/project.pbxproj +3 -3
- data/platform/iphone/curl/curl.xcodeproj/project.pbxproj +3 -3
- data/platform/iphone/rbuild/iphone.rake +3 -1
- data/platform/iphone/rhoextlib/rhoextlib.xcodeproj/project.pbxproj +3 -3
- data/platform/iphone/rhorubylib/rhorubylib.xcodeproj/project.pbxproj +18 -7
- data/platform/iphone/rhorunner.xcodeproj/project.pbxproj +3 -2
- data/platform/iphone/rhosynclib/rhosynclib.xcodeproj/project.pbxproj +3 -3
- data/platform/linux/files.txt +2 -2
- data/platform/linux/target/compiler/rubylinux +0 -0
- data/platform/mac/RubyMac/RubyMac.xcodeproj/project.pbxproj +8 -2
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/MacOS/RhoSimulator +0 -0
- data/platform/osx/build/osx.rake +1 -3
- data/platform/shared/RhoConnectClient/RhoConnectClient.cpp +65 -26
- data/platform/shared/RhoConnectClient/RhoConnectClient.h +5 -1
- data/platform/shared/common/Android.mk +3 -0
- data/platform/shared/common/AppMenu.cpp +2 -2
- data/platform/shared/common/RhoPort.h +2 -2
- data/platform/shared/common/RhodesApp.cpp +20 -2
- data/platform/shared/common/RhodesApp.h +1 -0
- data/platform/shared/common/ThreadQueue.cpp +5 -0
- data/platform/shared/common/ThreadQueue.h +1 -0
- data/platform/shared/common/map/BaseMapEngine.cpp +1393 -0
- data/platform/shared/common/map/BaseMapEngine.h +368 -0
- data/platform/shared/common/map/ESRIMapEngine.cpp +23 -896
- data/platform/shared/common/map/ESRIMapEngine.h +11 -243
- data/platform/shared/common/map/GeocodingMapEngine.cpp +200 -0
- data/platform/shared/common/map/GeocodingMapEngine.h +86 -0
- data/platform/shared/common/map/GoogleMapEngine.cpp +70 -135
- data/platform/shared/common/map/GoogleMapEngine.h +21 -38
- data/platform/shared/common/map/MapEngine.cpp +145 -24
- data/platform/shared/common/map/MapEngine.h +156 -54
- data/platform/shared/common/map/OSMMapEngine.cpp +94 -0
- data/platform/shared/common/map/OSMMapEngine.h +65 -0
- data/platform/shared/curl/lib/config-symbian.h +3 -1
- data/platform/shared/db/DBAdapter.cpp +30 -4
- data/platform/shared/db/DBAdapter.h +24 -1
- data/platform/shared/logging/RhoLog.h +26 -0
- data/platform/shared/net/AsyncHttp.cpp +6 -2
- data/platform/shared/net/CompatWince.cpp +1 -0
- data/platform/shared/net/HttpServer.cpp +5 -2
- data/platform/shared/qt/rhodes/RhoSimulator.h +1 -1
- data/platform/shared/qt/rhodes/impl/GeoLocationImpl.cpp +6 -0
- data/platform/shared/qt/rhodes/impl/MapViewImpl.cpp +4 -0
- data/platform/shared/qt/rhodes/impl/PhonebookImpl.cpp +12 -0
- data/platform/shared/qt/rhodes/impl/SystemImpl.cpp +26 -0
- data/platform/shared/qt/rholib/rholib.pro +14 -19
- data/platform/shared/qt/rubylib/rubylib.pro +7 -4
- data/platform/shared/ruby/Android.mk +3 -2
- data/platform/shared/ruby/GPL +340 -0
- data/platform/shared/ruby/android/ruby/config.h +283 -0
- data/platform/shared/ruby/array.c +1318 -595
- data/platform/shared/ruby/bignum.c +1092 -278
- data/platform/shared/ruby/class.c +689 -201
- data/platform/shared/ruby/compar.c +22 -20
- data/platform/shared/ruby/compile.c +327 -249
- data/platform/shared/ruby/complex.c +593 -138
- data/platform/shared/ruby/cont.c +213 -95
- data/platform/shared/ruby/debug.c +15 -10
- data/platform/shared/ruby/debug.h +1 -1
- data/platform/shared/ruby/dir.c +247 -104
- data/platform/shared/ruby/dln.c +102 -309
- data/platform/shared/ruby/dln.h +3 -3
- data/platform/shared/ruby/dln_find.c +305 -0
- data/platform/shared/ruby/dmydln.c +7 -2
- data/platform/shared/ruby/dmyversion.c +2 -0
- data/platform/shared/ruby/enc/Makefile.in +1 -0
- data/platform/shared/ruby/enc/big5.c +142 -5
- data/platform/shared/ruby/enc/depend +1 -0
- data/platform/shared/ruby/enc/emacs_mule.c +1 -1
- data/platform/shared/ruby/enc/encdb.c +3 -1
- data/platform/shared/ruby/enc/euc_tw.c +1 -10
- data/platform/shared/ruby/enc/iso_2022_jp.h +36 -0
- data/platform/shared/ruby/enc/iso_8859_5.c +1 -1
- data/platform/shared/ruby/enc/koi8_r.c +1 -1
- data/platform/shared/ruby/enc/koi8_u.c +1 -1
- data/platform/shared/ruby/enc/prelude.rb +1 -1
- data/platform/shared/ruby/enc/shift_jis.c +3 -3
- data/platform/shared/ruby/enc/trans/big5-hkscs-tbl.rb +18385 -0
- data/platform/shared/ruby/enc/trans/big5-uao-tbl.rb +19784 -0
- data/platform/shared/ruby/enc/trans/big5.c +53810 -12566
- data/platform/shared/ruby/enc/trans/big5.trans +10 -1
- data/platform/shared/ruby/enc/trans/chinese.c +113 -71
- data/platform/shared/ruby/enc/trans/chinese.trans +6 -4
- data/platform/shared/ruby/enc/trans/escape.c +3 -3
- data/platform/shared/ruby/enc/trans/escape.trans +3 -3
- data/platform/shared/ruby/enc/trans/gb18030-tbl.rb +32 -0
- data/platform/shared/ruby/enc/trans/gb18030.c +17431 -91305
- data/platform/shared/ruby/enc/trans/gb18030.trans +105 -5
- data/platform/shared/ruby/enc/trans/gbk.c +13 -13
- data/platform/shared/ruby/enc/trans/iso2022.c +374 -13
- data/platform/shared/ruby/enc/trans/iso2022.trans +313 -0
- data/platform/shared/ruby/enc/trans/japanese.c +26 -24
- data/platform/shared/ruby/enc/trans/japanese_euc.c +30 -30
- data/platform/shared/ruby/enc/trans/japanese_sjis.c +282 -276
- data/platform/shared/ruby/enc/trans/korean.c +182 -159
- data/platform/shared/ruby/enc/trans/newline.c +18 -14
- data/platform/shared/ruby/enc/trans/newline.trans +15 -11
- data/platform/shared/ruby/enc/trans/single_byte.c +497 -394
- data/platform/shared/ruby/enc/trans/single_byte.trans +1 -2
- data/platform/shared/ruby/enc/trans/transdb.c +1 -1
- data/platform/shared/ruby/enc/trans/utf8_mac-tbl.rb +945 -0
- data/platform/shared/ruby/enc/trans/utf8_mac.c +10853 -0
- data/platform/shared/ruby/enc/trans/utf8_mac.trans +242 -0
- data/platform/shared/ruby/enc/trans/utf_16_32.c +89 -86
- data/platform/shared/ruby/enc/unicode.c +30 -8779
- data/platform/shared/ruby/enc/unicode/name2ctype.h +17985 -0
- data/platform/shared/ruby/enc/unicode/name2ctype.h.blt +17985 -0
- data/platform/shared/ruby/enc/unicode/name2ctype.kwd +16711 -0
- data/platform/shared/ruby/enc/unicode/name2ctype.src +16711 -0
- data/platform/shared/ruby/enc/utf_16be.c +3 -4
- data/platform/shared/ruby/enc/utf_16le.c +3 -4
- data/platform/shared/ruby/enc/utf_8.c +3 -1
- data/platform/shared/ruby/enc/x_emoji.h +26 -0
- data/platform/shared/ruby/encdb.h +18 -2
- data/platform/shared/ruby/encoding.c +248 -111
- data/platform/shared/ruby/enum.c +1006 -200
- data/platform/shared/ruby/enumerator.c +555 -254
- data/platform/shared/ruby/error.c +478 -79
- data/platform/shared/ruby/eval.c +186 -94
- data/platform/shared/ruby/eval_error.c +16 -10
- data/platform/shared/ruby/eval_intern.h +24 -9
- data/platform/shared/ruby/eval_jump.c +2 -1
- data/platform/shared/ruby/ext/geolocation/geolocation.i +10 -1
- data/platform/shared/ruby/ext/geolocation/geolocation_wrap.c +49 -6
- data/platform/shared/ruby/ext/mapview/mapview.i +6 -0
- data/platform/shared/ruby/ext/mapview/mapview_wrap.c +279 -0
- data/platform/shared/ruby/ext/nativebar/nativebar_wrap.c +402 -124
- data/platform/shared/ruby/ext/phonebook/phonebook.i +41 -7
- data/platform/shared/ruby/ext/phonebook/phonebook_wrap.c +216 -47
- data/platform/shared/ruby/ext/rho/rhoruby.c +9 -5
- data/platform/shared/ruby/ext/rho/rhosupport.c +1 -1
- data/platform/shared/ruby/ext/socket/getaddrinfo.c +4 -0
- data/platform/shared/ruby/ext/sqlite3_api/sqlite3_api_wrap.c +2 -2
- data/platform/shared/ruby/ext/syncengine/syncengine.i +14 -5
- data/platform/shared/ruby/ext/syncengine/syncengine_wrap.c +55 -7
- data/platform/shared/ruby/ext/system/system.i +7 -2
- data/platform/shared/ruby/ext/system/system_wrap.c +28 -2
- data/platform/shared/ruby/file.c +1243 -683
- data/platform/shared/ruby/gc.c +509 -217
- data/platform/shared/ruby/gc.h +7 -5
- data/platform/shared/ruby/generated/insns.inc +11 -9
- data/platform/shared/ruby/generated/insns_info.inc +69 -62
- data/platform/shared/ruby/generated/known_errors.inc +360 -245
- data/platform/shared/ruby/generated/lex.c +49 -47
- data/platform/shared/ruby/generated/node_name.inc +0 -8
- data/platform/shared/ruby/generated/optinsn.inc +1 -1
- data/platform/shared/ruby/generated/parse.c +4480 -4162
- data/platform/shared/ruby/generated/parse.h +13 -14
- data/platform/shared/ruby/generated/vm.inc +485 -269
- data/platform/shared/ruby/generated/vmtc.inc +2 -1
- data/platform/shared/ruby/golf_prelude.c +21 -4
- data/platform/shared/ruby/goruby.c +1 -1
- data/platform/shared/ruby/hash.c +429 -180
- data/platform/shared/ruby/ia64.s +42 -0
- data/platform/shared/ruby/id.c +13 -14
- data/platform/shared/ruby/id.h +25 -18
- data/platform/shared/ruby/include/ruby.h +1 -1
- data/platform/shared/ruby/include/ruby/backward/rubysig.h +2 -2
- data/platform/shared/ruby/include/ruby/defines.h +50 -29
- data/platform/shared/ruby/include/ruby/encoding.h +40 -14
- data/platform/shared/ruby/include/ruby/intern.h +81 -24
- data/platform/shared/ruby/include/ruby/io.h +4 -4
- data/platform/shared/ruby/include/ruby/missing.h +28 -18
- data/platform/shared/ruby/include/ruby/oniguruma.h +22 -7
- data/platform/shared/ruby/include/ruby/re.h +4 -4
- data/platform/shared/ruby/include/ruby/ruby.h +294 -76
- data/platform/shared/ruby/include/ruby/st.h +27 -9
- data/platform/shared/ruby/include/ruby/util.h +14 -6
- data/platform/shared/ruby/include/ruby/version.h +61 -0
- data/platform/shared/ruby/include/ruby/vm.h +21 -1
- data/platform/shared/ruby/include/ruby/win32.h +223 -63
- data/platform/shared/ruby/inits.c +1 -1
- data/platform/shared/ruby/insns.def +236 -111
- data/platform/shared/ruby/io.c +2188 -774
- data/platform/shared/ruby/iphone/ruby/config.h +75 -45
- data/platform/shared/ruby/iseq.c +261 -104
- data/platform/shared/ruby/iseq.h +13 -11
- data/platform/shared/ruby/linux/ruby/config.h +95 -100
- data/platform/shared/ruby/load.c +115 -81
- data/platform/shared/ruby/main.c +122 -0
- data/platform/shared/ruby/marshal.c +418 -230
- data/platform/shared/ruby/math.c +219 -152
- data/platform/shared/ruby/method.h +103 -0
- data/platform/shared/ruby/miniprelude.c +35 -23
- data/platform/shared/ruby/missing/acosh.c +4 -4
- data/platform/shared/ruby/missing/alloca.c +4 -1
- data/platform/shared/ruby/missing/close.c +67 -0
- data/platform/shared/ruby/missing/crypt.c +9 -9
- data/platform/shared/ruby/missing/dup2.c +0 -1
- data/platform/shared/ruby/missing/langinfo.c +4 -3
- data/platform/shared/ruby/missing/signbit.c +19 -0
- data/platform/shared/ruby/newline.c +18 -14
- data/platform/shared/ruby/node.c +921 -0
- data/platform/shared/ruby/node.h +14 -47
- data/platform/shared/ruby/numeric.c +544 -302
- data/platform/shared/ruby/object.c +430 -426
- data/platform/shared/ruby/pack.c +677 -628
- data/platform/shared/ruby/parse.y +847 -523
- data/platform/shared/ruby/proc.c +631 -341
- data/platform/shared/ruby/process.c +811 -421
- data/platform/shared/ruby/random.c +858 -177
- data/platform/shared/ruby/range.c +234 -133
- data/platform/shared/ruby/rational.c +936 -173
- data/platform/shared/ruby/re.c +351 -192
- data/platform/shared/ruby/regcomp.c +125 -138
- data/platform/shared/ruby/regenc.c +26 -25
- data/platform/shared/ruby/regenc.h +7 -3
- data/platform/shared/ruby/regerror.c +44 -34
- data/platform/shared/ruby/regexec.c +31 -38
- data/platform/shared/ruby/regint.h +16 -17
- data/platform/shared/ruby/regparse.c +266 -136
- data/platform/shared/ruby/regparse.h +4 -1
- data/platform/shared/ruby/regsyntax.c +2 -2
- data/platform/shared/ruby/revision.h +0 -1
- data/platform/shared/ruby/ruby.c +276 -248
- data/platform/shared/ruby/safe.c +14 -8
- data/platform/shared/ruby/signal.c +61 -68
- data/platform/shared/ruby/sprintf.c +77 -38
- data/platform/shared/ruby/st.c +437 -61
- data/platform/shared/ruby/strftime.c +252 -110
- data/platform/shared/ruby/string.c +1361 -1009
- data/platform/shared/ruby/struct.c +200 -133
- data/platform/shared/ruby/symbian/ruby/config.h +56 -24
- data/platform/shared/ruby/thread.c +732 -247
- data/platform/shared/ruby/thread_pthread.c +122 -69
- data/platform/shared/ruby/thread_pthread.h +4 -1
- data/platform/shared/ruby/thread_win32.c +73 -41
- data/platform/shared/ruby/thread_win32.h +1 -1
- data/platform/shared/ruby/time.c +3271 -919
- data/platform/shared/ruby/timev.h +21 -0
- data/platform/shared/ruby/transcode.c +289 -95
- data/platform/shared/ruby/transcode_data.h +17 -14
- data/platform/shared/ruby/transdb.h +32 -0
- data/platform/shared/ruby/util.c +330 -123
- data/platform/shared/ruby/variable.c +294 -176
- data/platform/shared/ruby/version.c +71 -2
- data/platform/shared/ruby/version.h +22 -19
- data/platform/shared/ruby/vm.c +368 -203
- data/platform/shared/ruby/vm_core.h +110 -66
- data/platform/shared/ruby/vm_dump.c +51 -44
- data/platform/shared/ruby/vm_eval.c +547 -230
- data/platform/shared/ruby/vm_exec.c +3 -3
- data/platform/shared/ruby/vm_insnhelper.c +397 -200
- data/platform/shared/ruby/vm_insnhelper.h +27 -14
- data/platform/shared/ruby/vm_method.c +493 -296
- data/platform/shared/ruby/vm_opts.h +1 -1
- data/platform/shared/ruby/{missing/vsnprintf.c → vsnprintf.c} +114 -74
- data/platform/shared/ruby/win32/dir.h +5 -4
- data/platform/shared/ruby/win32/miniprelude.c +34 -21
- data/platform/shared/ruby/win32/newline.c +18 -14
- data/platform/shared/ruby/win32/ruby/config.h +58 -20
- data/platform/shared/ruby/win32/win32.c +1398 -475
- data/platform/shared/ruby/wince/direct.c +17 -1
- data/platform/shared/ruby/wince/io_wce.c +16 -8
- data/platform/shared/ruby/wince/ruby/config.h +54 -24
- data/platform/shared/ruby/wince/sys/stat.c +81 -0
- data/platform/shared/ruby/wince/time_wce.c +47 -4
- data/platform/shared/ruby/wince/wince.h +16 -0
- data/platform/shared/rubyext/Android.mk +1 -1
- data/platform/shared/rubyext/GeoLocation.cpp +93 -48
- data/platform/shared/rubyext/GeoLocation.h +9 -4
- data/platform/shared/rubyext/System.cpp +6 -0
- data/platform/shared/sync/ClientRegister.cpp +1 -1
- data/platform/shared/sync/SyncEngine.cpp +15 -55
- data/platform/shared/sync/SyncEngine.h +4 -4
- data/platform/shared/sync/SyncProtocol_3.h +6 -1
- data/platform/shared/sync/SyncSource.cpp +6 -1
- data/platform/shared/sync/SyncSource.h +1 -0
- data/platform/shared/sync/SyncThread.cpp +20 -9
- data/platform/shared/sync/SyncThread.h +14 -9
- data/platform/shared/wtl80/include/atlapp.h +2 -0
- data/platform/symbian/build/symbian.rake +56 -5
- data/platform/symbian/curl/curl.pro +4 -0
- data/platform/symbian/rhodes/rhodes.pro +16 -4
- data/platform/symbian/rhodes/src/phonebook/ruby_phonebook.cpp +10 -0
- data/platform/symbian/rholib/rholib.pro +4 -0
- data/platform/symbian/rubylib/rubylib.pro +6 -2
- data/platform/symbian/sqlite3/sqlite3.pro +2 -1
- data/platform/symbian/syncengine/syncengine.pro +4 -0
- data/platform/win32/RhoSimulator/RhoSimulator.exe +0 -0
- data/platform/wm/RhoLib/RhoLib.vcproj +333 -0
- data/platform/wm/build/build_inf.js +1 -0
- data/platform/wm/build/wm.rake +43 -17
- data/platform/wm/rhodes.sln +140 -76
- data/platform/wm/rhodes/Alert.cpp +1 -1
- data/platform/wm/rhodes/IBrowserEngine.cpp +10 -0
- data/platform/wm/rhodes/IBrowserEngine.h +24 -0
- data/platform/wm/rhodes/IEBrowserEngine.cpp +179 -0
- data/platform/wm/rhodes/IEBrowserEngine.h +36 -0
- data/platform/wm/rhodes/MainWindow.cpp +176 -178
- data/platform/wm/rhodes/MainWindow.h +78 -20
- data/platform/wm/rhodes/MapView/Graphics.h +10 -0
- data/platform/wm/rhodes/MapView/MapViewManager.cpp +7 -0
- data/platform/wm/rhodes/OutlookApp.cpp +3 -3
- data/platform/wm/rhodes/RhoWebKitBrowser.cpp +10 -0
- data/platform/wm/rhodes/Rhodes.cpp +499 -443
- data/platform/wm/rhodes/bluetooth/Bluetooth.cpp +1 -4
- data/platform/wm/rhodes/bluetooth/Bluetooth.h +1 -1
- data/platform/wm/rhodes/camera/Camera.cpp +3 -6
- data/platform/wm/rhodes/phonebook/phonebook.cpp +20 -11
- data/platform/wm/rhodes/phonebook/phonebook.h +4 -2
- data/platform/wm/rhodes/rho/net/NetRequestImpl.cpp +3 -3
- data/platform/wm/rhodes/rho/rubyext/GeoLocationImpl.cpp +12 -7
- data/platform/wm/rhodes/rho/rubyext/GeoLocationImpl.h +1 -1
- data/platform/wm/rhodes/rho/rubyext/SystemImpl.cpp +24 -6
- data/platform/wm/rhodes/rho/rubyext/WebView.cpp +0 -32
- data/platform/wm/rhodes/rho/rubyext/calendar.cpp +1 -1
- data/platform/wm/rhodes/rhodes.vcproj +1792 -129
- data/platform/wm/rhodes/rhoelements/RhoWKBrowserEngine.cpp +384 -0
- data/platform/wm/rhodes/rhoelements/RhoWKBrowserEngine.h +41 -0
- data/platform/wm/rhodes/signature/Signature.cpp +4 -8
- data/platform/wm/rhodes/signature/Signature.h +1 -1
- data/platform/wm/rhodes/simulator/MainWindowQt.cpp +1 -0
- data/platform/wm/rhodes/simulator/MainWindowQt.h +2 -0
- data/platform/wm/rhodes/stdafx.h +17 -5
- data/platform/wm/rhoelements.sln +447 -0
- data/platform/wm/rubylib/rubylib.vcproj +355 -10
- data/platform/wm/sqlite3/sqlite3.vcproj +305 -0
- data/platform/wm/syncengine/syncengine.vcproj +309 -0
- data/platform/wp7/IronRuby/bin/Silverlight3Release/IronRuby.Libraries.dll +0 -0
- data/platform/wp7/IronRuby/bin/Silverlight3Release/IronRuby.dll +0 -0
- data/platform/wp7/RhoAppRunner/Program.cs +2 -2
- data/platform/wp7/RhoRubyExtGen/RhoCamera.cs +59 -0
- data/platform/wp7/RhoRubyExtGen/RhoNativeBar.cs +3 -20
- data/platform/wp7/RhoRubyExtGen/RhoRubyExtGen.csproj +1 -0
- data/platform/wp7/RhoRubyLib/Initializers.Generated.cs +6 -9
- data/platform/wp7/RhoRubyLib/RhoRubyLib.csproj +2 -1
- data/platform/wp7/RhoRubyLib/rubyext/RhoCamera.cs +130 -0
- data/platform/wp7/RhoRubyLib/rubyext/RhoNativeBar.cs +5 -73
- data/res/build-tools/RhoRuby.exe +0 -0
- data/res/build-tools/RubyMac +0 -0
- data/res/build-tools/detool.exe +0 -0
- data/res/build-tools/rubylinux +0 -0
- data/res/generators/rhogen.rb +5 -0
- data/res/generators/templates/application/app/helpers/browser_helper.rb +4 -0
- data/res/generators/templates/application/app/index.erb +6 -2
- data/res/generators/templates/application/app/layout.erb +8 -5
- data/res/generators/templates/application/build.yml +3 -1
- data/res/generators/templates/application/gitignore +7 -0
- data/res/generators/templates/application/public/css/android.css +366 -5
- data/res/generators/templates/application/public/css/blackberry.css +16 -5
- data/res/generators/templates/application/public/css/iphone.css +349 -5
- data/res/generators/templates/application/public/css/windows_mobile.css +105 -0
- data/res/generators/templates/application/public/jqmobile/{jquery.mobile-1.0b2.css → jquery.mobile-1.0b3.css} +64 -5
- data/res/generators/templates/application/public/jqmobile/{jquery.mobile-1.0b2.js → jquery.mobile-1.0b3.js} +1125 -727
- data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.0b3.min.css +8 -0
- data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.0b3.min.js +169 -0
- data/res/generators/templates/application/public/jquery/{jquery-1.6.2.js → jquery-1.6.3.js} +226 -163
- data/res/generators/templates/application/public/jquery/jquery-1.6.3.min.js +4 -0
- data/res/generators/templates/application/public/js/wp7.js +5 -0
- data/res/generators/templates/model/edit.erb +6 -2
- data/res/generators/templates/model/index.erb +8 -4
- data/res/generators/templates/model/new.erb +3 -1
- data/res/generators/templates/model/show.erb +6 -2
- data/rhobuild.yml.example +0 -1
- data/rhodes.gemspec +1 -1
- data/spec/framework_spec/app/spec/core/argf/argf_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/argf/binmode_spec.rb +19 -7
- data/spec/framework_spec/app/spec/core/argf/bytes_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/argf/chars_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/argf/close_spec.rb +31 -5
- data/spec/framework_spec/app/spec/core/argf/closed_spec.rb +6 -5
- data/spec/framework_spec/app/spec/core/argf/each_byte_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/each_char_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/argf/each_line_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/each_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/eof_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/file_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/argf/filename_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/fileno_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/getc_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/argf/gets_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/argf/lineno_spec.rb +24 -18
- data/spec/framework_spec/app/spec/core/argf/path_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/pos_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/argf/read_spec.rb +19 -20
- data/spec/framework_spec/app/spec/core/argf/readchar_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/argf/readline_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/argf/readlines_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/rewind_spec.rb +18 -4
- data/spec/framework_spec/app/spec/core/argf/seek_spec.rb +6 -4
- data/spec/framework_spec/app/spec/core/argf/shared/each_byte.rb +3 -3
- data/spec/framework_spec/app/spec/core/argf/shared/each_char.rb +4 -4
- data/spec/framework_spec/app/spec/core/argf/shared/each_line.rb +9 -3
- data/spec/framework_spec/app/spec/core/argf/shared/eof.rb +3 -3
- data/spec/framework_spec/app/spec/core/argf/shared/filename.rb +3 -3
- data/spec/framework_spec/app/spec/core/argf/shared/fileno.rb +3 -3
- data/spec/framework_spec/app/spec/core/argf/shared/getc.rb +3 -3
- data/spec/framework_spec/app/spec/core/argf/shared/gets.rb +41 -43
- data/spec/framework_spec/app/spec/core/argf/shared/pos.rb +3 -3
- data/spec/framework_spec/app/spec/core/argf/shared/readlines.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/skip_spec.rb +12 -4
- data/spec/framework_spec/app/spec/core/argf/tell_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/to_a_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/to_i_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/to_io_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/argf/to_s_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/array/allocate_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/append_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/array/array_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/array/assoc_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/array/at_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/array/choice_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/array/clear_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/clone_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/collect_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/combination_spec.rb +38 -13
- data/spec/framework_spec/app/spec/core/array/compact_spec.rb +33 -11
- data/spec/framework_spec/app/spec/core/array/comparison_spec.rb +11 -5
- data/spec/framework_spec/app/spec/core/array/concat_spec.rb +13 -13
- data/spec/framework_spec/app/spec/core/array/constructor_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/array/count_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/array/cycle_spec.rb +82 -14
- data/spec/framework_spec/app/spec/core/array/delete_at_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/array/delete_if_spec.rb +16 -7
- data/spec/framework_spec/app/spec/core/array/delete_spec.rb +8 -2
- data/spec/framework_spec/app/spec/core/array/drop_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/array/drop_while_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/array/dup_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/each_index_spec.rb +29 -30
- data/spec/framework_spec/app/spec/core/array/each_spec.rb +8 -33
- data/spec/framework_spec/app/spec/core/array/element_reference_spec.rb +30 -6
- data/spec/framework_spec/app/spec/core/array/element_set_spec.rb +19 -2
- data/spec/framework_spec/app/spec/core/array/empty_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/array/eql_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/equal_value_spec.rb +34 -3
- data/spec/framework_spec/app/spec/core/array/fetch_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/array/fill_spec.rb +27 -12
- data/spec/framework_spec/app/spec/core/array/find_index_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/array/first_spec.rb +13 -13
- data/spec/framework_spec/app/spec/core/array/fixtures/classes.rb +447 -6
- data/spec/framework_spec/app/spec/core/array/flatten_spec.rb +42 -19
- data/spec/framework_spec/app/spec/core/array/frozen_spec.rb +17 -15
- data/spec/framework_spec/app/spec/core/array/hash_spec.rb +22 -3
- data/spec/framework_spec/app/spec/core/array/include_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/index_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/array/indexes_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/indices_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/initialize_copy_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/initialize_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/array/insert_spec.rb +13 -11
- data/spec/framework_spec/app/spec/core/array/inspect_spec.rb +33 -3
- data/spec/framework_spec/app/spec/core/array/intersection_spec.rb +13 -13
- data/spec/framework_spec/app/spec/core/array/join_spec.rb +24 -4
- data/spec/framework_spec/app/spec/core/array/keep_if_spec.rb +12 -0
- data/spec/framework_spec/app/spec/core/array/last_spec.rb +11 -11
- data/spec/framework_spec/app/spec/core/array/length_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/map_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/minus_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/array/multiply_spec.rb +23 -10
- data/spec/framework_spec/app/spec/core/array/new_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/array/nitems_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/pack/a_spec.rb +59 -0
- data/spec/framework_spec/app/spec/core/array/pack/at_spec.rb +30 -0
- data/spec/framework_spec/app/spec/core/array/pack/b_spec.rb +109 -0
- data/spec/framework_spec/app/spec/core/array/pack/c_spec.rb +83 -0
- data/spec/framework_spec/app/spec/core/array/pack/comment_spec.rb +25 -0
- data/spec/framework_spec/app/spec/core/array/pack/d_spec.rb +39 -0
- data/spec/framework_spec/app/spec/core/array/pack/e_spec.rb +25 -0
- data/spec/framework_spec/app/spec/core/array/pack/f_spec.rb +39 -0
- data/spec/framework_spec/app/spec/core/array/pack/g_spec.rb +25 -0
- data/spec/framework_spec/app/spec/core/array/pack/h_spec.rb +201 -0
- data/spec/framework_spec/app/spec/core/array/pack/i_spec.rb +73 -0
- data/spec/framework_spec/app/spec/core/array/pack/l_spec.rb +193 -0
- data/spec/framework_spec/app/spec/core/array/pack/m_spec.rb +337 -0
- data/spec/framework_spec/app/spec/core/array/pack/n_spec.rb +25 -0
- data/spec/framework_spec/app/spec/core/array/pack/percent_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/array/pack/q_spec.rb +43 -0
- data/spec/framework_spec/app/spec/core/array/pack/s_spec.rb +73 -0
- data/spec/framework_spec/app/spec/core/array/pack/shared/basic.rb +57 -0
- data/spec/framework_spec/app/spec/core/array/pack/shared/encodings.rb +16 -0
- data/spec/framework_spec/app/spec/core/array/pack/shared/float.rb +277 -0
- data/spec/framework_spec/app/spec/core/array/pack/shared/integer.rb +381 -0
- data/spec/framework_spec/app/spec/core/array/pack/shared/numeric_basic.rb +54 -0
- data/spec/framework_spec/app/spec/core/array/pack/shared/string.rb +83 -0
- data/spec/framework_spec/app/spec/core/array/pack/shared/unicode.rb +89 -0
- data/spec/framework_spec/app/spec/core/array/pack/u_spec.rb +130 -0
- data/spec/framework_spec/app/spec/core/array/pack/v_spec.rb +25 -0
- data/spec/framework_spec/app/spec/core/array/pack/w_spec.rb +44 -0
- data/spec/framework_spec/app/spec/core/array/pack/x_spec.rb +64 -0
- data/spec/framework_spec/app/spec/core/array/pack/z_spec.rb +32 -0
- data/spec/framework_spec/app/spec/core/array/pack_spec.rb +409 -369
- data/spec/framework_spec/app/spec/core/array/partition_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/array/permutation_spec.rb +34 -15
- data/spec/framework_spec/app/spec/core/array/plus_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/array/pop_spec.rb +17 -4
- data/spec/framework_spec/app/spec/core/array/product_spec.rb +49 -5
- data/spec/framework_spec/app/spec/core/array/push_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/array/rassoc_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/array/reject_spec.rb +42 -29
- data/spec/framework_spec/app/spec/core/array/repeated_combination_spec.rb +59 -0
- data/spec/framework_spec/app/spec/core/array/repeated_permutation_spec.rb +72 -0
- data/spec/framework_spec/app/spec/core/array/replace_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/reverse_each_spec.rb +26 -39
- data/spec/framework_spec/app/spec/core/array/reverse_spec.rb +15 -7
- data/spec/framework_spec/app/spec/core/array/rindex_spec.rb +28 -16
- data/spec/framework_spec/app/spec/core/array/rotate_spec.rb +85 -0
- data/spec/framework_spec/app/spec/core/array/sample_spec.rb +4 -10
- data/spec/framework_spec/app/spec/core/array/select_spec.rb +16 -3
- data/spec/framework_spec/app/spec/core/array/shared/clone.rb +2 -2
- data/spec/framework_spec/app/spec/core/array/shared/collect.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/shared/enumeratorize.rb +12 -0
- data/spec/framework_spec/app/spec/core/array/shared/eql.rb +9 -5
- data/spec/framework_spec/app/spec/core/array/shared/indexes.rb +1 -1
- data/spec/framework_spec/app/spec/core/array/shared/join.rb +122 -90
- data/spec/framework_spec/app/spec/core/array/shared/keep_if.rb +11 -0
- data/spec/framework_spec/app/spec/core/array/shared/slice.rb +67 -6
- data/spec/framework_spec/app/spec/core/array/shift_spec.rb +18 -4
- data/spec/framework_spec/app/spec/core/array/shuffle_spec.rb +23 -14
- data/spec/framework_spec/app/spec/core/array/size_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/slice_spec.rb +19 -3
- data/spec/framework_spec/app/spec/core/array/sort_by_spec.rb +48 -0
- data/spec/framework_spec/app/spec/core/array/sort_spec.rb +65 -65
- data/spec/framework_spec/app/spec/core/array/take_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/array/take_while_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/array/to_a_spec.rb +7 -8
- data/spec/framework_spec/app/spec/core/array/to_ary_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/array/to_s_spec.rb +2 -5
- data/spec/framework_spec/app/spec/core/array/transpose_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/array/try_convert_spec.rb +15 -17
- data/spec/framework_spec/app/spec/core/array/union_spec.rb +13 -13
- data/spec/framework_spec/app/spec/core/array/uniq_spec.rb +41 -15
- data/spec/framework_spec/app/spec/core/array/unshift_spec.rb +9 -7
- data/spec/framework_spec/app/spec/core/array/values_at_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/array/zip_spec.rb +15 -3
- data/spec/framework_spec/app/spec/core/basicobject/__send___spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/basicobject/ancestors_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/basicobject/basicobject_spec.rb +67 -0
- data/spec/framework_spec/app/spec/core/basicobject/class_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/basicobject/equal_spec.rb +20 -0
- data/spec/framework_spec/app/spec/core/basicobject/equal_value_spec.rb +26 -0
- data/spec/framework_spec/app/spec/core/basicobject/fixtures/common.rb +5 -0
- data/spec/framework_spec/app/spec/core/basicobject/fixtures/remove_method_missing.rb +9 -0
- data/spec/framework_spec/app/spec/core/basicobject/initialize_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/basicobject/instance_eval_spec.rb +14 -0
- data/spec/framework_spec/app/spec/core/basicobject/instance_exec_spec.rb +19 -0
- data/spec/framework_spec/app/spec/core/basicobject/method_missing_spec.rb +15 -0
- data/spec/framework_spec/app/spec/core/basicobject/new_spec.rb +7 -5
- data/spec/framework_spec/app/spec/core/basicobject/not_equal_spec.rb +26 -0
- data/spec/framework_spec/app/spec/core/basicobject/not_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/basicobject/singleton_method_added_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/basicobject/singleton_method_removed_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/basicobject/singleton_method_undefined_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/basicobject/superclass_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/bignum/abs_spec.rb +4 -5
- data/spec/framework_spec/app/spec/core/bignum/bit_and_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/bignum/bit_or_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/bignum/bit_xor_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/bignum/case_compare_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/bignum/coerce_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/bignum/comparison_spec.rb +143 -20
- data/spec/framework_spec/app/spec/core/bignum/complement_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/bignum/div_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/bignum/divide_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/bignum/divmod_spec.rb +11 -6
- data/spec/framework_spec/app/spec/core/bignum/element_reference_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/bignum/eql_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/bignum/equal_value_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/bignum/even_spec.rb +21 -0
- data/spec/framework_spec/app/spec/core/bignum/exponent_spec.rb +16 -2
- data/spec/framework_spec/app/spec/core/bignum/fdiv_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/bignum/gt_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/bignum/gte_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/bignum/hash_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/bignum/left_shift_spec.rb +64 -40
- data/spec/framework_spec/app/spec/core/bignum/lt_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/bignum/lte_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/bignum/magnitude_spec.rb +10 -0
- data/spec/framework_spec/app/spec/core/bignum/minus_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/bignum/modulo_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/bignum/multiply_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/bignum/odd_spec.rb +21 -0
- data/spec/framework_spec/app/spec/core/bignum/plus_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/bignum/quo_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/bignum/remainder_spec.rb +19 -8
- data/spec/framework_spec/app/spec/core/bignum/right_shift_spec.rb +93 -34
- data/spec/framework_spec/app/spec/core/bignum/shared/abs.rb +6 -0
- data/spec/framework_spec/app/spec/core/bignum/shared/divide.rb +2 -2
- data/spec/framework_spec/app/spec/core/bignum/shared/modulo.rb +13 -4
- data/spec/framework_spec/app/spec/core/bignum/size_spec.rb +15 -1
- data/spec/framework_spec/app/spec/core/bignum/to_f_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/bignum/to_s_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/bignum/uminus_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/binding/clone_spec.rb +7 -8
- data/spec/framework_spec/app/spec/core/binding/dup_spec.rb +7 -8
- data/spec/framework_spec/app/spec/core/binding/eval_spec.rb +19 -25
- data/spec/framework_spec/app/spec/core/binding/fixtures/classes.rb +1 -1
- data/spec/framework_spec/app/spec/core/builtin_constants/builtin_constants_spec.rb +57 -0
- data/spec/framework_spec/app/spec/core/class/allocate_spec.rb +11 -5
- data/spec/framework_spec/app/spec/core/class/dup_spec.rb +72 -0
- data/spec/framework_spec/app/spec/core/class/fixtures/classes.rb +5 -5
- data/spec/framework_spec/app/spec/core/class/inherited_spec.rb +22 -22
- data/spec/framework_spec/app/spec/core/class/initialize_copy_spec.rb +22 -1
- data/spec/framework_spec/app/spec/core/class/initialize_spec.rb +37 -6
- data/spec/framework_spec/app/spec/core/class/new_spec.rb +11 -2
- data/spec/framework_spec/app/spec/core/class/superclass_spec.rb +37 -8
- data/spec/framework_spec/app/spec/core/comparable/between_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/comparable/equal_value_spec.rb +11 -11
- data/spec/framework_spec/app/spec/core/comparable/fixtures/classes.rb +3 -3
- data/spec/framework_spec/app/spec/core/comparable/gt_spec.rb +8 -8
- data/spec/framework_spec/app/spec/core/comparable/gte_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/comparable/lt_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/comparable/lte_spec.rb +8 -8
- data/spec/framework_spec/app/spec/core/complex/Complex_spec.rb +20 -0
- data/spec/framework_spec/app/spec/core/complex/abs2_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/complex/abs_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/complex/angle_spec.rb +10 -0
- data/spec/framework_spec/app/spec/core/complex/arg_spec.rb +10 -0
- data/spec/framework_spec/app/spec/core/complex/coerce_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/complex/conj_spec.rb +10 -0
- data/spec/framework_spec/app/spec/core/complex/conjugate_spec.rb +10 -0
- data/spec/framework_spec/app/spec/core/complex/denominator_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/complex/divide_spec.rb +24 -0
- data/spec/framework_spec/app/spec/core/complex/eql_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/equal_value_spec.rb +16 -0
- data/spec/framework_spec/app/spec/core/complex/exponent_spec.rb +24 -0
- data/spec/framework_spec/app/spec/core/complex/fdiv_spec.rb +131 -0
- data/spec/framework_spec/app/spec/core/complex/hash_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/complex/imag_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/imaginary_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/inspect_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/integer_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/complex/magnitude_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/complex/marshal_dump_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/marshal_load_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/minus_spec.rb +15 -0
- data/spec/framework_spec/app/spec/core/complex/multiply_spec.rb +16 -0
- data/spec/framework_spec/app/spec/core/complex/numerator_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/phase_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/plus_spec.rb +16 -0
- data/spec/framework_spec/app/spec/core/complex/polar_spec.rb +17 -0
- data/spec/framework_spec/app/spec/core/complex/quo_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/rationalize_spec.rb +15 -0
- data/spec/framework_spec/app/spec/core/complex/real_spec.rb +26 -0
- data/spec/framework_spec/app/spec/core/complex/rect_spec.rb +11 -0
- data/spec/framework_spec/app/spec/core/complex/rectangular_spec.rb +14 -0
- data/spec/framework_spec/app/spec/core/complex/to_f_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/to_i_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/to_r_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/to_s_spec.rb +12 -0
- data/spec/framework_spec/app/spec/core/complex/uminus_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/continuation/call_spec.rb +8 -1
- data/spec/framework_spec/app/spec/core/continuation/element_reference_spec.rb +8 -1
- data/spec/framework_spec/app/spec/core/continuation/new_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/dir/chdir_spec.rb +64 -17
- data/spec/framework_spec/app/spec/core/dir/chroot_spec.rb +50 -26
- data/spec/framework_spec/app/spec/core/dir/close_spec.rb +32 -16
- data/spec/framework_spec/app/spec/core/dir/delete_spec.rb +11 -3
- data/spec/framework_spec/app/spec/core/dir/dir_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/dir/each_spec.rb +24 -8
- data/spec/framework_spec/app/spec/core/dir/element_reference_spec.rb +19 -3
- data/spec/framework_spec/app/spec/core/dir/entries_spec.rb +19 -3
- data/spec/framework_spec/app/spec/core/dir/exist_spec.rb +17 -0
- data/spec/framework_spec/app/spec/core/dir/exists_spec.rb +17 -0
- data/spec/framework_spec/app/spec/core/dir/fixtures/common.rb +96 -73
- data/spec/framework_spec/app/spec/core/dir/foreach_spec.rb +20 -4
- data/spec/framework_spec/app/spec/core/dir/getwd_spec.rb +12 -4
- data/spec/framework_spec/app/spec/core/dir/glob_spec.rb +60 -8
- data/spec/framework_spec/app/spec/core/dir/home_spec.rb +15 -6
- data/spec/framework_spec/app/spec/core/dir/initialize_spec.rb +29 -2
- data/spec/framework_spec/app/spec/core/dir/inspect_spec.rb +26 -0
- data/spec/framework_spec/app/spec/core/dir/mkdir_spec.rb +56 -21
- data/spec/framework_spec/app/spec/core/dir/open_spec.rb +11 -3
- data/spec/framework_spec/app/spec/core/dir/path_spec.rb +8 -24
- data/spec/framework_spec/app/spec/core/dir/pos_spec.rb +28 -4
- data/spec/framework_spec/app/spec/core/dir/pwd_spec.rb +44 -20
- data/spec/framework_spec/app/spec/core/dir/read_spec.rb +11 -5
- data/spec/framework_spec/app/spec/core/dir/rewind_spec.rb +13 -7
- data/spec/framework_spec/app/spec/core/dir/rmdir_spec.rb +11 -3
- data/spec/framework_spec/app/spec/core/dir/seek_spec.rb +11 -3
- data/spec/framework_spec/app/spec/core/dir/shared/chroot.rb +43 -0
- data/spec/framework_spec/app/spec/core/dir/shared/delete.rb +27 -8
- data/spec/framework_spec/app/spec/core/dir/shared/exists.rb +53 -0
- data/spec/framework_spec/app/spec/core/dir/shared/glob.rb +61 -8
- data/spec/framework_spec/app/spec/core/dir/shared/open.rb +18 -2
- data/spec/framework_spec/app/spec/core/dir/shared/path.rb +29 -0
- data/spec/framework_spec/app/spec/core/dir/shared/pos.rb +1 -1
- data/spec/framework_spec/app/spec/core/dir/shared/pwd.rb +13 -13
- data/spec/framework_spec/app/spec/core/dir/tell_spec.rb +12 -6
- data/spec/framework_spec/app/spec/core/dir/to_path.rb +17 -0
- data/spec/framework_spec/app/spec/core/dir/to_path_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/dir/unlink_spec.rb +11 -3
- data/spec/framework_spec/app/spec/core/encoding/_dump_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/encoding/_load_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/encoding/aliases_spec.rb +45 -0
- data/spec/framework_spec/app/spec/core/encoding/ascii_compatible_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/encoding/compatible_spec.rb +26 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/asciicompat_encoding_spec.rb +48 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/constants_spec.rb +133 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/convert_spec.rb +46 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/convpath_spec.rb +65 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/destination_encoding_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/finish_spec.rb +38 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/insert_output_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/inspect_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/last_error_spec.rb +84 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/primitive_convert_spec.rb +137 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/primitive_errinfo_spec.rb +71 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/putback_spec.rb +49 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/replacement_spec.rb +63 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/search_convpath_spec.rb +73 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/source_encoding_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/encoding/default_external_spec.rb +57 -0
- data/spec/framework_spec/app/spec/core/encoding/default_internal_spec.rb +83 -0
- data/spec/framework_spec/app/spec/core/encoding/dummy_spec.rb +16 -0
- data/spec/framework_spec/app/spec/core/encoding/find_spec.rb +82 -0
- data/spec/framework_spec/app/spec/core/encoding/fixtures/classes.rb +48 -0
- data/spec/framework_spec/app/spec/core/encoding/inspect_spec.rb +21 -0
- data/spec/framework_spec/app/spec/core/encoding/invalid_byte_sequence_error/destination_encoding_name_spec.rb +20 -0
- data/spec/framework_spec/app/spec/core/encoding/invalid_byte_sequence_error/destination_encoding_spec.rb +20 -0
- data/spec/framework_spec/app/spec/core/encoding/invalid_byte_sequence_error/error_bytes_spec.rb +31 -0
- data/spec/framework_spec/app/spec/core/encoding/invalid_byte_sequence_error/incomplete_input_spec.rb +30 -0
- data/spec/framework_spec/app/spec/core/encoding/invalid_byte_sequence_error/readagain_bytes_spec.rb +31 -0
- data/spec/framework_spec/app/spec/core/encoding/invalid_byte_sequence_error/source_encoding_name_spec.rb +30 -0
- data/spec/framework_spec/app/spec/core/encoding/invalid_byte_sequence_error/source_encoding_spec.rb +35 -0
- data/spec/framework_spec/app/spec/core/encoding/list_spec.rb +43 -0
- data/spec/framework_spec/app/spec/core/encoding/locale_charmap_spec.rb +38 -0
- data/spec/framework_spec/app/spec/core/encoding/name_list_spec.rb +25 -0
- data/spec/framework_spec/app/spec/core/encoding/name_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/encoding/names_spec.rb +37 -0
- data/spec/framework_spec/app/spec/core/encoding/replicate_spec.rb +34 -0
- data/spec/framework_spec/app/spec/core/encoding/shared/name.rb +15 -0
- data/spec/framework_spec/app/spec/core/encoding/to_s_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/encoding/undefined_conversion_error/destination_encoding_name_spec.rb +17 -0
- data/spec/framework_spec/app/spec/core/encoding/undefined_conversion_error/destination_encoding_spec.rb +17 -0
- data/spec/framework_spec/app/spec/core/encoding/undefined_conversion_error/error_char_spec.rb +29 -0
- data/spec/framework_spec/app/spec/core/encoding/undefined_conversion_error/source_encoding_name_spec.rb +30 -0
- data/spec/framework_spec/app/spec/core/encoding/undefined_conversion_error/source_encoding_spec.rb +31 -0
- data/spec/framework_spec/app/spec/core/enumerable/all_spec.rb +2 -15
- data/spec/framework_spec/app/spec/core/enumerable/any_spec.rb +2 -7
- data/spec/framework_spec/app/spec/core/enumerable/chunk_spec.rb +44 -0
- data/spec/framework_spec/app/spec/core/enumerable/collect_concat_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/enumerable/collect_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/count_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/cycle_spec.rb +20 -6
- data/spec/framework_spec/app/spec/core/enumerable/detect_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/drop_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/enumerable/drop_while_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/enumerable/each_cons_spec.rb +8 -8
- data/spec/framework_spec/app/spec/core/enumerable/each_entry_spec.rb +40 -0
- data/spec/framework_spec/app/spec/core/enumerable/each_slice_spec.rb +8 -8
- data/spec/framework_spec/app/spec/core/enumerable/each_with_index_spec.rb +15 -15
- data/spec/framework_spec/app/spec/core/enumerable/each_with_object_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/enumerable/entries_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/enumerable/find_all_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/{find_index.rb → find_index_spec.rb} +5 -5
- data/spec/framework_spec/app/spec/core/enumerable/find_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/first_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/enumerable/fixtures/classes.rb +67 -16
- data/spec/framework_spec/app/spec/core/enumerable/flat_map_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/enumerable/grep_spec.rb +12 -7
- data/spec/framework_spec/app/spec/core/enumerable/group_by_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/enumerable/include_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/inject_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/map_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/enumerable/max_by_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/max_spec.rb +27 -12
- data/spec/framework_spec/app/spec/core/enumerable/member_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/min_by_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/min_spec.rb +27 -11
- data/spec/framework_spec/app/spec/core/enumerable/minmax_by_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/minmax_spec.rb +26 -10
- data/spec/framework_spec/app/spec/core/enumerable/none_spec.rb +42 -0
- data/spec/framework_spec/app/spec/core/enumerable/one_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/enumerable/partition_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/reduce_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/reject_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/enumerable/reverse_each_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/select_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/shared/collect.rb +13 -5
- data/spec/framework_spec/app/spec/core/enumerable/shared/collect_concat.rb +27 -0
- data/spec/framework_spec/app/spec/core/enumerable/shared/entries.rb +5 -1
- data/spec/framework_spec/app/spec/core/enumerable/shared/find.rb +24 -11
- data/spec/framework_spec/app/spec/core/enumerable/shared/find_all.rb +9 -3
- data/spec/framework_spec/app/spec/core/enumerable/shared/include.rb +14 -3
- data/spec/framework_spec/app/spec/core/enumerable/shared/inject.rb +8 -8
- data/spec/framework_spec/app/spec/core/enumerable/shared/take.rb +5 -3
- data/spec/framework_spec/app/spec/core/enumerable/slice_before_spec.rb +77 -0
- data/spec/framework_spec/app/spec/core/enumerable/sort_by_spec.rb +10 -2
- data/spec/framework_spec/app/spec/core/enumerable/sort_spec.rb +22 -9
- data/spec/framework_spec/app/spec/core/enumerable/take_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/enumerable/take_while_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/enumerable/to_a_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/enumerable/zip_spec.rb +18 -7
- data/spec/framework_spec/app/spec/core/enumerator/each_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/enumerator/each_with_index_spec.rb +25 -0
- data/spec/framework_spec/app/spec/core/enumerator/each_with_object_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/enumerator/enum_for_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/enumerator/feed_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/enumerator/generator/each_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/enumerator/inspect_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/enumerator/new_spec.rb +28 -0
- data/spec/framework_spec/app/spec/core/enumerator/next_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/enumerator/next_values_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/enumerator/peek_spec.rb +38 -0
- data/spec/framework_spec/app/spec/core/enumerator/peek_values_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/enumerator/rewind_spec.rb +27 -0
- data/spec/framework_spec/app/spec/core/enumerator/to_enum_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/enumerator/with_index_spec.rb +68 -0
- data/spec/framework_spec/app/spec/core/enumerator/with_object_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/enumerator/yielder/append_spec.rb +19 -0
- data/spec/framework_spec/app/spec/core/enumerator/yielder/yield_spec.rb +18 -0
- data/spec/framework_spec/app/spec/core/env/clear_spec.rb +19 -13
- data/spec/framework_spec/app/spec/core/env/delete_if_spec.rb +26 -28
- data/spec/framework_spec/app/spec/core/env/delete_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/env/each_key_spec.rb +39 -33
- data/spec/framework_spec/app/spec/core/env/each_pair_spec.rb +6 -7
- data/spec/framework_spec/app/spec/core/env/each_spec.rb +6 -7
- data/spec/framework_spec/app/spec/core/env/each_value_spec.rb +39 -33
- data/spec/framework_spec/app/spec/core/env/element_reference_spec.rb +25 -2
- data/spec/framework_spec/app/spec/core/env/element_set_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/env/empty_spec.rb +23 -24
- data/spec/framework_spec/app/spec/core/env/fetch_spec.rb +6 -1
- data/spec/framework_spec/app/spec/core/env/has_key_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/env/has_value_spec.rb +6 -7
- data/spec/framework_spec/app/spec/core/env/include_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/env/index_spec.rb +6 -1
- data/spec/framework_spec/app/spec/core/env/indexes_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/env/indices_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/env/inspect_spec.rb +11 -12
- data/spec/framework_spec/app/spec/core/env/invert_spec.rb +12 -13
- data/spec/framework_spec/app/spec/core/env/key_spec.rb +9 -2
- data/spec/framework_spec/app/spec/core/env/keys_spec.rb +16 -9
- data/spec/framework_spec/app/spec/core/env/length_spec.rb +6 -7
- data/spec/framework_spec/app/spec/core/env/member_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/env/rehash_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/env/reject_spec.rb +88 -89
- data/spec/framework_spec/app/spec/core/env/replace_spec.rb +15 -16
- data/spec/framework_spec/app/spec/core/env/select_spec.rb +32 -23
- data/spec/framework_spec/app/spec/core/env/shared/each.rb +10 -1
- data/spec/framework_spec/app/spec/core/env/shared/key.rb +15 -0
- data/spec/framework_spec/app/spec/core/env/shared/store.rb +18 -12
- data/spec/framework_spec/app/spec/core/env/shared/value.rb +7 -0
- data/spec/framework_spec/app/spec/core/env/shift_spec.rb +27 -28
- data/spec/framework_spec/app/spec/core/env/size_spec.rb +6 -7
- data/spec/framework_spec/app/spec/core/env/store_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/env/to_a_spec.rb +21 -13
- data/spec/framework_spec/app/spec/core/env/to_hash_spec.rb +12 -13
- data/spec/framework_spec/app/spec/core/env/to_s_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/env/update_spec.rb +1 -2
- data/spec/framework_spec/app/spec/core/env/value_spec.rb +6 -7
- data/spec/framework_spec/app/spec/core/env/values_at_spec.rb +7 -1
- data/spec/framework_spec/app/spec/core/env/values_spec.rb +23 -16
- data/spec/framework_spec/app/spec/core/exception/args_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/exception/arguments_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/exception/backtrace_spec.rb +51 -1
- data/spec/framework_spec/app/spec/core/exception/case_compare_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/exception/destination_encoding_name_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/exception/destination_encoding_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/exception/equal_value_spec.rb +84 -0
- data/spec/framework_spec/app/spec/core/exception/errno_spec.rb +16 -1
- data/spec/framework_spec/app/spec/core/exception/error_bytes_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/exception/error_char_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/exception/exception_spec.rb +69 -5
- data/spec/framework_spec/app/spec/core/exception/exit_value_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/exception/fixtures/common.rb +33 -1
- data/spec/framework_spec/app/spec/core/exception/incomplete_input_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/exception/initialize_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/exception/inspect_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/exception/io_error_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/exception/message_spec.rb +14 -4
- data/spec/framework_spec/app/spec/core/exception/name_error_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/exception/name_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/exception/new_spec.rb +3 -2
- data/spec/framework_spec/app/spec/core/exception/no_method_error_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/exception/range_error_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/exception/readagain_bytes_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/exception/reason_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/exception/result_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/exception/script_error_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/exception/set_backtrace_spec.rb +10 -1
- data/spec/framework_spec/app/spec/core/exception/shared/new.rb +5 -0
- data/spec/framework_spec/app/spec/core/exception/shared/to_s.rb +3 -3
- data/spec/framework_spec/app/spec/core/exception/signm_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/exception/signo_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/exception/source_encoding_name_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/exception/source_encoding_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/exception/standard_error_spec.rb +56 -55
- data/spec/framework_spec/app/spec/core/exception/status_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/exception/success_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/exception/system_call_error_spec.rb +14 -5
- data/spec/framework_spec/app/spec/core/exception/to_s_spec.rb +7 -3
- data/spec/framework_spec/app/spec/core/exception/to_str_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/false/and_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/false/inspect_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/false/or_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/false/to_s_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/false/xor_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/fiber/new_spec.rb +48 -49
- data/spec/framework_spec/app/spec/core/fiber/resume_spec.rb +39 -23
- data/spec/framework_spec/app/spec/core/fiber/yield_spec.rb +34 -36
- data/spec/framework_spec/app/spec/core/file/absolute_path_spec.rb +31 -0
- data/spec/framework_spec/app/spec/core/file/atime_spec.rb +12 -5
- data/spec/framework_spec/app/spec/core/file/basename_spec.rb +25 -26
- data/spec/framework_spec/app/spec/core/file/blockdev_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/chardev_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/chmod_spec.rb +14 -10
- data/spec/framework_spec/app/spec/core/file/chown_spec.rb +22 -4
- data/spec/framework_spec/app/spec/core/file/constants/constants_spec.rb +7 -7
- data/spec/framework_spec/app/spec/core/file/constants_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/file/ctime_spec.rb +13 -6
- data/spec/framework_spec/app/spec/core/file/delete_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/directory_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/file/dirname_spec.rb +12 -2
- data/spec/framework_spec/app/spec/core/file/executable_real_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/executable_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/exist_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/exists_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/expand_path_spec.rb +133 -31
- data/spec/framework_spec/app/spec/core/file/extname_spec.rb +7 -1
- data/spec/framework_spec/app/spec/core/file/file_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/fixtures/common.rb +22 -0
- data/spec/framework_spec/app/spec/core/file/fixtures/file_types.rb +3 -9
- data/spec/framework_spec/app/spec/core/file/flock_spec.rb +56 -18
- data/spec/framework_spec/app/spec/core/file/fnmatch_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/ftype_spec.rb +43 -45
- data/spec/framework_spec/app/spec/core/file/grpowned_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/identical_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/initialize_spec.rb +25 -1
- data/spec/framework_spec/app/spec/core/file/inspect_spec.rb +14 -7
- data/spec/framework_spec/app/spec/core/file/join_spec.rb +37 -10
- data/spec/framework_spec/app/spec/core/file/lchmod_spec.rb +13 -13
- data/spec/framework_spec/app/spec/core/file/lchown_spec.rb +12 -6
- data/spec/framework_spec/app/spec/core/file/link_spec.rb +7 -9
- data/spec/framework_spec/app/spec/core/file/lstat_spec.rb +16 -11
- data/spec/framework_spec/app/spec/core/file/mtime_spec.rb +7 -6
- data/spec/framework_spec/app/spec/core/file/new_spec.rb +60 -44
- data/spec/framework_spec/app/spec/core/file/open_spec.rb +104 -120
- data/spec/framework_spec/app/spec/core/file/owned_spec.rb +26 -3
- data/spec/framework_spec/app/spec/core/file/path_spec.rb +11 -10
- data/spec/framework_spec/app/spec/core/file/pipe_spec.rb +25 -3
- data/spec/framework_spec/app/spec/core/file/read_spec.rb +6 -0
- data/spec/framework_spec/app/spec/core/file/readable_real_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/readable_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/readlink_spec.rb +17 -13
- data/spec/framework_spec/app/spec/core/file/realdirpath_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/file/realpath_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/file/rename_spec.rb +24 -27
- data/spec/framework_spec/app/spec/core/file/reopen_spec.rb +27 -0
- data/spec/framework_spec/app/spec/core/file/setgid_spec.rb +21 -21
- data/spec/framework_spec/app/spec/core/file/setuid_spec.rb +21 -21
- data/spec/framework_spec/app/spec/core/file/shared/fnmatch.rb +11 -5
- data/spec/framework_spec/app/spec/core/file/shared/open.rb +9 -0
- data/spec/framework_spec/app/spec/core/file/shared/read.rb +21 -0
- data/spec/framework_spec/app/spec/core/file/shared/stat.rb +31 -17
- data/spec/framework_spec/app/spec/core/file/shared/unlink.rb +8 -4
- data/spec/framework_spec/app/spec/core/file/size_spec.rb +111 -22
- data/spec/framework_spec/app/spec/core/file/socket_spec.rb +24 -3
- data/spec/framework_spec/app/spec/core/file/split_spec.rb +12 -7
- data/spec/framework_spec/app/spec/core/file/stat/atime_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/file/stat/blksize_spec.rb +6 -5
- data/spec/framework_spec/app/spec/core/file/stat/blockdev_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/blocks_spec.rb +6 -5
- data/spec/framework_spec/app/spec/core/file/stat/chardev_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/file/stat/comparison_spec.rb +14 -9
- data/spec/framework_spec/app/spec/core/file/stat/ctime_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/file/stat/dev_major_spec.rb +12 -3
- data/spec/framework_spec/app/spec/core/file/stat/dev_minor_spec.rb +13 -3
- data/spec/framework_spec/app/spec/core/file/stat/dev_spec.rb +10 -2
- data/spec/framework_spec/app/spec/core/file/stat/directory_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/executable_real_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/executable_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/file_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/ftype_spec.rb +14 -17
- data/spec/framework_spec/app/spec/core/file/stat/gid_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/file/stat/grpowned_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/ino_spec.rb +6 -5
- data/spec/framework_spec/app/spec/core/file/stat/inspect_spec.rb +8 -10
- data/spec/framework_spec/app/spec/core/file/stat/mode_spec.rb +6 -5
- data/spec/framework_spec/app/spec/core/file/stat/mtime_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/file/stat/new_spec.rb +11 -4
- data/spec/framework_spec/app/spec/core/file/stat/nlink_spec.rb +5 -6
- data/spec/framework_spec/app/spec/core/file/stat/owned_spec.rb +24 -4
- data/spec/framework_spec/app/spec/core/file/stat/pipe_spec.rb +25 -4
- data/spec/framework_spec/app/spec/core/file/stat/rdev_major_spec.rb +11 -3
- data/spec/framework_spec/app/spec/core/file/stat/rdev_minor_spec.rb +13 -3
- data/spec/framework_spec/app/spec/core/file/stat/rdev_spec.rb +10 -2
- data/spec/framework_spec/app/spec/core/file/stat/readable_real_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/readable_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/setgid_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/setuid_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/size_spec.rb +18 -4
- data/spec/framework_spec/app/spec/core/file/stat/socket_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/sticky_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/symlink_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/uid_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/file/stat/world_readable_spec.rb +15 -0
- data/spec/framework_spec/app/spec/core/file/stat/world_writable_spec.rb +17 -0
- data/spec/framework_spec/app/spec/core/file/stat/writable_real_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/writable_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/zero_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat_spec.rb +23 -6
- data/spec/framework_spec/app/spec/core/file/sticky_spec.rb +49 -3
- data/spec/framework_spec/app/spec/core/file/symlink_spec.rb +18 -11
- data/spec/framework_spec/app/spec/core/file/to_path_spec.rb +48 -0
- data/spec/framework_spec/app/spec/core/file/truncate_spec.rb +34 -39
- data/spec/framework_spec/app/spec/core/file/umask_spec.rb +20 -21
- data/spec/framework_spec/app/spec/core/file/unlink_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/utime_spec.rb +20 -5
- data/spec/framework_spec/app/spec/core/file/world_readable_spec.rb +14 -0
- data/spec/framework_spec/app/spec/core/file/world_writable_spec.rb +16 -0
- data/spec/framework_spec/app/spec/core/file/writable_real_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/writable_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/zero_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/blockdev_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/chardev_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/filetest/directory_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/filetest/executable_real_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/executable_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/exist_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/exists_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/file_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/filetest/grpowned_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/filetest/identical_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/owned_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/filetest/pipe_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/filetest/readable_real_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/readable_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/setgid_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/filetest/setuid_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/filetest/size_spec.rb +31 -4
- data/spec/framework_spec/app/spec/core/filetest/socket_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/filetest/sticky_spec.rb +3 -2
- data/spec/framework_spec/app/spec/core/filetest/symlink_spec.rb +5 -2
- data/spec/framework_spec/app/spec/core/filetest/world_readable_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/filetest/world_writable_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/filetest/writable_real_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/writable_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/zero_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/fixnum/abs_spec.rb +4 -8
- data/spec/framework_spec/app/spec/core/fixnum/bit_and_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/fixnum/bit_or_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/fixnum/bit_xor_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/fixnum/case_compare_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/fixnum/coerce_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/fixnum/comparison_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/fixnum/complement_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/fixnum/div_spec.rb +17 -7
- data/spec/framework_spec/app/spec/core/fixnum/divide_spec.rb +7 -3
- data/spec/framework_spec/app/spec/core/fixnum/divmod_spec.rb +16 -6
- data/spec/framework_spec/app/spec/core/fixnum/element_reference_spec.rb +45 -19
- data/spec/framework_spec/app/spec/core/fixnum/equal_value_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/fixnum/even_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/fixnum/exponent_spec.rb +59 -7
- data/spec/framework_spec/app/spec/core/fixnum/fdiv_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/fixnum/gt_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/fixnum/gte_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/fixnum/hash_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/fixnum/id2name_spec.rb +15 -13
- data/spec/framework_spec/app/spec/core/fixnum/induced_from_spec.rb +36 -35
- data/spec/framework_spec/app/spec/core/fixnum/left_shift_spec.rb +72 -42
- data/spec/framework_spec/app/spec/core/fixnum/lt_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/fixnum/lte_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/fixnum/magnitude_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/fixnum/minus_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/fixnum/modulo_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/fixnum/multiply_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/fixnum/odd_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/fixnum/plus_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/fixnum/quo_spec.rb +16 -6
- data/spec/framework_spec/app/spec/core/fixnum/right_shift_spec.rb +84 -40
- data/spec/framework_spec/app/spec/core/fixnum/shared/abs.rb +9 -0
- data/spec/framework_spec/app/spec/core/fixnum/shared/modulo.rb +17 -7
- data/spec/framework_spec/app/spec/core/fixnum/size_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/fixnum/succ_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/fixnum/to_f_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/fixnum/to_s_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/fixnum/to_sym_spec.rb +16 -14
- data/spec/framework_spec/app/spec/core/fixnum/uminus_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/fixnum/zero_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/float/abs_spec.rb +2 -6
- data/spec/framework_spec/app/spec/core/float/angle_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/float/arg_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/float/case_compare_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/float/ceil_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/coerce_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/comparison_spec.rb +52 -1
- data/spec/framework_spec/app/spec/core/float/constants_spec.rb +25 -17
- data/spec/framework_spec/app/spec/core/float/denominator_spec.rb +31 -0
- data/spec/framework_spec/app/spec/core/float/divide_spec.rb +7 -3
- data/spec/framework_spec/app/spec/core/float/divmod_spec.rb +26 -1
- data/spec/framework_spec/app/spec/core/float/eql_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/equal_value_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/exponent_spec.rb +10 -2
- data/spec/framework_spec/app/spec/core/float/fdiv_spec.rb +68 -0
- data/spec/framework_spec/app/spec/core/float/finite_spec.rb +3 -1
- data/spec/framework_spec/app/spec/core/float/fixtures/coerce.rb +15 -0
- data/spec/framework_spec/app/spec/core/float/floor_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/gt_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/gte_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/hash_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/induced_from_spec.rb +38 -37
- data/spec/framework_spec/app/spec/core/float/infinite_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/lt_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/lte_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/magnitude_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/float/minus_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/modulo_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/float/multiply_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/float/nan_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/numerator_spec.rb +47 -0
- data/spec/framework_spec/app/spec/core/float/phase_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/float/plus_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/quo_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/float/rationalize_spec.rb +40 -0
- data/spec/framework_spec/app/spec/core/float/round_spec.rb +32 -6
- data/spec/framework_spec/app/spec/core/float/shared/abs.rb +9 -0
- data/spec/framework_spec/app/spec/core/float/shared/modulo.rb +14 -3
- data/spec/framework_spec/app/spec/core/float/to_f_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/to_i_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/float/to_int_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/float/to_r_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/float/to_s_spec.rb +93 -18
- data/spec/framework_spec/app/spec/core/float/truncate_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/float/uminus_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/uplus_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/float/zero_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/gc/count_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/gc/disable_spec.rb +17 -1
- data/spec/framework_spec/app/spec/core/gc/enable_spec.rb +12 -1
- data/spec/framework_spec/app/spec/core/gc/garbage_collect_spec.rb +15 -1
- data/spec/framework_spec/app/spec/core/gc/profiler/clear_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/gc/profiler/disable_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/gc/profiler/enable_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/gc/profiler/enabled_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/gc/profiler/report_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/gc/profiler/result_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/gc/profiler/total_time_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/gc/start_spec.rb +8 -1
- data/spec/framework_spec/app/spec/core/gc/stress_spec.rb +30 -0
- data/spec/framework_spec/app/spec/core/hash/allocate_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/assoc_spec.rb +43 -0
- data/spec/framework_spec/app/spec/core/hash/clear_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/clone_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/hash/compare_by_identity_spec.rb +109 -0
- data/spec/framework_spec/app/spec/core/hash/constructor_spec.rb +8 -4
- data/spec/framework_spec/app/spec/core/hash/default_proc_spec.rb +24 -4
- data/spec/framework_spec/app/spec/core/hash/default_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/hash/delete_if_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/delete_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/each_key_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/each_pair_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/hash/each_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/hash/each_value_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/element_reference_spec.rb +111 -115
- data/spec/framework_spec/app/spec/core/hash/element_set_spec.rb +7 -8
- data/spec/framework_spec/app/spec/core/hash/empty_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/eql_spec.rb +18 -19
- data/spec/framework_spec/app/spec/core/hash/equal_value_spec.rb +18 -14
- data/spec/framework_spec/app/spec/core/hash/fetch_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/fixtures/classes.rb +1 -1
- data/spec/framework_spec/app/spec/core/hash/flatten_spec.rb +64 -0
- data/spec/framework_spec/app/spec/core/hash/has_key_spec.rb +8 -9
- data/spec/framework_spec/app/spec/core/hash/has_value_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/hash_spec.rb +20 -1
- data/spec/framework_spec/app/spec/core/hash/include_spec.rb +7 -8
- data/spec/framework_spec/app/spec/core/hash/index_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/indexes_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/indices_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/initialize_copy_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/initialize_spec.rb +8 -3
- data/spec/framework_spec/app/spec/core/hash/inspect_spec.rb +3 -41
- data/spec/framework_spec/app/spec/core/hash/invert_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/keep_if_spec.rb +31 -0
- data/spec/framework_spec/app/spec/core/hash/key_spec.rb +14 -15
- data/spec/framework_spec/app/spec/core/hash/keys_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/hash/length_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/member_spec.rb +7 -8
- data/spec/framework_spec/app/spec/core/hash/merge_spec.rb +10 -17
- data/spec/framework_spec/app/spec/core/hash/new_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/rassoc_spec.rb +39 -0
- data/spec/framework_spec/app/spec/core/hash/rehash_spec.rb +51 -60
- data/spec/framework_spec/app/spec/core/hash/reject_spec.rb +18 -12
- data/spec/framework_spec/app/spec/core/hash/replace_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/select_spec.rb +38 -5
- data/spec/framework_spec/app/spec/core/hash/shared/each.rb +46 -6
- data/spec/framework_spec/app/spec/core/hash/shared/eql.rb +14 -1
- data/spec/framework_spec/app/spec/core/hash/shared/index.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/shared/iteration.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/shared/key.rb +5 -3
- data/spec/framework_spec/app/spec/core/hash/shared/replace.rb +22 -11
- data/spec/framework_spec/app/spec/core/hash/shared/store.rb +14 -1
- data/spec/framework_spec/app/spec/core/hash/shared/to_s.rb +22 -21
- data/spec/framework_spec/app/spec/core/hash/shared/update.rb +27 -8
- data/spec/framework_spec/app/spec/core/hash/shift_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/size_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/sort_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/store_spec.rb +7 -8
- data/spec/framework_spec/app/spec/core/hash/to_a_spec.rb +16 -3
- data/spec/framework_spec/app/spec/core/hash/to_hash_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/to_s_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/hash/try_convert_spec.rb +32 -0
- data/spec/framework_spec/app/spec/core/hash/update_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/value_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/values_at_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/hash/values_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/integer/ceil_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/integer/chr_spec.rb +141 -18
- data/spec/framework_spec/app/spec/core/integer/denominator_spec.rb +22 -0
- data/spec/framework_spec/app/spec/core/integer/downto_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/integer/even_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/integer/floor_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/integer/gcd_spec.rb +60 -0
- data/spec/framework_spec/app/spec/core/integer/gcdlcm_spec.rb +55 -0
- data/spec/framework_spec/app/spec/core/integer/induced_from_spec.rb +43 -42
- data/spec/framework_spec/app/spec/core/integer/integer_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/integer/lcm_spec.rb +60 -0
- data/spec/framework_spec/app/spec/core/integer/next_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/integer/numerator_spec.rb +20 -0
- data/spec/framework_spec/app/spec/core/integer/odd_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/integer/ord_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/integer/pred_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/integer/rationalize_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/integer/round_spec.rb +35 -2
- data/spec/framework_spec/app/spec/core/integer/shared/next.rb +1 -1
- data/spec/framework_spec/app/spec/core/integer/succ_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/integer/times_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/integer/to_i_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/integer/to_int_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/integer/to_r_spec.rb +28 -0
- data/spec/framework_spec/app/spec/core/integer/truncate_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/integer/upto_spec.rb +8 -8
- data/spec/framework_spec/app/spec/core/io/binmode_spec.rb +21 -5
- data/spec/framework_spec/app/spec/core/io/binread_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/io/bytes_spec.rb +27 -16
- data/spec/framework_spec/app/spec/core/io/chars_spec.rb +35 -19
- data/spec/framework_spec/app/spec/core/io/close_on_exec_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/io/close_read_spec.rb +29 -29
- data/spec/framework_spec/app/spec/core/io/close_spec.rb +15 -19
- data/spec/framework_spec/app/spec/core/io/close_write_spec.rb +13 -14
- data/spec/framework_spec/app/spec/core/io/closed_spec.rb +15 -7
- data/spec/framework_spec/app/spec/core/io/codepoints_spec.rb +29 -0
- data/spec/framework_spec/app/spec/core/io/constants_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/io/copy_stream_spec.rb +50 -0
- data/spec/framework_spec/app/spec/core/io/dup_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/io/each_byte_spec.rb +32 -26
- data/spec/framework_spec/app/spec/core/io/each_char_spec.rb +35 -22
- data/spec/framework_spec/app/spec/core/io/each_codepoint_spec.rb +34 -0
- data/spec/framework_spec/app/spec/core/io/each_line_spec.rb +7 -5
- data/spec/framework_spec/app/spec/core/io/each_spec.rb +8 -6
- data/spec/framework_spec/app/spec/core/io/eof_spec.rb +59 -45
- data/spec/framework_spec/app/spec/core/io/external_encoding_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/io/fcntl_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/io/fdatasync_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/io/fileno_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/io/fixtures/classes.rb +57 -15
- data/spec/framework_spec/app/spec/core/io/fixtures/empty.txt +0 -0
- data/spec/framework_spec/app/spec/core/io/fixtures/{gets.txt → lines.txt} +0 -0
- data/spec/framework_spec/app/spec/core/io/fixtures/reopen_stdout.rb +3 -0
- data/spec/framework_spec/app/spec/core/io/flush_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/io/for_fd_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/io/foreach_spec.rb +132 -90
- data/spec/framework_spec/app/spec/core/io/fsync_spec.rb +15 -15
- data/spec/framework_spec/app/spec/core/io/getbyte_spec.rb +27 -21
- data/spec/framework_spec/app/spec/core/io/getc_spec.rb +30 -24
- data/spec/framework_spec/app/spec/core/io/gets_spec.rb +144 -127
- data/spec/framework_spec/app/spec/core/io/initialize_copy_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/io/initialize_spec.rb +33 -16
- data/spec/framework_spec/app/spec/core/io/inspect_spec.rb +4 -15
- data/spec/framework_spec/app/spec/core/io/internal_encoding_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/io/io_spec.rb +1 -5
- data/spec/framework_spec/app/spec/core/io/ioctl_spec.rb +42 -5
- data/spec/framework_spec/app/spec/core/io/isatty_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/io/lineno_spec.rb +65 -52
- data/spec/framework_spec/app/spec/core/io/lines_spec.rb +28 -22
- data/spec/framework_spec/app/spec/core/io/new_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/io/open_spec.rb +52 -49
- data/spec/framework_spec/app/spec/core/io/output_spec.rb +22 -14
- data/spec/framework_spec/app/spec/core/io/pid_spec.rb +20 -11
- data/spec/framework_spec/app/spec/core/io/pipe_spec.rb +10 -1
- data/spec/framework_spec/app/spec/core/io/popen_spec.rb +107 -37
- data/spec/framework_spec/app/spec/core/io/pos_spec.rb +5 -44
- data/spec/framework_spec/app/spec/core/io/print_spec.rb +56 -59
- data/spec/framework_spec/app/spec/core/io/printf_spec.rb +25 -19
- data/spec/framework_spec/app/spec/core/io/putc_spec.rb +5 -43
- data/spec/framework_spec/app/spec/core/io/puts_spec.rb +28 -16
- data/spec/framework_spec/app/spec/core/io/read_nonblock_spec.rb +54 -3
- data/spec/framework_spec/app/spec/core/io/read_spec.rb +127 -50
- data/spec/framework_spec/app/spec/core/io/readbyte_spec.rb +29 -0
- data/spec/framework_spec/app/spec/core/io/readchar_spec.rb +31 -31
- data/spec/framework_spec/app/spec/core/io/readline_spec.rb +29 -25
- data/spec/framework_spec/app/spec/core/io/readlines_spec.rb +174 -146
- data/spec/framework_spec/app/spec/core/io/readpartial_spec.rb +16 -4
- data/spec/framework_spec/app/spec/core/io/reopen_spec.rb +226 -82
- data/spec/framework_spec/app/spec/core/io/rewind_spec.rb +8 -9
- data/spec/framework_spec/app/spec/core/io/seek_spec.rb +21 -29
- data/spec/framework_spec/app/spec/core/io/select_spec.rb +34 -7
- data/spec/framework_spec/app/spec/core/io/set_encoding_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/io/shared/codepoints.rb +46 -0
- data/spec/framework_spec/app/spec/core/io/shared/each.rb +97 -112
- data/spec/framework_spec/app/spec/core/io/shared/gets_ascii.rb +27 -0
- data/spec/framework_spec/app/spec/core/io/shared/new.rb +74 -99
- data/spec/framework_spec/app/spec/core/io/shared/pos.rb +43 -4
- data/spec/framework_spec/app/spec/core/io/shared/tty.rb +10 -7
- data/spec/framework_spec/app/spec/core/io/shared/write.rb +4 -4
- data/spec/framework_spec/app/spec/core/io/stat_spec.rb +20 -7
- data/spec/framework_spec/app/spec/core/io/sync_spec.rb +12 -10
- data/spec/framework_spec/app/spec/core/io/sysopen_spec.rb +32 -14
- data/spec/framework_spec/app/spec/core/io/sysread_spec.rb +12 -10
- data/spec/framework_spec/app/spec/core/io/sysseek_spec.rb +17 -42
- data/spec/framework_spec/app/spec/core/io/syswrite_spec.rb +10 -9
- data/spec/framework_spec/app/spec/core/io/tell_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/io/to_i_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/io/to_io_spec.rb +15 -10
- data/spec/framework_spec/app/spec/core/io/try_convert_spec.rb +47 -0
- data/spec/framework_spec/app/spec/core/io/tty_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/io/ungetbyte_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/io/ungetc_spec.rb +55 -48
- data/spec/framework_spec/app/spec/core/io/write_nonblock_spec.rb +6 -5
- data/spec/framework_spec/app/spec/core/io/write_spec.rb +17 -12
- data/spec/framework_spec/app/spec/core/kernel/Array_spec.rb +76 -31
- data/spec/framework_spec/app/spec/core/kernel/Complex_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/kernel/Float_spec.rb +18 -13
- data/spec/framework_spec/app/spec/core/kernel/Integer_spec.rb +243 -7
- data/spec/framework_spec/app/spec/core/kernel/Rational_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/kernel/String_spec.rb +65 -33
- data/spec/framework_spec/app/spec/core/kernel/__callee___spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/kernel/__id___spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/kernel/__method___spec.rb +41 -0
- data/spec/framework_spec/app/spec/core/kernel/__send___spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/abort_spec.rb +6 -3
- data/spec/framework_spec/app/spec/core/kernel/at_exit_spec.rb +16 -11
- data/spec/framework_spec/app/spec/core/kernel/autoload_spec.rb +127 -114
- data/spec/framework_spec/app/spec/core/kernel/backtick_spec.rb +24 -24
- data/spec/framework_spec/app/spec/core/kernel/binding_spec.rb +45 -23
- data/spec/framework_spec/app/spec/core/kernel/block_given_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/kernel/callcc_spec.rb +9 -65
- data/spec/framework_spec/app/spec/core/kernel/caller_spec.rb +162 -91
- data/spec/framework_spec/app/spec/core/kernel/case_compare_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/catch_spec.rb +70 -13
- data/spec/framework_spec/app/spec/core/kernel/chomp_spec.rb +19 -15
- data/spec/framework_spec/app/spec/core/kernel/chop_spec.rb +19 -15
- data/spec/framework_spec/app/spec/core/kernel/class_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/clone_spec.rb +8 -2
- data/spec/framework_spec/app/spec/core/kernel/comparison_spec.rb +33 -0
- data/spec/framework_spec/app/spec/core/kernel/const_lookup_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/kernel/{define_singleton_method.rb → define_singleton_method_spec.rb} +31 -9
- data/spec/framework_spec/app/spec/core/kernel/display_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/dup_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/enum_for_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/kernel/eql_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/kernel/equal_spec.rb +32 -3
- data/spec/framework_spec/app/spec/core/kernel/equal_value_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/kernel/eval_spec.rb +285 -182
- data/spec/framework_spec/app/spec/core/kernel/exec_spec.rb +18 -5
- data/spec/framework_spec/app/spec/core/kernel/exit_spec.rb +70 -4
- data/spec/framework_spec/app/spec/core/kernel/extend_spec.rb +29 -7
- data/spec/framework_spec/app/spec/core/kernel/fail_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/kernel/fixtures/__method__.rb +25 -0
- data/spec/framework_spec/app/spec/core/kernel/fixtures/autoload_d.rb +5 -0
- data/spec/framework_spec/app/spec/core/kernel/fixtures/caller_fixture1.rb +1 -1
- data/spec/framework_spec/app/spec/core/kernel/fixtures/classes.rb +173 -67
- data/spec/framework_spec/app/spec/core/kernel/fixtures/eval_locals.rb +6 -0
- data/spec/framework_spec/app/spec/core/kernel/fixtures/test.rb +80 -80
- data/spec/framework_spec/app/spec/core/kernel/fork_spec.rb +10 -8
- data/spec/framework_spec/app/spec/core/kernel/format_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/freeze_spec.rb +75 -37
- data/spec/framework_spec/app/spec/core/kernel/frozen_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/getc_spec.rb +10 -8
- data/spec/framework_spec/app/spec/core/kernel/gets_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/global_variables_spec.rb +24 -12
- data/spec/framework_spec/app/spec/core/kernel/gsub_spec.rb +76 -72
- data/spec/framework_spec/app/spec/core/kernel/hash_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/id_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/initialize_clone_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/kernel/initialize_copy_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/initialize_dup_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/kernel/inspect_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/instance_eval_spec.rb +154 -113
- data/spec/framework_spec/app/spec/core/kernel/instance_of_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/kernel/instance_variable_defined_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/kernel/instance_variable_get_spec.rb +16 -2
- data/spec/framework_spec/app/spec/core/kernel/instance_variable_set_spec.rb +25 -12
- data/spec/framework_spec/app/spec/core/kernel/instance_variables_spec.rb +48 -3
- data/spec/framework_spec/app/spec/core/kernel/is_a_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/kernel/iterator_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/kind_of_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/kernel/lambda_spec.rb +68 -7
- data/spec/framework_spec/app/spec/core/kernel/load_spec.rb +22 -217
- data/spec/framework_spec/app/spec/core/kernel/local_variables_spec.rb +38 -18
- data/spec/framework_spec/app/spec/core/kernel/loop_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/kernel/match_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/method_missing_spec.rb +9 -54
- data/spec/framework_spec/app/spec/core/kernel/method_spec.rb +29 -31
- data/spec/framework_spec/app/spec/core/kernel/methods_spec.rb +93 -78
- data/spec/framework_spec/app/spec/core/kernel/nil_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/not_match_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/kernel/object_id_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/kernel/open_spec.rb +30 -32
- data/spec/framework_spec/app/spec/core/kernel/p_spec.rb +29 -29
- data/spec/framework_spec/app/spec/core/kernel/print_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/printf_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/private_methods_spec.rb +82 -14
- data/spec/framework_spec/app/spec/core/kernel/proc_spec.rb +22 -4
- data/spec/framework_spec/app/spec/core/kernel/protected_methods_spec.rb +44 -2
- data/spec/framework_spec/app/spec/core/kernel/public_method_spec.rb +37 -0
- data/spec/framework_spec/app/spec/core/kernel/public_methods_spec.rb +70 -12
- data/spec/framework_spec/app/spec/core/kernel/public_send_spec.rb +76 -0
- data/spec/framework_spec/app/spec/core/kernel/putc_spec.rb +31 -4
- data/spec/framework_spec/app/spec/core/kernel/puts_spec.rb +100 -87
- data/spec/framework_spec/app/spec/core/kernel/raise_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/kernel/rand_spec.rb +39 -13
- data/spec/framework_spec/app/spec/core/kernel/readline_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/readlines_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/remove_instance_variable_spec.rb +32 -2
- data/spec/framework_spec/app/spec/core/kernel/require_relative_spec.rb +154 -0
- data/spec/framework_spec/app/spec/core/kernel/require_spec.rb +20 -289
- data/spec/framework_spec/app/spec/core/kernel/respond_to_missing_spec.rb +88 -0
- data/spec/framework_spec/app/spec/core/kernel/respond_to_spec.rb +41 -33
- data/spec/framework_spec/app/spec/core/kernel/scan_spec.rb +10 -8
- data/spec/framework_spec/app/spec/core/kernel/select_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/send_spec.rb +31 -65
- data/spec/framework_spec/app/spec/core/kernel/set_trace_func_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/shared/__method__.rb +6 -7
- data/spec/framework_spec/app/spec/core/kernel/shared/abort.rb +26 -0
- data/spec/framework_spec/app/spec/core/kernel/shared/lambda.rb +12 -25
- data/spec/framework_spec/app/spec/core/kernel/shared/load.rb +93 -0
- data/spec/framework_spec/app/spec/core/kernel/shared/method.rb +59 -0
- data/spec/framework_spec/app/spec/core/kernel/shared/object_id.rb +22 -6
- data/spec/framework_spec/app/spec/core/kernel/shared/require.rb +529 -0
- data/spec/framework_spec/app/spec/core/kernel/shared/send.rb +110 -0
- data/spec/framework_spec/app/spec/core/kernel/singleton_class_spec.rb +30 -0
- data/spec/framework_spec/app/spec/core/kernel/singleton_method_added_spec.rb +6 -5
- data/spec/framework_spec/app/spec/core/kernel/singleton_method_removed_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/kernel/singleton_method_undefined_spec.rb +4 -5
- data/spec/framework_spec/app/spec/core/kernel/singleton_methods_spec.rb +179 -58
- data/spec/framework_spec/app/spec/core/kernel/sleep_spec.rb +18 -19
- data/spec/framework_spec/app/spec/core/kernel/spawn_spec.rb +152 -0
- data/spec/framework_spec/app/spec/core/kernel/split_spec.rb +10 -8
- data/spec/framework_spec/app/spec/core/kernel/sprintf_spec.rb +351 -5
- data/spec/framework_spec/app/spec/core/kernel/srand_spec.rb +33 -6
- data/spec/framework_spec/app/spec/core/kernel/sub_spec.rb +19 -15
- data/spec/framework_spec/app/spec/core/kernel/syscall_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/system_spec.rb +90 -61
- data/spec/framework_spec/app/spec/core/kernel/taint_spec.rb +9 -4
- data/spec/framework_spec/app/spec/core/kernel/tainted_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/kernel/tap_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/kernel/test_spec.rb +36 -16
- data/spec/framework_spec/app/spec/core/kernel/throw_spec.rb +29 -24
- data/spec/framework_spec/app/spec/core/kernel/to_a_spec.rb +17 -15
- data/spec/framework_spec/app/spec/core/kernel/to_enum_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/kernel/to_s_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/trace_var_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/trap_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/trust_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/type_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/untaint_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/untrace_var_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/untrust_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/untrusted_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/warn_spec.rb +59 -60
- data/spec/framework_spec/app/spec/core/marshal/dump_spec.rb +314 -70
- data/spec/framework_spec/app/spec/core/marshal/fixtures/marshal_data.rb +165 -0
- data/spec/framework_spec/app/spec/core/marshal/fixtures/random.dump +0 -0
- data/spec/framework_spec/app/spec/core/marshal/load_spec.rb +483 -170
- data/spec/framework_spec/app/spec/core/marshal/restore_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/matchdata/begin_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/matchdata/captures_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/matchdata/element_reference_spec.rb +3 -1
- data/spec/framework_spec/app/spec/core/matchdata/end_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/matchdata/eql_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/matchdata/equal_value_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/matchdata/hash_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/matchdata/initialize_copy_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/matchdata/inspect_spec.rb +19 -1
- data/spec/framework_spec/app/spec/core/matchdata/length_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/matchdata/names_spec.rb +3 -0
- data/spec/framework_spec/app/spec/core/matchdata/offset_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/matchdata/post_match_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/matchdata/pre_match_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/matchdata/regexp_spec.rb +15 -0
- data/spec/framework_spec/app/spec/core/matchdata/select_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/matchdata/shared/eql.rb +26 -0
- data/spec/framework_spec/app/spec/core/matchdata/size_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/matchdata/string_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/matchdata/to_a_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/matchdata/to_s_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/matchdata/values_at_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/matchdata/versions/element_reference_1.9.rb +35 -0
- data/spec/framework_spec/app/spec/core/matchdata/versions/names_1.9.rb +33 -0
- data/spec/framework_spec/app/spec/core/math/acos_spec.rb +31 -31
- data/spec/framework_spec/app/spec/core/math/acosh_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/math/asin_spec.rb +15 -15
- data/spec/framework_spec/app/spec/core/math/asinh_spec.rb +7 -7
- data/spec/framework_spec/app/spec/core/math/atan2_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/math/atan_spec.rb +13 -13
- data/spec/framework_spec/app/spec/core/math/atanh_spec.rb +8 -64
- data/spec/framework_spec/app/spec/core/math/cbrt_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/math/constants_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/math/cos_spec.rb +13 -13
- data/spec/framework_spec/app/spec/core/math/cosh_spec.rb +7 -7
- data/spec/framework_spec/app/spec/core/math/erf_spec.rb +14 -14
- data/spec/framework_spec/app/spec/core/math/erfc_spec.rb +12 -12
- data/spec/framework_spec/app/spec/core/math/exp_spec.rb +7 -7
- data/spec/framework_spec/app/spec/core/math/fixtures/classes.rb +2 -2
- data/spec/framework_spec/app/spec/core/math/frexp_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/math/gamma_spec.rb +71 -0
- data/spec/framework_spec/app/spec/core/math/hypot_spec.rb +11 -11
- data/spec/framework_spec/app/spec/core/math/ldexp_spec.rb +10 -10
- data/spec/framework_spec/app/spec/core/math/lgamma_spec.rb +87 -0
- data/spec/framework_spec/app/spec/core/math/log10_spec.rb +7 -7
- data/spec/framework_spec/app/spec/core/math/log2_spec.rb +30 -3
- data/spec/framework_spec/app/spec/core/math/log_spec.rb +30 -11
- data/spec/framework_spec/app/spec/core/math/sin_spec.rb +15 -15
- data/spec/framework_spec/app/spec/core/math/sinh_spec.rb +8 -8
- data/spec/framework_spec/app/spec/core/math/sqrt_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/math/tan_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/math/tanh_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/method/arity_spec.rb +9 -2
- data/spec/framework_spec/app/spec/core/method/call_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/method/clone_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/method/element_reference_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/method/eql_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/method/equal_value_spec.rb +3 -40
- data/spec/framework_spec/app/spec/core/method/fixtures/classes.rb +104 -13
- data/spec/framework_spec/app/spec/core/method/fixtures/classes_1.9.rb +12 -0
- data/spec/framework_spec/app/spec/core/method/hash_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/method/inspect_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/method/name_spec.rb +19 -5
- data/spec/framework_spec/app/spec/core/method/owner_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/method/parameters_spec.rb +3 -0
- data/spec/framework_spec/app/spec/core/method/receiver_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/method/shared/call.rb +2 -2
- data/spec/framework_spec/app/spec/core/method/shared/eql.rb +102 -0
- data/spec/framework_spec/app/spec/core/method/shared/to_s.rb +5 -5
- data/spec/framework_spec/app/spec/core/method/source_location_spec.rb +50 -0
- data/spec/framework_spec/app/spec/core/method/to_proc_spec.rb +20 -2
- data/spec/framework_spec/app/spec/core/method/to_s_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/method/unbind_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/method/versions/parameters_1.9.rb +189 -0
- data/spec/framework_spec/app/spec/core/module/alias_method_spec.rb +20 -8
- data/spec/framework_spec/app/spec/core/module/allocate_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/module/ancestors_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/module/append_features_spec.rb +15 -4
- data/spec/framework_spec/app/spec/core/module/attr_accessor_spec.rb +16 -7
- data/spec/framework_spec/app/spec/core/module/attr_reader_spec.rb +14 -5
- data/spec/framework_spec/app/spec/core/module/attr_spec.rb +61 -63
- data/spec/framework_spec/app/spec/core/module/attr_writer_spec.rb +23 -12
- data/spec/framework_spec/app/spec/core/module/autoload_spec.rb +177 -84
- data/spec/framework_spec/app/spec/core/module/case_compare_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/module/class_eval_spec.rb +7 -8
- data/spec/framework_spec/app/spec/core/module/class_exec_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/module/class_variable_defined_spec.rb +22 -7
- data/spec/framework_spec/app/spec/core/module/class_variable_get_spec.rb +27 -12
- data/spec/framework_spec/app/spec/core/module/class_variable_set_spec.rb +37 -15
- data/spec/framework_spec/app/spec/core/module/class_variables_spec.rb +50 -17
- data/spec/framework_spec/app/spec/core/module/comparison_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/module/const_defined_spec.rb +41 -5
- data/spec/framework_spec/app/spec/core/module/const_get_spec.rb +14 -2
- data/spec/framework_spec/app/spec/core/module/const_missing_spec.rb +8 -2
- data/spec/framework_spec/app/spec/core/module/const_set_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/module/constants_spec.rb +26 -2
- data/spec/framework_spec/app/spec/core/module/define_method_spec.rb +283 -15
- data/spec/framework_spec/app/spec/core/module/eql_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/module/equal_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/module/equal_value_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/module/extend_object_spec.rb +23 -28
- data/spec/framework_spec/app/spec/core/module/extended_spec.rb +18 -10
- data/spec/framework_spec/app/spec/core/module/fixtures/autoload.rb +1 -1
- data/spec/framework_spec/app/spec/core/module/fixtures/autoload_ex1.rb +16 -0
- data/spec/framework_spec/app/spec/core/module/fixtures/autoload_k.rb +3 -1
- data/spec/framework_spec/app/spec/core/module/fixtures/autoload_s.rb +5 -0
- data/spec/framework_spec/app/spec/core/module/fixtures/autoload_w2.rb +1 -0
- data/spec/framework_spec/app/spec/core/module/fixtures/classes.rb +97 -0
- data/spec/framework_spec/app/spec/core/module/fixtures/name.rb +10 -0
- data/spec/framework_spec/app/spec/core/module/freeze_spec.rb +33 -13
- data/spec/framework_spec/app/spec/core/module/gt_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/module/gte_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/module/include_spec.rb +159 -33
- data/spec/framework_spec/app/spec/core/module/included_modules_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/module/included_spec.rb +12 -4
- data/spec/framework_spec/app/spec/core/module/initialize_copy_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/module/initialize_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/module/instance_method_spec.rb +16 -7
- data/spec/framework_spec/app/spec/core/module/instance_methods_spec.rb +51 -17
- data/spec/framework_spec/app/spec/core/module/lt_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/module/lte_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/module/method_added_spec.rb +8 -8
- data/spec/framework_spec/app/spec/core/module/method_defined_spec.rb +13 -6
- data/spec/framework_spec/app/spec/core/module/method_removed_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/module/method_undefined_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/module/module_eval_spec.rb +7 -8
- data/spec/framework_spec/app/spec/core/module/module_exec_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/module/module_function_spec.rb +82 -76
- data/spec/framework_spec/app/spec/core/module/name_spec.rb +24 -6
- data/spec/framework_spec/app/spec/core/module/nesting_spec.rb +13 -9
- data/spec/framework_spec/app/spec/core/module/new_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/module/private_class_method_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/module/private_instance_methods_spec.rb +26 -2
- data/spec/framework_spec/app/spec/core/module/private_method_defined_spec.rb +16 -6
- data/spec/framework_spec/app/spec/core/module/private_spec.rb +21 -3
- data/spec/framework_spec/app/spec/core/module/protected_instance_methods_spec.rb +66 -18
- data/spec/framework_spec/app/spec/core/module/protected_method_defined_spec.rb +40 -18
- data/spec/framework_spec/app/spec/core/module/protected_spec.rb +24 -7
- data/spec/framework_spec/app/spec/core/module/public_class_method_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/module/public_instance_method_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/module/public_instance_methods_spec.rb +38 -14
- data/spec/framework_spec/app/spec/core/module/public_method_defined_spec.rb +28 -6
- data/spec/framework_spec/app/spec/core/module/public_spec.rb +26 -2
- data/spec/framework_spec/app/spec/core/module/remove_class_variable_spec.rb +46 -2
- data/spec/framework_spec/app/spec/core/module/remove_const_spec.rb +10 -3
- data/spec/framework_spec/app/spec/core/module/remove_method_spec.rb +10 -10
- data/spec/framework_spec/app/spec/core/module/shared/class_eval.rb +36 -14
- data/spec/framework_spec/app/spec/core/module/shared/class_exec.rb +24 -0
- data/spec/framework_spec/app/spec/core/module/shared/equal_value.rb +1 -1
- data/spec/framework_spec/app/spec/core/module/to_s_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/module/undef_method_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/mutex/lock_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/mutex/locked_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/mutex/sleep_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/mutex/synchronize_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/mutex/try_lock_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/mutex/unlock_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/nil/and_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/nil/inspect_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/nil/nil_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/nil/or_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/nil/rationalize_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/nil/to_a_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/nil/to_c_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/nil/to_f_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/nil/to_i_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/nil/to_r_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/nil/to_s_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/nil/xor_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/numeric/abs2_spec.rb +36 -0
- data/spec/framework_spec/app/spec/core/numeric/abs_spec.rb +3 -17
- data/spec/framework_spec/app/spec/core/numeric/angle_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/arg_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/ceil_spec.rb +10 -9
- data/spec/framework_spec/app/spec/core/numeric/coerce_spec.rb +23 -6
- data/spec/framework_spec/app/spec/core/numeric/comparison_spec.rb +35 -6
- data/spec/framework_spec/app/spec/core/numeric/conj_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/conjugate_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/denominator_spec.rb +26 -0
- data/spec/framework_spec/app/spec/core/numeric/div_spec.rb +22 -10
- data/spec/framework_spec/app/spec/core/numeric/divmod_spec.rb +19 -8
- data/spec/framework_spec/app/spec/core/numeric/eql_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/numeric/fdiv_spec.rb +37 -0
- data/spec/framework_spec/app/spec/core/numeric/fixtures/classes.rb +16 -4
- data/spec/framework_spec/app/spec/core/numeric/floor_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/numeric/i_spec.rb +17 -0
- data/spec/framework_spec/app/spec/core/numeric/imag_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/imaginary_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/initialize_copy_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/numeric/integer_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/numeric/magnitude_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/numeric/modulo_spec.rb +33 -9
- data/spec/framework_spec/app/spec/core/numeric/nonzero_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/numeric/numerator_spec.rb +35 -0
- data/spec/framework_spec/app/spec/core/numeric/phase_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/polar_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/quo_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/numeric/rationalize_spec.rb +32 -0
- data/spec/framework_spec/app/spec/core/numeric/real_spec.rb +14 -0
- data/spec/framework_spec/app/spec/core/numeric/rect_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/rectangular_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/remainder_spec.rb +11 -11
- data/spec/framework_spec/app/spec/core/numeric/round_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/numeric/shared/abs.rb +19 -0
- data/spec/framework_spec/app/spec/core/numeric/shared/rect.rb +48 -0
- data/spec/framework_spec/app/spec/core/numeric/singleton_method_added_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/numeric/step_spec.rb +215 -162
- data/spec/framework_spec/app/spec/core/numeric/to_c_spec.rb +47 -0
- data/spec/framework_spec/app/spec/core/numeric/to_int_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/numeric/truncate_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/numeric/uminus_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/numeric/uplus_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/numeric/zero_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/object/clone_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/object/dup_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/object/fixtures/classes.rb +17 -0
- data/spec/framework_spec/app/spec/core/object/initialize_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/object/instance_exec_spec.rb +101 -0
- data/spec/framework_spec/app/spec/core/object/instance_of_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/object/is_a_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/object/kind_of_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/object/match_spec.rb +25 -10
- data/spec/framework_spec/app/spec/core/object/metaclass_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/object/new_spec.rb +18 -2
- data/spec/framework_spec/app/spec/core/object/shared/kind_of.rb +3 -3
- data/spec/framework_spec/app/spec/core/objectspace/_id2ref_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/objectspace/add_finalizer_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/objectspace/call_finalizer_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/objectspace/count_objects_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/objectspace/define_finalizer_spec.rb +44 -3
- data/spec/framework_spec/app/spec/core/objectspace/each_object_spec.rb +27 -5
- data/spec/framework_spec/app/spec/core/objectspace/finalizers_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/objectspace/fixtures.rb +5 -0
- data/spec/framework_spec/app/spec/core/objectspace/garbage_collect_spec.rb +22 -1
- data/spec/framework_spec/app/spec/core/objectspace/remove_finalizer_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/objectspace/undefine_finalizer_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/precision/included_spec.rb +14 -12
- data/spec/framework_spec/app/spec/core/precision/prec_f_spec.rb +9 -8
- data/spec/framework_spec/app/spec/core/precision/prec_i_spec.rb +10 -8
- data/spec/framework_spec/app/spec/core/precision/prec_spec.rb +19 -14
- data/spec/framework_spec/app/spec/core/proc/arity_spec.rb +104 -53
- data/spec/framework_spec/app/spec/core/proc/binding_spec.rb +14 -14
- data/spec/framework_spec/app/spec/core/proc/block_pass_spec.rb +21 -1
- data/spec/framework_spec/app/spec/core/proc/call_spec.rb +9 -2
- data/spec/framework_spec/app/spec/core/proc/case_compare_spec.rb +19 -0
- data/spec/framework_spec/app/spec/core/proc/clone_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/proc/curry_spec.rb +142 -0
- data/spec/framework_spec/app/spec/core/proc/dup_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/proc/element_reference_spec.rb +8 -2
- data/spec/framework_spec/app/spec/core/proc/eql_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/proc/equal_value_spec.rb +4 -12
- data/spec/framework_spec/app/spec/core/proc/fixtures/common.rb +42 -0
- data/spec/framework_spec/app/spec/core/proc/fixtures/source_location.rb +51 -0
- data/spec/framework_spec/app/spec/core/proc/hash_spec.rb +24 -0
- data/spec/framework_spec/app/spec/core/proc/lambda_spec.rb +62 -0
- data/spec/framework_spec/app/spec/core/proc/new_spec.rb +135 -46
- data/spec/framework_spec/app/spec/core/proc/parameters_spec.rb +2 -0
- data/spec/framework_spec/app/spec/core/proc/shared/call.rb +86 -34
- data/spec/framework_spec/app/spec/core/proc/shared/call_arguments.rb +7 -0
- data/spec/framework_spec/app/spec/core/proc/shared/equal.rb +93 -0
- data/spec/framework_spec/app/spec/core/proc/source_location_spec.rb +64 -0
- data/spec/framework_spec/app/spec/core/proc/to_proc_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/proc/to_s_spec.rb +16 -5
- data/spec/framework_spec/app/spec/core/proc/versions/call_1.8.7.rb +1 -0
- data/spec/framework_spec/app/spec/core/proc/versions/call_1.9.rb +1 -0
- data/spec/framework_spec/app/spec/core/proc/versions/parameters_1.9.rb +73 -0
- data/spec/framework_spec/app/spec/core/proc/yield_spec.rb +19 -0
- data/spec/framework_spec/app/spec/core/process/abort_spec.rb +16 -9
- data/spec/framework_spec/app/spec/core/process/constants_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/process/daemon_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/process/detach_spec.rb +5 -9
- data/spec/framework_spec/app/spec/core/process/egid_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/process/euid_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/process/exec_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/process/exit_spec.rb +9 -1
- data/spec/framework_spec/app/spec/core/process/fork_spec.rb +38 -26
- data/spec/framework_spec/app/spec/core/process/getpgid_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/process/getpgrp_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/process/getpriority_spec.rb +8 -9
- data/spec/framework_spec/app/spec/core/process/getrlimit_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/process/gid/change_privilege_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/gid/eid_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/process/gid/grant_privilege_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/gid/re_exchange_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/gid/re_exchangeable_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/gid/rid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/gid/sid_available_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/gid/switch_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/gid_spec.rb +11 -7
- data/spec/framework_spec/app/spec/core/process/groups_spec.rb +15 -17
- data/spec/framework_spec/app/spec/core/process/initgroups_spec.rb +3 -6
- data/spec/framework_spec/app/spec/core/process/kill_spec.rb +21 -17
- data/spec/framework_spec/app/spec/core/process/maxgroups_spec.rb +12 -5
- data/spec/framework_spec/app/spec/core/process/pid_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/process/ppid_spec.rb +16 -15
- data/spec/framework_spec/app/spec/core/process/setpgid_spec.rb +16 -21
- data/spec/framework_spec/app/spec/core/process/setpgrp_spec.rb +3 -8
- data/spec/framework_spec/app/spec/core/process/setpriority_spec.rb +42 -60
- data/spec/framework_spec/app/spec/core/process/setrlimit_spec.rb +38 -46
- data/spec/framework_spec/app/spec/core/process/setsid_spec.rb +20 -22
- data/spec/framework_spec/app/spec/core/process/spawn_spec.rb +32 -0
- data/spec/framework_spec/app/spec/core/process/status/_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/status/coredump_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/status/equal_value_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/status/exited_spec.rb +38 -0
- data/spec/framework_spec/app/spec/core/process/status/exitstatus_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/process/status/inspect_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/status/pid_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/process/status/right_shift_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/status/signaled_spec.rb +36 -0
- data/spec/framework_spec/app/spec/core/process/status/stopped_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/status/stopsig_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/status/success_spec.rb +53 -0
- data/spec/framework_spec/app/spec/core/process/status/termsig_spec.rb +41 -0
- data/spec/framework_spec/app/spec/core/process/status/to_i_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/status/to_int_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/status/to_s_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/getegid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/geteuid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/getgid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/getuid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/issetugid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/setegid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/seteuid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/setgid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/setregid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/setresgid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/setresuid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/setreuid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/setrgid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/setruid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/setuid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/times_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/process/uid/change_privilege_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/uid/eid_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/process/uid/grant_privilege_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/uid/re_exchange_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/uid/re_exchangeable_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/uid/rid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/uid/sid_available_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/uid/switch_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/uid_spec.rb +11 -7
- data/spec/framework_spec/app/spec/core/process/wait2_spec.rb +7 -6
- data/spec/framework_spec/app/spec/core/process/wait_spec.rb +25 -7
- data/spec/framework_spec/app/spec/core/process/waitall_spec.rb +10 -8
- data/spec/framework_spec/app/spec/core/process/waitpid2_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/process/waitpid_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/random/bytes_spec.rb +40 -0
- data/spec/framework_spec/app/spec/core/random/equal_value_spec.rb +39 -0
- data/spec/framework_spec/app/spec/core/random/new_seed_spec.rb +27 -0
- data/spec/framework_spec/app/spec/core/random/new_spec.rb +33 -0
- data/spec/framework_spec/app/spec/core/random/rand_spec.rb +218 -0
- data/spec/framework_spec/app/spec/core/random/seed_spec.rb +32 -0
- data/spec/framework_spec/app/spec/core/random/srand_spec.rb +43 -0
- data/spec/framework_spec/app/spec/core/range/begin_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/case_compare_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/cover_spec.rb +57 -0
- data/spec/framework_spec/app/spec/core/range/each_spec.rb +5 -4
- data/spec/framework_spec/app/spec/core/range/end_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/eql_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/equal_value_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/exclude_end_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/range/first_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/hash_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/include_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/initialize_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/range/inspect_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/last_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/max_spec.rb +55 -0
- data/spec/framework_spec/app/spec/core/range/member_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/min_spec.rb +55 -0
- data/spec/framework_spec/app/spec/core/range/new_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/range/shared/equal_value.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/shared/include.rb +9 -0
- data/spec/framework_spec/app/spec/core/range/step_spec.rb +4 -3
- data/spec/framework_spec/app/spec/core/range/to_a_spec.rb +10 -3
- data/spec/framework_spec/app/spec/core/range/to_s_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/rational/Rational_spec.rb +35 -0
- data/spec/framework_spec/app/spec/core/rational/abs_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/ceil_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/coerce_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/comparison_spec.rb +23 -0
- data/spec/framework_spec/app/spec/core/rational/denominator_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/div_spec.rb +19 -0
- data/spec/framework_spec/app/spec/core/rational/divide_spec.rb +19 -0
- data/spec/framework_spec/app/spec/core/rational/divmod_spec.rb +15 -0
- data/spec/framework_spec/app/spec/core/rational/equal_value_spec.rb +19 -0
- data/spec/framework_spec/app/spec/core/rational/exponent_spec.rb +19 -0
- data/spec/framework_spec/app/spec/core/rational/fdiv_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/floor_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/hash_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/initialize_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/inspect_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/integer_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/rational/magnitude_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/marshal_dump_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/marshal_load_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/minus_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/modulo_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/multiply_spec.rb +19 -0
- data/spec/framework_spec/app/spec/core/rational/numerator_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/plus_spec.rb +18 -0
- data/spec/framework_spec/app/spec/core/rational/quo_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/rationalize_spec.rb +33 -0
- data/spec/framework_spec/app/spec/core/rational/remainder_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/round_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/to_f_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/to_i_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/to_r_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/to_s_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/truncate_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/zero_spec.rb +15 -0
- data/spec/framework_spec/app/spec/core/regexp/case_compare_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/regexp/casefold_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/regexp/compile_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/regexp/encoding_spec.rb +56 -0
- data/spec/framework_spec/app/spec/core/regexp/eql_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/regexp/equal_value_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/regexp/escape_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/regexp/fixed_encoding_spec.rb +36 -0
- data/spec/framework_spec/app/spec/core/regexp/hash_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/regexp/initialize_copy_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/regexp/initialize_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/regexp/inspect_spec.rb +9 -1
- data/spec/framework_spec/app/spec/core/regexp/kcode_spec.rb +17 -16
- data/spec/framework_spec/app/spec/core/regexp/last_match_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/regexp/match_spec.rb +31 -3
- data/spec/framework_spec/app/spec/core/regexp/named_captures_spec.rb +1 -0
- data/spec/framework_spec/app/spec/core/regexp/names_spec.rb +1 -0
- data/spec/framework_spec/app/spec/core/regexp/new_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/regexp/options_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/regexp/quote_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/regexp/shared/match.rb +2 -2
- data/spec/framework_spec/app/spec/core/regexp/shared/new.rb +65 -53
- data/spec/framework_spec/app/spec/core/regexp/source_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/regexp/to_s_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/regexp/try_convert_spec.rb +21 -0
- data/spec/framework_spec/app/spec/core/regexp/union_spec.rb +18 -2
- data/spec/framework_spec/app/spec/core/regexp/versions/named_captures_1.9.rb +35 -0
- data/spec/framework_spec/app/spec/core/regexp/versions/names_1.9.rb +29 -0
- data/spec/framework_spec/app/spec/core/signal/list_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/signal/trap_spec.rb +106 -1
- data/spec/framework_spec/app/spec/core/string/allocate_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/string/append_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/string/ascii_only_spec.rb +44 -29
- data/spec/framework_spec/app/spec/core/string/bytes_spec.rb +25 -18
- data/spec/framework_spec/app/spec/core/string/bytesize_spec.rb +12 -12
- data/spec/framework_spec/app/spec/core/string/capitalize_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/string/case_compare_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/string/casecmp_spec.rb +117 -64
- data/spec/framework_spec/app/spec/core/string/center_spec.rb +24 -18
- data/spec/framework_spec/app/spec/core/string/chars_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/string/chomp_spec.rb +68 -39
- data/spec/framework_spec/app/spec/core/string/chop_spec.rb +34 -56
- data/spec/framework_spec/app/spec/core/string/chr_spec.rb +44 -0
- data/spec/framework_spec/app/spec/core/string/clear_spec.rb +39 -0
- data/spec/framework_spec/app/spec/core/string/codepoints_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/string/comparison_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/string/concat_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/string/count_spec.rb +26 -11
- data/spec/framework_spec/app/spec/core/string/crypt_spec.rb +35 -35
- data/spec/framework_spec/app/spec/core/string/delete_spec.rb +25 -8
- data/spec/framework_spec/app/spec/core/string/downcase_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/string/dump_spec.rb +13 -4
- data/spec/framework_spec/app/spec/core/string/each_byte_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/string/each_char_spec.rb +3 -29
- data/spec/framework_spec/app/spec/core/string/each_codepoint_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/string/each_line_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/string/each_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/string/element_reference_spec.rb +9 -3
- data/spec/framework_spec/app/spec/core/string/element_set_spec.rb +54 -10
- data/spec/framework_spec/app/spec/core/string/empty_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/string/encode_spec.rb +114 -0
- data/spec/framework_spec/app/spec/core/string/encoding_spec.rb +181 -0
- data/spec/framework_spec/app/spec/core/string/end_with_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/string/entries_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/string/eql_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/string/equal_value_spec.rb +7 -3
- data/spec/framework_spec/app/spec/core/string/fixtures/classes.rb +12 -9
- data/spec/framework_spec/app/spec/core/string/fixtures/iso-8859-9-encoding.rb +9 -0
- data/spec/framework_spec/app/spec/core/string/fixtures/utf-8-encoding.rb +7 -0
- data/spec/framework_spec/app/spec/core/string/force_encoding_spec.rb +61 -0
- data/spec/framework_spec/app/spec/core/string/getbyte_spec.rb +63 -0
- data/spec/framework_spec/app/spec/core/string/gsub_spec.rb +228 -75
- data/spec/framework_spec/app/spec/core/string/hash_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/string/hex_spec.rb +23 -9
- data/spec/framework_spec/app/spec/core/string/include_spec.rb +7 -7
- data/spec/framework_spec/app/spec/core/string/index_spec.rb +46 -52
- data/spec/framework_spec/app/spec/core/string/initialize_spec.rb +19 -21
- data/spec/framework_spec/app/spec/core/string/insert_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/inspect_spec.rb +661 -41
- data/spec/framework_spec/app/spec/core/string/intern_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/length_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/lines_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/string/ljust_spec.rb +18 -12
- data/spec/framework_spec/app/spec/core/string/lstrip_spec.rb +23 -14
- data/spec/framework_spec/app/spec/core/string/match_spec.rb +11 -11
- data/spec/framework_spec/app/spec/core/string/modulo_spec.rb +103 -45
- data/spec/framework_spec/app/spec/core/string/multiply_spec.rb +10 -10
- data/spec/framework_spec/app/spec/core/string/new_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/string/next_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/oct_spec.rb +59 -16
- data/spec/framework_spec/app/spec/core/string/ord_spec.rb +32 -0
- data/spec/framework_spec/app/spec/core/string/partition_spec.rb +7 -3
- data/spec/framework_spec/app/spec/core/string/plus_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/string/replace_spec.rb +18 -13
- data/spec/framework_spec/app/spec/core/string/reverse_spec.rb +16 -11
- data/spec/framework_spec/app/spec/core/string/rindex_spec.rb +75 -69
- data/spec/framework_spec/app/spec/core/string/rjust_spec.rb +18 -12
- data/spec/framework_spec/app/spec/core/string/rpartition_spec.rb +8 -3
- data/spec/framework_spec/app/spec/core/string/rstrip_spec.rb +52 -20
- data/spec/framework_spec/app/spec/core/string/scan_spec.rb +48 -23
- data/spec/framework_spec/app/spec/core/string/setbyte_spec.rb +55 -0
- data/spec/framework_spec/app/spec/core/string/shared/chars.rb +70 -0
- data/spec/framework_spec/app/spec/core/string/shared/codepoints.rb +66 -0
- data/spec/framework_spec/app/spec/core/string/shared/concat.rb +9 -6
- data/spec/framework_spec/app/spec/core/string/shared/each_line.rb +27 -6
- data/spec/framework_spec/app/spec/core/string/shared/encode.rb +112 -0
- data/spec/framework_spec/app/spec/core/string/shared/slice.rb +13 -11
- data/spec/framework_spec/app/spec/core/string/shared/succ.rb +3 -3
- data/spec/framework_spec/app/spec/core/string/shared/to_s.rb +1 -1
- data/spec/framework_spec/app/spec/core/string/shared/to_sym.rb +32 -0
- data/spec/framework_spec/app/spec/core/string/shared/versions/slice_1.9.rb +78 -0
- data/spec/framework_spec/app/spec/core/string/size_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/slice_spec.rb +54 -42
- data/spec/framework_spec/app/spec/core/string/split_spec.rb +109 -60
- data/spec/framework_spec/app/spec/core/string/squeeze_spec.rb +21 -7
- data/spec/framework_spec/app/spec/core/string/start_with_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/strip_spec.rb +49 -12
- data/spec/framework_spec/app/spec/core/string/sub_spec.rb +91 -43
- data/spec/framework_spec/app/spec/core/string/succ_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/sum_spec.rb +7 -2
- data/spec/framework_spec/app/spec/core/string/swapcase_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/string/to_a_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/string/to_c_spec.rb +101 -0
- data/spec/framework_spec/app/spec/core/string/to_f_spec.rb +8 -16
- data/spec/framework_spec/app/spec/core/string/to_i_spec.rb +38 -16
- data/spec/framework_spec/app/spec/core/string/to_r_spec.rb +60 -0
- data/spec/framework_spec/app/spec/core/string/to_s_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/to_str_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/to_sym_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/tr_s_spec.rb +8 -8
- data/spec/framework_spec/app/spec/core/string/tr_spec.rb +37 -5
- data/spec/framework_spec/app/spec/core/string/try_convert_spec.rb +15 -17
- data/spec/framework_spec/app/spec/core/string/unpack/a_spec.rb +51 -0
- data/spec/framework_spec/app/spec/core/string/unpack/at_spec.rb +29 -0
- data/spec/framework_spec/app/spec/core/string/unpack/b_spec.rb +184 -0
- data/spec/framework_spec/app/spec/core/string/unpack/c_spec.rb +63 -0
- data/spec/framework_spec/app/spec/core/string/unpack/comment_spec.rb +25 -0
- data/spec/framework_spec/app/spec/core/string/unpack/d_spec.rb +28 -0
- data/spec/framework_spec/app/spec/core/string/unpack/e_spec.rb +14 -0
- data/spec/framework_spec/app/spec/core/string/unpack/f_spec.rb +28 -0
- data/spec/framework_spec/app/spec/core/string/unpack/g_spec.rb +14 -0
- data/spec/framework_spec/app/spec/core/string/unpack/h_spec.rb +124 -0
- data/spec/framework_spec/app/spec/core/string/unpack/i_spec.rb +72 -0
- data/spec/framework_spec/app/spec/core/string/unpack/l_spec.rb +216 -0
- data/spec/framework_spec/app/spec/core/string/unpack/m_spec.rb +165 -0
- data/spec/framework_spec/app/spec/core/string/unpack/n_spec.rb +18 -0
- data/spec/framework_spec/app/spec/core/string/unpack/percent_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/string/unpack/q_spec.rb +42 -0
- data/spec/framework_spec/app/spec/core/string/unpack/s_spec.rb +72 -0
- data/spec/framework_spec/app/spec/core/string/unpack/shared/basic.rb +25 -0
- data/spec/framework_spec/app/spec/core/string/unpack/shared/float.rb +267 -0
- data/spec/framework_spec/app/spec/core/string/unpack/shared/integer.rb +343 -0
- data/spec/framework_spec/app/spec/core/string/unpack/shared/string.rb +51 -0
- data/spec/framework_spec/app/spec/core/string/unpack/shared/unicode.rb +60 -0
- data/spec/framework_spec/app/spec/core/string/unpack/u_spec.rb +78 -0
- data/spec/framework_spec/app/spec/core/string/unpack/v_spec.rb +18 -0
- data/spec/framework_spec/app/spec/core/string/unpack/w_spec.rb +25 -0
- data/spec/framework_spec/app/spec/core/string/unpack/x_spec.rb +62 -0
- data/spec/framework_spec/app/spec/core/string/unpack/z_spec.rb +21 -0
- data/spec/framework_spec/app/spec/core/string/unpack_spec.rb +121 -32
- data/spec/framework_spec/app/spec/core/string/upcase_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/string/upto_spec.rb +21 -11
- data/spec/framework_spec/app/spec/core/string/valid_encoding_spec.rb +122 -0
- data/spec/framework_spec/app/spec/core/struct/each_pair_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/struct/each_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/struct/element_reference_spec.rb +7 -7
- data/spec/framework_spec/app/spec/core/struct/element_set_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/struct/eql_spec.rb +10 -4
- data/spec/framework_spec/app/spec/core/struct/equal_value_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/struct/fixtures/classes.rb +24 -8
- data/spec/framework_spec/app/spec/core/struct/hash_spec.rb +24 -10
- data/spec/framework_spec/app/spec/core/struct/initialize_copy_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/struct/initialize_spec.rb +9 -5
- data/spec/framework_spec/app/spec/core/struct/inspect_spec.rb +13 -6
- data/spec/framework_spec/app/spec/core/struct/length_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/struct/members_spec.rb +17 -7
- data/spec/framework_spec/app/spec/core/struct/new_spec.rb +61 -32
- data/spec/framework_spec/app/spec/core/struct/select_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/struct/shared/equal_value.rb +20 -5
- data/spec/framework_spec/app/spec/core/struct/shared/inspect.rb +13 -0
- data/spec/framework_spec/app/spec/core/struct/size_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/struct/struct_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/struct/tms/cstime_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/struct/tms/cutime_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/struct/tms/element_reference_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/struct/tms/members_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/struct/tms/new_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/struct/tms/stime_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/struct/tms/utime_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/struct/to_a_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/struct/to_s_spec.rb +6 -3
- data/spec/framework_spec/app/spec/core/struct/values_at_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/struct/values_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/symbol/all_symbols_spec.rb +7 -7
- data/spec/framework_spec/app/spec/core/symbol/capitalize_spec.rb +44 -0
- data/spec/framework_spec/app/spec/core/symbol/case_compare_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/symbol/casecmp_spec.rb +65 -0
- data/spec/framework_spec/app/spec/core/symbol/comparison_spec.rb +52 -0
- data/spec/framework_spec/app/spec/core/symbol/downcase_spec.rb +26 -0
- data/spec/framework_spec/app/spec/core/symbol/element_reference_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/symbol/empty_spec.rb +14 -0
- data/spec/framework_spec/app/spec/core/symbol/encoding_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/symbol/equal_value_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/symbol/id2name_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/symbol/inspect_spec.rb +19 -7
- data/spec/framework_spec/app/spec/core/symbol/intern_spec.rb +11 -0
- data/spec/framework_spec/app/spec/core/symbol/length_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/symbol/match_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/symbol/next_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/symbol/size_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/symbol/slice_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/symbol/succ_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/symbol/swapcase_spec.rb +34 -0
- data/spec/framework_spec/app/spec/core/symbol/to_i_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/symbol/to_int_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/symbol/to_proc_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/symbol/to_s_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/symbol/to_sym_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/symbol/upcase_spec.rb +22 -0
- data/spec/framework_spec/app/spec/core/systemexit/initialize_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/thread/abort_on_exception_spec.rb +14 -2
- data/spec/framework_spec/app/spec/core/thread/add_trace_func_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/thread/alive_spec.rb +18 -4
- data/spec/framework_spec/app/spec/core/thread/allocate_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/thread/backtrace_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/thread/critical_spec.rb +77 -75
- data/spec/framework_spec/app/spec/core/thread/current_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/thread/element_reference_spec.rb +14 -5
- data/spec/framework_spec/app/spec/core/thread/element_set_spec.rb +14 -5
- data/spec/framework_spec/app/spec/core/thread/exclusive_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/thread/exit_spec.rb +15 -5
- data/spec/framework_spec/app/spec/core/thread/fixtures/classes.rb +53 -40
- data/spec/framework_spec/app/spec/core/thread/fork_spec.rb +9 -2
- data/spec/framework_spec/app/spec/core/thread/group_spec.rb +5 -2
- data/spec/framework_spec/app/spec/core/thread/initialize_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/thread/inspect_spec.rb +8 -4
- data/spec/framework_spec/app/spec/core/thread/join_spec.rb +17 -6
- data/spec/framework_spec/app/spec/core/thread/key_spec.rb +16 -5
- data/spec/framework_spec/app/spec/core/thread/keys_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/thread/kill_spec.rb +11 -3
- data/spec/framework_spec/app/spec/core/thread/list_spec.rb +7 -2
- data/spec/framework_spec/app/spec/core/thread/main_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/thread/new_spec.rb +40 -3
- data/spec/framework_spec/app/spec/core/thread/pass_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/thread/priority_spec.rb +9 -2
- data/spec/framework_spec/app/spec/core/thread/raise_spec.rb +41 -27
- data/spec/framework_spec/app/spec/core/thread/run_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/thread/safe_level_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/thread/set_trace_func_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/thread/shared/exit.rb +38 -30
- data/spec/framework_spec/app/spec/core/thread/shared/start.rb +51 -0
- data/spec/framework_spec/app/spec/core/thread/shared/wakeup.rb +25 -13
- data/spec/framework_spec/app/spec/core/thread/start_spec.rb +9 -2
- data/spec/framework_spec/app/spec/core/thread/status_spec.rb +8 -4
- data/spec/framework_spec/app/spec/core/thread/stop_spec.rb +12 -8
- data/spec/framework_spec/app/spec/core/thread/terminate_spec.rb +7 -3
- data/spec/framework_spec/app/spec/core/thread/value_spec.rb +21 -8
- data/spec/framework_spec/app/spec/core/thread/wakeup_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/threadgroup/add_spec.rb +36 -37
- data/spec/framework_spec/app/spec/core/threadgroup/enclose_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/threadgroup/enclosed_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/threadgroup/list_spec.rb +24 -25
- data/spec/framework_spec/app/spec/core/time/_dump_spec.rb +13 -2
- data/spec/framework_spec/app/spec/core/time/_load_spec.rb +24 -2
- data/spec/framework_spec/app/spec/core/time/asctime_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/at_spec.rb +34 -14
- data/spec/framework_spec/app/spec/core/time/comparison_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/time/ctime_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/day_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/dst_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/dup_spec.rb +10 -2
- data/spec/framework_spec/app/spec/core/time/eql_spec.rb +9 -3
- data/spec/framework_spec/app/spec/core/time/fixtures/classes.rb +5 -0
- data/spec/framework_spec/app/spec/core/time/fixtures/methods.rb +1 -29
- data/spec/framework_spec/app/spec/core/time/friday_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/getgm_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/getlocal_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/getutc_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/gm_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/time/gmt_offset_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/gmt_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/gmtime_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/gmtoff_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/hash_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/time/hour_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/initialize_copy_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/initialize_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/inspect_spec.rb +11 -2
- data/spec/framework_spec/app/spec/core/time/isdst_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/time/local_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/time/localtime_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/mday_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/min_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/minus_spec.rb +53 -33
- data/spec/framework_spec/app/spec/core/time/mktime_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/time/mon_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/monday_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/month_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/now_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/nsec_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/plus_spec.rb +64 -19
- data/spec/framework_spec/app/spec/core/time/round_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/saturday_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/sec_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/shared/gmt_offset.rb +23 -0
- data/spec/framework_spec/app/spec/core/time/shared/inspect.rb +25 -0
- data/spec/framework_spec/app/spec/core/time/shared/isdst.rb +1 -1
- data/spec/framework_spec/app/spec/core/time/shared/local.rb +8 -0
- data/spec/framework_spec/app/spec/core/time/shared/now.rb +12 -4
- data/spec/framework_spec/app/spec/core/time/shared/time_params.rb +134 -35
- data/spec/framework_spec/app/spec/core/time/strftime_spec.rb +141 -2
- data/spec/framework_spec/app/spec/core/time/subsec_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/succ_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/sunday_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/thursday_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/times_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/to_a_spec.rb +4 -3
- data/spec/framework_spec/app/spec/core/time/to_f_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/to_i_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/to_r_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/time/to_s_spec.rb +11 -2
- data/spec/framework_spec/app/spec/core/time/tuesday_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/tv_nsec_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/tv_sec_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/tv_usec_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/time/usec_spec.rb +8 -2
- data/spec/framework_spec/app/spec/core/time/utc_offset_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/utc_spec.rb +7 -7
- data/spec/framework_spec/app/spec/core/time/wday_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/wednesday_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/yday_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/year_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/zone_spec.rb +4 -3
- data/spec/framework_spec/app/spec/core/true/and_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/true/inspect_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/true/or_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/true/to_s_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/true/xor_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/unboundmethod/arity_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/unboundmethod/bind_spec.rb +26 -6
- data/spec/framework_spec/app/spec/core/unboundmethod/clone_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/unboundmethod/eql_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/unboundmethod/equal_value_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/unboundmethod/fixtures/classes.rb +4 -1
- data/spec/framework_spec/app/spec/core/unboundmethod/hash_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/unboundmethod/inspect_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/unboundmethod/name_spec.rb +19 -5
- data/spec/framework_spec/app/spec/core/unboundmethod/owner_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/unboundmethod/parameters_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/unboundmethod/shared/to_s.rb +4 -4
- data/spec/framework_spec/app/spec/core/unboundmethod/source_location_spec.rb +31 -0
- data/spec/framework_spec/app/spec/core/unboundmethod/to_s_spec.rb +3 -3
- data/spec/framework_spec/app/spec/fixtures/class.rb +39 -16
- data/spec/framework_spec/app/spec/fixtures/class_variables.rb +7 -7
- data/spec/framework_spec/app/spec/fixtures/code/file_fixture.rb +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/line_fixture.rb +5 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_ext_fixture.rb +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.bundle +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.dll +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.dylib +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.ext +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.ext.bundle +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.ext.dll +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.ext.dylib +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.ext.rb +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.ext.so +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.rb +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.so +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/methods_fixture.rb +364 -0
- data/spec/framework_spec/app/spec/fixtures/code/raise_fixture.rb +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/recursive_load_fixture.rb +5 -0
- data/spec/framework_spec/app/spec/fixtures/code/recursive_require_fixture.rb +3 -0
- data/spec/framework_spec/app/spec/fixtures/code/wrap_fixture.rb +3 -0
- data/spec/framework_spec/app/spec/fixtures/code_loading.rb +30 -0
- data/spec/framework_spec/app/spec/fixtures/enumerator/classes.rb +15 -0
- data/spec/framework_spec/app/spec/fixtures/kernel/callcc.rb +17 -0
- data/spec/framework_spec/app/spec/fixtures/kernel/classes.rb +56 -0
- data/spec/framework_spec/app/spec/fixtures/math/common.rb +3 -0
- data/spec/framework_spec/app/spec/fixtures/reflection.rb +352 -0
- data/spec/framework_spec/app/spec/language/BEGIN_spec.rb +57 -0
- data/spec/framework_spec/app/spec/language/README +1 -1
- data/spec/framework_spec/app/spec/language/alias_spec.rb +33 -20
- data/spec/framework_spec/app/spec/language/and_spec.rb +8 -8
- data/spec/framework_spec/app/spec/language/array_spec.rb +5 -5
- data/spec/framework_spec/app/spec/language/block_spec.rb +408 -27
- data/spec/framework_spec/app/spec/language/break_spec.rb +210 -280
- data/spec/framework_spec/app/spec/language/case_spec.rb +37 -38
- data/spec/framework_spec/app/spec/language/class_spec.rb +52 -70
- data/spec/framework_spec/app/spec/language/class_variable_spec.rb +6 -6
- data/spec/framework_spec/app/spec/language/{constants_spec_dontrun.rb → constants_spec.rb} +14 -0
- data/spec/framework_spec/app/spec/language/def_spec.rb +83 -68
- data/spec/framework_spec/app/spec/language/defined_spec.rb +1181 -142
- data/spec/framework_spec/app/spec/language/encoding_spec.rb +19 -20
- data/spec/framework_spec/app/spec/language/ensure_spec.rb +32 -37
- data/spec/framework_spec/app/spec/language/execution_spec.rb +9 -11
- data/spec/framework_spec/app/spec/language/file_spec.rb +21 -39
- data/spec/framework_spec/app/spec/language/fixtures/block.rb +26 -15
- data/spec/framework_spec/app/spec/language/fixtures/break.rb +240 -0
- data/spec/framework_spec/app/spec/language/fixtures/break_lambda_toplevel.rb +9 -0
- data/spec/framework_spec/app/spec/language/fixtures/break_lambda_toplevel_block.rb +23 -0
- data/spec/framework_spec/app/spec/language/fixtures/break_lambda_toplevel_method.rb +17 -0
- data/spec/framework_spec/app/spec/language/fixtures/classes.rb +8 -8
- data/spec/framework_spec/app/spec/language/fixtures/defined.rb +270 -0
- data/spec/framework_spec/app/spec/language/fixtures/ensure.rb +6 -6
- data/spec/framework_spec/app/spec/language/fixtures/file.rb +1 -1
- data/spec/framework_spec/app/spec/language/fixtures/literal_lambda.rb +7 -0
- data/spec/framework_spec/app/spec/language/fixtures/next.rb +128 -0
- data/spec/framework_spec/app/spec/language/fixtures/private.rb +3 -3
- data/spec/framework_spec/app/spec/language/fixtures/return.rb +44 -0
- data/spec/framework_spec/app/spec/language/fixtures/rubyopt.rb +1 -0
- data/spec/framework_spec/app/spec/language/fixtures/send.rb +110 -0
- data/spec/framework_spec/app/spec/language/fixtures/send_1.9.rb +20 -0
- data/spec/framework_spec/app/spec/language/fixtures/super.rb +38 -7
- data/spec/framework_spec/app/spec/language/fixtures/variables.rb +1 -1
- data/spec/framework_spec/app/spec/language/fixtures/yield.rb +20 -2
- data/spec/framework_spec/app/spec/language/for_spec.rb +63 -39
- data/spec/framework_spec/app/spec/language/hash_spec.rb +26 -1
- data/spec/framework_spec/app/spec/language/if_spec.rb +32 -2
- data/spec/framework_spec/app/spec/language/line_spec.rb +42 -17
- data/spec/framework_spec/app/spec/language/literal_lambda_spec.rb +1 -0
- data/spec/framework_spec/app/spec/language/loop_spec.rb +7 -8
- data/spec/framework_spec/app/spec/language/magic_comment_spec.rb +60 -61
- data/spec/framework_spec/app/spec/language/metaclass_spec.rb +21 -24
- data/spec/framework_spec/app/spec/language/module_spec.rb +46 -1
- data/spec/framework_spec/app/spec/language/next_spec.rb +241 -7
- data/spec/framework_spec/app/spec/language/not_spec.rb +22 -2
- data/spec/framework_spec/app/spec/language/numbers_spec.rb +5 -6
- data/spec/framework_spec/app/spec/language/or_spec.rb +33 -7
- data/spec/framework_spec/app/spec/language/order_spec.rb +3 -3
- data/spec/framework_spec/app/spec/language/precedence_spec.rb +31 -33
- data/spec/framework_spec/app/spec/language/predefined/data_spec.rb +45 -0
- data/spec/framework_spec/app/spec/language/{fixtures/predefined.rb → predefined/fixtures/data1.rb} +2 -0
- data/spec/framework_spec/app/spec/language/predefined/fixtures/data2.rb +4 -0
- data/spec/framework_spec/app/spec/language/predefined/fixtures/data3.rb +7 -0
- data/spec/framework_spec/app/spec/language/predefined/fixtures/data4.rb +4 -0
- data/spec/framework_spec/app/spec/{core/io/data/fixtures/data2.rb → language/predefined/fixtures/data_flock.rb} +1 -1
- data/spec/framework_spec/app/spec/language/predefined/fixtures/data_only.rb +2 -0
- data/spec/framework_spec/app/spec/language/predefined/fixtures/print_data.rb +3 -0
- data/spec/framework_spec/app/spec/language/predefined_spec.rb +599 -283
- data/spec/framework_spec/app/spec/language/private_spec.rb +4 -4
- data/spec/framework_spec/app/spec/language/proc_spec.rb +238 -0
- data/spec/framework_spec/app/spec/language/redo_spec.rb +2 -2
- data/spec/framework_spec/app/spec/language/regexp/anchors_spec.rb +163 -0
- data/spec/framework_spec/app/spec/language/regexp/back-references_spec.rb +50 -0
- data/spec/framework_spec/app/spec/language/regexp/character_classes_spec.rb +96 -0
- data/spec/framework_spec/app/spec/language/regexp/encoding_spec.rb +129 -0
- data/spec/framework_spec/app/spec/language/regexp/escapes_spec.rb +80 -0
- data/spec/framework_spec/app/spec/language/regexp/grouping_spec.rb +23 -0
- data/spec/framework_spec/app/spec/language/regexp/interpolation_spec.rb +55 -0
- data/spec/framework_spec/app/spec/language/regexp/modifiers_spec.rb +132 -0
- data/spec/framework_spec/app/spec/language/regexp/repetition_spec.rb +47 -0
- data/spec/framework_spec/app/spec/language/regexp/versions/character_classes_1.9.rb +499 -0
- data/spec/framework_spec/app/spec/language/regexp_spec.rb +42 -677
- data/spec/framework_spec/app/spec/language/rescue_spec.rb +57 -8
- data/spec/framework_spec/app/spec/language/retry_spec.rb +4 -4
- data/spec/framework_spec/app/spec/language/return_spec.rb +11 -2
- data/spec/framework_spec/app/spec/language/send_spec.rb +227 -0
- data/spec/framework_spec/app/spec/language/shared/__FILE__.rb +37 -0
- data/spec/framework_spec/app/spec/language/shared/__LINE__.rb +17 -0
- data/spec/framework_spec/app/spec/language/singleton_class_spec.rb +299 -0
- data/spec/framework_spec/app/spec/language/splat_spec.rb +188 -0
- data/spec/framework_spec/app/spec/language/string_spec.rb +42 -7
- data/spec/framework_spec/app/spec/language/super_spec.rb +11 -5
- data/spec/framework_spec/app/spec/language/symbol_spec.rb +18 -11
- data/spec/framework_spec/app/spec/language/throw_spec.rb +3 -3
- data/spec/framework_spec/app/spec/language/undef_spec.rb +1 -1
- data/spec/framework_spec/app/spec/language/unless_spec.rb +8 -8
- data/spec/framework_spec/app/spec/language/until_spec.rb +27 -27
- data/spec/framework_spec/app/spec/language/variables_spec.rb +57 -61
- data/spec/framework_spec/app/spec/language/versions/array_1.9.rb +8 -0
- data/spec/framework_spec/app/spec/language/versions/block_1.9.rb +80 -17
- data/spec/framework_spec/app/spec/language/versions/case_1.9.rb +5 -5
- data/spec/framework_spec/app/spec/language/versions/hash_1.9.rb +19 -0
- data/spec/framework_spec/app/spec/language/versions/literal_lambda_1.9.rb +143 -0
- data/spec/framework_spec/app/spec/language/versions/not_1.9.rb +22 -0
- data/spec/framework_spec/app/spec/language/versions/regexp_1.9.rb +3 -3
- data/spec/framework_spec/app/spec/language/versions/send_1.9.rb +196 -0
- data/spec/framework_spec/app/spec/language/versions/symbol_1.9.rb +10 -2
- data/spec/framework_spec/app/spec/language/versions/variables_1.9.rb +8 -0
- data/spec/framework_spec/app/spec/language/while_spec.rb +24 -24
- data/spec/framework_spec/app/spec/language/yield_spec.rb +105 -84
- data/spec/framework_spec/app/spec/library/base64/b64encode_spec.rb +36 -0
- data/spec/framework_spec/app/spec/library/base64/decode64_spec.rb +9 -0
- data/spec/framework_spec/app/spec/library/base64/decode_b_spec.rb +19 -0
- data/spec/framework_spec/app/spec/library/base64/encode64_spec.rb +14 -0
- data/spec/framework_spec/app/spec/library/digest/hexencode_spec.rb +31 -0
- data/spec/framework_spec/app/spec/library/digest/md5/append_spec.rb +3 -3
- data/spec/framework_spec/app/spec/library/digest/md5/block_length_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/digest_bang_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/digest_length_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/digest_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/equal_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/file_spec.rb +48 -0
- data/spec/framework_spec/app/spec/library/digest/md5/hexdigest_bang_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/hexdigest_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/inspect_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/length_spec.rb +3 -3
- data/spec/framework_spec/app/spec/library/digest/md5/reset_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/shared/constants.rb +1 -1
- data/spec/framework_spec/app/spec/library/digest/md5/shared/sample.rb +1 -1
- data/spec/framework_spec/app/spec/library/digest/md5/size_spec.rb +3 -3
- data/spec/framework_spec/app/spec/library/digest/md5/to_s_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/update_spec.rb +3 -3
- data/spec/framework_spec/app/spec/library/digest/sha1/digest_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/sha1/file_spec.rb +43 -0
- data/spec/framework_spec/app/spec/library/digest/sha1/shared/constants.rb +1 -1
- data/spec/framework_spec/app/spec/library/set/add_spec.rb +27 -0
- data/spec/framework_spec/app/spec/library/set/append_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/classify_spec.rb +35 -0
- data/spec/framework_spec/app/spec/library/set/clear_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/set/collect_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/constructor_spec.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/delete_if_spec.rb +46 -0
- data/spec/framework_spec/app/spec/library/set/delete_spec.rb +37 -0
- data/spec/framework_spec/app/spec/library/set/difference_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/divide_spec.rb +34 -0
- data/spec/framework_spec/app/spec/library/set/each_spec.rb +34 -0
- data/spec/framework_spec/app/spec/library/set/empty_spec.rb +10 -0
- data/spec/framework_spec/app/spec/library/set/enumerable/to_set_spec.rb +19 -0
- data/spec/framework_spec/app/spec/library/set/eql_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/set/equal_value_spec.rb +38 -0
- data/spec/framework_spec/app/spec/library/set/exclusion_spec.rb +18 -0
- data/spec/framework_spec/app/spec/library/set/flatten_merge_spec.rb +23 -0
- data/spec/framework_spec/app/spec/library/set/flatten_spec.rb +40 -0
- data/spec/framework_spec/app/spec/library/set/hash_spec.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/include_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/initialize_copy_spec.rb +18 -0
- data/spec/framework_spec/app/spec/library/set/initialize_spec.rb +24 -0
- data/spec/framework_spec/app/spec/library/set/inspect_spec.rb +18 -0
- data/spec/framework_spec/app/spec/library/set/intersection_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/set/keep_if_spec.rb +41 -0
- data/spec/framework_spec/app/spec/library/set/length_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/map_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/member_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/merge_spec.rb +19 -0
- data/spec/framework_spec/app/spec/library/set/minus_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/plus_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/pretty_print_cycle_spec.rb +10 -0
- data/spec/framework_spec/app/spec/library/set/pretty_print_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/set/proper_subset_spec.rb +34 -0
- data/spec/framework_spec/app/spec/library/set/proper_superset_spec.rb +34 -0
- data/spec/framework_spec/app/spec/library/set/reject_spec.rb +50 -0
- data/spec/framework_spec/app/spec/library/set/replace_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/set/select_spec.rb +45 -0
- data/spec/framework_spec/app/spec/library/set/shared/add.rb +14 -0
- data/spec/framework_spec/app/spec/library/set/shared/collect.rb +20 -0
- data/spec/framework_spec/app/spec/library/set/shared/difference.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/shared/include.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/shared/intersection.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/shared/length.rb +6 -0
- data/spec/framework_spec/app/spec/library/set/shared/union.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/size_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/add_spec.rb +36 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/append_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/classify_spec.rb +35 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/clear_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/collect_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/constructor_spec.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/delete_if_spec.rb +48 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/delete_spec.rb +37 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/difference_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/divide_spec.rb +34 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/each_spec.rb +36 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/empty_spec.rb +10 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/eql_spec.rb +18 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/equal_value_spec.rb +13 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/exclusion_spec.rb +18 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/flatten_merge_spec.rb +8 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/flatten_spec.rb +48 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/hash_spec.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/include_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/initialize_copy_spec.rb +18 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/initialize_spec.rb +32 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/inspect_spec.rb +10 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/intersection_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/keep_if_spec.rb +34 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/length_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/map_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/member_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/merge_spec.rb +19 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/minus_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/plus_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/pretty_print_cycle_spec.rb +10 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/pretty_print_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/proper_subset_spec.rb +33 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/proper_superset_spec.rb +33 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/reject_spec.rb +52 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/replace_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/select_spec.rb +38 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/shared/add.rb +14 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/shared/collect.rb +20 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/shared/difference.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/shared/include.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/shared/intersection.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/shared/length.rb +6 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/shared/union.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/size_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/subset_spec.rb +33 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/subtract_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/superset_spec.rb +33 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/to_a_spec.rb +8 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/union_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/set/subset_spec.rb +34 -0
- data/spec/framework_spec/app/spec/library/set/subtract_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/set/superset_spec.rb +34 -0
- data/spec/framework_spec/app/spec/library/set/to_a_spec.rb +8 -0
- data/spec/framework_spec/app/spec/library/set/union_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/stringio/append_spec.rb +84 -0
- data/spec/framework_spec/app/spec/library/stringio/binmode_spec.rb +9 -0
- data/spec/framework_spec/app/spec/library/stringio/bytes_spec.rb +13 -0
- data/spec/framework_spec/app/spec/library/stringio/chars_spec.rb +13 -0
- data/spec/framework_spec/app/spec/library/stringio/close_read_spec.rb +31 -0
- data/spec/framework_spec/app/spec/library/stringio/close_spec.rb +23 -0
- data/spec/framework_spec/app/spec/library/stringio/close_write_spec.rb +31 -0
- data/spec/framework_spec/app/spec/library/stringio/closed_read_spec.rb +12 -0
- data/spec/framework_spec/app/spec/library/stringio/closed_spec.rb +16 -0
- data/spec/framework_spec/app/spec/library/stringio/closed_write_spec.rb +12 -0
- data/spec/framework_spec/app/spec/library/stringio/codepoints.rb +11 -0
- data/spec/framework_spec/app/spec/library/stringio/each_byte_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/stringio/each_char_spec.rb +13 -0
- data/spec/framework_spec/app/spec/library/stringio/each_codepoint.rb +12 -0
- data/spec/framework_spec/app/spec/library/stringio/each_line_spec.rb +15 -0
- data/spec/framework_spec/app/spec/library/stringio/each_spec.rb +15 -0
- data/spec/framework_spec/app/spec/library/stringio/eof_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/stringio/external_encoding.rb +12 -0
- data/spec/framework_spec/app/spec/library/stringio/fcntl_spec.rb +8 -0
- data/spec/framework_spec/app/spec/library/stringio/fileno_spec.rb +9 -0
- data/spec/framework_spec/app/spec/library/stringio/fixtures/classes.rb +15 -0
- data/spec/framework_spec/app/spec/library/stringio/flush_spec.rb +9 -0
- data/spec/framework_spec/app/spec/library/stringio/fsync_spec.rb +9 -0
- data/spec/framework_spec/app/spec/library/stringio/getbyte_spec.rb +21 -0
- data/spec/framework_spec/app/spec/library/stringio/getc_spec.rb +19 -0
- data/spec/framework_spec/app/spec/library/stringio/gets_spec.rb +139 -0
- data/spec/framework_spec/app/spec/library/stringio/initialize_copy_spec.rb +96 -0
- data/spec/framework_spec/app/spec/library/stringio/initialize_spec.rb +194 -0
- data/spec/framework_spec/app/spec/library/stringio/internal_encoding.rb +12 -0
- data/spec/framework_spec/app/spec/library/stringio/isatty_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringio/length_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringio/lineno_spec.rb +30 -0
- data/spec/framework_spec/app/spec/library/stringio/lines_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/stringio/open_spec.rb +216 -0
- data/spec/framework_spec/app/spec/library/stringio/path_spec.rb +16 -0
- data/spec/framework_spec/app/spec/library/stringio/pid_spec.rb +8 -0
- data/spec/framework_spec/app/spec/library/stringio/pos_spec.rb +28 -0
- data/spec/framework_spec/app/spec/library/stringio/print_spec.rb +114 -0
- data/spec/framework_spec/app/spec/library/stringio/printf_spec.rb +61 -0
- data/spec/framework_spec/app/spec/library/stringio/putc_spec.rb +88 -0
- data/spec/framework_spec/app/spec/library/stringio/puts_spec.rb +159 -0
- data/spec/framework_spec/app/spec/library/stringio/read_spec.rb +62 -0
- data/spec/framework_spec/app/spec/library/stringio/readbyte_spec.rb +22 -0
- data/spec/framework_spec/app/spec/library/stringio/readchar_spec.rb +20 -0
- data/spec/framework_spec/app/spec/library/stringio/readline_spec.rb +128 -0
- data/spec/framework_spec/app/spec/library/stringio/readlines_spec.rb +94 -0
- data/spec/framework_spec/app/spec/library/stringio/readpartial_spec.rb +83 -0
- data/spec/framework_spec/app/spec/library/stringio/reopen_spec.rb +304 -0
- data/spec/framework_spec/app/spec/library/stringio/rewind_spec.rb +24 -0
- data/spec/framework_spec/app/spec/library/stringio/seek_spec.rb +76 -0
- data/spec/framework_spec/app/spec/library/stringio/set_encoding.rb +12 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/codepoints.rb +45 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/each.rb +115 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/each_byte.rb +60 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/each_char.rb +50 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/eof.rb +24 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/getc.rb +43 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/isatty.rb +5 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/length.rb +5 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/read.rb +125 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/readchar.rb +29 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/tell.rb +12 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/write.rb +87 -0
- data/spec/framework_spec/app/spec/library/stringio/size_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringio/string_spec.rb +50 -0
- data/spec/framework_spec/app/spec/library/stringio/stringio_spec.rb +9 -0
- data/spec/framework_spec/app/spec/library/stringio/sync_spec.rb +19 -0
- data/spec/framework_spec/app/spec/library/stringio/sysread_spec.rb +54 -0
- data/spec/framework_spec/app/spec/library/stringio/syswrite_spec.rb +19 -0
- data/spec/framework_spec/app/spec/library/stringio/tell_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringio/truncate_spec.rb +70 -0
- data/spec/framework_spec/app/spec/library/stringio/tty_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringio/ungetc_spec.rb +99 -0
- data/spec/framework_spec/app/spec/library/stringio/write_spec.rb +19 -0
- data/spec/framework_spec/app/spec/library/stringscanner/append_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/stringscanner/beginning_of_line_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringscanner/bol_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringscanner/check_spec.rb +16 -0
- data/spec/framework_spec/app/spec/library/stringscanner/check_until_spec.rb +15 -0
- data/spec/framework_spec/app/spec/library/stringscanner/clear_spec.rb +26 -0
- data/spec/framework_spec/app/spec/library/stringscanner/concat_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/stringscanner/dup_spec.rb +39 -0
- data/spec/framework_spec/app/spec/library/stringscanner/element_reference_spec.rb +49 -0
- data/spec/framework_spec/app/spec/library/stringscanner/empty_spec.rb +26 -0
- data/spec/framework_spec/app/spec/library/stringscanner/eos_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringscanner/exist_spec.rb +24 -0
- data/spec/framework_spec/app/spec/library/stringscanner/get_byte_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringscanner/getbyte_spec.rb +29 -0
- data/spec/framework_spec/app/spec/library/stringscanner/getch_spec.rb +44 -0
- data/spec/framework_spec/app/spec/library/stringscanner/initialize_spec.rb +28 -0
- data/spec/framework_spec/app/spec/library/stringscanner/inspect_spec.rb +20 -0
- data/spec/framework_spec/app/spec/library/stringscanner/match_spec.rb +28 -0
- data/spec/framework_spec/app/spec/library/stringscanner/matched_size_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringscanner/matched_spec.rb +41 -0
- data/spec/framework_spec/app/spec/library/stringscanner/matchedsize_spec.rb +27 -0
- data/spec/framework_spec/app/spec/library/stringscanner/must_C_version_spec.rb +8 -0
- data/spec/framework_spec/app/spec/library/stringscanner/peek_spec.rb +8 -0
- data/spec/framework_spec/app/spec/library/stringscanner/peep_spec.rb +26 -0
- data/spec/framework_spec/app/spec/library/stringscanner/pointer_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/stringscanner/pos_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/stringscanner/post_match_spec.rb +28 -0
- data/spec/framework_spec/app/spec/library/stringscanner/pre_match_spec.rb +41 -0
- data/spec/framework_spec/app/spec/library/stringscanner/reset_spec.rb +15 -0
- data/spec/framework_spec/app/spec/library/stringscanner/rest_size_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringscanner/rest_spec.rb +48 -0
- data/spec/framework_spec/app/spec/library/stringscanner/restsize_spec.rb +26 -0
- data/spec/framework_spec/app/spec/library/stringscanner/scan_full_spec.rb +30 -0
- data/spec/framework_spec/app/spec/library/stringscanner/scan_spec.rb +43 -0
- data/spec/framework_spec/app/spec/library/stringscanner/scan_until_spec.rb +23 -0
- data/spec/framework_spec/app/spec/library/stringscanner/search_full_spec.rb +30 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/bol.rb +25 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/concat.rb +30 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/eos.rb +17 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/extract_range.rb +22 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/extract_range_matched.rb +22 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/get_byte.rb +28 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/matched_size.rb +21 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/peek.rb +44 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/pos.rb +52 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/rest_size.rb +18 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/terminate.rb +8 -0
- data/spec/framework_spec/app/spec/library/stringscanner/skip_spec.rb +18 -0
- data/spec/framework_spec/app/spec/library/stringscanner/skip_until_spec.rb +18 -0
- data/spec/framework_spec/app/spec/library/stringscanner/string_spec.rb +40 -0
- data/spec/framework_spec/app/spec/library/stringscanner/terminate_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringscanner/unscan_spec.rb +29 -0
- data/spec/framework_spec/app/spec/shared/complex/Complex.rb +76 -0
- data/spec/framework_spec/app/spec/shared/complex/abs.rb +12 -0
- data/spec/framework_spec/app/spec/shared/complex/abs2.rb +12 -0
- data/spec/framework_spec/app/spec/shared/complex/arg.rb +9 -0
- data/spec/framework_spec/app/spec/shared/complex/coerce.rb +41 -0
- data/spec/framework_spec/app/spec/shared/complex/conjugate.rb +8 -0
- data/spec/framework_spec/app/spec/shared/complex/denominator.rb +13 -0
- data/spec/framework_spec/app/spec/shared/complex/divide.rb +57 -0
- data/spec/framework_spec/app/spec/shared/complex/equal_value.rb +64 -0
- data/spec/framework_spec/app/spec/shared/complex/exponent.rb +54 -0
- data/spec/framework_spec/app/spec/shared/complex/hash.rb +16 -0
- data/spec/framework_spec/app/spec/shared/complex/image.rb +10 -0
- data/spec/framework_spec/app/spec/shared/complex/inspect.rb +29 -0
- data/spec/framework_spec/app/spec/shared/complex/minus.rb +25 -0
- data/spec/framework_spec/app/spec/shared/complex/modulo.rb +25 -0
- data/spec/framework_spec/app/spec/shared/complex/multiply.rb +24 -0
- data/spec/framework_spec/app/spec/shared/complex/numerator.rb +19 -0
- data/spec/framework_spec/app/spec/shared/complex/numeric/arg.rb +43 -0
- data/spec/framework_spec/app/spec/shared/complex/numeric/conj.rb +26 -0
- data/spec/framework_spec/app/spec/shared/complex/numeric/imag.rb +26 -0
- data/spec/framework_spec/app/spec/shared/complex/numeric/polar.rb +52 -0
- data/spec/framework_spec/app/spec/shared/complex/numeric/real.rb +30 -0
- data/spec/framework_spec/app/spec/shared/complex/plus.rb +25 -0
- data/spec/framework_spec/app/spec/shared/complex/polar.rb +22 -0
- data/spec/framework_spec/app/spec/shared/complex/real.rb +8 -0
- data/spec/framework_spec/app/spec/shared/complex/rect.rb +45 -0
- data/spec/framework_spec/app/spec/shared/complex/to_s.rb +39 -0
- data/spec/framework_spec/app/spec/shared/continuation/call.rb +76 -0
- data/spec/framework_spec/app/spec/shared/continuation/new.rb +5 -0
- data/spec/framework_spec/app/spec/shared/enumerator/each.rb +45 -0
- data/spec/framework_spec/app/spec/shared/enumerator/enum_cons.rb +12 -0
- data/spec/framework_spec/app/spec/shared/enumerator/enum_for.rb +15 -0
- data/spec/framework_spec/app/spec/shared/enumerator/new.rb +42 -0
- data/spec/framework_spec/app/spec/shared/enumerator/next.rb +30 -0
- data/spec/framework_spec/app/spec/shared/enumerator/rewind.rb +32 -0
- data/spec/framework_spec/app/spec/shared/enumerator/with_index.rb +35 -0
- data/spec/framework_spec/app/spec/shared/enumerator/with_object.rb +19 -0
- data/spec/framework_spec/app/spec/shared/fiber/resume.rb +65 -0
- data/spec/framework_spec/app/spec/shared/file/blockdev.rb +7 -1
- data/spec/framework_spec/app/spec/shared/file/chardev.rb +7 -1
- data/spec/framework_spec/app/spec/shared/file/directory.rb +59 -21
- data/spec/framework_spec/app/spec/shared/file/executable.rb +10 -14
- data/spec/framework_spec/app/spec/shared/file/executable_real.rb +15 -9
- data/spec/framework_spec/app/spec/shared/file/exist.rb +9 -3
- data/spec/framework_spec/app/spec/shared/file/file.rb +12 -10
- data/spec/framework_spec/app/spec/shared/file/grpowned.rb +12 -6
- data/spec/framework_spec/app/spec/shared/file/identical.rb +21 -16
- data/spec/framework_spec/app/spec/shared/file/owned.rb +4 -0
- data/spec/framework_spec/app/spec/shared/file/pipe.rb +4 -0
- data/spec/framework_spec/app/spec/shared/file/readable.rb +16 -13
- data/spec/framework_spec/app/spec/shared/file/readable_real.rb +7 -1
- data/spec/framework_spec/app/spec/shared/file/size.rb +107 -15
- data/spec/framework_spec/app/spec/shared/file/socket.rb +4 -0
- data/spec/framework_spec/app/spec/shared/file/sticky.rb +30 -0
- data/spec/framework_spec/app/spec/shared/file/symlink.rb +20 -14
- data/spec/framework_spec/app/spec/shared/file/world_readable.rb +48 -0
- data/spec/framework_spec/app/spec/shared/file/world_writable.rb +48 -0
- data/spec/framework_spec/app/spec/shared/file/writable.rb +10 -7
- data/spec/framework_spec/app/spec/shared/file/writable_real.rb +7 -1
- data/spec/framework_spec/app/spec/shared/file/zero.rb +16 -17
- data/spec/framework_spec/app/spec/shared/io/putc.rb +57 -0
- data/spec/framework_spec/app/spec/shared/kernel/callcc.rb +68 -0
- data/spec/framework_spec/app/spec/shared/kernel/method_missing.rb +60 -0
- data/spec/framework_spec/app/spec/shared/kernel/singleton_method_added.rb +7 -0
- data/spec/framework_spec/app/spec/shared/kernel/singleton_method_removed.rb +7 -0
- data/spec/framework_spec/app/spec/shared/kernel/singleton_method_undefined.rb +7 -0
- data/spec/framework_spec/app/spec/shared/math/atanh.rb +142 -0
- data/spec/framework_spec/app/spec/shared/process/times.rb +8 -8
- data/spec/framework_spec/app/spec/shared/rational/Rational.rb +113 -0
- data/spec/framework_spec/app/spec/shared/rational/abs.rb +12 -0
- data/spec/framework_spec/app/spec/shared/rational/ceil.rb +41 -0
- data/spec/framework_spec/app/spec/shared/rational/coerce.rb +41 -0
- data/spec/framework_spec/app/spec/shared/rational/comparison.rb +86 -0
- data/spec/framework_spec/app/spec/shared/rational/denominator.rb +15 -0
- data/spec/framework_spec/app/spec/shared/rational/div.rb +81 -0
- data/spec/framework_spec/app/spec/shared/rational/divide.rb +72 -0
- data/spec/framework_spec/app/spec/shared/rational/divmod.rb +53 -0
- data/spec/framework_spec/app/spec/shared/rational/equal_value.rb +62 -0
- data/spec/framework_spec/app/spec/shared/rational/exponent.rb +144 -0
- data/spec/framework_spec/app/spec/shared/rational/fdiv.rb +5 -0
- data/spec/framework_spec/app/spec/shared/rational/floor.rb +5 -0
- data/spec/framework_spec/app/spec/shared/rational/hash.rb +10 -0
- data/spec/framework_spec/app/spec/shared/rational/initialize.rb +25 -0
- data/spec/framework_spec/app/spec/shared/rational/inspect.rb +24 -0
- data/spec/framework_spec/app/spec/shared/rational/marshal_dump.rb +5 -0
- data/spec/framework_spec/app/spec/shared/rational/marshal_load.rb +5 -0
- data/spec/framework_spec/app/spec/shared/rational/minus.rb +49 -0
- data/spec/framework_spec/app/spec/shared/rational/modulo.rb +52 -0
- data/spec/framework_spec/app/spec/shared/rational/multiply.rb +63 -0
- data/spec/framework_spec/app/spec/shared/rational/new.rb +21 -0
- data/spec/framework_spec/app/spec/shared/rational/numerator.rb +11 -0
- data/spec/framework_spec/app/spec/shared/rational/plus.rb +49 -0
- data/spec/framework_spec/app/spec/shared/rational/quo.rb +5 -0
- data/spec/framework_spec/app/spec/shared/rational/reduce.rb +31 -0
- data/spec/framework_spec/app/spec/shared/rational/remainder.rb +5 -0
- data/spec/framework_spec/app/spec/shared/rational/round.rb +5 -0
- data/spec/framework_spec/app/spec/shared/rational/to_f.rb +11 -0
- data/spec/framework_spec/app/spec/shared/rational/to_i.rb +15 -0
- data/spec/framework_spec/app/spec/shared/rational/to_r.rb +14 -0
- data/spec/framework_spec/app/spec/shared/rational/to_s.rb +24 -0
- data/spec/framework_spec/app/spec/shared/rational/truncate.rb +5 -0
- data/spec/framework_spec/app/spec/spec_helper.rb +1 -37
- data/spec/framework_spec/app/spec/version.rb +3 -0
- data/spec/framework_spec/app/spec_runner.rb +50 -80
- data/spec/framework_spec/build.yml +3 -4
- data/spec/framework_spec/rhoconfig.txt +4 -1
- data/spec/phone_spec/app/spec/contacts_spec.rb +8 -4
- data/spec/phone_spec/app/spec/date_spec.rb +17 -0
- data/spec/phone_spec/app/spec/rhom_object_spec.rb +11 -0
- data/spec/phone_spec/app/spec/syncengine_spec.rb +63 -1
- data/spec/phone_spec/app/spec/uri_spec.rb +2 -0
- data/spec/phone_spec/app/spec/xml_spec.rb +10 -3
- data/spec/phone_spec/app/spec_runner.rb +1 -1
- data/spec/phone_spec/build.yml +2 -2
- data/spec/phone_spec/rhoconfig.txt +1 -0
- metadata +1059 -91
- data/Manifest.txt +0 -6338
- data/doc/rhodes-api/alert-api.txt +0 -102
- data/lib/extensions/mspec/mspec/fileutils.rb +0 -1589
- data/lib/extensions/mspec/mspec/helpers/bignum.rb +0 -5
- data/lib/extensions/mspec/mspec/helpers/infinity.rb +0 -5
- data/lib/extensions/mspec/mspec/helpers/metaclass.rb +0 -7
- data/lib/extensions/mspec/mspec/helpers/nan.rb +0 -5
- data/platform/shared/ruby/blockinlining.c +0 -464
- data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.0b2.min.css +0 -8
- data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.0b2.min.js +0 -155
- data/res/generators/templates/application/public/jquery/jquery-1.6.2.min.js +0 -18
- data/spec/framework_spec/app/spec/core/basicobject/basic_object_class_spec.rb +0 -18
- data/spec/framework_spec/app/spec/core/basicobject/basic_object_spec.rb +0 -23
- data/spec/framework_spec/app/spec/core/basicobject/basic_object_subclass_spec.rb +0 -25
- data/spec/framework_spec/app/spec/core/basicobject/metaclass_spec.rb +0 -27
- data/spec/framework_spec/app/spec/core/basicobject/remove_method_missing.rb +0 -14
- data/spec/framework_spec/app/spec/core/basicobject/shared/behavior.rb +0 -16
- data/spec/framework_spec/app/spec/core/builtin_constants/builtin_constants.rb +0 -13
- data/spec/framework_spec/app/spec/core/continuation/continuation_spec.rb +0 -109
- data/spec/framework_spec/app/spec/core/dir/new_spec.rb +0 -2
- data/spec/framework_spec/app/spec/core/enumerable/each_spec.rb +0 -14
- data/spec/framework_spec/app/spec/core/fiber/alive_spec.rb +0 -54
- data/spec/framework_spec/app/spec/core/fiber/current_spec.rb +0 -63
- data/spec/framework_spec/app/spec/core/fiber/shared/resume.rb +0 -71
- data/spec/framework_spec/app/spec/core/fiber/transfer_spec.rb +0 -45
- data/spec/framework_spec/app/spec/core/io/data/data_spec.rb +0 -13
- data/spec/framework_spec/app/spec/core/io/data/fixtures/data1.rb +0 -3
- data/spec/framework_spec/app/spec/core/io/data/flock_spec.rb +0 -22
- data/spec/framework_spec/app/spec/core/io/fixtures/paragraphs.txt +0 -7
- data/spec/framework_spec/app/spec/core/io/fixtures/readlines.txt +0 -6
- data/spec/framework_spec/app/spec/core/kernel/__callee__spec.rb +0 -9
- data/spec/framework_spec/app/spec/core/kernel/__method__spec.rb +0 -9
- data/spec/framework_spec/app/spec/core/proc/fixtures/procs.rb +0 -5
- data/spec/framework_spec/app/spec/find_spec.rb +0 -56
- data/spec/framework_spec/app/spec/fixtures/load/load_spec +0 -1
- data/spec/framework_spec/app/spec/fixtures/load/load_spec.rooby +0 -1
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_1.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_10.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_2.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_3.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_4.rb +0 -12
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_5.rb +0 -2
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_6.rb +0 -2
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_7.rb +0 -2
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_8.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_9.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_wrap.rb +0 -7
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_wrap2.rb +0 -7
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_wrap_2.rb +0 -7
- data/spec/framework_spec/app/spec/fixtures/matrix.rb +0 -5
- data/spec/framework_spec/app/spec/fixtures/require/masked_require_spec_2.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/masked_require_spec_3.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec.rooby +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec.rooby.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_1.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_10.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_2.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_3.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_4.rb +0 -12
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_6.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_7.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_8.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_9.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_raises.rb +0 -3
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_recursive.rb +0 -2
- data/spec/framework_spec/app/spec/language/catch_spec.rb +0 -84
- data/spec/framework_spec/app/spec/language/eigenclass_spec.rb +0 -317
- data/spec/framework_spec/app/spec/language/else_spec.rb +0 -1
- data/spec/framework_spec/app/spec/language/method_spec.rb +0 -273
- data/spec/framework_spec/app/spec/language/versions/array_1.8.rb +0 -13
- data/spec/framework_spec/app/spec/language/versions/method_1.9.rb +0 -137
- data/spec/framework_spec/app/spec/language/versions/symbol_1.8.rb +0 -5
@@ -16,6 +16,7 @@
|
|
16
16
|
#pragma warn_illegal_instructions off
|
17
17
|
#pragma suppress_warnings on
|
18
18
|
|
19
|
+
#define HAVE_SIGNBIT 1
|
19
20
|
#define HAVE_INET_NTOP 1
|
20
21
|
#define HAVE_INET_PTON 1
|
21
22
|
#define HAVE_GAI_STRERROR 1
|
@@ -38,7 +39,6 @@
|
|
38
39
|
#define HAVE_LONG_LONG 1
|
39
40
|
#define HAVE_OFF_T 1
|
40
41
|
#define SIZEOF_INT 4
|
41
|
-
#define SIZEOF_PTRDIFF_T 4
|
42
42
|
#define SIZEOF_SHORT 2
|
43
43
|
#define SIZEOF_LONG 4
|
44
44
|
#define SIZEOF_LONG_LONG 8
|
@@ -48,6 +48,10 @@
|
|
48
48
|
#define SIZEOF_FLOAT 4
|
49
49
|
#define SIZEOF_DOUBLE 8
|
50
50
|
#define SIZEOF_TIME_T 4
|
51
|
+
#define TIMET2NUM(v) LONG2NUM(v)
|
52
|
+
#define NUM2TIMET(v) NUM2LONG(v)
|
53
|
+
#define SIZEOF_SIZE_T 4
|
54
|
+
#define SIZEOF_PTRDIFF_T 4
|
51
55
|
#define rb_pid_t pid_t
|
52
56
|
#define PIDT2NUM(v) LONG2NUM(v)
|
53
57
|
#define NUM2PIDT(v) NUM2LONG(v)
|
@@ -61,7 +65,9 @@
|
|
61
65
|
#define TOKEN_PASTE(x,y) x##y
|
62
66
|
#define STRINGIZE(expr) STRINGIZE0(expr)
|
63
67
|
#define HAVE_STDARG_PROTOTYPES 1
|
64
|
-
#define
|
68
|
+
#define NORETURN(x) __attribute__ ((noreturn)) x
|
69
|
+
#define DEPRECATED(x) __attribute__ ((deprecated)) x
|
70
|
+
#define NOINLINE(x) __attribute__ ((noinline)) x
|
65
71
|
#define FUNC_STDCALL(x) x
|
66
72
|
#define FUNC_CDECL(x) x
|
67
73
|
#define FUNC_FASTCALL(x) x
|
@@ -89,21 +95,33 @@
|
|
89
95
|
#define HAVE_PTHREAD_H 1
|
90
96
|
#define HAVE_LANGINFO_H 1
|
91
97
|
#define HAVE_LOCALE_H 1
|
92
|
-
#define SIZEOF_RLIM_T 0
|
93
98
|
#define HAVE_STRUCT_STAT_ST_BLKSIZE 1
|
94
99
|
#define HAVE_ST_BLKSIZE 1
|
95
100
|
#define HAVE_STRUCT_STAT_ST_BLOCKS 1
|
96
101
|
#define HAVE_ST_BLOCKS 1
|
97
102
|
#define HAVE_STRUCT_STAT_ST_RDEV 1
|
98
103
|
#define HAVE_ST_RDEV 1
|
104
|
+
#define HAVE_INT8_T 1
|
105
|
+
#define HAVE_UINT8_T 1
|
106
|
+
#define SIZEOF_INT8_T 1
|
107
|
+
#define HAVE_INT16_T 1
|
108
|
+
#define HAVE_UINT16_T 1
|
109
|
+
#define SIZEOF_INT16_T 2
|
110
|
+
#define HAVE_INT32_T 1
|
111
|
+
#define HAVE_UINT32_T 1
|
112
|
+
#define SIZEOF_INT32_T 4
|
113
|
+
#define HAVE_INT64_T 1
|
114
|
+
#define HAVE_UINT64_T 1
|
115
|
+
#define SIZEOF_INT64_T 8
|
99
116
|
#define HAVE_STRUCT_STAT_ST_ATIMESPEC 1
|
100
117
|
#define HAVE_STRUCT_STAT_ST_MTIMESPEC 1
|
101
118
|
#define HAVE_STRUCT_STAT_ST_CTIMESPEC 1
|
102
119
|
#define HAVE_STRUCT_TIMESPEC 1
|
120
|
+
#define HAVE_STRUCT_TIMEZONE 1
|
103
121
|
#define HAVE_RB_FD_INIT 1
|
104
122
|
#define GETGROUPS_T gid_t
|
105
123
|
#define RETSIGTYPE void
|
106
|
-
#define
|
124
|
+
#define C_ALLOCA 1
|
107
125
|
#define HAVE_DUP2 1
|
108
126
|
#define HAVE_MEMMOVE 1
|
109
127
|
#define HAVE_STRCASECMP 1
|
@@ -164,6 +182,7 @@
|
|
164
182
|
#define HAVE_SETGID 1
|
165
183
|
#define HAVE_SETENV 1
|
166
184
|
#define HAVE_UNSETENV 1
|
185
|
+
#define VOID_UNSETENV 1
|
167
186
|
#define HAVE_MKTIME 1
|
168
187
|
#define HAVE_CLOCK_GETTIME 1
|
169
188
|
#define HAVE_GETTIMEOFDAY 1
|
@@ -171,8 +190,12 @@
|
|
171
190
|
#define HAVE_TM_ZONE 1
|
172
191
|
#define HAVE_STRUCT_TM_TM_GMTOFF 1
|
173
192
|
#define NEGATIVE_TIME_T 1
|
174
|
-
//#define POSIX_SIGNAL 1
|
175
193
|
#define RSHIFT(x,y) ((x)>>(int)y)
|
194
|
+
//#define DOSISH 1
|
195
|
+
#define DOSISH_DRIVE_LETTER
|
196
|
+
#define RUBY_JMP_BUF jmp_buf
|
197
|
+
#define RUBY_SETJMP(env) _setjmp(env)
|
198
|
+
#define RUBY_LONGJMP(env,val) _longjmp(env,val)
|
176
199
|
#define FILE_COUNT _r
|
177
200
|
#define FILE_READPTR _p
|
178
201
|
#define HAVE__SC_CLK_TCK 1
|
@@ -182,25 +205,29 @@
|
|
182
205
|
#define HAVE_LIBPTHREAD 1
|
183
206
|
#define HAVE_NANOSLEEP 1
|
184
207
|
#define USE_ELF 1
|
185
|
-
#define
|
186
|
-
#define
|
187
|
-
#define
|
188
|
-
#define
|
189
|
-
#define
|
190
|
-
#define
|
191
|
-
#define
|
208
|
+
#define MANGLED_PATH 1
|
209
|
+
#define DLEXT_MAXLEN 4
|
210
|
+
#define DLEXT ".dll"
|
211
|
+
#define EXECUTABLE_EXTS ".exe",".com",".cmd",".bat"
|
212
|
+
#define RUBY_EXEC_PREFIX ""
|
213
|
+
#define DLN_NEEDS_ALT_SEPARATOR '\\'
|
214
|
+
#define RUBY_LIB_VERSION_STYLE 3
|
215
|
+
//RHO
|
216
|
+
#define RUBY_LIB_PREFIX "" //RUBY_EXEC_PREFIX"/lib/ruby"
|
217
|
+
//RHO
|
218
|
+
|
219
|
+
#define RUBY_SITE_LIB "E:/Data/Ruby/lib"
|
220
|
+
#define RUBY_VENDOR_LIB "F:/Data/Ruby/lib"
|
192
221
|
#define RUBY_PLATFORM "arm-symbianelf"
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
#define RUBY_LONGJMP(env,val) longjmp(env,val)
|
199
|
-
#define HAVE_SYS_FILE_H 0
|
222
|
+
|
223
|
+
//#define RUBY_JMP_BUF jmp_buf
|
224
|
+
//#define RUBY_SETJMP(env) setjmp(env)
|
225
|
+
//#define RUBY_LONGJMP(env,val) longjmp(env,val)
|
226
|
+
//#define HAVE_SYS_FILE_H 0
|
200
227
|
//#define SA_SIGINFO 0
|
201
|
-
|
202
|
-
|
203
|
-
|
228
|
+
//#define HAVE_SIGSETJMP 1
|
229
|
+
//#define HAVE__SETJMP 1
|
230
|
+
//#define HAVE__LONGJMP 1
|
204
231
|
//#define ENABLE_RUBY_VM_STAT 1
|
205
232
|
|
206
233
|
#ifdef __GCCE__
|
@@ -209,6 +236,11 @@
|
|
209
236
|
#undef FALSE
|
210
237
|
#undef TRUE
|
211
238
|
#endif //__GCCE32__
|
212
|
-
|
213
|
-
|
239
|
+
//RHO
|
240
|
+
//#define HAVE_PTHREAD_H 1
|
241
|
+
#define RUBY_EXPORT 1
|
242
|
+
#define HAVE_GETADDRINFO 1
|
243
|
+
#define HAVE_SOCKADDR_STORAGE 1
|
244
|
+
#define LOAD_RELATIVE 1
|
245
|
+
//RHO
|
214
246
|
#endif
|
@@ -9,7 +9,7 @@
|
|
9
9
|
**********************************************************************/
|
10
10
|
|
11
11
|
/*
|
12
|
-
YARV Thread
|
12
|
+
YARV Thread Design
|
13
13
|
|
14
14
|
model 1: Userlevel Thread
|
15
15
|
Same as traditional ruby thread.
|
@@ -57,7 +57,6 @@
|
|
57
57
|
#define RUBY_THREAD_PRIORITY_MIN -3
|
58
58
|
#endif
|
59
59
|
|
60
|
-
//#define THREAD_DEBUG 1
|
61
60
|
#ifndef THREAD_DEBUG
|
62
61
|
#define THREAD_DEBUG 0
|
63
62
|
#endif
|
@@ -70,7 +69,7 @@ static void sleep_wait_for_interrupt(rb_thread_t *th, double sleepsec);
|
|
70
69
|
static void sleep_forever(rb_thread_t *th, int nodeadlock);
|
71
70
|
static double timeofday(void);
|
72
71
|
struct timeval rb_time_interval(VALUE);
|
73
|
-
static int
|
72
|
+
static int rb_threadptr_dead(rb_thread_t *th);
|
74
73
|
|
75
74
|
static void rb_check_deadlock(rb_vm_t *vm);
|
76
75
|
|
@@ -102,13 +101,17 @@ static void set_unblock_function(rb_thread_t *th, rb_unblock_function_t *func, v
|
|
102
101
|
struct rb_unblock_callback *old);
|
103
102
|
static void reset_unblock_function(rb_thread_t *th, const struct rb_unblock_callback *old);
|
104
103
|
|
105
|
-
static void
|
106
|
-
|
107
|
-
|
104
|
+
static inline void blocking_region_end(rb_thread_t *th, struct rb_blocking_region_buffer *region);
|
105
|
+
|
106
|
+
#define RB_GC_SAVE_MACHINE_CONTEXT(th) \
|
107
|
+
do { \
|
108
|
+
rb_gc_save_machine_context(th); \
|
109
|
+
SET_MACHINE_STACK_END(&(th)->machine_stack_end); \
|
110
|
+
} while (0)
|
108
111
|
|
109
112
|
#define GVL_UNLOCK_BEGIN() do { \
|
110
113
|
rb_thread_t *_th_stored = GET_THREAD(); \
|
111
|
-
|
114
|
+
RB_GC_SAVE_MACHINE_CONTEXT(_th_stored); \
|
112
115
|
native_mutex_unlock(&_th_stored->vm->global_vm_lock)
|
113
116
|
|
114
117
|
#define GVL_UNLOCK_END() \
|
@@ -123,6 +126,17 @@ static void inline blocking_region_end(rb_thread_t *th, struct rb_blocking_regio
|
|
123
126
|
GVL_UNLOCK_END(); \
|
124
127
|
} while(0);
|
125
128
|
|
129
|
+
#define blocking_region_begin(th, region, func, arg) \
|
130
|
+
do { \
|
131
|
+
(region)->prev_status = (th)->status; \
|
132
|
+
set_unblock_function((th), (func), (arg), &(region)->oldubf); \
|
133
|
+
(th)->blocking_region_buffer = (region); \
|
134
|
+
(th)->status = THREAD_STOPPED; \
|
135
|
+
thread_debug("enter blocking region (%p)\n", (void *)(th)); \
|
136
|
+
RB_GC_SAVE_MACHINE_CONTEXT(th); \
|
137
|
+
native_mutex_unlock(&(th)->vm->global_vm_lock); \
|
138
|
+
} while (0)
|
139
|
+
|
126
140
|
#define BLOCKING_REGION(exec, ubf, ubfarg) do { \
|
127
141
|
rb_thread_t *__th = GET_THREAD(); \
|
128
142
|
struct rb_blocking_region_buffer __region; \
|
@@ -148,16 +162,32 @@ void rb_thread_debug(const char *fmt, ...);
|
|
148
162
|
# if THREAD_DEBUG < 0
|
149
163
|
static int rb_thread_debug_enabled;
|
150
164
|
|
165
|
+
/*
|
166
|
+
* call-seq:
|
167
|
+
* Thread.DEBUG -> num
|
168
|
+
*
|
169
|
+
* Returns the thread debug level. Available only if compiled with
|
170
|
+
* THREAD_DEBUG=-1.
|
171
|
+
*/
|
172
|
+
|
151
173
|
static VALUE
|
152
174
|
rb_thread_s_debug(void)
|
153
175
|
{
|
154
176
|
return INT2NUM(rb_thread_debug_enabled);
|
155
177
|
}
|
156
178
|
|
179
|
+
/*
|
180
|
+
* call-seq:
|
181
|
+
* Thread.DEBUG = num
|
182
|
+
*
|
183
|
+
* Sets the thread debug level. Available only if compiled with
|
184
|
+
* THREAD_DEBUG=-1.
|
185
|
+
*/
|
186
|
+
|
157
187
|
static VALUE
|
158
188
|
rb_thread_s_debug_set(VALUE self, VALUE val)
|
159
189
|
{
|
160
|
-
rb_thread_debug_enabled = RTEST(val);
|
190
|
+
rb_thread_debug_enabled = RTEST(val) ? NUM2INT(val) : 0;
|
161
191
|
return val;
|
162
192
|
}
|
163
193
|
# else
|
@@ -233,6 +263,17 @@ rb_thread_debug(
|
|
233
263
|
}
|
234
264
|
#endif
|
235
265
|
|
266
|
+
void
|
267
|
+
rb_thread_lock_unlock(rb_thread_lock_t *lock)
|
268
|
+
{
|
269
|
+
native_mutex_unlock(lock);
|
270
|
+
}
|
271
|
+
|
272
|
+
void
|
273
|
+
rb_thread_lock_destroy(rb_thread_lock_t *lock)
|
274
|
+
{
|
275
|
+
native_mutex_destroy(lock);
|
276
|
+
}
|
236
277
|
|
237
278
|
static void
|
238
279
|
set_unblock_function(rb_thread_t *th, rb_unblock_function_t *func, void *arg,
|
@@ -261,8 +302,8 @@ reset_unblock_function(rb_thread_t *th, const struct rb_unblock_callback *old)
|
|
261
302
|
native_mutex_unlock(&th->interrupt_lock);
|
262
303
|
}
|
263
304
|
|
264
|
-
|
265
|
-
|
305
|
+
void
|
306
|
+
rb_threadptr_interrupt(rb_thread_t *th)
|
266
307
|
{
|
267
308
|
native_mutex_lock(&th->interrupt_lock);
|
268
309
|
RUBY_VM_SET_INTERRUPT(th);
|
@@ -285,7 +326,7 @@ terminate_i(st_data_t key, st_data_t val, rb_thread_t *main_thread)
|
|
285
326
|
|
286
327
|
if (th != main_thread) {
|
287
328
|
thread_debug("terminate_i: %p\n", (void *)th);
|
288
|
-
|
329
|
+
rb_threadptr_interrupt(th);
|
289
330
|
th->thrown_errinfo = eTerminateSignal;
|
290
331
|
th->status = THREAD_TO_KILL;
|
291
332
|
}
|
@@ -305,12 +346,14 @@ typedef struct rb_mutex_struct
|
|
305
346
|
} mutex_t;
|
306
347
|
|
307
348
|
static void rb_mutex_unlock_all(mutex_t *mutex, rb_thread_t *th);
|
349
|
+
static void rb_mutex_abandon_all(mutex_t *mutexes);
|
308
350
|
|
309
351
|
void
|
310
352
|
rb_thread_terminate_all(void)
|
311
353
|
{
|
312
354
|
rb_thread_t *th = GET_THREAD(); /* main thread */
|
313
355
|
rb_vm_t *vm = th->vm;
|
356
|
+
|
314
357
|
if (vm->main_thread != th) {
|
315
358
|
rb_bug("rb_thread_terminate_all: called by child thread (%p, %p)",
|
316
359
|
(void *)vm->main_thread, (void *)th);
|
@@ -323,12 +366,12 @@ rb_thread_terminate_all(void)
|
|
323
366
|
|
324
367
|
thread_debug("rb_thread_terminate_all (main thread: %p)\n", (void *)th);
|
325
368
|
st_foreach(vm->living_threads, terminate_i, (st_data_t)th);
|
326
|
-
|
369
|
+
//RHO
|
327
370
|
#if USE_NATIVE_THREAD_PRIORITY
|
328
371
|
th->priority -= 2;
|
329
372
|
native_thread_apply_priority(th);
|
330
373
|
#endif
|
331
|
-
|
374
|
+
//RHO
|
332
375
|
while (!rb_thread_alone()) {
|
333
376
|
PUSH_TAG();
|
334
377
|
if (EXEC_TAG() == 0) {
|
@@ -342,6 +385,15 @@ rb_thread_terminate_all(void)
|
|
342
385
|
rb_thread_stop_timer_thread();
|
343
386
|
}
|
344
387
|
|
388
|
+
static void
|
389
|
+
thread_unlock_all_locking_mutexes(rb_thread_t *th)
|
390
|
+
{
|
391
|
+
if (th->keeping_mutexes) {
|
392
|
+
rb_mutex_unlock_all(th->keeping_mutexes, th);
|
393
|
+
th->keeping_mutexes = NULL;
|
394
|
+
}
|
395
|
+
}
|
396
|
+
|
345
397
|
static void
|
346
398
|
thread_cleanup_func_before_exec(void *th_ptr)
|
347
399
|
{
|
@@ -354,21 +406,26 @@ thread_cleanup_func_before_exec(void *th_ptr)
|
|
354
406
|
}
|
355
407
|
|
356
408
|
static void
|
357
|
-
thread_cleanup_func(void *th_ptr)
|
409
|
+
thread_cleanup_func(void *th_ptr, int atfork)
|
358
410
|
{
|
359
411
|
rb_thread_t *th = th_ptr;
|
360
412
|
|
361
|
-
|
362
|
-
if (th->keeping_mutexes) {
|
363
|
-
rb_mutex_unlock_all(th->keeping_mutexes, th);
|
364
|
-
th->keeping_mutexes = NULL;
|
365
|
-
}
|
413
|
+
th->locking_mutex = Qfalse;
|
366
414
|
thread_cleanup_func_before_exec(th_ptr);
|
415
|
+
|
416
|
+
/*
|
417
|
+
* Unfortunately, we can't release native threading resource at fork
|
418
|
+
* because libc may have unstable locking state therefore touching
|
419
|
+
* a threading resource may cause a deadlock.
|
420
|
+
*/
|
421
|
+
if (atfork)
|
422
|
+
return;
|
423
|
+
|
367
424
|
native_thread_destroy(th);
|
368
425
|
}
|
369
426
|
|
370
427
|
extern void ruby_error_print(void);
|
371
|
-
static VALUE
|
428
|
+
static VALUE rb_threadptr_raise(rb_thread_t *, int, VALUE *);
|
372
429
|
void rb_thread_recycle_stack_release(VALUE *);
|
373
430
|
|
374
431
|
void
|
@@ -386,6 +443,11 @@ thread_start_func_2(rb_thread_t *th, VALUE *stack_start, VALUE *register_stack_s
|
|
386
443
|
rb_thread_t *join_th;
|
387
444
|
rb_thread_t *main_th;
|
388
445
|
VALUE errinfo = Qnil;
|
446
|
+
# ifdef USE_SIGALTSTACK
|
447
|
+
void rb_register_sigaltstack(rb_thread_t *th);
|
448
|
+
|
449
|
+
rb_register_sigaltstack(th);
|
450
|
+
# endif
|
389
451
|
|
390
452
|
ruby_thread_set_native(th);
|
391
453
|
|
@@ -403,16 +465,16 @@ thread_start_func_2(rb_thread_t *th, VALUE *stack_start, VALUE *register_stack_s
|
|
403
465
|
TH_PUSH_TAG(th);
|
404
466
|
if ((state = EXEC_TAG()) == 0) {
|
405
467
|
SAVE_ROOT_JMPBUF(th, {
|
406
|
-
if (th->
|
468
|
+
if (!th->first_func) {
|
407
469
|
GetProcPtr(th->first_proc, proc);
|
408
470
|
th->errinfo = Qnil;
|
409
471
|
th->local_lfp = proc->block.lfp;
|
410
472
|
th->local_svar = Qnil;
|
411
473
|
th->value = rb_vm_invoke_proc(th, proc, proc->block.self,
|
412
|
-
RARRAY_LEN(args), RARRAY_PTR(args), 0);
|
474
|
+
(int)RARRAY_LEN(args), RARRAY_PTR(args), 0);
|
413
475
|
}
|
414
476
|
else {
|
415
|
-
th->value = (*th->first_func)((void *)
|
477
|
+
th->value = (*th->first_func)((void *)args);
|
416
478
|
}
|
417
479
|
});
|
418
480
|
}
|
@@ -447,7 +509,7 @@ thread_start_func_2(rb_thread_t *th, VALUE *stack_start, VALUE *register_stack_s
|
|
447
509
|
if (th != main_th) {
|
448
510
|
if (TYPE(errinfo) == T_OBJECT) {
|
449
511
|
/* treat with normal error object */
|
450
|
-
|
512
|
+
rb_threadptr_raise(main_th, 1, &errinfo);
|
451
513
|
}
|
452
514
|
}
|
453
515
|
TH_POP_TAG();
|
@@ -463,11 +525,11 @@ thread_start_func_2(rb_thread_t *th, VALUE *stack_start, VALUE *register_stack_s
|
|
463
525
|
st_delete_wrap(th->vm->living_threads, th->self);
|
464
526
|
}
|
465
527
|
|
466
|
-
/* wake up
|
528
|
+
/* wake up joining threads */
|
467
529
|
join_th = th->join_list_head;
|
468
530
|
while (join_th) {
|
469
531
|
if (join_th == main_th) errinfo = Qnil;
|
470
|
-
|
532
|
+
rb_threadptr_interrupt(join_th);
|
471
533
|
switch (join_th->status) {
|
472
534
|
case THREAD_STOPPED: case THREAD_STOPPED_FOREVER:
|
473
535
|
join_th->status = THREAD_RUNNABLE;
|
@@ -476,17 +538,21 @@ thread_start_func_2(rb_thread_t *th, VALUE *stack_start, VALUE *register_stack_s
|
|
476
538
|
join_th = join_th->join_list_next;
|
477
539
|
}
|
478
540
|
|
541
|
+
thread_unlock_all_locking_mutexes(th);
|
542
|
+
if (th != main_th) rb_check_deadlock(th->vm);
|
543
|
+
|
479
544
|
if (!th->root_fiber) {
|
480
545
|
rb_thread_recycle_stack_release(th->stack);
|
481
546
|
th->stack = 0;
|
482
547
|
}
|
483
548
|
}
|
484
|
-
thread_cleanup_func(th);
|
485
|
-
if (th != main_th) rb_check_deadlock(th->vm);
|
486
549
|
if (th->vm->main_thread == th) {
|
487
550
|
ruby_cleanup(state);
|
488
551
|
}
|
489
|
-
|
552
|
+
else {
|
553
|
+
thread_cleanup_func(th, FALSE);
|
554
|
+
native_mutex_unlock(&th->vm->global_vm_lock);
|
555
|
+
}
|
490
556
|
|
491
557
|
return 0;
|
492
558
|
}
|
@@ -495,6 +561,7 @@ static VALUE
|
|
495
561
|
thread_create_core(VALUE thval, VALUE args, VALUE (*fn)(ANYARGS))
|
496
562
|
{
|
497
563
|
rb_thread_t *th;
|
564
|
+
int err;
|
498
565
|
|
499
566
|
if (OBJ_FROZEN(GET_THREAD()->thgroup)) {
|
500
567
|
rb_raise(rb_eThreadError,
|
@@ -511,12 +578,21 @@ thread_create_core(VALUE thval, VALUE args, VALUE (*fn)(ANYARGS))
|
|
511
578
|
th->thgroup = GET_THREAD()->thgroup;
|
512
579
|
|
513
580
|
native_mutex_initialize(&th->interrupt_lock);
|
581
|
+
if (GET_VM()->event_hooks != NULL)
|
582
|
+
th->event_flags |= RUBY_EVENT_VM;
|
583
|
+
|
514
584
|
/* kick thread */
|
515
585
|
st_insert(th->vm->living_threads, thval, (st_data_t) th->thread_id);
|
516
|
-
native_thread_create(th);
|
586
|
+
err = native_thread_create(th);
|
587
|
+
if (err) {
|
588
|
+
st_delete_wrap(th->vm->living_threads, th->self);
|
589
|
+
th->status = THREAD_KILLED;
|
590
|
+
rb_raise(rb_eThreadError, "can't create Thread (%d)", err);
|
591
|
+
}
|
517
592
|
return thval;
|
518
593
|
}
|
519
594
|
|
595
|
+
/* :nodoc: */
|
520
596
|
static VALUE
|
521
597
|
thread_s_new(int argc, VALUE *argv, VALUE klass)
|
522
598
|
{
|
@@ -533,8 +609,8 @@ thread_s_new(int argc, VALUE *argv, VALUE klass)
|
|
533
609
|
|
534
610
|
/*
|
535
611
|
* call-seq:
|
536
|
-
* Thread.start([args]*) {|args| block }
|
537
|
-
* Thread.fork([args]*) {|args| block }
|
612
|
+
* Thread.start([args]*) {|args| block } -> thread
|
613
|
+
* Thread.fork([args]*) {|args| block } -> thread
|
538
614
|
*
|
539
615
|
* Basically the same as <code>Thread::new</code>. However, if class
|
540
616
|
* <code>Thread</code> is subclassed, then calling <code>start</code> in that
|
@@ -547,6 +623,7 @@ thread_start(VALUE klass, VALUE args)
|
|
547
623
|
return thread_create_core(rb_thread_alloc(klass), args, 0);
|
548
624
|
}
|
549
625
|
|
626
|
+
/* :nodoc: */
|
550
627
|
static VALUE
|
551
628
|
thread_initialize(VALUE thread, VALUE args)
|
552
629
|
{
|
@@ -681,8 +758,8 @@ thread_join(rb_thread_t *target_th, double delay)
|
|
681
758
|
|
682
759
|
/*
|
683
760
|
* call-seq:
|
684
|
-
* thr.join
|
685
|
-
* thr.join(limit)
|
761
|
+
* thr.join -> thr
|
762
|
+
* thr.join(limit) -> thr
|
686
763
|
*
|
687
764
|
* The calling thread will suspend execution and run <i>thr</i>. Does not
|
688
765
|
* return until <i>thr</i> exits or until <i>limit</i> seconds have passed. If
|
@@ -738,7 +815,7 @@ thread_join_m(int argc, VALUE *argv, VALUE self)
|
|
738
815
|
|
739
816
|
/*
|
740
817
|
* call-seq:
|
741
|
-
* thr.value
|
818
|
+
* thr.value -> obj
|
742
819
|
*
|
743
820
|
* Waits for <i>thr</i> to complete (via <code>Thread#join</code>) and returns
|
744
821
|
* its value.
|
@@ -768,7 +845,7 @@ double2timeval(double d)
|
|
768
845
|
time.tv_sec = (int)d;
|
769
846
|
time.tv_usec = (int)((d - (int)d) * 1e6);
|
770
847
|
if (time.tv_usec < 0) {
|
771
|
-
time.tv_usec += (
|
848
|
+
time.tv_usec += (int)1e6;
|
772
849
|
time.tv_sec -= 1;
|
773
850
|
}
|
774
851
|
return time;
|
@@ -843,14 +920,14 @@ sleep_timeval(rb_thread_t *th, struct timeval tv)
|
|
843
920
|
}
|
844
921
|
|
845
922
|
void
|
846
|
-
rb_thread_sleep_forever()
|
923
|
+
rb_thread_sleep_forever(void)
|
847
924
|
{
|
848
925
|
thread_debug("rb_thread_sleep_forever\n");
|
849
926
|
sleep_forever(GET_THREAD(), 0);
|
850
927
|
}
|
851
928
|
|
852
929
|
static void
|
853
|
-
rb_thread_sleep_deadly()
|
930
|
+
rb_thread_sleep_deadly(void)
|
854
931
|
{
|
855
932
|
thread_debug("rb_thread_sleep_deadly\n");
|
856
933
|
sleep_forever(GET_THREAD(), 1);
|
@@ -945,16 +1022,18 @@ rb_thread_sleep(int sec)
|
|
945
1022
|
rb_thread_wait_for(rb_time_timeval(INT2FIX(sec)));
|
946
1023
|
}
|
947
1024
|
|
948
|
-
void
|
949
|
-
|
1025
|
+
static void rb_threadptr_execute_interrupts_rec(rb_thread_t *, int);
|
1026
|
+
|
1027
|
+
static void
|
1028
|
+
rb_thread_schedule_rec(int sched_depth)
|
950
1029
|
{
|
951
|
-
|
1030
|
+
thread_debug("rb_thread_schedule\n");
|
952
1031
|
if (!rb_thread_alone()) {
|
953
1032
|
rb_thread_t *th = GET_THREAD();
|
954
1033
|
|
955
|
-
|
1034
|
+
thread_debug("rb_thread_schedule/switch start\n");
|
956
1035
|
|
957
|
-
|
1036
|
+
RB_GC_SAVE_MACHINE_CONTEXT(th);
|
958
1037
|
native_mutex_unlock(&th->vm->global_vm_lock);
|
959
1038
|
{
|
960
1039
|
native_thread_yield();
|
@@ -962,32 +1041,28 @@ rb_thread_schedule(void)
|
|
962
1041
|
native_mutex_lock(&th->vm->global_vm_lock);
|
963
1042
|
|
964
1043
|
rb_thread_set_current(th);
|
965
|
-
|
1044
|
+
thread_debug("rb_thread_schedule/switch done\n");
|
966
1045
|
|
967
|
-
|
1046
|
+
if (!sched_depth && UNLIKELY(GET_THREAD()->interrupt_flag)) {
|
1047
|
+
rb_threadptr_execute_interrupts_rec(GET_THREAD(), sched_depth+1);
|
1048
|
+
}
|
968
1049
|
}
|
969
1050
|
}
|
970
1051
|
|
971
|
-
|
972
|
-
|
973
|
-
blocking_region_begin(rb_thread_t *th, struct rb_blocking_region_buffer *region,
|
974
|
-
rb_unblock_function_t *func, void *arg)
|
1052
|
+
void
|
1053
|
+
rb_thread_schedule(void)
|
975
1054
|
{
|
976
|
-
|
977
|
-
th->blocking_region_buffer = region;
|
978
|
-
set_unblock_function(th, func, arg, ®ion->oldubf);
|
979
|
-
th->status = THREAD_STOPPED;
|
980
|
-
// thread_debug("enter blocking region (%p)\n", (void *)th);
|
981
|
-
rb_gc_save_machine_context(th);
|
982
|
-
native_mutex_unlock(&th->vm->global_vm_lock);
|
1055
|
+
rb_thread_schedule_rec(0);
|
983
1056
|
}
|
984
1057
|
|
1058
|
+
/* blocking region */
|
1059
|
+
|
985
1060
|
static inline void
|
986
1061
|
blocking_region_end(rb_thread_t *th, struct rb_blocking_region_buffer *region)
|
987
1062
|
{
|
988
1063
|
native_mutex_lock(&th->vm->global_vm_lock);
|
989
1064
|
rb_thread_set_current(th);
|
990
|
-
|
1065
|
+
thread_debug("leave blocking region (%p)\n", (void *)th);
|
991
1066
|
remove_signal_thread_list(th);
|
992
1067
|
th->blocking_region_buffer = 0;
|
993
1068
|
reset_unblock_function(th, ®ion->oldubf);
|
@@ -1008,10 +1083,12 @@ rb_thread_blocking_region_begin(void)
|
|
1008
1083
|
void
|
1009
1084
|
rb_thread_blocking_region_end(struct rb_blocking_region_buffer *region)
|
1010
1085
|
{
|
1086
|
+
int saved_errno = errno;
|
1011
1087
|
rb_thread_t *th = GET_THREAD();
|
1012
1088
|
blocking_region_end(th, region);
|
1013
1089
|
xfree(region);
|
1014
1090
|
RUBY_VM_CHECK_INTS();
|
1091
|
+
errno = saved_errno;
|
1015
1092
|
}
|
1016
1093
|
|
1017
1094
|
/*
|
@@ -1021,10 +1098,10 @@ rb_thread_blocking_region_end(struct rb_blocking_region_buffer *region)
|
|
1021
1098
|
* (1) release GVL.
|
1022
1099
|
* Other Ruby threads may run in parallel.
|
1023
1100
|
* (2) call func with data1.
|
1024
|
-
* (3)
|
1101
|
+
* (3) acquire GVL.
|
1025
1102
|
* Other Ruby threads can not run in parallel any more.
|
1026
1103
|
*
|
1027
|
-
* If another thread interrupts this thread (Thread#kill, signal
|
1104
|
+
* If another thread interrupts this thread (Thread#kill, signal delivery,
|
1028
1105
|
* VM-shutdown request, and so on), `ubf()' is called (`ubf()' means
|
1029
1106
|
* "un-blocking function"). `ubf()' should interrupt `func()' execution.
|
1030
1107
|
*
|
@@ -1035,9 +1112,10 @@ rb_thread_blocking_region_end(struct rb_blocking_region_buffer *region)
|
|
1035
1112
|
* * RUBY_UBF_IO: ubf for IO operation
|
1036
1113
|
* * RUBY_UBF_PROCESS: ubf for process operation
|
1037
1114
|
*
|
1038
|
-
* NOTE: You can not execute most of Ruby C API and touch Ruby
|
1039
|
-
* in `func()' and `ubf()'
|
1040
|
-
*
|
1115
|
+
* NOTE: You can not execute most of Ruby C API and touch Ruby
|
1116
|
+
* objects in `func()' and `ubf()', including raising an
|
1117
|
+
* exception, because current thread doesn't acquire GVL
|
1118
|
+
* (cause synchronization problem). If you need to do it,
|
1041
1119
|
* read source code of C APIs and confirm by yourself.
|
1042
1120
|
*
|
1043
1121
|
* NOTE: In short, this API is difficult to use safely. I recommend you
|
@@ -1056,6 +1134,7 @@ rb_thread_blocking_region(
|
|
1056
1134
|
{
|
1057
1135
|
VALUE val;
|
1058
1136
|
rb_thread_t *th = GET_THREAD();
|
1137
|
+
int saved_errno = 0;
|
1059
1138
|
|
1060
1139
|
if (ubf == RUBY_UBF_IO || ubf == RUBY_UBF_PROCESS) {
|
1061
1140
|
ubf = ubf_select;
|
@@ -1064,7 +1143,9 @@ rb_thread_blocking_region(
|
|
1064
1143
|
|
1065
1144
|
BLOCKING_REGION({
|
1066
1145
|
val = func(data1);
|
1146
|
+
saved_errno = errno;
|
1067
1147
|
}, ubf, data2);
|
1148
|
+
errno = saved_errno;
|
1068
1149
|
|
1069
1150
|
return val;
|
1070
1151
|
}
|
@@ -1139,7 +1220,7 @@ rb_thread_call_with_gvl(void *(*func)(void *), void *data1)
|
|
1139
1220
|
blocking_region_end(th, brb);
|
1140
1221
|
/* enter to Ruby world: You can access Ruby values, methods and so on. */
|
1141
1222
|
r = (*func)(data1);
|
1142
|
-
/*
|
1223
|
+
/* leave from Ruby world: You can not access Ruby values, etc. */
|
1143
1224
|
blocking_region_begin(th, brb, prev_unblock.func, prev_unblock.arg);
|
1144
1225
|
return r;
|
1145
1226
|
}
|
@@ -1168,7 +1249,7 @@ ruby_thread_has_gvl_p(void)
|
|
1168
1249
|
|
1169
1250
|
/*
|
1170
1251
|
* call-seq:
|
1171
|
-
* Thread.pass
|
1252
|
+
* Thread.pass -> nil
|
1172
1253
|
*
|
1173
1254
|
* Invokes the thread scheduler to pass execution to another thread.
|
1174
1255
|
*
|
@@ -1197,8 +1278,8 @@ thread_s_pass(VALUE klass)
|
|
1197
1278
|
*
|
1198
1279
|
*/
|
1199
1280
|
|
1200
|
-
void
|
1201
|
-
|
1281
|
+
static void
|
1282
|
+
rb_threadptr_execute_interrupts_rec(rb_thread_t *th, int sched_depth)
|
1202
1283
|
{
|
1203
1284
|
if (GET_VM()->main_thread == th) {
|
1204
1285
|
while (rb_signal_buff_size() && !th->exec_signal) native_thread_yield();
|
@@ -1241,7 +1322,8 @@ rb_thread_execute_interrupts(rb_thread_t *th)
|
|
1241
1322
|
rb_gc_finalize_deferred();
|
1242
1323
|
}
|
1243
1324
|
|
1244
|
-
if (timer_interrupt) {
|
1325
|
+
if (!sched_depth && timer_interrupt) {
|
1326
|
+
sched_depth++;
|
1245
1327
|
EXEC_EVENT_HOOK(th, RUBY_EVENT_SWITCH, th->cfp->self, 0, 0);
|
1246
1328
|
|
1247
1329
|
if (th->slice > 0) {
|
@@ -1249,7 +1331,7 @@ rb_thread_execute_interrupts(rb_thread_t *th)
|
|
1249
1331
|
}
|
1250
1332
|
else {
|
1251
1333
|
reschedule:
|
1252
|
-
|
1334
|
+
rb_thread_schedule_rec(sched_depth+1);
|
1253
1335
|
if (th->slice < 0) {
|
1254
1336
|
th->slice++;
|
1255
1337
|
goto reschedule;
|
@@ -1262,6 +1344,11 @@ rb_thread_execute_interrupts(rb_thread_t *th)
|
|
1262
1344
|
}
|
1263
1345
|
}
|
1264
1346
|
|
1347
|
+
void
|
1348
|
+
rb_threadptr_execute_interrupts(rb_thread_t *th)
|
1349
|
+
{
|
1350
|
+
rb_threadptr_execute_interrupts_rec(th, 0);
|
1351
|
+
}
|
1265
1352
|
|
1266
1353
|
void
|
1267
1354
|
rb_gc_mark_threads(void)
|
@@ -1272,18 +1359,18 @@ rb_gc_mark_threads(void)
|
|
1272
1359
|
/*****************************************************/
|
1273
1360
|
|
1274
1361
|
static void
|
1275
|
-
|
1362
|
+
rb_threadptr_ready(rb_thread_t *th)
|
1276
1363
|
{
|
1277
|
-
|
1364
|
+
rb_threadptr_interrupt(th);
|
1278
1365
|
}
|
1279
1366
|
|
1280
1367
|
static VALUE
|
1281
|
-
|
1368
|
+
rb_threadptr_raise(rb_thread_t *th, int argc, VALUE *argv)
|
1282
1369
|
{
|
1283
1370
|
VALUE exc;
|
1284
1371
|
|
1285
1372
|
again:
|
1286
|
-
if (
|
1373
|
+
if (rb_threadptr_dead(th)) {
|
1287
1374
|
return Qnil;
|
1288
1375
|
}
|
1289
1376
|
|
@@ -1294,42 +1381,49 @@ rb_thread_raise(int argc, VALUE *argv, rb_thread_t *th)
|
|
1294
1381
|
|
1295
1382
|
exc = rb_make_exception(argc, argv);
|
1296
1383
|
th->thrown_errinfo = exc;
|
1297
|
-
|
1384
|
+
rb_threadptr_ready(th);
|
1298
1385
|
return Qnil;
|
1299
1386
|
}
|
1300
1387
|
|
1301
1388
|
void
|
1302
|
-
|
1389
|
+
rb_threadptr_signal_raise(rb_thread_t *th, int sig)
|
1303
1390
|
{
|
1304
1391
|
VALUE argv[2];
|
1305
|
-
rb_thread_t *th = thptr;
|
1306
1392
|
|
1307
1393
|
argv[0] = rb_eSignal;
|
1308
1394
|
argv[1] = INT2FIX(sig);
|
1309
|
-
|
1395
|
+
rb_threadptr_raise(th->vm->main_thread, 2, argv);
|
1310
1396
|
}
|
1311
1397
|
|
1312
1398
|
void
|
1313
|
-
|
1399
|
+
rb_threadptr_signal_exit(rb_thread_t *th)
|
1314
1400
|
{
|
1315
1401
|
VALUE argv[2];
|
1316
|
-
rb_thread_t *th = thptr;
|
1317
1402
|
|
1318
1403
|
argv[0] = rb_eSystemExit;
|
1319
1404
|
argv[1] = rb_str_new2("exit");
|
1320
|
-
|
1405
|
+
rb_threadptr_raise(th->vm->main_thread, 2, argv);
|
1321
1406
|
}
|
1322
1407
|
|
1408
|
+
#if defined(POSIX_SIGNAL) && defined(SIGSEGV) && defined(HAVE_SIGALTSTACK)
|
1409
|
+
#define USE_SIGALTSTACK
|
1410
|
+
#endif
|
1411
|
+
|
1323
1412
|
void
|
1324
1413
|
ruby_thread_stack_overflow(rb_thread_t *th)
|
1325
1414
|
{
|
1326
|
-
th->errinfo = sysstack_error;
|
1327
1415
|
th->raised_flag = 0;
|
1416
|
+
#ifdef USE_SIGALTSTACK
|
1417
|
+
th->raised_flag = 0;
|
1418
|
+
rb_exc_raise(sysstack_error);
|
1419
|
+
#else
|
1420
|
+
th->errinfo = sysstack_error;
|
1328
1421
|
TH_JUMP_TAG(th, TAG_RAISE);
|
1422
|
+
#endif
|
1329
1423
|
}
|
1330
1424
|
|
1331
1425
|
int
|
1332
|
-
|
1426
|
+
rb_threadptr_set_raised(rb_thread_t *th)
|
1333
1427
|
{
|
1334
1428
|
if (th->raised_flag & RAISED_EXCEPTION) {
|
1335
1429
|
return 1;
|
@@ -1339,7 +1433,7 @@ rb_thread_set_raised(rb_thread_t *th)
|
|
1339
1433
|
}
|
1340
1434
|
|
1341
1435
|
int
|
1342
|
-
|
1436
|
+
rb_threadptr_reset_raised(rb_thread_t *th)
|
1343
1437
|
{
|
1344
1438
|
if (!(th->raised_flag & RAISED_EXCEPTION)) {
|
1345
1439
|
return 0;
|
@@ -1356,7 +1450,9 @@ rb_thread_fd_close(int fd)
|
|
1356
1450
|
|
1357
1451
|
/*
|
1358
1452
|
* call-seq:
|
1359
|
-
* thr.raise
|
1453
|
+
* thr.raise
|
1454
|
+
* thr.raise(string)
|
1455
|
+
* thr.raise(exception [, string [, array]])
|
1360
1456
|
*
|
1361
1457
|
* Raises an exception (see <code>Kernel::raise</code>) from <i>thr</i>. The
|
1362
1458
|
* caller does not have to be <i>thr</i>.
|
@@ -1378,16 +1474,16 @@ thread_raise_m(int argc, VALUE *argv, VALUE self)
|
|
1378
1474
|
{
|
1379
1475
|
rb_thread_t *th;
|
1380
1476
|
GetThreadPtr(self, th);
|
1381
|
-
|
1477
|
+
rb_threadptr_raise(th, argc, argv);
|
1382
1478
|
return Qnil;
|
1383
1479
|
}
|
1384
1480
|
|
1385
1481
|
|
1386
1482
|
/*
|
1387
1483
|
* call-seq:
|
1388
|
-
* thr.exit
|
1389
|
-
* thr.kill
|
1390
|
-
* thr.terminate
|
1484
|
+
* thr.exit -> thr or nil
|
1485
|
+
* thr.kill -> thr or nil
|
1486
|
+
* thr.terminate -> thr or nil
|
1391
1487
|
*
|
1392
1488
|
* Terminates <i>thr</i> and schedules another thread to be run. If this thread
|
1393
1489
|
* is already marked to be killed, <code>exit</code> returns the
|
@@ -1414,7 +1510,7 @@ rb_thread_kill(VALUE thread)
|
|
1414
1510
|
|
1415
1511
|
thread_debug("rb_thread_kill: %p (%p)\n", (void *)th, (void *)th->thread_id);
|
1416
1512
|
|
1417
|
-
|
1513
|
+
rb_threadptr_interrupt(th);
|
1418
1514
|
th->thrown_errinfo = eKillSignal;
|
1419
1515
|
th->status = THREAD_TO_KILL;
|
1420
1516
|
|
@@ -1424,7 +1520,7 @@ rb_thread_kill(VALUE thread)
|
|
1424
1520
|
|
1425
1521
|
/*
|
1426
1522
|
* call-seq:
|
1427
|
-
* Thread.kill(thread)
|
1523
|
+
* Thread.kill(thread) -> thread
|
1428
1524
|
*
|
1429
1525
|
* Causes the given <em>thread</em> to exit (see <code>Thread::exit</code>).
|
1430
1526
|
*
|
@@ -1439,13 +1535,18 @@ rb_thread_kill(VALUE thread)
|
|
1439
1535
|
static VALUE
|
1440
1536
|
rb_thread_s_kill(VALUE obj, VALUE th)
|
1441
1537
|
{
|
1538
|
+
if (CLASS_OF(th) != rb_cThread) {
|
1539
|
+
rb_raise(rb_eTypeError,
|
1540
|
+
"wrong argument type %s (expected Thread)",
|
1541
|
+
rb_obj_classname(th));
|
1542
|
+
}
|
1442
1543
|
return rb_thread_kill(th);
|
1443
1544
|
}
|
1444
1545
|
|
1445
1546
|
|
1446
1547
|
/*
|
1447
1548
|
* call-seq:
|
1448
|
-
* Thread.exit
|
1549
|
+
* Thread.exit -> thread
|
1449
1550
|
*
|
1450
1551
|
* Terminates the currently running thread and schedules another thread to be
|
1451
1552
|
* run. If this thread is already marked to be killed, <code>exit</code>
|
@@ -1462,7 +1563,7 @@ rb_thread_exit(void)
|
|
1462
1563
|
|
1463
1564
|
/*
|
1464
1565
|
* call-seq:
|
1465
|
-
* thr.wakeup
|
1566
|
+
* thr.wakeup -> thr
|
1466
1567
|
*
|
1467
1568
|
* Marks <i>thr</i> as eligible for scheduling (it may still remain blocked on
|
1468
1569
|
* I/O, however). Does not invoke the scheduler (see <code>Thread#run</code>).
|
@@ -1484,7 +1585,7 @@ rb_thread_wakeup(VALUE thread)
|
|
1484
1585
|
if (th->status == THREAD_KILLED) {
|
1485
1586
|
rb_raise(rb_eThreadError, "killed thread");
|
1486
1587
|
}
|
1487
|
-
|
1588
|
+
rb_threadptr_ready(th);
|
1488
1589
|
if (th->status != THREAD_TO_KILL) {
|
1489
1590
|
th->status = THREAD_RUNNABLE;
|
1490
1591
|
}
|
@@ -1494,7 +1595,7 @@ rb_thread_wakeup(VALUE thread)
|
|
1494
1595
|
|
1495
1596
|
/*
|
1496
1597
|
* call-seq:
|
1497
|
-
* thr.run
|
1598
|
+
* thr.run -> thr
|
1498
1599
|
*
|
1499
1600
|
* Wakes up <i>thr</i>, making it eligible for scheduling.
|
1500
1601
|
*
|
@@ -1522,7 +1623,7 @@ rb_thread_run(VALUE thread)
|
|
1522
1623
|
|
1523
1624
|
/*
|
1524
1625
|
* call-seq:
|
1525
|
-
* Thread.stop
|
1626
|
+
* Thread.stop -> nil
|
1526
1627
|
*
|
1527
1628
|
* Stops execution of the current thread, putting it into a ``sleep'' state,
|
1528
1629
|
* and schedules execution of another thread.
|
@@ -1572,7 +1673,7 @@ thread_list_i(st_data_t key, st_data_t val, void *data)
|
|
1572
1673
|
|
1573
1674
|
/*
|
1574
1675
|
* call-seq:
|
1575
|
-
* Thread.list
|
1676
|
+
* Thread.list -> array
|
1576
1677
|
*
|
1577
1678
|
* Returns an array of <code>Thread</code> objects for all threads that are
|
1578
1679
|
* either runnable or stopped.
|
@@ -1606,7 +1707,7 @@ rb_thread_current(void)
|
|
1606
1707
|
|
1607
1708
|
/*
|
1608
1709
|
* call-seq:
|
1609
|
-
* Thread.current
|
1710
|
+
* Thread.current -> thread
|
1610
1711
|
*
|
1611
1712
|
* Returns the currently executing thread.
|
1612
1713
|
*
|
@@ -1625,6 +1726,13 @@ rb_thread_main(void)
|
|
1625
1726
|
return GET_THREAD()->vm->main_thread->self;
|
1626
1727
|
}
|
1627
1728
|
|
1729
|
+
/*
|
1730
|
+
* call-seq:
|
1731
|
+
* Thread.main -> thread
|
1732
|
+
*
|
1733
|
+
* Returns the main thread.
|
1734
|
+
*/
|
1735
|
+
|
1628
1736
|
static VALUE
|
1629
1737
|
rb_thread_s_main(VALUE klass)
|
1630
1738
|
{
|
@@ -1634,7 +1742,7 @@ rb_thread_s_main(VALUE klass)
|
|
1634
1742
|
|
1635
1743
|
/*
|
1636
1744
|
* call-seq:
|
1637
|
-
* Thread.abort_on_exception
|
1745
|
+
* Thread.abort_on_exception -> true or false
|
1638
1746
|
*
|
1639
1747
|
* Returns the status of the global ``abort on exception'' condition. The
|
1640
1748
|
* default is <code>false</code>. When set to <code>true</code>, or if the
|
@@ -1653,7 +1761,7 @@ rb_thread_s_abort_exc(void)
|
|
1653
1761
|
|
1654
1762
|
/*
|
1655
1763
|
* call-seq:
|
1656
|
-
* Thread.abort_on_exception= boolean
|
1764
|
+
* Thread.abort_on_exception= boolean -> true or false
|
1657
1765
|
*
|
1658
1766
|
* When set to <code>true</code>, all threads will abort if an exception is
|
1659
1767
|
* raised. Returns the new state.
|
@@ -1686,7 +1794,7 @@ rb_thread_s_abort_exc_set(VALUE self, VALUE val)
|
|
1686
1794
|
|
1687
1795
|
/*
|
1688
1796
|
* call-seq:
|
1689
|
-
* thr.abort_on_exception
|
1797
|
+
* thr.abort_on_exception -> true or false
|
1690
1798
|
*
|
1691
1799
|
* Returns the status of the thread-local ``abort on exception'' condition for
|
1692
1800
|
* <i>thr</i>. The default is <code>false</code>. See also
|
@@ -1704,7 +1812,7 @@ rb_thread_abort_exc(VALUE thread)
|
|
1704
1812
|
|
1705
1813
|
/*
|
1706
1814
|
* call-seq:
|
1707
|
-
* thr.abort_on_exception= boolean
|
1815
|
+
* thr.abort_on_exception= boolean -> true or false
|
1708
1816
|
*
|
1709
1817
|
* When set to <code>true</code>, causes all threads (including the main
|
1710
1818
|
* program) to abort if an exception is raised in <i>thr</i>. The process will
|
@@ -1725,7 +1833,7 @@ rb_thread_abort_exc_set(VALUE thread, VALUE val)
|
|
1725
1833
|
|
1726
1834
|
/*
|
1727
1835
|
* call-seq:
|
1728
|
-
* thr.group
|
1836
|
+
* thr.group -> thgrp or nil
|
1729
1837
|
*
|
1730
1838
|
* Returns the <code>ThreadGroup</code> which contains <i>thr</i>, or nil if
|
1731
1839
|
* the thread is not a member of any group.
|
@@ -1766,7 +1874,7 @@ thread_status_name(enum rb_thread_status status)
|
|
1766
1874
|
}
|
1767
1875
|
|
1768
1876
|
static int
|
1769
|
-
|
1877
|
+
rb_threadptr_dead(rb_thread_t *th)
|
1770
1878
|
{
|
1771
1879
|
return th->status == THREAD_KILLED;
|
1772
1880
|
}
|
@@ -1774,7 +1882,7 @@ rb_thread_dead(rb_thread_t *th)
|
|
1774
1882
|
|
1775
1883
|
/*
|
1776
1884
|
* call-seq:
|
1777
|
-
* thr.status
|
1885
|
+
* thr.status -> string, false or nil
|
1778
1886
|
*
|
1779
1887
|
* Returns the status of <i>thr</i>: ``<code>sleep</code>'' if <i>thr</i> is
|
1780
1888
|
* sleeping or waiting on I/O, ``<code>run</code>'' if <i>thr</i> is executing,
|
@@ -1800,7 +1908,7 @@ rb_thread_status(VALUE thread)
|
|
1800
1908
|
rb_thread_t *th;
|
1801
1909
|
GetThreadPtr(thread, th);
|
1802
1910
|
|
1803
|
-
if (
|
1911
|
+
if (rb_threadptr_dead(th)) {
|
1804
1912
|
if (!NIL_P(th->errinfo) && !FIXNUM_P(th->errinfo)
|
1805
1913
|
/* TODO */ ) {
|
1806
1914
|
return Qnil;
|
@@ -1813,7 +1921,7 @@ rb_thread_status(VALUE thread)
|
|
1813
1921
|
|
1814
1922
|
/*
|
1815
1923
|
* call-seq:
|
1816
|
-
* thr.alive?
|
1924
|
+
* thr.alive? -> true or false
|
1817
1925
|
*
|
1818
1926
|
* Returns <code>true</code> if <i>thr</i> is running or sleeping.
|
1819
1927
|
*
|
@@ -1829,14 +1937,14 @@ rb_thread_alive_p(VALUE thread)
|
|
1829
1937
|
rb_thread_t *th;
|
1830
1938
|
GetThreadPtr(thread, th);
|
1831
1939
|
|
1832
|
-
if (
|
1940
|
+
if (rb_threadptr_dead(th))
|
1833
1941
|
return Qfalse;
|
1834
1942
|
return Qtrue;
|
1835
1943
|
}
|
1836
1944
|
|
1837
1945
|
/*
|
1838
1946
|
* call-seq:
|
1839
|
-
* thr.stop?
|
1947
|
+
* thr.stop? -> true or false
|
1840
1948
|
*
|
1841
1949
|
* Returns <code>true</code> if <i>thr</i> is dead or sleeping.
|
1842
1950
|
*
|
@@ -1852,7 +1960,7 @@ rb_thread_stop_p(VALUE thread)
|
|
1852
1960
|
rb_thread_t *th;
|
1853
1961
|
GetThreadPtr(thread, th);
|
1854
1962
|
|
1855
|
-
if (
|
1963
|
+
if (rb_threadptr_dead(th))
|
1856
1964
|
return Qtrue;
|
1857
1965
|
if (th->status == THREAD_STOPPED || th->status == THREAD_STOPPED_FOREVER)
|
1858
1966
|
return Qtrue;
|
@@ -1861,7 +1969,7 @@ rb_thread_stop_p(VALUE thread)
|
|
1861
1969
|
|
1862
1970
|
/*
|
1863
1971
|
* call-seq:
|
1864
|
-
* thr.safe_level
|
1972
|
+
* thr.safe_level -> integer
|
1865
1973
|
*
|
1866
1974
|
* Returns the safe level in effect for <i>thr</i>. Setting thread-local safe
|
1867
1975
|
* levels can help when implementing sandboxes which run insecure code.
|
@@ -1882,7 +1990,7 @@ rb_thread_safe_level(VALUE thread)
|
|
1882
1990
|
|
1883
1991
|
/*
|
1884
1992
|
* call-seq:
|
1885
|
-
* thr.inspect
|
1993
|
+
* thr.inspect -> string
|
1886
1994
|
*
|
1887
1995
|
* Dump the name, id, and status of _thr_ to a string.
|
1888
1996
|
*/
|
@@ -1924,7 +2032,7 @@ rb_thread_local_aref(VALUE thread, ID id)
|
|
1924
2032
|
|
1925
2033
|
/*
|
1926
2034
|
* call-seq:
|
1927
|
-
* thr[sym]
|
2035
|
+
* thr[sym] -> obj or nil
|
1928
2036
|
*
|
1929
2037
|
* Attribute Reference---Returns the value of a thread-local variable, using
|
1930
2038
|
* either a symbol or a string name. If the specified variable does not exist,
|
@@ -1974,21 +2082,21 @@ rb_thread_local_aset(VALUE thread, ID id, VALUE val)
|
|
1974
2082
|
|
1975
2083
|
/*
|
1976
2084
|
* call-seq:
|
1977
|
-
* thr[sym] = obj
|
2085
|
+
* thr[sym] = obj -> obj
|
1978
2086
|
*
|
1979
2087
|
* Attribute Assignment---Sets or creates the value of a thread-local variable,
|
1980
2088
|
* using either a symbol or a string. See also <code>Thread#[]</code>.
|
1981
2089
|
*/
|
1982
2090
|
|
1983
2091
|
static VALUE
|
1984
|
-
rb_thread_aset(VALUE self,
|
2092
|
+
rb_thread_aset(VALUE self, VALUE id, VALUE val)
|
1985
2093
|
{
|
1986
2094
|
return rb_thread_local_aset(self, rb_to_id(id), val);
|
1987
2095
|
}
|
1988
2096
|
|
1989
2097
|
/*
|
1990
2098
|
* call-seq:
|
1991
|
-
* thr.key?(sym)
|
2099
|
+
* thr.key?(sym) -> true or false
|
1992
2100
|
*
|
1993
2101
|
* Returns <code>true</code> if the given string (or symbol) exists as a
|
1994
2102
|
* thread-local variable.
|
@@ -2030,19 +2138,19 @@ vm_living_thread_num(rb_vm_t *vm)
|
|
2030
2138
|
}
|
2031
2139
|
|
2032
2140
|
int
|
2033
|
-
rb_thread_alone()
|
2141
|
+
rb_thread_alone(void)
|
2034
2142
|
{
|
2035
2143
|
int num = 1;
|
2036
2144
|
if (GET_THREAD()->vm->living_threads) {
|
2037
2145
|
num = vm_living_thread_num(GET_THREAD()->vm);
|
2038
|
-
|
2146
|
+
thread_debug("rb_thread_alone: %d\n", num);
|
2039
2147
|
}
|
2040
2148
|
return num == 1;
|
2041
2149
|
}
|
2042
2150
|
|
2043
2151
|
/*
|
2044
2152
|
* call-seq:
|
2045
|
-
* thr.keys
|
2153
|
+
* thr.keys -> array
|
2046
2154
|
*
|
2047
2155
|
* Returns an an array of the names of the thread-local variables (as Symbols).
|
2048
2156
|
*
|
@@ -2069,12 +2177,15 @@ rb_thread_keys(VALUE self)
|
|
2069
2177
|
|
2070
2178
|
/*
|
2071
2179
|
* call-seq:
|
2072
|
-
* thr.priority
|
2180
|
+
* thr.priority -> integer
|
2073
2181
|
*
|
2074
2182
|
* Returns the priority of <i>thr</i>. Default is inherited from the
|
2075
2183
|
* current thread which creating the new thread, or zero for the
|
2076
|
-
* initial main thread; higher-priority
|
2077
|
-
* lower-priority threads.
|
2184
|
+
* initial main thread; higher-priority thread will run more frequently
|
2185
|
+
* than lower-priority threads (but lower-priority threads can also run).
|
2186
|
+
*
|
2187
|
+
* This is just hint for Ruby thread scheduler. It may be ignored on some
|
2188
|
+
* platform.
|
2078
2189
|
*
|
2079
2190
|
* Thread.current.priority #=> 0
|
2080
2191
|
*/
|
@@ -2090,10 +2201,14 @@ rb_thread_priority(VALUE thread)
|
|
2090
2201
|
|
2091
2202
|
/*
|
2092
2203
|
* call-seq:
|
2093
|
-
* thr.priority= integer
|
2204
|
+
* thr.priority= integer -> thr
|
2094
2205
|
*
|
2095
2206
|
* Sets the priority of <i>thr</i> to <i>integer</i>. Higher-priority threads
|
2096
|
-
* will run
|
2207
|
+
* will run more frequently than lower-priority threads (but lower-priority
|
2208
|
+
* threads can also run).
|
2209
|
+
*
|
2210
|
+
* This is just hint for Ruby thread scheduler. It may be ignored on some
|
2211
|
+
* platform.
|
2097
2212
|
*
|
2098
2213
|
* count1 = count2 = 0
|
2099
2214
|
* a = Thread.new do
|
@@ -2114,9 +2229,7 @@ static VALUE
|
|
2114
2229
|
rb_thread_priority_set(VALUE thread, VALUE prio)
|
2115
2230
|
{
|
2116
2231
|
rb_thread_t *th;
|
2117
|
-
#if !USE_NATIVE_THREAD_PRIORITY
|
2118
2232
|
int priority;
|
2119
|
-
#endif
|
2120
2233
|
GetThreadPtr(thread, th);
|
2121
2234
|
|
2122
2235
|
rb_secure(4);
|
@@ -2197,14 +2310,14 @@ rb_fd_zero(rb_fdset_t *fds)
|
|
2197
2310
|
static void
|
2198
2311
|
rb_fd_resize(int n, rb_fdset_t *fds)
|
2199
2312
|
{
|
2200
|
-
|
2201
|
-
|
2313
|
+
size_t m = howmany(n + 1, NFDBITS) * sizeof(fd_mask);
|
2314
|
+
size_t o = howmany(fds->maxfd, NFDBITS) * sizeof(fd_mask);
|
2202
2315
|
|
2203
2316
|
if (m < sizeof(fd_set)) m = sizeof(fd_set);
|
2204
2317
|
if (o < sizeof(fd_set)) o = sizeof(fd_set);
|
2205
2318
|
|
2206
2319
|
if (m > o) {
|
2207
|
-
fds->fdset =
|
2320
|
+
fds->fdset = xrealloc(fds->fdset, m);
|
2208
2321
|
memset((char *)fds->fdset + o, 0, m - o);
|
2209
2322
|
}
|
2210
2323
|
if (n >= fds->maxfd) fds->maxfd = n + 1;
|
@@ -2234,11 +2347,11 @@ rb_fd_isset(int n, const rb_fdset_t *fds)
|
|
2234
2347
|
void
|
2235
2348
|
rb_fd_copy(rb_fdset_t *dst, const fd_set *src, int max)
|
2236
2349
|
{
|
2237
|
-
|
2350
|
+
size_t size = howmany(max, NFDBITS) * sizeof(fd_mask);
|
2238
2351
|
|
2239
2352
|
if (size < sizeof(fd_set)) size = sizeof(fd_set);
|
2240
2353
|
dst->maxfd = max;
|
2241
|
-
dst->fdset =
|
2354
|
+
dst->fdset = xrealloc(dst->fdset, size);
|
2242
2355
|
memcpy(dst->fdset, src, size);
|
2243
2356
|
}
|
2244
2357
|
|
@@ -2300,7 +2413,7 @@ rb_fd_set(int fd, rb_fdset_t *set)
|
|
2300
2413
|
return;
|
2301
2414
|
}
|
2302
2415
|
}
|
2303
|
-
if (set->fdset->fd_count >= set->capa) {
|
2416
|
+
if (set->fdset->fd_count >= (unsigned)set->capa) {
|
2304
2417
|
set->capa = (set->fdset->fd_count / FD_SETSIZE + 1) * FD_SETSIZE;
|
2305
2418
|
set->fdset = xrealloc(set->fdset, sizeof(unsigned int) + sizeof(SOCKET) * set->capa);
|
2306
2419
|
}
|
@@ -2330,6 +2443,9 @@ cmp_tv(const struct timeval *a, const struct timeval *b)
|
|
2330
2443
|
static int
|
2331
2444
|
subtract_tv(struct timeval *rest, const struct timeval *wait)
|
2332
2445
|
{
|
2446
|
+
if (rest->tv_sec < wait->tv_sec) {
|
2447
|
+
return 0;
|
2448
|
+
}
|
2333
2449
|
while (rest->tv_usec < wait->tv_usec) {
|
2334
2450
|
if (rest->tv_sec <= wait->tv_sec) {
|
2335
2451
|
return 0;
|
@@ -2339,7 +2455,7 @@ subtract_tv(struct timeval *rest, const struct timeval *wait)
|
|
2339
2455
|
}
|
2340
2456
|
rest->tv_sec -= wait->tv_sec;
|
2341
2457
|
rest->tv_usec -= wait->tv_usec;
|
2342
|
-
return
|
2458
|
+
return rest->tv_sec != 0 || rest->tv_usec != 0;
|
2343
2459
|
}
|
2344
2460
|
#endif
|
2345
2461
|
|
@@ -2348,7 +2464,9 @@ do_select(int n, fd_set *read, fd_set *write, fd_set *except,
|
|
2348
2464
|
struct timeval *timeout)
|
2349
2465
|
{
|
2350
2466
|
int result, lerrno;
|
2351
|
-
fd_set orig_read
|
2467
|
+
fd_set UNINITIALIZED_VAR(orig_read);
|
2468
|
+
fd_set UNINITIALIZED_VAR(orig_write);
|
2469
|
+
fd_set UNINITIALIZED_VAR(orig_except);
|
2352
2470
|
|
2353
2471
|
#ifndef linux
|
2354
2472
|
double limit = 0;
|
@@ -2386,7 +2504,7 @@ do_select(int n, fd_set *read, fd_set *write, fd_set *except,
|
|
2386
2504
|
wait_100ms.tv_usec = 100 * 1000; /* 100 ms */
|
2387
2505
|
|
2388
2506
|
do {
|
2389
|
-
wait = (timeout == 0 || cmp_tv(&wait_100ms, timeout)
|
2507
|
+
wait = (timeout == 0 || cmp_tv(&wait_100ms, timeout) < 0) ? &wait_100ms : timeout;
|
2390
2508
|
BLOCKING_REGION({
|
2391
2509
|
do {
|
2392
2510
|
result = select(n, read, write, except, wait);
|
@@ -2396,16 +2514,16 @@ do_select(int n, fd_set *read, fd_set *write, fd_set *except,
|
|
2396
2514
|
if (read) *read = orig_read;
|
2397
2515
|
if (write) *write = orig_write;
|
2398
2516
|
if (except) *except = orig_except;
|
2399
|
-
wait = &wait_100ms;
|
2400
2517
|
if (timeout) {
|
2401
2518
|
struct timeval elapsed;
|
2402
2519
|
gettimeofday(&elapsed, NULL);
|
2403
2520
|
subtract_tv(&elapsed, &start_time);
|
2521
|
+
gettimeofday(&start_time, NULL);
|
2404
2522
|
if (!subtract_tv(timeout, &elapsed)) {
|
2405
2523
|
finish = 1;
|
2406
2524
|
break;
|
2407
2525
|
}
|
2408
|
-
if (cmp_tv(&wait_100ms, timeout)
|
2526
|
+
if (cmp_tv(&wait_100ms, timeout) > 0) wait = timeout;
|
2409
2527
|
}
|
2410
2528
|
} while (__th->interrupt_flag == 0);
|
2411
2529
|
}, 0, 0);
|
@@ -2434,7 +2552,7 @@ do_select(int n, fd_set *read, fd_set *write, fd_set *except,
|
|
2434
2552
|
double d = limit - timeofday();
|
2435
2553
|
|
2436
2554
|
wait_rest.tv_sec = (unsigned int)d;
|
2437
|
-
wait_rest.tv_usec = (
|
2555
|
+
wait_rest.tv_usec = (int)((d-(double)wait_rest.tv_sec)*1e6);
|
2438
2556
|
if (wait_rest.tv_sec < 0) wait_rest.tv_sec = 0;
|
2439
2557
|
if (wait_rest.tv_usec < 0) wait_rest.tv_usec = 0;
|
2440
2558
|
}
|
@@ -2451,7 +2569,7 @@ static void
|
|
2451
2569
|
rb_thread_wait_fd_rw(int fd, int read)
|
2452
2570
|
{
|
2453
2571
|
int result = 0;
|
2454
|
-
|
2572
|
+
thread_debug("rb_thread_wait_fd_rw(%d, %s)\n", fd, read ? "read" : "write");
|
2455
2573
|
|
2456
2574
|
if (fd < 0) {
|
2457
2575
|
rb_raise(rb_eIOError, "closed stream");
|
@@ -2476,7 +2594,7 @@ rb_thread_wait_fd_rw(int fd, int read)
|
|
2476
2594
|
}
|
2477
2595
|
}
|
2478
2596
|
|
2479
|
-
|
2597
|
+
thread_debug("rb_thread_wait_fd_rw(%d, %s): done\n", fd, read ? "read" : "write");
|
2480
2598
|
}
|
2481
2599
|
|
2482
2600
|
void
|
@@ -2489,7 +2607,7 @@ int
|
|
2489
2607
|
rb_thread_fd_writable(int fd)
|
2490
2608
|
{
|
2491
2609
|
rb_thread_wait_fd_rw(fd, 0);
|
2492
|
-
return
|
2610
|
+
return TRUE;
|
2493
2611
|
}
|
2494
2612
|
|
2495
2613
|
int
|
@@ -2510,6 +2628,37 @@ rb_thread_select(int max, fd_set * read, fd_set * write, fd_set * except,
|
|
2510
2628
|
}
|
2511
2629
|
|
2512
2630
|
|
2631
|
+
int
|
2632
|
+
rb_thread_fd_select(int max, rb_fdset_t * read, rb_fdset_t * write, rb_fdset_t * except,
|
2633
|
+
struct timeval *timeout)
|
2634
|
+
{
|
2635
|
+
fd_set *r = NULL, *w = NULL, *e = NULL;
|
2636
|
+
|
2637
|
+
if (!read && !write && !except) {
|
2638
|
+
if (!timeout) {
|
2639
|
+
rb_thread_sleep_forever();
|
2640
|
+
return 0;
|
2641
|
+
}
|
2642
|
+
rb_thread_wait_for(*timeout);
|
2643
|
+
return 0;
|
2644
|
+
}
|
2645
|
+
|
2646
|
+
if (read) {
|
2647
|
+
rb_fd_resize(max - 1, read);
|
2648
|
+
r = rb_fd_ptr(read);
|
2649
|
+
}
|
2650
|
+
if (write) {
|
2651
|
+
rb_fd_resize(max - 1, write);
|
2652
|
+
w = rb_fd_ptr(write);
|
2653
|
+
}
|
2654
|
+
if (except) {
|
2655
|
+
rb_fd_resize(max - 1, except);
|
2656
|
+
e = rb_fd_ptr(except);
|
2657
|
+
}
|
2658
|
+
return do_select(max, r, w, e, timeout);
|
2659
|
+
}
|
2660
|
+
|
2661
|
+
|
2513
2662
|
/*
|
2514
2663
|
* for GC
|
2515
2664
|
*/
|
@@ -2526,7 +2675,6 @@ rb_gc_set_stack_end(VALUE **stack_end_p)
|
|
2526
2675
|
void
|
2527
2676
|
rb_gc_save_machine_context(rb_thread_t *th)
|
2528
2677
|
{
|
2529
|
-
SET_MACHINE_STACK_END(&th->machine_stack_end);
|
2530
2678
|
FLUSH_REGISTER_WINDOWS;
|
2531
2679
|
#ifdef __ia64
|
2532
2680
|
th->machine_register_stack_end = rb_ia64_bsp();
|
@@ -2540,27 +2688,34 @@ rb_gc_save_machine_context(rb_thread_t *th)
|
|
2540
2688
|
|
2541
2689
|
int rb_get_next_signal(void);
|
2542
2690
|
|
2543
|
-
|
2544
|
-
|
2691
|
+
void
|
2692
|
+
rb_threadptr_check_signal(rb_thread_t *mth)
|
2545
2693
|
{
|
2546
|
-
rb_vm_t *vm = GET_VM(); /* TODO: fix me for Multi-VM */
|
2547
2694
|
int sig;
|
2548
|
-
rb_thread_t *mth;
|
2549
2695
|
|
2550
|
-
/*
|
2551
|
-
RUBY_VM_SET_TIMER_INTERRUPT(vm->running_thread);
|
2696
|
+
/* mth must be main_thread */
|
2552
2697
|
|
2553
|
-
/* check signal */
|
2554
|
-
mth = vm->main_thread;
|
2555
2698
|
if (!mth->exec_signal && (sig = rb_get_next_signal()) > 0) {
|
2556
2699
|
enum rb_thread_status prev_status = mth->status;
|
2557
2700
|
thread_debug("main_thread: %s, sig: %d\n",
|
2558
2701
|
thread_status_name(prev_status), sig);
|
2559
2702
|
mth->exec_signal = sig;
|
2560
2703
|
if (mth->status != THREAD_KILLED) mth->status = THREAD_RUNNABLE;
|
2561
|
-
|
2704
|
+
rb_threadptr_interrupt(mth);
|
2562
2705
|
mth->status = prev_status;
|
2563
2706
|
}
|
2707
|
+
}
|
2708
|
+
|
2709
|
+
static void
|
2710
|
+
timer_thread_function(void *arg)
|
2711
|
+
{
|
2712
|
+
rb_vm_t *vm = GET_VM(); /* TODO: fix me for Multi-VM */
|
2713
|
+
|
2714
|
+
/* for time slice */
|
2715
|
+
RUBY_VM_SET_TIMER_INTERRUPT(vm->running_thread);
|
2716
|
+
|
2717
|
+
/* check signal */
|
2718
|
+
rb_threadptr_check_signal(vm->main_thread);
|
2564
2719
|
|
2565
2720
|
#if 0
|
2566
2721
|
/* prove profiler */
|
@@ -2578,15 +2733,14 @@ void
|
|
2578
2733
|
rb_thread_stop_timer_thread(void)
|
2579
2734
|
{
|
2580
2735
|
if (timer_thread_id && native_stop_timer_thread()) {
|
2581
|
-
|
2582
|
-
timer_thread_id = 0;
|
2736
|
+
native_reset_timer_thread();
|
2583
2737
|
}
|
2584
2738
|
}
|
2585
2739
|
|
2586
2740
|
void
|
2587
2741
|
rb_thread_reset_timer_thread(void)
|
2588
2742
|
{
|
2589
|
-
|
2743
|
+
native_reset_timer_thread();
|
2590
2744
|
}
|
2591
2745
|
|
2592
2746
|
void
|
@@ -2628,6 +2782,7 @@ rb_thread_atfork_internal(int (*atfork)(st_data_t, st_data_t, st_data_t))
|
|
2628
2782
|
VALUE thval = th->self;
|
2629
2783
|
vm->main_thread = th;
|
2630
2784
|
|
2785
|
+
native_mutex_reinitialize_atfork(&th->vm->global_vm_lock);
|
2631
2786
|
st_foreach(vm->living_threads, atfork, (st_data_t)th);
|
2632
2787
|
st_clear(vm->living_threads);
|
2633
2788
|
st_insert(vm->living_threads, thval, (st_data_t)th->thread_id);
|
@@ -2643,7 +2798,11 @@ terminate_atfork_i(st_data_t key, st_data_t val, st_data_t current_th)
|
|
2643
2798
|
GetThreadPtr(thval, th);
|
2644
2799
|
|
2645
2800
|
if (th != (rb_thread_t *)current_th) {
|
2646
|
-
|
2801
|
+
if (th->keeping_mutexes) {
|
2802
|
+
rb_mutex_abandon_all(th->keeping_mutexes);
|
2803
|
+
}
|
2804
|
+
th->keeping_mutexes = NULL;
|
2805
|
+
thread_cleanup_func(th, TRUE);
|
2647
2806
|
}
|
2648
2807
|
return ST_CONTINUE;
|
2649
2808
|
}
|
@@ -2652,6 +2811,7 @@ void
|
|
2652
2811
|
rb_thread_atfork(void)
|
2653
2812
|
{
|
2654
2813
|
rb_thread_atfork_internal(terminate_atfork_i);
|
2814
|
+
GET_THREAD()->join_list_head = 0;
|
2655
2815
|
rb_reset_random_seed();
|
2656
2816
|
}
|
2657
2817
|
|
@@ -2679,6 +2839,17 @@ struct thgroup {
|
|
2679
2839
|
VALUE group;
|
2680
2840
|
};
|
2681
2841
|
|
2842
|
+
static size_t
|
2843
|
+
thgroup_memsize(const void *ptr)
|
2844
|
+
{
|
2845
|
+
return ptr ? sizeof(struct thgroup) : 0;
|
2846
|
+
}
|
2847
|
+
|
2848
|
+
static const rb_data_type_t thgroup_data_type = {
|
2849
|
+
"thgroup",
|
2850
|
+
NULL, RUBY_TYPED_DEFAULT_FREE, thgroup_memsize,
|
2851
|
+
};
|
2852
|
+
|
2682
2853
|
/*
|
2683
2854
|
* Document-class: ThreadGroup
|
2684
2855
|
*
|
@@ -2691,14 +2862,13 @@ struct thgroup {
|
|
2691
2862
|
* were created.
|
2692
2863
|
*/
|
2693
2864
|
|
2694
|
-
static VALUE thgroup_s_alloc(VALUE);
|
2695
2865
|
static VALUE
|
2696
2866
|
thgroup_s_alloc(VALUE klass)
|
2697
2867
|
{
|
2698
2868
|
VALUE group;
|
2699
2869
|
struct thgroup *data;
|
2700
2870
|
|
2701
|
-
group =
|
2871
|
+
group = TypedData_Make_Struct(klass, struct thgroup, &thgroup_data_type, data);
|
2702
2872
|
data->enclosed = 0;
|
2703
2873
|
data->group = group;
|
2704
2874
|
|
@@ -2727,7 +2897,7 @@ thgroup_list_i(st_data_t key, st_data_t val, st_data_t data)
|
|
2727
2897
|
|
2728
2898
|
/*
|
2729
2899
|
* call-seq:
|
2730
|
-
* thgrp.list
|
2900
|
+
* thgrp.list -> array
|
2731
2901
|
*
|
2732
2902
|
* Returns an array of all existing <code>Thread</code> objects that belong to
|
2733
2903
|
* this group.
|
@@ -2750,7 +2920,7 @@ thgroup_list(VALUE group)
|
|
2750
2920
|
|
2751
2921
|
/*
|
2752
2922
|
* call-seq:
|
2753
|
-
* thgrp.enclose
|
2923
|
+
* thgrp.enclose -> thgrp
|
2754
2924
|
*
|
2755
2925
|
* Prevents threads from being added to or removed from the receiving
|
2756
2926
|
* <code>ThreadGroup</code>. New threads can still be started in an enclosed
|
@@ -2771,7 +2941,7 @@ thgroup_enclose(VALUE group)
|
|
2771
2941
|
{
|
2772
2942
|
struct thgroup *data;
|
2773
2943
|
|
2774
|
-
|
2944
|
+
TypedData_Get_Struct(group, struct thgroup, &thgroup_data_type, data);
|
2775
2945
|
data->enclosed = 1;
|
2776
2946
|
|
2777
2947
|
return group;
|
@@ -2780,7 +2950,7 @@ thgroup_enclose(VALUE group)
|
|
2780
2950
|
|
2781
2951
|
/*
|
2782
2952
|
* call-seq:
|
2783
|
-
* thgrp.enclosed?
|
2953
|
+
* thgrp.enclosed? -> true or false
|
2784
2954
|
*
|
2785
2955
|
* Returns <code>true</code> if <em>thgrp</em> is enclosed. See also
|
2786
2956
|
* ThreadGroup#enclose.
|
@@ -2791,7 +2961,7 @@ thgroup_enclosed_p(VALUE group)
|
|
2791
2961
|
{
|
2792
2962
|
struct thgroup *data;
|
2793
2963
|
|
2794
|
-
|
2964
|
+
TypedData_Get_Struct(group, struct thgroup, &thgroup_data_type, data);
|
2795
2965
|
if (data->enclosed)
|
2796
2966
|
return Qtrue;
|
2797
2967
|
return Qfalse;
|
@@ -2800,7 +2970,7 @@ thgroup_enclosed_p(VALUE group)
|
|
2800
2970
|
|
2801
2971
|
/*
|
2802
2972
|
* call-seq:
|
2803
|
-
* thgrp.add(thread)
|
2973
|
+
* thgrp.add(thread) -> thgrp
|
2804
2974
|
*
|
2805
2975
|
* Adds the given <em>thread</em> to this group, removing it from any other
|
2806
2976
|
* group to which it may have previously belonged.
|
@@ -2836,7 +3006,7 @@ thgroup_add(VALUE group, VALUE thread)
|
|
2836
3006
|
if (OBJ_FROZEN(group)) {
|
2837
3007
|
rb_raise(rb_eThreadError, "can't move to the frozen thread group");
|
2838
3008
|
}
|
2839
|
-
|
3009
|
+
TypedData_Get_Struct(group, struct thgroup, &thgroup_data_type, data);
|
2840
3010
|
if (data->enclosed) {
|
2841
3011
|
rb_raise(rb_eThreadError, "can't move to the enclosed thread group");
|
2842
3012
|
}
|
@@ -2848,7 +3018,7 @@ thgroup_add(VALUE group, VALUE thread)
|
|
2848
3018
|
if (OBJ_FROZEN(th->thgroup)) {
|
2849
3019
|
rb_raise(rb_eThreadError, "can't move from the frozen thread group");
|
2850
3020
|
}
|
2851
|
-
|
3021
|
+
TypedData_Get_Struct(th->thgroup, struct thgroup, &thgroup_data_type, data);
|
2852
3022
|
if (data->enclosed) {
|
2853
3023
|
rb_raise(rb_eThreadError,
|
2854
3024
|
"can't move from the enclosed thread group");
|
@@ -2885,10 +3055,12 @@ thgroup_add(VALUE group, VALUE thread)
|
|
2885
3055
|
*/
|
2886
3056
|
|
2887
3057
|
#define GetMutexPtr(obj, tobj) \
|
2888
|
-
|
3058
|
+
TypedData_Get_Struct(obj, mutex_t, &mutex_data_type, tobj)
|
2889
3059
|
|
2890
3060
|
static const char *mutex_unlock(mutex_t *mutex, rb_thread_t volatile *th);
|
2891
3061
|
|
3062
|
+
#define mutex_mark NULL
|
3063
|
+
|
2892
3064
|
static void
|
2893
3065
|
mutex_free(void *ptr)
|
2894
3066
|
{
|
@@ -2905,13 +3077,24 @@ mutex_free(void *ptr)
|
|
2905
3077
|
ruby_xfree(ptr);
|
2906
3078
|
}
|
2907
3079
|
|
3080
|
+
static size_t
|
3081
|
+
mutex_memsize(const void *ptr)
|
3082
|
+
{
|
3083
|
+
return ptr ? sizeof(mutex_t) : 0;
|
3084
|
+
}
|
3085
|
+
|
3086
|
+
static const rb_data_type_t mutex_data_type = {
|
3087
|
+
"mutex",
|
3088
|
+
mutex_mark, mutex_free, mutex_memsize,
|
3089
|
+
};
|
3090
|
+
|
2908
3091
|
static VALUE
|
2909
3092
|
mutex_alloc(VALUE klass)
|
2910
3093
|
{
|
2911
3094
|
VALUE volatile obj;
|
2912
3095
|
mutex_t *mutex;
|
2913
3096
|
|
2914
|
-
obj =
|
3097
|
+
obj = TypedData_Make_Struct(klass, mutex_t, &mutex_data_type, mutex);
|
2915
3098
|
native_mutex_initialize(&mutex->lock);
|
2916
3099
|
native_cond_initialize(&mutex->cond);
|
2917
3100
|
return obj;
|
@@ -2919,7 +3102,7 @@ mutex_alloc(VALUE klass)
|
|
2919
3102
|
|
2920
3103
|
/*
|
2921
3104
|
* call-seq:
|
2922
|
-
* Mutex.new
|
3105
|
+
* Mutex.new -> mutex
|
2923
3106
|
*
|
2924
3107
|
* Creates a new Mutex
|
2925
3108
|
*/
|
@@ -2937,7 +3120,7 @@ rb_mutex_new(void)
|
|
2937
3120
|
|
2938
3121
|
/*
|
2939
3122
|
* call-seq:
|
2940
|
-
* mutex.locked?
|
3123
|
+
* mutex.locked? -> true or false
|
2941
3124
|
*
|
2942
3125
|
* Returns +true+ if this lock is currently held by some thread.
|
2943
3126
|
*/
|
@@ -2963,7 +3146,7 @@ mutex_locked(rb_thread_t *th, VALUE self)
|
|
2963
3146
|
|
2964
3147
|
/*
|
2965
3148
|
* call-seq:
|
2966
|
-
* mutex.try_lock
|
3149
|
+
* mutex.try_lock -> true or false
|
2967
3150
|
*
|
2968
3151
|
* Attempts to obtain the lock and returns immediately. Returns +true+ if the
|
2969
3152
|
* lock was granted.
|
@@ -3038,7 +3221,7 @@ lock_interrupt(void *ptr)
|
|
3038
3221
|
|
3039
3222
|
/*
|
3040
3223
|
* call-seq:
|
3041
|
-
* mutex.lock
|
3224
|
+
* mutex.lock -> self
|
3042
3225
|
*
|
3043
3226
|
* Attempts to grab the lock and waits if it isn't available.
|
3044
3227
|
* Raises +ThreadError+ if +mutex+ was locked by the current thread.
|
@@ -3147,7 +3330,7 @@ mutex_unlock(mutex_t *mutex, rb_thread_t volatile *th)
|
|
3147
3330
|
|
3148
3331
|
/*
|
3149
3332
|
* call-seq:
|
3150
|
-
* mutex.unlock
|
3333
|
+
* mutex.unlock -> self
|
3151
3334
|
*
|
3152
3335
|
* Releases the lock.
|
3153
3336
|
* Raises +ThreadError+ if +mutex+ wasn't locked by the current thread.
|
@@ -3181,6 +3364,19 @@ rb_mutex_unlock_all(mutex_t *mutexes, rb_thread_t *th)
|
|
3181
3364
|
}
|
3182
3365
|
}
|
3183
3366
|
|
3367
|
+
static void
|
3368
|
+
rb_mutex_abandon_all(mutex_t *mutexes)
|
3369
|
+
{
|
3370
|
+
mutex_t *mutex;
|
3371
|
+
|
3372
|
+
while (mutexes) {
|
3373
|
+
mutex = mutexes;
|
3374
|
+
mutexes = mutex->next_mutex;
|
3375
|
+
mutex->th = 0;
|
3376
|
+
mutex->next_mutex = 0;
|
3377
|
+
}
|
3378
|
+
}
|
3379
|
+
|
3184
3380
|
static VALUE
|
3185
3381
|
rb_mutex_sleep_forever(VALUE time)
|
3186
3382
|
{
|
@@ -3219,7 +3415,7 @@ rb_mutex_sleep(VALUE self, VALUE timeout)
|
|
3219
3415
|
|
3220
3416
|
/*
|
3221
3417
|
* call-seq:
|
3222
|
-
* mutex.sleep(timeout = nil)
|
3418
|
+
* mutex.sleep(timeout = nil) -> number
|
3223
3419
|
*
|
3224
3420
|
* Releases the lock and sleeps +timeout+ seconds if it is given and
|
3225
3421
|
* non-nil or forever. Raises +ThreadError+ if +mutex+ wasn't locked by
|
@@ -3236,7 +3432,7 @@ mutex_sleep(int argc, VALUE *argv, VALUE self)
|
|
3236
3432
|
|
3237
3433
|
/*
|
3238
3434
|
* call-seq:
|
3239
|
-
* mutex.synchronize { ... }
|
3435
|
+
* mutex.synchronize { ... } -> result of the block
|
3240
3436
|
*
|
3241
3437
|
* Obtains a lock, runs the block, and releases the lock when the block
|
3242
3438
|
* completes. See the example under +Mutex+.
|
@@ -3252,12 +3448,25 @@ rb_mutex_synchronize(VALUE mutex, VALUE (*func)(VALUE arg), VALUE arg)
|
|
3252
3448
|
/*
|
3253
3449
|
* Document-class: Barrier
|
3254
3450
|
*/
|
3451
|
+
static void
|
3452
|
+
barrier_mark(void *ptr)
|
3453
|
+
{
|
3454
|
+
rb_gc_mark((VALUE)ptr);
|
3455
|
+
}
|
3456
|
+
|
3457
|
+
static const rb_data_type_t barrier_data_type = {
|
3458
|
+
"barrier",
|
3459
|
+
barrier_mark, 0, 0,
|
3460
|
+
};
|
3461
|
+
|
3255
3462
|
static VALUE
|
3256
3463
|
barrier_alloc(VALUE klass)
|
3257
3464
|
{
|
3258
|
-
return
|
3465
|
+
return TypedData_Wrap_Struct(klass, &barrier_data_type, (void *)mutex_alloc(0));
|
3259
3466
|
}
|
3260
3467
|
|
3468
|
+
#define GetBarrierPtr(obj) (VALUE)rb_check_typeddata(obj, &barrier_data_type)
|
3469
|
+
|
3261
3470
|
VALUE
|
3262
3471
|
rb_barrier_new(void)
|
3263
3472
|
{
|
@@ -3269,7 +3478,7 @@ rb_barrier_new(void)
|
|
3269
3478
|
VALUE
|
3270
3479
|
rb_barrier_wait(VALUE self)
|
3271
3480
|
{
|
3272
|
-
VALUE mutex = (
|
3481
|
+
VALUE mutex = GetBarrierPtr(self);
|
3273
3482
|
mutex_t *m;
|
3274
3483
|
|
3275
3484
|
if (!mutex) return Qfalse;
|
@@ -3284,13 +3493,13 @@ rb_barrier_wait(VALUE self)
|
|
3284
3493
|
VALUE
|
3285
3494
|
rb_barrier_release(VALUE self)
|
3286
3495
|
{
|
3287
|
-
return rb_mutex_unlock((
|
3496
|
+
return rb_mutex_unlock(GetBarrierPtr(self));
|
3288
3497
|
}
|
3289
3498
|
|
3290
3499
|
VALUE
|
3291
3500
|
rb_barrier_destroy(VALUE self)
|
3292
3501
|
{
|
3293
|
-
VALUE mutex = (
|
3502
|
+
VALUE mutex = GetBarrierPtr(self);
|
3294
3503
|
DATA_PTR(self) = 0;
|
3295
3504
|
return rb_mutex_unlock(mutex);
|
3296
3505
|
}
|
@@ -3298,31 +3507,21 @@ rb_barrier_destroy(VALUE self)
|
|
3298
3507
|
/* variables for recursive traversals */
|
3299
3508
|
static ID recursive_key;
|
3300
3509
|
|
3301
|
-
|
3302
|
-
|
3303
|
-
|
3304
|
-
|
3305
|
-
|
3306
|
-
}
|
3307
|
-
else {
|
3308
|
-
VALUE list = rb_hash_aref(hash, ID2SYM(rb_frame_this_func()));
|
3309
|
-
|
3310
|
-
if (NIL_P(list) || TYPE(list) != T_HASH)
|
3311
|
-
return Qfalse;
|
3312
|
-
if (NIL_P(rb_hash_lookup(list, obj)))
|
3313
|
-
return Qfalse;
|
3314
|
-
return Qtrue;
|
3315
|
-
}
|
3316
|
-
}
|
3510
|
+
/*
|
3511
|
+
* Returns the current "recursive list" used to detect recursion.
|
3512
|
+
* This list is a hash table, unique for the current thread and for
|
3513
|
+
* the current __callee__.
|
3514
|
+
*/
|
3317
3515
|
|
3318
3516
|
static VALUE
|
3319
|
-
|
3517
|
+
recursive_list_access(void)
|
3320
3518
|
{
|
3321
|
-
VALUE
|
3322
|
-
|
3323
|
-
|
3519
|
+
volatile VALUE hash = rb_thread_local_aref(rb_thread_current(), recursive_key);
|
3520
|
+
VALUE sym = ID2SYM(rb_frame_this_func());
|
3521
|
+
VALUE list;
|
3324
3522
|
if (NIL_P(hash) || TYPE(hash) != T_HASH) {
|
3325
3523
|
hash = rb_hash_new();
|
3524
|
+
OBJ_UNTRUST(hash);
|
3326
3525
|
rb_thread_local_aset(rb_thread_current(), recursive_key, hash);
|
3327
3526
|
list = Qnil;
|
3328
3527
|
}
|
@@ -3331,61 +3530,206 @@ recursive_push(VALUE hash, VALUE obj)
|
|
3331
3530
|
}
|
3332
3531
|
if (NIL_P(list) || TYPE(list) != T_HASH) {
|
3333
3532
|
list = rb_hash_new();
|
3533
|
+
OBJ_UNTRUST(list);
|
3334
3534
|
rb_hash_aset(hash, sym, list);
|
3335
3535
|
}
|
3336
|
-
|
3337
|
-
return hash;
|
3536
|
+
return list;
|
3338
3537
|
}
|
3339
3538
|
|
3340
|
-
|
3341
|
-
|
3539
|
+
/*
|
3540
|
+
* Returns Qtrue iff obj_id (or the pair <obj, paired_obj>) is already
|
3541
|
+
* in the recursion list.
|
3542
|
+
* Assumes the recursion list is valid.
|
3543
|
+
*/
|
3544
|
+
|
3545
|
+
static VALUE
|
3546
|
+
recursive_check(VALUE list, VALUE obj_id, VALUE paired_obj_id)
|
3342
3547
|
{
|
3343
|
-
VALUE list,
|
3548
|
+
VALUE pair_list = rb_hash_lookup2(list, obj_id, Qundef);
|
3549
|
+
if (pair_list == Qundef)
|
3550
|
+
return Qfalse;
|
3551
|
+
if (paired_obj_id) {
|
3552
|
+
if (TYPE(pair_list) != T_HASH) {
|
3553
|
+
if (pair_list != paired_obj_id)
|
3554
|
+
return Qfalse;
|
3555
|
+
}
|
3556
|
+
else {
|
3557
|
+
if (NIL_P(rb_hash_lookup(pair_list, paired_obj_id)))
|
3558
|
+
return Qfalse;
|
3559
|
+
}
|
3560
|
+
}
|
3561
|
+
return Qtrue;
|
3562
|
+
}
|
3344
3563
|
|
3345
|
-
|
3346
|
-
|
3347
|
-
|
3348
|
-
|
3349
|
-
|
3350
|
-
|
3564
|
+
/*
|
3565
|
+
* Pushes obj_id (or the pair <obj_id, paired_obj_id>) in the recursion list.
|
3566
|
+
* For a single obj_id, it sets list[obj_id] to Qtrue.
|
3567
|
+
* For a pair, it sets list[obj_id] to paired_obj_id if possible,
|
3568
|
+
* otherwise list[obj_id] becomes a hash like:
|
3569
|
+
* {paired_obj_id_1 => true, paired_obj_id_2 => true, ... }
|
3570
|
+
* Assumes the recursion list is valid.
|
3571
|
+
*/
|
3351
3572
|
|
3352
|
-
|
3353
|
-
|
3573
|
+
static void
|
3574
|
+
recursive_push(VALUE list, VALUE obj, VALUE paired_obj)
|
3575
|
+
{
|
3576
|
+
VALUE pair_list;
|
3577
|
+
|
3578
|
+
if (!paired_obj) {
|
3579
|
+
rb_hash_aset(list, obj, Qtrue);
|
3354
3580
|
}
|
3355
|
-
|
3356
|
-
|
3357
|
-
|
3358
|
-
|
3359
|
-
|
3360
|
-
|
3581
|
+
else if ((pair_list = rb_hash_lookup2(list, obj, Qundef)) == Qundef) {
|
3582
|
+
rb_hash_aset(list, obj, paired_obj);
|
3583
|
+
}
|
3584
|
+
else {
|
3585
|
+
if (TYPE(pair_list) != T_HASH){
|
3586
|
+
VALUE other_paired_obj = pair_list;
|
3587
|
+
pair_list = rb_hash_new();
|
3588
|
+
OBJ_UNTRUST(pair_list);
|
3589
|
+
rb_hash_aset(pair_list, other_paired_obj, Qtrue);
|
3590
|
+
rb_hash_aset(list, obj, pair_list);
|
3591
|
+
}
|
3592
|
+
rb_hash_aset(pair_list, paired_obj, Qtrue);
|
3593
|
+
}
|
3594
|
+
}
|
3595
|
+
|
3596
|
+
/*
|
3597
|
+
* Pops obj_id (or the pair <obj_id, paired_obj_id>) from the recursion list.
|
3598
|
+
* For a pair, if list[obj_id] is a hash, then paired_obj_id is
|
3599
|
+
* removed from the hash and no attempt is made to simplify
|
3600
|
+
* list[obj_id] from {only_one_paired_id => true} to only_one_paired_id
|
3601
|
+
* Assumes the recursion list is valid.
|
3602
|
+
*/
|
3603
|
+
|
3604
|
+
static void
|
3605
|
+
recursive_pop(VALUE list, VALUE obj, VALUE paired_obj)
|
3606
|
+
{
|
3607
|
+
if (paired_obj) {
|
3608
|
+
VALUE pair_list = rb_hash_lookup2(list, obj, Qundef);
|
3609
|
+
if (pair_list == Qundef) {
|
3610
|
+
VALUE symname = rb_inspect(ID2SYM(rb_frame_this_func()));
|
3611
|
+
VALUE thrname = rb_inspect(rb_thread_current());
|
3612
|
+
rb_raise(rb_eTypeError, "invalid inspect_tbl pair_list for %s in %s",
|
3613
|
+
StringValuePtr(symname), StringValuePtr(thrname));
|
3614
|
+
}
|
3615
|
+
if (TYPE(pair_list) == T_HASH) {
|
3616
|
+
rb_hash_delete(pair_list, paired_obj);
|
3617
|
+
if (!RHASH_EMPTY_P(pair_list)) {
|
3618
|
+
return; /* keep hash until is empty */
|
3619
|
+
}
|
3620
|
+
}
|
3361
3621
|
}
|
3362
3622
|
rb_hash_delete(list, obj);
|
3363
3623
|
}
|
3364
3624
|
|
3365
|
-
|
3366
|
-
|
3625
|
+
struct exec_recursive_params {
|
3626
|
+
VALUE (*func) (VALUE, VALUE, int);
|
3627
|
+
VALUE list;
|
3628
|
+
VALUE obj;
|
3629
|
+
VALUE objid;
|
3630
|
+
VALUE pairid;
|
3631
|
+
VALUE arg;
|
3632
|
+
};
|
3633
|
+
|
3634
|
+
static VALUE
|
3635
|
+
exec_recursive_i(VALUE tag, struct exec_recursive_params *p)
|
3367
3636
|
{
|
3368
|
-
VALUE
|
3369
|
-
|
3637
|
+
VALUE result = Qundef;
|
3638
|
+
int state;
|
3370
3639
|
|
3371
|
-
|
3372
|
-
|
3640
|
+
recursive_push(p->list, p->objid, p->pairid);
|
3641
|
+
PUSH_TAG();
|
3642
|
+
if ((state = EXEC_TAG()) == 0) {
|
3643
|
+
result = (*p->func)(p->obj, p->arg, FALSE);
|
3373
3644
|
}
|
3374
|
-
|
3375
|
-
|
3376
|
-
|
3645
|
+
POP_TAG();
|
3646
|
+
recursive_pop(p->list, p->objid, p->pairid);
|
3647
|
+
if (state)
|
3648
|
+
JUMP_TAG(state);
|
3649
|
+
return result;
|
3650
|
+
}
|
3377
3651
|
|
3378
|
-
|
3379
|
-
|
3380
|
-
|
3381
|
-
|
3652
|
+
/*
|
3653
|
+
* Calls func(obj, arg, recursive), where recursive is non-zero if the
|
3654
|
+
* current method is called recursively on obj, or on the pair <obj, pairid>
|
3655
|
+
* If outer is 0, then the innermost func will be called with recursive set
|
3656
|
+
* to Qtrue, otherwise the outermost func will be called. In the latter case,
|
3657
|
+
* all inner func are short-circuited by throw.
|
3658
|
+
* Implementation details: the value thrown is the recursive list which is
|
3659
|
+
* proper to the current method and unlikely to be catched anywhere else.
|
3660
|
+
* list[recursive_key] is used as a flag for the outermost call.
|
3661
|
+
*/
|
3662
|
+
|
3663
|
+
static VALUE
|
3664
|
+
exec_recursive(VALUE (*func) (VALUE, VALUE, int), VALUE obj, VALUE pairid, VALUE arg, int outer)
|
3665
|
+
{
|
3666
|
+
VALUE result = Qundef;
|
3667
|
+
struct exec_recursive_params p;
|
3668
|
+
int outermost;
|
3669
|
+
p.list = recursive_list_access();
|
3670
|
+
p.objid = rb_obj_id(obj);
|
3671
|
+
p.obj = obj;
|
3672
|
+
p.pairid = pairid;
|
3673
|
+
p.arg = arg;
|
3674
|
+
outermost = outer && !recursive_check(p.list, ID2SYM(recursive_key), 0);
|
3675
|
+
|
3676
|
+
if (recursive_check(p.list, p.objid, pairid)) {
|
3677
|
+
if (outer && !outermost) {
|
3678
|
+
rb_throw_obj(p.list, p.list);
|
3679
|
+
}
|
3680
|
+
return (*func)(obj, arg, TRUE);
|
3681
|
+
}
|
3682
|
+
else {
|
3683
|
+
p.func = func;
|
3684
|
+
|
3685
|
+
if (outermost) {
|
3686
|
+
recursive_push(p.list, ID2SYM(recursive_key), 0);
|
3687
|
+
result = rb_catch_obj(p.list, exec_recursive_i, (VALUE)&p);
|
3688
|
+
recursive_pop(p.list, ID2SYM(recursive_key), 0);
|
3689
|
+
if (result == p.list) {
|
3690
|
+
result = (*func)(obj, arg, TRUE);
|
3691
|
+
}
|
3692
|
+
}
|
3693
|
+
else {
|
3694
|
+
result = exec_recursive_i(0, &p);
|
3382
3695
|
}
|
3383
|
-
POP_TAG();
|
3384
|
-
recursive_pop(hash, objid);
|
3385
|
-
if (state)
|
3386
|
-
JUMP_TAG(state);
|
3387
|
-
return result;
|
3388
3696
|
}
|
3697
|
+
*(volatile struct exec_recursive_params *)&p;
|
3698
|
+
return result;
|
3699
|
+
}
|
3700
|
+
|
3701
|
+
/*
|
3702
|
+
* Calls func(obj, arg, recursive), where recursive is non-zero if the
|
3703
|
+
* current method is called recursively on obj
|
3704
|
+
*/
|
3705
|
+
|
3706
|
+
VALUE
|
3707
|
+
rb_exec_recursive(VALUE (*func) (VALUE, VALUE, int), VALUE obj, VALUE arg)
|
3708
|
+
{
|
3709
|
+
return exec_recursive(func, obj, 0, arg, 0);
|
3710
|
+
}
|
3711
|
+
|
3712
|
+
/*
|
3713
|
+
* Calls func(obj, arg, recursive), where recursive is non-zero if the
|
3714
|
+
* current method is called recursively on the ordered pair <obj, paired_obj>
|
3715
|
+
*/
|
3716
|
+
|
3717
|
+
VALUE
|
3718
|
+
rb_exec_recursive_paired(VALUE (*func) (VALUE, VALUE, int), VALUE obj, VALUE paired_obj, VALUE arg)
|
3719
|
+
{
|
3720
|
+
return exec_recursive(func, obj, rb_obj_id(paired_obj), arg, 0);
|
3721
|
+
}
|
3722
|
+
|
3723
|
+
/*
|
3724
|
+
* If recursion is detected on the current method and obj, the outermost
|
3725
|
+
* func will be called with (obj, arg, Qtrue). All inner func will be
|
3726
|
+
* short-circuited using throw.
|
3727
|
+
*/
|
3728
|
+
|
3729
|
+
VALUE
|
3730
|
+
rb_exec_recursive_outer(VALUE (*func) (VALUE, VALUE, int), VALUE obj, VALUE arg)
|
3731
|
+
{
|
3732
|
+
return exec_recursive(func, obj, 0, arg, 1);
|
3389
3733
|
}
|
3390
3734
|
|
3391
3735
|
/* tracer */
|
@@ -3410,10 +3754,11 @@ thread_reset_event_flags(rb_thread_t *th)
|
|
3410
3754
|
flag |= hook->flag;
|
3411
3755
|
hook = hook->next;
|
3412
3756
|
}
|
3757
|
+
th->event_flags = flag;
|
3413
3758
|
}
|
3414
3759
|
|
3415
|
-
void
|
3416
|
-
|
3760
|
+
static void
|
3761
|
+
rb_threadptr_add_event_hook(rb_thread_t *th,
|
3417
3762
|
rb_event_hook_func_t func, rb_event_flag_t events, VALUE data)
|
3418
3763
|
{
|
3419
3764
|
rb_event_hook_t *hook = alloc_event_hook(func, events, data);
|
@@ -3422,6 +3767,21 @@ rb_thread_add_event_hook(rb_thread_t *th,
|
|
3422
3767
|
thread_reset_event_flags(th);
|
3423
3768
|
}
|
3424
3769
|
|
3770
|
+
static rb_thread_t *
|
3771
|
+
thval2thread_t(VALUE thval)
|
3772
|
+
{
|
3773
|
+
rb_thread_t *th;
|
3774
|
+
GetThreadPtr(thval, th);
|
3775
|
+
return th;
|
3776
|
+
}
|
3777
|
+
|
3778
|
+
void
|
3779
|
+
rb_thread_add_event_hook(VALUE thval,
|
3780
|
+
rb_event_hook_func_t func, rb_event_flag_t events, VALUE data)
|
3781
|
+
{
|
3782
|
+
rb_threadptr_add_event_hook(thval2thread_t(thval), func, events, data);
|
3783
|
+
}
|
3784
|
+
|
3425
3785
|
static int
|
3426
3786
|
set_threads_event_flags_i(st_data_t key, st_data_t val, st_data_t flag)
|
3427
3787
|
{
|
@@ -3444,6 +3804,37 @@ set_threads_event_flags(int flag)
|
|
3444
3804
|
st_foreach(GET_VM()->living_threads, set_threads_event_flags_i, (st_data_t) flag);
|
3445
3805
|
}
|
3446
3806
|
|
3807
|
+
static inline void
|
3808
|
+
exec_event_hooks(const rb_event_hook_t *hook, rb_event_flag_t flag, VALUE self, ID id, VALUE klass)
|
3809
|
+
{
|
3810
|
+
for (; hook; hook = hook->next) {
|
3811
|
+
if (flag & hook->flag) {
|
3812
|
+
(*hook->func)(flag, hook->data, self, id, klass);
|
3813
|
+
}
|
3814
|
+
}
|
3815
|
+
}
|
3816
|
+
|
3817
|
+
void
|
3818
|
+
rb_threadptr_exec_event_hooks(rb_thread_t *th, rb_event_flag_t flag, VALUE self, ID id, VALUE klass)
|
3819
|
+
{
|
3820
|
+
const VALUE errinfo = th->errinfo;
|
3821
|
+
const rb_event_flag_t wait_event = th->event_flags;
|
3822
|
+
|
3823
|
+
if (self == rb_mRubyVMFrozenCore) return;
|
3824
|
+
if (wait_event & flag) {
|
3825
|
+
exec_event_hooks(th->event_hooks, flag, self, id, klass);
|
3826
|
+
}
|
3827
|
+
if (wait_event & RUBY_EVENT_VM) {
|
3828
|
+
if (th->vm->event_hooks == NULL) {
|
3829
|
+
th->event_flags &= (~RUBY_EVENT_VM);
|
3830
|
+
}
|
3831
|
+
else {
|
3832
|
+
exec_event_hooks(th->vm->event_hooks, flag, self, id, klass);
|
3833
|
+
}
|
3834
|
+
}
|
3835
|
+
th->errinfo = errinfo;
|
3836
|
+
}
|
3837
|
+
|
3447
3838
|
void
|
3448
3839
|
rb_add_event_hook(rb_event_hook_func_t func, rb_event_flag_t events, VALUE data)
|
3449
3840
|
{
|
@@ -3480,14 +3871,20 @@ remove_event_hook(rb_event_hook_t **root, rb_event_hook_func_t func)
|
|
3480
3871
|
return -1;
|
3481
3872
|
}
|
3482
3873
|
|
3483
|
-
int
|
3484
|
-
|
3874
|
+
static int
|
3875
|
+
rb_threadptr_revmove_event_hook(rb_thread_t *th, rb_event_hook_func_t func)
|
3485
3876
|
{
|
3486
3877
|
int ret = remove_event_hook(&th->event_hooks, func);
|
3487
3878
|
thread_reset_event_flags(th);
|
3488
3879
|
return ret;
|
3489
3880
|
}
|
3490
3881
|
|
3882
|
+
int
|
3883
|
+
rb_thread_remove_event_hook(VALUE thval, rb_event_hook_func_t func)
|
3884
|
+
{
|
3885
|
+
return rb_threadptr_revmove_event_hook(thval2thread_t(thval), func);
|
3886
|
+
}
|
3887
|
+
|
3491
3888
|
int
|
3492
3889
|
rb_remove_event_hook(rb_event_hook_func_t func)
|
3493
3890
|
{
|
@@ -3507,7 +3904,7 @@ clear_trace_func_i(st_data_t key, st_data_t val, st_data_t flag)
|
|
3507
3904
|
{
|
3508
3905
|
rb_thread_t *th;
|
3509
3906
|
GetThreadPtr((VALUE)key, th);
|
3510
|
-
|
3907
|
+
rb_threadptr_revmove_event_hook(th, 0);
|
3511
3908
|
return ST_CONTINUE;
|
3512
3909
|
}
|
3513
3910
|
|
@@ -3522,8 +3919,8 @@ static void call_trace_func(rb_event_flag_t, VALUE data, VALUE self, ID id, VALU
|
|
3522
3919
|
|
3523
3920
|
/*
|
3524
3921
|
* call-seq:
|
3525
|
-
* set_trace_func(proc)
|
3526
|
-
* set_trace_func(nil)
|
3922
|
+
* set_trace_func(proc) -> proc
|
3923
|
+
* set_trace_func(nil) -> nil
|
3527
3924
|
*
|
3528
3925
|
* Establishes _proc_ as the handler for tracing, or disables
|
3529
3926
|
* tracing if the parameter is +nil+. _proc_ takes up
|
@@ -3580,6 +3977,57 @@ set_trace_func(VALUE obj, VALUE trace)
|
|
3580
3977
|
return trace;
|
3581
3978
|
}
|
3582
3979
|
|
3980
|
+
static void
|
3981
|
+
thread_add_trace_func(rb_thread_t *th, VALUE trace)
|
3982
|
+
{
|
3983
|
+
if (!rb_obj_is_proc(trace)) {
|
3984
|
+
rb_raise(rb_eTypeError, "trace_func needs to be Proc");
|
3985
|
+
}
|
3986
|
+
|
3987
|
+
rb_threadptr_add_event_hook(th, call_trace_func, RUBY_EVENT_ALL, trace);
|
3988
|
+
}
|
3989
|
+
|
3990
|
+
/*
|
3991
|
+
* call-seq:
|
3992
|
+
* thr.add_trace_func(proc) -> proc
|
3993
|
+
*
|
3994
|
+
* Adds _proc_ as a handler for tracing.
|
3995
|
+
* See <code>Thread#set_trace_func</code> and +set_trace_func+.
|
3996
|
+
*/
|
3997
|
+
|
3998
|
+
static VALUE
|
3999
|
+
thread_add_trace_func_m(VALUE obj, VALUE trace)
|
4000
|
+
{
|
4001
|
+
rb_thread_t *th;
|
4002
|
+
GetThreadPtr(obj, th);
|
4003
|
+
thread_add_trace_func(th, trace);
|
4004
|
+
return trace;
|
4005
|
+
}
|
4006
|
+
|
4007
|
+
/*
|
4008
|
+
* call-seq:
|
4009
|
+
* thr.set_trace_func(proc) -> proc
|
4010
|
+
* thr.set_trace_func(nil) -> nil
|
4011
|
+
*
|
4012
|
+
* Establishes _proc_ on _thr_ as the handler for tracing, or
|
4013
|
+
* disables tracing if the parameter is +nil+.
|
4014
|
+
* See +set_trace_func+.
|
4015
|
+
*/
|
4016
|
+
|
4017
|
+
static VALUE
|
4018
|
+
thread_set_trace_func_m(VALUE obj, VALUE trace)
|
4019
|
+
{
|
4020
|
+
rb_thread_t *th;
|
4021
|
+
GetThreadPtr(obj, th);
|
4022
|
+
rb_threadptr_revmove_event_hook(th, call_trace_func);
|
4023
|
+
|
4024
|
+
if (NIL_P(trace)) {
|
4025
|
+
return Qnil;
|
4026
|
+
}
|
4027
|
+
thread_add_trace_func(th, trace);
|
4028
|
+
return trace;
|
4029
|
+
}
|
4030
|
+
|
3583
4031
|
static const char *
|
3584
4032
|
get_event_name(rb_event_flag_t event)
|
3585
4033
|
{
|
@@ -3666,14 +4114,16 @@ call_trace_func(rb_event_flag_t event, VALUE proc, VALUE self, ID id, VALUE klas
|
|
3666
4114
|
args.self = self;
|
3667
4115
|
args.id = id;
|
3668
4116
|
args.klass = klass;
|
3669
|
-
ruby_suppress_tracing(call_trace_proc, (VALUE)&args,
|
4117
|
+
ruby_suppress_tracing(call_trace_proc, (VALUE)&args, FALSE);
|
3670
4118
|
}
|
3671
4119
|
|
3672
4120
|
VALUE
|
3673
4121
|
ruby_suppress_tracing(VALUE (*func)(VALUE, int), VALUE arg, int always)
|
3674
4122
|
{
|
3675
4123
|
rb_thread_t *th = GET_THREAD();
|
3676
|
-
int state,
|
4124
|
+
int state, tracing;
|
4125
|
+
volatile int raised;
|
4126
|
+
volatile int outer_state;
|
3677
4127
|
VALUE result = Qnil;
|
3678
4128
|
|
3679
4129
|
if ((tracing = th->tracing) != 0 && !always) {
|
@@ -3683,7 +4133,9 @@ ruby_suppress_tracing(VALUE (*func)(VALUE, int), VALUE arg, int always)
|
|
3683
4133
|
th->tracing = 1;
|
3684
4134
|
}
|
3685
4135
|
|
3686
|
-
raised =
|
4136
|
+
raised = rb_threadptr_reset_raised(th);
|
4137
|
+
outer_state = th->state;
|
4138
|
+
th->state = 0;
|
3687
4139
|
|
3688
4140
|
PUSH_TAG();
|
3689
4141
|
if ((state = EXEC_TAG()) == 0) {
|
@@ -3691,7 +4143,7 @@ ruby_suppress_tracing(VALUE (*func)(VALUE, int), VALUE arg, int always)
|
|
3691
4143
|
}
|
3692
4144
|
|
3693
4145
|
if (raised) {
|
3694
|
-
|
4146
|
+
rb_threadptr_set_raised(th);
|
3695
4147
|
}
|
3696
4148
|
POP_TAG();
|
3697
4149
|
|
@@ -3699,10 +4151,40 @@ ruby_suppress_tracing(VALUE (*func)(VALUE, int), VALUE arg, int always)
|
|
3699
4151
|
if (state) {
|
3700
4152
|
JUMP_TAG(state);
|
3701
4153
|
}
|
4154
|
+
th->state = outer_state;
|
3702
4155
|
|
3703
4156
|
return result;
|
3704
4157
|
}
|
3705
4158
|
|
4159
|
+
VALUE rb_thread_backtrace(VALUE thval);
|
4160
|
+
|
4161
|
+
/*
|
4162
|
+
* call-seq:
|
4163
|
+
* thr.backtrace -> array
|
4164
|
+
*
|
4165
|
+
* Returns the current back trace of the _thr_.
|
4166
|
+
*/
|
4167
|
+
|
4168
|
+
static VALUE
|
4169
|
+
rb_thread_backtrace_m(VALUE thval)
|
4170
|
+
{
|
4171
|
+
return rb_thread_backtrace(thval);
|
4172
|
+
}
|
4173
|
+
|
4174
|
+
/*
|
4175
|
+
* Document-class: ThreadError
|
4176
|
+
*
|
4177
|
+
* Raised when an invalid operation is attempted on a thread.
|
4178
|
+
*
|
4179
|
+
* For example, when no other thread has been started:
|
4180
|
+
*
|
4181
|
+
* Thread.stop
|
4182
|
+
*
|
4183
|
+
* <em>raises the exception:</em>
|
4184
|
+
*
|
4185
|
+
* ThreadError: stopping only thread
|
4186
|
+
*/
|
4187
|
+
|
3706
4188
|
/*
|
3707
4189
|
* +Thread+ encapsulates the behavior of a thread of
|
3708
4190
|
* execution, including the main thread of the Ruby script.
|
@@ -3759,6 +4241,7 @@ Init_Thread(void)
|
|
3759
4241
|
rb_define_method(rb_cThread, "abort_on_exception=", rb_thread_abort_exc_set, 1);
|
3760
4242
|
rb_define_method(rb_cThread, "safe_level", rb_thread_safe_level, 0);
|
3761
4243
|
rb_define_method(rb_cThread, "group", rb_thread_group, 0);
|
4244
|
+
rb_define_method(rb_cThread, "backtrace", rb_thread_backtrace_m, 0);
|
3762
4245
|
|
3763
4246
|
rb_define_method(rb_cThread, "inspect", rb_thread_inspect, 0);
|
3764
4247
|
|
@@ -3789,9 +4272,10 @@ Init_Thread(void)
|
|
3789
4272
|
|
3790
4273
|
/* trace */
|
3791
4274
|
rb_define_global_function("set_trace_func", set_trace_func, 1);
|
4275
|
+
rb_define_method(rb_cThread, "set_trace_func", thread_set_trace_func_m, 1);
|
4276
|
+
rb_define_method(rb_cThread, "add_trace_func", thread_add_trace_func_m, 1);
|
3792
4277
|
|
3793
4278
|
/* init thread core */
|
3794
|
-
Init_native_thread();
|
3795
4279
|
{
|
3796
4280
|
/* main thread setting */
|
3797
4281
|
{
|
@@ -3814,7 +4298,7 @@ ruby_native_thread_p(void)
|
|
3814
4298
|
{
|
3815
4299
|
rb_thread_t *th = ruby_thread_from_native();
|
3816
4300
|
|
3817
|
-
return th
|
4301
|
+
return th != 0;
|
3818
4302
|
}
|
3819
4303
|
|
3820
4304
|
static int
|
@@ -3882,7 +4366,8 @@ rb_check_deadlock(rb_vm_t *vm)
|
|
3882
4366
|
printf("%d %d %p %p\n", vm->living_threads->num_entries, vm->sleeper, GET_THREAD(), vm->main_thread);
|
3883
4367
|
st_foreach(vm->living_threads, debug_i, (st_data_t)0);
|
3884
4368
|
#endif
|
3885
|
-
|
4369
|
+
vm->sleeper--;
|
4370
|
+
rb_threadptr_raise(vm->main_thread, 2, argv);
|
3886
4371
|
}
|
3887
4372
|
}
|
3888
4373
|
|