Giter Site home page Giter Site logo

animetosho / node-yencode Goto Github PK

View Code? Open in Web Editor NEW
36.0 36.0 4.0 1.33 MB

SIMD accelerated yEnc encoder/decoder and CRC32 calculator for node.js

Python 2.84% JavaScript 5.52% C++ 70.27% Makefile 13.66% Shell 5.88% C 1.73% M4 0.09%
crc32 usenet yenc yencode

node-yencode's Issues

Errors trying to install yencode

i am getting this output

gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | linux | x64
gyp info find Python using Python version 2.7.17 found at "/usr/bin/python"
gyp http GET https://nodejs.org/download/release/v10.18.0/node-v10.18.0-headers.tar.gz
gyp http 200 https://nodejs.org/download/release/v10.18.0/node-v10.18.0-headers.tar.gz
gyp http GET https://nodejs.org/download/release/v10.18.0/SHASUMS256.txt
gyp http 200 https://nodejs.org/download/release/v10.18.0/SHASUMS256.txt
gyp info spawn /usr/bin/python
gyp info spawn args [ '/usr/lib/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args 'binding.gyp',
gyp info spawn args '-f',
gyp info spawn args 'make',
gyp info spawn args '-I',
gyp info spawn args '/root/Nyuu-0.3.8/node_modules/build/config.gypi',
gyp info spawn args '-I',
gyp info spawn args '/usr/lib/node_modules/node-gyp/addon.gypi',
gyp info spawn args '-I',
gyp info spawn args '/root/.cache/node-gyp/10.18.0/include/node/common.gypi',
gyp info spawn args '-Dlibrary=shared_library',
gyp info spawn args '-Dvisibility=default',
gyp info spawn args '-Dnode_root_dir=/root/.cache/node-gyp/10.18.0',
gyp info spawn args '-Dnode_gyp_dir=/usr/lib/node_modules/node-gyp',
gyp info spawn args '-Dnode_lib_file=/root/.cache/node-gyp/10.18.0/<(target_arch)/node.lib',
gyp info spawn args '-Dmodule_root_dir=/root/Nyuu-0.3.8/node_modules',
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 'build',
gyp info spawn args '-Goutput_dir=.' ]
gyp: binding.gyp not found (cwd: /root/Nyuu-0.3.8/node_modules) while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: gyp failed with exit code: 1
gyp ERR! stack at ChildProcess.onCpExit (/usr/lib/node_modules/node-gyp/lib/configure.js:351:16)
gyp ERR! stack at ChildProcess.emit (events.js:198:13)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)
gyp ERR! System Linux 4.15.0-72-generic
gyp ERR! command "/usr/bin/node" "/usr/bin/node-gyp" "rebuild"
gyp ERR! cwd /root/Nyuu-0.3.8/node_modules
gyp ERR! node -v v10.18.0
gyp ERR! node-gyp -v v5.0

when i tried installing yencode in ~/Nyuu-0.3.8/node_modules

Python bindings

It has been a few years since #4 and I would really like to incorporate the advanced yEnc-decoding you made into SABnzbd.
However, as a complete C++ novice I am unable to get things to work properly to even call your functions from Python in the most basic way,
Would you be willing to help me to create basic Python-C-extension to be able to use do_decode on a Python-string?

It would help me and our users so, so, much!

Trying to install yencode: "npm WARN saveError ENOENT: no such file or directory, open '/home/sander/package.json'"

Fresh Ubuntu 20.04, and trying to install yencode (so that I can run nyuu again), gives warnings at beginning and end

$ sudo npm install yencode

> [email protected] install /home/sander/node_modules/yencode
> node-gyp rebuild

gyp WARN EACCES current user ("sander") does not have permission to access the dev dir "/root/.cache/node-gyp/10.19.0"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/home/sander/node_modules/yencode/.node-gyp"
make: Entering directory '/home/sander/node_modules/yencode/build'
  CXX(target) Release/obj.target/crcutil/crcutil-1.0/code/crc32c_sse4.o
  CXX(target) Release/obj.target/crcutil/crcutil-1.0/code/multiword_64_64_cl_i386_mmx.o
  CXX(target) Release/obj.target/crcutil/crcutil-1.0/code/multiword_64_64_gcc_amd64_asm.o
  CXX(target) Release/obj.target/crcutil/crcutil-1.0/code/multiword_64_64_gcc_i386_mmx.o
  CXX(target) Release/obj.target/crcutil/crcutil-1.0/code/multiword_64_64_intrinsic_i386_mmx.o
  CXX(target) Release/obj.target/crcutil/crcutil-1.0/code/multiword_128_64_gcc_amd64_sse2.o
  CXX(target) Release/obj.target/crcutil/crcutil-1.0/examples/interface.o
  AR(target) Release/obj.target/crcutil.a
  COPY Release/crcutil.a
  CXX(target) Release/obj.target/yencode_sse2/src/encoder_sse2.o
  CXX(target) Release/obj.target/yencode_sse2/src/decoder_sse2.o
  AR(target) Release/obj.target/yencode_sse2.a
  COPY Release/yencode_sse2.a
  CXX(target) Release/obj.target/yencode_ssse3/src/encoder_ssse3.o
  CXX(target) Release/obj.target/yencode_ssse3/src/decoder_ssse3.o
  AR(target) Release/obj.target/yencode_ssse3.a
  COPY Release/yencode_ssse3.a
  CC(target) Release/obj.target/yencode_clmul/src/crc_folding.o
  AR(target) Release/obj.target/yencode_clmul.a
  COPY Release/yencode_clmul.a
  CXX(target) Release/obj.target/yencode_avx/src/encoder_avx.o
  CXX(target) Release/obj.target/yencode_avx/src/decoder_avx.o
  AR(target) Release/obj.target/yencode_avx.a
  COPY Release/yencode_avx.a
  CXX(target) Release/obj.target/yencode_avx2/src/decoder_avx2.o
  CXX(target) Release/obj.target/yencode_avx2/src/encoder_avx2.o
  AR(target) Release/obj.target/yencode_avx2.a
  COPY Release/yencode_avx2.a
  CXX(target) Release/obj.target/yencode_neon/src/encoder_neon.o
  CXX(target) Release/obj.target/yencode_neon/src/decoder_neon.o
  AR(target) Release/obj.target/yencode_neon.a
  COPY Release/yencode_neon.a
  CXX(target) Release/obj.target/yencode_armcrc/src/crc_arm.o
  AR(target) Release/obj.target/yencode_armcrc.a
  COPY Release/yencode_armcrc.a
  CXX(target) Release/obj.target/yencode/src/yencode.o
In file included from ../src/yencode.cc:2:
/home/sander/node_modules/yencode/.node-gyp/10.19.0/include/node/node.h:593:51: warning: cast between incompatible function types from ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, v8::Local<v8::Context>)’ to ‘node::addon_context_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, v8::Local<v8::Context>, void*)’} [-Wcast-function-type]
  593 |       (node::addon_context_register_func) (regfunc),                  \
      |                                                   ^
/home/sander/node_modules/yencode/.node-gyp/10.19.0/include/node/node.h:611:3: note: in expansion of macro ‘NODE_MODULE_CONTEXT_AWARE_X’
  611 |   NODE_MODULE_CONTEXT_AWARE_X(modname, regfunc, NULL, 0)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/sander/node_modules/yencode/.node-gyp/10.19.0/include/node/node.h:634:3: note: in expansion of macro ‘NODE_MODULE_CONTEXT_AWARE’
  634 |   NODE_MODULE_CONTEXT_AWARE(NODE_GYP_MODULE_NAME,                     \
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/yencode.cc:428:1: note: in expansion of macro ‘NODE_MODULE_INIT’
  428 | NODE_MODULE_INIT(/* exports, module, context */)
      | ^~~~~~~~~~~~~~~~
  CXX(target) Release/obj.target/yencode/src/platform.o
  CXX(target) Release/obj.target/yencode/src/encoder.o
  CXX(target) Release/obj.target/yencode/src/decoder.o
  CXX(target) Release/obj.target/yencode/src/crc.o
  SOLINK_MODULE(target) Release/obj.target/yencode.node
  COPY Release/yencode.node
make: Leaving directory '/home/sander/node_modules/yencode/build'
npm WARN saveError ENOENT: no such file or directory, open '/home/sander/package.json'
npm WARN enoent ENOENT: no such file or directory, open '/home/sander/package.json'
npm WARN sander No description
npm WARN sander No repository field.
npm WARN sander No README data
npm WARN sander No license field.

+ [email protected]
updated 1 package and audited 1 package in 25.746s
found 0 vulnerabilities

and yencode is not installed:

$ yencode
yencode: command not found

So I tried sudo npm install -g yencode --unsafe-perm ... which gives no errors, but no installed yencode either

$ sudo npm install -g yencode --unsafe-perm

> [email protected] install /usr/local/lib/node_modules/yencode
> node-gyp rebuild

make: Entering directory '/usr/local/lib/node_modules/yencode/build'
  CXX(target) Release/obj.target/crcutil/crcutil-1.0/code/crc32c_sse4.o
  CXX(target) Release/obj.target/crcutil/crcutil-1.0/code/multiword_64_64_cl_i386_mmx.o
  CXX(target) Release/obj.target/crcutil/crcutil-1.0/code/multiword_64_64_gcc_amd64_asm.o
  CXX(target) Release/obj.target/crcutil/crcutil-1.0/code/multiword_64_64_gcc_i386_mmx.o
  CXX(target) Release/obj.target/crcutil/crcutil-1.0/code/multiword_64_64_intrinsic_i386_mmx.o
  CXX(target) Release/obj.target/crcutil/crcutil-1.0/code/multiword_128_64_gcc_amd64_sse2.o
  CXX(target) Release/obj.target/crcutil/crcutil-1.0/examples/interface.o
  AR(target) Release/obj.target/crcutil.a
  COPY Release/crcutil.a
  CXX(target) Release/obj.target/yencode_sse2/src/encoder_sse2.o
  CXX(target) Release/obj.target/yencode_sse2/src/decoder_sse2.o
  AR(target) Release/obj.target/yencode_sse2.a
  COPY Release/yencode_sse2.a
  CXX(target) Release/obj.target/yencode_ssse3/src/encoder_ssse3.o
  CXX(target) Release/obj.target/yencode_ssse3/src/decoder_ssse3.o
  AR(target) Release/obj.target/yencode_ssse3.a
  COPY Release/yencode_ssse3.a
  CC(target) Release/obj.target/yencode_clmul/src/crc_folding.o
  AR(target) Release/obj.target/yencode_clmul.a
  COPY Release/yencode_clmul.a
  CXX(target) Release/obj.target/yencode_avx/src/encoder_avx.o
  CXX(target) Release/obj.target/yencode_avx/src/decoder_avx.o
  AR(target) Release/obj.target/yencode_avx.a
  COPY Release/yencode_avx.a
  CXX(target) Release/obj.target/yencode_avx2/src/decoder_avx2.o
  CXX(target) Release/obj.target/yencode_avx2/src/encoder_avx2.o
  AR(target) Release/obj.target/yencode_avx2.a
  COPY Release/yencode_avx2.a
  CXX(target) Release/obj.target/yencode_neon/src/encoder_neon.o
  CXX(target) Release/obj.target/yencode_neon/src/decoder_neon.o
  AR(target) Release/obj.target/yencode_neon.a
  COPY Release/yencode_neon.a
  CXX(target) Release/obj.target/yencode_armcrc/src/crc_arm.o
  AR(target) Release/obj.target/yencode_armcrc.a
  COPY Release/yencode_armcrc.a
  CXX(target) Release/obj.target/yencode/src/yencode.o
In file included from ../src/yencode.cc:2:
/root/.cache/node-gyp/10.19.0/include/node/node.h:593:51: warning: cast between incompatible function types from ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, v8::Local<v8::Context>)’ to ‘node::addon_context_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, v8::Local<v8::Context>, void*)’} [-Wcast-function-type]
  593 |       (node::addon_context_register_func) (regfunc),                  \
      |                                                   ^
