Skip to content

Commit 0633e72

Browse files
author
Marat Zimnurov
committed
Версия 0.4.6: то, что ставится из brew, наконец разговаривает с человеком
До этого релиза `brew install flang` давал бинарник, который на `--help` молчал и отвечал нулём: он читал пустой stdin, потому что понимал только JSON. Человек, поставивший язык, не мог ни справку прочесть, ни файл проверить. Что в этой версии умеет бинарник, и это проверено на архиве, собранном с нуля теми же флагами, что у формулы: flang --version → flang 0.4.6 flang check файл.flang → замечания словами, с кодом, строкой и столбцом; код возврата 0 или 1, а не всегда 0 flang repl → «Куб» от 7 → 343 man flang → страница из десяти разделов Оболочка вычисляет не интерпретатором — его в бинарнике нет, — а печатью сессии в C, сборкой системным cc против libkompilyator_flang.a и запуском. Нет cc — оболочка не выключается, а работает проверяющей и говорит об этом сразу. Версия записана в четырёх местах: package.json, формула, #define в напечатанном C и заголовок man-страницы. Тест сверяет все четыре и спрашивает её у собранного бинарника — иначе они разъезжаются молча, как разъехались 0.1.0 и 0.4.5 в `flang version` на Node. Кроме CLI в релиз входит то, ради чего он и стоит выпуска: самоприменение понимает полиморфизм и функции первого класса, поэтому библиотека высшего порядка живёт теперь в stdlib, а не в тесте; связывание переносит категорные объявления через границу файла; в библиотеке появились логика, словарь и множество; конкурентность проверяется перебором тысячи семян.
1 parent 1b1e3a5 commit 0633e72

4 files changed

Lines changed: 6 additions & 6 deletions

File tree

flang/src/emit/c/flang_repl.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ static char *repl_read_all(FILE *stream, size_t *length) {
161161
* СОБРАННОГО бинарника. Иначе `flang --version` однажды назвал бы версию,
162162
* которой нет ни в одном релизе.
163163
*/
164-
#define FLANG_VERSION "0.4.5"
164+
#define FLANG_VERSION "0.4.6"
165165

166166
static const char REPL_GREETING[] =
167167
"Оболочка flang. «.помощь» — команды, «.выход» — конец.\n"

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@digitable-lol/fts",
3-
"version": "0.4.5",
3+
"version": "0.4.6",
44
"description": "flang: a checkable language with total and ordinary functions, emitted to C, Go, Rust, Python, Java, C#, Elixir and JavaScript, over the FTS executable-specification surface.",
55
"type": "module",
66
"license": "BSD-2-Clause",

packaging/flang.1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
.\"
1010
.\" SPDX-FileCopyrightText: 2026 Digitable (Marat Zimnurov)
1111
.\" SPDX-License-Identifier: BSD-2-Clause
12-
.TH FLANG 1 "2026-08-07" "flang 0.4.5" "Команды пользователя"
12+
.TH FLANG 1 "2026-08-07" "flang 0.4.6" "Команды пользователя"
1313
.SH ИМЯ
1414
flang \- проверить программу на flang: типы и доказанное завершение
1515
.SH СИНОПСИС

packaging/homebrew/flang.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@
2323
class Flang < Formula
2424
desc "Проверяемый язык: исполняемая спецификация, печатается в восемь языков"
2525
homepage "https://github.com/digitable-lol/flang"
26-
url "https://github.com/digitable-lol/flang/releases/download/v0.4.5/flang-0.4.5-c.tar.gz"
26+
url "https://github.com/digitable-lol/flang/releases/download/v0.4.6/flang-0.4.6-c.tar.gz"
2727
# Хеш архива, собранного `node scripts/build-release-c.mjs` и упакованного
2828
# `tar -czf`. Пересчитывается при каждом релизе: brew сверяет его сам, и
2929
# расхождение остановит установку до распаковки.
30-
sha256 "146085565ec2c1d450ab2d0384c7e3b0e81e93fcd9b463dca29b530276f17a20"
30+
sha256 "2fca882275b0e012eb4632335b90b02c90ff0922d9e4b9ba3185c910461fcb28"
3131
license "BSD-2-Clause"
32-
version "0.4.5"
32+
version "0.4.6"
3333

3434
# Ни Node, ни каких-либо ещё зависимостей: в архиве C99 и Makefile.
3535
depends_on "make" => :build

0 commit comments

Comments
 (0)