小编Rob*_*mba的帖子

如何从RethinkDB文档中删除密钥?

我正在尝试从RethinkDB文档中删除密钥.我的方法(没有用):

r.db('db').table('user').replace(function(row){delete row["key"]; return row}) 
Run Code Online (Sandbox Code Playgroud)

其他方法:

r.db('db').table('user').update({key: null}) 
Run Code Online (Sandbox Code Playgroud)

这个只设置row.key = null(看起来合理).

通过Web UI 在rethinkdb数据资源管理器上测试的示例.

rethinkdb rethinkdb-python

41
推荐指数
3
解决办法
1万
查看次数

.NET CoreCLR,CoreRT,Roslyn和LLILC之间有什么区别

最近我开始阅读有关.NET重组细节的信息(主要是通过.NET Core github页面).它接缝他们创建了兄弟项目以支持更多平台.在阅读时我的印象是CoreCLRCoreRT是一个新的OpenSource版本的专有Roslyn编译器.CoreRT提供本机(AOT)编译.而LLILC是一种备选实现指挥LLVM框架.

任何人都可以从用户角度确认和描述这些项目的差异和目标吗?为什么有人会在未来使用Roslyn而不是CoreCLR?

.net clr roslyn coreclr corert

25
推荐指数
1
解决办法
8805
查看次数

代数,数学的Java/Scala库

你能告诉我一些灵活,强大,快速的库,它可以涵盖SciPy(性能和功能).我发现SciPy很有表现力 - 但我想在Scala中尝试一些东西.

我读了一些关于Scala的内容 - 但不像SciPy那样精彩.任何替代品?也许Java库?

java math scala algebra linear-algebra

24
推荐指数
1
解决办法
1万
查看次数

如何在vscode中触发文档弹出窗口

如何在光标下触发带有标识符文档的弹出窗口?通常在使用鼠标指针悬停标识符时出现: 在此输入图像描述

我想使用命令或键盘快捷方式实现此效果.

我发现的唯一相关命令是:( trigger completion不显示函数doc)和trigger parameters hint(仅当光标位于函数调用 - 参数列表中时才有效).

visual-studio-code vscode-extensions

17
推荐指数
4
解决办法
4689
查看次数

LLVM,Parrot,JVM,PyPy + python

开发某些语言有什么问题,例如python用于一些LLVM/Parrot的优化技术.

PyPy,LLVM,Parrot是通用平台开发的主要技术.
我觉得这样:

  • PyPy - 构建VM的框架,内置优化的VM for python
    所以它是非常通用的解决方案.该过程如下所示:
    1. dynamic_language_code - >
    2. PyPy前端 - >
    3. PyPy内部代码 - 字节码 - >
    4. PyPy优化 - >
    5. 留下PyPy代码和:
      a.某些VM的pyPy后端(如jvm)
      b.som Kit创建自己的VM
      c.处理/运行PyPy内部代码

我是对的关于这个过程吗?对于python,有优化的VM?特别是默认情况下,在VM中构建优化的PyPy代码(步骤5.c) - 这是用于python的,每个语言处理都可以停在那里并由它运行?

  • 鹦鹉 - 很像PyPy,但没有5.a和5.b?动态处理的一些内部改进(Parrot Magic Cookies).

ParrotPyPy都旨在创建一个创建通用动态语言运行库的平台,但PyPy需要更多 - 同时创建更多VM.
PyPy的感觉在哪里?我们需要创建更多的VM?不应该更好地专注于一个VM(如parrot) - 因为有一个共同的代码级别 - PyPy内部字节码或Parrot.我认为将PyPy字节码转换为使用PyPy VM新创建的字节码,我们无法获得更好的效果.

  • LLVM - 我认为这与PyPy非常相似,但没有VM生成器.
    它是成熟的,设计良好的环境,具有与PyPy类似的目标(但没有VM生成器),但是在低级结构和优化/ JIT技术的实现上工作

将此视为:LLVM是一般用途,但Parrot和**PyPy*专为动态语言而设计.在PyPy/Parrot中更容易引入一些复杂的技术 - 因为它比LLVM更高级 - 就像复杂的编译器,可以更好地理解高级代码并产生更好的汇编代码(人类无法在合理的时间内编写),然后LLVM一个?

