Zhang Zhimin
Results
2
comments of
Zhang Zhimin
现在Prajna的Module管理是这样的, 比如"::gpu::Thread", ::表示从根符号表开始开始查找, 后面就是各个子模块的名字. 现在Prajna会强制根据文件路径来生成模块名, 比如examples/gpu/matrix_multiply会自动生成examples::gpu::matrix_multiply这样会省一些事情, 但同时也会导致模块名字容易重复, 并且错误难于排查. 需要充分借鉴一下Rust, Julia和C++的module(package)管理机制. 目前先不用过多关注发布和版本的管理.
> 用路径做模块(module)名是没有问题的,可以用as关键字为模块起别名避免冲突。编译器本身可以只管在指定路径下能否查找到模块。 > > 错误排查可以考虑参照Rust,将完整的模块名抛出。 > > 依赖及其路径应该由包管理器管理,包管理器为编译器提供包的路径,解决包名冲突和包之间的依赖关系。 > > 关于包管理: pnpm 将实际包路径链接到项目目录下。它是基于内容寻址存储设计的,能节省硬盘空间和包的更新成本。 > > nimble 是nim-lang的包管理器,相对于其他包管理器,它的实现相对简洁。 现在错误是全名了, 清晰了点