Skip to content

flang 0.7.22 — Силлогизм `следует` и верный код символа вне базовой плоскости

Choose a tag to compare

@github-actions github-actions released this 25 Sep 23:05
· 1851 commits to main since this release
7b805e7

Силлогизм следует и верный код символа вне базовой плоскости

Что появилось

  • следует — вывод утверждения из посылок, названных выше. Заключение записывается отдельным блоком и ссылается на доказанное утверждение словом по свойству.
утверждение «все люди смертны»
  для всех кто: «Человек»
  утверждаем («Смертен» от кто)

следует «Сократ смертен»
  дано сократ: «Человек»
  утверждаем («Смертен» от сократ)
  по свойству «все люди смертны»
$ flang check socrates.flang --proof
утверждение «Сократ смертен» — доказано: терм принят ядром, 1 шаг, основания: утверждение «все люди смертны» — утверждение обо ВСЕХ входах

Без строки по свойству заключение не доказывается:

FLANG_PROOF_STEP: теорема «Сократ смертен»: ни одного шага        код 1

Что изменилось

  • код символа в оболочке: знаки вне базовой плоскости. flang repl отдавал 240 — первый октет UTF-8 — на любом таком знаке; flang run на том же выражении отвечал верно. Теперь ответ один.
$ flang repl
» код символа "𝒜"
119964
» код символа "👍"
128077

Заявка #103.

  • Ключа --step-limit у самого двоичного нет. Ранняя редакция этих заметок обещала, что ключ годится при любой команде. В 0.7.22 его разбирает только flang check.
$ flang --step-limit 100000000 emit файл.flang --target c
flang: неизвестная команда «--step-limit»              код 2

Что сломалось

  • Скрипты печати семени переименованы. Касается тех, кто пересобирает компилятор из исходников.
было стало
scripts/raskrutka.sh scripts/bootstrap-reprint.sh
scripts/otpechatok-semeni scripts/seed-fingerprint

Миграция: замените имена в своих скриптах и в настройке CI.


The следует syllogism and correct code points outside the BMP

What appeared

  • следует (follows) — derive a statement from premises named above it. The conclusion is a separate block that cites a proved statement with по свойству.
утверждение «все люди смертны»
  для всех кто: «Человек»
  утверждаем («Смертен» от кто)

следует «Сократ смертен»
  дано сократ: «Человек»
  утверждаем («Смертен» от сократ)
  по свойству «все люди смертны»
$ flang check socrates.flang --proof
утверждение «Сократ смертен» — доказано: терм принят ядром, 1 шаг, основания: утверждение «все люди смертны» — утверждение обо ВСЕХ входах

Without the по свойству line the conclusion is not proved:

FLANG_PROOF_STEP: теорема «Сократ смертен»: ни одного шага        exit 1

What changed

  • код символа (character code) in the shell: characters outside the BMP. flang repl returned 240 — the first UTF-8 octet — for any such character, while flang run answered correctly. Both now agree.
$ flang repl
» код символа "𝒜"
119964
» код символа "👍"
128077

Issue #103.

  • The binary itself has no --step-limit key. An earlier edition of these notes said the key works with any command. In 0.7.22 only flang check parses it.
$ flang --step-limit 100000000 emit file.flang --target c
flang: неизвестная команда «--step-limit»              exit 2

What broke

  • The seed print scripts are renamed. This affects those who rebuild the compiler from source.
was now
scripts/raskrutka.sh scripts/bootstrap-reprint.sh
scripts/otpechatok-semeni scripts/seed-fingerprint

Migration: replace the names in your scripts and in your CI setup.


Страница выпусков: по-русски · in English.

Архив flang-0.7.22-c.tar.gz — исходники C99 и Makefile: make && sudo make install, Node не нужен. Или brew install digitable-lol/tap/flang.