rubyjs / libv8-node

Package libv8 from Node
MIT License
14 stars 27 forks source link

Release 18.19.0.0 #50

Closed CvX closed 8 months ago

CvX commented 9 months ago

Could we get the latest 18.x (18.19.0) released? Some projects are stuck with 18 and could use the most recent fixes to that version.

(the tests pass locally; update: …and on CI)

lloeki commented 8 months ago

I'll make and push builds to rubygems this weekend.

lloeki commented 8 months ago

Huh I got this one when building on arm64-darwin :/

In file included from ../deps/v8/src/compiler/backend/frame-elider.cc:5:
In file included from ../deps/v8/src/compiler/backend/frame-elider.h:8:
In file included from ../deps/v8/src/compiler/backend/instruction.h:13:
In file included from ../deps/v8/src/codegen/external-reference.h:9:
In file included from ../deps/v8/src/runtime/runtime.h:11:
../deps/v8/src/base/bit-field.h:43:29: error: integer value 31 is outside the valid range of values [0, 15] for this enumeration type [-Wenum-constexpr-conversion]
  static constexpr T kMax = static_cast<T>(kNumValues - 1);
                            ^
1 error generated.
make[1]: *** [/Users/loic.nageleisen/Source/github.com/rubyjs/libv8-node/src/node-v18.19.0/out/Release/obj.target/v8_compiler/deps/v8/src/compiler/backend/frame-elider.o] Error 1
make[1]: *** Waiting for unfinished jobs....
In file included from ../deps/v8/src/compiler/backend/gap-resolver.cc:5:
In file included from ../deps/v8/src/compiler/backend/gap-resolver.h:8:
In file included from ../deps/v8/src/compiler/backend/instruction.h:13:
In file included from ../deps/v8/src/codegen/external-reference.h:9:
In file included from ../deps/v8/src/runtime/runtime.h:11:
../deps/v8/src/base/bit-field.h:43:29: error: integer value 31 is outside the valid range of values [0, 15] for this enumeration type [-Wenum-constexpr-conversion]
  static constexpr T kMax = static_cast<T>(kNumValues - 1);
                            ^
1 error generated.
make[1]: *** [/Users/loic.nageleisen/Source/github.com/rubyjs/libv8-node/src/node-v18.19.0/out/Release/obj.target/v8_compiler/deps/v8/src/compiler/backend/gap-resolver.o] Error 1
In file included from ../deps/v8/src/compiler/backend/instruction-scheduler.cc:5:
In file included from ../deps/v8/src/compiler/backend/instruction-scheduler.h:10:
In file included from ../deps/v8/src/compiler/backend/instruction.h:13:
In file included from ../deps/v8/src/codegen/external-reference.h:9:
In file included from ../deps/v8/src/runtime/runtime.h:11:
../deps/v8/src/base/bit-field.h:43:29: error: integer value 31 is outside the valid range of values [0, 15] for this enumeration type [-Wenum-constexpr-conversion]
  static constexpr T kMax = static_cast<T>(kNumValues - 1);
                            ^
1 error generated.
make[1]: *** [/Users/loic.nageleisen/Source/github.com/rubyjs/libv8-node/src/node-v18.19.0/out/Release/obj.target/v8_compiler/deps/v8/src/compiler/backend/instruction-scheduler.o] Error 1
In file included from ../deps/v8/src/compiler/backend/code-generator.cc:5:
In file included from ../deps/v8/src/compiler/backend/code-generator.h:11:
In file included from ../deps/v8/src/codegen/macro-assembler.h:8:
In file included from ../deps/v8/src/codegen/turbo-assembler.h:12:
In file included from ../deps/v8/src/codegen/assembler-arch.h:8:
In file included from ../deps/v8/src/codegen/assembler.h:46:
In file included from ../deps/v8/src/codegen/external-reference.h:9:
In file included from ../deps/v8/src/runtime/runtime.h:11:
../deps/v8/src/base/bit-field.h:43:29: error: integer value 31 is outside the valid range of values [0, 15] for this enumeration type [-Wenum-constexpr-conversion]
  static constexpr T kMax = static_cast<T>(kNumValues - 1);
                            ^
