{"push_id":552827416,"size":55,"distinct_size":55,"ref":"refs/heads/master","head":"1e31288215bd479581961e28cf46e5305cb76b59","before":"d537cabe3b7c1b3d2873f66fb7cf886f11524273","commits":[{"sha":"65f9eb8a87f6df770c71dde58179bc919435f6c8","author":{"email":"fedbdd7b8285b2552992c73419cdc4a8b6e850fb@gmail.com","name":"Benoit Daloze"},"message":"[Truffle] Do an explicit SafepointManager.poll() when interrupted.","distinct":true,"url":"https://api.github.com/repos/OracleLabs/JRubyTruffle/commits/65f9eb8a87f6df770c71dde58179bc919435f6c8"},{"sha":"eb7bb6d8bbe51c4c36d2fac400271bbfc7ba8a60","author":{"email":"fedbdd7b8285b2552992c73419cdc4a8b6e850fb@gmail.com","name":"Benoit Daloze"},"message":"[Truffle] Reduce duplication in Kernel#exit.","distinct":true,"url":"https://api.github.com/repos/OracleLabs/JRubyTruffle/commits/eb7bb6d8bbe51c4c36d2fac400271bbfc7ba8a60"},{"sha":"a61ea6d5d209401b07f29f921c8189dd528142a6","author":{"email":"fedbdd7b8285b2552992c73419cdc4a8b6e850fb@gmail.com","name":"Benoit Daloze"},"message":"[Truffle] Explicitly mentions the Specialization throws an ArithmeticException.\n\n* Avoids a Truffle DSL processor bug.","distinct":true,"url":"https://api.github.com/repos/OracleLabs/JRubyTruffle/commits/a61ea6d5d209401b07f29f921c8189dd528142a6"},{"sha":"abf1007e62355eade2e4e9bac533967ae31c1150","author":{"email":"fedbdd7b8285b2552992c73419cdc4a8b6e850fb@gmail.com","name":"Benoit Daloze"},"message":"[Truffle] Add two abstractions in ThreadManager to run interruptible methods.\n\n* Most cases will want to repeat the action if it was interrupted.","distinct":true,"url":"https://api.github.com/repos/OracleLabs/JRubyTruffle/commits/abf1007e62355eade2e4e9bac533967ae31c1150"},{"sha":"46a205a6f8fff545dc2bb92012645425440f5df8","author":{"email":"fedbdd7b8285b2552992c73419cdc4a8b6e850fb@gmail.com","name":"Benoit Daloze"},"message":"[Truffle] Release GIL in Kernel#gets and use a BufferedReader.\n\n* Simpler to use and same functionality.\n* STDIN can only be interrupted after pressing RETURN in normal Java,\n  and there is no reasonable/easy way to make a SelectableChannel for STDIN (JRuby uses FFI).","distinct":true,"url":"https://api.github.com/repos/OracleLabs/JRubyTruffle/commits/46a205a6f8fff545dc2bb92012645425440f5df8"},{"sha":"77b60d027cf15e3b4d47cc79c7fb792d7f3d4e95","author":{"email":"fedbdd7b8285b2552992c73419cdc4a8b6e850fb@gmail.com","name":"Benoit Daloze"},"message":"[Truffle] Use RubyThread.interrupt().","distinct":true,"url":"https://api.github.com/repos/OracleLabs/JRubyTruffle/commits/77b60d027cf15e3b4d47cc79c7fb792d7f3d4e95"},{"sha":"472446a86abb2af65e3611206d7cd9abbd8906b1","author":{"email":"fedbdd7b8285b2552992c73419cdc4a8b6e850fb@gmail.com","name":"Benoit Daloze"},"message":"[Truffle] Do nothing if there is no finalizer thread as it means there is nothing to finalize.","distinct":true,"url":"https://api.github.com/repos/OracleLabs/JRubyTruffle/commits/472446a86abb2af65e3611206d7cd9abbd8906b1"},{"sha":"26d49234616eddb7f82d8f6a9345b8f39c1df1ec","author":{"email":"fedbdd7b8285b2552992c73419cdc4a8b6e850fb@gmail.com","name":"Benoit Daloze"},"message":"[Truffle] Reuse behavior of RubyThread to join the finalizer thread.\n\n* This notably ensures the thread actually finishes by calling await() until uninterrupted.\n  (the code before did only try once)","distinct":true,"url":"https://api.github.com/repos/OracleLabs/JRubyTruffle/commits/26d49234616eddb7f82d8f6a9345b8f39c1df1ec"},{"sha":"05f426d11a694f8e6dd5e68232da67afd9476bb5","author":{"email":"fedbdd7b8285b2552992c73419cdc4a8b6e850fb@gmail.com","name":"Benoit Daloze"},"message":"[Truffle] Fix return value of ObjectSpace.define_finalizer.\n\n* It returns safe-level, which is always 0 at us.","distinct":true,"url":"https://api.github.com/repos/OracleLabs/JRubyTruffle/commits/05f426d11a694f8e6dd5e68232da67afd9476bb5"},{"sha":"f0267c474c5815c742d1cbc3c90570553c94682d","author":{"email":"fedbdd7b8285b2552992c73419cdc4a8b6e850fb@gmail.com","name":"Benoit Daloze"},"message":"[Truffle] Also check the stop flag in the loop condition.\n\n* So only the current finalization may be executed before breaking out of the loop.","distinct":true,"url":"https://api.github.com/repos/OracleLabs/JRubyTruffle/commits/f0267c474c5815c742d1cbc3c90570553c94682d"},{"sha":"3c9a4000ff094770ce5cf8f0360502e2ea90675a","author":{"email":"fedbdd7b8285b2552992c73419cdc4a8b6e850fb@gmail.com","name":"Benoit Daloze"},"message":"[Truffle] Avoid deadlocks between the safepoint and the global locks.\n\n* Wait for current safepoint actions to finish before\n  incrementing the thread count and taking the global lock.\n* Keep polling for safepoints until there is no more pauseAllThreadsAndExecute*\n  request before decrementing the thread count.","distinct":true,"url":"https://api.github.com/repos/OracleLabs/JRubyTruffle/commits/3c9a4000ff094770ce5cf8f0360502e2ea90675a"},{"sha":"e525ab3903a10a6c6942c811fe02ffcd6f128e77","author":{"email":"fedbdd7b8285b2552992c73419cdc4a8b6e850fb@gmail.com","name":"Benoit Daloze"},"message":"[Truffle] Set RubyThreads as daemon threads (except main).\n\n* Otherwise main could finish before others and deadlock.\n* Alternative is to explictly kill these other threads in the main thread when exiting.","distinct":true,"url":"https://api.github.com/repos/OracleLabs/JRubyTruffle/commits/e525ab3903a10a6c6942c811fe02ffcd6f128e77"},{"sha":"d99dd760c367b13bcd35129f1db5b0533a088643","author":{"email":"fedbdd7b8285b2552992c73419cdc4a8b6e850fb@gmail.com","name":"Benoit Daloze"},"message":"[Truffle] Fix ordering of register/enterThread and unregister/leaveThread.\n\n* Register first and unregister last to not miss possible\n  interrupts by ThreadManager.interruptAllThreads().","distinct":true,"url":"https://api.github.com/repos/OracleLabs/JRubyTruffle/commits/d99dd760c367b13bcd35129f1db5b0533a088643"},{"sha":"e2794ff45550de9468dffda2abf2f20e83e18eca","author":{"email":"fedbdd7b8285b2552992c73419cdc4a8b6e850fb@gmail.com","name":"Benoit Daloze"},"message":"[Truffle] Wait for assumption to be renewed before allowing Ruby threads to run action.\n\n* Otherwise they could recurse in poll() and assumptionInvalidated() which would deadlock.\n* Alternative: use a condition to signal assumption is renewed.","distinct":true,"url":"https://api.github.com/repos/OracleLabs/JRubyTruffle/commits/e2794ff45550de9468dffda2abf2f20e83e18eca"},{"sha":"2574ca20897d6eb94548c9af58ea7df0fd83c71a","author":{"email":"fedbdd7b8285b2552992c73419cdc4a8b6e850fb@gmail.com","name":"Benoit Daloze"},"message":"[Truffle] Visit the current RubyThread.","distinct":true,"url":"https://api.github.com/repos/OracleLabs/JRubyTruffle/commits/2574ca20897d6eb94548c9af58ea7df0fd83c71a"},{"sha":"516371e855670ee80c4a855c8206a9c8b2dd7e18","author":{"email":"fedbdd7b8285b2552992c73419cdc4a8b6e850fb@gmail.com","name":"Benoit Daloze"},"message":"[Truffle] Fix deadlock due to retaining the global lock too long.\n\n* Release it when we are finished executing the Ruby code\n  and re-acquire *only* if the assumption is invalidated.","distinct":true,"url":"https://api.github.com/repos/OracleLabs/JRubyTruffle/commits/516371e855670ee80c4a855c8206a9c8b2dd7e18"},{"sha":"af87e3a0684e572f112f38650d136d01d3adb086","author":{"email":"fedbdd7b8285b2552992c73419cdc4a8b6e850fb@gmail.com","name":"Benoit Daloze"},"message":"[Truffle] Use an object_id primitive for BasicObject#__id__ and Kernel#object_id.","distinct":true,"url":"https://api.github.com/repos/OracleLabs/JRubyTruffle/commits/af87e3a0684e572f112f38650d136d01d3adb086"},{"sha":"ec7c8d48822966379513bff6d1839ae1f2274651","author":{"email":"fedbdd7b8285b2552992c73419cdc4a8b6e850fb@gmail.com","name":"Benoit Daloze"},"message":"[Truffle] Alias rather than subclass for Kernel#send using BasicObject#__send__.","distinct":true,"url":"https://api.github.com/repos/OracleLabs/JRubyTruffle/commits/ec7c8d48822966379513bff6d1839ae1f2274651"},{"sha":"20ca9a8858509d7ffdd02835aab5de7ad0210bd8","author":{"email":"fedbdd7b8285b2552992c73419cdc4a8b6e850fb@gmail.com","name":"Benoit Daloze"},"message":"[Truffle] Alias rather than subclass for Kernel#eql? using BasicObject#equal?.","distinct":true,"url":"https://api.github.com/repos/OracleLabs/JRubyTruffle/commits/20ca9a8858509d7ffdd02835aab5de7ad0210bd8"},{"sha":"07c377ccaa03cd94ad07aac8ee4a2e1b4a42f81a","author":{"email":"fedbdd7b8285b2552992c73419cdc4a8b6e850fb@gmail.com","name":"Benoit Daloze"},"message":"[Truffle] Fix boot order, we need Kernel#eql? for core/config.","distinct":true,"url":"https://api.github.com/repos/OracleLabs/JRubyTruffle/commits/07c377ccaa03cd94ad07aac8ee4a2e1b4a42f81a"}]}