/root/.cache/node-gyp/10.19.0/include/node/node.h:611:3: note: in expansion of macro ‘NODE_MODULE_CONTEXT_AWARE_X’
  611 |   NODE_MODULE_CONTEXT_AWARE_X(modname, regfunc, NULL, 0)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/root/.cache/node-gyp/10.19.0/include/node/node.h:634:3: note: in expansion of macro ‘NODE_MODULE_CONTEXT_AWARE’
  634 |   NODE_MODULE_CONTEXT_AWARE(NODE_GYP_MODULE_NAME,                     \
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/yencode.cc:428:1: note: in expansion of macro ‘NODE_MODULE_INIT’
  428 | NODE_MODULE_INIT(/* exports, module, context */)
      | ^~~~~~~~~~~~~~~~
  CXX(target) Release/obj.target/yencode/src/platform.o
  CXX(target) Release/obj.target/yencode/src/encoder.o
  CXX(target) Release/obj.target/yencode/src/decoder.o
  CXX(target) Release/obj.target/yencode/src/crc.o
  SOLINK_MODULE(target) Release/obj.target/yencode.node
  COPY Release/yencode.node
make: Leaving directory '/usr/local/lib/node_modules/yencode/build'
+ [email protected]
added 1 package from 1 contributor in 24.854s

but still not installed:

sander@brixit:~$ yencode
yencode: command not found

yEnc SSE decode ideas

I was amazed to find this repo, I have been thinking of some way to do yEnc-decoding (as a Python-C-extension) using SSE instructions but my knowledge of C is just too rudimentary for now.

Do you think think SSE can help compared to regular char-by-char decoding of yEnc body?
How would you go about the decoding-escaping problem? I can imagine finding the escape chars, but how to remove them later on when building the output string?
I tried to grasp your encoding-code, but I think I probably miss the main idea due to the included edge-cases and optimizations.

Thanks!

EDIT: I think I am getting more and more of the code and how you handle the encoding-escaping here: https://github.com/animetosho/node-yencode/blob/master/yencode.cc#L718-L752
I don't completly understand the shuffle operations just yet and how they handle the extra chars, what are shufMixLUT and shufLUT?

macOS: llvm: yencode 1.1.0: build error: use of undeclared identifier 'aligned_alloc'

Versions
sw_vers

ProductName: Mac OS X
ProductVersion: 10.14.6
BuildVersion: 18G3020

clang++ --version (homebrew)

clang version 9.0.1
Target: x86_64-apple-darwin18.7.0
Thread model: posix
InstalledDir: /usr/local/opt/llvm/bin

node --version

v10.19.0

Problem
Despite yencode 1.0.8 building, 1.1.0 doesn't:

CC="/usr/local/opt/llvm/bin/clang" CXX="/usr/local/opt/llvm/bin/clang++" LDFLAGS="-L/usr/local/opt/llvm/lib" CPPFLAGS="-I/usr/local/opt/llvm/include" npm install -g [email protected]

[email protected] install /usr/local/lib/node_modules/yencode
node-gyp rebuild

CXX(target) Release/obj.target/crcutil/crcutil-1.0/code/crc32c_sse4.o
CXX(target) Release/obj.target/crcutil/crcutil-1.0/code/multiword_64_64_cl_i386_mmx.o
CXX(target) Release/obj.target/crcutil/crcutil-1.0/code/multiword_64_64_gcc_amd64_asm.o
CXX(target) Release/obj.target/crcutil/crcutil-1.0/code/multiword_64_64_gcc_i386_mmx.o
CXX(target) Release/obj.target/crcutil/crcutil-1.0/code/multiword_64_64_intrinsic_i386_mmx.o
CXX(target) Release/obj.target/crcutil/crcutil-1.0/code/multiword_128_64_gcc_amd64_sse2.o
CXX(target) Release/obj.target/crcutil/crcutil-1.0/examples/interface.o
LIBTOOL-STATIC Release/crcutil.a
CXX(target) Release/obj.target/yencode_sse2/src/encoder_sse2.o
In file included from ../src/encoder_sse2.cc:4:
../src/encoder_sse_base.h:31:2: error: use of undeclared identifier
'aligned_alloc'
ALIGN_ALLOC(lookups, sizeof(lookups), 16);
^
../src/common.h:42:57: note: expanded from macro 'ALIGN_ALLOC'
#define ALIGN_ALLOC(buf, len, align) (void
)&(buf) = aligned_a...
^
1 error generated.
make: *** [Release/obj.target/yencode_sse2/src/encoder_sse2.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: make failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack at ChildProcess.emit (events.js:198:13)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)
gyp ERR! System Darwin 18.7.0
gyp ERR! command "/usr/local/Cellar/node@10/10.19.0/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/yencode
gyp ERR! node -v v10.19.0
gyp ERR! node-gyp -v v5.0.7
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! /Users/test/.npm/_logs/2020-02-06T01_00_00_000Z-debug.log

Node v12 gives the same error.

Critical characters not escaped when they are the last character of the segment

I noticed when a critical character is the last character in the segment, and thus the last column, it isn't properly escaped. Since NZB decoders are quite tolerant due to how rampant sloppy some yEnc encoders are, this isn't really an issue, but I thought you might want to know.

Example segments from "One-Punch Man - 01 [1080p] [60FPS].mkv" on alt.binaries.multimedia.anime.highspeed:

  • XxGaMpDeIcFjFgBdZvJhMpRj-1476083181807@nyuu
  • YzGhAqFuFiKgRlHmEsXpPpLz-1476083191679@nyuu
  • XkIpTqYpDvZsVfOaTvBrYnBs-1476083197391@nyuu
  • NtXvKlEgWhNlNjHvJmItSlFp-1476083197867@nyuu
  • EyKhPlTxAsNlJrKtKzKkLyIb-1476083198493@nyuu
  • NyWjXsVsXmLjBuSrEmEvJtVr-1476083229079@nyuu
  • YeDkCbAuAeGqLjNvHpWqXsVt-1476083233268@nyuu
  • BkTbNcBxNxZrWjXcViRpRjNk-1476083250266@nyuu
  • SsYbVcAtDoSuKuFtQhKuIrMt-1476083252619@nyuu
  • LpLtSaCzPsFqSeKfCeTuEiNt-1476083275955@nyuu
  • JcFiQtSrSdEkEqDfFyYuKpZe-1476083307252@nyuu
  • ZlKnNtAsKtOzJrQdYeLjChXn-1476083344814@nyuu
  • KhOeQfBsWbUhIcWsVyTkPvYk-1476083349482@nyuu
  • XzOcMzWtFsFuJsQgPgBjSuKm-1476083383906@nyuu
  • EcQgNgSfRhMbMoXlFcLwHmCe-1476083386110@nyuu
  • MbSdXbExUwGtEkFeYdTlViQm-1476083386671@nyuu
  • ZpZdPbRxAnKoWcDeErInHgFp-1476083389917@nyuu

CLI options?

I was wondering if this has a cli invocation?

Build fails with node.js 12.7.0

Building this package (and by extension nyuu) fails with node.js 12.7.0 which is the current version. A build log is attached.
yencode.log
Rolling back to an older version of node.js (here: 11.15.0) fixes the issue.

Building for Go

I've been trying to compile this library for use in Go.

Go has a couple of ways of doing this, but the approach I'm trying for the best performance is compiling the node-yencode source externally and letting Go find it if it's named .syso, there is barely any documentation on the approach and the only resources I've found are:

I'm not very familiar with compiling C/C++, I've tried to setup a CMake configuration because it seemed like it would be easiest, the config is based on bindings.gyp and sabyenc to produce a library in what I think is the format required I'm just trying to compile for amd64 currently.

Current progress is on mnightingale/go-yencode - You'll need to adjust NODE_YENCODE_LOCATION

