LINUX.ORG.RU

Новости «Разработка»

Мини-новость: Open Dylan 2019.1 (146 комментариев)
Мини-новость: Основание OpenJS Foundation (102 комментария)
Мини-новость: Криптографические токены PKCS#11: просмотр и экспорт сертификатов, проверка их валидности (104 комментария)
Мини-новость: Вышел Buildbot 2.0.0 (45 комментариев)

Вышел Gogs 0.11.86

Группа Разработка

Несколько дней назад вышла версия 0.11.86 Gogs — свободного аналога GitHub для самостоятельного хостинга.

( читать дальше... )

>>> Релиз

 ,

euZ3meep ()

Вышел Pharo 7.0

Группа Разработка

Сегодня вышла новая версия одной из самых популярных и развивающихся реализаций языка Smalltalk — Pharo.

( читать дальше... )

>>> Официальный анонс

 , , , ,

loz ()
Мини-новость: Языку Tcl (Тикль) исполнилось 30 лет (169 комментариев)

Вышел Elixir 1.8.0

Группа Разработка

Elixir — динамически типизированный функциональный язык для написания распределенных и параллельных приложений разработанный как альтернатива Erlang и работающий на Erlang VM.

Версия 1.8 содержит множество изменений на уровне инфраструктуры, времени компиляции и добавляет новые возможности интроспектирования системы.

Главные изменения:

  • Кастомизированный вывод структур.

    Теперь можно использовать протокол Inspect для указания полей, которые будут использоваться для форматирования структуры в строку, так что структура

    defmodule User do
      @derive {Inspect, only: [:id, :name, :age]}
      defstruct [:id, :name, :age, :email, :encrypted_password]
    end
    

    будет напечатана следующим образом:

    #User<id: 1, name: "Jane", age: 33, ...>
    
  • Теперь Elixir поддерживает базу часовых поясов

    В языке существуют 4 типа данных для работы со временем: Time, Date, NativeDateTime(время без часового пояса) и DateTime(с часовым поясом). Развитию последнего препятствовало отсутствие поддержки базы часовых поясов.

    Теперь появился интерфейс Calendar.TimeZoneDatabase который позволит разработчикам подключать свои собственные базы часовых поясов. Так же это позволяет добавить новые возможности, в DateTime, например DateTime.shift_zone/3.

    Также добавлены функции Date.day_of_year/1, Date.quarter_of_year/1, Date.year_of_era/1 and Date.day_of_era/1.

  • Добавлен ключ $callers для улучшения возможностей инструментария

    Одним из самых распространенных способов запуска процессов является модуль Task. При этом Elixir сохраняет идентификатор процесса родителя в словаре запущенного процесса по ключу $ancestors. Это позволяет утилитам анализировать систему и прослеживать происхождение различный событий. Однако этого недостаточно, так как часто дочерний процесс запускается не напрямую, а через посредника, например supervisor. В таком случае хоть ваш код и вызывает запуск Task, однако, родителем будет указан процесс супервизора.

    В новой версии Elixir добавлен ключ $callers который указывает на оригинальный процесс, вызвывший запуск Task.

    Например, при таком вызове:

    [your code] -- calls --> [supervisor] ---- spawns --> [task]
    

    В $callers будет сохранен идентификатор изначального процесса:

    [your code]              [supervisor] <-- ancestor -- [task]
         ^                                                  |
         |--------------------- caller ---------------------|
    

>>> Полный список изменений, улучшений и багфиксов

 , , , ,

loz ()

Исправления безопасности в языке Go

Группа Разработка

Go — язык программирования с открытым исходным кодом.

Вчера вышли версии 1.11.3 и 1.10.6, где закрыты три недавно обнаруженные проблемы безопасности.

Изменения:

  • устранена возможность удаленного выполнения команд с использованием команды go get -u;
  • исправлена уязвимость выхода за пределы каталога, позволявшая внедрять вредоносные файлы;
  • устранена возможность тратить вычислительные мощности, загружая в crypto/x509 цепочки сертификатов неограниченной длины.

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

 ,

sadsadpepe ()

Rust 1.31.0 (2018)

Группа Разработка

Команда Rust объявила о выходе новой стабильной версии Rust 1.31.0, который ознаменует собой также выход новой редакции «Rust 2018». Rust — это язык программирования, который позволяет каждому создавать надежное и эффективное программное обеспечение.

Если у вас установлена предыдущая версия Rust, обновиться до Rust 1.31.0 проще всего следующим образом:

