Nimrod

Скриншот программы:
Nimrod
Детали программы:
Версия: 0.9.2
Дата загрузки: 20 Feb 15
Разработчик: Andreas Rumpf
Тип распространения: Бесплатная
Популярность: 16

Rating: nan/5 (Total Votes: 0)

Нимрод является открытым исходным кодом, свободный, статически типизированных, императивный язык программирования, предназначенный для поддержки процедурный, объектно-ориентированный, родовые и функциональные стили программирования, оставаясь эффективным и простым.
Нимродом способен синтаксического дерева (AST) как часть спецификации, что позволяет мощной системе макросов, которые могут быть использованы для создания конкретных языков домена. А черты, унаследованные от Lisp.
Функции программного обеспечения родной генерацию кода, сбор мусора, нулевой накладные итераторы пользователем defineable операторов, высокие типы данных на уровне компиляции, оценки Время, вперед Совместимость, GTK2, Windows API, привязки POSIX API, а plugable системы синтаксического анализатора, генератор документации, и Паскаль Нимроду утилита преобразования.
Нимрод является портативным, что означает, что она может работать на Linux, BSD, Mac OS и NBSP; Х & NBSP; и операционные системы

Что нового В этом выпуске:.

  • Исправления:
  • Старая ГК не собраны циклы правильно. Фиксированный но это может вызвать регрессию производительности. Однако вы можете отключить коллектор цикла с GC_disableMarkAndSweep и запустить его в явном виде в соответствующее время или не на всех. Существует также новый ГК можно активировать с --gc:. MarkAndSweep которые не имеют эту проблему, но медленнее, в целом, и не имеет никаких гарантий реального времени
  • , поданных за плавающих типов в настоящее время делает bitcast, как указано в руководстве. Это код, который ломает ошибочно использует приведение для преобразования различных значений с плавающей запятой.
  • производительность SCGI модуля была значительно улучшена, это больше не будет блокировать на многих одновременных запросов.
  • В общей сложности фиксированной более 70 вопросов GitHub и объединены более 60 выдвижными запросов.
  • Библиотека дополнения:
  • Существует новая экспериментальная марка и развертки GC, которые могут быть быстрее (или медленнее), чем GC по умолчанию. Включить с --gc:. MarkAndSweep
  • Добавлена ​​system.onRaise для поддержки системы состояние.
  • Добавлена ​​system.locals, что обеспечивает доступ к местным жителям прока в.
  • Добавлена ​​macros.quote для АСТ квази-цитирования.
  • Добавлена ​​поддержка system.unsafeNew в Hacky переменной длины объектов.
  • system.fields и поддержка system.fieldPairs объект слишком; они использовали только поддержку наборов.
  • Добавлена ​​system.CurrentSourcePath возвращения файловой системы полный путь от исходного файла.
  • модуль макросы теперь содержит множество полезных помощников для создания абстрактных синтаксических деревьев.
  • Изменения, влияющие на обратную совместимость:
  • поделился это ключевое слово в настоящее время.
  • Устаревшее sockets.recvLine и asyncio.recvLine, добавил ReadLine вместо этого.
  • Путь отступы обрабатываются в парсер значительно изменилась. Тем не менее, это влияет очень мало (если таковые имеются) реального мира кода.
  • Объединение выражение / заявление были реализованы. Опять же, это влияет только на крайние случаи и не известный реальный мир код.
  • Изменен асинхронный интерфейс модуля SCGI.
  • WideStrings теперь сбор мусора, как и другие типы строк.
  • Compiler дополнения:
  • Команда doc2 не генерирует выход для всего проекта больше. Используйте новую --project переключатель, чтобы включить это поведение.
  • компилятор теперь может предупредить о затененных локальных переменных. Тем не менее, это должно быть включено явно с помощью --warning [ShadowIdent]:. На
  • компилятор поддерживает почти каждый прагму в толчке прагме.
  • Общие преобразователи были реализованы.
  • Добавлена ​​весьма экспериментальный noforward прагму позволяет специальный режим компиляции, что в значительной степени устраняет необходимость в прямой деклараций.
  • Язык дополнения:
  • кейс выражения теперь поддерживается.
  • Таблица конструкторы в настоящее время подражать более внимательно синтаксис случае заявление.
  • Нимрод теперь могут вывести возвращаемый тип прока от его тела.
  • Добавлена ​​подмешать заявление, чтобы влиять символ обязательных правил в дженериков.
  • был добавлен отслеживания исключений и команда doc2 комментирует возможные исключения для вас.
  • Пользовательские эффекты (и Quot; теги и Quot;). был добавлен отслеживания и команда doc2 комментирует возможные теги для вас
  • Типы могут быть нанесены с новым синтаксисом не ноль явно утверждать, что ноль не допускается. Однако в настоящее время компилятор не выполняет расширенный статическая проверка для этого; сейчас это просто для документирования.
  • на экспорт заявление было добавлено к языку: Он может быть использован для пересылки символа так клиентские модули не должны импортировать модуль зависимостей явно,
  • .
  • Перегрузка на основе транзакционных был реализован.
  • Дженерики теперь поддерживается для мульти методов.
  • Объекты могут быть инициализированы с помощью выражения конструктора объекта.
  • Существует новая синтаксической конструкции (;) объединительные выражения и высказывания
  • .
  • Теперь Вы можете использовать с модулем импорта ноль, если вы хотите, чтобы импортировать модуль, но хотите, чтобы обеспечивать полное доступ к каждому символу в модуле.