1 error generated.
make[1]: *** [/Users/loic.nageleisen/Source/github.com/rubyjs/libv8-node/src/node-v18.19.0/out/Release/obj.target/v8_compiler/deps/v8/src/compiler/backend/code-generator.o] Error 1
In file included from ../deps/v8/src/compiler/backend/instruction-selector.cc:5:
In file included from ../deps/v8/src/compiler/backend/instruction-selector.h:12:
In file included from ../deps/v8/src/compiler/backend/instruction-scheduler.h:10:
In file included from ../deps/v8/src/compiler/backend/instruction.h:13:
In file included from ../deps/v8/src/codegen/external-reference.h:9:
In file included from ../deps/v8/src/runtime/runtime.h:11:
../deps/v8/src/base/bit-field.h:43:29: error: integer value 31 is outside the valid range of values [0, 15] for this enumeration type [-Wenum-constexpr-conversion]
  static constexpr T kMax = static_cast<T>(kNumValues - 1);
                            ^
1 error generated.
make[1]: *** [/Users/loic.nageleisen/Source/github.com/rubyjs/libv8-node/src/node-v18.19.0/out/Release/obj.target/v8_compiler/deps/v8/src/compiler/backend/instruction-selector.o] Error 1
lloeki commented 8 months ago

clang that failed:

Apple clang version 15.0.0 (clang-1500.3.9.4)
Target: arm64-apple-darwin23.4.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

Strangely it did not fail on this one:

Apple clang version 15.0.0 (clang-1500.3.9.4)
Target: x86_64-apple-darwin23.4.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

Found this: https://github.com/llvm/llvm-project/issues/59036

Worked around in ea0c4d6.

lloeki commented 8 months ago

Pushed gems:

libv8-node-18.19.0.0-aarch64-linux-musl.gem
libv8-node-18.19.0.0-aarch64-linux.gem
libv8-node-18.19.0.0-arm64-darwin.gem
libv8-node-18.19.0.0-x86_64-darwin.gem
libv8-node-18.19.0.0-x86_64-linux-musl.gem
libv8-node-18.19.0.0-x86_64-linux.gem
libv8-node-18.19.0.0.gem
SamSaffron commented 8 months ago

thanks heaps... any chance we can bump this up to 18.19.1 (looks like that is the latest for hydrogen)

20.11.1 would be nice as well but will probably require more work.

lloeki commented 8 months ago

18.19.1: I'll do that.

20.11.1: yeah there's still the runtime crash, which is much more involved.

Also the above build error I've seen and worked around seems to be an upstream bug (code is ill-formed and undefined behaviour) but saw no mention of it there. I'll report it just in case.

I was thinking of adding automated PRs from crawling Node releases. Benefits would be:

Next step would be:

Ideally we'd just have to vet the updates and releases would happen ~automatically.

SamSaffron commented 8 months ago

sounds great, just pushed mini racer 0.9.0 for this and will follow with 0.9.1 post update

lloeki commented 8 months ago

Added 18.19.1 in https://github.com/rubyjs/libv8-node/commit/5839e9a8f1d3f98f986b3b2a44e6478c9ca97d53

Building...

lloeki commented 8 months ago

Pushed gems:

libv8-node-18.19.1.0-aarch64-linux-musl.gem
libv8-node-18.19.1.0-aarch64-linux.gem
libv8-node-18.19.1.0-arm64-darwin.gem
libv8-node-18.19.1.0-x86_64-darwin.gem
libv8-node-18.19.1.0-x86_64-linux-musl.gem
libv8-node-18.19.1.0-x86_64-linux.gem
libv8-node-18.19.1.0.gem