如何调试嵌入在c ++应用程序中的lua代码?
从我收集的内容来看,我需要购买一个特殊的IDE并链接到他们特殊的lua运行时(ugh).或者我需要使用lua调试API调用在游戏引擎中构建调试控制台.
我倾向于编写自己的调试控制台,但它似乎很多工作.我可以更好地花时间擦亮游戏的其他部分的时间.
你如何结束长期运行的Lua脚本?
我有两个线程,一个运行主程序,另一个控制用户提供的Lua脚本.我需要杀死正在运行Lua的线程,但首先我需要脚本退出.
有没有办法强制脚本退出?
我已经读过,建议的方法是返回一个Lua异常.但是,并不保证用户的脚本将调用api函数(它可能处于紧张的繁忙循环中).此外,用户可以通过使用a来防止错误导致他的脚本退出pcall.
是否有一个稳定的库可以根据模式验证JSON ?
json-schema.org提供了一个实现列表.值得注意的是C和C++缺失.
有没有理由我不能轻易找到C++ JSON模式验证器?
没有其他人想要快速验证传入的JSON文件吗?
尝试运行一个简单的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() {}没有帮助.
两个run和build命令都会导致相同的错误.
go build hello_test.go
go run hello_test.go
Run Code Online (Sandbox Code Playgroud) 版本控制的两种用途似乎决定了不同的签到样式.
以分布为中心:变更集通常会反映完整的功能.一般来说,这些签到会更大.这种风格更加友好用户/维护者.
rollback centric:changesets将是单独的小步骤,因此历史记录可以像一个非常强大的撤销功能.通常,这些签到会更小.这种风格更适合开发人员.
我喜欢使用我的版本控制作为非常强大的撤销功能,同时我会抨击一些顽固的代码/错误.通过这种方式,我不会为了尝试可能的解决方案而做出重大改变.然而,这似乎给了我一个碎片化的文件历史记录,其中包含许多"井下不起作用"的签名.
如果我尝试让我的变更集反映完整的功能,我会放弃使用我的版本控制软件进行实验.但是,用户/维护者更容易弄清楚代码是如何发展的.这对于代码审查,管理多个分支等具有很大的优势.
那么开发人员应该做些什么呢?检查小步骤或完整功能?
我认为Erlang风格的并发性是核心数量呈指数级增长的答案.你可以用其他主流语言伪造它.但解决方案总是让我失望.我不愿意放弃多范式编程(C++/D)来切换到Erlang的严苛语法.
什么是Erlang风格的并发:
来自其中一位语言作者(究竟什么是Erlang的并发模型?):
或者来自知情的博主(什么是Erlang风格的并发?):
我认为D的消息传递可以完成大部分功能.我想知道的是" >> 10,000个并发进程(线程) "和" 快速进程创建/销毁 ".
D如何处理这些要求?
我认为要正确支持它们,你必须使用绿色线程.可以将D的消息传递功能与绿色线程库一起使用吗?
此代码段按预期工作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)
停止类型推断的结构有什么特别之处?这是一个错误吗?
我正在为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更好吗?
我想尝试D编程语言.我有一个简单的宠物项目,我一直想完成,我认为这是一个很好的学习机会D 2.0.
但是,我的主要操作系统是使用Windows 7 64位的kubuntu 64位双启动,我似乎无法让它工作.该项目将使用SDL,我怀疑我的64位操作系统可能是问题.
D64位的当前状态是什么?有没有人有这方面的工作经验?
顺便说一下,我没有兴趣D 1.0,所以它D 2.0或者是破产.
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.