小编glt*_*lts的帖子

使用软件事务内存的任何真实体验?

似乎最近对STM(软件事务内存)框架和语言扩展的兴趣日益增加. 特别是Clojure有一个很好的实现,它使用MVCC(多版本并发控制)而不是滚动提交日志.GHC Haskell也有一个非常优雅的STM monad,它也允许交易组成.最后,为了给自己的号角做一点点,我最近为Scala实现了一个静态强制引用限制的STM框架.

所有这些都是有趣的实验,但它们似乎仅限于那个领域(实验).所以我的问题是:你们有没有在现实世界中看到过或使用过STM?如果是这样,为什么?它带来了什么样的好处?性能怎么样?(关于这一点似乎存在大量相互矛盾的信息)你会再次使用STM还是更喜欢使用像actor这样的其他并发抽象?

language-agnostic haskell scala clojure stm

60
推荐指数
4
解决办法
5021
查看次数

在Log4j2中,如何将XML Schema与log4j2.xml相关联?

我一直在给新的Log4j2.从迁移文档中可以看出,XML Schema/DTD规范已被废除.

这似乎是倒退一步.当然应该可以将XML Schema或DTD与我联系起来,log4j2.xml以协助编写和验证.我无法在文档中找到任何有用的东西,也没有找到XML Schema或DTD本身.

那么:在Log4j2中,我应该如何将XML Schema与log4j2.xml

java log4j log4j2

33
推荐指数
4
解决办法
2万
查看次数

Clojure STM与Haskell STM有何不同?

我试图找到Clojure所谓的STM和Haskell中实现的STM之间的差异.除了实际的语言语义差异外,我有点困惑,因为Rich Hickey在演讲中说Clojure的STM实现与其他任何东西都有很大不同,但我不理解除语言选择之外的差异.

haskell language-comparisons transactional-memory clojure stm

32
推荐指数
3
解决办法
3271
查看次数

从doctrine 2中的datetime对象获取日期作为字符串

在我的一个实体中,我有一个被称为受保护的属性insert_date,它是一个日期时间.

当我之后提取数据时,我没有将日期作为字符串,我得到一个对象.我的var转储:

<pre class='xdebug-var-dump' dir='ltr'> <b>object</b>(<i>DateTime</i>)[<i>1560</i>] <i>public</i> 'date' <font color='#888a85'>=&gt;</font> <small>string</small> <font color='#cc0000'>'2011-08-26 12:40:29'</font> <i>(length=19)</i> <i>public</i> 'timezone_type' <font color='#888a85'>=&gt;</font> <small>int</small> <font color='#4e9a06'>3</font> <i>public</i> 'timezone' <font color='#888a85'>=&gt;</font> <small>string</small> <font color='#cc0000'>'Europe/London'</font> <i>(length=13)</i> </pre><pre class='xdebug-var-dump' dir='ltr'> <b>object</b>(<i>DateTime</i>)[<i>1571</i>] <i>public</i> 'date' <font color='#888a85'>=&gt;</font> <small>string</small> <font color='#cc0000'>'2011-08-26 12:40:29'</font> <i>(length=19)</i> <i>public</i> 'timezone_type' <font color='#888a85'>=&gt;</font> <small>int</small> <font color='#4e9a06'>3</font> <i>public</i> 'timezone' <font color='#888a85'>=&gt;</font> <small>string</small> <font color='#cc0000'>'Europe/London'</font> <i>(length=13)</i>
Run Code Online (Sandbox Code Playgroud)

我试过了:

foreach($dateObj as $date) {

}
Run Code Online (Sandbox Code Playgroud)

但是它没有提取......我如何从这个对象中获取日期属性?即使$insert_date->date不起作用.

php datetime doctrine doctrine-orm

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

什么是在不使用临时文件的情况下在vim中读取手册页的方法

我希望能够在vim中阅读手册页.由于某种原因,似乎vim无法通过管道读取程序的输出(即'(man ls)| vi'似乎不起作用,奖励指向可以解释原因的人),并获得围绕这个,我一直在使用以下小脚本:

tempo = `mktemp`
man $1 > $tempo ; vi $tempo
Run Code Online (Sandbox Code Playgroud)

这个脚本使用的临时文件,我觉得工作正常,但我想知道是否有一个很好的方法来阅读vim中的手册页而不需要制作临时文件

unix linux vi vim manpage

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

括号<Plug>地图名称的原因是什么?

许多插件使他们的公共映射界面可以通过<Plug>地图访问.然后,用户可以将这些映射用作他们自己映射的钩子,例如:nmap <Leader>fu <Plug>fooPluginUnlinkRootDir.

最近我遇到了一些将地图名称放在括号中的插件,例如

此语法未在帮助文件中的任何位置记录,也不会使用任何捆绑的Vim运行时文件.不过,这些插件可以很好地完成它们的工作.

括号的动机是什么?使用它们有什么好处吗?是否应该鼓励插件作者遵循这种做法(作为最佳实践)?

vim vim-plugin

16
推荐指数
2
解决办法
1004
查看次数

嵌套的dosync调用如何表现?

创建嵌套的dosync调用时会发生什么?子事务是否会在父范围内完成?如果父事务失败,这些子事务是否可逆?

clojure stm

13
推荐指数
1
解决办法
1268
查看次数

在Clojure,Haskell(和其他语言)中使用哪些算法用于STM?

据我所知,实现软件事务内存有几种不同的算法(这是一个非常活跃的研究领域).我在哪里可以找到(不必深入研究源代码)在不同语言和库中使用,特别是在Clojure和Haskell(GHC)中?

concurrency haskell transactional-memory clojure stm

13
推荐指数
3
解决办法
1331
查看次数

13
推荐指数
2
解决办法
452
查看次数

Clojure传感器与Java中的流中间操作具有相同的概念吗?

当我在Clojure中学习传感器时,它突然让我想起了他们提醒我的:Java 8流!

传感器是可组合的算法变换.它们独立于输入和输出源的上下文,并且仅根据单个元素指定转换的本质.

是不是一个数据结构,用于存储内容; 相反,它通过计算操作管道传递来自诸如数据结构,数组,生成器函数或I/O通道的源的元素.

Clojure的:

(def xf
  (comp
    (filter odd?)
    (map inc)
    (take 5)))

(println
  (transduce xf + (range 100)))  ; => 30
(println
  (into [] xf (range 100)))      ; => [2 4 6 8 10]
Run Code Online (Sandbox Code Playgroud)

Java的:

// Purposely using Function and boxed primitive streams (instead of
// UnaryOperator<LongStream>) in order to keep it general.
Function<Stream<Long>, Stream<Long>> xf =
        s -> s.filter(n -> n % 2L == 1L)
                .map(n -> n + 1L)
                .limit(5L);

System.out.println(
        xf.apply(LongStream.range(0L, …
Run Code Online (Sandbox Code Playgroud)

java clojure transducer java-8 java-stream

13
推荐指数
1
解决办法
698
查看次数