LINUX.ORG.RU

Rust основан на LLVM?

 , , ,


2

8

В одном треде высказывалось мнение, что язык Rust зависит от LLVM. Когда я написал, что его вполне можно собрать с GCC, мне ответили, что он точно так же будет зависеть от GCC и вообще он паразитирует на компиляторе C++.

Но ведь и GCC, и Clang написаны на C и C++ соответственно и что же, они паразитируют сами на себе?

Как я понимаю процесс сборки Rust: некий компилятор C++ собирает базовый компилятор Rust, который уже собирает полный компилятор Rust. Таким образом Rust может работать на тех платформах, на которых можно собрать его базовый компилятор, написанный на C++.

Верны ли мои представления или я заблуждаюсь?

rust написан на rust и генерит llvm ассемблер. GCC нельзя использовать ни для сборки rust, ни для кодогенератора

anonymous
()

Расслабься, этот тот комментатор паразитировал на звучности и солидности употребляемых им слов, чтобы казалось, что его посты - не полный идиотизм.

Все от чего-то зависит, например Rust от LLVM. C++ если и есть там где-то глубже по графу зависимостей, он при этом «причем» примерно настолько же, как и, скажем, кремний. Rust от C++ напрямую зависит? Все, до свидания, провокатор из другого треда.

t184256 ★★★★★
()

Как я понимаю процесс сборки Rust: некий компилятор C++ собирает базовый компилятор Rust

Я не знаю, что ты называешь «базовым компилятором», но фронтенд и миддленд rustc написаны на Rust.

Верны ли мои представления

Уровень царя примерно.

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

Предполагаю, что они нужны, чтобы собрать сам llvm. Так как у llvm API меняется от релиза к релизу проекты вынуждены его тоскать с собой.

К тому же сам rust использует llvm как библиотеку. С++ код для rust оборачивает llvm API в форму, пригодную для использования из исходников на rust (FFI)

anonymous
()
Ответ на: комментарий от ArkaDOSik

Не знаю, откуда взялось 5% (возможно, остатки Си++ в рантайме), но бэкенд компилятора Rust - это LLVM. Который, внезапно, на Си++.

tailgunner ★★★★★
()

Ещё rust и С++ используют один линкер.

Например, собираем hello-world с помощью nightly-x86_64-pc-windows-msvc с помощью команды:

cargo rustc -- -Z print-link-args
и видим:
"C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.16.27023\\bin\\HostX64\\x64\\link.exe"
дальше .o файлы и библиотеки

а если с помощью nightly-x86_64-pc-windows-gnu. то видим

"gcc" "-Wl,--enable-long-section-names" "-fno-use-linker-plugin" "-Wl,--nxcompat" "-nostdlib" "-m64"
дальше .o файлы и библиотеки

Так что Rust нужно чтобы в системе был установлен либо gcc, либо MSVC.

Возможно царь это имел ввиду под паразитированием...

fsb4000 ★★★★★
()

Суть претензии в том, что большей частью оптимизаций занимается LLVM, а не компилятор раста. Но называть использование LLVM «паразитированием на компиляторе С++» — очевидная подмена понятий.

quantum-troll ★★★★★
()

Учитывая то, что LLVM-backend написан на C++ и компилятору GCC требуется C++ компилятор для построения самого себя, авторитетно заявляю: язык программирования C теперь зависит от С++ и потерял самодостаточность.

EXL ★★★★★
()
Ответ на: комментарий от quantum-troll

Вот, адекватный ответ, спасибо. И ответ выше тоже многое пояснил.

Но ведь это не означает что в будущем Rust не будет бороться по скорости выполнения кода с C++?

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

Это называется самодостаточность.

Надо же, у этого даже название есть.

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

C теперь зависит от С++ и потерял самодостаточность.

не язык, а пара компиляторов

anonymous
()

Окей, смотри:

  • LLVM можно собрать с помощью GCC
  • Компилятор Rust (уже собранный) использует LLVM-backend (тоже уже собранный, возможно с помощью GCC). Т.е. он генерирует «байт-код» для LLVM
  • LLVM генерирует нативный код из своего «байт-кода».

Т.е.

Rust основан на LLVM?

Да

Но ведь и GCC, и Clang написаны на C и C++ соответственно и что же, они паразитируют сами на себе?

Нет. C++ код (в идеале) можно собрать любым компилятором, который поддерживает соответствующий стандарт. Исходные коды компилоятора — тоже C++ код (ну, или C в случае GCC)

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

Нет. Язык не может быть основан на генераторе кода.

Окей, я в настроении побуквоедить, поехали.

А почему Rust — это только язык? Как ты тогда одним словом назовешь компилятор Rust?

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

ну, или C в случае GCC

Нет.

Да * **

* ну, в подавляющем, большинстве

** то, что они используют С++ компилятор для сборки, я не считаю аргументом говорить, что GCC написан на С++

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

Все, вот теперь точно понял. Помечу тему как решенную, я ее не для сра дискуссий создавал.

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

GitHub, как и другие любители анализирования проектов по расширению файла, вроде того же cloc, кхе-кхе, обкакиваются на кодовой базе GCC, потому что его разрабы пишут C++ код в файлах с расширением *.c

Вот тут с царём был диалог на эту тему:

Производительность C++ (комментарий)

** то, что они используют С++ компилятор для сборки, я не считаю аргументом говорить, что GCC написан на С++

Они используют C++ компилятор потому что код GCC теперь это код на C++. Ну или C с классами и неймспейсами и виртуальными методами.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 2)

Это не nebanbymenyapls писал такую дичь?

tintobras
()
Ответ на: комментарий от tailgunner

The Rust Programming Language

Обратимся тогда к одноименной книге: https://doc.rust-lang.org/book/ch01-01-installation.html

The first step is to install Rust. We’ll download Rust through rustup, a command line tool for managing Rust versions and associated tools. ... The following steps install the latest stable version of the Rust compiler.

... пора писать патчи, чтоб не называть компилятор (и стандартную библиотеку) Rust

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

... пора писать патчи, чтоб не называть компилятор (и стандартную библиотеку) Rust

Я думаю, что авторы книги знают, что такое Rust и на чем он основан. Так что нет, не пора.

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

Я думаю, что авторы книги знают, что такое Rust и на чем он основан.

Тоже так считаю

KennyMinigun ★★★★★
()

Ещё немного прочитал про rust, он обычно статические бинарники собирает, но в Cargo.toml можно задать:

[profile.release]
prefer-dynamic=true
После этого попробовал собрать программу с stable-x86_64-pc-windows-msvc и stable-x86_64-pc-windows-gnu.

Вот что выдало:

MSVC

$ ldd basics.exe (140kb)
        ntdll.dll => /c/WINDOWS/SYSTEM32/ntdll.dll (0x7ffd7aab0000)
        KERNEL32.DLL => /c/WINDOWS/System32/KERNEL32.DLL (0x7ffd79930000)
        KERNELBASE.dll => /c/WINDOWS/System32/KERNELBASE.dll (0x7ffd77140000)
        apphelp.dll => /c/WINDOWS/SYSTEM32/apphelp.dll (0x7ffd74cb0000)
        ucrtbase.dll => /c/WINDOWS/System32/ucrtbase.dll (0x7ffd77d90000)
        VCRUNTIME140.dll => /c/WINDOWS/SYSTEM32/VCRUNTIME140.dll (0x7ffd6a7d0000)
gnu
$ ldd basics.exe (1.1mb)
        ntdll.dll => /c/WINDOWS/SYSTEM32/ntdll.dll (0x7ffd7aab0000)
        KERNEL32.DLL => /c/WINDOWS/System32/KERNEL32.DLL (0x7ffd79930000)
        KERNELBASE.dll => /c/WINDOWS/System32/KERNELBASE.dll (0x7ffd77140000)
        msvcrt.dll => /c/WINDOWS/System32/msvcrt.dll (0x7ffd7a5a0000)
Как видно, скомпилированный gnu бинарник остался статическим, а скомпилированный msvc стал гораздо меньше весить, и стала видна зависимость VCRUNTIME140.dll

Файл vcruntime140.dll входит в состав «Распространяемый компонент Microsoft Visual C++ 2015» (Microsoft Visual C++ 2015 Redistributable), а также более новая версия этого файла присутствует в составе распространяемого пакета Visual C++ для Visual Studio 2017.

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

Что-то я неправильно сделал. Из Cargo.toml не работает prefer-dynamic=true

Но работает просто с компиляцией rustc.

Вот правильные результаты:

