Vesta系统描述语言与系统构建详解
1. Vesta系统描述语言亮点
1.1 覆盖运算符用于重写编译选项
覆盖运算符在重写编译选项时非常方便。例如,若要更改构建选项以不使用优化(通过设置编译器标志“-00”),可以这样写:
options
++=
[Cxx
= [switches
= [compile
=
[opt
= "-00"]]]];
由于这种修改(改变命名层次结构中嵌套多层绑定的元素)很常见,SDL提供了一种语法简写来方便表达,上述覆盖操作可写成:
options
++=
[ Cxx/switches/compile/opt
= "-00" ];
根据递归覆盖运算符的定义,此赋值操作使 Cxx/switches/link 绑定保持不变,但将 compile 绑定的 opt 元素绑定为“-00”。
这些示例展示了在Vesta模型中,单个源语句就能改变环境的选定子树。更广泛地说,它们说明了在SDL中创建新的命名环境是多么容易。Vesta评估器的实现使得绑定操作成本较低,与传统文件系统相比,对这些“目录”结构的遍历和操作效率极高。因此,在Vesta系统构建过程中,可为每个被调用的工具创建定制的命名环境,实际上就是整个文件系统命名空间。
在传统开发环境中,创建这样的定制文件系统是不可想象的,因为命名空间由文件系统实现,存储在磁盘上,修改成本高。Unix环境使用搜索路径来引导工具查找所需文件,而Vesta的绑定则突破了这一限制
超级会员免费看
订阅专栏 解锁全文
1063

被折叠的 条评论
为什么被折叠?



