1
0
Fork 0
mirror of https://github.com/rubyjs/mini_racer synced 2023-03-27 23:21:28 -04:00
mini_racer/CHANGELOG

230 lines
4.8 KiB
Text
Raw Normal View History

- Unreleased
- FIX: on downgrade mkmf was picking the wrong version of libv8, this fix will correct future issues
- 23-07-2020
- 0.3.1
- FIX: specify that libv8 must be larger than 8.4.255 but smaller than 8.5, this avoids issues going forward
2020-07-21 19:07:00 -04:00
- 22-07-2020
- 0.3.0
- FEATURE: upgraded to libv8 version 8.4.255.0
2020-06-29 00:51:37 -04:00
- 29-06-2020
- 0.2.15
- FEATURE: basic wasm support via pump_message_loop
- 15-05-2020
- 0.2.14
- FIX: ensure_gc_after_idle should take in milliseconds like the rest of the APIs not seconds
- FEATURE: strict params on MiniRacer::Context.new
- 15-05-2020
- 0.2.13
- FIX: edge case around ensure_gc_after_idle possibly firing when context is not idle
- 15-05-2020
- 0.2.12
- FEATURE: isolate.low_memory_notification which can force a full GC
- FEATURE: MiniRacer::Context.new(ensure_gc_after_idle: 2) - to force full GC 2 seconds after context is idle, this allows you to conserve memory on isolates
2020-05-14 03:24:02 -04:00
- 14-05-2020
- 0.2.11
- FIX: dumping heap snapshots was not flushing the file leading to corrupt snapshots
- FIX: a use-after-free shutdown crash
2020-04-21 22:10:15 -04:00
- 0.2.10
- 22-04-2020
- FEATURE: memory softlimit support for nogvl_context_call
2020-01-08 20:25:02 -05:00
- 0.2.9
- 09-01-2020
- FIX: correct segfault when JS returns a Symbol and properly cast to ruby symbol
- 0.2.8
- 11-11-2019
- FIX: ensure thread live cycle is properly accounter for following file descriptor fix
- 0.2.7
- 11-11-2019
- FIX: release the file descriptor for timeout pipe earlier (this avoids holding too many files open in Ruby 2.7)
2019-05-14 03:57:41 -04:00
- 14-05-2019
- 0.2.6
- FEATURE: add support for write_heap_snapshot which helps you analyze memory
- 25-04-2019
- 0.2.5
Introduce compatibility with V8 7.3 (#138) * Mechanical removal of use of non-maybe String::ToObject() Due to the non-maybe version of String::ToObject() being deprecated and altogether removed from V8 [1] it is necessary to migrate to using the maybe version. This commit is a mechanical change that uses the context at hand when calling String::ToObject() to pass it to it. The resulting MaybeLocal is then unwrapped with MaybeLocal::ToLocalChecked() as I consider the verifications performed on the String instances to be sufficient to ensure no crashes. [1] https://chromium-review.googlesource.com/c/v8/v8/+/1172350/ https://chromium.googlesource.com/v8/v8/+/c8376b0069ebe16c67acf90c3cda3457ddccba4f * Mechanical removal of use of non-maybe Local<T>::ToString() Due to the non-maybe version of Local<T>::ToString() being deprecated and altogether removed from V8 [1] it is necessary to migrate to using the maybe version. This commit is a mechanical change that uses the context at hand when calling Local<T>::ToString() to pass it to it. The resulting MaybeLocal is then unwrapped with MaybeLocal::ToLocalChecked() as I consider the context of the uses to be sufficiently safe. [1] https://chromium-review.googlesource.com/c/v8/v8/+/1172350/ https://chromium.googlesource.com/v8/v8/+/c8376b0069ebe16c67acf90c3cda3457ddccba4f * Mechanical removal of the use of non-maybe Value::Int32Value() and NumberValue() Due to the non-maybe version of Value::Int32Value() and Value::NumberValue() being deprecated and altogether removed from V8 [1] it is necessary to migrate to using the maybe versions. This commit is a mechanical change that uses the context at hand when calling Value::Int32Value() or Value::NumberValue() to pass it to the respective function. The resulting Maybe is then unwrapped with Maybe::ToChecked() as I consider the verifications performed on the Value instances to be sufficient to ensure no crashes. [1] https://chromium-review.googlesource.com/c/v8/v8/+/1172350/ https://chromium.googlesource.com/v8/v8/+/c8376b0069ebe16c67acf90c3cda3457ddccba4f * Mechanical removal of use of String::Utf8Length() without isolate Due to the version of String::Utf8Length() with no paramters being deprecated and altogether removed from V8 [1] it is necessary to migrate to using the version that accepts isolate as a parameter. This commit is a mechanical change that uses the isolate available in the context where String::Utf8Length() is called. This is a breaking change imposing use of V8 6.9.411 or up. [1] https://chromium-review.googlesource.com/c/v8/v8/+/1124724/ https://chromium.googlesource.com/v8/v8/+/3dd5c6fe38355b8323597341409b37f931de5a85 * Remove the uses of deprecated snapshot-related functions Due to V8::CreateSnapshotDataBlob() and V8::WarmUpSnapshotDataBlob() being deprecated and altogether removed from V8 [1] it is necessary to migrate to using local implementations of them. This commit introduces create_snapshot_data_blob(), warm_up_snapshot_data_blob() and the helper function run_extra_code(). Their implementations have been copied over from [2]. [1] https://github.com/v8/v8/commit/b3738e658345adabaa958b9f9a94ca01fc87d5e4 https://chromium-review.googlesource.com/c/v8/v8/+/1019442/ [2] https://github.com/v8/v8/blob/7.3.492.27/test/cctest/test-serialize.cc https://chromium.googlesource.com/v8/v8.git/+/30602560a8fdb0bbfb50d70be867f32b72758a2f/test/cctest/test-serialize.cc * Non-trivial removal of uses of non-maybe Date::New() Due to the non-maybe version of Date::New() being deprecated and altogether removed from V8 [1] it is necessary to migrate to using the maybe version. This commit introduces a context argument to the convert_ruby_to_v8() function so it can be passed to the maybe version of Date::New(). This imposed changes throughout the code base so that the context can be passed together with the isolate to convert_ruby_to_v8(). [1] https://chromium-review.googlesource.com/c/v8/v8/+/1357056 https://github.com/v8/v8/commit/e84b92d7658dee79c34304a67c4fb84c93cd071b * Non-trivial removal of use of non-maybe Local<T>::ToString() This commit builds upon fe62f7935582bd889742ec77ee2289a8f6cb16e6. The use of Local<T>::ToString() in convert_result_to_ruby() did not have an immediately available context to use. This commit unwraps the context from p_ctx and passes it to the function and then unwraps the MaybeLocal result with MaybeLocal::ToLocalChecked() assuming the verification beforehand is sufficient to ensure there won't be any crashes. * Update the changelog * Replace placeholder in LICENSE.txt
2019-04-24 19:39:56 -04:00
- FIX: Compatiblity fixes for V8 7 and above @ignisf
- FIX: Memory leak in gc_callback @messense
- IMPROVEMENT: Added example of sourcemap support @ianks
- URGENT: you will need this release for latest version of libv8 to work
Introduce compatibility with V8 7.3 (#138) * Mechanical removal of use of non-maybe String::ToObject() Due to the non-maybe version of String::ToObject() being deprecated and altogether removed from V8 [1] it is necessary to migrate to using the maybe version. This commit is a mechanical change that uses the context at hand when calling String::ToObject() to pass it to it. The resulting MaybeLocal is then unwrapped with MaybeLocal::ToLocalChecked() as I consider the verifications performed on the String instances to be sufficient to ensure no crashes. [1] https://chromium-review.googlesource.com/c/v8/v8/+/1172350/ https://chromium.googlesource.com/v8/v8/+/c8376b0069ebe16c67acf90c3cda3457ddccba4f * Mechanical removal of use of non-maybe Local<T>::ToString() Due to the non-maybe version of Local<T>::ToString() being deprecated and altogether removed from V8 [1] it is necessary to migrate to using the maybe version. This commit is a mechanical change that uses the context at hand when calling Local<T>::ToString() to pass it to it. The resulting MaybeLocal is then unwrapped with MaybeLocal::ToLocalChecked() as I consider the context of the uses to be sufficiently safe. [1] https://chromium-review.googlesource.com/c/v8/v8/+/1172350/ https://chromium.googlesource.com/v8/v8/+/c8376b0069ebe16c67acf90c3cda3457ddccba4f * Mechanical removal of the use of non-maybe Value::Int32Value() and NumberValue() Due to the non-maybe version of Value::Int32Value() and Value::NumberValue() being deprecated and altogether removed from V8 [1] it is necessary to migrate to using the maybe versions. This commit is a mechanical change that uses the context at hand when calling Value::Int32Value() or Value::NumberValue() to pass it to the respective function. The resulting Maybe is then unwrapped with Maybe::ToChecked() as I consider the verifications performed on the Value instances to be sufficient to ensure no crashes. [1] https://chromium-review.googlesource.com/c/v8/v8/+/1172350/ https://chromium.googlesource.com/v8/v8/+/c8376b0069ebe16c67acf90c3cda3457ddccba4f * Mechanical removal of use of String::Utf8Length() without isolate Due to the version of String::Utf8Length() with no paramters being deprecated and altogether removed from V8 [1] it is necessary to migrate to using the version that accepts isolate as a parameter. This commit is a mechanical change that uses the isolate available in the context where String::Utf8Length() is called. This is a breaking change imposing use of V8 6.9.411 or up. [1] https://chromium-review.googlesource.com/c/v8/v8/+/1124724/ https://chromium.googlesource.com/v8/v8/+/3dd5c6fe38355b8323597341409b37f931de5a85 * Remove the uses of deprecated snapshot-related functions Due to V8::CreateSnapshotDataBlob() and V8::WarmUpSnapshotDataBlob() being deprecated and altogether removed from V8 [1] it is necessary to migrate to using local implementations of them. This commit introduces create_snapshot_data_blob(), warm_up_snapshot_data_blob() and the helper function run_extra_code(). Their implementations have been copied over from [2]. [1] https://github.com/v8/v8/commit/b3738e658345adabaa958b9f9a94ca01fc87d5e4 https://chromium-review.googlesource.com/c/v8/v8/+/1019442/ [2] https://github.com/v8/v8/blob/7.3.492.27/test/cctest/test-serialize.cc https://chromium.googlesource.com/v8/v8.git/+/30602560a8fdb0bbfb50d70be867f32b72758a2f/test/cctest/test-serialize.cc * Non-trivial removal of uses of non-maybe Date::New() Due to the non-maybe version of Date::New() being deprecated and altogether removed from V8 [1] it is necessary to migrate to using the maybe version. This commit introduces a context argument to the convert_ruby_to_v8() function so it can be passed to the maybe version of Date::New(). This imposed changes throughout the code base so that the context can be passed together with the isolate to convert_ruby_to_v8(). [1] https://chromium-review.googlesource.com/c/v8/v8/+/1357056 https://github.com/v8/v8/commit/e84b92d7658dee79c34304a67c4fb84c93cd071b * Non-trivial removal of use of non-maybe Local<T>::ToString() This commit builds upon fe62f7935582bd889742ec77ee2289a8f6cb16e6. The use of Local<T>::ToString() in convert_result_to_ruby() did not have an immediately available context to use. This commit unwraps the context from p_ctx and passes it to the function and then unwraps the MaybeLocal result with MaybeLocal::ToLocalChecked() assuming the verification beforehand is sufficient to ensure there won't be any crashes. * Update the changelog * Replace placeholder in LICENSE.txt
2019-04-24 19:39:56 -04:00
2018-11-01 20:26:36 -04:00
- 02-11-2018
- 0.2.4
- FIX: deadlock releasing context when shared isolates are used
- FEATURE: include js backtrace when snapshots do not compile
2018-09-27 21:38:30 -04:00
- 28-09-2018
2018-09-27 21:38:30 -04:00
- 0.2.3
- Drop all conditional logic from Mini Racer compilation for clang, always
rely on MacOS being High Sierra or up
2018-09-25 19:37:14 -04:00
- 26-09-2018
- 0.2.2
- WORKAROUND: RUBY_PLATFORM is hardcoded on Ruby compile and can not be
trusted for feature detection, use a different technique when checking for
macOS Mojave
- 25-09-2018
2018-09-24 19:49:42 -04:00
- 0.2.1
- FEATURE: Mojave macOS support
2018-09-25 19:37:14 -04:00
- 06-07-2018
2018-07-05 20:49:23 -04:00
- 0.2.0
- FEATURE: context#call to allow for cheaper invocation of functions
- FIX: rare memory leak when terminating a long running attached function
- FIX: rare segfault when terminating a long running attached function
- FIX: Reimplement Isolate#idle_notification using idle_notification_deadline, API remains the same @ignisf
- Account for changes in the upstream V8 API @ignisf
2018-07-05 20:49:23 -04:00
- Support for libv8 6.7
2017-12-27 16:52:56 -05:00
23-08-2017
- 0.1.15
- bump dependency of libv8 to 6.3
2017-08-23 12:17:33 -04:00
23-08-2017
- 0.1.14
- libv8 erronuously bumped to beta, reverted change
23-08-2017
2017-08-23 12:17:33 -04:00
- 0.1.13
- Fix: amend array buffer allocator to use v8 6.0 compatible allocator @ignisf
2017-07-18 10:54:23 -04:00
18-07-2017
2017-07-26 10:53:26 -04:00
- 0.1.12
- Feature: upgrade libv8 to 5.9
- Fix: warning when runnin with ruby warnings enabled (missed @disposed initialize)
18-07-2017
2017-07-18 10:54:23 -04:00
- 0.1.11
- Feature: upgrade libv8 to 5.7
13-07-2017
- 0.1.10
- Fix leak: memory leak when disposing a context (20 bytes per context)
- Feature: added #heap_stats so you can get visibility from context to actual memory usage of isolate
- Feature: added #dispose so you reclaim all v8 memory right away as opposed to waiting for GC
- Feature: you can now specify filename in an eval eg: eval('a = 1', filename: 'my_awesome.js')
09-03-2017
- 0.1.9
- Perf: speed up ruby/node boundary performance when moving large objects
2017-02-06 09:10:24 -05:00
06-02-2017
- 0.1.8
2017-02-04 17:04:13 -05:00
- Fix: Include math.h to fix use of undeclared identifier floor with rbx. See #51
02-11-2016
- 0.1.7
- Fix: if for some reason an isolate was forked don't free it and raise a warning instead to avoid hanging process
25-10-2016
- 0.1.6
- Fix: timeout behavior was incorrect, in some cases stop could be called on already stopped contexts
2016-10-10 00:00:14 -04:00
10-10-2016
- 0.1.5
- Support for snapshots, shared isolates, runtime flags thanks to @wk8
- Fix timeout behavior when it occurs in an attached Ruby method
2016-05-19 08:15:54 -04:00
19-05-2016
2016-06-14 21:23:41 -04:00
- 0.1.4
- Set upper bound for libv8 inclusion @ignisf
- Support conversion of Date, Time and DateTime from Ruby to JS @seanmakesgames
- Support conversion of large numbers back from Ruby to JS @seanmakesgames
2016-05-19 08:15:54 -04:00
- 0.1.3
- Support more conversions from Ruby back to JS (Hash, Symbol, Array)
- Support attaching nested objects
2016-05-16 20:49:48 -04:00
17-05-2016
2016-05-19 08:15:54 -04:00
- 0.1.2
2016-05-16 20:49:48 -04:00
- Gemspec specifies minimal version of Ruby (2.0)
- Implement #load on Context to load files
2016-05-16 17:31:41 -04:00
17-05-2016
2016-05-19 08:15:54 -04:00
- 0.1.1
2016-05-16 17:31:41 -04:00
- Added unblock function so SIGINT does not lead to a crash
2016-05-14 03:11:40 -04:00
14-05-2016
2016-05-19 08:15:54 -04:00
- 0.1.1.beta.1
2016-05-14 03:11:40 -04:00
- First release