Компиляция:

rustc -Cprefer-dynamic main.rs

MSVC, размер exe 15,0 КБ

Размер std-837033ce1980faee.dll = 2,90 МБ

ldd main.exe
        ntdll.dll => /c/WINDOWS/SYSTEM32/ntdll.dll (0x7ffd7aab0000)
        KERNEL32.DLL => /c/WINDOWS/System32/KERNEL32.DLL (0x7ffd79930000)
        KERNELBASE.dll => /c/WINDOWS/System32/KERNELBASE.dll (0x7ffd77140000)
        ucrtbase.dll => /c/WINDOWS/System32/ucrtbase.dll (0x7ffd77d90000)
        VCRUNTIME140.dll => /c/WINDOWS/SYSTEM32/VCRUNTIME140.dll (0x7ffd6a7d0000)
        std-837033ce1980faee.dll => /c/MyProjects/Learning/Rust/test/src/std-837033ce1980faee.dll (0x7ffd141e0000)
        ADVAPI32.dll => /c/WINDOWS/System32/ADVAPI32.dll (0x7ffd781e0000)
        msvcrt.dll => /c/WINDOWS/System32/msvcrt.dll (0x7ffd7a5a0000)
        sechost.dll => /c/WINDOWS/System32/sechost.dll (0x7ffd78170000)
        RPCRT4.dll => /c/WINDOWS/System32/RPCRT4.dll (0x7ffd7a1f0000)
        WS2_32.dll => /c/WINDOWS/System32/WS2_32.dll (0x7ffd7a180000)
        SHELL32.dll => /c/WINDOWS/System32/SHELL32.dll (0x7ffd784f0000)
        cfgmgr32.dll => /c/WINDOWS/System32/cfgmgr32.dll (0x7ffd77b30000)
        USERENV.dll => /c/WINDOWS/SYSTEM32/USERENV.dll (0x7ffd76c90000)
        shcore.dll => /c/WINDOWS/System32/shcore.dll (0x7ffd79e50000)
        profapi.dll => /c/WINDOWS/System32/profapi.dll (0x7ffd76e10000)
        combase.dll => /c/WINDOWS/System32/combase.dll (0x7ffd7a640000)
        bcryptPrimitives.dll => /c/WINDOWS/System32/bcryptPrimitives.dll (0x7ffd77e90000)
        windows.storage.dll => /c/WINDOWS/System32/windows.storage.dll (0x7ffd77420000)
        shlwapi.dll => /c/WINDOWS/System32/shlwapi.dll (0x7ffd7a540000)
        GDI32.dll => /c/WINDOWS/System32/GDI32.dll (0x7ffd78430000)
        gdi32full.dll => /c/WINDOWS/System32/gdi32full.dll (0x7ffd76ef0000)
        msvcp_win.dll => /c/WINDOWS/System32/msvcp_win.dll (0x7ffd76e50000)
        USER32.dll => /c/WINDOWS/System32/USER32.dll (0x7ffd79ff0000)
        win32u.dll => /c/WINDOWS/System32/win32u.dll (0x7ffd77d70000)
        kernel.appcore.dll => /c/WINDOWS/System32/kernel.appcore.dll (0x7ffd76df0000)
        powrprof.dll => /c/WINDOWS/System32/powrprof.dll (0x7ffd76d90000)
        FLTLIB.DLL => /c/WINDOWS/System32/FLTLIB.DLL (0x7ffd76de0000)
        CRYPTBASE.DLL => /c/WINDOWS/SYSTEM32/CRYPTBASE.DLL (0x7ffd767e0000)

Gnu, размер exe 63,2 КБ