问题:

  1. 我对吗?是否有任何理由移植某些动态语言对llvm然后比如Parrot更好?

  2. 我没有在Parrot上看到关于开发python的活动.是因为使用python C扩展不适用于鹦鹉?PyPy也存在同样的问题

  3. 为什么其他虚拟机不想迁移到LLVM/parrot.例如ruby - > parrot,CLR/JVM - > LLVM.他们转向更复杂的解决方案会不会更好?LLVM处于高度发展的过程中,并且有大公司投资.

  4. 我知道重新编译的问题可能是资源,如果需要更改字节码 - 但这不是必须的 - 因为我们可以尝试将旧的字节码移植到新的字节码,而新的编译器会产生新的字节码(从来没有更少的java仍然需要解释自己的字节码 …

python jvm pypy parrot llvm

15
推荐指数
3
解决办法
8271
查看次数

在PyPy和PyPy + greenlet中无堆叠 - 差异

新版PyPy附带集成的Stackless.据我所知,捆绑的Stackless与2001年的Stackless起源不同.所以主要是带调度程序的绿色线程框架.

Greenlet是Stackless的旋转,它提供Stackless绿色线程功能作为扩展模块.

有没有使用"原生"的任何利益无堆栈PyPyPyPy + greenlet +一些调度(如:GEVENT)?或问题是我不能使用PyPy的那些类型的扩展?更具体一点:我知道PyPy有自己的greenlet实现(基于continulet).但我很好奇在PyPy中将外部greenlet与gevent和内部greenlet连接起来的可能性.

PyPy是否附带了一个用于Stackless的异步IO库而不是标准的?

我知道stackless本身和python的其他异步轻线程扩展(eventlet,gevent,twisted ......).因此,我不是在寻找它们之间的差异,而是通过无堆叠构建而形成的pypy的优势.

python pypy gevent greenlets python-stackless

14
推荐指数
1
解决办法
4787
查看次数

为什么内置函数应用于被认为是弱头正常形式的太少参数?

Haskell 定义说:

表达式是弱头正常形式(WHNF),如果它是:

  • 一个构造函数(最终应用于参数),如True,Just(square 42)或(:) 1
  • 一个内置函数应用于太少的参数(可能没有),如(+)2或sqrt.
  • 或lambda抽象\ x - >表达式.

为什么内置功能会得到特殊处理?根据lambda演算,部分应用函数和任何其他函数之间没有区别,因为最后我们只有一个参数函数.

haskell lambda-calculus partial-application reduction weak-head-normal-form

14
推荐指数
1
解决办法
954
查看次数

如果文档存在,如何进行rethinkdb原子更新,否则插入?

如果文档存在,如何进行rethinkdb原子更新,否则插入?

我想做的事情如下:

var tab = r.db('agflow').table('test');
r.expr([{id: 1, n: 0, x: 11}, {id: 2, n: 0, x: 12}]).forEach(function(row){
  var _id = row('id');
  return r.branch(
    tab.get(_id).eq(null),  // 1
    tab.insert(row),        // 2 
    tab.get(_id).update(function(row2){return {n: row2('n').add(row('n'))}}) // 3
  )})
Run Code Online (Sandbox Code Playgroud)

然而,这不是完全原子的,因为在我们检查文档是否存在(1)和插入它(2)之间,某些其他线程可能会插入它.

如何使这个查询原子?

rethinkdb

12
推荐指数
2
解决办法
5454
查看次数

Vim运动:去父母

在Vim中,如何在xml文件中移动父/ cousine标签?我正在寻找类似的东西:

vatat " create a selection for second parent tag with all child elements
Run Code Online (Sandbox Code Playgroud)

但是在正常模式下(例如:转到第二个父标签).

vim

10
推荐指数
1
解决办法
1296
查看次数

Aerospike ACID澄清

Aerospike数据库说,它是

[...]架构有三个关键目标:
创建一个灵活,可扩展的平台,以满足当今Web规模应用程序的需求
提供传统数据库所期望的稳健性和可靠性(即ACID).
提供运营效率(最少的人工参与)

而在其他地方:

Aerospike经过优化,可与最新的存储和数据库技术配合使用,以尽可能多地挤压事务吞吐量,同时仍保证强一致性(ACID).

首先,我没有在Aerospike中找到任何交易定义.通常我将它作为数据库上的一系列操作.但是稍后阅读我没有看到交易是ACID:

在阅读详细的Aerospike ACID描述时,我发现它只是假装 ACID保证.

例子:

  • 我想在事务中进行一系列操作(a,b,c).每个操作都是一个独立的DB查询.如果c失败,那么我希望a和b由数据库系统回滚.我没有在Aerospike中找到这个功能.
  • 让我们考虑修改文档A和B的两个并发事务.在开头A = 0和B = 0:

    • T1加1 AB
    • T2将A和B乘以2.

    我希望我们总能最终得到A==B- 结果将是:

    • A=1 & B=1 当T2首先锁定/取得文件A和B的所有权时
    • A=2 & B=2 当T2首先锁定/取得文件A和B的所有权时

    这个结果有什么保证?

你能证实我的例子结果吗?

2. 用户定义的功能在某种程度上有帮助吗?

PS

要清楚 - 我不想说Aerospike很糟糕.我在那里看到了很棒的好作品.当ACID保证在那里失败时,我只是错过了一个很好的澄清.

transactions acid aerospike

9
推荐指数
1
解决办法
2187
查看次数