rustup update stable

( читать дальше... )

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

 ,

dotcoder ()
Мини-новость: PHP 7.3.0 (69 комментариев)

Fortran 2018: новый стандарт языка

Группа Разработка

2-го декабря 2018-го года Международная Организация по Стандартизации (ISO) опубликовала ISO/IEC 1539:2018, ранее известный под названием Fortran 2015.

Новый стандарт расширяет возможности взаимодействия с программами на C и параллельного программирования:

  • Введён новый тип CFI_cdesc_t, содержащий информацию о типе элементов, ранге, размере передаваемого массива и способе выделения его памяти. Ранее на сторону программы, написанной на языке C, вместо массивов чисел можно было передать только «голые» указатели, и о соблюдении границ массивов приходилось заботиться вручную.
  • Введено понятие команды (team), позволяющее разделить выполняющуюся на кластере программу на несколько сравнительно независимых подмножеств процессов.
  • Появилась возможность обработки ошибок отдельных процессов кластера (fail image и аргумент stat= вызовов change team, end team, event post, form team, sync all, sync images, sync team).
  • Добавлены атомарные операции над переменными (atomic_add, atomic_and, atomic_or, atomic_xor, atomic_fetch_add, atomic_fetch_and, atomic_fetch_or, atomic_fetch_xor, atomic_cas).
  • Улучшена совместимость со стандартом ISO/IEC/IEEE 60559:2011 для чисел с плавающей запятой.

Следующая версия стандарта временно называется Fortran 202x.

Новые возможности Fortran 2018

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

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

 , ,

AITap ()

Новый стандарт языка C: C18

Группа Разработка

Международная Организация по Стандартизации (ISO) опубликовала новый международный стандарт языка программирования C: ISO/IEC 9899:2018, его также называют C17 и C18.

Новый стандарт не вносит никаких новых возможностей, а лишь исправляет дефекты, сообщенные для C11. Значение макроса __STDC_VERSION__ увеличено до 201710L.

Поддержка C18 у GCC появилась, начиная с 8 версии, а у LLVM Clang — с 6.0. Чтобы указать во время компиляции использование стандарта C18 у GCC и LLVM Clang используются флаги -std=c17 и -std=gnu17. В GCC можно также указать новый стандарт флагами -std=c18 и -std=gnu18.

Последний черновик стандарта

Статья на en.wikipedia.org

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

 , , ,

neon1ks ()

Релиз Crystal-0.27.0

Группа Разработка

Crystal — объектно-ориентированный язык программирования общего назначения, созданный с целью:

  • иметь синтаксис, очень похожий на Ruby;
  • обеспечивать статическую проверку типов без явного указания типов переменных или аргументов методов;
  • иметь возможность написания биндингов к языку С на самом Crystal;
  • обеспечивать возможность метапрограммирования, путем выполнения кода в фазе компиляции и генерации кода;
  • компилировать программу в высокоэффективный бинарный (native) код.

Как заявляют авторы проекта: «мы любим ruby за его эффективность написания кода, а С за его эффективность при выполнения кода и мы хотим скрестить все лучшее из этих двух миров...».

Changelog

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

 ,

Bobby_ ()

Язык D включен в коллекцию компиляторов GNU (gcc 9)

Группа Разработка

GCC 9.1 будет первым стабильным релизом с поддержкой GDC.

Его выход ожидается приблизительно в конце первого квартала 2019 г.

Код для поддержки GDC включает библиотеку libphobos (D run-time library) и фреймворк для тестов D2.

Поддержка D потребовала внесения изменений в приблизительно 1 миллион строк кода.

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

 

Bobby_ ()
Мини-новость: Требуется помощь в тестировании Rust 2018 (50 комментариев)
Мини-новость: Релиз Rust 1.30 (85 комментариев)
Мини-новость: The Interim Operating System (72 комментария)

Выпущен язык для химиков - CRN++

Группа Разработка

За разработку отвечает команда исследователей из Техасского университета в Остине, а сам «язык программирования для химиков» получил название CRN++. Как заявил один из разработчиков нового языка Марко Васик:

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

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

Здесь вы можете ознакомиться с оригиналом новости и получить всю известную на данный момент информацию: https://arxiv.org/abs/1809.07430

>>> Полная новость с русскоязычного сайта

 , ,

KrasnoGlazik ()
Мини-новость: WiX.Py 0.1 - кроссплатформенный сборщик MSI пакетов (51 комментарий)