Размер std-f5a6c065b93e90ae.dll = 6,50 МБ

 ldd main_gcc.exe
        ntdll.dll => /c/WINDOWS/SYSTEM32/ntdll.dll (0x7ffd7aab0000)
        KERNEL32.DLL => /c/WINDOWS/System32/KERNEL32.DLL (0x7ffd79930000)
        KERNELBASE.dll => /c/WINDOWS/System32/KERNELBASE.dll (0x7ffd77140000)
        msvcrt.dll => /c/WINDOWS/System32/msvcrt.dll (0x7ffd7a5a0000)
        std-f5a6c065b93e90ae.dll => /c/MyProjects/Learning/Rust/test/src/std-f5a6c065b93e90ae.dll (0x6c240000)
        ADVAPI32.dll => /c/WINDOWS/System32/ADVAPI32.dll (0x7ffd781e0000)
        sechost.dll => /c/WINDOWS/System32/sechost.dll (0x7ffd78170000)
        RPCRT4.dll => /c/WINDOWS/System32/RPCRT4.dll (0x7ffd7a1f0000)
        SHELL32.dll => /c/WINDOWS/System32/SHELL32.dll (0x7ffd784f0000)
        cfgmgr32.dll => /c/WINDOWS/System32/cfgmgr32.dll (0x7ffd77b30000)
        ucrtbase.dll => /c/WINDOWS/System32/ucrtbase.dll (0x7ffd77d90000)
        shcore.dll => /c/WINDOWS/System32/shcore.dll (0x7ffd79e50000)
        combase.dll => /c/WINDOWS/System32/combase.dll (0x7ffd7a640000)
        bcryptPrimitives.dll => /c/WINDOWS/System32/bcryptPrimitives.dll (0x7ffd77e90000)
        windows.storage.dll => /c/WINDOWS/System32/windows.storage.dll (0x7ffd77420000)
        shlwapi.dll => /c/WINDOWS/System32/shlwapi.dll (0x7ffd7a540000)
        GDI32.dll => /c/WINDOWS/System32/GDI32.dll (0x7ffd78430000)
        gdi32full.dll => /c/WINDOWS/System32/gdi32full.dll (0x7ffd76ef0000)
        msvcp_win.dll => /c/WINDOWS/System32/msvcp_win.dll (0x7ffd76e50000)
        USER32.dll => /c/WINDOWS/System32/USER32.dll (0x7ffd79ff0000)
        win32u.dll => /c/WINDOWS/System32/win32u.dll (0x7ffd77d70000)
        kernel.appcore.dll => /c/WINDOWS/System32/kernel.appcore.dll (0x7ffd76df0000)
        profapi.dll => /c/WINDOWS/System32/profapi.dll (0x7ffd76e10000)
        powrprof.dll => /c/WINDOWS/System32/powrprof.dll (0x7ffd76d90000)
        FLTLIB.DLL => /c/WINDOWS/System32/FLTLIB.DLL (0x7ffd76de0000)
        WS2_32.dll => /c/WINDOWS/System32/WS2_32.dll (0x7ffd7a180000)
        USERENV.dll => /c/WINDOWS/SYSTEM32/USERENV.dll (0x7ffd76c90000)
        CRYPTBASE.DLL => /c/WINDOWS/SYSTEM32/CRYPTBASE.DLL (0x7ffd767e0000)

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

Скриним, как быстро этот эксперт убежит из треда.

Я не знаю, что ты называешь «базовым компилятором», но фронтенд и миддленд rustc написаны на Rust.

Дай определения понятиям:

фронтенд
миддленд

А так же расскажи, что в rustc используется в качестве бекенда. А так же, какое место тут занимает llvm.

nebanbmenyapls
()
Ответ на: комментарий от KennyMinigun

Компилятор Rust (уже собранный) использует LLVM-backend (тоже уже собранный, возможно с помощью GCC). Т.е. он генерирует «байт-код» для LLVM

Ты повторяешь херню за тутошними клоунами. Никакого llvm-бекенда не существует. llvm - это компилятор, целиком и полностью.

Раст - это огрызок фронтенда, т.е. убогий транслятор(транспайлер), который даже сам таргет не генерирует, а использует для этого llvm-рантайм.

Никакого раст-компилятора не существует, раст является частью инфраструктуры llvm, т.е. не может существовать вне её и компилятор там llvm, по определению.

Раст-адепты, включая шлангера, это ламерки, которые несут рандомную ахинею. Эти тезисы существуют для домохозяек, которые гуйню воспринимают за логику.

Т.е. для домохозяйки гуйня к какой-то софтине является софтиной, а не гуйнёй. Точно так же раст является гуйнёй к llvm.

nebanbmenyapls
()
Ответ на: комментарий от t184256

Все от чего-то зависит, например Rust от LLVM.

О боже, идиотизм ходячий, ты бы не смешил меня своей нелепостью. Сообщаю тебе новость - llvm зависит от С++, а значит rust зависит от C++.

он при этом «причем» примерно настолько же, как и, скажем, кремний.

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