On my Mac (I've also tried Ubuntu, have to remove a few flags and -arch) my call to C.crc_init() is failing with the below:

$ go run .
/usr/local/go/pkg/tool/darwin_amd64/link: running clang failed: exit status 1
ld: warning: -no_pie is deprecated when targeting new OS versions
Undefined symbols for architecture x86_64:
  "crc_clmul_set_funcs(unsigned int (**)(void const*, unsigned long, unsigned int))", referenced from:
      _crc_init in 000002.o(crc.cc.o)
  "crc_clmul256_set_funcs(unsigned int (**)(void const*, unsigned long, unsigned int))", referenced from:
      _crc_init in 000002.o(crc.cc.o)
  "crcutil_interface::CRC::Create(unsigned long long, unsigned long long, unsigned long, bool, unsigned long long, unsigned long long, unsigned long, bool, void const**)", referenced from:
      _crc_init in 000002.o(crc.cc.o)
  "_do_decode", referenced from:
      __cgo_3aa36c838d8d_Cfunc_do_decode in 000001.o
     (maybe you meant: __cgo_3aa36c838d8d_Cfunc_do_decode, __do_decode_end_raw , __do_decode_raw , __do_decode )
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

The _do_decode one seems clear, the symbol doesn't exist but I'm not sure how to fix that, is it because it's "static inline"?
Also I don't think I have it's signature correct because I need to figure how to pass it a YencDecoderState.
But it's really the crc_init method I'm most stuck on at the moment.

I was hoping you could see where I'm going wrong or offer any advice.
I feel like I'm really close to this working.

Unable to build or install

Seems this module is broken in some way preventing me from installing this, ParPar, or Nyuu via NPM. I was able to get the binary for Nyuu but not so lucky for ParPar.

Here is the error from my box (Arch Linux):

> [email protected] install /home/werkkrew/node_modules/yencode
> node-gyp rebuild

make: Entering directory '/home/werkkrew/node_modules/yencode/build'
  CXX(target) Release/obj.target/crcutil/crcutil-1.0/code/crc32c_sse4.o
In file included from ../crcutil-1.0/code/crc_casts.h:21,
                 from ../crcutil-1.0/code/gf_util.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:22,
                 from ../crcutil-1.0/code/crc32c_sse4.cc:19:
../crcutil-1.0/code/platform.h:200:31: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
  200 | #if GCC_VERSION_AVAILABLE(4, 4)
      |                               ^
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/code/crc32c_sse4.cc:19:
../crcutil-1.0/code/uint128_sse2.h:58:67: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
   58 | #if HAVE_AMD64 && defined(__GNUC__) && !GCC_VERSION_AVAILABLE(4, 5)
      |                                                                   ^
  CXX(target) Release/obj.target/crcutil/crcutil-1.0/code/multiword_64_64_cl_i386_mmx.o
In file included from ../crcutil-1.0/code/crc_casts.h:21,
                 from ../crcutil-1.0/code/generic_crc.h:23,
                 from ../crcutil-1.0/code/multiword_64_64_cl_i386_mmx.cc:18:
../crcutil-1.0/code/platform.h:200:31: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
  200 | #if GCC_VERSION_AVAILABLE(4, 4)
      |                               ^
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/multiword_64_64_cl_i386_mmx.cc:18:
../crcutil-1.0/code/uint128_sse2.h:58:67: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
   58 | #if HAVE_AMD64 && defined(__GNUC__) && !GCC_VERSION_AVAILABLE(4, 5)
      |                                                                   ^
  CXX(target) Release/obj.target/crcutil/crcutil-1.0/code/multiword_64_64_gcc_amd64_asm.o
In file included from ../crcutil-1.0/code/crc_casts.h:21,
                 from ../crcutil-1.0/code/generic_crc.h:23,
                 from ../crcutil-1.0/code/multiword_64_64_gcc_amd64_asm.cc:43:
../crcutil-1.0/code/platform.h:200:31: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
  200 | #if GCC_VERSION_AVAILABLE(4, 4)
      |                               ^
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/multiword_64_64_gcc_amd64_asm.cc:43:
../crcutil-1.0/code/uint128_sse2.h:58:67: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
   58 | #if HAVE_AMD64 && defined(__GNUC__) && !GCC_VERSION_AVAILABLE(4, 5)
      |                                                                   ^
  CXX(target) Release/obj.target/crcutil/crcutil-1.0/code/multiword_64_64_gcc_i386_mmx.o
In file included from ../crcutil-1.0/code/crc_casts.h:21,
                 from ../crcutil-1.0/code/generic_crc.h:23,
                 from ../crcutil-1.0/code/multiword_64_64_gcc_i386_mmx.cc:17:
../crcutil-1.0/code/platform.h:200:31: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
  200 | #if GCC_VERSION_AVAILABLE(4, 4)
      |                               ^
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/multiword_64_64_gcc_i386_mmx.cc:17:
../crcutil-1.0/code/uint128_sse2.h:58:67: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
   58 | #if HAVE_AMD64 && defined(__GNUC__) && !GCC_VERSION_AVAILABLE(4, 5)
      |                                                                   ^
  CXX(target) Release/obj.target/crcutil/crcutil-1.0/code/multiword_64_64_intrinsic_i386_mmx.o
In file included from ../crcutil-1.0/code/crc_casts.h:21,
                 from ../crcutil-1.0/code/generic_crc.h:23,
                 from ../crcutil-1.0/code/multiword_64_64_intrinsic_i386_mmx.cc:17:
../crcutil-1.0/code/platform.h:200:31: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
  200 | #if GCC_VERSION_AVAILABLE(4, 4)
      |                               ^
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/multiword_64_64_intrinsic_i386_mmx.cc:17:
../crcutil-1.0/code/uint128_sse2.h:58:67: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
   58 | #if HAVE_AMD64 && defined(__GNUC__) && !GCC_VERSION_AVAILABLE(4, 5)
      |                                                                   ^
  CXX(target) Release/obj.target/crcutil/crcutil-1.0/code/multiword_128_64_gcc_amd64_sse2.o
In file included from ../crcutil-1.0/code/crc_casts.h:21,
                 from ../crcutil-1.0/code/generic_crc.h:23,
                 from ../crcutil-1.0/code/multiword_128_64_gcc_amd64_sse2.cc:26:
../crcutil-1.0/code/platform.h:200:31: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
  200 | #if GCC_VERSION_AVAILABLE(4, 4)
      |                               ^
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/multiword_128_64_gcc_amd64_sse2.cc:26:
../crcutil-1.0/code/uint128_sse2.h:58:67: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
   58 | #if HAVE_AMD64 && defined(__GNUC__) && !GCC_VERSION_AVAILABLE(4, 5)
      |                                                                   ^
../crcutil-1.0/code/multiword_128_64_gcc_amd64_sse2.cc:128:31: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
  128 | #if GCC_VERSION_AVAILABLE(4, 5)
      |                               ^
In file included from ../crcutil-1.0/code/generic_crc.h:24,
                 from ../crcutil-1.0/code/multiword_128_64_gcc_amd64_sse2.cc:26:
../crcutil-1.0/code/gf_util.h: In instantiation of ‘Crc crcutil::GfUtil<Crc>::Canonize() const [with Crc = crcutil::uint128_sse2]’:
../crcutil-1.0/code/multiword_128_64_gcc_amd64_sse2.cc:41:52:   required from here
../crcutil-1.0/code/gf_util.h:82:18: warning: implicitly-declared ‘constexpr crcutil::uint128_sse2::uint128_sse2(const crcutil::uint128_sse2&)’ is deprecated [-Wdeprecated-copy]
   82 |     return this->canonize_;
      |                  ^~~~~~~~~
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/multiword_128_64_gcc_amd64_sse2.cc:26:
../crcutil-1.0/code/uint128_sse2.h:76:22: note: because ‘crcutil::uint128_sse2’ has user-provided ‘void crcutil::uint128_sse2::operator=(const crcutil::uint128_sse2&)’
   76 |   __forceinline void operator =(const uint128_sse2 &x) {
      |                      ^~~~~~~~
  CXX(target) Release/obj.target/crcutil/crcutil-1.0/examples/interface.o
In file included from ../crcutil-1.0/code/crc_casts.h:21,
                 from ../crcutil-1.0/code/gf_util.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:22,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/platform.h:200:31: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
  200 | #if GCC_VERSION_AVAILABLE(4, 4)
      |                               ^
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/uint128_sse2.h:58:67: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
   58 | #if HAVE_AMD64 && defined(__GNUC__) && !GCC_VERSION_AVAILABLE(4, 5)
      |                                                                   ^
../crcutil-1.0/examples/interface.cc:256:54: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
  256 | #elif defined(__GNUC__) && GCC_VERSION_AVAILABLE(4, 5)
      |                                                      ^
In file included from ../crcutil-1.0/code/crc32c_sse4.h:22,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/gf_util.h: In instantiation of ‘Crc crcutil::GfUtil<Crc>::XpowN(crcutil::uint64) const [with Crc = crcutil::uint128_sse2; crcutil::uint64 = long unsigned int ’:
../crcutil-1.0/code/generic_crc.h:150:11:   required from ‘void crcutil::GenericCrc<_Crc, _TableEntry, _Word, kStride>::Init(const Crc&, size_t, bool) [with _Crc = crcutil::uint128_sse2; _TableEntry = crcutil::uint128_sse2; _Word = long unsigned int; int kStride = 6; crcutil::GenericCrc<_Crc, _TableEntry, _Word, kStride>::Crc = crcutil::uint128_sse2; size_t = long unsigned int]’
../crcutil-1.0/code/generic_crc.h:126:5:   required from ‘crcutil::GenericCrc<_Crc, _TableEntry, _Word, kStride>::GenericCrc(const Crc&, size_t, bool) [with _Crc = crcutil::uint128_sse2; _TableEntry = crcutil::uint128_sse2; _Word = long unsigned int; int kStride = 6; crcutil::GenericCrc<_Crc, _TableEntry, _Word, kStride>::Crc = crcutil::uint128_sse2; size_t = long unsigned int]’
../crcutil-1.0/examples/interface.cc:53:55:   required from ‘crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Implementation(const Crc&, size_t, bool, const Crc&, size_t) [with CrcImplementation = crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>; RollingCrcImplementation = crcutil::RollingCrc<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6> >; crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Crc = crcutil::uint128_sse2; size_t = long unsigned int]’
../crcutil-1.0/examples/interface.cc:66:12:   required from ‘static crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Self* crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Create(const Crc&, size_t, bool, const Crc&, size_t, const void**) [with CrcImplementation = crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>; RollingCrcImplementation = crcutil::RollingCrc<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6> >; crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Self = crcutil_interface::Implementation<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>, crcutil::RollingCrc<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6> > >; crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Crc = crcutil::uint128_sse2; size_t = long unsigned int]’
../crcutil-1.0/examples/interface.cc:261:57:   required from here
../crcutil-1.0/code/gf_util.h:196:9: warning: implicitly-declared ‘constexpr crcutil::uint128_sse2::uint128_sse2(const crcutil::uint128_sse2&)’ is deprecated [-Wdeprecated-copy]
  196 |     Crc one = this->one_;
      |         ^~~
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/uint128_sse2.h:76:22: note: because ‘crcutil::uint128_sse2’ has user-provided ‘void crcutil::uint128_sse2::operator=(const crcutil::uint128_sse2&)’
   76 |   __forceinline void operator =(const uint128_sse2 &x) {
      |                      ^~~~~~~~
In file included from ../crcutil-1.0/code/crc32c_sse4.h:22,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/gf_util.h:197:9: warning: implicitly-declared ‘constexpr crcutil::uint128_sse2::uint128_sse2(const crcutil::uint128_sse2&)’ is deprecated [-Wdeprecated-copy]
  197 |     Crc result = one;
      |         ^~~~~~
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/uint128_sse2.h:76:22: note: because ‘crcutil::uint128_sse2’ has user-provided ‘void crcutil::uint128_sse2::operator=(const crcutil::uint128_sse2&)’
   76 |   __forceinline void operator =(const uint128_sse2 &x) {
      |                      ^~~~~~~~
In file included from ../crcutil-1.0/code/crc32c_sse4.h:22,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/gf_util.h:205:12: warning: implicitly-declared ‘constexpr crcutil::uint128_sse2::uint128_sse2(const crcutil::uint128_sse2&)’ is deprecated [-Wdeprecated-copy]
  205 |     return result;
      |            ^~~~~~
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/uint128_sse2.h:76:22: note: because ‘crcutil::uint128_sse2’ has user-provided ‘void crcutil::uint128_sse2::operator=(const crcutil::uint128_sse2&)’
   76 |   __forceinline void operator =(const uint128_sse2 &x) {
      |                      ^~~~~~~~
In file included from ../crcutil-1.0/code/crc32c_sse4.h:22,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/gf_util.h: In instantiation of ‘Crc crcutil::GfUtil<Crc>::MultiplyUnnormalized(const Crc&, size_t, const Crc&) const [with Crc = crcutil::uint128_sse2; size_t = long unsigned int]’:
../crcutil-1.0/code/generic_crc.h:154:53:   required from ‘void crcutil::GenericCrc<_Crc, _TableEntry, _Word, kStride>::Init(const Crc&, size_t, bool) [with _Crc = crcutil::uint128_sse2; _TableEntry = crcutil::uint128_sse2; _Word = long unsigned int; int kStride = 6; crcutil::GenericCrc<_Crc, _TableEntry, _Word, kStride>::Crc = crcutil::uint128_sse2; size_t = long unsigned int]’
../crcutil-1.0/code/generic_crc.h:126:5:   required from ‘crcutil::GenericCrc<_Crc, _TableEntry, _Word, kStride>::GenericCrc(const Crc&, size_t, bool) [with _Crc = crcutil::uint128_sse2; _TableEntry = crcutil::uint128_sse2; _Word = long unsigned int; int kStride = 6; crcutil::GenericCrc<_Crc, _TableEntry, _Word, kStride>::Crc = crcutil::uint128_sse2; size_t = long unsigned int]’
../crcutil-1.0/examples/interface.cc:53:55:   required from ‘crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Implementation(const Crc&, size_t, bool, const Crc&, size_t) [with CrcImplementation = crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>; RollingCrcImplementation = crcutil::RollingCrc<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6> >; crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Crc = crcutil::uint128_sse2; size_t = long unsigned int]’
../crcutil-1.0/examples/interface.cc:66:12:   required from ‘static crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Self* crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Create(const Crc&, size_t, bool, const Crc&, size_t, const void**) [with CrcImplementation = crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>; RollingCrcImplementation = crcutil::RollingCrc<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6> >; crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Self = crcutil_interface::Implementation<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>, crcutil::RollingCrc<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6> > >; crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Crc = crcutil::uint128_sse2; size_t = long unsigned int]’
../crcutil-1.0/examples/interface.cc:261:57:   required from here
../crcutil-1.0/code/gf_util.h:182:9: warning: implicitly-declared ‘constexpr crcutil::uint128_sse2::uint128_sse2(const crcutil::uint128_sse2&)’ is deprecated [-Wdeprecated-copy]
  182 |     Crc v = unnorm;
      |         ^
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/uint128_sse2.h:76:22: note: because ‘crcutil::uint128_sse2’ has user-provided ‘void crcutil::uint128_sse2::operator=(const crcutil::uint128_sse2&)’
   76 |   __forceinline void operator =(const uint128_sse2 &x) {
      |                      ^~~~~~~~
In file included from ../crcutil-1.0/code/crc32c_sse4.h:22,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/gf_util.h:191:12: warning: implicitly-declared ‘constexpr crcutil::uint128_sse2::uint128_sse2(const crcutil::uint128_sse2&)’ is deprecated [-Wdeprecated-copy]
  191 |     return result;
      |            ^~~~~~
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/uint128_sse2.h:76:22: note: because ‘crcutil::uint128_sse2’ has user-provided ‘void crcutil::uint128_sse2::operator=(const crcutil::uint128_sse2&)’
   76 |   __forceinline void operator =(const uint128_sse2 &x) {
      |                      ^~~~~~~~
In file included from ../crcutil-1.0/code/gf_util.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:22,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/crc_casts.h: In instantiation of ‘Result crcutil::Downcast(const Crc&) [with Crc = crcutil::uint128_sse2; Result = crcutil::uint128_sse2]’:
../crcutil-1.0/code/generic_crc.h:154:53:   required from ‘void crcutil::GenericCrc<_Crc, _TableEntry, _Word, kStride>::Init(const Crc&, size_t, bool) [with _Crc = crcutil::uint128_sse2; _TableEntry = crcutil::uint128_sse2; _Word = long unsigned int; int kStride = 6; crcutil::GenericCrc<_Crc, _TableEntry, _Word, kStride>::Crc = crcutil::uint128_sse2; size_t = long unsigned int]’
../crcutil-1.0/code/generic_crc.h:126:5:   required from ‘crcutil::GenericCrc<_Crc, _TableEntry, _Word, kStride>::GenericCrc(const Crc&, size_t, bool) [with _Crc = crcutil::uint128_sse2; _TableEntry = crcutil::uint128_sse2; _Word = long unsigned int; int kStride = 6; crcutil::GenericCrc<_Crc, _TableEntry, _Word, kStride>::Crc = crcutil::uint128_sse2; size_t = long unsigned int]’
../crcutil-1.0/examples/interface.cc:53:55:   required from ‘crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Implementation(const Crc&, size_t, bool, const Crc&, size_t) [with CrcImplementation = crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>; RollingCrcImplementation = crcutil::RollingCrc<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6> >; crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Crc = crcutil::uint128_sse2; size_t = long unsigned int]’
../crcutil-1.0/examples/interface.cc:66:12:   required from ‘static crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Self* crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Create(const Crc&, size_t, bool, const Crc&, size_t, const void**) [with CrcImplementation = crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>; RollingCrcImplementation = crcutil::RollingCrc<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6> >; crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Self = crcutil_interface::Implementation<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>, crcutil::RollingCrc<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6> > >; crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Crc = crcutil::uint128_sse2; size_t = long unsigned int]’
../crcutil-1.0/examples/interface.cc:261:57:   required from here
../crcutil-1.0/code/crc_casts.h:30:10: warning: implicitly-declared ‘constexpr crcutil::uint128_sse2::uint128_sse2(const crcutil::uint128_sse2&)’ is deprecated [-Wdeprecated-cop ]
   30 |   return static_cast<Result>(x);
      |          ^~~~~~~~~~~~~~~~~~~~~~
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/uint128_sse2.h:76:22: note: because ‘crcutil::uint128_sse2’ has user-provided ‘void crcutil::uint128_sse2::operator=(const crcutil::uint128_sse2&)’
   76 |   __forceinline void operator =(const uint128_sse2 &x) {
      |                      ^~~~~~~~
In file included from ../crcutil-1.0/code/crc32c_sse4.h:22,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/gf_util.h: In instantiation of ‘Crc crcutil::GfUtil<Crc>::Canonize() const [with Crc = crcutil::uint128_sse2]’:
../crcutil-1.0/code/rolling_crc.h:69:37:   required from ‘void crcutil::RollingCrc<CrcImplementation>::Init(const CrcImplementation&, size_t, const Crc&) [with CrcImplementation = crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>; size_t = long unsigned int; crcutil::RollingCrc<CrcImplementation>::Crc = crcutil::uint128_sse2]’
../crcutil-1.0/code/rolling_crc.h:46:5:   required from ‘crcutil::RollingCrc<CrcImplementation>::RollingCrc(const CrcImplementation&, size_t, const Crc&) [with CrcImplementation = crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>; size_t = long unsigned int; crcutil::RollingCrc<CrcImplementation>::Crc = crcutil::uint128_sse2]’
../crcutil-1.0/examples/interface.cc:53:55:   required from ‘crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Implementation(const Crc&, size_t, bool, const Crc&, size_t) [with CrcImplementation = crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>; RollingCrcImplementation = crcutil::RollingCrc<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6> >; crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Crc = crcutil::uint128_sse2; size_t = long unsigned int]’
../crcutil-1.0/examples/interface.cc:66:12:   required from ‘static crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Self* crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Create(const Crc&, size_t, bool, const Crc&, size_t, const void**) [with CrcImplementation = crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>; RollingCrcImplementation = crcutil::RollingCrc<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6> >; crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Self = crcutil_interface::Implementation<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>, crcutil::RollingCrc<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6> > >; crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Crc = crcutil::uint128_sse2; size_t = long unsigned int]’
../crcutil-1.0/examples/interface.cc:261:57:   required from here
../crcutil-1.0/code/gf_util.h:82:18: warning: implicitly-declared ‘constexpr crcutil::uint128_sse2::uint128_sse2(const crcutil::uint128_sse2&)’ is deprecated [-Wdeprecated-copy]
   82 |     return this->canonize_;
      |                  ^~~~~~~~~
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/uint128_sse2.h:76:22: note: because ‘crcutil::uint128_sse2’ has user-provided ‘void crcutil::uint128_sse2::operator=(const crcutil::uint128_sse2&)’
   76 |   __forceinline void operator =(const uint128_sse2 &x) {
      |                      ^~~~~~~~
In file included from ../crcutil-1.0/code/crc32c_sse4.h:22,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/gf_util.h: In instantiation of ‘Crc crcutil::GfUtil<Crc>::Multiply(const Crc&, const Crc&) const [with Crc = crcutil::uint128_sse2]’:
../crcutil-1.0/code/rolling_crc.h:70:9:   required from ‘void crcutil::RollingCrc<CrcImplementation>::Init(const CrcImplementation&, size_t, const Crc&) [with CrcImplementation = crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>; size_t = long unsigned int; crcutil::RollingCrc<CrcImplementation>::Crc = crcutil::uint128_sse2]’
../crcutil-1.0/code/rolling_crc.h:46:5:   required from ‘crcutil::RollingCrc<CrcImplementation>::RollingCrc(const CrcImplementation&, size_t, const Crc&) [with CrcImplementation = crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>; size_t = long unsigned int; crcutil::RollingCrc<CrcImplementation>::Crc = crcutil::uint128_sse2]’
../crcutil-1.0/examples/interface.cc:53:55:   required from ‘crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Implementation(const Crc&, size_t, bool, const Crc&, size_t) [with CrcImplementation = crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>; RollingCrcImplementation = crcutil::RollingCrc<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6> >; crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Crc = crcutil::uint128_sse2; size_t = long unsigned int]’
../crcutil-1.0/examples/interface.cc:66:12:   required from ‘static crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Self* crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Create(const Crc&, size_t, bool, const Crc&, size_t, const void**) [with CrcImplementation = crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>; RollingCrcImplementation = crcutil::RollingCrc<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6> >; crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Self = crcutil_interface::Implementation<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>, crcutil::RollingCrc<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6> > >; crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Crc = crcutil::uint128_sse2; size_t = long unsigned int]’
../crcutil-1.0/examples/interface.cc:261:57:   required from here
../crcutil-1.0/code/gf_util.h:153:9: warning: implicitly-declared ‘constexpr crcutil::uint128_sse2::uint128_sse2(const crcutil::uint128_sse2&)’ is deprecated [-Wdeprecated-copy]
  153 |     Crc a = aa;
      |         ^
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/uint128_sse2.h:76:22: note: because ‘crcutil::uint128_sse2’ has user-provided ‘void crcutil::uint128_sse2::operator=(const crcutil::uint128_sse2&)’
   76 |   __forceinline void operator =(const uint128_sse2 &x) {
      |                      ^~~~~~~~
In file included from ../crcutil-1.0/code/crc32c_sse4.h:22,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/gf_util.h:154:9: warning: implicitly-declared ‘constexpr crcutil::uint128_sse2::uint128_sse2(const crcutil::uint128_sse2&)’ is deprecated [-Wdeprecated-copy]
  154 |     Crc b = bb;
      |         ^
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/uint128_sse2.h:76:22: note: because ‘crcutil::uint128_sse2’ has user-provided ‘void crcutil::uint128_sse2::operator=(const crcutil::uint128_sse2&)’
   76 |   __forceinline void operator =(const uint128_sse2 &x) {
      |                      ^~~~~~~~
In file included from ../crcutil-1.0/code/crc32c_sse4.h:22,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/gf_util.h:156:11: warning: implicitly-declared ‘constexpr crcutil::uint128_sse2::uint128_sse2(const crcutil::uint128_sse2&)’ is deprecated [-Wdeprecated-copy]
  156 |       Crc temp = a;
      |           ^~~~
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/uint128_sse2.h:76:22: note: because ‘crcutil::uint128_sse2’ has user-provided ‘void crcutil::uint128_sse2::operator=(const crcutil::uint128_sse2&)’
   76 |   __forceinline void operator =(const uint128_sse2 &x) {
      |                      ^~~~~~~~
In file included from ../crcutil-1.0/code/crc32c_sse4.h:22,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/gf_util.h:162:14: warning: implicitly-declared ‘constexpr crcutil::uint128_sse2::uint128_sse2(const crcutil::uint128_sse2&)’ is deprecated [-Wdeprecated-copy]
  162 |       return a;
      |              ^
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/uint128_sse2.h:76:22: note: because ‘crcutil::uint128_sse2’ has user-provided ‘void crcutil::uint128_sse2::operator=(const crcutil::uint128_sse2&)’
   76 |   __forceinline void operator =(const uint128_sse2 &x) {
      |                      ^~~~~~~~
In file included from ../crcutil-1.0/code/crc32c_sse4.h:22,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/gf_util.h:166:9: warning: implicitly-declared ‘constexpr crcutil::uint128_sse2::uint128_sse2(const crcutil::uint128_sse2&)’ is deprecated [-Wdeprecated-copy]
  166 |     Crc one = this->one_;
      |         ^~~
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/uint128_sse2.h:76:22: note: because ‘crcutil::uint128_sse2’ has user-provided ‘void crcutil::uint128_sse2::operator=(const crcutil::uint128_sse2&)’
   76 |   __forceinline void operator =(const uint128_sse2 &x) {
      |                      ^~~~~~~~
In file included from ../crcutil-1.0/code/crc32c_sse4.h:22,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/gf_util.h:175:12: warning: implicitly-declared ‘constexpr crcutil::uint128_sse2::uint128_sse2(const crcutil::uint128_sse2&)’ is deprecated [-Wdeprecated-copy]
  175 |     return product;
      |            ^~~~~~~
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/uint128_sse2.h:76:22: note: because ‘crcutil::uint128_sse2’ has user-provided ‘void crcutil::uint128_sse2::operator=(const crcutil::uint128_sse2&)’
   76 |   __forceinline void operator =(const uint128_sse2 &x) {
      |                      ^~~~~~~~
In file included from ../crcutil-1.0/code/crc32c_sse4.h:22,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/gf_util.h: In instantiation of ‘Crc crcutil::GfUtil<Crc>::One() const [with Crc = crcutil::uint128_sse2]’:
../crcutil-1.0/code/rolling_crc.h:72:32:   required from ‘void crcutil::RollingCrc<CrcImplementation>::Init(const CrcImplementation&, size_t, const Crc&) [with CrcImplementation = crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>; size_t = long unsigned int; crcutil::RollingCrc<CrcImplementation>::Crc = crcutil::uint128_sse2]’
../crcutil-1.0/code/rolling_crc.h:46:5:   required from ‘crcutil::RollingCrc<CrcImplementation>::RollingCrc(const CrcImplementation&, size_t, const Crc&) [with CrcImplementation = crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>; size_t = long unsigned int; crcutil::RollingCrc<CrcImplementation>::Crc = crcutil::uint128_sse2]’
../crcutil-1.0/examples/interface.cc:53:55:   required from ‘crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Implementation(const Crc&, size_t, bool, const Crc&, size_t) [with CrcImplementation = crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>; RollingCrcImplementation = crcutil::RollingCrc<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6> >; crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Crc = crcutil::uint128_sse2; size_t = long unsigned int]’
../crcutil-1.0/examples/interface.cc:66:12:   required from ‘static crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Self* crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Create(const Crc&, size_t, bool, const Crc&, size_t, const void**) [with CrcImplementation = crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>; RollingCrcImplementation = crcutil::RollingCrc<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6> >; crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Self = crcutil_interface::Implementation<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>, crcutil::RollingCrc<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6> > >; crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Crc = crcutil::uint128_sse2; size_t = long unsigned int]’
../crcutil-1.0/examples/interface.cc:261:57:   required from here
../crcutil-1.0/code/gf_util.h:87:18: warning: implicitly-declared ‘constexpr crcutil::uint128_sse2::uint128_sse2(const crcutil::uint128_sse2&)’ is deprecated [-Wdeprecated-copy]
   87 |     return this->one_;
      |                  ^~~~
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/uint128_sse2.h:76:22: note: because ‘crcutil::uint128_sse2’ has user-provided ‘void crcutil::uint128_sse2::operator=(const crcutil::uint128_sse2&)’
   76 |   __forceinline void operator =(const uint128_sse2 &x) {
      |                      ^~~~~~~~
In file included from ../crcutil-1.0/code/crc32c_sse4.h:22,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/gf_util.h: In instantiation of ‘Crc crcutil::GfUtil<Crc>::FindLCD(const Crc&, Crc*) const [with Crc = crcutil::uint128_sse2]’:
../crcutil-1.0/code/gf_util.h:67:5:   required from ‘void crcutil::GfUtil<Crc>::Init(const Crc&, size_t, bool) [with Crc = crcutil::uint128_sse2; size_t = long unsigned int]’
../crcutil-1.0/code/generic_crc.h:129:5:   required from ‘void crcutil::GenericCrc<_Crc, _TableEntry, _Word, kStride>::Init(const Crc&, size_t, bool) [with _Crc = crcutil::uint128_sse2; _TableEntry = crcutil::uint128_sse2; _Word = long unsigned int; int kStride = 6; crcutil::GenericCrc<_Crc, _TableEntry, _Word, kStride>::Crc = crcutil::uint128_sse2; size_t = long unsigned int]’
../crcutil-1.0/code/generic_crc.h:126:5:   required from ‘crcutil::GenericCrc<_Crc, _TableEntry, _Word, kStride>::GenericCrc(const Crc&, size_t, bool) [with _Crc = crcutil::uint128_sse2; _TableEntry = crcutil::uint128_sse2; _Word = long unsigned int; int kStride = 6; crcutil::GenericCrc<_Crc, _TableEntry, _Word, kStride>::Crc = crcutil::uint128_sse2; size_t = long unsigned int]’
../crcutil-1.0/examples/interface.cc:53:55:   required from ‘crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Implementation(const Crc&, size_t, bool, const Crc&, size_t) [with CrcImplementation = crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>; RollingCrcImplementation = crcutil::RollingCrc<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6> >; crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Crc = crcutil::uint128_sse2; size_t = long unsigned int]’
../crcutil-1.0/examples/interface.cc:66:12:   required from ‘static crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Self* crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Create(const Crc&, size_t, bool, const Crc&, size_t, const void**) [with CrcImplementation = crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>; RollingCrcImplementation = crcutil::RollingCrc<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6> >; crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Self = crcutil_interface::Implementation<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>, crcutil::RollingCrc<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6> > >; crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Crc = crcutil::uint128_sse2; size_t = long unsigned int]’
../crcutil-1.0/examples/interface.cc:261:57:   required from here
../crcutil-1.0/code/gf_util.h:257:14: warning: implicitly-declared ‘constexpr crcutil::uint128_sse2::uint128_sse2(const crcutil::uint128_sse2&)’ is deprecated [-Wdeprecated-copy]
  257 |       return A;
      |              ^
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/uint128_sse2.h:76:22: note: because ‘crcutil::uint128_sse2’ has user-provided ‘void crcutil::uint128_sse2::operator=(const crcutil::uint128_sse2&)’
   76 |   __forceinline void operator =(const uint128_sse2 &x) {
      |                      ^~~~~~~~
In file included from ../crcutil-1.0/code/crc32c_sse4.h:22,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/gf_util.h:263:9: warning: implicitly-declared ‘constexpr crcutil::uint128_sse2::uint128_sse2(const crcutil::uint128_sse2&)’ is deprecated [-Wdeprecated-copy]
  263 |     Crc r0 = this->generating_polynomial_;
      |         ^~
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/uint128_sse2.h:76:22: note: because ‘crcutil::uint128_sse2’ has user-provided ‘void crcutil::uint128_sse2::operator=(const crcutil::uint128_sse2&)’
   76 |   __forceinline void operator =(const uint128_sse2 &x) {
      |                      ^~~~~~~~
In file included from ../crcutil-1.0/code/crc32c_sse4.h:22,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/gf_util.h:265:9: warning: implicitly-declared ‘constexpr crcutil::uint128_sse2::uint128_sse2(const crcutil::uint128_sse2&)’ is deprecated [-Wdeprecated-copy]
  265 |     Crc r1 = A;
      |         ^~
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/uint128_sse2.h:76:22: note: because ‘crcutil::uint128_sse2’ has user-provided ‘void crcutil::uint128_sse2::operator=(const crcutil::uint128_sse2&)’
   76 |   __forceinline void operator =(const uint128_sse2 &x) {
      |                      ^~~~~~~~
In file included from ../crcutil-1.0/code/crc32c_sse4.h:22,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/gf_util.h:266:9: warning: implicitly-declared ‘constexpr crcutil::uint128_sse2::uint128_sse2(const crcutil::uint128_sse2&)’ is deprecated [-Wdeprecated-copy]
  266 |     Crc b1 = this->one_;
      |         ^~
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/uint128_sse2.h:76:22: note: because ‘crcutil::uint128_sse2’ has user-provided ‘void crcutil::uint128_sse2::operator=(const crcutil::uint128_sse2&)’
   76 |   __forceinline void operator =(const uint128_sse2 &x) {
      |                      ^~~~~~~~
In file included from ../crcutil-1.0/code/crc32c_sse4.h:22,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/gf_util.h:285:12: warning: implicitly-declared ‘constexpr crcutil::uint128_sse2::uint128_sse2(const crcutil::uint128_sse2&)’ is deprecated [-Wdeprecated-copy]
  285 |     return r1;
      |            ^~
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/uint128_sse2.h:76:22: note: because ‘crcutil::uint128_sse2’ has user-provided ‘void crcutil::uint128_sse2::operator=(const crcutil::uint128_sse2&)’
   76 |   __forceinline void operator =(const uint128_sse2 &x) {
      |                      ^~~~~~~~
In file included from ../crcutil-1.0/code/crc32c_sse4.h:22,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/gf_util.h: In instantiation of ‘Crc crcutil::GfUtil<Crc>::Divide(const Crc&, int, const Crc&, Crc*) const [with Crc = crcutil::uint128_sse2]’:
../crcutil-1.0/code/gf_util.h:270:15:   required from ‘Crc crcutil::GfUtil<Crc>::FindLCD(const Crc&, Crc*) const [with Crc = crcutil::uint128_sse2]’
../crcutil-1.0/code/gf_util.h:67:5:   required from ‘void crcutil::GfUtil<Crc>::Init(const Crc&, size_t, bool) [with Crc = crcutil::uint128_sse2; size_t = long unsigned int]’
../crcutil-1.0/code/generic_crc.h:129:5:   required from ‘void crcutil::GenericCrc<_Crc, _TableEntry, _Word, kStride>::Init(const Crc&, size_t, bool) [with _Crc = crcutil::uint128_sse2; _TableEntry = crcutil::uint128_sse2; _Word = long unsigned int; int kStride = 6; crcutil::GenericCrc<_Crc, _TableEntry, _Word, kStride>::Crc = crcutil::uint128_sse2; size_t = long unsigned int]’
../crcutil-1.0/code/generic_crc.h:126:5:   required from ‘crcutil::GenericCrc<_Crc, _TableEntry, _Word, kStride>::GenericCrc(const Crc&, size_t, bool) [with _Crc = crcutil::uint128_sse2; _TableEntry = crcutil::uint128_sse2; _Word = long unsigned int; int kStride = 6; crcutil::GenericCrc<_Crc, _TableEntry, _Word, kStride>::Crc = crcutil::uint128_sse2; size_t = long unsigned int]’
../crcutil-1.0/examples/interface.cc:53:55:   required from ‘crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Implementation(const Crc&, size_t, bool, const Crc&, size_t) [with CrcImplementation = crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>; RollingCrcImplementation = crcutil::RollingCrc<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6> >; crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Crc = crcutil::uint128_sse2; size_t = long unsigned int]’
../crcutil-1.0/examples/interface.cc:66:12:   required from ‘static crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Self* crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Create(const Crc&, size_t, bool, const Crc&, size_t, const void**) [with CrcImplementation = crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>; RollingCrcImplementation = crcutil::RollingCrc<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6> >; crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Self = crcutil_interface::Implementation<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>, crcutil::RollingCrc<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6> > >; crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::Crc = crcutil::uint128_sse2; size_t = long unsigned int]’
../crcutil-1.0/examples/interface.cc:261:57:   required from here
../crcutil-1.0/code/gf_util.h:219:9: warning: implicitly-declared ‘constexpr crcutil::uint128_sse2::uint128_sse2(const crcutil::uint128_sse2&)’ is deprecated [-Wdeprecated-copy]
  219 |     Crc divisor = divisor0;
      |         ^~~~~~~
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/uint128_sse2.h:76:22: note: because ‘crcutil::uint128_sse2’ has user-provided ‘void crcutil::uint128_sse2::operator=(const crcutil::uint128_sse2&)’
   76 |   __forceinline void operator =(const uint128_sse2 &x) {
      |                      ^~~~~~~~
In file included from ../crcutil-1.0/code/crc32c_sse4.h:22,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/gf_util.h:220:9: warning: implicitly-declared ‘constexpr crcutil::uint128_sse2::uint128_sse2(const crcutil::uint128_sse2&)’ is deprecated [-Wdeprecated-copy]
  220 |     Crc dividend = dividend0;
      |         ^~~~~~~~
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/uint128_sse2.h:76:22: note: because ‘crcutil::uint128_sse2’ has user-provided ‘void crcutil::uint128_sse2::operator=(const crcutil::uint128_sse2&)’
   76 |   __forceinline void operator =(const uint128_sse2 &x) {
      |                      ^~~~~~~~
In file included from ../crcutil-1.0/code/crc32c_sse4.h:22,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/gf_util.h:222:9: warning: implicitly-declared ‘constexpr crcutil::uint128_sse2::uint128_sse2(const crcutil::uint128_sse2&)’ is deprecated [-Wdeprecated-copy]
  222 |     Crc coef = this->one_;
      |         ^~~~
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/uint128_sse2.h:76:22: note: because ‘crcutil::uint128_sse2’ has user-provided ‘void crcutil::uint128_sse2::operator=(const crcutil::uint128_sse2&)’
   76 |   __forceinline void operator =(const uint128_sse2 &x) {
      |                      ^~~~~~~~
In file included from ../crcutil-1.0/code/crc32c_sse4.h:22,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/gf_util.h:249:12: warning: implicitly-declared ‘constexpr crcutil::uint128_sse2::uint128_sse2(const crcutil::uint128_sse2&)’ is deprecated [-Wdeprecated-copy]
  249 |     return dividend;
      |            ^~~~~~~~
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/uint128_sse2.h:76:22: note: because ‘crcutil::uint128_sse2’ has user-provided ‘void crcutil::uint128_sse2::operator=(const crcutil::uint128_sse2&)’
   76 |   __forceinline void operator =(const uint128_sse2 &x) {
      |                      ^~~~~~~~
In file included from ../crcutil-1.0/code/crc32c_sse4.h:22,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/gf_util.h: In instantiation of ‘Crc crcutil::GfUtil<Crc>::GeneratingPolynomial() const [with Crc = crcutil::uint128_sse2]’:
../crcutil-1.0/examples/interface.cc:83:13:   required from ‘void crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::GeneratingPolynomial(crcutil_interface::UINT64*, crcutil_interface::UINT64*) const [with CrcImplementation = crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>; RollingCrcImplementation = crcutil::RollingCrc<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6> >; crcutil_interface::UINT64 = long long unsigned int]’
../crcutil-1.0/examples/interface.cc:81:16:   required from here
../crcutil-1.0/code/gf_util.h:72:18: warning: implicitly-declared ‘constexpr crcutil::uint128_sse2::uint128_sse2(const crcutil::uint128_sse2&)’ is deprecated [-Wdeprecated-copy]
   72 |     return this->generating_polynomial_;
      |                  ^~~~~~~~~~~~~~~~~~~~~~
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/uint128_sse2.h:76:22: note: because ‘crcutil::uint128_sse2’ has user-provided ‘void crcutil::uint128_sse2::operator=(const crcutil::uint128_sse2&)’
   76 |   __forceinline void operator =(const uint128_sse2 &x) {
      |                      ^~~~~~~~
In file included from ../crcutil-1.0/examples/interface.cc:23:
../crcutil-1.0/code/rolling_crc.h: In instantiation of ‘crcutil::RollingCrc<CrcImplementation>::Crc crcutil::RollingCrc<CrcImplementation>::StartValue() const [with CrcImplementation = crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>; crcutil::RollingCrc<CrcImplementation>::Crc = crcutil::uint128_sse2]’:
../crcutil-1.0/examples/interface.cc:97:13:   required from ‘void crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::RollStartValue(crcutil_interface::UINT64*, crcutil_interface::UINT64*) const [with CrcImplementation = crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>; RollingCrcImplementation = crcutil::RollingCrc<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6> >; crcutil_interface::UINT64 = long long unsigned int]’
../crcutil-1.0/examples/interface.cc:95:16:   required from here
../crcutil-1.0/code/rolling_crc.h:87:35: warning: implicitly-declared ‘constexpr crcutil::uint128_sse2::uint128_sse2(const crcutil::uint128_sse2&)’ is deprecated [-Wdeprecated-copy]
   87 |   Crc StartValue() const { return start_value_; }
      |                                   ^~~~~~~~~~~~
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/uint128_sse2.h:76:22: note: because ‘crcutil::uint128_sse2’ has user-provided ‘void crcutil::uint128_sse2::operator=(const crcutil::uint128_sse2&)’
   76 |   __forceinline void operator =(const uint128_sse2 &x) {
      |                      ^~~~~~~~
In file included from ../crcutil-1.0/code/crc32c_sse4.h:22,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/gf_util.h: In instantiation of ‘size_t crcutil::GfUtil<Crc>::StoreCrc(void*, const Crc&) const [with Crc = crcutil::uint128_sse2; size_t = long unsigned int]’:
../crcutil-1.0/examples/interface.cc:176:54:   required from ‘size_t crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::StoreCrc(void*, crcutil_interface::UINT64, crcutil_interface::UINT64) const [with CrcImplementation = crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>; RollingCrcImplementation = crcutil::RollingCrc<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6> >; size_t = long unsigned int; crcutil_interface::UINT64 = long long unsigned int]’
../crcutil-1.0/examples/interface.cc:173:18:   required from here
../crcutil-1.0/code/gf_util.h:136:9: warning: implicitly-declared ‘constexpr crcutil::uint128_sse2::uint128_sse2(const crcutil::uint128_sse2&)’ is deprecated [-Wdeprecated-copy]
  136 |     Crc crc0 = crc;
      |         ^~~~
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/uint128_sse2.h:76:22: note: because ‘crcutil::uint128_sse2’ has user-provided ‘void crcutil::uint128_sse2::operator=(const crcutil::uint128_sse2&)’
   76 |   __forceinline void operator =(const uint128_sse2 &x) {
      |                      ^~~~~~~~
In file included from ../crcutil-1.0/code/crc32c_sse4.h:22,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/gf_util.h: In instantiation of ‘Crc crcutil::GfUtil<Crc>::CrcOfCrc() const [with Crc = crcutil::uint128_sse2]’:
../crcutil-1.0/examples/interface.cc:181:13:   required from ‘void crcutil_interface::Implementation<CrcImplementation, RollingCrcImplementation>::CrcOfCrc(crcutil_interface::UINT64*, crcutil_interface::UINT64*) const [with CrcImplementation = crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6>; RollingCrcImplementation = crcutil::RollingCrc<crcutil::GenericCrc<crcutil::uint128_sse2, crcutil::uint128_sse2, long unsigned int, 6> >; crcutil_interface::UINT64 = long long unsigned int]’
../crcutil-1.0/examples/interface.cc:179:16:   required from here
../crcutil-1.0/code/gf_util.h:148:18: warning: implicitly-declared ‘constexpr crcutil::uint128_sse2::uint128_sse2(const crcutil::uint128_sse2&)’ is deprecated [-Wdeprecated-copy]
  148 |     return this->crc_of_crc_;
      |                  ^~~~~~~~~~~
In file included from ../crcutil-1.0/code/generic_crc.h:26,
                 from ../crcutil-1.0/code/crc32c_sse4.h:40,
                 from ../crcutil-1.0/examples/interface.cc:20:
../crcutil-1.0/code/uint128_sse2.h:76:22: note: because ‘crcutil::uint128_sse2’ has user-provided ‘void crcutil::uint128_sse2::operator=(const crcutil::uint128_sse2&)’
   76 |   __forceinline void operator =(const uint128_sse2 &x) {
      |                      ^~~~~~~~
  AR(target) Release/obj.target/crcutil.a
  COPY Release/crcutil.a
  CXX(target) Release/obj.target/yencode/yencode.o
../yencode.cc: In function ‘void Encode(const v8::FunctionCallbackInfo<v8::Value>&)’:
../yencode.cc:1232:59: warning: ‘static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
 1232 |    String::NewFromUtf8(isolate, "You must supply a Buffer"))
      |                                                           ^
In file included from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8-internal.h:14,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:25,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/node.h:63,
                 from ../yencode.cc:2:
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2936:21: note: declared here
 2936 |       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
      |                     ^~~~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
  311 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
../yencode.cc:1232:59: warning: ‘static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
 1232 |    String::NewFromUtf8(isolate, "You must supply a Buffer"))
      |                                                           ^
In file included from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8-internal.h:14,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:25,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/node.h:63,
                 from ../yencode.cc:2:
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2936:21: note: declared here
 2936 |       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
      |                     ^~~~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
  311 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
../yencode.cc:1246:34: error: no matching function for call to ‘v8::Value::ToInteger()’
 1246 |   line_size = args[1]->ToInteger()->Value();
      |                                  ^
In file included from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/node.h:63,
                 from ../yencode.cc:2:
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2578:45: note: candidate: ‘v8::MaybeLocal<v8::Integer> v8::Value::ToInteger(v8::Local<v8::Context>) const’
 2578 |   V8_WARN_UNUSED_RESULT MaybeLocal<Integer> ToInteger(
      |                                             ^~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2578:45: note:   candidate expects 1 argument, 0 provided
In file included from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8-internal.h:14,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:25,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/node.h:63,
                 from ../yencode.cc:2:
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2592:32: note: candidate: ‘v8::Local<v8::Integer> v8::Value::ToInteger(v8::Isolate*) const’
 2592 |                 Local<Integer> ToInteger(Isolate* isolate) const);
      |                                ^~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
  311 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2592:32: note:   candidate expects 1 argument, 0 provided
 2592 |                 Local<Integer> ToInteger(Isolate* isolate) const);
      |                                ^~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
  311 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
../yencode.cc:1249:29: error: no matching function for call to ‘v8::Value::ToInteger()’
 1249 |    col = args[2]->ToInteger()->Value();
      |                             ^
In file included from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/node.h:63,
                 from ../yencode.cc:2:
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2578:45: note: candidate: ‘v8::MaybeLocal<v8::Integer> v8::Value::ToInteger(v8::Local<v8::Context>) const’
 2578 |   V8_WARN_UNUSED_RESULT MaybeLocal<Integer> ToInteger(
      |                                             ^~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2578:45: note:   candidate expects 1 argument, 0 provided
In file included from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8-internal.h:14,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:25,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/node.h:63,
                 from ../yencode.cc:2:
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2592:32: note: candidate: ‘v8::Local<v8::Integer> v8::Value::ToInteger(v8::Isolate*) const’
 2592 |                 Local<Integer> ToInteger(Isolate* isolate) const);
      |                                ^~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
  311 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2592:32: note:   candidate expects 1 argument, 0 provided
 2592 |                 Local<Integer> ToInteger(Isolate* isolate) const);
      |                                ^~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
  311 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
../yencode.cc: In function ‘void EncodeTo(const v8::FunctionCallbackInfo<v8::Value>&)’:
../yencode.cc:1270:62: warning: ‘static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
 1270 |    String::NewFromUtf8(isolate, "You must supply two Buffers"))
      |                                                              ^
In file included from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8-internal.h:14,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:25,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/node.h:63,
                 from ../yencode.cc:2:
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2936:21: note: declared here
 2936 |       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
      |                     ^~~~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
  311 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
../yencode.cc:1270:62: warning: ‘static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
 1270 |    String::NewFromUtf8(isolate, "You must supply two Buffers"))
      |                                                              ^
In file included from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8-internal.h:14,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:25,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/node.h:63,
                 from ../yencode.cc:2:
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2936:21: note: declared here
 2936 |       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
      |                     ^~~~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
  311 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
../yencode.cc:1284:34: error: no matching function for call to ‘v8::Value::ToInteger()’
 1284 |   line_size = args[2]->ToInteger()->Value();
      |                                  ^
In file included from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/node.h:63,
                 from ../yencode.cc:2:
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2578:45: note: candidate: ‘v8::MaybeLocal<v8::Integer> v8::Value::ToInteger(v8::Local<v8::Context>) const’
 2578 |   V8_WARN_UNUSED_RESULT MaybeLocal<Integer> ToInteger(
      |                                             ^~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2578:45: note:   candidate expects 1 argument, 0 provided
In file included from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8-internal.h:14,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:25,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/node.h:63,
                 from ../yencode.cc:2:
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2592:32: note: candidate: ‘v8::Local<v8::Integer> v8::Value::ToInteger(v8::Isolate*) const’
 2592 |                 Local<Integer> ToInteger(Isolate* isolate) const);
      |                                ^~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
  311 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2592:32: note:   candidate expects 1 argument, 0 provided
 2592 |                 Local<Integer> ToInteger(Isolate* isolate) const);
      |                                ^~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
  311 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
../yencode.cc:1287:29: error: no matching function for call to ‘v8::Value::ToInteger()’
 1287 |    col = args[3]->ToInteger()->Value();
      |                             ^
In file included from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/node.h:63,
                 from ../yencode.cc:2:
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2578:45: note: candidate: ‘v8::MaybeLocal<v8::Integer> v8::Value::ToInteger(v8::Local<v8::Context>) const’
 2578 |   V8_WARN_UNUSED_RESULT MaybeLocal<Integer> ToInteger(
      |                                             ^~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2578:45: note:   candidate expects 1 argument, 0 provided
In file included from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8-internal.h:14,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:25,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/node.h:63,
                 from ../yencode.cc:2:
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2592:32: note: candidate: ‘v8::Local<v8::Integer> v8::Value::ToInteger(v8::Isolate*) const’
 2592 |                 Local<Integer> ToInteger(Isolate* isolate) const);
      |                                ^~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
  311 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2592:32: note:   candidate expects 1 argument, 0 provided
 2592 |                 Local<Integer> ToInteger(Isolate* isolate) const);
      |                                ^~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
  311 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
../yencode.cc: In function ‘void CRC32(const v8::FunctionCallbackInfo<v8::Value>&)’:
../yencode.cc:1320:59: warning: ‘static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
 1320 |    String::NewFromUtf8(isolate, "You must supply a Buffer"))
      |                                                           ^
In file included from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8-internal.h:14,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:25,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/node.h:63,
                 from ../yencode.cc:2:
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2936:21: note: declared here
 2936 |       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
      |                     ^~~~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
  311 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
../yencode.cc:1320:59: warning: ‘static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
 1320 |    String::NewFromUtf8(isolate, "You must supply a Buffer"))
      |                                                           ^
In file included from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8-internal.h:14,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:25,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/node.h:63,
                 from ../yencode.cc:2:
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2936:21: note: declared here
 2936 |       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
      |                     ^~~~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
  311 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
../yencode.cc:1331:75: warning: ‘static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
 1331 |     String::NewFromUtf8(isolate, "Second argument must be a 4 byte buffer"))
      |                                                                           ^
In file included from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8-internal.h:14,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:25,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/node.h:63,
                 from ../yencode.cc:2:
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2936:21: note: declared here
 2936 |       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
      |                     ^~~~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
  311 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
../yencode.cc:1331:75: warning: ‘static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
 1331 |     String::NewFromUtf8(isolate, "Second argument must be a 4 byte buffer"))
      |                                                                           ^
In file included from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8-internal.h:14,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:25,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/node.h:63,
                 from ../yencode.cc:2:
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2936:21: note: declared here
 2936 |       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
      |                     ^~~~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
  311 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
../yencode.cc: In function ‘void CRC32Combine(const v8::FunctionCallbackInfo<v8::Value>&)’:
../yencode.cc:1357:64: warning: ‘static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
 1357 |    String::NewFromUtf8(isolate, "At least 3 arguments required"))
      |                                                                ^
In file included from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8-internal.h:14,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:25,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/node.h:63,
                 from ../yencode.cc:2:
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2936:21: note: declared here
 2936 |       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
      |                     ^~~~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
  311 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
../yencode.cc:1357:64: warning: ‘static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
 1357 |    String::NewFromUtf8(isolate, "At least 3 arguments required"))
      |                                                                ^
In file included from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8-internal.h:14,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:25,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/node.h:63,
                 from ../yencode.cc:2:
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2936:21: note: declared here
 2936 |       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
      |                     ^~~~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
  311 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
../yencode.cc:1364:94: warning: ‘static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
 1364 |    String::NewFromUtf8(isolate, "You must supply a 4 byte Buffer for the first two arguments"))
      |                                                                                              ^
In file included from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8-internal.h:14,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:25,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/node.h:63,
                 from ../yencode.cc:2:
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2936:21: note: declared here
 2936 |       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
      |                     ^~~~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
  311 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
../yencode.cc:1364:94: warning: ‘static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
 1364 |    String::NewFromUtf8(isolate, "You must supply a 4 byte Buffer for the first two arguments"))
      |                                                                                              ^
In file included from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8-internal.h:14,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:25,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/node.h:63,
                 from ../yencode.cc:2:
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2936:21: note: declared here
 2936 |       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
      |                     ^~~~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
  311 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
../yencode.cc:1370:42: error: no matching function for call to ‘v8::Value::ToInteger()’
 1370 |  size_t len = (size_t)args[2]->ToInteger()->Value();
      |                                          ^
In file included from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/node.h:63,
                 from ../yencode.cc:2:
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2578:45: note: candidate: ‘v8::MaybeLocal<v8::Integer> v8::Value::ToInteger(v8::Local<v8::Context>) const’
 2578 |   V8_WARN_UNUSED_RESULT MaybeLocal<Integer> ToInteger(
      |                                             ^~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2578:45: note:   candidate expects 1 argument, 0 provided
In file included from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8-internal.h:14,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:25,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/node.h:63,
                 from ../yencode.cc:2:
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2592:32: note: candidate: ‘v8::Local<v8::Integer> v8::Value::ToInteger(v8::Isolate*) const’
 2592 |                 Local<Integer> ToInteger(Isolate* isolate) const);
      |                                ^~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
  311 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2592:32: note:   candidate expects 1 argument, 0 provided
 2592 |                 Local<Integer> ToInteger(Isolate* isolate) const);
      |                                ^~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
  311 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
../yencode.cc: In function ‘void CRC32Zeroes(const v8::FunctionCallbackInfo<v8::Value>&)’:
../yencode.cc:1385:63: warning: ‘static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
 1385 |    String::NewFromUtf8(isolate, "At least 1 argument required"))
      |                                                               ^
In file included from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8-internal.h:14,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:25,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/node.h:63,
                 from ../yencode.cc:2:
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2936:21: note: declared here
 2936 |       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
      |                     ^~~~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
  311 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
../yencode.cc:1385:63: warning: ‘static v8::Local<v8::String> v8::String::NewFromUtf8(v8::Isolate*, const char*, v8::String::NewStringType, int)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
 1385 |    String::NewFromUtf8(isolate, "At least 1 argument required"))
      |                                                               ^
In file included from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8-internal.h:14,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:25,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/node.h:63,
                 from ../yencode.cc:2:
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2936:21: note: declared here
 2936 |       Local<String> NewFromUtf8(Isolate* isolate, const char* data,
      |                     ^~~~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
  311 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
../yencode.cc:1391:42: error: no matching function for call to ‘v8::Value::ToInteger()’
 1391 |  size_t len = (size_t)args[0]->ToInteger()->Value();
      |                                          ^
In file included from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/node.h:63,
                 from ../yencode.cc:2:
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2578:45: note: candidate: ‘v8::MaybeLocal<v8::Integer> v8::Value::ToInteger(v8::Local<v8::Context>) const’
 2578 |   V8_WARN_UNUSED_RESULT MaybeLocal<Integer> ToInteger(
      |                                             ^~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2578:45: note:   candidate expects 1 argument, 0 provided
In file included from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8-internal.h:14,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:25,
                 from /home/werkkrew/.cache/node-gyp/12.12.0/include/node/node.h:63,
                 from ../yencode.cc:2:
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2592:32: note: candidate: ‘v8::Local<v8::Integer> v8::Value::ToInteger(v8::Isolate*) const’
 2592 |                 Local<Integer> ToInteger(Isolate* isolate) const);
      |                                ^~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
  311 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8.h:2592:32: note:   candidate expects 1 argument, 0 provided
 2592 |                 Local<Integer> ToInteger(Isolate* isolate) const);
      |                                ^~~~~~~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
  311 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
../yencode.cc: At global scope:
../yencode.cc:1544:11: error: variable or field ‘init’ declared void
 1544 | void init(Handle<Object> target) {
      |           ^~~~~~
../yencode.cc:1544:11: error: ‘Handle’ was not declared in this scope
../yencode.cc:1544:24: error: expected primary-expression before ‘>’ token
 1544 | void init(Handle<Object> target) {
      |                        ^
../yencode.cc:1544:26: error: ‘target’ was not declared in this scope
 1544 | void init(Handle<Object> target) {
      |                          ^~~~~~
In file included from ../yencode.cc:2:
../yencode.cc:1622:22: error: ‘init’ was not declared in this scope; did you mean ‘int’?
 1622 | NODE_MODULE(yencode, init);
      |                      ^~~~
/home/werkkrew/.cache/node-gyp/12.12.0/include/node/node.h:560:36: note: in definition of macro ‘NODE_MODULE_X’
  560 |       (node::addon_register_func) (regfunc),                          \
      |                                    ^~~~~~~
../yencode.cc:1622:1: note: in expansion of macro ‘NODE_MODULE’
 1622 | NODE_MODULE(yencode, init);
      | ^~~~~~~~~~~
../yencode.cc:1379:13: warning: ‘void CRC32Zeroes(const v8::FunctionCallbackInfo<v8::Value>&)’ defined but not used [-Wunused-function]
 1379 | static void CRC32Zeroes(const FunctionCallbackInfo<Value>& args) {
      |             ^~~~~~~~~~~
../yencode.cc:1351:13: warning: ‘void CRC32Combine(const v8::FunctionCallbackInfo<v8::Value>&)’ defined but not used [-Wunused-function]
 1351 | static void CRC32Combine(const FunctionCallbackInfo<Value>& args) {
      |             ^~~~~~~~~~~~
../yencode.cc:1314:13: warning: ‘void CRC32(const v8::FunctionCallbackInfo<v8::Value>&)’ defined but not used [-Wunused-function]
 1314 | static void CRC32(const FunctionCallbackInfo<Value>& args) {
      |             ^~~~~
../yencode.cc:1264:13: warning: ‘void EncodeTo(const v8::FunctionCallbackInfo<v8::Value>&)’ defined but not used [-Wunused-function]
 1264 | static void EncodeTo(const FunctionCallbackInfo<Value>& args) {
      |             ^~~~~~~~
../yencode.cc:1226:13: warning: ‘void Encode(const v8::FunctionCallbackInfo<v8::Value>&)’ defined but not used [-Wunused-function]
 1226 | static void Encode(const FunctionCallbackInfo<Value>& args) {
      |             ^~~~~~
../yencode.cc:663:15: warning: ‘size_t do_encode_fast2(int, int, const unsigned char*, unsigned char*, size_t)’ defined but not used [-Wunused-function]
  663 | static size_t do_encode_fast2(int line_size, int col, const unsigned char* src, unsigned char* dest, size_t len) {
      |               ^~~~~~~~~~~~~~~
../yencode.cc:285:15: warning: ‘size_t do_encode_fast(int, int, const unsigned char*, unsigned char*, size_t)’ defined but not used [-Wunused-function]
  285 | static size_t do_encode_fast(int line_size, int col, const unsigned char* src, unsigned char* dest, size_t len) {
      |               ^~~~~~~~~~~~~~
make: *** [yencode.target.mk:114: Release/obj.target/yencode/yencode.o] Error 1
make: Leaving directory '/home/werkkrew/node_modules/yencode/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:210:5)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Linux 5.3.6-arch1-1-ARCH
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/werkkrew/node_modules/yencode
gyp ERR! node -v v12.12.0
gyp ERR! node-gyp -v v6.0.0
gyp ERR! not ok
npm WARN enoent ENOENT: no such file or directory, open '/home/werkkrew/package.json'
npm WARN werkkrew No description
npm WARN werkkrew No repository field.
npm WARN werkkrew No README data
npm WARN werkkrew No license field.

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/werkkrew/.npm/_logs/2019-10-15T00_57_12_748Z-debug.log

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.