LINUX.ORG.RU

QBE 1.3

 , , qbe,


0

6

Состоялся выпуск новой версии QBE – универсального бэкенда для создания компиляторов.

От ближайшего аналога (LLVM) QBE отличается намного более простой кодовой базой, высокими скоростью работы и сборки (сам QBE собирается из исходников меньше чем за секунду на Core2Duo) и более дружелюбным для разработчика API, в том числе более простым промежуточным языком (IL). При этом QBE не предназначен для создания промышленных компиляторов с высокими требованиями к качеству генерируемого кода, но хорошо подходит для хобби-проектов и прототипов.

Поддерживается генерация двоичного кода для архитектур x86_64, AArch64 и RISC-V (rv64). Из проектов, использующих QBE, можно выделить компиляторы языка Си cproc, SCC, PACC, а также компиляторы языков Hare и Antimony. QBE также используется в рамках курса разработки компиляторов в институте системного программирования РАН им. В.П. Иванникова.

Среди изменений в новом выпуске:

  • Добавлена поддержка Windows ABI;
  • Новые оптимизации, ускоряющие сгенерированный код. В среднем, в тестах производительность кода из QBE составляет примерно 63% от производительности кода из GCC;
  • Улучшена поддержка генерации PIE (position-independent code).

Код написан на языке Си (C99) и распространяется под лицензией MIT.

>>> Подробности



Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 6)
Ответ на: комментарий от monk

С моей точки зрения у LGPL есть только один крупный недостаток: контроль со стороны FSF всего кода под этой лицензией

Что за чушь?

Разве что распространять под LGPL-3.0-only.

Любая лицензия всегда «only», если явно не указано иного. Так что «контроль кода со стороны FSF» будет тогда, и только тогда, когда ты в своей лицензии сделаешь соответствующую приписку («разрешаю FSF выпускать и автоматически применять к моему коду любые новые лицензии»). Это никаким боком не свойство LGPL самой по себе.

firkax ★★★★★
()
Ответ на: комментарий от Somebody

А что именно имеется в виду??..

например - код написанный так, что там даже с поллитрой не разберешься, ну или откровенная обфускация/генерация, даже самая банальная типа написать что-нибудь размазав по миллиону строк вместо тысячи

nerfur ★★★★
()
Ответ на: комментарий от nerfur

максимально неподдерживаемый код

А что именно имеется в виду??..

например - код написанный так, что там даже с поллитрой не разберешься, ну или откровенная обфускация/генерация, даже самая банальная типа написать что-нибудь размазав по миллиону строк вместо тысячи

Ещё более непонятно. Максимально непонятно, я бы сказал... :)

Видимо, мы очень по-разному понимаем смысл слов «поддержка» и, соответственно, смысл определения «поддерживаемый код»...

Somebody ★★★★
()
Ответ на: комментарий от Somebody

согласен, имел в виду скорее не поддержку, как support, а как maintenance

nerfur ★★★★
()
Ответ на: комментарий от firkax

Что за чушь?

https://ru.wikipedia.org/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%9F%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4_GFDL-%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2_%D0%BD%D0%B0_%D0%BB%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8E_CC-BY-SA-3.0

Тех, кто загружал файлы, не спрашивали. Поэтому в следующий раз FSF может ещё под какой-нибудь лицензией подарить весь код, лицензированный под GPL/LGPL x or later.

Любая лицензия всегда «only», если явно не указано иного.

Но LGPL почти всегда используют в формате «or later». Если ставить «only», будет несовместима в пределах программы с GPL-4.

Кстати, хорошая идея: если придумаю что-нибудь полезное в виде библиотеки, выпущу под LGPL-2-only. То есть «использовать можно всем, кроме проектов под GPL-3 и более новых».

monk ★★★★★
()
Ответ на: комментарий от monk

Тех, кто загружал файлы, не спрашивали.

Вероятно, GNU FDL 3 совместимо с CCASA 3. Причём там явное уточнение - отсутствие указание на неизменяемые разделы (вероятно, конкретно это требование с CCASA 3 несовместимо). Так что спрашивать не требуется, они уже всё разрешили.

Но LGPL почти всегда используют в формате «or later».

Я статистику не собирал, но кто там чего использует - не важно. Речь про конкретную лицензию.

Если ставить «only»,

Ещё раз - это безо всяких «если». И никаких «only» указывать не нужно. В тексте лицензии нет никаких указаний на «разрешаю перелицензировать под любыми, выпущеными FSF позднее». Эта добавка - никаким боком не часть LGPL, это дополнительное разрешение, выданное авторами лицензируемого продукта. Так что если ты не хочешь отдавать свой код под контроль FSF, просто не пиши в своей лицензии что ты отдаёшь код под контроль FSF. А LGPL можешь применять как и раньше, она ни в чём не виновата.

LGPL-2-only