А теперь сравниваем мою пасту и эти жалкие потуги:

Сравнение с кремнием некорректно по очевидной причине - оно находится вне софтварного мира и нами не рассматривается, а даже если рассматривается, то это не имеет смысла, т.к. от кремния зависят все. Нет смысла оценивать что-то по критериям в рамках которых всё рассмотренное идентично.

И даже если тут балабол попытается что-то болтать про «всё зависит от си» - нет, дело не в том, что оно зависит. Тут наш балабол попытается манипулировать, и если вы глупый - вы попадётесь.

Но на самом деле тезис звучит не так, а так: «зависит от кода на ДРУГОМ ЯЗЫКЕ», и в контексте С/С++ зависеть от С/С++ кода нормально. Занавес, балаболка помножена на ноль.

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

Дай определения понятиям:

Фронтенд - транслятор из языка высокого уровня в LLVM IR/биткод(по сути парсер и лексер, который строит AST и дальше уже транслирует в виде промежуточного варианта) Мидленд - оптимизатор кода без привязки к архитектуре. Бекенд - транслятор LLVM IR/биткода в нативный код конечной платформы, где платформной может быть и JavaScript и eBPF и AMD64.

А так же расскажи, что в rustc используется в качестве бекенда. А так же, какое место тут занимает llvm.

Если есть готовое решение на C++/Python/JavaScript/WhiteSpace, то зачем городить еще одно решение? Но вообще среди фанатов Rust есть довольно фанатичные личности и возможно мы еще увидим бекенд LLVM на Rust.

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

Ты повторяешь херню за тутошними клоунами. Никакого llvm-бекенда не существует. llvm - это компилятор, целиком и полностью.

The LLVM compiler infrastructure project is a «collection of modular and reusable compiler and toolchain technologies»[3] used to develop compiler front ends and back ends.

Сами создателя говорят, что это набор модулей для создания создания компилятора.

Раст - это огрызок фронтенда, т.е. убогий транслятор(транспайлер), который даже сам таргет не генерирует, а использует для этого llvm-рантайм.

Так же как кланг и свифт. Просто использует готовую language awareness платформу. Будет llvm на bash и они тоже будут использовать его независимо от языка разработки.

Никакого раст-компилятора не существует, раст является частью инфраструктуры llvm, т.е. не может существовать вне её и компилятор там llvm, по определению.

rustc это как раз и есть компилятор, что следует из определения выше. Так же как и кланг является самостоятельным компилятором.

Точно так же раст является гуйнёй к llvm.

А что в этом плохого? Ну да, rust использует инфраструктуру LLVM. И замечательно что он использует уже знакомый инструмент, с которым человек сталкивался при разработке на C++/clang.

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

Сами создателя говорят, что это набор модулей для создания создания компилятора.

Это полная херня. Это описание для домохозяйки, если ты домохозяйка - пользуйся этими определениями. Я тебе сообщаю новость на полуфабрикатах написано «модули для приготовления» и существует это лишь потому, чтобы домохозяйка считала себя «хозяйкой».

Очевидно, что llvm выполняет все функции компилятора, очевидно, что полуфабрикат выполняет все функции приготовления.

К тому же, я могу тебя помножить на ноль простым тезисом - llvm это компилятор IR и ты поплываешь саразу и быстро.

Так же как кланг и свифт. Просто использует готовую language awareness платформу. Будет llvm на bash и они тоже будут использовать его независимо от языка разработки.

Опять несёшь колхозную херню. Ты действительно считаешь, что способен со мною играться?

Сообщаю тебе новость, твои жалкие потуги ничего не стоят, ведь абсолютно неважно кто и что использует. Ты сам придумал какую-то херню и на неё отвечаешь.

Мой же тезис звучал так «использует то, что на нём не написано». Шланг написан на крестах как и ллвм, поэтому мой тезис для этого случая не работает, а ты сел в лужу.

rustc это как раз и есть компилятор, что следует из определения выше. Так же как и кланг является самостоятельным компилятором.

Полная херня. Если этот огрызок является компилятором - выкинь оттуда llvm. Вперёд. Или ты очередной трепло?

А что в этом плохого? Ну да, rust использует инфраструктуру LLVM.

Правильно, это убогий паразит. Существует на том, что сделали другие и пытается что-то кукарекать в адрес их.

