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; X & NBSP; та операційні системи

Що нового У цьому випуску :.

  • Виправлені помилки:
  • старий GC ніколи не збирали циклів правильно. Фіксований, але це може призвести до регресії продуктивності. Однак, ви можете відключити колектор циклу з GC_disableMarkAndSweep і запустити його в явному вигляді у відповідний час або не на всіх. Існує також новий ЦК можна активувати з --gc :. MarkAndSweep, які не мають цієї проблеми, але повільніше, загалом, і не має ніяких гарантій реального часу
  • , поданих за плаваючих типів тепер робить bitcast, як зазначено в керівництві. Це порушує код, який помилково використовує литий для перетворення різних значень з плаваючою крапкою.
  • продуктивність SCGI модуля була значно поліпшена, це більше не блокуватиме на багатьох одночасних запитів.
  • У загальній складності встановлені понад 70 питань GitHub і об'єднані більше 60 висувними запитів.
  • Бібліотека доповнення:
  • Існує нова експериментальна марка і зачистка GC, які можуть бути швидше (або повільніше), ніж GC за замовчуванням. Дозволено з --gc :. MarkAndSweep
  • Додана system.onRaise для підтримки системи умов.
  • Додана system.locals, що забезпечує доступ до місцевих жителів Proc-х років.
  • Додана macros.quote для АСТ квазі-цитування.
  • Додана system.unsafeNew для підтримки Hacky змінних об'єктів довжини.
  • system.fields та підтримка system.fieldPairs об'єкт занадто; вони використовували тільки підтримку наборів.
  • Додана system.CurrentSourcePath повернення файлової системи повний шлях від вихідного файлу.
  • модуль макроси тепер містить безліч корисних помічників для створення абстрактних синтаксичних дерев.
  • Зміни, що впливають на зворотну сумісність:
  • Розділений ключове слово зараз.
  • Застарілі sockets.recvLine і asyncio.recvLine, додав READLINE замість цього.
  • спосіб вдавлення здійснюється в парсер істотно змінилася. Тим не менш, це впливає дуже мало (якщо такі є) реального світу коду.
  • об'єднання вираз / заяву було реалізовано. Знову ж таки, це впливає тільки на крайніх випадків не відомо ні реального світу коду.
  • Змінено асинхронний інтерфейс модуля SCGI.
  • WideStrings тепер збір сміття, як і інші типи рядків.
  • Compiler доповнення:
  • Команда doc2 не генерує вихід для всього проекту більше. Використовуйте нову --project перемикач, щоб включити цю поведінку.
  • компілятор може видавати попередження, про тіньові локальних змінних. Тим не менш, це повинно бути включено явно за допомогою --warning [ShadowIdent] :. На
  • компілятор тепер підтримує майже всі Прагма у поштовху Прагма.
  • Загальні перетворювачі були виконані.
  • Додана високо експериментальної noforward Прагма дозволяє спеціальний режим компіляції, що в значній мірі усуває необхідність випереджаючого опису.
  • Мова доповнення:
  • CASE вираження в даний час підтримуються.
  • Таблиця конструктори тепер імітувати більш тісно синтаксис випадку заява.
  • Німрод тепер можуть вивести повертається тип пуття від його тіла.
  • Додана підмішати заяву впливати на символ обов'язкових правил в дженериків.
  • був доданий відстеження виключень і команда doc2 коментує можливі винятки для вас.
  • Користувальницькі ефекти (і Quot; теги і Quot;). Був доданий відстеження та команда doc2 коментує можливі теги для вас
  • Типи можуть бути нанесені з новим синтаксисом НЕ нуль явно стверджувати, що нуль не допускається. Проте в даний час компілятор не виконує ніяких розширений статична перевірка для цього; Зараз це просто для документування.
  • Експорт заяву було додано до мови: він може бути використаний для пересилання символу, так клієнтські модулі не повинні імпортувати залежностей модуля явно
  • .
  • Перевантаження на основі транзакційних терміналів була виконана.
  • Дженерики тепер підтримується для мульти методів.
  • Предмети можуть бути ініціалізовані за допомогою виразу конструктора об'єкта.
  • Існує нова синтаксичної конструкції (;), які об'єднують вираження і висловлювання
  • .
  • Тепер Ви можете використовувати від модуля імпорту нуль, якщо ви хочете імпортувати модуль, але хочете забезпечити повне доступ до всіх символ в модулі.

