The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

В кодовую базу LLVM приняты биндинги для языка Go

27.10.2014 10:39

В состав проекта LLVM принят начальный набор биндингов для обеспечения поддержки развиваемого компанией Google языка программирования Go, который позиционируется как гибридное решение, сочетающее высокую производительность компилируемых языков с такими достоинствами скриптовых языков, как лёгкость написания кода, быстрота разработки и защищённость от ошибок. Принятый код основан на наработках проекта LLVM Go, разработчики которого согласились перелицензировать код под лицензией LLVM и предложили свою работу для включения в основной состав LLVM.

Включение биндингов в состав LLVM является необходимым условием дальнейшей интеграции в LLVM фронтэнда с компилятором для языка Go (llgo), который построен с использованием данных биндингов. Ожидается, что поддержка языка Go войдёт в состав следующего выпуска LLVM 3.6. Поддержка языка Go в GCC была добавлена весной 2011 года.

  1. Главная ссылка к новости (http://llvmweekly.org/issue/42...)
  2. OpenNews: Увидел свет язык программирования Go 1.3
  3. OpenNews: Первый релиз языка программирования Go
  4. OpenNews: Представлен новый открытый проект Google - язык программирования Go
  5. OpenNews: Релиз набора компиляторов GCC 4.6.0 с поддержкой языка программирования Go
  6. OpenNews: В состав GCC одобрено включение фронтэнда для языка Go
Лицензия: CC-BY
Тип: К сведению
Ключевые слова: golang, llvm
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (14) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, vitalif (ok), 15:27, 27/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    И 0 комментариев. Всем пофиг?
     
     
  • 2.3, Стержень (?), 15:49, 27/10/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    да
     
  • 2.4, BratSinot (ok), 15:50, 27/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    А что еще говорить?
    gccgo пока не нужен, т.к. там не работают goroutine и работает он только под *nix (ну или только под GNU/Linux).

    Что касается llgo, то ничего сказать не могу, т.к. не работал с ним.

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

     
     
  • 3.5, Анотим (?), 19:05, 27/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >gccgo пока не нужен

    Чувствуется эксперт. gccgo умеет линковаться с динамическими библиотеками, в отличие от официального компилятора.
    >только под *nix

    Остальные системы не нужны.
    >активно работают и улучшают

    gccgo с небольшим запаздыванием включает все фичи. Goroutine доступны с линковщиком gold.

     
     
  • 4.8, Аноним (-), 19:48, 27/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > gccgo умеет линковаться с динамическими библиотеками, в отличие от официального компилятора.

    Ты так говоришь, как будто это что-то хорошее

     
  • 4.13, BratSinot (ok), 15:11, 28/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Чувствуется эксперт. gccgo умеет линковаться с динамическими библиотеками, в отличие от официального компилятора.

    В офф. компиляторе этого нет, потому-что в Go изначально этого нет.
    Да и потом, с чего это нет? import "C" даст вам все что угодно. Я так SSE через ассемблерные вставки использовал.

     
  • 4.15, BratSinot (ok), 15:18, 28/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Да и потом, лично мне Go нравится из-за статичной линковки. А так, я соберу у себя программу с помощью gccgo, а на другой машине будет другая версия gccgo (или не будет), у которой ABI поломано.
     
  • 3.10, Доктор Звездулькин (?), 21:54, 27/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >там не работают goroutine

    Работают вполне.

    >работает он только под *nix (ну или только под GNU/Linux)

    Ну, чего поделаешь. Однако чаще всего на Go пишут серверные приложения, которые запускают под *nix.

     
     
  • 4.14, BratSinot (ok), 15:16, 28/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Работают вполне.

    Ну уж извините, я бедный, у меня нет золота.

    > Ну, чего поделаешь. Однако чаще всего на Go пишут серверные приложения, которые
    > запускают под *nix.

    Ну я на нем только клиентские писал. Хотя была одна серверная, но нужно было учитывать возможность поднятия под Windows.

     

  • 1.6, Анотим (?), 19:08, 27/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >защищённость от ошибок

    Громко сказано. Не от всех ведь ошибок? Даже в описании Rust сказано "защищённость от распространённых ошибок".

     
     
  • 2.7, Аноним (-), 19:12, 27/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    имеются ввиду сборка мусора и bounds checking
     

  • 1.9, nc (ok), 20:47, 27/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Отличная новость!
    Интересно, а в чем заключается поддержка Go со стороны LLVM? Иными словами что такого есть в Go, что недостаточно стандартных возможностей LLVM и нужно делать какие-то биндинги? Для Rust есть аналогичная "поддержка со стороны LLVM"?
     
     
  • 2.11, Доктор Звездулькин (?), 21:58, 27/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Иными словами что такого есть в Go, что недостаточно стандартных возможностей LLVM и
    > нужно делать какие-то биндинги?

    Ну, во-первых, llgo написан на Go, и ему хотелось бы как-то вызывать библиотеки LLVM. Конструктор байт-кода, например.

    Хотя, конечно, я думаю, теоретически, может быть, наверное, он мог бы выплевывать LLVM IR самостоятельно, а потом просто вызывать llc.

     

  • 1.16, Андрей (??), 20:14, 29/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Ожидается, что поддержка языка Go войдёт в состав следующего выпуска LLVM 3.6.

    Только взялись интегрировать, и уже в следующем релизе! Это радует.

    Вот бы они так с openmp поступили. А то говорят уже более года, а успеть и до 3.6 под большим вопросом.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру