Git Configurations
使用 git 时不止要为 git 的复杂性头疼,还需要为 git 的配置文件头疼。当然这一切的来源都是多用户配置的需求:我需要多账户设置,比如个人账户和组织账户,但它们都是 github 账号。
使用 git 时不止要为 git 的复杂性头疼,还需要为 git 的配置文件头疼。当然这一切的来源都是多用户配置的需求:我需要多账户设置,比如个人账户和组织账户,但它们都是 github 账号。
deqp-runner is a series of tools written by mesa developers for running vulkan and opengl quality test case programs. It can run in parallel and robustly dEQP (draw-element quality program), piglit, SkQP (Skia Quality Program), and so on.
In my experience, when running large dEQP test cases, your own changes may cause
umd (user mode driver) to fail, crash, timeout, or hang. If you simply use
deqp-vk
, the khronos testcases program for vulkan, the test will stop when umd
throws unrecoverable error. And we cannot easily get the results that new
failures based on the previous version.
copy from Wikipidia:
Mesa is an open source implementation of OpenGL, Vulkan, and other graphics API specifications. Mesa translates these specifications to vendor-specific graphics hardware drivers.
Mesa is UMD (User mode driver), provides implementation of graphics API and shader compiler. Mesa is like a mono repository, different vendor drivers and graphics APIs are in different directories.
Gallium is a driver project in mesa, includes many backends for hardwares:
libgl only provides APIs, and dispatch call to vendor implementation (e.g. radeonsi).
在 scheme 中一类最基础的异构数据结构即 list
libarchive 是一个可以创建和读取多种不同流式归档格式的程序库,包含了最流行的 tar 格式变体、一些 cpio 格式,以及所有的 BSD 和 GNU ar 变体。bsdtar 是一个使用 libarchive 的 tar 实现。
Graphs stand or fall by their choice of nodes and edges.
— Watts & Strogatz
图 (graph) 是有序对 \(G = (V, E)\),其中 V 是点集 (Vertex),点的个数用 \(\lvert{V}\rvert\) 表示;\(E \subseteq \{ \{ x, y \}: (x, y) \in V^{2}, x \ne y \}\) 是边集 (Edge),边的个数用 \(\lvert{E}\rvert\) 表示。如果点对是有序的,那么这个图称为有向图 (directed graph / digraph)。当然有向图的边,如果去掉方向限制所对应的无向图,称为该有向图的基础图 (underlying graph)。有时边还有一个属性称为权重 (weight),表示使用这条边的代价 (cost)。如果任意两个顶点之间都有一条边的话,那么这个图被称作完全图 (complete graph)。
编译器通常组织为一连串的处理 pass,在每两个 pass 之间需要将已知的所有信息进行传递,因此编译器需要中间表示 (IR, Intermediate Representation) 表达信息。IR 在编译器中可能是唯一的,也可能有多种。在转换期间,编译器不会回头查看源代码,而是只观察 IR,因此 IR 的性质对编译器对代码的处理由决定性影响。
众所周知,运行的程序是需要内存占用的,在编码时假定栈上的空间是连续的,且定义的所有变量都连续分布在栈上。
实际上,虽然变量是连续分布在栈上的,但编译器会根据不同类型与对齐方式,将变量重新排列,达到最优情况。