我们在招聘!实习生,应届生,社会人,外星人,统统都招!
您可以通过 本仓库 进行订阅,每个月都会更新PLCT实验室在开源领域的情报和分析,敬请期待 🎉
变更记录:
- 从2021年3月1日开始,「PLCT开源基础软件进展(半月刊)」升级为 「PLCT开源进展(月刊)」。
- 从2020年5月1日开始,PLCT Weekly 升级为 「PLCT开源基础软件进展(半月刊)」。
- 自2020年3月起转入知乎专栏更新,不再通过HelloGCC公众号同步推送。
软件所PLCT实验室在开源领域的不定期简报
License: Creative Commons Attribution Share Alike 4.0 International
我们在招聘!实习生,应届生,社会人,外星人,统统都招!
您可以通过 本仓库 进行订阅,每个月都会更新PLCT实验室在开源领域的情报和分析,敬请期待 🎉
变更记录:
即在 YYYY-MM-DD.md
中任意处添加以下内容
+## The Aya Theorem Prover
起因:Aya 小组将从 8 月起(即 2022-09-01.md
)使用自动化工具实现月报自动生成并向本仓库提交 PR。为了精准地(指不伤害其他小组的内容)向模板文件中添加内容,我们需要一个显著的 marker 进行文本替换(例如 sed
)。
很显然现在仓库的名字已经无法覆盖仓库的内容了。但是新的名字选什么合适,还是一个 open question。
本人有一些汇编和C的基础,英文能力过关,对操作系统及硬件有很大兴趣,想从事这个工作
欢迎把愿望写在issue回复中,或者直接发PR到:
https://github.com/plctlab/PLCT-Weekly/blob/master/Open-Wishlist-2023.md
https://github.com/go-delve/delve
要检查go程序的coredump,不能用gdb,而是要用这个工具。不知道它对RV的支持如何?
更新:
service/debugger/debugger.go:32:2: found packages native (dump_linux.go) and your_linux_architecture_is_not_supported_by_delve (support_sentinel_linux.go) in /home/.../delve/pkg/proc/native
Remains to be copied to 2022-12 report.
*-comm
, *-assoc
in library candidate PR-722 opened by ice1000loadFile
in REPL PR-714 opened by imkivaLetBind
a named element PR-713 opened by imkivaStmtOps
and ExprTraversal
PR-709 opened by imkivagroup
library config and polish some messages PR-702 opened by imkivameta
rules PR-695 opened by ice1000did you mean
messages PR-675 opened by imkivacoeSigma4
and coeSigma5
, upgrade guest with a smol optimization PR-647 opened by ice1000PatElem
PR-643 opened by ice1000Pattern
-> Arg<Pattern>
PR-642 opened by ice1000coeFill
, coeInv
and coeInvFill
PR-635 opened by imkivacoe
as function PR-633 opened by imkivaraiseError
PR-622 opened by imkivaSub
system of unification PR-606 opened by ice1000请问TRSR005全职是否有实习期;如果有的话,实习期工资如何计算,谢谢!
想确认一下周报中提到的块设备、网卡设备在 仓库 的哪个分支 ?
首先,我对代码速度的理解是:用不同的编译器,例如clang、gcc,编译同一个Benchmark,例如Coremark,然后在同样的测试环境中(例如Spike、QEMU)比较Benchmark的得分。
我用Coremark分别测试了Clang9.0.0和GCC9.2.0在不同优化选项的情况下,在Spike上面的跑分情况,设定CPI=1(不考虑Cache miss),时钟频率为48MHz,单核,得到的Coremark跑分如下:
Clang9.0.0-O2 | Clang9.0.0-O3 | Clang9.0.0-Os | Gcc9.2.0-O2 | Gcc9.2.0-O3 | Gcc9.2.0-Os | |
---|---|---|---|---|---|---|
RV32 CodeSpeed | 2.752 | 2.758 | 2.58 | 3.201 | 3.256 | 2.645 |
RV64 CodeSpeed | 2.571 | 2.584 | 2.427 | 3.197 | 3.246 | 2.683 |
从上表可以看到,Clang除了Os优化选项和GCC比较接近外,其他选项基本上只有GCC性能的80%左右。
BTW,还有一些问题:
hi,
我前端时间在spike里添加了用户自定义指令的支持,但目前spike不能满足我们的仿真需求,需要用到qemu,但我们对qemu了解不多,请问如何能够获取你们的相关书籍呢?
本人日常工作是全栈开发的,对基础的软硬件技术有很大的兴趣,所以想借机会深入的学习一些知识,并贡献一些自己的能力。
在LINUX操作系统方面,主要是用的比较多,但是系统运行原理方面也了解一些,还懂一些编译和汇编方面的知识
一年一度的许愿池计划开启。
虽然邮件在传输过程中基本是加密的,直接显示在标题上还是让我有点顾虑。何况也可以写在简历附件里。
系统信息
[root@milkv-duo]~# cat /etc/os-release
NAME=Buildroot
VERSION=20231230-2325
ID=buildroot
VERSION_ID=2021.05
PRETTY_NAME="Buildroot 2021.05"
golang代码如下(也尝试了Golang的HTTP Server,Socket等等简单案例代码,都是和下面报错的信息一样,runtime: epollcreate failed with 38),只有不使用网络的Helloworld,打印等等案例可以正常执行。
package main
import "github.com/gin-gonic/gin"
func main() {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "pong",
})
})
r.Run() // 监听并在 0.0.0.0:8080 上启动服务
}
使用的交叉编译命令(相同命令编译的Helloworld程序可以在milkv上运行)
GOARCH=riscv64 go build -o ping ping.go
使用ld库检查可执行程序ping的依赖情况,提示无依赖需求
[root@milkv-duo]~# /lib64/ld-musl-riscv64v0p7_xthead.so.1 --list ping
/lib64/ld-musl-riscv64v0p7_xthead.so.1: ping: Not a valid dynamic program
以下是ping程序的运行报错信息
[root@milkv-duo]~# ./ping
runtime: epollcreate failed with 38
fatal error: runtime: netpollinit failed
goroutine 1 [running, locked to thread]:
runtime.throw({0x41857b?, 0xa9cb8?})
/mnt/MyNAS/walker/.bin/go/src/runtime/panic.go:1047 +0x44 fp=0x3fa429f5e8 sp=0x3fa429f5c0 pc=0x4347c
runtime.netpollinit()
/mnt/MyNAS/walker/.bin/go/src/runtime/netpoll_epoll.go:28 +0x1b4 fp=0x3fa429f658 sp=0x3fa429f5e8 pc=0x3f4a4
runtime.netpollGenericInit()
/mnt/MyNAS/walker/.bin/go/src/runtime/netpoll.go:197 +0x64 fp=0x3fa429f668 sp=0x3fa429f658 pc=0x3e9bc
internal/poll.runtime_pollServerInit()
/mnt/MyNAS/walker/.bin/go/src/runtime/netpoll.go:189 +0x20 fp=0x3fa429f670 sp=0x3fa429f668 pc=0x6d940
sync.(*Once).doSlow(0xf7f84?, 0xf7eb4?)
/mnt/MyNAS/walker/.bin/go/src/sync/once.go:74 +0xf4 fp=0x3fa429f6c0 sp=0x3fa429f670 pc=0x7b9b4
sync.(*Once).Do(...)
/mnt/MyNAS/walker/.bin/go/src/sync/once.go:65
internal/poll.(*pollDesc).init(0x3fa40faaf8, 0x3fa40faae0?)
/mnt/MyNAS/walker/.bin/go/src/internal/poll/fd_poll_runtime.go:39 +0x64 fp=0x3fa429f6d8 sp=0x3fa429f6c0 pc=0xf2094
internal/poll.(*FD).Init(0x3fa40faae0, {0x402670?, 0x80000?}, 0x9c?)
/mnt/MyNAS/walker/.bin/go/src/internal/poll/fd_unix.go:63 +0xa0 fp=0x3fa429f6f0 sp=0x3fa429f6d8 pc=0xf29e8
os.newFile(0x3, {0x3fa43b0810, 0xa}, 0x1)
/mnt/MyNAS/walker/.bin/go/src/os/file_unix.go:190 +0x1bc fp=0x3fa429f728 sp=0x3fa429f6f0 pc=0xf7fe4
os.openFileNolog({0x3fa43b0810, 0xa}, 0x0, 0x0)
/mnt/MyNAS/walker/.bin/go/src/os/file_unix.go:250 +0x19c fp=0x3fa429f768 sp=0x3fa429f728 pc=0xf81fc
os.OpenFile({0x3fa43b0810, 0xa}, 0x0, 0x0?)
/mnt/MyNAS/walker/.bin/go/src/os/file.go:326 +0x64 fp=0x3fa429f798 sp=0x3fa429f768 pc=0xf7704
os.Open(...)
/mnt/MyNAS/walker/.bin/go/src/os/file.go:306
google.golang.org/protobuf/internal/detrand.binaryHash()
/mnt/MyNAS/walker/go/pkg/mod/google.golang.org/[email protected]/internal/detrand/rand.go:46 +0x48 fp=0x3fa429f858 sp=0x3fa429f798 pc=0x310690
google.golang.org/protobuf/internal/detrand.init()
/mnt/MyNAS/walker/go/pkg/mod/google.golang.org/[email protected]/internal/detrand/rand.go:38 +0x20 fp=0x3fa429f860 sp=0x3fa429f858 pc=0x310910
runtime.doInit(0x704120)
/mnt/MyNAS/walker/.bin/go/src/runtime/proc.go:6506 +0x12c fp=0x3fa429f990 sp=0x3fa429f860 pc=0x535bc
runtime.doInit(0x704160)
/mnt/MyNAS/walker/.bin/go/src/runtime/proc.go:6483 +0x78 fp=0x3fa429fac0 sp=0x3fa429f990 pc=0x53508
runtime.doInit(0x707de0)
/mnt/MyNAS/walker/.bin/go/src/runtime/proc.go:6483 +0x78 fp=0x3fa429fbf0 sp=0x3fa429fac0 pc=0x53508
runtime.doInit(0x708dc0)
/mnt/MyNAS/walker/.bin/go/src/runtime/proc.go:6483 +0x78 fp=0x3fa429fd20 sp=0x3fa429fbf0 pc=0x53508
runtime.doInit(0x70b100)
/mnt/MyNAS/walker/.bin/go/src/runtime/proc.go:6483 +0x78 fp=0x3fa429fe50 sp=0x3fa429fd20 pc=0x53508
runtime.doInit(0x701fe0)
/mnt/MyNAS/walker/.bin/go/src/runtime/proc.go:6483 +0x78 fp=0x3fa429ff80 sp=0x3fa429fe50 pc=0x53508
runtime.main()
/mnt/MyNAS/walker/.bin/go/src/runtime/proc.go:233 +0x1d0 fp=0x3fa429ffd8 sp=0x3fa429ff80 pc=0x45ab0
runtime.goexit()
/mnt/MyNAS/walker/.bin/go/src/runtime/asm_riscv64.s:512 +0x4 fp=0x3fa429ffd8 sp=0x3fa429ffd8 pc=0x7281c
goroutine 2 [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
/mnt/MyNAS/walker/.bin/go/src/runtime/proc.go:381 +0x110 fp=0x3fa403afb0 sp=0x3fa403af98 pc=0x45f68
runtime.goparkunlock(...)
/mnt/MyNAS/walker/.bin/go/src/runtime/proc.go:387
runtime.forcegchelper()
/mnt/MyNAS/walker/.bin/go/src/runtime/proc.go:305 +0xc8 fp=0x3fa403afd8 sp=0x3fa403afb0 pc=0x45da0runtime.goexit()
/mnt/MyNAS/walker/.bin/go/src/runtime/asm_riscv64.s:512 +0x4 fp=0x3fa403afd8 sp=0x3fa403afd8 pc=0x7281c
created by runtime.init.5
/mnt/MyNAS/walker/.bin/go/src/runtime/proc.go:293 +0x28
goroutine 3 [GC sweep wait]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
/mnt/MyNAS/walker/.bin/go/src/runtime/proc.go:381 +0x110 fp=0x3fa403b788 sp=0x3fa403b770 pc=0x45f68
runtime.goparkunlock(...)
/mnt/MyNAS/walker/.bin/go/src/runtime/proc.go:387
runtime.bgsweep(0x0?)
/mnt/MyNAS/walker/.bin/go/src/runtime/mgcsweep.go:278 +0xa8 fp=0x3fa403b7c8 sp=0x3fa403b788 pc=0x32228
runtime.gcenable.func1()
/mnt/MyNAS/walker/.bin/go/src/runtime/mgc.go:178 +0x2c fp=0x3fa403b7d8 sp=0x3fa403b7c8 pc=0x26f44
runtime.goexit()
/mnt/MyNAS/walker/.bin/go/src/runtime/asm_riscv64.s:512 +0x4 fp=0x3fa403b7d8 sp=0x3fa403b7d8 pc=0x7281c
created by runtime.gcenable
/mnt/MyNAS/walker/.bin/go/src/runtime/mgc.go:178 +0x70
goroutine 4 [GC scavenge wait]:
runtime.gopark(0x3fa4050000?, 0x4a23b8?, 0x0?, 0x0?, 0x0?)
/mnt/MyNAS/walker/.bin/go/src/runtime/proc.go:381 +0x110 fp=0x3fa403bf80 sp=0x3fa403bf68 pc=0x45f68
runtime.goparkunlock(...)
/mnt/MyNAS/walker/.bin/go/src/runtime/proc.go:387
runtime.(*scavengerState).park(0x757d40)
/mnt/MyNAS/walker/.bin/go/src/runtime/mgcscavenge.go:400 +0x68 fp=0x3fa403bfa8 sp=0x3fa403bf80 pc=0x30100
runtime.bgscavenge(0x0?)
/mnt/MyNAS/walker/.bin/go/src/runtime/mgcscavenge.go:628 +0x50 fp=0x3fa403bfc8 sp=0x3fa403bfa8 pc=0x30658
runtime.gcenable.func2()
/mnt/MyNAS/walker/.bin/go/src/runtime/mgc.go:179 +0x2c fp=0x3fa403bfd8 sp=0x3fa403bfc8 pc=0x26ee4
runtime.goexit()
/mnt/MyNAS/walker/.bin/go/src/runtime/asm_riscv64.s:512 +0x4 fp=0x3fa403bfd8 sp=0x3fa403bfd8 pc=0x7281c
created by runtime.gcenable
/mnt/MyNAS/walker/.bin/go/src/runtime/mgc.go:179 +0xb0
goroutine 5 [finalizer wait]:
runtime.gopark(0x3fa403a590?, 0x11?, 0xd0?, 0x4d?, 0x3eb760?)
/mnt/MyNAS/walker/.bin/go/src/runtime/proc.go:381 +0x110 fp=0x3fa403a5a8 sp=0x3fa403a590 pc=0x45f68
runtime.runfinq()
/mnt/MyNAS/walker/.bin/go/src/runtime/mfinal.go:193 +0x100 fp=0x3fa403a7d8 sp=0x3fa403a5a8 pc=0x26050
runtime.goexit()
/mnt/MyNAS/walker/.bin/go/src/runtime/asm_riscv64.s:512 +0x4 fp=0x3fa403a7d8 sp=0x3fa403a7d8 pc=0x7281c
created by runtime.createfing
/mnt/MyNAS/walker/.bin/go/src/runtime/mfinal.go:163 +0x64
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.