profile
viewpoint
Ben Noordhuis bnoordhuis IBM The Netherlands

bnoordhuis/bspc 20

Quake 3 BSP-to-AAS compiler

bnoordhuis/amazing-graceful-fs 4

Like graceful-fs, but without eval() hacks and polyfills.

bnoordhuis/chicken-core 4

http://call-cc.org/

bnoordhuis/axis2-c 3

Apache Axis2/C is a Web services engine implemented in the C programming language.

bnoordhuis/chamfilter 3

block China and other South Asian countries at the firewall level

bnoordhuis/entityplus 3

just another quake 3 mod

bnoordhuis/c-ares 2

c-ares is a C library that performs DNS requests and name resolves asynchronously.

pull request commentnodejs/node

child_process: add 'overlapped' stdio flag

@tarruda You can just git rm it. We don't use Travis CI anymore, it's all GH Actions now.

tarruda

comment created time in 10 hours

issue commentlibuv/libuv

AARC64 fail with random_sync

It's usually in /usr/bin. You may need to install the strace package first.

hmaarrfk

comment created time in 10 hours

issue commentbnoordhuis/node-heapdump

Heapdump with workers

There's no support for worker threads yet. Adding that support is somewhat complicated by the fact that the most common way of taking a snapshot is by sending a signal, and signalling a specific thread is... challenging... on some platforms.

(And that's assuming there's a 1-to-1 correspondence between worker threads and systems threads. There is today but that might not be true tomorrow.)

BorisKozo

comment created time in 12 hours

PR closed libuv/libuv

Fix build on Android armv7a

Hi, this patch fixes the build for Android on 32-bit ARM.

I'm using Android NDK 20.1.5948944.

Here is how I'm running the build:

mkdir build
cd build
cmake .. \
  -DLIBUV_BUILD_TESTS=OFF \
  -DCMAKE_SYSTEM_NAME=Android \
  -DCMAKE_TOOLCHAIN_FILE=/opt/android/ndk/20.1.5948944/build/cmake/android.toolchain.cmake \
  -DANDROID_ABI=armeabi-v7a \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_C_FLAGS_RELEASE:STRING='-fPIC -fvisibility=hidden' \
  -DCMAKE_POSITION_INDEPENDENT_CODE=ON
make -j4

I tried to keep behavior on other platforms unchanged.

Changes:

  • accept4() is not available in libc and may be unavailable in kernel too, so don't use it on this platform

  • dup3() is not available in libc; not sure about the kernel, but don't use it too

  • inotify_init1() is not available in libc, use __NR_inotify_init1 syscall via uv__inotify_init1(); not sure if it may be unavailable in kernel, but if I understand correctly, missing inotify support (ENOSYS) wont break other things in libuv

  • SYS_close is not defined in libc, use __NR_close syscall via via uv__sys_close()

Reference:

  • https://fedora.juszkiewicz.com.pl/syscalls.html
  • https://chromium.googlesource.com/android_tools/+/20ee6d20/ndk/platforms/android-21/arch-arm64/usr/include/asm-generic/unistd.h
  • https://elixir.bootlin.com/linux/v4.5.7/ident/__NR_dup3
  • https://elixir.bootlin.com/linux/v4.5.7/ident/__NR_inotify_init1
  • https://elixir.bootlin.com/linux/v4.5.7/ident/__NR_close
+66 -6

5 comments

4 changed files

gavv

pr closed time in 17 hours

pull request commentlibuv/libuv

Fix build on Android armv7a

Thanks for the PR but as this significantly increases the complexity of the code base (I was rather glad to remove all the workarounds for old kernels recently) I'm not going to merge it.

gavv

comment created time in 17 hours

issue commentnodejs/nan

Nan::Callback SetWeak

Nan::Persistent<v8::Function>::SetWeak() coupled with Nan::Call() to actually invoke the function should do it.

Nan::Callback could in theory be extended to offer that functionality (internally it already uses a Nan::Persistent<v8::Function>) but I don't know, that's probably too esoteric and uncommon. A Nan::Callback is usually embedded in some other weak object.

TomMettam

comment created time in 17 hours

issue commentnodejs/http-parser

Request with Transfer-Encoding: chunked and Content-Length is valid per RFC, but rejected with HPE_UNEXPECTED_CONTENT_LENGTH

To summarize: the ask is to allow both Transfer-Encoding and Content-Length? Opt-in?

What are the exact semantics?

  1. Ignore Content-Length? Yes/no (currently no)
  2. Ignore Content-Length if present twice? Yes/no (currently no and not because of 1.)
  3. Set parser->content_length? Yes/no (see also 2. See also #435)

How should the opt-in work? There's not much wiggle room in struct http_parser, global flags are icky, and stretching the definition of parser->lenient_http_headers further might be dangerous.

veshij

comment created time in 17 hours

issue commentnodejs/node

child_process.spawn: does not throw error when uv_spawn() fails

The rule of thumb in Node.js core is that logic errors (application bugs, like passing a string where a number is expected) are rejected with synchronous exceptions while runtime errors are emitted asynchronously. Trying to spawn an executable that isn't there falls squarely in the latter category.

It's a rule of thumb, not a hard rule, but it's not something we deviate from unless there's very good reason. If the current situation is practically unworkable, that would be a very good reason, but I don't think that applies here.

Your proposal also breaks backwards compatibility rather big time. That raises the bar even higher to the point that I think this proposal is practically DOA. There's simply not enough payoff vs. possible ecosystem fallout.

jgehrcke

comment created time in 18 hours

issue commentnodejs/node

httpAgent.absoluteMaxSockets

@rickyes Sure, go for it. :-)

seansd

comment created time in 18 hours

Pull request review commentnodejs/node

