是否可以从node.js中的stdin同步读取?因为我正在用JavaScript编写一个关于JavaScript编译器的脑筋(只是为了好玩).Brainfuck支持需要同步实现的读取操作.
我试过这个:
const fs = require('fs');
var c = fs.readSync(0,1,null,'utf-8');
console.log('character: '+c+' ('+c.charCodeAt(0)+')');
Run Code Online (Sandbox Code Playgroud)
但这只产生这个输出:
fs:189
var r = binding.read(fd, buffer, offset, length, position);
^
Error: EAGAIN, Resource temporarily unavailable
at Object.readSync (fs:189:19)
at Object.<anonymous> (/home/.../stdin.js:3:12)
at Module._compile (module:426:23)
at Module._loadScriptSync (module:436:8)
at Module.loadSync (module:306:10)
at Object.runMain (module:490:22)
at node.js:254:10
Run Code Online (Sandbox Code Playgroud) 我写了一个可以执行某些任务的小型控制台应用程序.用户界面类似于版本控制系统或yum等.因此,基本上您可以将其视为特定于域的语言.现在我想编写一个(类似bash)shell,它可以执行并自动完成这种语言并具有命令历史记录(因此我不必在每个命令上加载和保存相当大的xml文件).简而言之,我想要像ipython这样的东西,但不是为了执行python代码而是我自己的DSL.
是否有任何图书馆可以帮助我这样做?我看到python中有一个readline和rlcompleter模块但是它的文档似乎表明这只是用于python shell本身,或者我错过了什么?
是否有一个命令不仅仅是回声它的参数,而且如果需要也会逃避它们(例如,如果参数包含空格或特殊字符)?
我需要它在一些shell魔法中,而不是在一个脚本中执行命令我回应命令.此输出通过管道传递给python脚本,该脚本最终以更有效的方式执行命令(它加载实际目标python脚本的main()方法并使用给定的参数执行它,并且通过计算数据之间的其他参数进行缓存运行main()).
而不是我当然可以将所有shell魔法移植到python,在那里我不需要管道任何东西.
我明白-D_FILE_OFFSET_BITS=64原因off_t是64位.那么-D_LARGEFILE_SOURCE这项工作尚未完成-D_FILE_OFFSET_BITS=64呢?这些定义究竟做了什么?
JavaScript中是否有一种方法可以将事件传播给被另一个模糊的元素?因为我有一个position: absolute元素,它隐藏了不是它的父元素的元素,但我想点击,mousemove和mousout事件来传递这个元素.解决方案可以是特定于Mozilla Firefox的,因为我将在Firefox附加组件中使用它.
我已经为一个讲座中的一些文件格式(ARFF)编写了一个动手的递归纯python解析器.现在运行我的运动提交非常缓慢.到目前为止,我的解析器花费的时间最多.它消耗了大量的CPU时间,HD不是瓶颈.
我想知道在python中编写解析器的高效方法是什么?我宁愿不用C重写它.我试图使用jython,但这会降低性能!我解析的文件部分很大(> 150 MB),行很长.
我当前的解析器只需要预览一个字符.我会在这里发布消息来源,但我不知道这是不是一个好主意.在所有提交截止日期尚未结束之后.但是,本练习的重点不是解析器.您可以选择要使用的任何语言,并且已经有一个Java解析器.
注意:我有一个x86_64系统,所以psyco(似乎也是PyPy)是没有选择的.
我们从静态资产中提供一些Web字体(.woff),我想设置正确的mime类型(application/x-font-woff).我尝试这样做config/initializers/mime_types.rb但它没有效果:
Mime::Type.register "application/x-font-woff", :woff
Run Code Online (Sandbox Code Playgroud)
返回的哑剧类型仍然存在application/octet-stream.我甚至试图添加这一行(因为它是rails源中唯一可以找到字符串的地方"woff"):
Rack::Mime::MIME_TYPES[".woff"] = "application/x-font-woff"
Run Code Online (Sandbox Code Playgroud)
但它仍然无济于事.如何正确设置Web字体的mime类型?
MinGW 支持__declspec(dllexport)/吗__declspec(dllimport)?即使是这样,我应该使用吗__attribute__((visibility("default")))?基本上我应该根据平台或编译器来决定使用什么?
应该是这样吗?
#ifdef _MSC_VER
# ifdef MYLIB_EXPORTS
# define MYLIB_API __declspec(dllexport)
# else
# define MYLIB_API __declspec(dllimport)
# endif
#else
# define MYLIB_API __attribute__((visibility("default")))
#endif
Run Code Online (Sandbox Code Playgroud)
或者像这样?
#if defined(_WIN32) || defined(_WIN64)
# ifdef MYLIB_EXPORTS
# define MYLIB_API __declspec(dllexport)
# else
# define MYLIB_API __declspec(dllimport)
# endif
#else
# define MYLIB_API __attribute__((visibility("default")))
#endif
Run Code Online (Sandbox Code Playgroud)
那么像__declspec(align(16))Vs这样的事情呢?__attribute__((aligned(16)))?
Linux 下 Mac 的交叉编译是一个主要的 PITA。要设置交叉编译,您需要一个 Apple 开发人员帐户、XCode 的 SDK 等。我尝试过,但无法让它工作。无论如何,似乎所有可用的说明都已过时。
但我要编译的程序只是一个小型 shell 工具,只需要一个标准 C 库(最好是静态链接的 glibc)。无需 Mac 框架或 Objective-C。在 Windows 上编译这样的二进制文件很容易,但在 OS X 上就不那么容易了。看起来几乎所有缺少的都是链接部分,因为你可以像这样构建 mach-o 对象文件:
clang -target i386-apple-darwin-macho hello_world.c -o hello_world.o -c
Run Code Online (Sandbox Code Playgroud)
但当然事情没那么简单,因为这会产生一个错误:
echo $'#ifdef __linux__\n#error "thinks it\'s for linux"\n#endif'| \
clang -x c - -o /dev/null -c
Run Code Online (Sandbox Code Playgroud)
有没有办法在 Linux 下使用未打补丁的 clang 为 Mac OS X 编译 mach-o 对象?那么有没有一种方法可以将这样的目标文件与 Mac 的静态 glibc 链接起来,以便它在 OS X 下运行?我从哪里得到这样的 glibc (我想我必须自己编译它)?
我需要在我编写的附加组件中对整个网页文档进行大量的DOM操作.我想尽量减少回流,因此我的所有操作只会发生一次回流.删除body元素,执行操作然后再次插入它不是一个选项,因为这会重新评估所有<script>元素.目前我'none'在操作之前设置了主体的可见性并恢复了显示后的值.不过,我不确定这是否是解决这个问题的最佳方法.
有没有更好的办法?当然它可能是Firefox特定的代码.毕竟它是一个Firefox附加组件.