首页 > 其他分享 >Chisel | 项目环境配置

Chisel | 项目环境配置

时间:2024-05-09 22:44:56浏览次数:23  
标签:coursier 项目 Chisel 配置 环境 build https test mill

[1] 参考

Chisel 使用 mill 或 sbt 作为项目构建工具,我们这里使用 mill 为例

build.sc 项目里最核心的文件,build.sc 里定义了一个代表项目的对象 $NAME$ ,项目所有的依赖和配置文件都在这个对象的定义里。如果想在同一个目录下定义多个项目,每个项目有不同的方法和依赖,只需要依次类推定义多个 SbtModule 即可,这也是 scala 的核心思想——万物皆对象,连项目本身也是一个对象!

对象 object 可以看作只实例一次的 class 或者说 static class

这是我们运行的入口 mill $NAME$.xxx 即可直接调用对应方法

包环境

SbtModule 中定义了很多项目配置相关属性 [2],我们用 override def 来重定义它,其中 ivyDepsscalacPluginIvyDeps 指明了环境依赖项

  • ivyDeps 依赖的包
  • scalacPluginIvyDeps 编译器扩展包

mill 是按项目管理环境的,每个项目环境独立。这也是为什么 mill 称作项目构建工具而非 conda 的环境管理工具。

mill 使用 coursier 解析管理依赖 [3]。所有下载的依赖包都会放在 coursier 的缓存目录中,Linux 下是 ~/.cache/coursier/v1。比如 org.chipsalliance::chisel:6.2.0 包位置在 ~/.cache/coursier/v1/https/repo1.maven.org/maven2/org/chipsalliance

mill 同样读取 coursier 的镜像源配置,在 ~/.config/coursier/mirror.properties 设置镜像源配置 [4]

但我设置了国内镜像解析还是很慢 ...

测试环境

build.sc 中除了依赖项,还可以看到定义了一个 test 对象

  object test extends SbtModuleTests with TestModule.ScalaTest {
    override def ivyDeps = m.ivyDeps() ++ Agg(
      ivy"org.scalatest::scalatest::3.2.16"
    )
  }

test 对象继承了 SbtModuleTestsTestModule.ScalaTest

  • SbtModuleTests 告诉 mill 用 sbt 的路径管理项目,即源码和测试代码在 src/mainsrc/test
  • TestModule.ScalaTest 告诉 mill 用 ScalaTest 作为测试框架

以上俩个继承让我们当运行 mill $NAME$.test 时,会自动搜索运行所有的 scalatest


  1. https://github.com/chipsalliance/chisel-template ↩︎

  2. 详情见 https://mill-build.com/mill/Scala_Module_Config.html ↩︎

  3. https://get-coursier.io/ ↩︎

  4. https://mill-build.com/mill/Scala_Module_Config.html#_repository_config ↩︎

标签:coursier,项目,Chisel,配置,环境,build,https,test,mill
From: https://www.cnblogs.com/devil-sx/p/18183228

相关文章

  • linux增加环境变量示例
    首先,通过 vim~/.bashrc 命令进入我这个用户的.bashrc文件内 然后在这个文件末尾添加环境变量,比如下面红框中的内容表示添加了路径/home/nfs_new/wangpeng/VSCode-linux-x64/bin为环境变量,实际上这里是把vscode启动命令添加作为环境变量了。其中, $PATH 表示之前所有的环......
  • 智密腾讯云直播组件--准备开发环境
    在开始接入流程之前,作为开发者,你需要自行准备好所有关于腾讯云和uniapp所需要的信息,并申请相应的服务和应用数据。本文会指导你如何从头开始完成所有腾讯云环境准备的步骤。所需资料我们的服务依赖于腾讯云的云服务,用以为直播间提供商业支持。通过腾讯云的多个服务相互配合......
  • VMware vRealize Operations Manager 8.6.2 安装和配置
    早就垂涎vROPS很久了,本次正好做个安装记录,本地的虚拟化环境是VCSA6.7.0为啥选择vROPS8.6.2,因为他是最后一个支持VCSA6.7.0的版本https://interopmatrix.vmware.com/Interoperability?col=1427,9713,6377,6308,5694,5186,5101,4281&row=2,2736,2862,3222,3457,8393&isHidePatc......
  • nginx之使用与配置教程
    nginx之使用与配置教程原文链接:https://blog.csdn.net/qq_35056891/article/details/134391217简介​nginx是一个高性能的http和反向代理的web服务器正向代理反向代理优点速度更快、并发更高:单次请求或者高并发请求的环境下,Nginx都会比其他Web服务器响应的速度......
  • 配置文件
    //1.QMetaObject::connectSlotsByNamevoidWidget::on_btnOpen_clicked(){QStringconf_path=qApp->applicationDirPath()+"/conf/settings.ini";std::unique_ptr<QSettings>iniSet(newQSettings(conf_path,QSettings::IniFormat))......
  • docker 容器查看jvm参数配置
    1、登录服务器查看有哪些容器dockerps2、进入到相应的容器中dockerexec-it容器ID或名称bash3、找到java线程top 4、使用jcmd查询java也就是jvm的配置jcmdPIDVM.flags这里我查看的是线程1:jcmd1VM.flags 复制信息出来,格式化,具体参数什么意思,可网......
  • Linux从入门到精通——Centos 7.9.2009 配置国内yum源及epel源
    Centos7.9.2009配置国内yum源及epel源一、备份原有的yum源配置文件在进行任何更改之前,建议先备份原有的yum源配置文件,以防止配置过程中出现问题。可以使用以下命令备份CentOS-Base.repo文件:[root@localhost~]#cat/etc/redhat-releaseCentOSLinuxrelease7.9.2009(Cor......
  • MindSpore反向传播配置关键字参数
    技术背景在MindSpore深度学习框架中,我们可以向construct函数传输必备参数或者关键字参数,这跟普通的Python函数没有什么区别。但是对于MindSpore中的自定义反向传播bprop函数,因为标准化格式决定了最后的两位函数输入必须是必备参数out和dout用于接收函数值和导数值。那么对于一个......
  • RR级别-多线程环境下-for update+插入操作包含的间隙锁+插入意向锁引发的死锁问题
    记录selectforupdatemysql死锁问题_执行select...where...forupdate是否会造成死锁(deadlock)-CSDN博客......
  • rockylinux9.2 配置本地镜像源
    创建目录,挂载iso镜像mkdir/media/isomount/dev/cdrom/media/iso备份源cd/etc/yum.repos.dcprocky.reporocky.repo.bakcprocky-extras.reporocky-extras.repo.bak创建镜像源catmedia/iso/media.repo>/etc/yum.repos.d/media.repo编辑镜像源[Insta......