国产三级农村妇女在线,国产精品毛片a∨一区二区三区,国产乱子伦视频大全,国产精品色拉拉,国产欧美日韩一区二区三区,

首頁 > 技術(shù) > 開源

HVML 動(dòng)態(tài):解釋器 0.9.2 發(fā)布;持續(xù)演進(jìn)!

小編 開源 2022-12-28 09:32:00

HVML 是由中國(guó)首款開源基礎(chǔ)軟件 MiniGUI 的作者魏永明設(shè)計(jì)的描述式編程語言,也是世界首款可編程標(biāo)記語言。

從 2020 年 5 月開始構(gòu)思算起,魏永明帶領(lǐng)團(tuán)隊(duì)歷經(jīng)兩年多的時(shí)間,于 2022 年 7 月 31 日正式開源發(fā)布了 HVML 規(guī)范文檔以及解釋器、渲染器等軟件,總代碼行數(shù)逾百萬!

面向未來多屏協(xié)同場(chǎng)景下的應(yīng)用開發(fā)需求,HVML 為應(yīng)用的跨端運(yùn)行提供了全新的技術(shù)框架。HVML 蘊(yùn)含了大量新穎的設(shè)計(jì)和獨(dú)創(chuàng)的思想,是魏永明及其團(tuán)隊(duì)近三十年基礎(chǔ)軟件開發(fā)經(jīng)驗(yàn)的結(jié)晶,一經(jīng)發(fā)布便獲得了業(yè)界的廣泛關(guān)注。

本文將向讀者介紹 HVML 社區(qū)的近期動(dòng)態(tài)。

軟件及文檔的更新

HVML 解釋器 PurC 0.9.2

2022 年 11 月 30 日,HVML 社區(qū)發(fā)布 PurC 0.9.2,這也是 PurC 1.0.x 的第四個(gè) alpha 版本。若發(fā)現(xiàn)任何錯(cuò)誤、不兼容性和問題,請(qǐng)向 https://github.com/HVML/PurC/... 報(bào)告。

在這個(gè)版本中,主要完成了解釋器相關(guān)的大量增強(qiáng),并修復(fù)了一些缺陷。一些主要的增強(qiáng)說明如下:

1) 現(xiàn)在,我們可以在復(fù)合表達(dá)式中使用行注釋,如:

{{    # 嘗試改變工作路徑到 `/root` 目錄下
    $SYS.cwd(! '/root') &&        // 如果成功則調(diào)用 $FS.list 獲得該目錄下的所有目錄項(xiàng)對(duì)象數(shù)組
        $FS.list ||            # 否則向標(biāo)準(zhǔn)輸出($STREAM.stdout)打印提示信息
            $STREAM.stdout.writelines('Cannot change directory to "/root"');            // 并改變工作路徑到 `/` 下
            $SYS.cwd(! '/' ) &&                // 若成功,則獲得該目錄下所有目錄項(xiàng)對(duì)象數(shù)組
                $FS.list ||                    // 否則將 `false` 作為該 CHEE 的最終求值結(jié)果
                    false}}

如上所示,我們可在復(fù)合表達(dá)式中,使用 # 或者 // 定義一個(gè)行注釋。

2) 可使用 """(三雙引號(hào),triple-double-quote)定義多行文本字符串,將原樣保留其中的 ASCII 制表符或者新行符(U+0009 TAB、U+000A LF、U+000D CR),單引號(hào)(')以及不連續(xù)出現(xiàn)三次的雙引號(hào)(")無需使用轉(zhuǎn)義符號(hào)。類似地,可使用 '''(三單引號(hào),triple-single-quote)定義多行文本字符串,將原樣保留其中的 ASCII 制表符或者新行符,雙引號(hào)(")以及不連續(xù)出現(xiàn)三次的單引號(hào)(')無需使用轉(zhuǎn)義符號(hào)。如:

Python" style="box-sizing: border-box; font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 13px; word-break: break-word; overflow-wrap: normal; overflow: auto; position: relative; margin-top: 0px; margin-bottom: 20px; padding: 1em; border: none; border-radius: 4px; line-height: 1.5; background-color: rgb(246, 246, 246); color: rgb(51, 51, 51);">{    id:         1234567890UL,    nickname:   "David",    signature:"""
一個(gè)

    被'程序'耽誤的

        "文藝"青年。
