当玩鼻子并尝试将它与cython结合时,我无法完全按照我喜欢的方式工作.代码组织如下:
.
??? setup.py
??? src
??? calc
? ??? factorial.py
? ??? __init__.py
? ??? tests.py
??? cycalc
??? tests.py
??? triangle.pyx
Run Code Online (Sandbox Code Playgroud)
每个tests.py包含2个测试,一个成功,一个失败.运行的结果setup.py nosetests是只calc/tests.py运行.如果我在此运行之后运行nosetests3 src/cycalc了两个测试cycalc/tests.py.但是,如果我清理所有构建文件,它会失败,因为cycalc/triangle.pyx尚未内置到共享库中.
然后我尝试添加文件src/cycalc/__init__.py,现在setup.py nosetests拿起cycalc/tests.py但它找不到所需的模块,它被放入src.
如何安排我的cython源代码和测试以setup.py nosetests找到它需要的一切?
我在 VI 模式下运行 zsh,并显示两行提示符。每当我使用“cc”清除该行时,提示符上方的一行就会被删除。例如,如果我从
magnus@tatooine 2502 ~
[I] %
magnus@tatooine 2502 ~
[I] %
Run Code Online (Sandbox Code Playgroud)
然后我按转义键并“抄送”我得到
magnus@tatooine 2502 ~
magnus@tatooine 2502 ~
[I] %
Run Code Online (Sandbox Code Playgroud)
其重复性非常强;我可以通过多次重复该序列来清除终端。我需要做什么才能让 ZSH 清除该行而不删除其上方的行?
我的提示是使用以下命令创建的
zstyle ':vcs_info:*' enable git hg svn
zstyle ':vcs_info:(git*|hg*)' get-revision true
zstyle ':vcs_info:(git*|hg*)' check-for-changes true
zstyle ':vcs_info:git*' formats "(%s: %12.12i %c%u %b)" # hash changes branch
zstyle ':vcs_info:git*' actionformats "(%s(%F{yellow}%a%f): %12.12i %c%u %b)"
zstyle ':vcs_info:hg*:*' branchformat "%b" # only show branch
zstyle ':vcs_info:(hg*|git*):*' stagedstr "%F{green}S%f"
zstyle ':vcs_info:(hg*|git*):*' unstagedstr "%F{red}U%f"
zstyle ':vcs_info:git*+set-message:*' hooks git-st git-stash …Run Code Online (Sandbox Code Playgroud) 在clojurescript项目中,我希望leiningen在我们的CI生成过程中减少对互联网连接的依赖。我希望将其缓存在网络磁盘上(使用该:local-repo设置来创建“共享缓存”),然后将其添加为存储库,以使其首先从那里获取,而仅从clojar和其他外部站点获取它在“共享缓存”中找不到。
我阅读了此内容,删除了我的~/.m2文件夹,并将以下内容添加到我的内容中project.clj:
:profiles {:local-cache
{:local-repo "/shared/disc/clojars-cache"
:repositories {"local" {:uri "file:///shared/disc/clojars-cache"
:releases {:checksum :ignore}}}}}
Run Code Online (Sandbox Code Playgroud)
的初始构建lein with-profile +local-cache cljsbuild确实确实填充了缓存,但是
~/.m2/repository文件夹重新创建并填充的东西,但它似乎只能是Clojure的通过需要的东西leiningen,和~/.m2后续重建后,似乎根本不使用本地存储库,而是无论如何都从clojars下载。显然我正在丢失某些东西……或者也许我正在以完全错误的方式来解决这个问题。
总之,我怎么能得到leiningen到
我有一个大型的,使用CMake构建的多语言项目。在其中有一个用Haskell编写的部分,它用于stack构建。CI构建由Gitlab CI处理,并在docker executor中运行。在创建docker映像期间,使用下载ghc stack setup。但是,构建的Haskell部分仍然需要相当长的时间,因为它会为每个构建重新下载并构建所有必需的软件包。
为了缓存我添加的本地数据库
cache:
paths:
- src/utils/.stack-work
Run Code Online (Sandbox Code Playgroud)
(堆栈YAML文件位于中src/utils/,三个Haskell软件包也位于目录中。)
但这并没有真正加快构建速度。在更仔细地阅读了堆栈数据库之后,我意识到快照已放入STACK_ROOT(~/.stack)中。研究堆栈的选项表明,没有办法指定快照应与分开存储STACK_ROOT。
鉴于Gitlab CI似乎只允许在build dir中缓存项目,我想我有两个选择:
stack --stack-root <folder under build> ...将放置STACK_ROOT在构建目录中,然后缓存整个内容。这意味着我的缓存从不到100M增长到了约1.6G!现在我的问题是:
STACK_ROOT是否正确?stack setup提取ghc?也许我完全错了,并且有一种更好的方法来限制缓存大小。
我正在尝试使用ocamlfind该C库来编写如何使用编译C库和OCaml可执行文件.
我把一组相当愚蠢的示例文件放在一起.
% cat sillystubs.c
#include <stdio.h>
#include <caml/mlvalues.h>
#include <caml/memory.h>
#include <caml/alloc.h>
#include <caml/custom.h>
value
caml_silly_silly( value unit )
{
CAMLparam1( unit );
printf( "%s\n", __FILE__ );
CAMLreturn( Val_unit );
}
% cat silly.mli
external silly : unit -> unit = "silly_silly"
% cat foo.ml
open Silly
open String
let _ =
print_string "About to call into silly";
silly ();
print_string "Called into silly"
Run Code Online (Sandbox Code Playgroud)
我相信以下是编译库的方法:
% ocamlfind ocamlc -c sillystubs.c
% ar rc libsillystubs.a sillystubs.o
% ocamlfind …Run Code Online (Sandbox Code Playgroud) 我在使用工作时获得代码的两面都遇到了一些问题uinput.
基于uinput入门:用户级输入子系统[死链接; 存档 ]我总结了以下作家(减去错误处理):
int main(int ac, char **av)
{
int fd = open("/dev/uinput", O_WRONLY | O_NONBLOCK);
int ret = ioctl(fd, UI_SET_EVBIT, EV_ABS);
ret = ioctl(fd, UI_SET_ABSBIT, ABS_X);
struct uinput_user_dev uidev = {0};
snprintf(uidev.name, UINPUT_MAX_NAME_SIZE, "uinput-rotary");
uidev.absmin[ABS_X] = 0;
uidev.absmax[ABS_X] = 255;
ret = write(fd, &uidev, sizeof(uidev));
ret = ioctl(fd, UI_DEV_CREATE);
struct input_event ev = {0};
ev.type = EV_ABS;
ev.code = ABS_X;
ev.value = 42;
ret = write(fd, &ev, sizeof(ev));
getchar(); …Run Code Online (Sandbox Code Playgroud) 相当愚蠢的问题,但我似乎找不到正确的术语,所以我所有的搜索都失败了.
我有以下C#方法调用链:
container.Register(Component.For<IMyInterface>().ImplementedBy<MyClass>().Named("MyInstance").LifeStyleSingleton);
Run Code Online (Sandbox Code Playgroud)
如何在F#中编写相同的内容?
我可以做这个:
let f0 = Component.For<IMyInterface> () in
let f1 = f0.ImplementedBy<MyClass> () in
let f2 = f1.Named "MyInstance" in
let f3 = f2.LifestyleSingleton () in
ignore (container.Register f3)
Run Code Online (Sandbox Code Playgroud)
但肯定有一些其他更好的方式来构建这样的呼叫.没有?
加成
早期的答案让我找到了一个有效的解决方案(我已经删除了所有提及,ignore因为它无关紧要,只会让读者感到困惑):
container.Register (Component.For<IMyInterface>().ImplementedBy<MyClass>().Named("MyInstance").LifestyleSingleton())
Run Code Online (Sandbox Code Playgroud)
但是,一个回复说明这应该有效:
container.Register <| Component.For<IMyInterface>().ImplementedBy<MyClass>().Named("MyInstance").LifestyleSingleton()
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.后一部分,后面的表达式<|,会产生类型错误
该表达式应该具有类型单元,但这里有类型ComponentRegistration <IMyInterface>.
我是Qt开发的新手,我们的设计在几个地方使用了has-a关系.在某些情况下,容器应该暴露内部对象的信号,然后我当前为每个这样的信号写了一个私有插槽,我在实践中再次重新发出信号.Qt中是否有一些快捷方式可以帮助暴露容器内部物体的信号?
我刚刚阅读了 WordPress 的自动更新程序。想要禁用它,我搜索并找到了一个描述如何配置 Wordpress 自动更新的页面。起初我尝试使用过滤方法,但是在放置该行之后
add_filter( 'automatic_updater_disabled', '__return_true' );
Run Code Online (Sandbox Code Playgroud)
在我的wp-config.php网站完全崩溃了。我不得不恢复使用
define( 'AUTOMATIC_UPDATER_DISABLED', true );
Run Code Online (Sandbox Code Playgroud)
就我而言,这也同样好。但是说我想做更细粒度的配置,这需要我使用过滤器,我该如何使其工作,如果不在,我应该把配置放在哪里wp-config.php?
我第一次开始在Windows上使用SetupAPI,并注意到在调用填充结构的函数之前,我总是需要将结构的大小放入结构中.例如:
SP_DEVICE_INTERFACE_DATA dintf_data;
dintf_data.cbSize = sizeof(dintf_data);
SetupDiEnumDeviceInterfaces(di, NULL, &GUID_DEVINTERFACE_USB_DEVICE, 0, &dintf_data);
Run Code Online (Sandbox Code Playgroud)
这样做的原因是什么?
这是实现他们想要达到的目标的好方法,还是有更好的方法?
(我能想到的唯一原因是它是处理API版本控制的一种方式.)