八卦一下Starlark語言

2022-01-23 04:28:32 字數 1066 閱讀 4918

編譯移植tensorflow時用到bazel這一構建工具,bazel用starlark語法來編寫workspace/build檔案,它們是類似於make中的makeifle、cmake中的cmakelists的存在。

早些年google用make+makefile構建**,後來**多了,發現make不適合(反正我是覺得makefile語法太怪異了,之前看ucore/jos作業系統核心時候就很慌)。

乙個臨時辦法是手寫乙個描述檔案build,然後用python生成makefile檔案(沿著這種思路,考慮vc/gcc/xcode等多種平台,就是cmake了)。

但是其實make更大問題是速度太慢,於是google搞了個blaze,開源版本叫bazel(比如tensorflow預設就用bazel構建)。

blaze2023年一路過來,也是各種經驗啊:用build替代makefile,用blaze替代make,那麼似乎應該讓blaze來解析build然後調編譯器聯結器幹活,因為make就是先聽makefile嗶嗶然後向gcc和ar發號施令的。

但是既然已經是重新實現乙個構建系統了,能不能把描述檔案的語法搞的human friendly一點啊?乾脆用python寫算了吧!

誒,如果build用純python寫,那blaze就不需要解析build了。但是!純python寫/解析build,太特麼自由了,a君寫乙個巨集,b君又寫乙個巨集,實現同樣功能。天啊,google那麼多專案,這麼搞搞死人啊。

好吧,捋一捋:

其中對於前面兩點,乾脆搞個閹割版的python(語言)吧!搞一些限定,但是python的常用基本語法給他留著。

好了,這就是starlark了。對,它改過名,以前叫skylark。

starlark除了是一門python方言,它更是blaze(bazel)的前端。要想bazel構建速度快,應該避免重複計算,starlark作為預處理器,這麼幹的:

八卦一下g9的八卦

八卦一下g9的八卦 早就想八卦一下g9老大 的技術八卦 了。國內技術社群能把技術和八卦整合得如此天衣無縫的,就我所知,僅此一家,別無分號。有時我就想不通乙個問題,為什麼這哥們文章中的八卦總是那麼源源不絕,信手拈來呢?我暗地裡琢磨這老大肯定私下有乙個小本本,上面的名人技術八卦按字母索引按年代索引按語言...

八卦一下g9的八卦

八卦一下g9的八卦 早就想八卦一下g9老大 的技術八卦 了。國內技術社群能把技術和八卦整合得如此天衣無縫的,就我所知,僅此一家,別無分號。有時我就想不通乙個問題,為什麼這哥們文章中的八卦總是那麼源源不絕,信手拈來呢?我暗地裡琢磨這老大肯定私下有乙個小本本,上面的名人技術八卦按字母索引按年代索引按語言...

八卦一下模型驗證 三

csdn的大大們啊,求求你們了啊。修復這坨不能自動上傳的錯誤啊。好像已經三個月了啊。圖多的時候發文章真地很痛苦啊。orz orz orz 準備八卦edmund等人演算法時才想起,人1986年成名作是討論用ctl computational tree logic 作規範語言的模型驗證演算法,而第一篇八...