""",
}

三單引號(hào)和三雙引號(hào)的區(qū)別在于,使用三雙引號(hào)時(shí),將對(duì)包含其中的表達(dá)式進(jìn)行求值,并將結(jié)果做字符串化之后和其他部分串接在一起作為最終結(jié)果,當(dāng)使用三單引號(hào)時(shí),將忽略其中的求值表達(dá)式。

3) 在參數(shù)化數(shù)據(jù)或者 eJSON 當(dāng)中,支持使用 [!  ] 包圍來定義元組。如:

<iterate on [! 1, 1, 2, 3, 5 ] >
    ...</iterate>

在 HVML 中,元組是具有固定大小的數(shù)組,可修改其中的成員,但不能刪除或者新增成員。相比數(shù)組,元組的內(nèi)存消耗更低。

4) 支持字符串常量語法,用于在 catch  except 元素中定義異常的名稱。如:

    <choose on $locales in "#the-footer" by "KEY: AS '$global.locale'">
        <update on "p > a" at 'textContent attr.href attr.title' with ["$?.se_name", "$?.se_url", "$?.se_title"] />
        <catch for `NoData`>
            <update on 'p' at 'textContent' with 'You forget to define the $locales/$global variables!' />
        </catch>
        <catch for `NoSuchKey`>
            <update on 'p > a' at 'textContent attr.href attr.title' with ["Google", "https://www.google.com", "Google"] />
        </catch>
        <catch for `ANY`>
            <update on 'p' at 'textContent' with 'Bad $locales/$global data!' />
        </catch>
    </choose>

如此,當(dāng)我們?cè)?span style="box-sizing: inherit;"> catch 或者 except 當(dāng)中使用了不正確的異常名稱時(shí),將在 HVML 程序的解析階段報(bào)錯(cuò)。

本版本全部的錯(cuò)誤修復(fù)、增強(qiáng)、優(yōu)化和調(diào)整羅列如下:

  • 變化:

    • 更改了某些過長(zhǎng)的接口名稱。
  • 調(diào)整:

    • 微調(diào)了 HVML 生成的文檔的序列化格式,方便開發(fā)者查看。
    • 微調(diào)了某些 API 的描述。
  • 增強(qiáng):

    • 支持三單引號(hào)語法定義多行字符串。
    • 使用三雙引號(hào)語法時(shí),其中的求值表達(dá)式將被求值。
    • 復(fù)合表達(dá)式支持行注釋。
    • 支持元組。
    • 支持字符串常量語法,用于在 catch  except 元素中定義異常的名稱。
    • 在預(yù)定義變量的實(shí)現(xiàn)中,使用線性容器接口來替代數(shù)組,以支持更多的容器類型。
    • 添加新的接口:purc_variant_make_atom()。
    • purc 命令行工具可支持使用 URL 查詢字符串(RFC 3986)來指定傳遞給 HVML 協(xié)程的請(qǐng)求參數(shù)。
    • purc 命令行工具的 Foil 渲染器支持更多的 CSS 屬性,比如 white-space、list-style-type、quotes、counter  counters 等。
  • 錯(cuò)誤修正:

    • 對(duì)未轉(zhuǎn)義的字符串中的 C0 控制字符,eJSON 解析器將報(bào)錯(cuò)。
    • hvml  iterate 元素中的表達(dá)式會(huì)被錯(cuò)誤地求值兩次。

HVML 規(guī)范 1.0 RC8

我們于 2022 年 11 月 30 日發(fā)布了 HVML 規(guī)范 1.0 RC8 版本,并進(jìn)入到 HVML 規(guī)范的 1.0 RC9 版本。

在 RC8 版本中,我們圍繞 HVML 語言規(guī)范主要做了如下調(diào)整及增強(qiáng):

  1. 使用反引號(hào)屬性值語法定義異?;蝈e(cuò)誤名稱。
  2. 擴(kuò)展 JSON 語法,支持三單引號(hào)(''')。
  3. 微調(diào)字符串化處理規(guī)則,避免使用新行符,轉(zhuǎn)而使用逗號(hào)和分號(hào)。
  4. 調(diào)整某些術(shù)語:

    • 求值表達(dá)式:Hybrid evaluation expression (HEE)。
    • 復(fù)合求值表達(dá)式:Compound hybrid evaluation expression(CHEE)。
    • 參數(shù)化數(shù)據(jù):Parameterized Data。
    • 參數(shù)化字符串:Parameterized String。
  5. $EJSON 重命名為 $DATA
  6. $DATA.numberify 重命名為 $DATA.numerify。
  7. 調(diào)整有關(guān)求值表達(dá)式語法、eJSON 語法的章節(jié)。

有關(guān)詳情,可點(diǎn)擊閱讀如下鏈接:

  • HVML 規(guī)范 1.0

社區(qū)活動(dòng)

2022 年 11 月,社區(qū)小伙伴們圍繞如下方面做出了貢獻(xiàn):

  1. 更新 0.9.0 版本的 AUR 包描述信息,由 @taotieren 提交拉取請(qǐng)求。

下一步計(jì)劃

2022 年 12 月底,我們將發(fā)布 PurC 0.9.4 版本,預(yù)期功能包括:

  1. 增強(qiáng) update 元素以支持 intersectsubtract  xor 等操作以及 individually 副詞屬性。
  2. 對(duì) request 元素的完整支持。
  3. 繼續(xù)增強(qiáng) Foil 渲染器,完成除表格以外的布局支持。

2023 年 01 月底,我們將發(fā)布 PurC 0.9.6 版本,預(yù)期功能包括:

  1. 支持 CSS Level 3 選擇器規(guī)范,完善預(yù)定義 $DOC 變量各屬性獲取器及設(shè)置器。
  2. 增強(qiáng)文檔定位功能。
  3. 將來自外部數(shù)據(jù)源的 text/html 類型裝載為原生實(shí)體對(duì)象,以方便對(duì)網(wǎng)頁內(nèi)容的處理和操作。
  4. Foil 字符渲染器支持表格布局。

2023 年 02 月底,我們將發(fā)布 PurC 0.9.8 版本,預(yù)期功能包括:

  1. 內(nèi)存及性能的初步優(yōu)化。
  2. 預(yù)定義變量規(guī)范中定義的,但尚未完成的動(dòng)態(tài)對(duì)象屬性及方法。
  3. 全功能的 Foil 字符渲染器,支持多窗口、構(gòu)件及交互。

2023 年 3 月底,我們將發(fā)布 PurC 0.9.9 版本(PurC 1.0.0 Beta 版本),預(yù)期功能包括:

  1. 對(duì) Windows 平臺(tái)的支持。
  2. 預(yù)定義動(dòng)態(tài)對(duì)象的完整實(shí)現(xiàn)。

常見問題及解答

Q:HVML 是針對(duì)嵌入式和物聯(lián)網(wǎng)使用的嗎?

A:不僅僅是。HVML 是一種通用的膠水語言,HVML 的目標(biāo)平臺(tái)包括傳統(tǒng)的桌面、服務(wù)器、智能手機(jī)、平板、嵌入式設(shè)備和物聯(lián)網(wǎng)設(shè)備。

Q:HVML 是打算取代現(xiàn)有的 Web 前端開發(fā)技術(shù),比如 javaScript 嗎?

A:沒有這個(gè)計(jì)劃。HVML 的渲染器會(huì)用到 Web 前端技術(shù),但 HVML 的目標(biāo)并不是取代現(xiàn)有的 Web 前端開發(fā)技術(shù),而是面向未來的多屏協(xié)同場(chǎng)景下的需求,為應(yīng)用的跨端運(yùn)行提供全新的技術(shù)框架,同時(shí)作為合璧操作系統(tǒng)(HybridOS)的首選編程語言。

Q:在哪里可以看到 HVML 相關(guān)的源代碼?

A:HVML 相關(guān)文檔及代碼倉庫在 https://github.com/HVML 上開源發(fā)布,其中包括:

  1. HVML 解釋器(PurC):https://github.com/HVML/PurC
  2. HVML 圖形渲染器(xGUI Pro):https://github.com/HVML/xGUI-Pro
  3. 擴(kuò)展 WebKit 引擎(僅源代碼包)
  4. 開發(fā)用 HVML 字符渲染器(PurC Midnight Commander):https://github.com/HVML/PurC-...

Q:有可以直接下載安裝的軟件包嗎?

A:因開發(fā)團(tuán)隊(duì)精力有限,目前尚沒有制作針對(duì)各個(gè)操作系統(tǒng)的安裝包,但來自開源社區(qū)的小伙伴們已經(jīng)積極行動(dòng),幫助我們完成了一些 Linux 發(fā)行版的安裝包。我們將這些軟件包收集到了如下頁面,可訪問查看:

https://hvml.fmsoft.cn/software


TAg

加載中~

本網(wǎng)站LOGO受版權(quán)及商標(biāo)保護(hù),版權(quán)登記號(hào):國(guó)作登字-2022-F-10126915,未經(jīng)湖南木星科技官方許可,嚴(yán)禁使用。
Copyright ? 2012-2022 湖南木星科技有限公司(木星網(wǎng))版權(quán)所有
轉(zhuǎn)載內(nèi)容版權(quán)歸作者及來源網(wǎng)站所有,本站原創(chuàng)內(nèi)容轉(zhuǎn)載請(qǐng)注明來源,商業(yè)媒體及紙媒請(qǐng)先聯(lián)系:aishangyiwan@126.com

工信部備案號(hào):湘ICP備19012813號(hào)-5