小编def*_*ode的帖子

调试嵌入式Lua

如何调试嵌入在c ++应用程序中的lua代码?

从我收集的内容来看,我需要购买一个特殊的IDE并链接到他们特殊的lua运行时(ugh).或者我需要使用lua调试API调用在游戏引擎中构建调试控制台.

我倾向于编写自己的调试控制台,但它似乎很多工作.我可以更好地花时间擦亮游戏的其他部分的时间.

c++ debugging lua

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

强制Lua脚本退出

你如何结束长期运行的Lua脚本?

我有两个线程,一个运行主程序,另一个控制用户提供的Lua脚本.我需要杀死正在运行Lua的线程,但首先我需要脚本退出.

有没有办法强制脚本退出?

我已经读过,建议的方法是返回一个Lua异常.但是,并不保证用户的脚本将调用api函数(它可能处于紧张的繁忙循环中).此外,用户可以通过使用a来防止错误导致他的脚本退出pcall.

lua

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

JSON模式验证

是否有一个稳定的库可以根据模式验证JSON ?

json-schema.org提供了一个实现列表.值得注意的是C和C++缺失.

有没有理由我不能轻易找到C++ JSON模式验证器?
没有其他人想要快速验证传入的JSON文件吗?

c c++ json jsonschema

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

如何修复此错误"runtime.main:undefined main.init"

尝试运行一个简单的hello world go程序返回错误.

# command-line-arguments
runtime.main: undefined: main.init
runtime.main: undefined: main.main
Run Code Online (Sandbox Code Playgroud)

文件内容:

package main    
import "fmt"
func main() {
  fmt.Println("Hello, World!")
}
Run Code Online (Sandbox Code Playgroud)

main显然是定义和添加func init() {}没有帮助.

两个runbuild命令都会导致相同的错误.

go build hello_test.go
go run hello_test.go
Run Code Online (Sandbox Code Playgroud)

go

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

checkins应该是小步骤还是完整功能?

版本控制的两种用途似乎决定了不同的签到样式.

  • 以分布为中心:变更集通常会反映完整的功能.一般来说,这些签到会更大.这种风格更加友好用户/维护者.

  • rollback centric:changesets将是单独的小步骤,因此历史记录可以像一个非常强大的撤销功能.通常,这些签到会更小.这种风格更适合开发人员.

我喜欢使用我的版本控制作为非常强大的撤销功能,同时我会抨击一些顽固的代码/错误.通过这种方式,我不会为了尝试可能的解决方案而做出重大改变.然而,这似乎给了我一个碎片化的文件历史记录,其中包含许多"井下不起作用"的签名.

如果我尝试让我的变更集反映完整的功能,我会放弃使用我的版本控制软件进行实验.但是,用户/维护者更容易弄清楚代码是如何发展的.这对于代码审查,管理多个分支等具有很大的优势.

那么开发人员应该做些什么呢?检查小步骤或完整功能?

git mercurial dvcs bazaar

25
推荐指数
3
解决办法
1018
查看次数

D编程语言中的Erlang风格并发

我认为Erlang风格的并发性是核心数量呈指数级增长的答案.你可以用其他主流语言伪造它.但解决方案总是让我失望.我不愿意放弃多范式编程(C++/D)来切换到Erlang的严苛语法.

什么是Erlang风格的并发:

来自其中一位语言作者(究竟什么是Erlang的并发模型?):

  • 轻量级并发.
    便宜的创建线程和廉价来维持疯狂的数字.
  • 异步通信.
    线程仅通过消息进行通信.
  • 错误处理.
  • 过程隔离.

或者来自知情的博主(什么是Erlang风格的并发?):

  • 快速创建/销毁流程
  • 能够支持>> 10 000个并发过程,特征基本不变.
  • 快速异步消息传递.
  • 复制消息传递语义(无共享并发).
  • 过程监控.
  • 选择性的消息接收.

我认为D的消息传递可以完成大部分功能.我想知道的是" >> 10,000个并发进程(线程) "和" 快速进程创建/销毁 ".

D如何处理这些要求?

我认为要正确支持它们,你必须使用绿色线程.可以将D的消息传递功能与绿色线程库一起使用吗?

concurrency erlang d

25
推荐指数
2
解决办法
3680
查看次数

Go无法推断赋值类型:"左侧非名称:="

此代码段按预期工作play.golang.org/p/VuCl-OKMav

i := 10
next := 11
prev, i := i, next
Run Code Online (Sandbox Code Playgroud)

然而,这个几乎完全相同的片段给出了non-name f.Bar on left side of := play.golang.org/p/J8NNWPugQG

type Foo struct {
    Bar int
}

f := Foo{10}
next := 11
prev, f.Bar := f.Bar, next
Run Code Online (Sandbox Code Playgroud)

停止类型推断的结构有什么特别之处?这是一个错误吗?

type-inference go

25
推荐指数
3
解决办法
2万
查看次数

PVR纹理与OpenGL ES中的PNG

我正在为iPhone开发一个渲染大量纹理的2D应用程序.它们中的大多数都是从具有Alpha透明度的PNG文件加载的.作为测试,我一直在玩PVR测试,看看是否有任何性能差异.

PNG纹理加载了崩溃着陆示例附带的Texture2D类.PVR-testures使用PVRTextureLoader示例中的PVRTexture类加载.我使用Apple的texturetool创建PVR纹理.

作为测试,我渲染背景(512*512),并在36个90*64像素精灵(来自512*512纹理)的顶部透明.PVR纹理渲染大约58 fps,PNG渲染47 fps.这是我可以期待的还是差异会更大?另外,texturetool生成的纹理看起来非常糟糕,PVRTexTool更好吗?

iphone opengl-es

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

D支持64位有多好?

我想尝试D编程语言.我有一个简单的宠物项目,我一直想完成,我认为这是一个很好的学习机会D 2.0.

但是,我的主要操作系统是使用Windows 7 64位的kubuntu 64位双启动,我似乎无法让它工作.该项目将使用SDL,我怀疑我的64位操作系统可能是问题.

D64位的当前状态是什么?有没有人有这方面的工作经验?

顺便说一下,我没有兴趣D 1.0,所以它D 2.0或者是破产.

64-bit d

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

C++和D之间的链接兼容性

D容易接口C.

D同样容易接口C++,但(并且它很大但是)C++需要非常微不足道.代码不能使用:

  • 命名空间
  • 模板
  • 多重继承
  • 将虚拟与非虚拟方法混合使用
  • 更多?

我完全理解继承限制.然而,其余的,感觉像人为限制.现在我不想std::vector<T>直接使用,但我真的希望能够std::vector<int>作为一个外部模板链接.

C++接口页有这个特别令人沮丧的评论.

D模板与C++模板几乎没有共同点,并且不太可能找到任何合理的方法以与D链接兼容的方式表达C++模板.

这意味着可能永远无法从D中访问C++ STL和C++ Boost.

不可否认,我可能永远不需要std::vector编码D,但我喜欢使用QT提升.

那是什么交易.为什么C++在D中表达非平凡的类很难?是否值得添加一些特殊的注释或某些东西来表达至少名称空间?


更新:"D在工程中有命名空间支持"来自Walter Bright.

c++ templates d

20
推荐指数
2
解决办法
1687
查看次数

标签 统计

c++ ×3

d ×3

go ×2

lua ×2

64-bit ×1

bazaar ×1

c ×1

concurrency ×1

debugging ×1

dvcs ×1

erlang ×1

git ×1

iphone ×1

json ×1

jsonschema ×1

mercurial ×1

opengl-es ×1

templates ×1

type-inference ×1