Closed rpottsoh closed 6 years ago
I didn't examine this point on the Linux path. It likely would also benefit from this improvement.
Nice, good catch. Thanks!
@kytrinyx I'd be happy to open a PR for this, however I have discovered I can no longer get bundle exec rake compile
to work. I cannot get libv8 to compile, therubyracer
is dependent on it. I know what changes to make to the *.tw2 files, just won't be able to check my changes...
D:\projects.git\Exercism\exercism-interactive-cli-walkthrough>bundle exec rake compile
Could not find libv8-3.16.14.19 in any of the sources
Run `bundle install` to install missing gems.
D:\projects.git\Exercism\exercism-interactive-cli-walkthrough>bundle install
Fetching gem metadata from https://rubygems.org/............
Using rake 12.3.0
Using builder 3.2.3
Using bundler 1.16.2
Using coffee-script-source 1.12.2
Using execjs 2.7.0
Using coffee-script 2.4.1
Using ffi 1.9.18 (x64-mingw32)
Using trollop 2.1.2
Using filewatcher 0.5.4
Using graph 2.8.2
Using tilt 2.0.8
Using haml 4.0.7
Fetching libv8 3.16.14.19
Installing libv8 3.16.14.19 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory:
D:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/ext/libv8
D:/Ruby24-x64/bin/ruby.exe -r ./siteconf20180701-44516-1fg663n.rb extconf.rb
creating Makefile
find: ΓÇÿoutΓÇÖ: No such file or directory
GYP_GENERATORS=make \
build/gyp/gyp --generator-output="out" build/all.gyp \
-Ibuild/standalone.gypi --depth=. \
-Dv8_target_arch=ia32 \
-S.ia32 -Dv8_enable_backtrace=1
-Dv8_can_use_vfp2_instructions=true -Darm_fpu=vfpv2
-Dv8_can_use_vfp3_instructions=true -Darm_fpu=vfpv3
GYP_GENERATORS=make \
build/gyp/gyp --generator-output="out" build/all.gyp \
-Ibuild/standalone.gypi --depth=. \
-Dv8_target_arch=x64 \
-S.x64 -Dv8_enable_backtrace=1
-Dv8_can_use_vfp2_instructions=true -Darm_fpu=vfpv2
-Dv8_can_use_vfp3_instructions=true -Darm_fpu=vfpv3
Patching out/build/All.target.ia32.mk...
Patching out/build/All.target.x64.mk...
Patching out/Makefile.ia32...
Patching out/Makefile.x64...
Patching out/preparser/preparser.target.ia32.mk...
Patching out/preparser/preparser.target.x64.mk...
Patching out/samples/lineprocessor.target.ia32.mk...
Patching out/samples/lineprocessor.target.x64.mk...
Patching out/samples/process.target.ia32.mk...
Patching out/samples/process.target.x64.mk...
Patching out/samples/shell.target.ia32.mk...
Patching out/samples/shell.target.x64.mk...
Patching out/src/d8.target.ia32.mk...
Patching out/src/d8.target.x64.mk...
Patching out/src/d8_js2c.host.x64.mk...
Patching out/src/d8_js2c.target.ia32.mk...
Patching out/tools/gyp/js2c.host.x64.mk...
Patching out/tools/gyp/js2c.target.ia32.mk...
Patching out/tools/gyp/mksnapshot.host.x64.mk...
Patching out/tools/gyp/mksnapshot.target.ia32.mk...
Patching out/tools/gyp/postmortem-metadata.target.ia32.mk...
Patching out/tools/gyp/postmortem-metadata.target.x64.mk...
Patching out/tools/gyp/preparser_lib.target.ia32.mk...
Patching out/tools/gyp/preparser_lib.target.x64.mk...
Patching out/tools/gyp/v8.host.x64.mk...
Patching out/tools/gyp/v8.target.ia32.mk...
Patching out/tools/gyp/v8.target.x64.mk...
Patching out/tools/gyp/v8_base.host.x64.mk...
Patching out/tools/gyp/v8_base.target.ia32.mk...
Patching out/tools/gyp/v8_base.target.x64.mk...
Patching out/tools/gyp/v8_nosnapshot.host.x64.mk...
Patching out/tools/gyp/v8_nosnapshot.target.ia32.mk...
Patching out/tools/gyp/v8_nosnapshot.target.x64.mk...
Patching out/tools/gyp/v8_shell.host.x64.mk...
Patching out/tools/gyp/v8_shell.target.ia32.mk...
Patching out/tools/gyp/v8_snapshot.host.x64.mk...
Patching out/tools/gyp/v8_snapshot.target.ia32.mk...
Patching out/tools/gyp/v8_snapshot.target.x64.mk...
make[1]: Entering directory
'/d/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/vendor/v8/out'
CXX(target)
/d/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/obj.target/preparser_lib/src/allocation.o
CXX(target)
/d/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/obj.target/preparser_lib/src/atomicops_internals_x86_gcc.o
CXX(target)
/d/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/obj.target/preparser_lib/src/bignum.o
CXX(target)
/d/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/obj.target/preparser_lib/src/bignum-dtoa.o
CXX(target)
/d/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/obj.target/preparser_lib/src/cached-powers.o
CXX(target)
/d/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/obj.target/preparser_lib/src/conversions.o
CXX(target)
/d/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/obj.target/preparser_lib/src/diy-fp.o
CXX(target)
/d/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/obj.target/preparser_lib/src/dtoa.o
CXX(target)
/d/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/obj.target/preparser_lib/src/fast-dtoa.o
CXX(target)
/d/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/obj.target/preparser_lib/src/fixed-dtoa.o
CXX(target)
/d/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/obj.target/preparser_lib/src/once.o
CXX(target)
/d/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/obj.target/preparser_lib/src/preparse-data.o
CXX(target)
/d/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/obj.target/preparser_lib/src/preparser.o
CXX(target)
/d/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/obj.target/preparser_lib/src/preparser-api.o
CXX(target)
/d/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/obj.target/preparser_lib/src/scanner.o
CXX(target)
/d/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/obj.target/preparser_lib/src/strtod.o
CXX(target)
/d/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/obj.target/preparser_lib/src/token.o
CXX(target)
/d/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/obj.target/preparser_lib/src/unicode.o
CXX(target)
/d/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/obj.target/preparser_lib/src/utils.o
CXX(target)
/d/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/obj.target/preparser_lib/src/win32-math.o
AR(target)
/d/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/obj.target/tools/gyp/libpreparser_lib.a
CXX(target)
/d/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/obj.target/preparser/preparser/preparser-process.o
LINK(target)
/d/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/preparser
CXX(target)
/d/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/obj.target/v8_base/src/accessors.o
In file included from ../src/elements.h:32:0,
from ../src/objects-inl.h:38,
from ../src/v8.h:60,
from ../src/accessors.cc:28:
../src/objects.h: In member function 'uint32_t v8::internal::HashTable<Shape,
Key>::Hash(Key)':
../src/objects.h:2832:20: warning: invalid use of incomplete type 'class
v8::internal::Heap'
GetHeap()->HashSeed());
^~
In file included from ../src/v8.h:52:0,
from ../src/accessors.cc:28:
../src/../include/v8.h:139:7: note: forward declaration of 'class
v8::internal::Heap'
class Heap;
^~~~
In file included from ../src/elements.h:32:0,
from ../src/objects-inl.h:38,
from ../src/v8.h:60,
from ../src/accessors.cc:28:
../src/objects.h: In member function 'uint32_t v8::internal::HashTable<Shape,
Key>::HashForObject(Key, v8::internal::Object*)':
../src/objects.h:2841:20: warning: invalid use of incomplete type 'class
v8::internal::Heap'
GetHeap()->HashSeed(), object);
^~
In file included from ../src/v8.h:52:0,
from ../src/accessors.cc:28:
../src/../include/v8.h:139:7: note: forward declaration of 'class
v8::internal::Heap'
class Heap;
^~~~
In file included from ../src/elements.h:32:0,
from ../src/objects-inl.h:38,
from ../src/v8.h:60,
from ../src/accessors.cc:28:
../src/objects.h: At global scope:
../src/objects.h:5252:44: error: left operand of shift expression '(-1 << 3)' is
negative [-fpermissive]
static const int kElementsKindMask = (-1 << kElementsKindShift) &
~~~~^~~~~~~~~~~~~~~~~~~~~~
../src/objects.h:7386:36: error: left operand of shift expression '(-8 << 26)'
is negative [-fpermissive]
(~kMaxCachedArrayIndexLength << kArrayIndexHashLengthShift) |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[1]: *** [tools/gyp/v8_base.target.x64.mk:197:
/d/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/obj.target/v8_base/src/accessors.o]
Error 1
make[1]: Leaving directory
'/d/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/vendor/v8/out'
make: *** [Makefile:195: x64.release] Error 2
D:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/ext/libv8/location.rb:36:in
`block in verify_installation!': libv8 did not install properly, expected binary
v8 archive
'D:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/vendor/v8/out/x64.release/obj.target/tools/gyp/libv8_base.a'to
exist, but it was not found (Libv8::Location::Vendor::ArchiveNotFound)
from
D:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/ext/libv8/location.rb:35:in
`each'
from
D:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/ext/libv8/location.rb:35:in
`verify_installation!'
from
D:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/ext/libv8/location.rb:26:in
`install!'
from extconf.rb:7:in `<main>'
Applying
D:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/patches/disable-building-tests.patch
Applying
D:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/patches/disable-werror-on-osx.patch
Applying
D:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/patches/disable-xcode-debugging.patch
Applying
D:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/patches/do-not-imply-vfp3-and-armv7.patch
Applying
D:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/patches/do-not-use-MAP_NORESERVE-on-freebsd.patch
Applying
D:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/patches/do-not-use-vfp2.patch
Applying
D:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19/patches/fPIC-for-static.patch
Compiling v8 for x64
Using python 2.7.15
Using compiler: c++ (GCC version 7.3.0)
Beginning compilation. This will take some time.
Building v8 with env CXX=c++ LINK=c++ make x64.release
extconf failed, exit code 1
Gem files will remain installed in
D:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/libv8-3.16.14.19 for inspection.
Results logged to
D:/Ruby24-x64/lib/ruby/gems/2.4.0/extensions/x64-mingw32/2.4.0/libv8-3.16.14.19/gem_make.out
An error occurred while installing libv8 (3.16.14.19), and Bundler cannot
continue.
Make sure that `gem install libv8 -v '3.16.14.19' --source
'https://rubygems.org/'` succeeds before bundling.
In Gemfile:
therubyracer was resolved to 0.12.3, which depends on
libv8
D:\projects.git\Exercism\exercism-interactive-cli-walkthrough>
@rpottsoh I actually think the best place to make this change is in the website and make a global rule for it for all links. Would you mind creating an issue on v2-feedback that points to this issue and I'll triage and get it sorted before launch from there pls. I'd do it myself but I'm on my way to bed :)
Issue moved to exercism/v2-feedback #192 via ZenHub
@rpottsoh ,HI,i'm facing same issue will you send me the package that it will clear this issue .
@dhokivijay Would you please open a new issue in http://github.com/exercism/exercism/issues that explains your issue? Since the previous issue is nearly a year old, it's almost certainly no the same problem, and we'd need more information to investigate.
The
releases page
link does not appear to cause a new browser tab to open. I must qualify my remark by stating that I am testing this with chrome on a Windows computer. I am assuming the link behaves the same way on a Mac.It would be better I think if clicking the link would trigger a new browser window to open to the releases page instead of taking the user away from the site in the middle of the walk through.
This should accomplish the task: