LINUX.ORG.RU

C


338

4

Всего сообщений: 128

Starcraft портирован на ARM

Группа Игры

Notaz, участник проекта OpenPandora, провёл реверс-инжиниринг игры StarCraft и портировал её на ARM-платформу. Ему удалось это сделать несмотря на отсутствие исходного кода в открытом доступе.

В репозитории выложен перекомпилированный бинарник для установки которого на игровую приставку «Пандора» нужно еще скопировать несколько файлов с ПК-версии игры.

Автор порта говорит, что он дизассемблировал игру в IDA, затем конвертировал код на C с помощью инструментов собственной разработки (их пришлось написать в процессе работы специально для этой задачи), потом скомпилировал в нормальную программу и связал с библиотекой winelib, которая работает с Win32 API из-под ARM-версии wine. Задача поначалу казалась простой, но в реальности проект занял почти полгода: вылезло очень много неожиданных проблем. Так или иначе, но автор довёл дело до конца.

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

>>> Топик автора

 , , ,

ZUKMAN
()

Вышла библиотека SDL 2.0

Группа Игры

Выпущена новая версия кроссплатформенной библиотеки SDL — Simple DirectMedia Layer, предназначенной для решения многих задач, возникающих при разработке игр и подобных мультимедийных приложений. Например создания окна, получение событий ввода и т.д.

Основные изменения версии 2.0 по сравнению с предыдущим релизом SDL 1.2:

  • Использование аппаратного 3D ускорения
  • Поддержка OpenGL ES и OpenGL 3.0
  • Поддержка нескольких окон и дисплеев
  • Поддержка нескольких аудиоустройств
  • Поддержка Android и iOS
  • На Linux, OS X и Windows доступна обратная связь в игровых контроллерах
  • Добавлено простое API для 2D-рендеринга, которое может использовать OpenGL, OpenGL ES, Direct3D, программный или другой вариант рендеринга
  • Управление питанием (доступна информация о состоянии батареи)
  • Поддержка сенсорных экранов
  • Улучшена поддержка полноэкранного режима
  • Улучшена поддержка клавиатуры и добавлена поддержка ввода Unicode и использования IME
  • Упрощено API для доступа к игровым контроллерам.
  • Поддержка буфера обмена
  • Проведена массивная работа по рефакторингу

Также был обновлён сайт проекта.

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

 , , , ,

PolarFox
()

Вышел DRAKON Editor 1.9 с поддержкой Java и С#

Группа Open Source

Вышел DRAKON Editor 1.9, свободный кросс-платформенный редактор диаграмм визуального языка ДРАКОН.
Язык ДРАКОН обеспечивает наглядное и простое для понимания представление алгоритмов. Области применения:

  • составление спецификаций для ПО и технических заданий;
  • документация ПО;
  • собственно программирование.

В этой версии:

  • Генерация кода на языках Java и C#.
  • Новый генератор кода для скриптовых языков.
  • Вставка изображений горячими клавишами.
  • Список ранее открытых файлов.
  • Возможность менять шрифты.

Перечень языков программирования, поддерживаемых в версии 1.9:

  • Java
  • C#
  • простой C и C++
  • Python
  • Tcl

Интерфейс редактирования в DRAKON Editor оптимизирован для диаграмм языка ДРАКОН.
Поддерживаемые ОС: Linux, Mac OS, Windows.

>>> Сайт проекта

 , , , , , ,

rykkin
()

Руководство по созданию простой UNIX-like ОС.

Группа Документация

Английский студент James Molloy опубликовал в своем блоге пошаговое руководство по созданию ОС для x86 процессоров. Данная ОС имеет все основные части современных операционных систем, таких как виртуальная память, VFS, многозадачность и другие. Данное руководство состоит из фрагментов исходного кода (на С и Assembler) и детального объяснения принципов его работы, а также технических данных о работе процессора, описание некоторых регистров, и т. п.

>>> Руководство

 , , , ,

urxvt
()

Опубликован новый стандарт языка C: C11

Группа Документация

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

  • поддержка многопоточности;
  • улучшенная поддержка юникода;
  • обобщенные макросы (type-generic expressions, позволяют статичную перегрузку);
  • анонимные структуры и объединения (упрощают обращение ко вложенным конструкциям);
  • управление выравниванием объектов;
  • статичные утверждения (static assertions);
  • удаление опасной функции gets (в пользу безопасной gets_s);
  • функция quick_exit;
  • спецификатор функции _Noreturn;
  • новый режим эксклюзивного открытия файла.

Кроме того, определен ряд необязательных для реализации возможностей, включая новый набор безопасных функций (в т. ч. для работы с массивами с проверкой границ). В этот список также попали возможности, которые в предыдущем стандарте считались обязательными: комплексная арифметика, массивы переменной длины.

Некоторые возможности нового стандарта уже поддерживаются компиляторами GCC и Clang. Стоит, однако, отметить, что полной поддержки предыдущего стандарта C99 в этих и большинстве других компиляторов нет.

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

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

 , ,

unsigned
()

Вышел DRAKON Editor 1.5 с генерацией кода

Группа Open Source

Вышел DRAKON Editor 1.5, свободный кросс-платформенный редактор диаграмм визуального языка ДРАКОН.
Поддерживаемые ОС: Linux, Mac OS, Windows.
В этой версии:
- Генерация кода на C, C++, Python, Tcl.
- Процесс редактирования сделан более удобным: при перемещении линий теперь перемещаются все связанные с ними объекты.
- Множество улучшений пользовательского интерфейса (переход к диаграмме по имени, Find all references, Go to definition и пр.)

>>> Сайт проекта

 , , , ,

rykkin
()

Intel открыл исходные тексты проекта Intel Cilk Plus

Группа Open Source

Компания Intel открыла исходные тексты проекта Cilk Plus, расширения С и С++, серьезно упрощающего разработку многопоточных приложений или использование параллельных вычислений. Сообщается, что при использовании данного инструмента скомпилированные приложения имеют большую производительность в многоядерных системах, чем приложения, оптимизированные другими способами.

Расширение Cilk Plus добавляет в язык С/С++ три ключевых слова - _Cilk_spawn, _Cilk_sync и _Cilk_for, - а также выражения для объявления массивов, указания компилятору, а также некоторые другие единицы языка. Кроме того, многие нововведения заметно упрощают и делают более понятным для разработчика процесс отладки многопоточной программы.

Уже существует ветка компилятора GCC 4.7 со встроенным Intel Cilk Plus, а также официальная библиотека времени исполнения.

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

Спецификация

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

 , ,

ins3y3d
()

Doom2D:Rembo 1.35.1 — порт легендарной игры для Linux

Группа Игры

Легендарная двухмерная платформенная аркада для DOS по мотивам просто-таки культовой стрелялки от id Software DOOMDoom2D авторства команды отечественных разработчиков из Prikol Software® — Алексея Волынскова, Владимира Калинина и Евгения Ковтунова, вышедшая, минуточку, в 1996(!) году, после открытия исходных кодов, была недавно портирована на Linux программистом из славного украинского города Ривне rembo55.

Исходный код игры, размещённый в открытом доступе занимавшимся собственно программированием движка Doom2D Алексеем Волынсковым сперва на сайте российского разработчика игр Gaijin Entertainment и с тех пор бережно хранимый на форуме Doom2D:forever, был написан преимущественно на C и немного на ассемблере и претерпел следующие изменения при портировании:

  • все ассемблерные функции, кроме обработки музыки, переписаны на C с использованием библиотеки Simple DirectMedia Layer (SDL)
  • полностью переписан код опроса клавиатуры: вместо считывания сканкодов нажатых клавиш используется SDL text input API
  • переписан код, отвечающий за позицию и размер окна обзора игроков в режиме разделённого экрана
  • доработан код выравнивания меню по центру экрана
  • все функции работы с файлами заменены на аналогичные из stdio.h
  • меню переведено на английский
  • изменения в параметрах запуска как из командной строки, так и для указания в конфигурационном файле:
    • добавлены
      • изменение разрешения экрана
      • режим «случайной» музыки
      • указание длительности мелодии
    • ликвидированы
      • указание частоты звука
      • указание порта звуковой карты
      • указание DMA звуковой карты

