在办公室,我们正在编写一个应用程序,它将根据我们给出的模式生成XML文件.我们在.XSD文件中有架构.
是否有可用于自动化测试的工具或库来检查生成的XML是否与模式匹配?
我们更喜欢适合商业用途的免费工具,尽管我们不会捆绑架构检查器,因此开发期间只需要开发人员可以使用它.
我们的开发语言是C++,如果这有什么不同,虽然我不认为它应该生成xml文件然后通过在测试中调用单独的程序来进行验证.
我在这个问题上看到了这个引用:什么是构建Web服务的好函数语言?
特别是Scala不支持尾调用消除,除了自递归函数,这限制了你可以做的组合种类(这是JVM的一个基本限制).
这是真的?如果是这样,那么创建这个基本限制的JVM是什么呢?
我有一组Boost单元测试,我想作为控制台应用程序运行.
当我正在进行项目并运行测试时,我希望能够调试测试,并且我希望在测试运行后让控制台保持打开状态.
我看到如果我在发布模式下运行,程序退出后控制台窗口会保持不变,但在调试模式下,情况并非如此.
我不想添加'system("pause");' 或任何其他黑客,比如在我的节目中读一个角色.我只是想在调试运行测试之后使Visual Studio暂停,就像我在发布模式下运行一样.如果在Visual Studio的一个输出窗口中捕获测试的输出,我也会喜欢它,但这似乎也应该比它应该更难.
我怎样才能做到这一点?
当我点击正确的键击时,我正在尝试教Komodo点燃IDLE.我可以使用Windows资源管理器位置栏中开始菜单中快捷方式的确切路径来启动IDLE,因此我希望Komodo也能够使用它.但是,给这条通往科莫多岛的道路会导致它返回1.由于IDLE无法启动,这似乎是失败的.
我以为我会避开快捷方式,只使用确切的路径.我转到开始菜单,找到IDLE的快捷方式,右键单击查看属性.目标是灰色的,但是说"Python 2.5.2"."开始"设置为"C:\ Python25 \"."打开文件位置"按钮也显示为灰色.
如何找出此快捷方式指向的位置?我试过在C:\ Python25中启动python.exe和pythonw.exe,但都没有启动IDLE.
我需要构建一些C代码,然后通过FFI引用该C代码.我想在osx上使用ghci里面的绑定.根据我的限制,我不能只将C源文件传递给.cabal文件中的ghc.这是因为ghc/cabal的限制可以在ghc的下一个版本中修复(但我希望我的代码现在可以在旧版本中使用).看到这个的细节错误.
该错误的要点是C代码需要使用一些Objective-C模块进行编译,并且ghc将这些错误解释为链接器脚本.我尝试了很多东西,用makefile自己构建文件是唯一有效的方法.实际上,这应该不是一个问题,因为它应该像我决定使用我自己没有构建的外部C库一样.为了解决这个问题,让我们假装它是一个单独的C库,我可以使用不同的选项轻松地重建它.
如果我将C库构建为.a,那么ghci会抱怨它无法打开.dylib.我的第一个问题是:为什么ghci需要一个.dylib并且它真的使用它吗?
当我构建一个dylib 时,在将代码加载到ghci时会出现段错误.
请记住,这个绑定已经在其他平台上工作了,包括linux和windows,当我编译而不是使用ghci时,绑定在osx上工作正常.这个问题特定于osx/ghci组合.
在上面的那个跟踪中,我正在使用gdb,但无论我是否使用gdb,它都会崩溃.我将其追踪到导致崩溃的线条:
void _glfwClearWindowHints( void )
{
memset( &_glfwLibrary.hints, 0, sizeof( _glfwLibrary.hints ) );
}
Run Code Online (Sandbox Code Playgroud)
麻烦制造者就是那个memset系列,实际上问题是当在ghci里面运行时写入提示结构_glfwLibrary是一个内存访问违规.提示结构只是一堆整数.它非常扁平和简单,因此我认为问题是一个问题,无论是我如何链接事物或ghci加载代码的方式.
以下是我用来构建dylib和.a的makefile的位:
GCCFLAGS := $(shell ghc --info | ghc -e "fmap read getContents >>= \
putStrLn . unwords . read . Data.Maybe.fromJust . lookup \
\"Gcc Linker flags\"")
FRAMEWORK := -framework Cocoa -framework OpenGL
GLFW_FLAG := $(GCCFLAGS) -O2 -fno-common -Iglfw/include -Iglfw/lib \
-Iglfw/lib/cocoa $(CFLAGS)
all: $(BUILD_DIR)/static/libglfw.a $(BUILD_DIR)/dynamic/libglfw.dylib
$(BUILD_DIR)/dynamic/libglfw.dylib: $(OBJS)
$(CC) -dynamiclib -Wl,-single_module -compatibility_version 1 \ …Run Code Online (Sandbox Code Playgroud) 该问题特定于具有物理和视觉成分(例如,游戏)的反应性香蕉和实时模拟.
根据Fix Your Timestep!设置游戏循环的理想方式(假设物理需要可重复),你需要在帧之间固定的时间步长.在考虑了许多真正的并发症之后,作者到达了这个游戏循环:
double t = 0.0;
const double dt = 0.01;
double currentTime = hires_time_in_seconds();
double accumulator = 0.0;
State previous;
State current;
while ( !quit )
{
double newTime = time();
double frameTime = newTime - currentTime;
if ( frameTime > 0.25 )
frameTime = 0.25; // note: max frame time to avoid spiral of death
currentTime = newTime;
accumulator += frameTime;
while ( accumulator >= dt )
{
previousState = currentState;
integrate( currentState, t, …Run Code Online (Sandbox Code Playgroud) 我的目标是利用并行计算parMap从并行包,但我也想有点随机性添加到我的采样功能.
没有随机性我的计算只是一些数字运算,所以它是纯粹的,我可以使用parMap.为了获得良好的结果,我需要在每一步采取多个样本并平均结果.抽样需要随机化.
一种解决方案可能是使用随机包,调用randoms然后在计算过程中使用该列表(通过将纯惰性列表传递给计算,我将保持纯净).不幸的是,这是一个非常慢的随机数生成器,我需要大量的随机数,所以我更喜欢使用mwc-random或mersenne-random(尽管我认为mersenne-random仍然没有保留).
使用像unsafePerformIOmwc-random这样的函数来编写函数是否安全randoms?像这样的东西:
randomsMWC :: Variate a => GenST s -> [a]
randomsMWC g = unsafePerformIO $ unsafeSTToIO $ randomsMWC' g
where
randomsMWC' g = do
a <- uniform g
as <- unsafeInterleaveST $ randomsMWC' g
return (a : as)
Run Code Online (Sandbox Code Playgroud)
我是否需要找到并行号码生成器?或者我需要咬紧牙关并承认我的算法在不使用慢随机包的情况下根本不纯净?
建议?谢谢!
我正在阅读一篇关于Haskell的研究论文以及如何实现HList,并想知道所描述的技术何时对于类型检查器是否可判定.另外,因为你可以用GADT做类似的事情,我想知道GADT类型检查是否总是可判定的.
如果你有它们我更喜欢引用,所以我可以阅读/理解解释.
谢谢!
我最近使用Ply在Python中编写了一个解析器(它是yacc的python重新实现).当我差不多完成解析器时,我发现我需要解析的语法要求我在解析过程中进行一些查找以通知词法分析器.在没有查看通知词法分析器的情况下,我无法正确解析语言中的字符串.
鉴于我可以从语法规则控制词法分析器的状态,我想我将使用解析器模块中的查找表来解决我的用例,但是维护/测试可能变得太难了.所以我想了解一些其他选择.
在Haskell中,我会使用Parsec,一个解析函数库(称为组合器).是否有Parsec的Python实现?或者也许其他一些生产质量库充满了解析功能,所以我可以在Python中构建一个上下文敏感的解析器?
编辑:我在上下文免费解析的所有尝试都失败了.出于这个原因,我不认为ANTLR在这里有用.