Что нового в версии 0.8.14:.

  • Исправлена ​​серьезная коррупции памяти о прохождении сообщение
  • Исправлена ​​серьезная ошибка в отношении различных инстанциацию общего Proc.
  • Исправлена ​​ошибка вновь вводимых, где не так EIO исключение было возбуждено в конце файла для текстовых файлов, которые не заканчиваются символом новой строки.
  • Исправление c2nim, c2pas: The --out вариант никогда не работал должным образом
  • .
  • Исправление:. экспедирование общих проками никогда не работал
  • Еще несколько исправлений для макросов и время компиляции оценки.
  • ГХ теперь учитывает внутренние указатели на стек которые могут быть введены с помощью агрессивных С оптимизаторов.
  • родной распределитель Нимрода / GC теперь работает на PowerPC.
  • Много других исправлений на:. Слишком много, чтобы перечислить их все

Что нового в версии 0.8.6:

  • Исправления:
  • прагм намекнуть [X]: OFF и предупреждение [X]: в настоящее время работают с
  • .
  • Метод синтаксис вызова для итераторов снова работает (для х в lines.split ()).
  • Исправлена ​​опечатка в RemoveDir для POSIX, что приведет к бесконечной рекурсии.
  • Теперь компилятор проверяет, что модуль имена являются допустимыми идентификаторами.
  • Пустые шаблоны для dynlib прагме теперь возможно.
  • os.parseCmdLine вернулся неправильные результаты для конечных пробелов.
  • непоследовательного использования кортеж (используя тот же кортеж с и без названных областях) не врезаться генератор кода больше.
  • Лучше сообщение об ошибке обеспечивается, когда загрузка прока в динамичной Lib не удается.
  • Дополнения:
  • Добавлена ​​system.contains для открытых массивов.
  • Модуль ПЭГ теперь поддерживает поиск оператора цикла @.
  • Грамматика / анализатор: САД | IND допускается перед любым видом закрывающая скобка. Это позволяет более гибко исходного кода форматирования.
  • Теперь компилятор использует таблицу связывания для символа поиска в контексте привязки. (См manual.html шаблоны # для деталей).
  • Отменить & Quot; & Quot; & Quot; мой длинный комментарий и Quot; & Quot; & Quot; теперь оптимизированы прочь.
  • Новые --floatChecks: On | Off переключатели и директив для лучшего отладки операций с плавающей запятой. (См manual.html # предопределенных-операций с плавающей запятой типы для деталей).
  • Руководство была улучшена. (Большое спасибо Филиппу Lhoste!)
  • Изменения, влияющие на обратную совместимость:
  • Компилятор не пропустить, связывающей шаг больше, даже если файл не изменился.
  • os.splitFile (& Quot; .xyz & Quot;) теперь возвращает (и Quot; & Quot ;, & Quot; .xyz & Quot ;, & Quot; & Quot;) вместо (& Quot; & Quot ;, & Quot; & Quot ;, & Quot; .xyz & Quot; ). Имена файлов, начинающиеся с точки, обрабатывается по-разному.
  • strutils.split (S: строка, SEPS: установите [символ]) никогда не дает пустую строку больше. Такое поведение, вероятно, более подходит для пробела расщепления.
  • Теперь компилятор останавливается после включения --version командной строки.
  • удалена поддержка для наследования перечисления в парсер; наследование перечисление никогда не были задокументированы в любом случае.
  • Поле MSG из system.E_base теперь имеет тип строка, вместо CString. Это повышает безопасность памяти.

Что нового в версии 0.8.2:

  • Исправления:
  • Передача --hint [X]: выключен или --warning [X]:. от, как аргументы командной строки для компилятора теперь работает
  • Параметры по умолчанию для шаблонов в настоящее время работают.
  • Исправлена ​​проблема безопасности в system.copy.
  • Строка дело без другого, генерируемыми неверный код.
  • Различные исправления для модуля osproc; теперь он работает на Windows.
  • Дополнения:
  • Реализованные мульти-методы.
  • Теперь компилятор определяет количество доступных процессоров и выполняет компилятор С одновременно. Это может быть скорректирована на --parallel_build:. Выключателя количество_процессоров командной строки
  • на основе ПЭГ шаблону с помощью модуля колышки.
  • Добавлена ​​system.definedInScope.
  • Добавлена ​​system.accumulateResult.
  • Добавлена ​​os.walkDirRec.
  • Добавлена ​​osproc.countProcessors.
  • Добавлена ​​osproc.execProcesses.
  • Система конфигурации теперь поддерживает $ cc.options.linker.
  • Объединенный выражение и typeDesc в гимназии / анализатором:. это позволит анонимных проками без лямбда
  • Многие скрипты не имеют никакой потребности в GC: Новый --gc: ключ командной строки никто не может быть использован, чтобы исключить GC из исполняемого
  • .
  • Изменения, касающиеся обратной совместимости:
  • Принимая адрес объекта дискриминанта теперь недействительными.
  • Передача прок в Proc вар допускается только проками со значком procvar или вызовах! = nimcall. Для теперь это только вызывает предупреждение, но это превратится в ошибке в ближайшее время.
  • система. & и system.add теперь получают openArray вместо параметров след.
  • Удалено strutils.findSubStr и strutils.findChars. Они были устаревшими для 3 версии.
  • Модуль Unicode использует особый тип для TRune.
  • Устаревшее strutils.toString: использовать вместо $
  • .
  • Устаревшее os.splitPath:. Использование os.splitPath, что возвращает кортеж вместо
  • Устаревшее os.extractDir:. использовать SplitFile (путь) .dir вместо
  • Устаревшее os.splitFilename: вместо этого использовать SplitFile
  • .
  • Устаревшее os.extractFileExt: вместо этого использовать SplitFile
  • .
  • Устаревшее os.extractFileTrunk: вместо этого использовать SplitFile
  • .
  • Устаревшее os.appendFileExt: вместо этого использовать os.addFileExt
  • .
  • Устаревшее os.executeShellCommand: вместо этого использовать os.execShellCmd
  • .
  • Устаревшее os.iterOverEnvironment:. Использование os.envPairs вместо
  • Устаревшие parseopt.init: вместо этого использовать parseopt.initOptParser
  • .
  • Устаревшее parseopt.getRestOfCommandLine: вместо этого использовать parseopt.cmdLineRest
  • .
  • Устаревшее os.pcDirectory: вместо этого использовать os.pcDir
  • .
  • Устаревшее os.pcLinkToDirectory: вместо этого использовать os.pcLinkToDir
  • .
  • Устаревшее osproc.executeProcess: вместо этого использовать osproc.execProcess
  • .
  • Устаревшее osproc.executeCommand: вместо этого использовать osproc.execCmd
  • .

Что нового в версии 0.8.0:

  • Исправления:
  • Исправлена ​​небольшая ошибка, приводившая компилятор не сообщать неиспользуемые перегруженных символов
  • Исправлена ​​небольшая ошибка в отношении символом перегрузки
  • Исправлена ​​опечатка: это и Quot; неоднозначно и Quot ;, & Quot не; ambigious & Quot; ; -)
  • компилятор распознает, рекурсивный включить файлы
  • system.card должны работать снова
  • предметы для множества [Char] и [Char массива, Т] должно работать
  • Дополнения:
  • , реализованные общие типы и двухфазный символ подстановки в общих процедур

  • Теперь
  • Параметры шаблона могут быть вещественные типы
  • реализованы обобщенные сырья строковые литералы: идент & Quot; ABC & Quot; это ярлык для идент (г & Quot; ABC & Quot;)
  • перегружать итераторы разрешения отделены от проками; итераторы теперь могут иметь то же имя + подпись как проками
  • символ подстановки в шаблонах могут быть затронуты новым ключевым словом привязки
  • компилятор в настоящее время принимает --no_main переключатель для лучшего взаимодействия ссылками с другими компилируемых языков
  • реализованы кортеж распаковки в уаг разделах
  • генератор кода излучает умолчанию: __assume (0); для Visual C ++ (для оптимизации)
  • компилятор теперь проверяет, если прок есть побочные эффекты; прок, объявленные не имеют побочных эффектов, отвергаются, если компилятор не может проверить это
  • оператор в формате strutils.% теперь поддерживает # $ для автоматического подсчета аргумент
  • реализованы strutils.join
  • Изменения, касающиеся обратной совместимости:
  • двухфазный поиск символов выполняется в общих процедур
  • связываются теперь зарезервированное слово; Исключение не зарезервированное слово больше
  • абстрактные типы были переименованы в различных типов; Таким образом, отличие в настоящее время является зарезервированным словом; абстрактный нет зарезервированное слово больше
  • system.openFile устаревшим: использование system.open вместо
  • system.closeFile устаревшим: использование system.close вместо
  • strutils.replaceStr устаревшим: использование strutils.replace вместо
  • strutils.deleteStr устаревшим: использование strutils.delete вместо
  • strutils.splitSeq устаревшим: использование strutils.split вместо
  • strutils.splitLinesSeq устаревшим: использование strutils.splitLines вместо
  • strutils.parseFloat не принимает дополнительный параметр запуска больше
  • Документация
  • руководство была улучшена

Что нового в версии 0.7.6:

  • Исправления:
  • установка на Windows Vista может теперь работают из коробки; попробуйте!
  • Исправлена ​​ошибка, хранились и Quot; рекурсивные модули & Quot; Пример из работы
  • смешивания названные и неназванные параметры в вызове процедуры в настоящее время работает
  • восьмеричные числа с префиксом 0 ° теперь правильно поддерживаются
  • перечисления, теперь могут начать с отрицательных значений
  • ParseInt, ParseBiggestInt настоящее исключение, если строка не заканчивается после анализируется количество
  • компилятор обрабатывает заявления в настоящее время на высшем уровне правильно
  • генерируется nimcache каталог никогда не заканчивается в косой
  • CreateDir теперь работает для глобальных каталогов под UNIX (и Quot; / некоторый_путь / здесь и Quot;)
  • компилятор в настоящее время выполняет исполняемый файл с ведущим и Quot; ./& Quot; под UNIX
  • компилятор поддерживает постоянные массивы указателей процедуры
  • Элиф в случае заявления в настоящее время работает
  • итераторы, использующие открытый параметр массива в настоящее время работают
  • Исправлена ​​ошибка, когда в некоторых контекстах $ MyEnum не работает

Что нового в версии 0.7.4:

  • установка на Windows, должно работать, если каталог содержит пространства
  • генератор документация в настоящее время только штукатурок комментарии документация
  • `` `` допускается для операторов, как руководство говорит
  • в редких случаях, проверка индекса была оптимизирована прочь, хотя это было бы необходимо
  • несколько исправлений для типов кортежей
  • добавили `` unicode`` модуль для UTF-8 обработки
  • добавил Hostos и hostCPU магию на `` system`` модуля
  • system.echo теперь принимает несколько аргументов
  • добавил оптимизации: в некоторых случаях встраивание итераторов в настоящее время производит существенно лучший код
  • добавил вся программа мертвым устранение код
  • магия `` `оператор в настоящее время работает для перечислений
  • в `` const`` разделах расширенный времени компиляции оценка делается
  • переименован `` in_Operator`` в `` contains``: `` in`` теперь это шаблон, который преобразуется в `` contains``
  • изменились `` strutils.quoteIfSpaceExists`` в `` strutils.quoteIfContainsWhite``
  • анализатор теперь гораздо более требователен пропавших без вести запятыми, и т.д. Если это влияет на ваш код слишком много, попробуйте запустить ваш код через довольно принтера.
  • `` macros`` API больше не часть `` system`` модуля, чтобы использовать эту API теперь у вас есть, чтобы импортировать `` macros`` модуль
  • добавил учебник

Что нового в версии 0.7.2:

  • Это Исправление релизе. Это самый важный исправление, что Нимрод теперь работает снова на AMD64 (x86_64) процессоров.
  • Нет новых функций были реализованы.

Что нового в версии 0.7.0:

  • различные исправления, слишком много, чтобы перечислить их здесь
  • установка для систем UNIX, основанных не зависит от Python больше
  • `` koch.py`` сценарий в настоящее время работает с более старыми версиями Python (в том числе 1.5.2)
  • изменились целые Операции и преобразования правила
  • добавил `` GC_ref`` и `` GC_unref`` срабатывании
  • последовательности теперь нужно быть построены с `` `` @ оператора. Это приводит к менее неясностей.
  • компилятор теперь использует меньше памяти и намного быстрее,
  • ГХ теперь гораздо быстрее,
  • новые привязки: Zlib, SDL, Xlib, OpenGL, ODBC Lua
  • сгенерированный код на С гораздо быстрее оптимизировать с GCC
  • новые библиотеки: потоки, zipfiles
  • компилятор Нимрод был портирован на FreeBSD: он должен работать на другой BSD слишком

Требования

  • Python

Похожие программы

Flexc++
Flexc++

14 Apr 15

Bocfel
Bocfel

17 Feb 15

SWIG
SWIG

7 Mar 16

pyPEG
pyPEG

14 Apr 15

Комментарии к Nimrod

Комментарии не найдены
добавить комментарий
Включите картинки!