>>> Загрузить исходный код

>>> Загрузить бинарную сборку

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

 ,

rembo55
()

Статус готовности CLang к сборке ядра Linux

Группа Ядро Linux

В прошлом октябре был анонсирован проект по адаптации LLVM компилятора CLang к сборке ядра Linux. С тех пор прошло более полугода, и на днях разработчики опубликовали свой отчет о проделанной работе.

В целом:

  • Удалось получить работающую сборку ядер 2.6.37 и 2.6.38 (для некоторых конфигураций)
  • KVM и Xen использовать нельзя, причем последний пока даже не компилируется
  • Компилируются примерно 90% драйверов ядра, многие работают
  • Некоторые поставляемые сторонними вендорами драйвера (Broadcom, NVIDIA) работают отлично
  • Можно использовать многопроцессорные конфигурации (правда, только на x86), однако в некоторых случаях они требуют дополнительных усилий по доработке компилируемого кода

Что не работает:

  • Ассемблер для генерации кода реального режима (директивы code16gcc), поэтому, невозможно откомпилировать код начальной загрузки (для этой цели используется gas)
  • GCC-расширения языка C (некоторые работают, некоторые нет)
  • Опции генерации и оптимизации кода: -mregparm, -fcall-saved-reg, __arch_hweight*(), -pg, атрибут no_instrument_function, -fno-optimize-sibling-calls

Несмотря на возникающие трудности, разработчики полны энтузиазма. Свой проект они назвали LLL project, что расшифровывается как LLVM Linux project.

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

 , , license bsd, lll, , , ,

ttnl
()

GNU Scientific Library (GSL) 1.15

Группа GNU's Not Unix

6 мая 2011 года была анонсирована версия 1.15 GNU Scientific Library (GSL) - библиотеки для вычислений в прикладной математике и науке.

GSL является частью проекта GNU и распространяется на условиях GNU GPL.

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

Ознакомиться со списком категорий вычислений можно на википедии или скачав архив с исходными кодами.

В очередной версии, вышедшей через 14 месяцев после предыдущей версии 1.14, появился ряд новых функций, а также были исправлены некоторые ошибки. С подробным списком изменений можно ознакомиться в архиве с исходными кодами или он-лайн в репозитарии GSL на bzr.savannah.gnu.org/lh/gsl/

GSL используется такими проектами как PDL (Perl Data Language), MathGL, PSPP.
Библиотека может оказаться полезной как студентам, аспирантам, преподавателям в учебных и научных целях, так и разработчикам специализированного программного обеспечения.

На странице GSL на gnu.org можно найти информацию о поддерживаемых платформах, руководства, информацию о расширениях и связанных проектах.

>>> Исходный код GSL

>>> Страница GSL на gnu.org

 , , , , , , pdl, pspp,

adriano32
()

GnuCash 2.4.0

Группа Linux General

Вышла новая стабильная версия программы учёта финансов Gnucash предназначенной для частных лиц и малых предприятий. Gnucash является частью проекта GNU и доступна для Linux, FreeBSD, Solaris, Mac OS X и Windows.