И замечательно что он использует уже знакомый инструмент, с которым человек сталкивался при разработке на C++/clang.

Опять херня. Все эти мусорные тезисы не работают пока ты не докажешь состоятельность этого недоязычка вне llvm. До этого я просто сбриваю все эти убогие потуги.

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

Дело в том, что фронтенд/бекенд являются лишь сторонами центра, т.е. это составные части центральной части, это то, что вещается на неё с двух сторон.

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

Именно поэтому никакой недоязычок(в частности руст) не может является компилятором и каким-то центром в ситуации с llvm, где llvm является центром, а огрызок фронтенда является лишь частью llvm. Как и любой другой бекенд/фронтенд.

Компилятором может являться все что угодно, что может транслировать высокий уровень в машинный код. К языку это вообще не имеет отношения.

А знаешь почему это важно? Это важно в контексте зависимостей, для определения состоятельности недоязычка. Ведь если ты можешь и не делаешь - ты бы сделал что-то и в ситуации, когда llvm не существовало.

Есть люди, которые на форумах тролят, а есть те, кто работу работает и их конечная цель получить результат, а не доказать что они затролили всех на форуме. Mozilla хотели относительно безопасный язык и они его получили. Состоятельность языка доказывается тьюринг полнотой, а не контекстом зависимостей.

Давай ещё проще. Из твоих тезисов следует то, что домохозяйка не пишет себе ОС лишь потому, что «зачем городить огород»? А так бы она 100% написал бы. Просто щас уже есть готовые? Ты действительно не понимаешь всей нелепости происходящего?

Из моих тезисов следует, что люди деньги считают и здраво оценивают свои силы. Свою ОС не пишут приблизительно по тем же причинам.

К тому же, я могу тебя помножить на ноль простым тезисом - llvm это компилятор IR и ты поплываешь саразу и быстро.

Я не понимаю что ты хочешь этим доказать? То что LLVM это не фреймворк для разработки своих компиляторов? У тебя это не получится, т.к. домохозяйки для домохозяек уже написали, что это фреймворк.

Опять несёшь колхозную херню. Ты действительно считаешь, что способен со мною играться?

Нет, у меня просто тесты долго прогоняются. Сейчас закончатся и пойду спать.

Мой же тезис звучал так «использует то, что на нём не написано». Шланг написан на крестах как и ллвм, поэтому мой тезис для этого случая не работает, а ты сел в лужу.

Может таки в суп?

Полная херня. Если этот огрызок является компилятором - выкинь оттуда llvm. Вперёд. Или ты очередной трепло?

А зачем выкидывать-то? Ты можешь внятно объяснить зачем их компилятора на основе фреймворка выкидывать фреймворк?

Правильно, это убогий паразит. Существует на том, что сделали другие и пытается что-то кукарекать в адрес их.

Я не знаю где кто паразитирует и кукарекает. У меня вот работа с сетью сделана другими людьми из Cisco и Intel. Мне теперь переписать весь стек от уровня взаимодействия с железкой до IPv6?

Опять херня. Все эти мусорные тезисы не работают пока ты не докажешь состоятельность этого недоязычка вне llvm. До этого я просто сбриваю все эти убогие потуги.

А зачем мне что-то доказывать? Мне проекты дают не потому, что я доказываю что-то кому-то, а потому что я их завершаю. Если нужен Rust, то будет Rust. Если нужен будет C++, то будет C++. Или C/Python/Java.

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

О боже, идиотизм ходячий, ты бы не смешил меня своей нелепостью

Нет, ты. Зависимость от интерфейса != зависимость от реализации.

Я множится на ноль эта жалкая потуга очень просто.

Ваше величество, Вам плохо?

t184256 ★★★★★
()

вообще он паразитирует на компиляторе C++.

LLVM _не_ компилятор C++

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

возможно мы еще увидим бекенд LLVM на Rust.

Бэкенд LLVM на Rust мы точно не увидим, потому что LLVM и есть бэкенд. А вот бэкенд rustc на Rust, скорее всего, будет - CraneLift.

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

Бэкенд LLVM на Rust мы точно не увидим, потому что LLVM и есть бэкенд. А вот бэкенд rustc на Rust, скорее всего, будет - CraneLift.

А как же Rewrite it in Rust? :)

xpahos ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.