mini_racer 0.6.3 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,124 +0,0 @@
1
- name: Tests
2
-
3
- on:
4
- pull_request:
5
- push:
6
- branches:
7
- - master
8
-
9
- jobs:
10
- test-truffleruby:
11
- strategy:
12
- fail-fast: false
13
- matrix:
14
- os:
15
- - "macos-11"
16
- - "macos-12"
17
- - "ubuntu-20.04"
18
- ruby:
19
- - "truffleruby+graalvm-head"
20
-
21
- name: ${{ matrix.os }} - ${{ matrix.ruby }}
22
- runs-on: ${{ matrix.os }}
23
-
24
- env:
25
- TRUFFLERUBYOPT: "--jvm --polyglot"
26
-
27
- steps:
28
- - uses: actions/checkout@v3
29
- - uses: ruby/setup-ruby@v1
30
- with:
31
- ruby-version: ${{ matrix.ruby }}
32
- bundler-cache: true
33
- - name: Install GraalVM JS component
34
- run: gu install js
35
- - name: Compile
36
- run: bundle exec rake compile
37
- - name: Test
38
- run: bundle exec rake test
39
-
40
- test-darwin:
41
- strategy:
42
- fail-fast: false
43
- matrix:
44
- os:
45
- - "macos-11"
46
- - "macos-12"
47
- ruby:
48
- - "ruby-2.6"
49
- - "ruby-2.7"
50
- - "ruby-3.0"
51
- - "ruby-3.1"
52
-
53
- name: ${{ matrix.os }} - ${{ matrix.ruby }}
54
- runs-on: ${{ matrix.os }}
55
-
56
- steps:
57
- - uses: actions/checkout@v3
58
- - uses: ruby/setup-ruby@v1
59
- with:
60
- ruby-version: ${{ matrix.ruby }}
61
- bundler-cache: true
62
- - name: Compile
63
- run: bundle exec rake compile
64
- - name: Test
65
- run: bundle exec rake test
66
-
67
- test-linux:
68
- strategy:
69
- fail-fast: false
70
- matrix:
71
- ruby:
72
- - "2.6"
73
- - "2.7"
74
- - "3.0"
75
- - "3.1"
76
- platform:
77
- - "amd64"
78
- - "arm64"
79
- libc:
80
- - "gnu"
81
- - "musl"
82
- exclude:
83
- # there's no libv8-node (v16) for aarch64-linux-musl at the moment
84
- - platform: "arm64"
85
- libc: "musl"
86
-
87
- name: linux-${{ matrix.platform }} - ruby-${{ matrix.ruby }} - ${{ matrix.libc }}
88
- runs-on: ubuntu-20.04
89
-
90
- steps:
91
- - name: Enable ${{ matrix.platform }} platform
92
- id: qemu
93
- if: ${{ matrix.platform != 'amd64' }}
94
- run: |
95
- docker run --privileged --rm tonistiigi/binfmt:latest --install ${{ matrix.platform }} | tee platforms.json
96
- echo "::set-output name=platforms::$(cat platforms.json)"
97
- - name: Start container
98
- id: container
99
- run: |
100
- case ${{ matrix.libc }} in
101
- gnu)
102
- echo 'ruby:${{ matrix.ruby }}'
103
- ;;
104
- musl)
105
- echo 'ruby:${{ matrix.ruby }}-alpine'
106
- ;;
107
- esac > container_image
108
- echo "::set-output name=image::$(cat container_image)"
109
- docker run --rm -d -v "${PWD}":"${PWD}" -w "${PWD}" --platform linux/${{ matrix.platform }} $(cat container_image) /bin/sleep 64d | tee container_id
110
- docker exec -w "${PWD}" $(cat container_id) uname -a
111
- echo "::set-output name=id::$(cat container_id)"
112
- - name: Install Alpine system dependencies
113
- if: ${{ matrix.libc == 'musl' }}
114
- run: docker exec -w "${PWD}" ${{ steps.container.outputs.id }} apk add --no-cache build-base bash git
115
- - name: Checkout
116
- uses: actions/checkout@v3
117
- - name: Update Rubygems
118
- run: docker exec -w "${PWD}" ${{ steps.container.outputs.id }} gem update --system
119
- - name: Bundle
120
- run: docker exec -w "${PWD}" ${{ steps.container.outputs.id }} bundle install
121
- - name: Compile
122
- run: docker exec -w "${PWD}" ${{ steps.container.outputs.id }} bundle exec rake compile
123
- - name: Test
124
- run: docker exec -w "${PWD}" ${{ steps.container.outputs.id }} bundle exec rake test
data/.gitignore DELETED
@@ -1,13 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- Gemfile.lock
4
- /_yardoc/
5
- /coverage/
6
- /doc/
7
- /pkg/
8
- /spec/reports/
9
- /tmp/
10
- lib/mini_racer_extension.so
11
- lib/mini_racer_loader.so
12
- *.bundle
13
- .vscode/
data/Dockerfile DELETED
@@ -1,21 +0,0 @@
1
- ARG RUBY_VERSION=2.7
2
- FROM ruby:${RUBY_VERSION}
3
-
4
- RUN test ! -f /etc/alpine-release || apk add --no-cache build-base git
5
-
6
- # without this `COPY .git`, we get the following error:
7
- # fatal: not a git repository (or any of the parent directories): .git
8
- # but with it we need the full gem just to compile the extension because
9
- # of gemspec's `git --ls-files`
10
- # COPY .git /code/.git
11
- COPY Gemfile mini_racer.gemspec /code/
12
- COPY lib/mini_racer/version.rb /code/lib/mini_racer/version.rb
13
- WORKDIR /code
14
- RUN bundle install
15
-
16
- COPY Rakefile /code/
17
- COPY ext /code/ext/
18
- RUN bundle exec rake compile
19
-
20
- COPY . /code/
21
- CMD bundle exec irb -rmini_racer
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in mini_racer.gemspec
4
- gemspec
data/Rakefile DELETED
@@ -1,108 +0,0 @@
1
- require "bundler/gem_tasks"
2
- require "rake/testtask"
3
-
4
- Rake::TestTask.new(:test) do |t|
5
- t.libs << "test"
6
- t.libs << "lib"
7
- t.test_files = FileList['test/**/*_test.rb']
8
- end
9
-
10
- task :default => [:compile, :test]
11
-
12
- gem = Gem::Specification.load( File.dirname(__FILE__) + '/mini_racer.gemspec' )
13
-
14
- if RUBY_ENGINE == "truffleruby"
15
- task :compile do
16
- # noop
17
- end
18
-
19
- task :clean do
20
- # noop
21
- end
22
- else
23
- require 'rake/extensiontask'
24
- Rake::ExtensionTask.new( 'mini_racer_loader', gem )
25
- Rake::ExtensionTask.new( 'mini_racer_extension', gem )
26
- end
27
-
28
-
29
-
30
- # via http://blog.flavorjon.es/2009/06/easily-valgrind-gdb-your-ruby-c.html
31
- namespace :test do
32
- desc "run test suite with Address Sanitizer"
33
- task :asan do
34
- ENV["CONFIGURE_ARGS"] = [ENV["CONFIGURE_ARGS"], '--enable-asan'].compact.join(' ')
35
- Rake::Task['compile'].invoke
36
-
37
- asan_path = `ldconfig -N -p |grep libasan | grep -v 32 | sed 's/.* => \\(.*\\)$/\\1/'`.chomp.split("\n")[-1]
38
-
39
-
40
- cmdline = "env LD_PRELOAD=\"#{asan_path}\" ruby test/test_leak.rb"
41
- puts cmdline
42
- system cmdline
43
-
44
- cmdline = "env LD_PRELOAD=\"#{asan_path}\" rake test"
45
- puts cmdline
46
- system cmdline
47
- end
48
- # partial-loads-ok and undef-value-errors necessary to ignore
49
- # spurious (and eminently ignorable) warnings from the ruby
50
- # interpreter
51
- VALGRIND_BASIC_OPTS = "--num-callers=50 --error-limit=no \
52
- --partial-loads-ok=yes --undef-value-errors=no"
53
-
54
- desc "run test suite under valgrind with basic ruby options"
55
- task :valgrind => :compile do
56
- cmdline = "valgrind #{VALGRIND_BASIC_OPTS} ruby test/test_leak.rb"
57
- puts cmdline
58
- system cmdline
59
- end
60
-
61
- desc "run test suite under valgrind with leak-check=full"
62
- task :valgrind_leak_check => :compile do
63
- cmdline = "valgrind #{VALGRIND_BASIC_OPTS} --leak-check=full ruby test/test_leak.rb"
64
- puts cmdline
65
- require 'open3'
66
- _, stderr = Open3.capture3(cmdline)
67
-
68
- section = ""
69
- stderr.split("\n").each do |line|
70
-
71
- if line =~ /==.*==\s*$/
72
- if (section =~ /mini_racer|SUMMARY/)
73
- puts
74
- puts section
75
- puts
76
- end
77
- section = ""
78
- else
79
- section << line << "\n"
80
- end
81
- end
82
- end
83
- end
84
-
85
- desc 'run clang-tidy linter on mini_racer_extension.cc'
86
- task :lint do
87
- require 'mkmf'
88
- require 'libv8'
89
-
90
- Libv8.configure_makefile
91
-
92
- conf = RbConfig::CONFIG.merge('hdrdir' => $hdrdir.quote, 'srcdir' => $srcdir.quote,
93
- 'arch_hdrdir' => $arch_hdrdir.quote,
94
- 'top_srcdir' => $top_srcdir.quote)
95
- if $universal and (arch_flag = conf['ARCH_FLAG']) and !arch_flag.empty?
96
- conf['ARCH_FLAG'] = arch_flag.gsub(/(?:\G|\s)-arch\s+\S+/, '')
97
- end
98
-
99
- checks = %W(bugprone-*
100
- cert-*
101
- cppcoreguidelines-*
102
- clang-analyzer-*
103
- performance-*
104
- portability-*
105
- readability-*).join(',')
106
-
107
- sh RbConfig::expand("clang-tidy -checks='#{checks}' ext/mini_racer_extension/mini_racer_extension.cc -- #$INCFLAGS #$CXXFLAGS", conf)
108
- end
data/bin/console DELETED
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "bundler/setup"
4
- require "mini_racer"
5
-
6
- # You can add fixtures and/or initialization code here to make experimenting
7
- # with your gem easier. You can also use a different console, if you like.
8
-
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
- require "irb"
14
- IRB.start
data/bin/setup DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle install
7
-
8
- # Do any other automated setup that you need to do here
data/mini_racer.gemspec DELETED
@@ -1,39 +0,0 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'mini_racer/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = "mini_racer"
8
- spec.version = MiniRacer::VERSION
9
- spec.authors = ["Sam Saffron"]
10
- spec.email = ["sam.saffron@gmail.com"]
11
-
12
- spec.summary = %q{Minimal embedded v8 for Ruby}
13
- spec.description = %q{Minimal embedded v8 engine for Ruby}
14
- spec.homepage = "https://github.com/discourse/mini_racer"
15
- spec.license = "MIT"
16
-
17
- spec.metadata = {
18
- "bug_tracker_uri" => "https://github.com/discourse/mini_racer/issues",
19
- "changelog_uri" => "https://github.com/discourse/mini_racer/blob/v#{spec.version}/CHANGELOG",
20
- "documentation_uri" => "https://www.rubydoc.info/gems/mini_racer/#{spec.version}",
21
- "source_code_uri" => "https://github.com/discourse/mini_racer/tree/v#{spec.version}",
22
- }
23
-
24
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(benchmark|test|spec|features|examples)/}) }
25
- spec.require_paths = ["lib"]
26
-
27
- spec.add_development_dependency "bundler"
28
- spec.add_development_dependency "rake", ">= 12.3.3"
29
- spec.add_development_dependency "minitest", "~> 5.0"
30
- spec.add_development_dependency "rake-compiler"
31
- spec.add_development_dependency "m"
32
-
33
- spec.add_dependency 'libv8-node', MiniRacer::LIBV8_NODE_VERSION
34
- spec.require_paths = ["lib", "ext"]
35
-
36
- spec.extensions = ["ext/mini_racer_loader/extconf.rb", "ext/mini_racer_extension/extconf.rb"]
37
-
38
- spec.required_ruby_version = '>= 2.6'
39
- end