Возможности:

  • иерархическая система счетов;
  • разбивка одной транзакции на несколько частей;
  • импорт счетов из Интернет (в формате SWIFT MT940);
  • правка поставленных отчётов;
  • стандартная двойная запись для ведения бухгалтерского учёта;
  • транзакции по расписанию;
  • учёт кредитных платежей;
  • построение отчётов и графиков;
  • поддержка бухгалтерского учёта для малых предприятий;
  • импорт файлов данных из других финансовых систем OFX, QIF;
  • следование большинству рекомендаций GNOME HIG 2.0;
  • и др.


Основные изменения (по сравнению с предыдущей стабильной версией 2.2.9):

  • переход с движка GtkHTML на WebKit;
  • поддержка многопользовательского интерфейса баз данных SQLite3, MySQL, PostgreSQL (в разработке);
  • eguile-отчёты (обработка шаблона отчёта с последующей конвертацией его в код HTML);
  • автоматическое пополнение счёта с проставленной датой;
  • исправление ряда ошибок.

Скачать

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

 , , ,

amorpher
()

Viewnior 1.1

Группа Мультимедиа

Viewnior — это быстрый, лёгкий и простой просмотрщик графических файлов. Интерфейс программы следует руководству Gnome HIG2.

Возможности:

  • поддержка большого количества графических форматов;
  • GIF-анимация;
  • простейшие функции редактирования (вращение, обрезка);
  • навигация и просмотр заранее выбранных изображений;
  • отключаемое сглаживание при увеличении/уменьшении изображения (актуально на слабых компьютерах);
  • режим показа слайдшоу;
  • возможность настройки параметров редактирования изображения на автоматическое сохранение (коэффициенты сжатия JPEG/PNG можно задать вручную);
  • установка изображения в качестве фона рабочего стола;
  • настраиваемые действия мыши.

В новой версии:

  • полная поддержка Drag'n'Drop;
  • автоподгонка размера окна после загрузки изображения;
  • сохранение состояния (в окне/распахнутое) между запусками;
  • режим последнего используемого масштабирования (1:1/подгонка к окну/умный режим);
  • аргумент запуска слайд-шоу (--slideshow);
  • поддержка GNOME 3.0.

Исправления:

  • удаление устаревших API функций gtk+/glib;
  • исправление .desktop файла.

Страница загрузки

Ubuntu PPA

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

 , , , ,

amorpher
()

Практическое использование MySQL++: Часть 5. Работа с различными типами данных

Группа Документация

В этом цикле статей рассматривается библиотека, обеспечивающая взаимодействие приложений, написанных на языке C++, с системой управления базами данных MySQL.

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

 , , ,

IBM_dW
()

Вышла спецификация OpenCL 1.1, позволяющая использовать GPU для параллельных вычислений

Группа Hardware and Drivers

Технологическая группа Khronos объявила о выходе обновлённой версии открытого языка для кросс-платформенных параллельных вычислений OpenCL 1.1.

OpenCL определяет API и расширения языка C для параллельного программирования, предусматривая возможность задействовать для решения задач GPU видеокарт. Спецификация OpenCL 1.1 предоставляет увеличенную производительность и функциональность и является обратно совместимой с предыдущей версией.

Работа по написанию новой версии OpenCL заняла около полутора лет. В работе над стандартом приняло участие более 30 компаний, среди которых: IBM, NVIDIA, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments, Toshiba, Intel, национальная лаборатория Los Alamos, Nokia.

Основные изменения в спецификации:

  • Новые типы данных, включая трёхкомпонентные векторы и дополнительные графические форматы;
  • Обработка команд и буферов с нескольких хостов и на нескольких устройствах одновременно;
  • Операции на регионах буфера, включая чтение, запись и копирование 1D, 2D и 3D прямоугольных регионов;
  • Расширенное использование события для управления потоком исполнения команд;
  • Дополнительные встроенные Си-функции, такие как целочисленный clamp, shuffle и асинхронные разряженные копии;
  • Улучшено взаимодействие с OpenGL путём эффективного взаимного использования изображений и буферов и связывания событий OpenCL и OpenGL.

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

Обзор OpenCL;

