dgryski / go-bits Goto Github PK
View Code? Open in Web Editor NEWamd64 optimized bit operations
License: MIT License
amd64 optimized bit operations
License: MIT License
Hello,
Can you please tag and version this project?
I am the Debian Maintainer for go-bits and versioning would help Debian keep up with development.
Hello!
I would like to upload go-bits to Debian, but there is no license.
Can you please add a License?
Thanks!
Hello,
When I try to test the cmd/influxd/run in the project github.com/influxdata/influxdb in version 1.4.2 it fails with
/usr/share/gocode/src/github.com/dgryski/go-bits/clz_asm.go:6: missing function body for "Clz"
/usr/share/gocode/src/github.com/dgryski/go-bits/ctz_asm.go:6: missing function body for "Ctz"
/usr/share/gocode/src/github.com/dgryski/go-bits/popcnt_asm.go:6: missing function body for "Popcnt"
Thank you for your help
For go-bits, I see a lot of code written in assembly language, how to compile it to improve performance.
Hello,
I am facing the following issue when do go test
:
go 1.5.1 is used.
[ 88s] + go test -x github.com/dgryski/go-bits...
[ 88s] WORK=/tmp/go-build994662218
[ 89s] mkdir -p $WORK/github.com/dgryski/go-bits/_test/github.com/dgryski/
[ 89s] mkdir -p $WORK/github.com/dgryski/go-bits/_test/_obj_test/
[ 89s] cd /home/abuild/rpmbuild/BUILD/go/src/github.com/dgryski/go-bits
[ 89s] /usr/lib64/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/dgryski/go-bits/_test/github.com/dgryski/go-bits.a -trimpath $WORK -p github.com/dgryski/go-bits -buildid efc6c7e406c5acd4f5f3da0af4541b559fc9d019 -D _/home/abuild/rpmbuild/BUILD/go/src/github.com/dgryski/go-bits -I $WORK -pack -asmhdr $WORK/github.com/dgryski/go-bits/_test/_obj_test/go_asm.h ./clz_asm.go ./ctz_asm.go ./popcnt_asm.go ./bits_test.go
[ 89s] /usr/lib64/go/pkg/tool/linux_amd64/asm -o $WORK/github.com/dgryski/go-bits/_test/_obj_test/clz_amd64.o -trimpath $WORK -I $WORK/github.com/dgryski/go-bits/_test/_obj_test/ -I /usr/lib64/go/pkg/include -D GOOS_linux -D GOARCH_amd64 ./clz_amd64.s
[ 89s] /usr/lib64/go/pkg/tool/linux_amd64/asm -o $WORK/github.com/dgryski/go-bits/_test/_obj_test/ctz_amd64.o -trimpath $WORK -I $WORK/github.com/dgryski/go-bits/_test/_obj_test/ -I /usr/lib64/go/pkg/include -D GOOS_linux -D GOARCH_amd64 ./ctz_amd64.s
[ 89s] /usr/lib64/go/pkg/tool/linux_amd64/asm -o $WORK/github.com/dgryski/go-bits/_test/_obj_test/popcnt_amd64.o -trimpath $WORK -I $WORK/github.com/dgryski/go-bits/_test/_obj_test/ -I /usr/lib64/go/pkg/include -D GOOS_linux -D GOARCH_amd64 ./popcnt_amd64.s
[ 89s] pack r $WORK/github.com/dgryski/go-bits/_test/github.com/dgryski/go-bits.a $WORK/github.com/dgryski/go-bits/_test/_obj_test/clz_amd64.o $WORK/github.com/dgryski/go-bits/_test/_obj_test/ctz_amd64.o $WORK/github.com/dgryski/go-bits/_test/_obj_test/popcnt_amd64.o # internal
[ 89s] mkdir -p $WORK/github.com/dgryski/go-bits/_test/
[ 89s] cd $WORK/github.com/dgryski/go-bits/_test
[ 89s] /usr/lib64/go/pkg/tool/linux_amd64/compile -o ./main.a -trimpath $WORK -p main -complete -D "" -I . -I $WORK -pack ./_testmain.go
[ 89s] cd .
[ 89s] /usr/lib64/go/pkg/tool/linux_amd64/link -o $WORK/github.com/dgryski/go-bits/_test/go-bits.test -L $WORK/github.com/dgryski/go-bits/_test -L $WORK -w -extld=gcc -buildmode=exe $WORK/github.com/dgryski/go-bits/_test/main.a
[ 91s] $WORK/github.com/dgryski/go-bits/_test/go-bits.test
[ 91s] SIGILL: illegal instruction
[ 91s] PC=0x47df75 m=0
[ 91s]
[ 91s] goroutine 7 [running]:
[ 91s] github.com/dgryski/go-bits.Popcnt(0x38fc2ffac2fd9401, 0x40f829)
[ 91s] /home/abuild/rpmbuild/BUILD/go/src/github.com/dgryski/go-bits/popcnt_amd64.s:9 +0x5 fp=0xc820046970 sp=0xc820046968
[ 91s] github.com/dgryski/go-bits.testQuick.func1(0x38fc2ffac2fd9401, 0x0)
[ 91s] /home/abuild/rpmbuild/BUILD/go/src/github.com/dgryski/go-bits/bits_test.go:10 +0x31 fp=0xc820046998 sp=0xc820046970
[ 91s] runtime.call32(0xc820016140, 0xc820013ba0, 0xc8200a2e40, 0x800000010)
[ 91s] /usr/lib64/go/src/runtime/asm_amd64.s:437 +0x3e fp=0xc8200469c0 sp=0xc820046998
[ 91s] reflect.Value.call(0x540060, 0xc820013ba0, 0x13, 0x58c290, 0x4, 0xc820013bc0, 0x1, 0x1, 0x0, 0x0, ...)
[ 91s] /usr/lib64/go/src/reflect/value.go:432 +0x120a fp=0xc820046d10 sp=0xc8200469c0
[ 91s] reflect.Value.Call(0x540060, 0xc820013ba0, 0x13, 0xc820013bc0, 0x1, 0x1, 0x0, 0x0, 0x0)
[ 91s] /usr/lib64/go/src/reflect/value.go:300 +0xb1 fp=0xc820046d70 sp=0xc820046d10
[ 91s] testing/quick.Check(0x540060, 0xc820013ba0, 0x663640, 0x0, 0x0)
[ 91s] /usr/lib64/go/src/testing/quick/quick.go:270 +0x421 fp=0xc820046e70 sp=0xc820046d70
[ 91s] github.com/dgryski/go-bits.testQuick(0xc82009a120, 0x58e270, 0x6, 0x5d4a58, 0x5d4a88)
[ 91s] /home/abuild/rpmbuild/BUILD/go/src/github.com/dgryski/go-bits/bits_test.go:12 +0xa7 fp=0xc820046f38 sp=0xc820046e70
[ 91s] github.com/dgryski/go-bits.TestQuickPopcnt(0xc82009a120)
[ 91s] /home/abuild/rpmbuild/BUILD/go/src/github.com/dgryski/go-bits/bits_test.go:50 +0x4e fp=0xc820046f68 sp=0xc820046f38
[ 91s] testing.tRunner(0xc82009a120, 0x660d30)
[ 91s] /usr/lib64/go/src/testing/testing.go:456 +0x98 fp=0xc820046fa0 sp=0xc820046f68
[ 91s] runtime.goexit()
[ 91s] /usr/lib64/go/src/runtime/asm_amd64.s:1696 +0x1 fp=0xc820046fa8 sp=0xc820046fa0
[ 91s] created by testing.RunTests
[ 91s] /usr/lib64/go/src/testing/testing.go:561 +0x86d
[ 91s]
[ 91s] goroutine 1 [chan receive]:
[ 91s] testing.RunTests(0x5d4a90, 0x660d00, 0x3, 0x3, 0x663d01)
[ 91s] /usr/lib64/go/src/testing/testing.go:562 +0x8ad
[ 91s] testing.(*M).Run(0xc820041ef8, 0xc82000a780)
[ 91s] /usr/lib64/go/src/testing/testing.go:494 +0x70
[ 91s] main.main()
[ 91s] github.com/dgryski/go-bits/_test/_testmain.go:58 +0x116
[ 91s]
[ 91s] rax 0x5d4a58
[ 91s] rbx 0x47df70
[ 91s] rcx 0xc820001080
[ 91s] rdx 0x38fc2ffac2fd9401
[ 91s] rdi 0xc8200469a8
[ 91s] rsi 0xc8200a2e50
[ 91s] rbp 0xc820016140
[ 91s] rsp 0xc820046968
[ 91s] r8 0xfffffffffffffff8
[ 91s] r9 0x1
[ 91s] r10 0xc820013bc0
[ 91s] r11 0x0
[ 91s] r12 0x10
[ 91s] r13 0x5d267e
[ 91s] r14 0x3
[ 91s] r15 0x8
[ 91s] rip 0x47df75
[ 91s] rflags 0x10202
[ 91s] cs 0xe033
[ 91s] fs 0x0
[ 91s] gs 0x0
[ 91s] FAIL github.com/dgryski/go-bits 0.054s
This code should work without uint64
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.