Що нового у версії 0.8.14 :.

  • Виправлена ​​серйозна пошкодження пам'яті про передачею повідомлень
  • Виправлена ​​серйозна помилка щодо різних інстанціацій загального Proc.
  • Виправлена ​​нововведених помилка, при якій неправильно EIO виключення було порушено в кінці файлу для текстових файлів, які не закінчуються символом нового рядка.
  • Виправлення c2nim, c2pas: --out варіант ніколи не працював належним чином
  • .
  • Виправлення :. Експедиція загальних Проком ніколи не працював
  • Ще кілька виправлень для макросів і під час компіляції оцінки.
  • GC тепер враховує внутрішні покажчики на стек які можуть бути введені в агресивних З оптимізаторів.
  • рідної розподільник Нимрода / GC тепер працює на PowerPC.
  • Багато інших виправлень і доповнень :. Занадто багато, щоб перерахувати їх все

Що нового у версії 0.8.6:

  • Виправлені помилки:
  • прагм натякнути [X]: вимкнено та попередження [X]: вимкнено в даний час працюють
  • .
  • Метод синтаксис виклику для ітераторів знову працює (для х в lines.split ()).
  • Виправлена ​​помилка в RemoveDir для POSIX, що призведе до нескінченної рекурсії.
  • Тепер компілятор перевіряє, що модуль імена є допустимими ідентифікаторами.
  • Порожні шаблони для dynlib директиви, тепер це можливо.
  • os.parseCmdLine повернувся неправильні результати для кінцевих пробілів.
  • непослідовних використання кортеж (використовуючи той же кортеж з і без названих полів) не завалиться генератор коду більше.
  • краще повідомлення про помилку за умови, коли завантаження пуття в динамічній Lib не вдається.
  • Додатки:
  • Додана system.contains для відкритих масивів.
  • модуль PEG тепер підтримує пошук оператора циклу @.
  • Граматика / аналізатор: SAD | 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.
  • Додатки:
  • Реалізовані мульти-методи.
  • Тепер компілятор визначає кількість доступних процесорів і виконує компілятор C одночасно. Це може бути скоригована на --parallel_build :. Вимикача колічество_процессоров командного рядка
  • на основі ПЕГ шаблоном за допомогою модуля кілочки.
  • Додана system.definedInScope.
  • Додана system.accumulateResult.
  • Додана os.walkDirRec.
  • Додана osproc.countProcessors.
  • Додана osproc.execProcesses.
  • система конфігурації тепер підтримує $ cc.options.linker.
  • Об'єднаний вираз і typeDesc в граматиці / аналізатором :. Це дозволить анонімних Проком без лямбда
  • Багато сценарії не мають ніякої потреби в GC: нова --gc: ключ командного рядка ніхто не може бути використаний, щоб виключити GC з виконуваного
  • .
  • Зміни, що стосуються зворотної сумісності:
  • Беручи адреса об'єкта дискримінанту тепер недійсними.
  • Передача пуття в Proc Var допускається тільки для Проком із позначкою 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] і масив [символ, T] повинні працювати зараз
  • Додатки:
  • реалізовані універсальні типи і двофазний символ підстановки в загальних процедур

  • Тепер
  • Параметри шаблонів можуть бути речові типи
  • реалізовані узагальнені сировини рядкові літерали: Ідентифікація та 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:

  • установка на вікна повинні працювати зараз, якщо каталог містить простору
  • Генератор документації тепер тільки штукатурок коментарі документація
  • `` `` дозволено для операторів, як сказано в керівництві
  • в рідкісних випадках, перевірка індексу була оптимізована в сторону, хоча це було б необхідно
  • Виправлені деякі помилки для типів кортежів
  • Додана `` 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`` пуття
  • послідовності, тепер необхідно побудувати з `` @ `` оператора. Це призводить до менш неясностей.
  • компілятор тепер використовує менше пам'яті і працює набагато швидше
  • GC працює набагато швидше
  • нові прив'язки: Zlib, SDL, Xlib, OpenGL, ODBC, Lua
  • згенерований код Сі набагато швидше оптимізувати з GCC
  • нові бібліотеки: потоки, zipfiles
  • компілятор Німрод був портований на FreeBSD: він повинен працювати на інших BSD занадто

Вимоги

  • Python

Схожі програми

CURSEL
CURSEL

3 Jun 15

GNU Octave
GNU Octave

22 Jun 18

Project Fortress
Project Fortress

2 Jun 15

bin86
bin86

3 Jun 15

Nimrod

Коментар не знайдено
додати коментар
Включіть картинки!