>>> Подготовлено по материалам opennet.ru

 , , , ,

confluent_anonymous
()

NetBeans 6.9

Группа Java

Сегодня, 15-го июня, в соответствии с расписанием состоялся выпуск NetBeans 6.9. По сравнению с предыдущей версией, добавлены следующие значительные новшества:

  • OSGi: включен контейнер Felix (есть возможность подключения Equinox); совместимость NetBeans-модулей и OSGi-bundles; поддержка OSGi-проектов для Maven;
  • Платформа NetBeans: генерация инсталляторов для большинства имеющихся платформ; редактор персонализации (branding);
  • JavaFX: включён JavaFX SDK 1.3; поддержка форм в Composer; улучшенные палитры для задания цветов/эффектов/форм; улучшения в рефакторинге и форматировании кода;
  • Java EE: поддержка JCDI (ex-WebBeans; JSR-299), Spring Framework 3.0; перегенерация JPA-сущностей после изменений схемы БД; поддержка REST-вебсервисов для platform-приложений; включены Apache Tomcat 6.0.26 и GlassFish v3 (GlassFish v2 исключен);
  • Java ME: поддержка Java Card™ 3 Connected;
  • Java: группировка точек останова в отладчике, улучшенная навигация по stack trace; поддержка annotation processor'ов в редакторе; улучшения в поддержке апплетов и WebStart-приложений;
  • Веб: автодополнение для id- и class-селекторов в CSS; рефакторинг CSS и HTML-подобных языков;
  • PHP: поддержка Zend Framework; обновленное автоформатирование кода с поддержкой множества правил;
  • Ruby: поддержка Ruby On Rails 3.0;
  • C/C++: улучшенная удаленная отладка/разработка; поддержка модульного тестирования (unit testing);
  • Прочее: проверка орфографии в редакторе; поддержка нескольких серверов типа Kenai.

NetBeansизвестная с 1997 года интегрированная среда разработки, изначально для Java, а впоследствии и для множества других языков (Scala, Groovy, C/C++, Python, PHP, Ruby, Scheme), а также платформа для создания desktop-приложений. Множество приложений, созданных на основе NetBeans Platform, включает в себя промышленные, научные, обучающие приложения, корпоративные информационные системы и приложения в области компьютерного искусства. Выпуск NetBeans 6.9 знаменателен тем, что это первый релиз, состоявшийся под эгидой Oracle. Вопреки пессимистичным прогнозам, NetBeans продолжает выходить четко по расписанию; потерь в динамике развития NetBeans также не наблюдается.

Сообщение о выпуске.

Заметки к выпуску.

Страница загрузки.

>>> Сайт NetBeans

 , , , , , , , ,

Kuka
()

Разрешено использование C++ в GCC

Группа GNU's Not Unix

Вчера в списке рассылки GCC появилось важное сообщение по поводу использования языка программирования C++ при разработке GCC (GNU Compiler Collection, а не сам компилятор языка C).

Марк Митчелл (Mark Mitchell), один из основных разработчиков GCC:

Я рад сообщить, что руководящий комитет GCC и FSF одобрили использование C++ в самом GCC. Конечно, нет никаких причин использовать возможности С++ только потому, что мы умеем это делать. Главная цель - предоставить пользователям более качественные компиляторы, а не кодовую базу на C++ для самих себя.

Перед тем, как мы действительно начнём использовать C++, мы должны определиться с набором правил, которыми нужно будет руководствоваться при использовании C++ для разработки GCC. Я считаю, что для начала мы должны минимизировать список разрешённых возможностей С++, чтобы не подвергать разработчиков GCC, не знакомых с C++, таким резким переменам в основном языке разработки компиляторов. Мы всегда сможем расширить использование С++ позднее, если появится такая необходимость.

