Typecheck生成的代码可以访问Haskell中动态加载的代码

men*_*ics 8 haskell code-generation

我需要一种快速的方法(每秒1000次的typechecks)来检测生成的Haskell源代码.

我们尝试了足够快的提示,除了它无法访问动态加载的代码,除非源代码可用,在某些情况下我们不会.也许有一些方法可以将动态加载的代码注册为一个包或者什么东西,因为提示可以访问注册的包呢?

我们尝试使用ghc api,但它似乎要求文件在磁盘上,并且所需的所有文件IO都会使它太慢.

我们可以使用haskell-src-exts来生成代码,但是我们需要对它进行类型检查.

Don*_*art 0

每秒进行数千次类型检查似乎不太可行——您正在同时执行这些操作,我希望有一些并行性的希望?

我假设您支持完整的 GHC 类型系统?所以一个精简的类型检查器(例如THIH是不够的)。

  • 使用 ghc-api,带有字节码且无优化
  • 将所有内容缓存在内存中
  • 如有必要,请提交对 GHC 的修改,以确保它可以从内存缓冲区中获取 FD