lib: refactor Socket._getpeername and Socket._getsockname

 Socket.prototype._destroy = function(exception, cb) { };  Socket.prototype._getpeername = function() {-  if (!this._peername) {-    if (!this._handle || !this._handle.getpeername) {-      return {};-    }-    const out = {};-    const err = this._handle.getpeername(out);-    if (err) return {};  // FIXME(bnoordhuis) Throw?-    this._peername = out;+  if (!this._handle || !this._handle.getpeername) {+    return this._peername || {};+  } else if (!this._peername) {+    this._peername = {};+    // FIXME(bnoordhuis) Throws when returns not 0?
    // FIXME(bnoordhuis) Throw when the return value is not 0?

:-) (and ditto on line 712)

Himself65

comment created time in 18 hours

Pull request review commentnodejs/node

lib: refactor Socket._getpeername and Socket._getsockname

 Socket.prototype._destroy = function(exception, cb) { };  Socket.prototype._getpeername = function() {-  if (!this._peername) {-    if (!this._handle || !this._handle.getpeername) {-      return {};-    }-    const out = {};-    const err = this._handle.getpeername(out);-    if (err) return {};  // FIXME(bnoordhuis) Throw?-    this._peername = out;+  if (!this._handle || !this._handle.getpeername) {+    return this._peername || {};+  } else if (!this._peername) {+    this._peername = {};

This is a functional change in that before errors can be transient, i.e., the first call can return an empty object while the second call can return a full-fledged address object. Now errors are no longer transient because the empty object is cached.

It's a probably inconsequential change in behavior but I'd label it semver-major anyway.

Himself65

comment created time in 18 hours

Pull request review commentnodejs/node

tools: fix check-imports.py to match on word boundaries

+import unittest+import sys+from contextlib import contextmanager+from os import path+sys.path.append(path.abspath(path.join(path.dirname(__file__),+                                       '..', '..', 'tools')))+try:+  from StringIO import StringIO+except ImportError:+  from io import StringIO++from checkimports import is_valid++@contextmanager+def captured_output():+    tmp_out, tmp_err = StringIO(), StringIO()+    old_out, old_err = sys.stdout, sys.stderr+    try:+        sys.stdout, sys.stderr = tmp_out, tmp_err+        yield sys.stdout, sys.stderr+    finally:+        sys.stdout, sys.stderr = old_out, old_err
  tmp_out, tmp_err = StringIO(), StringIO()
  old_out, old_err = sys.stdout, sys.stderr
  try:
    sys.stdout, sys.stderr = tmp_out, tmp_err
    yield sys.stdout, sys.stderr
  finally:
    sys.stdout, sys.stderr = old_out, old_err
richardlau

comment created time in 18 hours

issue commentlibuv/libuv

AARC64 fail with random_sync

Is it possible for you to strace the process like this?

$ strace -s 256 -f build/uv_run_tests_a random_sync random_sync
hmaarrfk

comment created time in 21 hours

issue closednodejs/node

Invalid NodeJS behavior on system with AMD CPU

Version: v12.16.1 (installed via nave) Platform: Linux ubuntu 4.4.0-142-generic #168-Ubuntu SMP Wed Jan 16 21:00:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Subsystem: vendor_id: AuthenticAMD cpu family: 6 model: 6 model name: QEMU Virtual CPU version 2.5+ stepping : 3 cpu MHz: 2599.922 address sizes: 40 bits physical, 48 bits virtual cpu cores : 4

What steps will reproduce the bug?

root@ubuntu:~# node -e 'var a; a|=0; console.log(a)'

What is the expected behavior?

The command should return '0'

What do you see instead?

The command returns '-1'

How often does it reproduce? Is there a required condition?

Always

Additional information

The command 'npm install <any_pkg_name>' output: buffer.js:593 slice: (buf, start, end) => buf.utf8Slice(start, end), ^ RangeError: Index out of range at Object.slice (buffer.js:593:37) at Buffer.toString (buffer.js:790:14) at Object.readFileSync (fs.js:403:41) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1177:22) at Module.load (internal/modules/cjs/loader.js:1002:32) at Function.Module._load (internal/modules/cjs/loader.js:901:14) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12) at internal/main/run_main_module.js:18:47 { code: 'ERR_OUT_OF_RANGE'

closed time in 21 hours

lum-node

issue commentnodejs/node

Invalid NodeJS behavior on system with AMD CPU

Node.js generates x86_64 machine code at runtime and that's notoriously hard for qemu to track; other architectures have instructions to invalidate the icache but x86_64 doesn't. You're not the first to hit a bug and you probably won't be the last.

I'll close this but if you or anyone else has further info, please leave a comment. Thanks for the report.

lum-node

comment created time in 21 hours

issue commentnodejs/nan

Electron-rebuild canvas fails with nan 2.14.1, works with 2.14.0

The change in v2.14.1 that is responsible is 2c023bd447661a61071da318b0ff4003c3858d39.

You mention in the other issue that you're using electron 8.2.0. https://github.com/electron/releases claims it's shipping V8 8.0.426.27-electron.0 and that version supports the new API (it was added in 8.0.)

On the other hand... it also claims it's shipping Node.js v12.13.0 and that version of Node bundles V8 7.7 but I know electron probably does a frankenbuild of Node.js so I guess either is possible.

My hunch is that this is not a nan issue. It could be an electron issue per the above. At the very least, the development headers that electron ships claim it's V8 8.0 because that's what nan feature-gates on.

inDigiNeous

comment created time in 2 days

issue commentnodejs/help

NAN compatibility issues when moving from Node 10 -> 12 -> 14

You're probably looking for Nan::Call(). It also works with a Nan::Callback:

Local<Value> retval;
if (Nan::Call(callback, recv, 4, argv).To(&retval)) {
  // ...
} else {
  // exception pending
}

recv is the receiver, the this object. It needs to be something but you can always use Nan::GetCurrentContext()->Global() to use the global object (i.e., globalThis.)

sregger

comment created time in 2 days

issue commentlibuv/libuv

Persistent fs_event_error_reporting CI failures on macOS 10.15

@cjihrig If that's all it takes to get it to pass then let's do it.

@genio Legitimate failures, sure, but I think those failures may be caused by Actions disallowing (some kinds of) UDP traffic? I'd be okay with skipping those tests if there's a good way to detect that.

richardlau

comment created time in 2 days

issue closednodejs/node

console.time measuring lot of time the first time that is being executed

<!-- Thank you for reporting a possible bug in Node.js.

Please fill in as much of the template below as you can.

Version: output of node -v Platform: output of uname -a (UNIX), or version and 32 or 64-bit (Windows) Subsystem: if known, please specify the affected core module name

If possible, please provide code that demonstrates the problem, keeping it as simple and free of external dependencies as you can. -->

  • Version: v11.15.0
  • Platform: Darwin MacBook-Pro.local 18.5.0 Darwin Kernel Version 18.5.0: Mon Mar 11 20:40:32 PDT 2019; root:xnu-4903.251.3~3/RELEASE_X86_64 x86_64
  • Subsystem: Not known

<!-- Please provide more details below this comment. -->

The first time that console.time function is used, it is measuring more time than the following calls. This is a minimum code to reproduce the issue:

console.time('time1');
console.timeEnd('time1');

console.time('time2');
console.timeEnd('time2');

It results in:

time1: 0.380ms
time2: 0.035ms

This impact directly in time measurement for any function executed in node and can lead to false results.

Any idea about?

closed time in 2 days

jngd

issue commentnodejs/node

console.time measuring lot of time the first time that is being executed

This is (largely) caused by V8's lazy compilation feature: V8 doesn't actually compile JS code until first use. Compare:

$ ./out/Release/node tmp/bug27549.js
time1: 0.121ms
time2: 0.01ms  # 1/12th

With:

$ ./out/Release/node --nolazy tmp/bug27549.js
time1: 0.014ms
time2: 0.008ms

The difference with --nolazy is small enough as to be insignificant, IMO.

I'm going to close the issue but leave a comment if you think there's something that can be done to improve the status quo.

jngd

comment created time in 2 days

issue commentnodejs/node

Invalid NodeJS behavior on system with AMD CPU

I'm 99.9% sure this is a qemu bug, not a node.js or V8 bug. Unless you have reason to believe otherwise, I suggest closing this out and taking it up with the qemu people.

lum-node

comment created time in 2 days

issue commentnodejs/node

OOM does not report JS stacktrace or it's minimal

Unfortunately, it's not nearly as simple as that. For example, an out-of-memory condition can also happen when V8 cannot mmap the memory it needs.

What's more, computing source positions means re-parsing the source code of the functions in the call stack, and that scales with the size of the functions, the number of variables, and so on.

Expectation management: I'm not going to work on this (no time) but I'm leaving this open in case someone else wants to, or wants to take this up with V8.

zen0wu

comment created time in 2 days

issue commentnodejs/help

WASI and es modules

I'm not quite sure what your question is but there's a --experimental-wasi-unstable-preview1 CLI flag that unlocks the built-in wasi module, documentation here.

If that doesn't answer your question, then please elaborate.

HKalbasi

comment created time in 3 days

issue commentnodejs/help

NAN compatibility issues when moving from Node 10 -> 12 -> 14

Try Nan::To<bool>(info[0]).FromJust(). Or better yet:

bool on;
if (!Nan::To<bool>(info[0]).To(&on)) {
  // exception pending
} else if (on) {
  // ...
} else {
  // ....
}
sregger

comment created time in 3 days

Pull request review commentnodejs/node

errors: print original exception context

 void Environment::set_emit_insecure_umask_warning(bool on) {   emit_insecure_umask_warning_ = on; } +void Environment::set_source_maps_enabled() {+  source_maps_enabled_ = true;+}
void Environment::set_source_maps_enabled(bool on) {
  source_maps_enabled_ = on;
}
bcoe

comment created time in 3 days

Pull request review commentnodejs/node

errors: print original exception context

 const prepareStackTrace = (globalThis, error, trace) => {         } = sm.findEntry(t.getLineNumber() - 1, t.getColumnNumber() - 1);         if (originalSource && originalLine !== undefined &&             originalColumn !== undefined) {-          str +=-`\n        -> ${originalSource.replace('file://', '')}:${originalLine + 1}:${originalColumn + 1}`;+          const originalSourceNoScheme = originalSource.replace('file://', '');+          if (i === 0) {+            firstLine = originalLine + 1;+            firstColumn = originalColumn + 1;+            firstSource = originalSourceNoScheme;+          }+          // Show error in original source context to help user pinpoint it:+          errorSource = getErrorSource(firstSource, firstLine, firstColumn);+          // Show both original and transpiled stack trace information:+          str += `\n        -> ${originalSourceNoScheme}:${originalLine + 1}:` ++            `${originalColumn + 1}`;         }       }     } catch (err) {       debug(err.stack);     }     return str;   });-  return `${errorString}\n    at ${preparedTrace.join('')}`;+  return `${errorSource}${errorString}\n    at ${preparedTrace.join('')}`; }; +// Places a snippet of code from where the exception was originally thrown+// above the stack trace. This logic is modeled after GetErrorSource in+// node_errors.cc.+function getErrorSource(firstSource, firstLine, firstColumn) {+  let exceptionLine = '';+  let source;+  try {+    source = readFileSync(firstSource, 'utf8');+  } catch (err) {+    debug(err.stack);+    return exceptionLine;+  }+  const lines = source.split(/(?<=\r?\n)/);

The lookbehind is because you want to retain the line breaks? But why not insert the line break at the caller? That also avoids mixing \r and \n, which is what is happening now.

Efficiency: do source.split(/.../, firstLine) to avoid extra work.

bcoe

comment created time in 3 days

Pull request review commentnodejs/node

errors: print original exception context

 static std::string GetErrorSource(Isolate* isolate,   node::Utf8Value encoded_source(isolate, source_line_maybe.ToLocalChecked());   std::string sourceline(*encoded_source, encoded_source.length()); +  // If source maps have been enabled, the exception line will instead be+  // added in the JavaScript context:+  Environment* env = Environment::GetCurrent(isolate);+  const bool has_source_map_url =+    !message->GetScriptOrigin().SourceMapUrl().IsEmpty();
      !message->GetScriptOrigin().SourceMapUrl().IsEmpty();

(Our C++ uses a different convention for line continuations. :shrug:)

bcoe

comment created time in 3 days

Pull request review commentnodejs/node

errors: print original exception context

 const prepareStackTrace = (globalThis, error, trace) => {         } = sm.findEntry(t.getLineNumber() - 1, t.getColumnNumber() - 1);         if (originalSource && originalLine !== undefined &&             originalColumn !== undefined) {-          str +=-`\n        -> ${originalSource.replace('file://', '')}:${originalLine + 1}:${originalColumn + 1}`;+          const originalSourceNoScheme = originalSource.replace('file://', '');

Since you're here: it should really only remove the file:// prefix, not every occurrence of the substring. (Unlikely to matter in practice but still.)

bcoe

comment created time in 3 days

issue commentnodejs/node

OOM does not report JS stacktrace or it's minimal

The JS stack trace was removed in v8/v8@be5dd77215df4963aa4d63f970d807c565f45be6 because collecting it can require memory when none is available.

I think it should be safe to re-enable it again when --noenable_lazy_source_positions is passed on the command line because then no additional memory is needed.

That flag has an adverse effect on runtime performance, however.

zen0wu

comment created time in 3 days

Pull request review commentlibuv/libuv

win: bump minimum supported version to windows 8

 |---|---|---|---| | GNU/Linux | Tier 1 | Linux >= 2.6.32 with glibc >= 2.12 | | | macOS | Tier 1 | macOS >= 10.7 | |-| Windows | Tier 1 | >= Windows 7 | MSVC 2008 and later are supported |+| Windows | Tier 1 | >= Windows 8 | VS 2015 and later are supported |

Python 3's ABI is defined by "whatever VS 2015 emits", similar to Python 2 and MSVC 2008, that's why I opted for 2015 here. It's not a point of contention for me, I'm open to changing it.

bnoordhuis

comment created time in 4 days

issue commentnodejs/node

Invalid NodeJS behavior on system with AMD CPU

Since you specifically mention AMD - you mean the problem doesn't arise when you configure qemu/kvm to emulate an Intel CPU? Do you also see the issue on real hardware?

FWIW, I have a Ryzen 5 and everything works okay.

lum-node

comment created time in 4 days

issue commentbnoordhuis/v8-cmake

Add license

Thanks for the reminder, done in 4859d7ac.

Reveares

comment created time in 4 days

push eventbnoordhuis/v8-cmake

Ben Noordhuis

commit sha 4859d7ac9a7d5ac21a97261eaea86c7cd1c34819

Add LICENSE. Fixes: https://github.com/bnoordhuis/v8-cmake/issues/25

view details

push time in 4 days

issue closedbnoordhuis/v8-cmake

Add license

Without a open source license it isn't possible to use the CMake additions legally in other projects.

closed time in 4 days

Reveares

push eventbnoordhuis/v8-cmake

Ben Noordhuis

commit sha 4859d7ac9a7d5ac21a97261eaea86c7cd1c34819

Add LICENSE. Fixes: https://github.com/bnoordhuis/v8-cmake/issues/25

view details

push time in 4 days

issue commentlibuv/libuv

src/win/udp.c: Incompatible with Visual C++ 9/C89

I can fix that, however... we're in the process of phasing out pre-VS2015 support, see #2821 (and that's really just making de jure what was already de facto the case.)

With python 2 EOL there's no reason for us to support VS 2008 any longer. If you still want to support it, you'll be on the hook for maintaining patches as we are unlikely to accept them.

jamadden

comment created time in 6 days

issue commentnodejs/node

setTimeout calls callback early

@Fishrock123 Happy to help but what's the question specifically?

whtiehack

comment created time in 6 days

issue commentlibuv/libuv

configure fails with syntax error

It's caused by #2823 but if it's breaking the build for you with no workaround, then I'll revert it.

I'm unclear on why it's failing for you though. Are you using old versions of autoconf/automake? What does configure around line 12686 look like on the affected system?

jamadden

comment created time in 6 days

pull request commentlibuv/libuv

add android build to CI

Aside, the build-cross-qemu-armhf failure is this:

 not ok 216 - signal_multiple_loops
# exit code 139
# Output from process `signal_multiple_loops`:
# corrupted size vs. prev_size

Which indicates memory corruption (clobbering a malloc control block) but I have no idea whether it's legitimate or not. qemu's signal emulation code is notoriously tricky and, historically, buggy.

gengjiawen

comment created time in 6 days

Pull request review commentnodejs/node

errors: print original exception context

 const { fileURLToPath, URL } = require('url'); let Module; let SourceMap; -let experimentalSourceMaps;-function maybeCacheSourceMap(filename, content, cjsModuleInstance) {-  if (experimentalSourceMaps === undefined) {-    experimentalSourceMaps = getOptionValue('--enable-source-maps');+let _sourceMapsEnabled;+let _sourceMapOptionChecked;+function getSourceMapsEnabled() {+  if (_sourceMapsEnabled) return true;+  if (_sourceMapOptionChecked === undefined) {

Unidiomatic variable names (drop the underscores) and I don't think you need _sourceMapOptionChecked? You can use _sourceMapsEnabled (sans underscore`) as a tri-state: true, false or undefined when it hasn't been set yet.

bcoe

comment created time in 6 days

Pull request review commentnodejs/node

errors: print original exception context

 const prepareStackTrace = (globalThis, error, trace) => {         } = sm.findEntry(t.getLineNumber() - 1, t.getColumnNumber() - 1);         if (originalSource && originalLine !== undefined &&             originalColumn !== undefined) {-          str +=-`\n        -> ${originalSource.replace('file://', '')}:${originalLine + 1}:${originalColumn + 1}`;+          const originalSourceNoScheme = originalSource.replace('file://', '');+          if (i === 0) {+            firstLine = originalLine + 1;+            firstColumn = originalColumn + 1;+            firstSource = originalSourceNoScheme;+          }+          str += `\n        -> ${originalSourceNoScheme}:${originalLine + 1}:` ++            `${originalColumn + 1}`;         }       }     } catch (err) {       debug(err.stack);     }     return str;   });-  return `${errorString}\n    at ${preparedTrace.join('')}`;+  return `${getErrorSource(firstSource, firstLine, firstColumn)}` ++          `${errorString}\n    at ${preparedTrace.join('')}`; }; +// Places a snippet of code from where the exception was originally thrown+// above the stack trace. This logic is modeled after GetErrorSource in+// node_errors.cc.+function getErrorSource(firstSource, firstLine, firstColumn) {+  let exceptionLine = '';+  try {

The try/catch block is way too big. It's only reasonable around the fs.readFileSync() call.

You'll want to const { readFileSync } = require('fs');' at the top to be immune to users monkey-patching fs.

bcoe

comment created time in 6 days

Pull request review commentnodejs/node

errors: print original exception context

 function wrapProcessMethods(binding) {     };   } -

No unrelated style changes, please. Applies to other files too.

bcoe

comment created time in 6 days

Pull request review commentnodejs/node

errors: print original exception context

 class Environment : public MemoryRetainer {   inline bool emit_insecure_umask_warning() const;   inline void set_emit_insecure_umask_warning(bool on); +  inline void set_source_maps_enabled();+  inline bool get_source_maps_enabled();

Idiomatic naming and const correctness:

  inline bool source_maps_enabled() const;

The setter should take a bool, like the other setters do.

bcoe

comment created time in 6 days

issue commentnodejs/node-gyp

Building an asan nodejs c++ addon with node-gyp won't work

OTHER_LDFLAGS are linker flags. You're probably looking for OTHER_CFLAGS or OTHER_CPLUSPLUSFLAGS.

oldmtn

comment created time in 7 days

issue commentnodejs/node

ASLR (pie) disabled in v12 Linux amd64 build from nodejs.org

I think the big blocker was ia32/i386: position-independent code is expensive on that architecture because it's register starved.

But we dropped support for ia32 and x64/amd64/x86_64 doesn't have that problem (rip-relative addressing and plenty of registers) so we could turn on PIE if someone is willing to investigate the performance impact.

pdxjohnny

comment created time in 7 days

issue commentnodejs/help

where is nodejs roadmap?

There isn't one. Plenty of strategic initiatives though: modules, quic, openssl 3, etc.

anlexN

comment created time in 7 days

issue commentlibuv/libuv

consider use ebtree instead rbtree

@ptlomholt Good point. Copying it verbatim from haproxy isn't possible but a clean room reimplementation should be acceptable.

@phpstatic I'm going to close this out for now but let me know when there is more to discuss.

phpstatic

comment created time in 7 days

issue closedlibuv/libuv

consider use ebtree instead rbtree

https://www.infoq.com/presentations/ebtree-design/

EBtree is design for scheduler, maybe LIBUV can use it to improve performance ?

closed time in 7 days

phpstatic

pull request commentlibuv/libuv

src: build fix for Android

LGTM but the more principled approach is to define it in CMakeLists.txt and Makefile.am (grep for Android and ANDROID respectively.)

Libuv defines _GNU_SOURCE in one or two source files but it should be safe to remove those.

devnexen

comment created time in 7 days

issue commentnodejs/node

buffer,v8: removal of Symbol.species

Removing the use of @@species makes parallel/test-buffer-nopendingdep-map emit warnings (as expected.) <details>

diff --git a/lib/buffer.js b/lib/buffer.js
index a818f41a26..5c37a2f58c 100644
--- a/lib/buffer.js
+++ b/lib/buffer.js
@@ -37,7 +37,6 @@ const {
   ObjectGetOwnPropertyDescriptor,
   ObjectGetPrototypeOf,
   ObjectSetPrototypeOf,
-  SymbolSpecies,
   SymbolToPrimitive,
   Uint8ArrayPrototype,
 } = primordials;
@@ -287,12 +286,6 @@ function Buffer(arg, encodingOrOffset, length) {
   return Buffer.from(arg, encodingOrOffset, length);
 }
 
-ObjectDefineProperty(Buffer, SymbolSpecies, {
-  enumerable: false,
-  configurable: true,
-  get() { return FastBuffer; }
-});
-
 /**
  * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
  * if value is a number.

</details>

A workaround is to shim the Uint8Array prototype methods. Example:

diff --git a/lib/buffer.js b/lib/buffer.js
index 5c37a2f58c..329fff6b10 100644
--- a/lib/buffer.js
+++ b/lib/buffer.js
@@ -113,6 +113,17 @@ const TypedArrayProto_byteLength =
                                      'byteLength').get;
 const TypedArrayFill = TypedArrayPrototype.fill;
 
+FastBuffer.prototype.map = function(...args) {
+  let rc;
+  FastBuffer.prototype.constructor = FastBuffer;
+  try {
+    rc = Uint8ArrayPrototype.map.call(this, ...args);
+  } finally {
+    FastBuffer.prototype.constructor = Buffer;
+  }
+  return rc;
+};
+
 FastBuffer.prototype.constructor = Buffer;
 Buffer.prototype = FastBuffer.prototype;
 addBufferPrototypeMethods(Buffer.prototype);

It looks ugly because it temporarily has to undo the prototype.constructor mucking we do but then it's just a proof of concept, of course.

bnoordhuis

comment created time in 7 days

issue openednodejs/node

buffer,v8: removal of Symbol.species

Background: https://docs.google.com/document/d/1YDfpZDKEhiPWjcr4RPIpU3ZuHsccDg0k7QpKQBQKsLE

Summary: V8 is considering removal of Symbol.species / @@species in Q4 2020.

Node.js uses Symbol.species in lib/buffer.js as of commit d2d32ea5a22 to inhibit --pending-deprecation warnings when using methods inherited from Uint8Array.

Example: Buffer.from('').map(x => x) - that's Uint8Array#map() returning a Buffer.

There's a multi-vendor push to remove @@species so we need to prepare for that. Node.js v14.x goes LTS in October and will be supported until 2023. The maintenance angle should be taken into account.

created time in 7 days

push eventbnoordhuis/io.js

Ben Noordhuis

commit sha eae2cfc7e1260b75a39c51f9984a7200de96f282

fixup! clamp timeout at 1000 ms otherwise it's a possible observable change in behavior

view details

push time in 7 days

push eventbnoordhuis/io.js

Ben Noordhuis

commit sha b4cac47ab20b460ca44d31ab66f02f91c37a311b

fixup! update pr-url

view details

push time in 7 days

PR opened nodejs/node

dns: make dns.Resolver timeout configurable

cc @niftylettuce

+104 -13

0 comment

5 changed files

pr created time in 7 days

create barnchbnoordhuis/io.js

branch : cares-channel-timeout

created branch time in 7 days

issue commentlibuv/libuv

uv_getaddrinfo() suddenly never got a callback

No, but requests can pile up if you submit them faster than the thread pool can dispatch them.

Blankwonder

comment created time in 8 days

issue commentnodejs/node

toLocaleUpperCase() not working for Georgian locale ('ka')

Thanks, closing then.

sowmyav24

comment created time in 8 days

issue closednodejs/node

toLocaleUpperCase() not working for Georgian locale ('ka')

  • Version: v10.7.0
  • Platform: Darwin 17.7.0 Darwin Kernel Version 17.7.0: Thu Jun 21 22:53:14 PDT 2018; root:xnu-4570.71.2~1/RELEASE_X86_64 x86_64
  • Subsystem:

toLocaleUpperCase() does not work properly for Georgian locale.

v10.7.0 and above

> 'იანვარი'.toLocaleUpperCase();
'ᲘᲐᲜᲕᲐᲠᲘ'

Expected behaviour

Till node v10.6.0

> 'იანვარი'.toLocaleUpperCase();
'იანვარი'

closed time in 8 days

sowmyav24

issue commentlibuv/libuv

uv_getaddrinfo() suddenly never got a callback

I don't see a bug here. Libuv called out to getaddrinfo(3) from libc and that function is waiting on a reply from the DNS server. The domain names it's trying to resolve are 68375aa58e11424fb1f75208051c36ec.fp.measure.office.com and def14f84fb4c4ac3ac4eba009b038d11.fp.measure.office.com.

I also see a query to cebf502e.jddebug.com and that domain name (and jddebug.com) fail with SERVFAIL when I try to look them up with dig(1).

Blankwonder

comment created time in 8 days

issue closednodejs/node-gyp

How to resolve Error: dlopen("") : Library not loaded Referenced () in nodejs

Hi.. i am trying to build node module using NAPI . i am using node-gyp for creating .node file on MacOS i ran into issue

Error:


    dlopen(path-to-.node-file, 1): Library not loaded: libraryname.so Referenced from: path-to-.node-file.node

When i am running example in node_module directory then it is not throwing any error .code is running fine inside node_module.

ProjectDir/node_module/modulename/example.js -> code is running

ProjectDir/example.js -> it is showing me above error .

Structure of my module moduefile.cc lib.so lib.h binding.gyp file

binding.gyp for MacOS

['OS=="mac"',{
      'targets':[
        {
          "target_name": "target name",
          "sources":["./modulefile.cc"],
          "libraries":["<(module_root_dir)/lib.so"],
          "ldflags": ["-Wl,-rpath,'$$ORIGIN'"],
          "cflags_cc": ["-fexceptions","-fPIC","-Wno-unknown-pragmas"]
        }
      ]
    }]

So , i tried to resolve above issue made some changes in binding.gyp


    ['OS=="mac"',{
      'targets':[
        {
          "target_name": "target name",
          "sources":["./modulefile.cc"],
          "copies":[{
          "destination":"<(module_root_dir)/build/Release",
          "files":["<(module_root_dir)/lib.so"]
          }],
          "include_dirs":["<(module_root_dir)/"],
          "link_settings": {
            "libraries": [
              "-Wl,-rpath,<(module_root_dir)/lib.so"
            ],
          },
          "ldflags": ["-Wl,-rpath,'$$ORIGIN'"],
          "cflags_cc": ["-fexceptions","-fPIC","-Wno-unknown-pragmas"]
        }
      ]
    }]

It resolves above issue but throws new error while calling function of module.now i am getting error in both inside node_moduel and project root

ProjectDir/node_module/modulename/example.js -> Throwing Error

ProjectDir/example.js -> Throwing Error

Error

dyld: lazy symbol binding failed: Symbol not found: _function-name-in-lib.so-file Referenced from: targetname.node Expected in: flat namespace

From above error it seems modulefile.cc file is not able to call functions from lib.so file after i made some changes in binding.gyp.

it is strange that earlier javascript was running fine inside node_module folder but throwing error while trying to running same javascript in project root directory

Question :

  1. How can i resolve above error ?

closed time in 9 days

shivam201312

issue commentnodejs/node-gyp

How to resolve Error: dlopen("") : Library not loaded Referenced () in nodejs

@shivam201312 I'll close this because it sounds like you've found a working solution? If not, let me know.

shivam201312

comment created time in 9 days

issue closednodejs/node-gyp

Error on npm install command on linux

  • Node Version: Node: v13.5.0 NPM: 6.14.4
  • Platform: Linux raspberrypi 4.19.75-v7l+ #1270 SMP Tue Sep 24 18:51:41 BST 2019 armv7l GNU/Linux
  • Compiler: https://pastebin.com/JtSRAh0g
  • Module: trying to run npm install (https://pastebin.com/N7Vzt7F9)

<details><summary>Verbose output (from npm or node-gyp):</summary>

gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:305:20)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)
gyp ERR! System Linux 4.19.75-v7l+
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/pi/dc/Kuzumi/node_modules/ref
gyp ERR! node -v v13.5.0
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.1.2 (node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"})
npm WARN discord.js@11.6.4 requires a peer of @discordjs/uws@^10.149.0 but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: ref@1.3.5 (node_modules/ref):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: ref@1.3.5 install: `node-gyp rebuild`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

</details>

<!-- Any further details -->

closed time in 9 days

Skeec54

issue commentnodejs/help

Cannot read output from another node process installed with snap

That's almost certainly caused by snap's security sandbox. Try getting in touch with the maintainer of the node snap, he or she can probably provide more details.

angryziber

comment created time in 9 days

issue commentnodejs/node

toLocaleUpperCase() not working for Georgian locale ('ka')

@marwahaha The V8 fix (v8/v8@bb24140cb3eef5452e7a74f96a8261f6c049dd02) hasn't been back-ported to V8 6.8, the version that ships with Node.js v10.x. Node.js v12.x contains the fix though, it bundles V8 7.8. (The fix was merged in 7.4 or 7.5.)

v10.x enters maintenance mode tomorrow and it's not a trivial fix (risk of regressions) so I suggest taking no action.

sowmyav24

comment created time in 9 days

issue closednodejs/node

fs.readFile possible memory leak

<!-- Thank you for reporting an issue.

This issue tracker is for bugs and issues found within Node.js core. If you require more general support please file an issue on our help repo. https://github.com/nodejs/help

Please fill in as much of the template below as you're able.

Version: output of node -v Platform: output of uname -a (UNIX), or version and 32 or 64-bit (Windows) Subsystem: if known, please specify affected core module name

If possible, please provide code that demonstrates the problem, keeping it as simple and free of external dependencies as you are able. -->

  • 4.8.6:
  • Linux as-t430s 4.4.0-67-generic #88-Ubuntu SMP Wed Mar 8 16:34:45 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux:
  • fs:

<!-- Enter your issue details below this comment. -->

fs.readFile seems to have memory leak while reading asynchronously the same file many times fs.readFileSync seems to have very different behaviour and clean up memory efficiently

data

Image showing issue https://github.com/ip413/node-read-file/blob/master/docs/data.png Code is here https://github.com/ip413/node-read-file/blob/master/index.js Excel is here https://github.com/ip413/node-read-file/blob/master/docs/data.ods

The same problem occurs on 9.5.0 node version.

closed time in 9 days

ip413

issue commentnodejs/node

fs.readFile possible memory leak

Looks like this was forgotten to be closed out? #11289 is a similar issue, FWIW.

@machinetherapist If you think you've found a legitimate bug, please open a new issue.

ip413

comment created time in 9 days

issue commentlibuv/libuv

Some warning from MinGW under Windows

@escherstair zero can be removed, that was an oversight in 2c279504f.

escherstair

comment created time in 10 days

issue commentnodejs/node

wasi.start() throws type error

No problem. I've opened #33431.

jtenner

comment created time in 11 days

PR opened nodejs/node

wasi: relax WebAssembly.Instance type check

Instances coming from different VM contexts don't pass instanceof type checks because each context has its own copy of the built-in globals.

After review of the relevant code it seems like it should be safe to relax the type check and that is what this commit does: wasi.start() now accepts any input that walks and quacks like a WebAssembly.Instance or WebAssembly.Memory instance.

Fixes: https://github.com/nodejs/node/issues/33415

+88 -9

0 comment

2 changed files

pr created time in 11 days

create barnchbnoordhuis/io.js

branch : fix33415

created branch time in 11 days

issue commentnodejs/node

ASLR (pie) disabled in v12 Linux amd64 build from nodejs.org

I can't find the issue but I remember it having been discussed. IIRC, the conclusion was to keep PIE disabled because of the sizable performance hit. It was something like 5 or 10%.

PIE is enabled on macos but that's not a performance-critical platform like linux is. People don't run production servers on their macbooks. (I hope.)

pdxjohnny

comment created time in 11 days

Pull request review commentlibuv/libuv

misc: return error in uv_{get,set}_process_title when uv_setup_args isn't called

  static uv_mutex_t process_title_mutex; static uv_once_t process_title_mutex_once = UV_ONCE_INIT;-static char* process_title;+static char* process_title = NULL;

Yes. aix.c is non-idiomatic libuv in that respect (and others.)

squeek502

comment created time in 11 days

Pull request review commentnodejs/node

wasi,worker: handle termination exception

 void AtExit(Environment* env, void (*cb)(void* arg), void* arg) { }  void EmitBeforeExit(Environment* env) {-  env->RunBeforeExitCallbacks();+  TraceEventScope trace_scope(TRACING_CATEGORY_NODE1(environment),+                              "BeforeExit", env);

This changes the lifetime of the scope a little but makes it more correct, IMO. In the old location it only covered part of the BeforeExit sequence.

bnoordhuis

comment created time in 11 days

Pull request review commentnodejs/node

wasi,worker: handle termination exception

 void Worker::Run() {           more = uv_loop_alive(&data.loop_);           if (more && !is_stopped()) continue; -          EmitBeforeExit(env_.get());+          if (!isolate_->IsExecutionTerminating()) EmitBeforeExit(env_.get());

I thought my one-liner was rather elegant because it neatly sidesteps the rabbit hole that is EmitBeforeExit() calling Environment::RunBeforeExitCallbacks() calling AsyncWrap::DestroyAsyncIdsCallback() calling arbitrary JS code.

But okay, since you asked for it - updated to be more rigorous, PTAL.

bnoordhuis

comment created time in 11 days

push eventbnoordhuis/io.js

Joyee Cheung

commit sha d28198b498b225ecd60379d486cb7aacbffbdfaa

test: update WPT interfaces and hr-time This commit updates the interfaces to https://github.com/web-platform-tests/wpt/tree/8ada332aea/interfaces and updates the hr-time test status: - `window-worker-timeOrigin.window.js` should be skipped because we don't implement `Blob` - `idlharness.any.js` should be skipped since the IDL parser needs to be updated, but the parser update would also result in an update of the test harness which in turn requires updates of other tests. We need to fix the URL implementation first, and then update the harness and all the tests. PR-URL: https://github.com/nodejs/node/pull/33297 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com>

view details

Joyee Cheung

commit sha 365ddb35036e7e140f5f07962c47bf1fd5f040b7

test: refactor WPTRunner - Print test results as soon as they are available, instead of until after all the tests are complete. This helps us printing tests whose completion callback is not called because of failures. - Run the scripts specified by `// META: script=` one by one instead of concatenating them first for better error stack traces. - Print a status summary when the test process is about to exit. This can be used as reference for updating the status file. For example the stderr output of `out/Release/node test/wpt/test-console.js` would be: ``` { 'idlharness.any.js': { fail: { expected: [ 'assert_equals: operation has wrong .length expected 1 but got 0' ] } } } Ran 4/4 tests, 0 skipped, 3 passed, 1 expected failures, 0 unexpected failures ``` PR-URL: https://github.com/nodejs/node/pull/33297 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com>

view details

Richard Lau

commit sha 3aa515210afaefcf99b3f4ad49239fc5738ef58d

build: fix `--error-on-warn` for macOS XCode builds on macOS do not appear to inherit the `cflags` setting. Signed-off-by: Richard Lau <riclau@uk.ibm.com> PR-URL: https://github.com/nodejs/node/pull/33357 Refs: https://github.com/nodejs/node/pull/32685 Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Jiawen Geng <technicalcute@gmail.com>

view details

Richard Lau

commit sha fcc183c99413750b1b965e45cb42a1af73da47ab

build: enable `--error-on-warn` for POSIX workflows Treat warnings as errors for non-deps code on Linux and macOS workflows. Signed-off-by: Richard Lau <riclau@uk.ibm.com> PR-URL: https://github.com/nodejs/node/pull/33357 Refs: https://github.com/nodejs/node/pull/32685 Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Jiawen Geng <technicalcute@gmail.com>

view details

Gus Caplan

commit sha eaa16cd477f671804a46b57bfdfe918a02334f4d

src: remove deprecated FinalizationRegistry hooks PR-URL: https://github.com/nodejs/node/pull/33373 Fixes: https://github.com/nodejs/node/issues/33389 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com>

view details

Jiawen Geng

commit sha 4ad26923f480197b16c11e8b7a493ed81b1326d5

src: refactor Reallocate since it introduced in upstream v8 PR-URL: https://github.com/nodejs/node/pull/33402 Reviewed-By: Zeyu Yang <himself65@outlook.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>

view details

Alba Mendez

commit sha 1dafaf03cb35d51562193afab6e903a10a89d906

tls: fix --tls-keylog option There's a typo that causes only the first socket to be logged (i.e. when the warning is emitted). In addition, server sockets aren't logged because `keylog` events are not emitted on tls.Server, not the socket. This behaviour is counterintuitive and has caused more bugs in the past, so make all sockets (server or client) emit 'keylog'. tls.Server will just re-emit these events. Refs: https://github.com/nodejs/node/pull/30055 PR-URL: https://github.com/nodejs/node/pull/33366 Reviewed-By: Sam Roberts <vieuxtech@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>

view details

James M Snell

commit sha 241ed44a0b06db45c97681c164fc1098e7c9f0d2

src: small modification to NgHeader This is separated out of the QUIC PR. It is not specific to QUIC but provides a new base class that is used there as an abstraction of the actual implementation. This is a purely internal implementation detail that has no outward functional changes (so no need for tests) Signed-off-by: James M Snell <jasnell@gmail.com> PR-URL: https://github.com/nodejs/node/pull/33289 Reviewed-By: Sam Roberts <vieuxtech@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: David Carlier <devnexen@gmail.com>

view details

Gus Caplan

commit sha 5ae5262f448295e314393dad4c491259793cea3f

src: add support for TLA PR-URL: https://github.com/nodejs/node/pull/30370 Reviewed-By: Guy Bedford <guybedford@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Myles Borins <myles.borins@gmail.com>

view details

unknown

commit sha 47804933012841f2dc90626bdcc161adf34569a5

doc: add examples for implementing ESM Fixes: https://github.com/nodejs/node/issues/28060 PR-URL: https://github.com/nodejs/node/pull/33168 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Bradley Farias <bradley.meck@gmail.com>

view details

Ruben Bridgewater

commit sha 80913e655fef0950be61b5fb97261956f9d2c5bb

repl: improve repl preview This aligns the REPL preview with the one used in the Chrome DevTools console. It will now preview the output for the input including the completion suffix as input. When pressing enter while previewing such data, it will automatically insert the suffix before evaluating the input. When pressing escape, that behavior is deactivated until the input is changed. Signed-off-by: Ruben Bridgewater <ruben@bridgewater.de> PR-URL: https://github.com/nodejs/node/pull/33282 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com>

view details

Ruben Bridgewater

commit sha b38d26a1685630eaf0a2aa2a933934e80f0a3f57

repl: show reference errors during preview This aligns the behavior with the one in the Firefox console. It will visualize ReferenceErrors in case the input has no possible completion and no buffered input. That way typos can already be highlighted before being evaluated. Signed-off-by: Ruben Bridgewater <ruben@bridgewater.de> PR-URL: https://github.com/nodejs/node/pull/33282 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com>

view details

Ruben Bridgewater

commit sha 900daedbfeae1d412c06833379357c9b7c641a71

repl: replace hard coded core module list with actual list This replaces the internally used hard coded Node.js core module list with the actual internal existent modules. That way all modules are automatically picked up instead of having to update the list manually. This currently only applies to the REPL and to the Node.js `eval` functionality (User passed `-e` or `--eval` arguments to Node without `-i` or `--interactive`). Signed-off-by: Ruben Bridgewater <ruben@bridgewater.de> PR-URL: https://github.com/nodejs/node/pull/33282 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com>

view details

Ruben Bridgewater

commit sha 4fa7d6e4c4be096b248f00a4d8435027a6e8fda1

test: refactor test/parallel/test-bootstrap-modules.js This simplifies the test a bit by removing duplicated code and by focusing the reader on the passed through module. Signed-off-by: Ruben Bridgewater <ruben@bridgewater.de> PR-URL: https://github.com/nodejs/node/pull/33282 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com>

view details

Ruben Bridgewater

commit sha 50ba066921a2bfee743617f58d42eaeea02d0fca

repl: improve repl autocompletion for require calls This improves the autocompletion for require calls. It had multiple small issues so far. Most important: it won't suggest completions for require statements that are fully written out. Second, it'll detect require calls that have whitespace behind the opening bracket. Third, it makes sure node modules are detected as such instead of only suggesting them as folders. Last, it adds suggestions for input that starts with backticks. Signed-off-by: Ruben Bridgewater <ruben@bridgewater.de> PR-URL: https://github.com/nodejs/node/pull/33282 Fixes: https://github.com/nodejs/node/issues/33238 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com>

view details

Ruben Bridgewater

commit sha 24bf1adacc61a96111ae3ad06afba6f9b7f435a7

module: do not check circular dependencies for exported proxies In case the exported module is a proxy that has the `getPrototypeOf` or `setPrototypeOf` trap, skip the circular dependencies check. It would otherwise be triggered by the check itself. Fixes: https://github.com/nodejs/node/issues/33334 Signed-off-by: Ruben Bridgewater <ruben@bridgewater.de> PR-URL: https://github.com/nodejs/node/pull/33338 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Zeyu Yang <himself65@outlook.com>

view details

Matteo Collina

commit sha 2d5d77306f6dff9110c1f77fefab25f973415770

Revert "vm: add importModuleDynamically option to compileFunction" This reverts commit 74c393dd93cc0e461e3796fbcc09545fcacdecaf. Fixes: https://github.com/nodejs/node/issues/33166 PR-URL: https://github.com/nodejs/node/pull/33364 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>

view details

Rich Trott

commit sha 23a61eb683bcfb147ca1040e36c70fe366452a77

test: fix test-dns-idna2008 The DNS server will sometimes return an IPv6 address (as seen in nightly CI from time to time). Use `family` option to force IPv4. PR-URL: https://github.com/nodejs/node/pull/33367 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>

view details

Chris Holland

commit sha 441e703b2851be4c0f924907ff3c20cc4bab8588

doc: enhance guides by fixing and making grammar more consistent PR-URL: https://github.com/nodejs/node/pull/33152 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>

view details

Anna Henningsen

commit sha e9f293750760d59243020d0376edf242c9a26b67

fs: clean up Dir.read() uv_fs_t data before calling into JS A call into JS can schedule another operation on the same `uv_dir_t`. In particular, when the handle is closed from the callback for a directory read operation, there previously was a race condition window: 1. A `dir.read()` operation is submitted to libuv 2. The read operation is finished by libuv, calling `AfterDirRead()` 3. We call into JS 4. JS calls dir.close() 5. libuv posts the close request to a thread in the pool 6. The close request runs, destroying the directory handle 7. `AfterDirRead()` is being exited. Exiting the `FSReqAfterScope` in step 7 attempts to destroy the original uv_fs_t` from step 1, which now points to an `uv_dir_t` that has already been destroyed in step 5. By forcing the `FSReqAfterScope` to clean up before we call into JS, we can be sure that no other operations on the same `uv_dir_t` are submitted concurrently. This addresses issues observed when running with ASAN/valgrind. PR-URL: https://github.com/nodejs/node/pull/33274 Reviewed-By: Colin Ihrig <cjihrig@gmail.com>

view details

push time in 11 days

Pull request review commentlibuv/libuv

misc: return error in uv_{get,set}_process_title when uv_setup_args isn't called

 API .. c:function:: int uv_get_process_title(char* buffer, size_t size)      Gets the title of the current process. You *must* call `uv_setup_args`-    before calling this function. If `buffer` is `NULL` or `size` is zero,-    `UV_EINVAL` is returned. If `size` cannot accommodate the process title and-    terminating `NULL` character, the function returns `UV_ENOBUFS`.+    before calling this function on Unix and AIX systems. If `uv_setup_args`+    has not been called on systems that require it, then `UV_ENOBUFS` is returned.+    If `buffer` is `NULL` or `size` is zero, `UV_EINVAL` is returned. If `size` +    cannot accommodate the process title and terminating `NULL` character,
    cannot accommodate the process title and terminating `nul` character,

That's what the documentation calls it elsewhere.

squeek502

comment created time in 11 days

Pull request review commentlibuv/libuv

misc: return error in uv_{get,set}_process_title when uv_setup_args isn't called

  static uv_mutex_t process_title_mutex; static uv_once_t process_title_mutex_once = UV_ONCE_INIT;-static char* process_title;+static char* process_title = NULL;

These are unnecessary since they're static.

squeek502

comment created time in 11 days

issue commentlibuv/help

uv_write_cb+uv_write_t called twice?

No. Valgrind might be able to tell you what's happening.

lake4790k

comment created time in 11 days

pull request commentnodejs/node

Revert "tls: add highWaterMark option for connect"

I asked a few people and if what you're saying is the right way to think about HWM, then our docs are supremely terrible at conveying that because no one guessed it correctly (including me.)

From stream.md:

Once the total size of the internal read buffer reaches the threshold specified
by `highWaterMark`, the stream will temporarily stop reading data from the
underlying resource until the data currently buffered can be consumed (that is,
the stream will stop calling the internal `readable._read()` method that is
used to fill the read buffer).

My, ah, proof readers all thought that means it's a memory usage cap. And yes, I was careful to avoid leading questions. :-)

puzpuzpuz

comment created time in 12 days

issue commentnodejs/node

internalModuleStat & internalModuleReadJSON prevent resolution override

Would it be possible to use the fs primitives or, at least, to expose internalModuleStat & friends in a way we can wrap them?

No and no. The module loader doesn't use fs for performance reasons and internalModuleStat should not be exposed because that means setting its API in stone. It needs to be able to evolve as the need arises, without having to worry about backwards compatibility.

I suppose Node could detect when fs is monkey-patched and fall back to using the monkey-patched fs.readFileSync or whatever but that feels wrong on multiple levels. Don't bend require() into something it's not intended for.

arcanis

comment created time in 12 days

issue closednodejs/node-gyp

Node-gyp Error when updating Electron Version

Hello everyone, I am currently working on an electron app which requires the module node-bluetooth and, consequently, node-gyp too. Currently, I have this fully operational environment:

  • Windows 10
  • Electron: v4.2.12 (comes with node v10.11.0)
  • Nodejs: v10.16.3
  • Node-gyp: v3.8.0
  • MS Build Tools: 2015 & 2017 (from Visual Studio 2017, not 2019)
  • Python: 2.7

Everything works perfectly fine but I need to update Electron to one of the latest versions and, when I do, I become unable to get the app to work properly due to complications with node-bluetooth and node-gyp. This is what I did to perform the update (in this exact order):

  • Deleted both package-lock.json and node-modules folder in the electron app main folder
  • Uninstalled and deleted all node-gyp related folders and files inside C:\Users\Joaquim\...
  • Updated NodeJS in the computer to version 12.16.3
  • Re-installed node-gyp from scratch using npm install -g node-gyp@5.1.0 while following instructions provided both at https://github.com/nodejs/node-gyp and https://github.com/Microsoft/nodejs-guidelines/blob/master/windows-environment.md#compiling-native-addon-modules
  • Made sure node-gyp was properly connected to Python 2.7 and MS Build Tools with npm config set msvs_version 2017 --global, npm config set python python2.7 --global. Everything was checked through the .npmrc document, the command npm config ls -l and the command node-gyp configure build. Also followed these instructions: https://github.com/song940/node-bluetooth/issues/40#issuecomment-547975568

By the end of this, my new, updated, environment was the following:

  • Windows 10
  • Electron: v8.2.5 (comes with node v12.13.0)
  • Nodejs: v12.16.3
  • Node-gyp: v5.1.0 (also tried v6.1.0, but result was the same)
  • MS Build Tools: 2015 & 2017 (from Visual Studio 2017, not 2019)
  • Python: 2.7

Then, I opened the Powershell with admin rights in main folder of the Electron app and ran npm install electron@latest followed by npm install which, unfortunately, threw the following error when installing node-bluetooth:

gyp ERR! build error gyp ERR! stack Error: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe failed with exit code: 1 gyp ERR! stack at ChildProcess.onExit (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js:194:23) gyp ERR! stack at ChildProcess.emit (events.js:310:20) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12) gyp ERR! System Windows_NT 10.0.18362 gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" "configure" "build" gyp ERR! cwd C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth gyp ERR! node -v v12.16.3 gyp ERR! node-gyp -v v5.1.0 gyp ERR! not ok npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! node-bluetooth@1.2.6 install: node-gyp configure build npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the node-bluetooth@1.2.6 install script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

<details> <summary>(Check Complete Error Log Here!) </summary>

node-bluetooth@1.2.6 install C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth node-gyp configure build C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\....\node_modules\node-gyp\bin\node-gyp.js" configure build ) else (node "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" configure build ) Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch. BluetoothSerialPort.cc DeviceINQ.cc BTSerialPortBinding.cc BluetoothHelpers.cc win_delay_load_hook.cc c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(39): warnin g C4996: 'WSAStringToAddressA': Use WSAStringToAddressW() instead or define WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerial Port.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(3566): note: see declaration of 'WSAStringT oAddressA' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(65): warnin g C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node -bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\nan\nan.h(1742): note: see declaration of 'Nan::Callback::C all' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(74): warnin g C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node -bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\nan\nan.h(1742): note: see declaration of 'Nan::Callback::C all' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(125): warni ng C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\nod e-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\nan\nan.h(1742): note: see declaration of 'Nan::Callback::C all' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(186): warni ng C4996: 'v8::Object::Get': was declared deprecated [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bl uetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\appdata\local\node-gyp\cache\12.16.3\include\node\v8.h(3553): note: see declaration of 'v8::Object:: Get' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(196): warni ng C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\nod e-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\nan\nan.h(1742): note: see declaration of 'Nan::Callback::C all' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(219): error C2660: 'v8::FunctionTemplate::GetFunction': function does not take 0 arguments [C:\Users\Joaquim\Desktop\TempestMASTR- mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\appdata\local\node-gyp\cache\12.16.3\include\node\v8.h(6126): note: see declaration of 'v8::Function Template::GetFunction' (compiling source file ..\src\windows\BTSerialPortBinding.cc) c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(219): error C2661: 'v8::Object::Set': no overloaded function takes 1 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(220): error C2660: 'v8::FunctionTemplate::GetFunction': function does not take 0 arguments [C:\Users\Joaquim\Desktop\TempestMASTR- mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\appdata\local\node-gyp\cache\12.16.3\include\node\v8.h(6126): note: see declaration of 'v8::Function Template::GetFunction' (compiling source file ..\src\windows\BTSerialPortBinding.cc) c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(220): error C2661: 'v8::Object::Set': no overloaded function takes 1 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_ modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(221): error C2660: 'v8::FunctionTemplate::GetFunction': function does not take 0 arguments [C:\Users\Joaquim\Desktop\TempestMASTR- mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\appdata\local\node-gyp\cache\12.16.3\include\node\v8.h(6126): note: see declaration of 'v8::Function Template::GetFunction' (compiling source file ..\src\windows\BTSerialPortBinding.cc) c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(221): error C2661: 'v8::Object::Set': no overloaded function takes 1 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_ modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(242): error C2664: 'v8::String::Utf8Value::Utf8Value(const v8::String::Utf8Value &)': cannot convert argument 1 from 'v8::Local<v8 ::Value>' to 'const v8::String::Utf8Value &' [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth
build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(242): not e: Reason: cannot convert from 'v8::Localv8::Value' to 'const v8::String::Utf8Value' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(242): not e: No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(243): error C2660: 'v8::Value::Int32Value': function does not take 0 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_ modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\appdata\local\node-gyp\cache\12.16.3\include\node\v8.h(2709): note: see declaration of 'v8::Value::I nt32Value' (compiling source file ..\src\windows\BTSerialPortBinding.cc) c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(352): warni ng C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\nod e-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\nan\nan.h(1742): note: see declaration of 'Nan::Callback::C all' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(44): warning C4996: ' _WSAQuerySetA::dwSize': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API wa rnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1320): note: see declaration of '_WSAQueryS etA::dwSize' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(45): warning C4996: ' _WSAQuerySetA::dwNameSpace': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated A PI warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj ] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1325): note: see declaration of '_WSAQueryS etA::dwNameSpace' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(46): warning C4996: ' _WSAQuerySetA::lpServiceClassId': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable depreca ted API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vc xproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1322): note: see declaration of '_WSAQueryS etA::lpServiceClassId' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(47): warning C4996: ' _WSAQuerySetA::dwNumberOfCsAddrs': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprec ated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.v cxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1331): note: see declaration of '_WSAQueryS etA::dwNumberOfCsAddrs' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(48): warning C4996: ' _WSAQuerySetA::lpszContext': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated A PI warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj ] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1327): note: see declaration of '_WSAQueryS etA::lpszContext' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(61): warning C4996: ' _WSAQuerySetA::lpcsaBuffer': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated A PI warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj ] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1332): note: see declaration of '_WSAQueryS etA::lpcsaBuffer' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(52): warning C4996: ' WSALookupServiceBeginA': Use WSALookupServiceBeginW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable depr ecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort .vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(3628): note: see declaration of 'WSALookupS erviceBeginA' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(58): warning C4996: ' WSALookupServiceNextA': Use WSALookupServiceNextW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprec ated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.v cxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(3679): note: see declaration of 'WSALookupS erviceNextA' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(104): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetoot h\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\nan\nan.h(1742): note: see declaration of 'Nan::Callback::C all' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(128): error C2660: 'v 8::FunctionTemplate::GetFunction': function does not take 0 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\nod e_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\appdata\local\node-gyp\cache\12.16.3\include\node\v8.h(6126): note: see declaration of 'v8::Function Template::GetFunction' (compiling source file ..\src\windows\DeviceINQ.cc) c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(128): error C2661: 'v 8::Object::Set': no overloaded function takes 1 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\no de-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(129): error C2660: 'v 8::FunctionTemplate::GetFunction': function does not take 0 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\nod e_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\appdata\local\node-gyp\cache\12.16.3\include\node\v8.h(6126): note: see declaration of 'v8::Function Template::GetFunction' (compiling source file ..\src\windows\DeviceINQ.cc) c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(129): error C2661: 'v 8::Object::Set': no overloaded function takes 1 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\no de-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(130): error C2660: 'v 8::FunctionTemplate::GetFunction': function does not take 0 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\nod e_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\appdata\local\node-gyp\cache\12.16.3\include\node\v8.h(6126): note: see declaration of 'v8::Function Template::GetFunction' (compiling source file ..\src\windows\DeviceINQ.cc) c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(130): error C2661: 'v 8::Object::Set': no overloaded function takes 1 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\no de-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(131): error C2660: 'v 8::FunctionTemplate::GetFunction': function does not take 0 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\nod e_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\appdata\local\node-gyp\cache\12.16.3\include\node\v8.h(6126): note: see declaration of 'v8::Function Template::GetFunction' (compiling source file ..\src\windows\DeviceINQ.cc) c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(131): error C2661: 'v 8::Object::Set': no overloaded function takes 1 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\no de-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(146): warning C4996: '_WSAQuerySetA::dwSize': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API w arnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1320): note: see declaration of '_WSAQueryS etA::dwSize' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(147): warning C4996: '_WSAQuerySetA::dwNameSpace': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxpro j] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1325): note: see declaration of '_WSAQueryS etA::dwNameSpace' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(168): warning C4996: '_WSAQuerySetA::lpcsaBuffer': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxpro j] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1332): note: see declaration of '_WSAQueryS etA::lpcsaBuffer' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(172): warning C4996: '_WSAQuerySetA::lpcsaBuffer': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxpro j] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1332): note: see declaration of '_WSAQueryS etA::lpcsaBuffer' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(180): warning C4473: 'sscanf_s' : not enough arguments passed for format string [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\n ode-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(180): note: placeho lders and their parameters expect 2 variadic arguments, but 1 were provided c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(180): note: the mis sing variadic argument 2 is required by format string '%18[^)]' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(180): note: this ar gument is used as a buffer size c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(185): warning C4996: '_WSAQuerySetA::lpszServiceInstanceName': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSeria lPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1321): note: see declaration of '_WSAQueryS etA::lpszServiceInstanceName' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(151): warning C4996: 'WSALookupServiceBeginA': Use WSALookupServiceBeginW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable dep recated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPor t.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(3628): note: see declaration of 'WSALookupS erviceBeginA' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(164): warning C4996: 'WSALookupServiceNextA': Use WSALookupServiceNextW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable depre cated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort. vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(3679): note: see declaration of 'WSALookupS erviceNextA' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(172): warning C4996: 'WSAAddressToStringA': Use WSAAddressToStringW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecate d API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxp roj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(3507): note: see declaration of 'WSAAddress ToStringA' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(267): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetoot h\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\nan\nan.h(1742): note: see declaration of 'Nan::Callback::C all' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(270): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetoot h\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\nan\nan.h(1742): note: see declaration of 'Nan::Callback::C all' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(299): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetoot h\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\nan\nan.h(1742): note: see declaration of 'Nan::Callback::C all' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(302): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetoot h\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\nan\nan.h(1742): note: see declaration of 'Nan::Callback::C all' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(336): error C2664: 'v 8::String::Utf8Value::Utf8Value(const v8::String::Utf8Value &)': cannot convert argument 1 from 'v8::Localv8::Value' to 'const v8::String::Utf8Value &' [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\Blue toothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(336): note: Reason: cannot convert from 'v8::Localv8::Value' to 'const v8::String::Utf8Value' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(336): note: No user -defined-conversion operator available that can perform this conversion, or the operator cannot be called c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(378): warning C4996: '_WSAQuerySetA::dwSize': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API w arnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1320): note: see declaration of '_WSAQueryS etA::dwSize' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(379): warning C4996: '_WSAQuerySetA::dwNameSpace': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxpro j] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1325): note: see declaration of '_WSAQueryS etA::dwNameSpace' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(394): warning C4996: '_WSAQuerySetA::dwOutputFlags': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecate d API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxp roj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1333): note: see declaration of '_WSAQueryS etA::dwOutputFlags' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(397): warning C4996: '_WSAQuerySetA::lpcsaBuffer': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxpro j] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1332): note: see declaration of '_WSAQueryS etA::lpcsaBuffer' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(401): warning C4996: '_WSAQuerySetA::lpcsaBuffer': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxpro j] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1332): note: see declaration of '_WSAQueryS etA::lpcsaBuffer' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(410): warning C4473: 'sscanf_s' : not enough arguments passed for format string [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\n ode-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(410): note: placeho lders and their parameters expect 2 variadic arguments, but 1 were provided c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(410): note: the mis sing variadic argument 2 is required by format string '%18[^)]' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(410): note: this ar gument is used as a buffer size c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(411): warning C4473: 'sscanf_s' : not enough arguments passed for format string [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\n ode-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(411): note: placeho lders and their parameters expect 2 variadic arguments, but 1 were provided c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(411): note: the mis sing variadic argument 2 is required by format string '%18[^)]' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(411): note: this ar gument is used as a buffer size c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(416): warning C4996: '_WSAQuerySetA::lpszServiceInstanceName': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSeria lPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1321): note: see declaration of '_WSAQueryS etA::lpszServiceInstanceName' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(428): warning C4996: '_WSAQuerySetA::dwSize': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API w arnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1320): note: see declaration of '_WSAQueryS etA::dwSize' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(429): warning C4996: '_WSAQuerySetA::lpszContext': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxpro j] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1327): note: see declaration of '_WSAQueryS etA::lpszContext' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(431): warning C4996: '_WSAQuerySetA::lpServiceClassId': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprec ated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.v cxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1322): note: see declaration of '_WSAQueryS etA::lpServiceClassId' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(432): warning C4996: '_WSAQuerySetA::dwNameSpace': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxpro j] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1325): note: see declaration of '_WSAQueryS etA::dwNameSpace' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(444): warning C4996: '_WSAQuerySetA::lpcsaBuffer': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxpro j] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1332): note: see declaration of '_WSAQueryS etA::lpcsaBuffer' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(447): warning C4996: '_WSAQuerySetA::lpszServiceInstanceName': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSeria lPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1321): note: see declaration of '_WSAQueryS etA::lpszServiceInstanceName' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(522): error C2660: 'v 8::Function::Call': function does not take 3 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node- bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\appdata\local\node-gyp\cache\12.16.3\include\node\v8.h(4298): note: see declaration of 'v8::Function ::Call' (compiling source file ..\src\windows\DeviceINQ.cc) c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(385): warning C4996: 'WSALookupServiceBeginA': Use WSALookupServiceBeginW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable dep recated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPor t.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(3628): note: see declaration of 'WSALookupS erviceBeginA' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(391): warning C4996: 'WSALookupServiceNextA': Use WSALookupServiceNextW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable depre cated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort. vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(3679): note: see declaration of 'WSALookupS erviceNextA' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(401): warning C4996: 'WSAAddressToStringA': Use WSAAddressToStringW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecate d API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxp roj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(3507): note: see declaration of 'WSAAddress ToStringA' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(416): warning C4996: 'v8::Object::Set': was declared deprecated [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\bu ild\BluetoothSerialPort.vcxproj] c:\users\joaquim\appdata\local\node-gyp\cache\12.16.3\include\node\v8.h(3498): note: see declaration of 'v8::Object:: Set' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(417): warning C4996: 'v8::Object::Set': was declared deprecated [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\bu ild\BluetoothSerialPort.vcxproj] c:\users\joaquim\appdata\local\node-gyp\cache\12.16.3\include\node\v8.h(3498): note: see declaration of 'v8::Object:: Set' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(438): warning C4996: 'WSALookupServiceBeginA': Use WSALookupServiceBeginW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable dep recated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPor t.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(3628): note: see declaration of 'WSALookupS erviceBeginA' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(442): warning C4996: 'WSALookupServiceNextA': Use WSALookupServiceNextW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable depre cated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort. vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(3679): note: see declaration of 'WSALookupS erviceNextA' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(446): warning C4996: 'v8::Object::Set': was declared deprecated [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\bu ild\BluetoothSerialPort.vcxproj] c:\users\joaquim\appdata\local\node-gyp\cache\12.16.3\include\node\v8.h(3498): note: see declaration of 'v8::Object:: Set' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(447): warning C4996: 'v8::Object::Set': was declared deprecated [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\bu ild\BluetoothSerialPort.vcxproj] c:\users\joaquim\appdata\local\node-gyp\cache\12.16.3\include\node\v8.h(3498): note: see declaration of 'v8::Object:: Set' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(448): warning C4996: 'v8::Object::Set': was declared deprecated [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\bu ild\BluetoothSerialPort.vcxproj] c:\users\joaquim\appdata\local\node-gyp\cache\12.16.3\include\node\v8.h(3507): note: see declaration of 'v8::Object:: Set' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(477): warning C4996: 'v8::Object::Set': was declared deprecated [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\bu ild\BluetoothSerialPort.vcxproj] c:\users\joaquim\appdata\local\node-gyp\cache\12.16.3\include\node\v8.h(3498): note: see declaration of 'v8::Object:: Set' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(478): warning C4996: 'v8::Object::Set': was declared deprecated [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\bu ild\BluetoothSerialPort.vcxproj] c:\users\joaquim\appdata\local\node-gyp\cache\12.16.3\include\node\v8.h(3507): note: see declaration of 'v8::Object:: Set' win_delay_load_hook.cc BluetoothSerialPortServer.vcxproj -> C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\R elease\BluetoothSerialPortServer.node gyp ERR! build error gyp ERR! stack Error: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe failed with exit code: 1 gyp ERR! stack at ChildProcess.onExit (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js:194:23) gyp ERR! stack at ChildProcess.emit (events.js:310:20) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12) gyp ERR! System Windows_NT 10.0.18362 gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" "configure" "build" gyp ERR! cwd C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth gyp ERR! node -v v12.16.3 gyp ERR! node-gyp -v v5.1.0 gyp ERR! not ok npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! node-bluetooth@1.2.6 install: node-gyp configure build npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the node-bluetooth@1.2.6 install script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. </details>

After looking through similar issues in github and stackoverflow, I read that one possible solution was to downgrade the Nodejs version to 11.X. So, I repeated the previous approach using Node v11.15.0 instead of v12.16.3. Once again, I purged everything from Node-gyp to the package-lock and node-modules and fresh installed all of them again. Thus, my new final environment was the following:

  • Windows 10
  • Electron: v8.2.5 (comes with node v12.13.0)
  • Nodejs: v11.15.0
  • Node-gyp: v6.1.0
  • MS Build Tools: 2015 & 2017 (from Visual Studio 2017, not 2019)
  • Python: 2.7

Initially, with this setup, I also had node-gyp v5.1.0 and the same installation error as previosly described. However, after updating node-gyp to v6.1.0, I finally managed to install the module node-bluetooth (which did not happen when using node-gyp v6.1.0 and node 12.16). The final step was to run the command .\node_modules\.bin\electron-rebuild.cmd and start the electron app. However, when rebuilding the app, the following error was thrown when rebuilding node-bluetooth:

gyp ERR! build error gyp ERR! stack Error: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe failed with exit code: 1 gyp ERR! stack at ChildProcess.onExit (C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\electron-rebuild\node_modules\node-gyp\lib\build.js:194:23) gyp ERR! stack at ChildProcess.emit (events.js:193:13) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:255:12) gyp ERR! System Windows_NT 10.0.18362 gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\electron-rebuild\node_modules\node-gyp\bin\node-gyp.js" "rebuild" "--target=8.2.5" "--arch=x64" "--dist-url=https://www.electronjs.org/headers" "--build-from-source" gyp ERR! cwd C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth gyp ERR! node -v v11.15.0 gyp ERR! node-gyp -v v6.1.0 gyp ERR! not ok

<details> <summary>(Check Complete Error Log Here!)</summary>

PS C:\Users\Joaquim\Desktop\TempestMASTR-mestre> .\node_modules.bin\electron-rebuild.cmd × Rebuild Failed

An unhandled error occurred inside electron-rebuild gyp info it worked if it ends with ok gyp info using node-gyp@6.1.0 gyp info using node@11.15.0 | win32 | x64 gyp info find Python using Python version 2.7.15 found at "C:\Users\Joaquim.windows-build-tools\python27\python.exe" gyp info find VS using VS2017 (15.9.28307.1146) found at: gyp info find VS "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community" gyp info find VS run with --verbose for detailed information gyp info spawn C:\Users\Joaquim.windows-build-tools\python27\python.exe gyp info spawn args [ 'C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\electron-rebuild\node_modules\node-gyp\gyp\gyp_main.py', gyp info spawn args 'binding.gyp', gyp info spawn args '-f', gyp info spawn args 'msvs', gyp info spawn args '-I', gyp info spawn args 'C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\config.gypi', gyp info spawn args '-I', gyp info spawn args 'C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\electron-rebuild\node_modules\node-gyp\addon.gypi', gyp info spawn args '-I', gyp info spawn args 'C:\Users\Joaquim\.electron-gyp\8.2.5\include\node\common.gypi', gyp info spawn args '-Dlibrary=shared_library', gyp info spawn args '-Dvisibility=default', gyp info spawn args '-Dnode_root_dir=C:\Users\Joaquim\.electron-gyp\8.2.5', gyp info spawn args '-Dnode_gyp_dir=C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\electron-rebuild\node_modules\node-gyp', gyp info spawn args '-Dnode_lib_file=C:\\Users\\Joaquim\\.electron-gyp\\8.2.5\\<(target_arch)\\node.lib', gyp info spawn args '-Dmodule_root_dir=C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth', gyp info spawn args '-Dnode_engine=v8', gyp info spawn args '--depth=.', gyp info spawn args '--no-parallel', gyp info spawn args '--generator-output', gyp info spawn args 'C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build', gyp info spawn args '-Goutput_dir=.' ] gyp info spawn C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe gyp info spawn args [ 'build/binding.sln', gyp info spawn args '/clp:Verbosity=minimal', gyp info spawn args '/nologo', gyp info spawn args '/p:Configuration=Release;Platform=x64' ] Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch. BluetoothSerialPort.cc DeviceINQ.cc BTSerialPortBinding.cc BluetoothHelpers.cc win_delay_load_hook.cc c:\users\joaquim.electron-gyp\8.2.5\include\node\v8.h(8923): warning C4996: 'v8::MicrotasksCompletedCallback': Use *WithData version. (compiling source file ..\src\windows\BluetoothSerialPort.cc) [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim.electron-gyp\8.2.5\include\node\v8.h(7238): note: see declaration of 'v8::MicrotasksCompletedCallback' (compiling source file ..\src\windows\BluetoothSerialPort.cc) c:\users\joaquim.electron-gyp\8.2.5\include\node\v8.h(8931): warning C4996: 'v8::MicrotasksCompletedCallback': Use *WithData version. (compiling source file ..\src\windows\BluetoothSerialPort.cc) [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim.electron-gyp\8.2.5\include\node\v8.h(7238): note: see declaration of 'v8::MicrotasksCompletedCallback' (compiling source file ..\src\windows\BluetoothSerialPort.cc) c:\users\joaquim.electron-gyp\8.2.5\include\node\v8.h(8923): warning C4996: 'v8::MicrotasksCompletedCallback': Use *WithData version. (compiling source file ..\src\windows\BTSerialPortBinding.cc) [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim.electron-gyp\8.2.5\include\node\v8.h(7238): note: see declaration of 'v8::MicrotasksCompletedCallback' (compiling source file ..\src\windows\BTSerialPortBinding.cc) c:\users\joaquim.electron-gyp\8.2.5\include\node\v8.h(8931): warning C4996: 'v8::MicrotasksCompletedCallback': Use *WithData version. (compiling source file ..\src\windows\BTSerialPortBinding.cc) [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim.electron-gyp\8.2.5\include\node\v8.h(7238): note: see declaration of 'v8::MicrotasksCompletedCallback' (compiling source file ..\src\windows\BTSerialPortBinding.cc) c:\users\joaquim.electron-gyp\8.2.5\include\node\v8.h(8923): warning C4996: 'v8::MicrotasksCompletedCallback': Use *WithData version. (compiling source file ..\src\windows\DeviceINQ.cc) [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim.electron-gyp\8.2.5\include\node\v8.h(7238): note: see declaration of 'v8::MicrotasksCompletedCallback' (compiling source file ..\src\windows\DeviceINQ.cc) c:\users\joaquim.electron-gyp\8.2.5\include\node\v8.h(8931): warning C4996: 'v8::MicrotasksCompletedCallback': Use *WithData version. (compiling source file ..\src\windows\DeviceINQ.cc) [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim.electron-gyp\8.2.5\include\node\v8.h(7238): note: see declaration of 'v8::MicrotasksCompletedCallback' (compiling source file ..\src\windows\DeviceINQ.cc) c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(39): warning C4996: 'WSAStringToAddressA': Use WSAStringToAddressW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(3566): note: see declaration of 'WSAStringToAddressA' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(65): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\nan\nan.h(1742): note: see declaration of 'Nan::Callback::Call' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(74): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\nan\nan.h(1742): note: see declaration of 'Nan::Callback::Call' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(125): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\nan\nan.h(1742): note: see declaration of 'Nan::Callback::Call' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(186): error C2661: 'v8::Object::Get': no overloaded function takes 1 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(186): error C2672: 'v8::Localv8::Function::Cast': no matching overloaded function found [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(196): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\nan\nan.h(1742): note: see declaration of 'Nan::Callback::Call' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(219): error C2660: 'v8::FunctionTemplate::GetFunction': function does not take 0 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim.electron-gyp\8.2.5\include\node\v8.h(6369): note: see declaration of 'v8::FunctionTemplate::GetFunction' (compiling source file ..\src\windows\BTSerialPortBinding.cc) c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(219): error C2661: 'v8::Object::Set': no overloaded function takes 1 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(220): error C2660: 'v8::FunctionTemplate::GetFunction': function does not take 0 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim.electron-gyp\8.2.5\include\node\v8.h(6369): note: see declaration of 'v8::FunctionTemplate::GetFunction' (compiling source file ..\src\windows\BTSerialPortBinding.cc) c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(220): error C2661: 'v8::Object::Set': no overloaded function takes 1 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(221): error C2660: 'v8::FunctionTemplate::GetFunction': function does not take 0 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim.electron-gyp\8.2.5\include\node\v8.h(6369): note: see declaration of 'v8::FunctionTemplate::GetFunction' (compiling source file ..\src\windows\BTSerialPortBinding.cc) c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(221): error C2661: 'v8::Object::Set': no overloaded function takes 1 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(242): warning C4996: 'v8::String::Utf8Value::Utf8Value': Use Isolate version [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim.electron-gyp\8.2.5\include\node\v8.h(3236): note: see declaration of 'v8::String::Utf8Value::Utf8Value' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(243): warning C4996: 'v8::Value::Int32Value': Use maybe version [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim.electron-gyp\8.2.5\include\node\v8.h(2819): note: see declaration of 'v8::Value::Int32Value' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\btserialportbinding.cc(352): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\nan\nan.h(1742): note: see declaration of 'Nan::Callback::Call' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(44): warning C4996: '_WSAQuerySetA::dwSize': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1320): note: see declaration of '_WSAQuerySetA::dwSize' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(45): warning C4996: '_WSAQuerySetA::dwNameSpace': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1325): note: see declaration of '_WSAQuerySetA::dwNameSpace' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(46): warning C4996: '_WSAQuerySetA::lpServiceClassId': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1322): note: see declaration of '_WSAQuerySetA::lpServiceClassId' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(47): warning C4996: '_WSAQuerySetA::dwNumberOfCsAddrs': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1331): note: see declaration of '_WSAQuerySetA::dwNumberOfCsAddrs' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(48): warning C4996: '_WSAQuerySetA::lpszContext': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1327): note: see declaration of '_WSAQuerySetA::lpszContext' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(61): warning C4996: '_WSAQuerySetA::lpcsaBuffer': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1332): note: see declaration of '_WSAQuerySetA::lpcsaBuffer' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(52): warning C4996: 'WSALookupServiceBeginA': Use WSALookupServiceBeginW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(3628): note: see declaration of 'WSALookupServiceBeginA' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(58): warning C4996: 'WSALookupServiceNextA': Use WSALookupServiceNextW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(3679): note: see declaration of 'WSALookupServiceNextA' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(104): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\nan\nan.h(1742): note: see declaration of 'Nan::Callback::Call' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(128): error C2660: 'v8::FunctionTemplate::GetFunction': function does not take 0 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim.electron-gyp\8.2.5\include\node\v8.h(6369): note: see declaration of 'v8::FunctionTemplate::GetFunction' (compiling source file ..\src\windows\DeviceINQ.cc) c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(128): error C2661: 'v8::Object::Set': no overloaded function takes 1 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(129): error C2660: 'v8::FunctionTemplate::GetFunction': function does not take 0 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim.electron-gyp\8.2.5\include\node\v8.h(6369): note: see declaration of 'v8::FunctionTemplate::GetFunction' (compiling source file ..\src\windows\DeviceINQ.cc) c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(129): error C2661: 'v8::Object::Set': no overloaded function takes 1 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(130): error C2660: 'v8::FunctionTemplate::GetFunction': function does not take 0 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim.electron-gyp\8.2.5\include\node\v8.h(6369): note: see declaration of 'v8::FunctionTemplate::GetFunction' (compiling source file ..\src\windows\DeviceINQ.cc) c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(130): error C2661: 'v8::Object::Set': no overloaded function takes 1 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(131): error C2660: 'v8::FunctionTemplate::GetFunction': function does not take 0 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim.electron-gyp\8.2.5\include\node\v8.h(6369): note: see declaration of 'v8::FunctionTemplate::GetFunction' (compiling source file ..\src\windows\DeviceINQ.cc) c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(131): error C2661: 'v8::Object::Set': no overloaded function takes 1 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(146): warning C4996: '_WSAQuerySetA::dwSize': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1320): note: see declaration of '_WSAQuerySetA::dwSize' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(147): warning C4996: '_WSAQuerySetA::dwNameSpace': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1325): note: see declaration of '_WSAQuerySetA::dwNameSpace' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(168): warning C4996: '_WSAQuerySetA::lpcsaBuffer': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1332): note: see declaration of '_WSAQuerySetA::lpcsaBuffer' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(172): warning C4996: '_WSAQuerySetA::lpcsaBuffer': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1332): note: see declaration of '_WSAQuerySetA::lpcsaBuffer' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(180): warning C4473: 'sscanf_s' : not enough arguments passed for format string [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(180): note: placeholders and their parameters expect 2 variadic arguments, but 1 were provided c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(180): note: the missing variadic argument 2 is required by format string '%18[^)]' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(180): note: this argument is used as a buffer size c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(185): warning C4996: '_WSAQuerySetA::lpszServiceInstanceName': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1321): note: see declaration of '_WSAQuerySetA::lpszServiceInstanceName' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(151): warning C4996: 'WSALookupServiceBeginA': Use WSALookupServiceBeginW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(3628): note: see declaration of 'WSALookupServiceBeginA' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(164): warning C4996: 'WSALookupServiceNextA': Use WSALookupServiceNextW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(3679): note: see declaration of 'WSALookupServiceNextA' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(172): warning C4996: 'WSAAddressToStringA': Use WSAAddressToStringW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(3507): note: see declaration of 'WSAAddressToStringA' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(267): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\nan\nan.h(1742): note: see declaration of 'Nan::Callback::Call' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(270): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\nan\nan.h(1742): note: see declaration of 'Nan::Callback::Call' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(299): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\nan\nan.h(1742): note: see declaration of 'Nan::Callback::Call' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(302): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\nan\nan.h(1742): note: see declaration of 'Nan::Callback::Call' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(336): warning C4996: 'v8::String::Utf8Value::Utf8Value': Use Isolate version [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim.electron-gyp\8.2.5\include\node\v8.h(3236): note: see declaration of 'v8::String::Utf8Value::Utf8Value' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(378): warning C4996: '_WSAQuerySetA::dwSize': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1320): note: see declaration of '_WSAQuerySetA::dwSize' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(379): warning C4996: '_WSAQuerySetA::dwNameSpace': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1325): note: see declaration of '_WSAQuerySetA::dwNameSpace' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(394): warning C4996: '_WSAQuerySetA::dwOutputFlags': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1333): note: see declaration of '_WSAQuerySetA::dwOutputFlags' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(397): warning C4996: '_WSAQuerySetA::lpcsaBuffer': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1332): note: see declaration of '_WSAQuerySetA::lpcsaBuffer' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(401): warning C4996: '_WSAQuerySetA::lpcsaBuffer': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1332): note: see declaration of '_WSAQuerySetA::lpcsaBuffer' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(410): warning C4473: 'sscanf_s' : not enough arguments passed for format string [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(410): note: placeholders and their parameters expect 2 variadic arguments, but 1 were provided c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(410): note: the missing variadic argument 2 is required by format string '%18[^)]' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(410): note: this argument is used as a buffer size c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(411): warning C4473: 'sscanf_s' : not enough arguments passed for format string [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(411): note: placeholders and their parameters expect 2 variadic arguments, but 1 were provided c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(411): note: the missing variadic argument 2 is required by format string '%18[^)]' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(411): note: this argument is used as a buffer size c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(416): warning C4996: '_WSAQuerySetA::lpszServiceInstanceName': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1321): note: see declaration of '_WSAQuerySetA::lpszServiceInstanceName' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(416): error C2661: 'v8::Object::Set': no overloaded function takes 2 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(417): error C2661: 'v8::Object::Set': no overloaded function takes 2 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(428): warning C4996: '_WSAQuerySetA::dwSize': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1320): note: see declaration of '_WSAQuerySetA::dwSize' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(429): warning C4996: '_WSAQuerySetA::lpszContext': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1327): note: see declaration of '_WSAQuerySetA::lpszContext' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(431): warning C4996: '_WSAQuerySetA::lpServiceClassId': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1322): note: see declaration of '_WSAQuerySetA::lpServiceClassId' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(432): warning C4996: '_WSAQuerySetA::dwNameSpace': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1325): note: see declaration of '_WSAQuerySetA::dwNameSpace' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(444): warning C4996: '_WSAQuerySetA::lpcsaBuffer': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1332): note: see declaration of '_WSAQuerySetA::lpcsaBuffer' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(446): error C2661: 'v8::Object::Set': no overloaded function takes 2 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(447): warning C4996: '_WSAQuerySetA::lpszServiceInstanceName': Use WSAQUERYSETW instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(1321): note: see declaration of '_WSAQuerySetA::lpszServiceInstanceName' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(447): error C2661: 'v8::Object::Set': no overloaded function takes 2 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(448): error C2661: 'v8::Object::Set': no overloaded function takes 2 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(477): error C2661: 'v8::Object::Set': no overloaded function takes 2 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(478): error C2661: 'v8::Object::Set': no overloaded function takes 2 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(522): error C2660: 'v8::Function::Call': function does not take 3 arguments [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\users\joaquim.electron-gyp\8.2.5\include\node\v8.h(4399): note: see declaration of 'v8::Function::Call' (compiling source file ..\src\windows\DeviceINQ.cc) c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(385): warning C4996: 'WSALookupServiceBeginA': Use WSALookupServiceBeginW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(3628): note: see declaration of 'WSALookupServiceBeginA' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(391): warning C4996: 'WSALookupServiceNextA': Use WSALookupServiceNextW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(3679): note: see declaration of 'WSALookupServiceNextA' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(401): warning C4996: 'WSAAddressToStringA': Use WSAAddressToStringW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(3507): note: see declaration of 'WSAAddressToStringA' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(438): warning C4996: 'WSALookupServiceBeginA': Use WSALookupServiceBeginW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(3628): note: see declaration of 'WSALookupServiceBeginA' c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(442): warning C4996: 'WSALookupServiceNextA': Use WSALookupServiceNextW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings [C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\BluetoothSerialPort.vcxproj] c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winsock2.h(3679): note: see declaration of 'WSALookupServiceNextA' win_delay_load_hook.cc Generating code All 1 functions were compiled because no usable IPDB/IOBJ from previous compilation was found. Finished generating code BluetoothSerialPortServer.vcxproj -> C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth\build\Release\BluetoothSerialPortServer.node gyp ERR! build error gyp ERR! stack Error: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe failed with exit code: 1 gyp ERR! stack at ChildProcess.onExit (C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\electron-rebuild\node_modules\node-gyp\lib\build.js:194:23) gyp ERR! stack at ChildProcess.emit (events.js:193:13) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:255:12) gyp ERR! System Windows_NT 10.0.18362 gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\electron-rebuild\node_modules\node-gyp\bin\node-gyp.js" "rebuild" "--target=8.2.5" "--arch=x64" "--dist-url=https://www.electronjs.org/headers" "--build-from-source" gyp ERR! cwd C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\node-bluetooth gyp ERR! node -v v11.15.0 gyp ERR! node-gyp -v v6.1.0 gyp ERR! not ok

Failed with exit code: 1 at SafeSubscriber._error (C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\spawn-rx\lib\src\index.js:267:84) at SafeSubscriber.__tryOrUnsub (C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\rxjs\internal\Subscriber.js:205:16) at SafeSubscriber.error (C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\rxjs\internal\Subscriber.js:156:26) at Subscriber._error (C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\rxjs\internal\Subscriber.js:92:26) at Subscriber.error (C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\rxjs\internal\Subscriber.js:72:18) at MapSubscriber.Subscriber._error (C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\rxjs\internal\Subscriber.js:92:26) at MapSubscriber.Subscriber.error (C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\rxjs\internal\Subscriber.js:72:18) at SafeSubscriber._next (C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\spawn-rx\lib\src\index.js:242:65) at SafeSubscriber.__tryOrUnsub (C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\rxjs\internal\Subscriber.js:205:16) at SafeSubscriber.next (C:\Users\Joaquim\Desktop\TempestMASTR-mestre\node_modules\rxjs\internal\Subscriber.js:143:22) </details>

I have been banging my head against this for a week already and have yet to find a working solution. I am new to programming in Electron and Nodejs, so I am probably overlooking something obvious but I would be really thankful if someone could help me out.

TL;DR: I am trying to update the Electron version of a project but npm install/electron rebuild fail due to problems with node-gyp and node-bluetooth.

closed time in 12 days

miguel436

issue commentnodejs/node-gyp

Node-gyp Error when updating Electron Version

Thanks for the report but you're in the wrong bug tracker.

If you look at the build logs, you'll see error Cxxxx errors - those are compilation failures caused by incompatibilities between the modules you're trying to build and the node runtime you're trying to build them against.

The best advice I can give you is to check on a case-by-case basis what version of what modules works with what version of node/electron.

Take for example this error:

c:\users\joaquim\desktop\tempestmastr-mestre\node_modules\node-bluetooth\src\windows\deviceinq.cc(522): error C2660: 'v8::Function::Call': function does not take 3 arguments

The three arg version of v8::Function::Call() was removed a long time ago so chances are you're either trying to build an old version of node-bluetooth or that module hasn't been updated for newer node versions. Probably the former because node-bluetooth's github repo seems to receive the occasional fix.

miguel436

comment created time in 12 days

delete branch bnoordhuis/http-parser

delete branch : fix514

delete time in 12 days

PR merged nodejs/http-parser

Fix -Wsign-compare warning.

The operands to + are promoted from uint16_t to int before addition, making the expression off + len <= buflen emit a warning because buflen is unsigned.

Fixes: https://github.com/nodejs/http-parser/issues/514

+1 -1

0 comment

1 changed file

bnoordhuis

pr closed time in 12 days

push eventbnoordhuis/http-parser

Ben Noordhuis

commit sha d9275da4650fd1133ddc96480df32a9efe4b059b

Fix -Wsign-compare warning. The operands to `+` are promoted from `uint16_t` to `int` before addition, making the expression `off + len <= buflen` emit a warning because `buflen` is unsigned. Fixes: https://github.com/nodejs/http-parser/issues/514 PR-URL: https://github.com/nodejs/http-parser/pull/515 Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>

view details

push time in 12 days

issue commentnodejs/node

wasi.start() throws type error

Jest runs your code in a VM sandbox (think require('vm').runInNewContext('/* your code */')) and that sandbox has its own copies of the built-in globals.

When your code calls out to the outer context, the instance instanceof WebAssembly.Instance check in lib/wasi.js fails because it's a different instance of, er, Instance.

I think that check and the WebAssembly.Memory check can be removed without ill effects, as long as the argument duck-types as a WebAssembly.Instance object.

Do you want to open a PR? It should come with tests in test/wasi that checks various kinds of valid and invalid inputs.

jtenner

comment created time in 12 days

issue commentlibuv/libuv

win: Optionally customize process-wide error/debug hooks

Does someone want to move this forward and open a pull request?

W.r.t. JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION, I think we can just remove it and see what happens in the CI.

bradking

comment created time in 12 days

issue commentlibuv/libuv

uv_getaddrinfo() suddenly never got a callback

Next time it happens, can you attach gdb to the process and run thread apply all backtrace full? That should show where it's blocking/hanging.

I'll close this for now but let me know if you have more information.

Blankwonder

comment created time in 12 days

issue closedlibuv/libuv

uv_getaddrinfo() suddenly never got a callback

  • Version: 1.37.0
  • Platform: Linux 4.9.0-12-amd64 #1 SMP Debian 4.9.210-1 (2020-01-20) x86_64 GNU/Linux

I found my personal proxy server program stopping working one hour ago. Luckily I enabled the debug log so that I can dig into the problem.

From the log file, I discovered that starting from a particular moment all uv_getaddrinfo() invokes never got a callback, no result and no error.

Therefore I tried ping and dig commands on the system, and everything seemed normal. After restarting the program, the problem went away immediately.

My program has running on the server for about a year, and I never encountered this issue before. The difference is that I upgraded libuv to 1.37.0 recently. Sorry, I didn't collect more useful information. Please let me know if there is any other thing I may collect if I reencounter the issue.

closed time in 12 days

Blankwonder

issue commentlibuv/libuv

RFC: fail gracefully in uv_{get,set}_process_title when uv_setup_args is not called

I agree. PR welcome. UV_ENOBUFS seems as good as any for the error code.

squeek502

comment created time in 12 days

issue commentlibuv/libuv

Test fail on tcp_bind_error_addrinuse

WSL isn't a supported (or tested) environment so I think you're on your own here. If you figure out what's causing it, please post an update or send a pull request.

RobertIndie

comment created time in 12 days

issue commentlibuv/help

uv_fs_scandir memory leak

Can you post a complete, standalone example? I.e., one that includes a main() function and can be compiled and run as-is?

akitaTian

comment created time in 12 days

issue commentlibuv/libuv

win: arithmetic overflow in uv__hrtime()?

Oh, you're absolutely right! Yes, in that case it's on the order of 245 with scale=1e9, and only 225 bits with scale=1e3. Okay, there goes that hypothesis out the window.

bnoordhuis

comment created time in 12 days

pull request commentnodejs/node

Revert "tls: add highWaterMark option for connect"

why is there an issue with hwm > 16K?

It's not a reliable measure if you use it to limit memory usage.

Say I have M bytes of memory. Most people probably expect S=M/HWM, where S is the number of TLS streams that can exist simultaneously.

But it doesn't work that way. The real formula is S=M/(HWM+X), where X is the additional overhead of the TLS stream: frame record buffer, keying material, etc.

X can be sizable (an extra 40 or 50k is not exceptional) and can vary over time. Maybe I set HWM=32k but the actual memory footprint might well be double that.

puzpuzpuz

comment created time in 12 days

issue commentlibuv/libuv

Test fail on tcp_bind_error_addrinuse

Probably some WSL oddity. Does it work when you change the bind address to e.g. 127.0.0.1?

RobertIndie

comment created time in 12 days

issue commentlibuv/libuv

win: arithmetic overflow in uv__hrtime()?

@bzoz I agree, but I think the calculation is indeed incorrect. That numbers the reporter posted work out to 272692642196 * 1e7 * 1e3, or about 2**71. Definitely doesn't fit in an uint64_t.

The counterargument of course is that the numbers you posted are even worse and your machine doesn't exhibit the problem. :-)

Your observation about 128 bits math being complicated is on point. I couldn't even get mingw to recognize __int128 or int __attribute__((__mode__(TI))), although it supposedly supports it. I'll try to poke at it more tomorrow.

bnoordhuis

comment created time in 12 days

Pull request review commentnodejs/node

fs: implement lutimes

 static void FUTimes(const FunctionCallbackInfo<Value>& args) {   } } +static void LUTimes(const FunctionCallbackInfo<Value>& args) {+  Environment* env = Environment::GetCurrent(args);++  const int argc = args.Length();+  CHECK_GE(argc, 3);++  BufferValue path(env->isolate(), args[0]);+  CHECK_NOT_NULL(*path);++  CHECK(args[1]->IsNumber());+  const double atime = args[1].As<Number>()->Value();++  CHECK(args[2]->IsNumber());+  const double mtime = args[2].As<Number>()->Value();++  FSReqBase* req_wrap_async = GetReqWrap(args, 3);+  if (req_wrap_async != nullptr) {  // lutimes(path, atime, mtime, req)+    AsyncCall(env, req_wrap_async, args, "lutime", UTF8, AfterNoArgs,+              uv_fs_lutime, *path, atime, mtime);+  } else {  // lutimes(path, atime, mtime, undefined, ctx)+    CHECK_EQ(argc, 5);+    FSReqWrapSync req_wrap_sync;+    FS_SYNC_TRACE_BEGIN(utimes);+    SyncCall(env, args[4], &req_wrap_sync, "lutime",+             uv_fs_lutime, *path, atime, mtime);+    FS_SYNC_TRACE_END(utimes);+  }+}

Yes, but remember the rule of three: duplicating something once? Probably okay. Duplicating it twice? Time to refactor.

arcanis

comment created time in 13 days

pull request commentnodejs/node

Revert "tls: add highWaterMark option for connect"

I'm basing my comment in the other issue on this line from doc/api/stream.md:

The amount of data potentially buffered depends on the highWaterMark option

In the context of receiving data (sending might a different matter), a HWM < 16k is meaningless because it's effectively ignored (because TLS frame size.)

HWM > 16k is really HWM + 16k because the TLS frame record buffer isn't under control of JS land. Any HWM buffering is on top of that frame record buffer.

puzpuzpuz

comment created time in 13 days

Pull request review commentnodejs/node

fs: implement lutimes

 static void FUTimes(const FunctionCallbackInfo<Value>& args) {   } } +static void LUTimes(const FunctionCallbackInfo<Value>& args) {+  Environment* env = Environment::GetCurrent(args);++  const int argc = args.Length();+  CHECK_GE(argc, 3);++  BufferValue path(env->isolate(), args[0]);+  CHECK_NOT_NULL(*path);++  CHECK(args[1]->IsNumber());+  const double atime = args[1].As<Number>()->Value();++  CHECK(args[2]->IsNumber());+  const double mtime = args[2].As<Number>()->Value();++  FSReqBase* req_wrap_async = GetReqWrap(args, 3);+  if (req_wrap_async != nullptr) {  // lutimes(path, atime, mtime, req)+    AsyncCall(env, req_wrap_async, args, "lutime", UTF8, AfterNoArgs,+              uv_fs_lutime, *path, atime, mtime);+  } else {  // lutimes(path, atime, mtime, undefined, ctx)+    CHECK_EQ(argc, 5);+    FSReqWrapSync req_wrap_sync;+    FS_SYNC_TRACE_BEGIN(utimes);+    SyncCall(env, args[4], &req_wrap_sync, "lutime",+             uv_fs_lutime, *path, atime, mtime);+    FS_SYNC_TRACE_END(utimes);+  }+}

It'd be nicer to share this code with UTimes(). The JS bindings too, although that's not as much code.

The FS_SYNC_TRACE_BEGIN/FS_SYNC_TRACE_END labels are off, by the way.

arcanis

comment created time in 13 days

issue commentnodejs/help

Need a way to configure http pool not for per host but for all hosts.

The maxFreeSockets option to the http.Agent constructor covers that, if I understand your question correctly. If not, can you elaborate?

namhong2001

comment created time in 13 days

more