Опять повторю - такой лицензии не существует!

firkax ★★★★★
()
Ответ на: комментарий от dataman

Перестань тупить, ссылку на оригинал я привёл, перейди по ней и всё сам увидишь.

SPDX это просто результат чьей-то мании назначить всем короткие идентификаторы. Я тоже такой сайт могу сделать, и ты тоже можешь, он ничего не значит.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Но там есть ссылка на настоящую лицензию https://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html и как видно никакого «only» в её названии нет.

А именно в этой есть «разрешаю перелицензировать под любыми, выпущеными FSF позднее».

  1. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices.

То есть, явно можно перелицензировать под GPL 2 или более новую.

Под LGPL-2-only SPDX подразумевает «you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License» в тексте лицензируемого файла. Чтобы отличать от «you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version».

monk ★★★★★
()
Ответ на: комментарий от monk

А именно в этой есть «разрешаю перелицензировать под любыми, выпущеными FSF позднее».

Хм, и правда. Да, значит LGPL v2 (и v3 наверно тоже, но я не проверял) действительно даёт FSF теоретические права перелицензировать твою прогу как хотят.

Под LGPL-2-only SPDX подразумевает

Это я знаю, но такое название - выдумка SPDX. Не надо уточнять дефолты. «or later» - не дефолт, его и надо уточнять.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Вероятно, GNU FDL 3 совместимо с CCASA 3.

Нет, конечно. GNU FDL 3 вообще не существует. Была GNU FDL 1.2. Люди под ней (с формулировкой «GNU FDL 1.2 or later») публиковали тексты, в частности для Википедии.

Но потом Википедикам эта лицензия стала неудобна и они вместо того, чтобы попросить авторов дать им тексты под желаемой ими CC-BY-SA, обратились в FSF и те выпустили GNU FDL 1.3 с дополнительным разделом:

  1. RELICENSING

«Massive Multiauthor Collaboration Site» (or «MMC Site») means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A «Massive Multiauthor Collaboration» (or «MMC») contained in the site means any set of copyrightable works thus published on the MMC site.

«CC-BY-SA» means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization.

«Incorporate» means to publish or republish a Document, in whole or in part, as part of another Document.

An MMC is «eligible for relicensing» if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008.

The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing.

Хочу также обратить внимание, что формулировки намеренно такие, чтобы дать право перелицензирования только одной организации. Поэтому не удивлюсь, если выйдет GPL 4 с аналогичным пунктом, дающим право Google (или кто больше заплатит) на любое использование ПО под GPL.

monk ★★★★★
()
Ответ на: комментарий от monk

Но LGPL почти всегда используют в формате «or later». Если ставить «only», будет несовместима в пределах программы с GPL-4.

Обожаю это безумие с GPL, когда фанаты разных версий GPL не могут использовать код друг друга в одном проекте, хотя казалось бы это всё открытый код. Но нет, надо обязательно сделать через жопу. Вся суть проектов GNU: переусложнить всё на ровном месте без какой-либо пользы в принципе и героически страдать.

yorshka
() автор топика
Ответ на: комментарий от monk

обратились в FSF и те выпустили GNU FDL 1.3 с дополнительным разделом

Что ж ты сразу не сказал? Да, некрасивое поведение, прямо какой-то корпоративный сговор, осуждаю.

Однако, всё же, «or later», в данном случае, туда дописали сами авторы.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Однако, всё же, «or later», в данном случае, туда дописали сами авторы.

Я про то, что если писать or later, даришь код FSF. Если же не писать, то запрещаешь его использовать с новыми версиями GPL.

Кстати, посмотрел LGPL-3, там только право распространять под GPL-3. Например, https://github.com/horosproject/horos/blob/horos/LICENSE нельзя будет использовать совместно с GPL-4 или в одном файле с кодом под LGPL-4. При том, что можно будет использовать совместно с проприетарным кодом.

monk ★★★★★
()
Ответ на: комментарий от yorshka

FSF безумие устроила. Вместо того, чтобы указать, что модифицированный код должен распространяться под любой лицензию предоставляющей права «…», написали, что только под текущей лицензией.

monk ★★★★★
()
Ответ на: комментарий от monk

Я про то, что если писать or later, даришь код FSF. Если же не писать, то запрещаешь его использовать с новыми версиями GPL.

Ну это проблема GPL, а не LGPL. Чтобы твой код можно было использовать с неизвестными новыми GPL, ты должен разрешить его перелицензировать под неизвестные новые GPL. Кроме LGPL для этого есть и другие способы, если что. Можешь свою лицензию придумать, которая будет копилефтной и совместимой с другими копилефтными.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

Можешь свою лицензию придумать, которая будет копилефтной и совместимой с другими копилефтными.

Есть CDDL. Совместима с другими аналогичными копилефтными, в том числе LGPL.

monk ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.