小编zsl*_*ton的帖子

如何协调主机 JS 和 Wasm 模块之间的内存访问?

目前,WebAssembly 仅支持少数参数类型,即固定大小的整数和浮点数。这意味着我只能从接受和返回数值的 C/Rust 模块中定义和导出函数。

然而,根据 Mozilla 开发者网络,我可以从主机 Javascript 操作模块的内存:

由 JavaScript 或 WebAssembly 代码创建的内存可以从 JavaScript 和 WebAssembly 访问和更改。

这听起来很有希望——它表明我可以将内存的一部分指定为字节缓冲区,在其中跨越语言障碍来回传送更复杂的数据。我的模块中的函数可以接受并返回指针(它们本身就是i32固定大小的整数),从而在当前约束内工作。

不幸的是,目前尚不清楚我应该如何管理这些内存。如果我需要从 JS 向 Wasm 进程传递数据,我需要直接写入 Memory 对象,但不知道 Memory 中的哪些区域是空闲的。

最安全的策略是什么?我是否应该导出一对malloc-and-free风格的函数,让 JS 能够在调用 Wasm 之前请求内存?或者是否有既定的最佳实践?

javascript memory memory-management webassembly

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

使用注释在JBoss AS 7中创建Web服务

我有一个带有嵌套EJB项目的EAR文件,一个.war动态Web项目和一个包含实体bean定义的.jar文件.

我正在尝试使用此远程接口创建一个简单的基于SOAP的Web服务:

package session;

import javax.ejb.Remote;
import javax.jws.WebMethod;
import javax.jws.WebService;

@Remote
@WebService
public interface HelloWorldRemote {
    @WebMethod
  public String greet(String from);
    @WebMethod
  public String getMessage();
}
Run Code Online (Sandbox Code Playgroud)

和这个实现类:

package session;

import javax.ejb.Stateless;
import javax.jws.WebService;

@Stateless
@WebService(endpointInterface = "session.HelloWorldRemote", serviceName = "HelloWorldWS")
public class HelloWorldImpl implements HelloWorldRemote {

  public String greet(String from) {
    return "Hello, " + from + ".";
  }

  public String getMessage() {
    return "It's working.";
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我部署EAR文件时,日志没有提及类,WSDL,Web服务或任何会让我相信它正在尝试根据我的注释创建Web服务的任何内容.

我错过了什么?

java annotations web-services java-ee-6 jboss7.x

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

当服务器被终止时,NodeJS socket.io-client不会触发"断开连接"或"关闭"事件

我写了一个最小的例子.代码发布在这里:https://gist.github.com/1524725

我启动我的服务器,启动我的客户端,验证两者之间的连接是否成功,最后用CTRL + C终止服务器.当服务器终止时,客户端立即运行完成并关闭,而不在on_client_close或on_client_disconnect中打印消息.没有明显的延迟.

从我已经完成的读取开始,因为客户端进程正常终止,所以没有任何机会不刷新STDOUT缓冲区.

值得注意的是,当我终止客户端而不是服务器时,服务器会按预期响应,触发on_ws_disconnect函数并从其活动客户端列表中删除客户端连接.

32位Ubuntu 11.10 Socket.io v0.8.7 Socket.io-client v0.8.7 NodeJS v0.6.0

谢谢!

---编辑---

请注意,客户端和服务器都是Node.js进程,而不是传统的Web浏览器客户端和node.js服务器.

callback disconnect node.js socket.io

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

为什么Erlang的开放式电信平台(OTP)没有移植到其他语言?

我开始潜入二郎首次和OTP由爱好者和评论家高举都为高度可用的分布式处理的黄金标准.

鉴于检察官办公室已经存在了几十年,并公开记录在案,那为什么其他语言支持自己的轻量级线程/进程还没有采用的版本?是否存在技术/政治挑战?或者每个人都耸耸肩并学习Erlang?

谢谢!

erlang erlang-otp

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

有没有一种优雅的方法来制作一个没有PhantomData的未使用类型的通用元组结构?

我想创建一个通用的元组结构Producer,它可以包含任何P实现特征的类型Produce<T>,如下所述.这会产生(预期)注释错误:

trait Produce<T> {
    fn get(&mut self) -> T;
}

// ERROR: parameter `T` is never used [E0392]
struct Producer<P,T>(P) where P: Produce<T>;
Run Code Online (Sandbox Code Playgroud)

如果这是一个非元组结构,我可以通过添加一个PhantomData<T>字段并编写一个构造函数Producer::new(p: P)来隐藏它作为一个实现细节来解决这个问题.但是,我在Builder API中使用此类型作为元组结构系列之一,因此使用传统的struct +构造函数感觉非常不合适.

有没有办法实现这个目标?

struct tuples traits rust

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

当我使用 Seq[T] 构造函数时创建了什么具体的数据类型?

Scala 允许我Seq使用以下语法直接实例化一个实现trait的对象:

val numbers: Seq[Int] = Seq(1, 2, 3)
val names: Seq[String] = Seq("Alice", "Bob", "Charles")
Run Code Online (Sandbox Code Playgroud)
  1. 既然Seq是 trait 而不是具体的实现,那么什么数据类型是numbers和 的基础names
  2. 我可以为自己解决这个问题的最佳方法是什么?
  3. 直接创建 trait 对象是惯用的吗?

谢谢!

collections scala traits seq

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

是否可以在ActiveMQ中镜像单个队列?

我在生产系统中运行ActiveMQ.我们的一些队列的音量非常高,而且有些音量非常低.我有兴趣镜像其中一个低容量队列,这样我就可以围绕收到的消息构建非正式的监控服务.

不幸的是,我能找到的唯一文档似乎暗示镜像队列是全有或全无:你要么为你拥有的每一个队列创建一个主题(并且要复制流经你的每一条消息的性能损失)系统),或者根本不能使用该功能.

是否无法为单个已知队列名称启用此有用功能?

activemq-classic message-queue

2
推荐指数
1
解决办法
1485
查看次数