小编And*_*yke的帖子

是否有OCaml工具支持使用Perl的Perl :: Critic模块等最佳实践?

是否存在分析OCaml程序并建议样式和代码方面的一些改进的工具?在perl的世界中,仍然存在Perl :: Critic以避免糟糕的风格.

我需要的是一些工具,它们不仅可以提示风格,还可以使事情更清晰,并避免在OCaml程序中不是尾递归的构造.

任何提示?

ocaml coding-style lint

8
推荐指数
1
解决办法
756
查看次数

在ocaml下检测内存是否低

我需要一种方法来检测内存是否很低,以便我的ocaml程序可以对此作出反应.你能指点我如何实施或使用它吗?

任何提示?

再见安德烈亚斯

memory ocaml

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

Stackoverflow与专门的Hashtbl(通过Hashtbl.make)

我正在使用这段代码并触发stackoverflow,如果我使用Extlib的Hashtbl,则不会发生错误.没有stackoverflow使用专门的Hashtbl的任何提示?

module ColorIdxHash = Hashtbl.Make(
  struct
    type t = Img_types.rgb_t
    let equal = (==)
    let hash = Hashtbl.hash
  end
)
(* .. *)
let (ctable: int ColorIdxHash.t) = ColorIdxHash.create 256 in
    for x = 0 to width -1 do
      for y = 0 to height -1 do
        let c = Img.get img x y in
        let rgb = Color.rgb_of_color c in
          if not (ColorIdxHash.mem ctable rgb) then ColorIdxHash.add ctable rgb (ColorIdxHash.length ctable)
      done
    done;
(* .. *)
Run Code Online (Sandbox Code Playgroud)

backtrace指向hashtbl.ml:

致命错误:异常Stack_overflow在文件"hashtbl.ml"处引发,第54行,字符16-40从文件"img/write_bmp.ml",第150行,字符52-108调用...

任何提示?

stack-overflow ocaml hashtable

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

如何通过CMake查找特定/本地文件

我有一个本地安装的库的问题.在我的项目中有xmlrpc ++ 0.7库:

myproject/
 +-- xmlrpc++0.7/
      +-- src/
Run Code Online (Sandbox Code Playgroud)

如果没有找到,我希望CMake使用本地xmlrpc ++ 0.7目录进行回退.两个问题,第一个,find_path()或find_library()不适用于本地目录.我使用了一种变通方法来测试find_xxx()处理的变量是否为空.如果为空,我手动设置它们.cmake现在生成Makefile而没有错误.但是如果我想通过make编译项目,那么c ++编译器会返回"错误:XmlRpc.h:找不到文件".文件XmlRpc.h位于myproject/xmlrpc ++ 0.7/src中,如果我手动编译它们,它可以正常工作.

这是我的CMakeLists.txt.如果有人能指出在上述条件下使用cmake的正确解决方案,我感到非常高兴.

--- CMakeLists.txt ---

project(webservice_tesseract)
cmake_minimum_required(VERSION 2.6)
set(CMAKE_INCLUDE_CURRENT_DIR ON)

# find tesseract
find_path(TESSERACT_INCLUDE_DIR tesseract/tesseractmain.h
        /opt/local/include
 /usr/local/include
 /usr/include
 )
find_library(TESSERACT_LIBRARY_DIR 
 NAMES tesseract_main
 PATHS 
 /opt/local/lib/
 /usr/local/lib/
 /usr/lib
 )
message(STATUS "looked for tesseract library.")
message(STATUS "Include file detected: [${TESSERACT_INCLUDE_DIR}].")
message(STATUS "Lib file detected: [${TESSERACT_LIBRARY_DIR}].")
add_library(tesseract STATIC IMPORTED)
set_property(TARGET tesseract PROPERTY IMPORTED_LOCATION 
 ${TESSERACT_LIBRARY_DIR}/libtesseractmain.a
 )

#find xmlrpc++
message(STATUS "cmake home dir: [${CMAKE_HOME_DIRECTORY}].")
set(LOCAL_XMLRPCPLUSPLUS ${CMAKE_HOME_DIRECTORY}/xmlrpc0.7++/)
message(STATUS "xmlrpc++ local dir: [${LOCAL_XMLRPCPLUSPLUS}].")
find_path(XMLRPCPLUSPLUS_INCLUDE_DIR XmlRpcServer.h …

cmake include

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

标签 统计

ocaml ×3

cmake ×1

coding-style ×1

hashtable ×1

include ×1

lint ×1

memory ×1

stack-overflow ×1