15-445 Project 0
在CMU上CMU的网课()
主要是因为时间冲突也就没能去上15-445这门神课(大概会去抽空听听llm的课,如果论文来得及看的话),不过来都来了,那就顺着时间轴把项目刷一下
顺便也要转型成为技术型博客了(大概),虽然绝对少不了疯癫的碎碎念w
Project 0 整体来说是一个偏基础的项目大概花了4h 由于没有hidden case应该是可以轻松拿到满分的
整个项目编码过程其实(肯定)不是最花时间的,但是在debug的过程中,发现浪费最多时间是由于读题不仔细,或者说没有完全理解题目的意思,bucket
leading bit
这类没有搞清楚关系所以就浪费了很多时间,大约是有一半的时间浪费在误解题意上。
实现本身没有什么难度,图示给的相当清楚,但是有几个细节还是需要斟酌一下,尤其是在presto实现中对于dense和overflow的处理
也算是首次体验了neovim在大型的C项目上面的体验,感觉相当不错,
WSL下面有过奇怪的依赖错误,找不到binutils,后来通过下载源码编译安装还碰上了api太新了导致不能编译的问题,找了ubuntu对应版本的binutils重新编译安装就解决了。
顺便还学了一下根据文件type配置neovim indent控制的方法,具体如下
vim.api.nvim_create_autocmd("FileType", {
pattern = "cpp",
callback = function()
vim.opt_local.verbose = 0
vim.opt_local.shiftwidth = 2
vim.opt_local.tabstop = 2
vim.opt_local.expandtab = true
end
})
希望下次如果用上gdb的话 dap那一套debug可以有不错的适配,这种没有main文件的还真的没试过)
附上通关图片!