На данный момент разработчики ограничиваются стандартом C++98 и использованием типа long long для 64-битных целых чисел. Использование множественного наследования, шаблонов (тех, которые не входят в стандартную библиотеку C++) и исключений, скорее всего, будет запрещено. Это мотивировано тем, что это будет сложно для программистов на C, а также тем, что сами программисты C++ могут с лёгкостью допустить ошибки в таких вещах.

Так как язык C++ достаточно обширен, то Марк Митчелл предложил составить список того, что разрешается использовать, а не того, что использовать нельзя. На данный момент необходимо составить некоторые информационные нормативы, а не очередной стандарт ISO.

Все желающие поучаствовать в разработке нормативов могут связаться с разработчиками GCC. На данный момент предполагается сделать это в виде странички в Wiki.

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

 , , , , ,

MuZHiK-2
()

Релиз smpfilter 0.4

Группа Open Source

Вчера был представлен первый публичный релиз проекта spmfilter. Это универсальный фреймворк для создания почтовых фильтров. Механизмы для фильтрования реализованы в виде плагинов. Spmfilter написан на языке C, что обеспечивает высокою скорость работы.

Основные возможности:

  • Собственный SMTP движок.
  • Поддержка плагинов.
  • Слежение за состоянием и работой плагинов. В случае ошибки, плагин будет запущен заново (добавлено в 0.4).
  • API для парсинга заголовков и сообщений.
  • Интерфейс для взаимодействия с базами данных. Поддерживаются PostgreSQL, MySQL, SQLite, BerkleyDB и LDAP (добавлено в 0.4).

Изменения в новой версии:

  • Замена autotools на cmake
  • Интерфейс взаимодействия с базами данных
  • Слежение за плагинами
  • Поддержка IPv6
  • Поддержка TLS
  • Новые функции для создания MIME сообщений

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

 , , , ,

Deleted
()

Релиз почтового клиента Notmuch

Группа Open Source

Сегодня вышел первый экспериментальный релиз почтового клиента Notmuch. Это не совсем обычный почтовый клиент, а система для индексирования, поиска, чтения и расстановки тегов большого количества электронной корреспонденции. Для обеспечения быстрого полнотекстового поиска используется библиотека Xapian. Поддерживаемые форматы: mh и mailbox.

Notmuch включает в себя библиотеку libnotmuch (написана на C), CLI и основанный на emacs интерфейс. В будущем возможно появление GUI.

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

 , , ,

Deleted
()

Создание интерфейса между программами на С/С++ и скриптовыми языками при помощи SWIG

Группа Документация

Сегодня языки сценариев пользуются большой популярностью. В этой статье мы не будем рассуждать о причинах данного явления, так как достоинства интерпретируемых языков вполне очевидны. Вместо этого поговорим об их недостатках, точнее – об устранении этих недостатков. Как известно, скрипты выполняются значительно медленнее откомпилированных программ, что вполне естественно. Можно пытаться писать быстрые интерпретаторы, но вряд ли когда-нибудь удастся получить сравнимую скорость. Кроме того, из языков сценариев сложно получить доступ к оборудованию, для этого необходимы специальные расширения (драйверы). О написании подобных расширений и пойдет речь в нашей статье. Писать их мы будем на С; кроме того, нам понадобится SWIG.

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

 ,

IBM_dW
()

Библиотека yXML версия 1.1

Группа Open Source

Вчера вышла улучшенная версия небольшой открытой библиотеки yXML для работы с простыми XML-данными. yXML открыт по модифицированной лицензией BSD (GPL-совместима) и его исходник составляет всего около 300 строк на C. Очень прост в использовании. По сравнению с версией 1.0 произошли следующие изменения:

  • Улучшенная совместимость со стандартным XML (поддерживаем <?..> и <!..>, но пропускаем)
  • Поддержка простых текстовых значений внутри тегов (<tag>test</tag>)
  • Добавлена возможность прочитать целиком сразу файл с xml
  • Добавлены функции для поиска тегов и атрибутов по имени

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

 , , , ,

mrhx
()