小编Fil*_*und的帖子

如何理解编译的Elixir Erlang函数名

在ExProf中,Elixir函数名称在编译后打印出我假设的Erlang名称.一个例子是

Enum.reduce/3
Run Code Online (Sandbox Code Playgroud)

印刷为

'Elixir.Enum':'-reduce/3-lists^foldl/2-0-'/3
Run Code Online (Sandbox Code Playgroud)

我该如何解析这个字符串?这个-lists^foldl/2-0-部分来自哪里?为什么有多个/3?为什么有些名字有-前缀?什么^意思?为什么2-0-

elixir

8
推荐指数
1
解决办法
424
查看次数

Perl` $ [`,为什么基地42?

我发现这部分答案真的令人困惑.大多数答案都是一些基本规则的特例,例如"333" + "222" == "333222" but "333" - "222" = 111javascript,其中使用+字符串连接很有用.

$[ - 将阵列基础从0基础更改为基于1基于42基础:WHEEE!

基于42的阵列索引的用例是什么?只是一个搭便车的银河参考指南/令人难以置信的邪恶复活节彩蛋,或实际上有用吗?

perl

7
推荐指数
1
解决办法
324
查看次数

Erlang整数是否有大小限制?

我知道Erlang有任意大小的整数,但其中一个标准实现是否有最大限制?如果是这样,什么?

erlang beam

7
推荐指数
1
解决办法
1940
查看次数

sub eax,0 - 它有什么用吗?

我刚刚在IDA Pro中打开了一个文件,我发现了一些看起来完全没用的代码.但是,我认为它可能有一些用处.不是sub eax,0从eax中减去0吗?

代码:

hinstDLL= dword ptr  4  
fdwReason= dword ptr  8  
lpReserved= dword ptr  0Ch  

mov     eax, [esp+fdwReason]  
sub     eax, 0  
jz      short loc_10001038  
Run Code Online (Sandbox Code Playgroud)

x86 assembly reverse-engineering disassembly

6
推荐指数
2
解决办法
9155
查看次数

将命令输出保存到变量而不打印到标准输出

我正在做一个bash脚本,我正在抓取这个命令的输出:

fpings=$(fping -c 1 -t 1 $ips | sort) 
Run Code Online (Sandbox Code Playgroud)

fpings变量确实包含命令的输出,并且命令的实际输出不会打印到shell,但它仍会为每个ip ping的shell写一行.

有一个开关(-q)来抑制输出(我想要的部分)但不能抑制我不想要的部分.

如何在没有将内容打印到shell的情况下从fpings命令获取结果?

linux bash

6
推荐指数
1
解决办法
5168
查看次数

变量赋值是原子吗?

如果我有两个线程同时修改结构上的字符串字段,我是否总是会看到分配给该字段的一个或另一个字符串,但没有别的?

concurrency go

6
推荐指数
2
解决办法
1674
查看次数

找不到OpenCL(缺少:OpenCL_LIBRARY)

我正在尝试将OpenCL与CLion(特别是提升计算)一起使用,使用CMake,在Windows 10上使用nvidia gpu.感觉就像我已经尝试了一切,但我不知道CMake是如何工作的,我无法在网上找到足够基本的帖子供我理解.官方文档对初学者也没有帮助.我还需要最终在OS X和某些Linux上运行.

这就是我所处的混乱(CmakeLists.txt):

cmake_minimum_required(VERSION 3.3)
project(cpl)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O2")

set(SOURCE_FILES
        src/planner/main.cpp)

set(BOOST_ROOT C:/boost)
set(BOOSTROOT C:/boost)

include_directories(lib/compute/include)

include_directories($ENV{CUDA_PATH})

# boost
set(Boost_USE_STATIC_LIBS OFF)
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF)
find_package(Boost 1.60.0 REQUIRED)

# opencl
set(CMAKE_MODULE_PATH lib/cmake)

find_package(OpenCL REQUIRED)

INCLUDE_DIRECTORIES(${OpenCL_INCLUDE_DIRS})

LINK_DIRECTORIES(${OpenCL_LIBRARY})

message(STATUS "OpenCL found: ${OPENCL_FOUND}")
message(STATUS "OpenCL includes: ${OPENCL_INCLUDE_DIRS}")
message(STATUS "OpenCL CXX includes: ${OPENCL_HAS_CPP_BINDINGS}")
message(STATUS "OpenCL libraries: ${OPENCL_LIBRARIES}")

#target_link_libraries(cpl OpenCL)
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

C:\Users\drathier\.CLion2016.1\system\cygwin_cmake\bin\cmake.exe --build C:\Users\drathier\.CLion2016.1\system\cmake\generated\cpl-bfc654e8\bfc654e8\Debug --target all -- -j 8
-- Boost version: 1.60.0
CMake Error at /cygdrive/c/Users/drathier/.CLion2016.1/system/cygwin_cmake/share/cmake-3.5.1/Modules/FindPackageHandleStandardArgs.cmake:148 …
Run Code Online (Sandbox Code Playgroud)

cmake opencl

6
推荐指数
1
解决办法
5002
查看次数

没有复制最小的例子?

我一直在尝试获取noCopy适用于我自己的结构之一的指令,但我无法go vet检测到它。

我可以让它检测sync.WaitGroup, 和 的复制sync.Mutex,但不能检测我自己的结构。兽医源中的这个测试文件甚至不会用我的go vet.

或者,它发现了一些错误:

# command-line-arguments
./govet.go:56:6: no new variables on left side of :=
./govet.go:110:17: unsafe.Sizeof(mu) evaluated but not used
./govet.go:111:18: unsafe.Sizeof(mu) evaluated but not used
./govet.go:112:10: unsafe.Sizeof(mu) evaluated but not used
Run Code Online (Sandbox Code Playgroud)

但复制锁检测没有发现任何东西。

go vet自从1.4版本的讨论以来,有什么变化吗?我在跑go version go1.11 darwin/amd64

struct mutex go

6
推荐指数
1
解决办法
3077
查看次数

使用非传统的子网掩码

例如普通的面具; 255.255.255.0这给了我们1111 1111.1111 1111.1111 1111.0000 0000二进制文件,其中1代表网络ID,零代表主机ID.是否可以使用左侧没有全部布局并且右侧为零的布局?示例:二进制170.170.170.170或10101010.10101010.10101010.10101010.

也许最后只有一个额外的位?11111111.11111111.11111111.00000001或255.255.255.1

也许扭转整个面具?0.255.255.255

当然,您必须使用指定的id-type(通过掩码)指定的位置.

networking subnet

5
推荐指数
1
解决办法
1609
查看次数

创建未知类型的切片?

我正在尝试使用此功能(从go-couchbase)获取多个值。

func (b *Bucket) Gets(k string, rv interface{}, caso *uint64) error {
    data, _, cas, err := b.GetsRaw(k)
    if err != nil {
        return err
    }
    if caso != nil {
        *caso = cas
    }
    return json.Unmarshal(data, rv)
}
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何创建rv的切片,因为我不知道它在函数中的类型,而且我也不知道它将有多大,因此我无法真正rv通过索引访问该切片, 对?

我想尽可能地笼统,因此按rv结构创建函数并不是真正理想的选择,而GetBulk函数仅返回a []byte

甚至有可能做我想做的事?

go couchbase

5
推荐指数
1
解决办法
1259
查看次数