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 система анализатор, генератор документация, и на Pascal да Нимрод преобразуване полезност.
Нимрод е преносим, ​​което означава, че тя може да работи с Linux, BSD, Mac OS & Nbsp; X & Nbsp; и Windows операционни системи

Какво ново в тази версия:.

  • Фиксирани бъгове:
  • Старата GC не са събрани цикли правилно. Фиксирана но тя може да предизвика регресии представяне. Въпреки това можете да деактивирате колектора цикъл с GC_disableMarkAndSweep и да го ползвате изрично в подходящо време или изобщо. Има и нова GC можете да активирате с --gc:. MarkAndSweep която няма този проблем, но е по-бавен като цяло и няма реално време гаранции
  • гласове за плаващи видове точкови сега върши bitcast, както е посочено в инструкцията. Това разбива код, който погрешно използва кастинг на различни стойности с плаваща запетая.
  • работоспособност SCGI модула е подобрена значително, той вече няма да блокират много едновременни заявки.
  • В общата фиксирана над 70 въпроси GitHub и слива над 60 привличащи искания.
  • Библиотека Допълнения:
  • Има нова експериментална марка & почистване GC която може да бъде по-бързо (или много по-бавно), отколкото GC по подразбиране. Активиране с --gc:. MarkAndSweep
  • Добавено system.onRaise да подкрепи системата състояние.
  • Добавени system.locals, която осигурява достъп до местните жители на PROC си.
  • Добавена macros.quote за AST квази-цитирайки.
  • Добавено system.unsafeNew да подкрепят бъде организирано предмети с различна дължина.
  • system.fields и system.fieldPairs подкрепа обект прекалено; те да се използват само кортежи подкрепа.
  • Добавено system.CurrentSourcePath връщането на пълния път файлова система на текущия файл източник.
  • Модулът за макроси сега съдържа много полезни помощници за изграждане на абстрактен синтаксис дървета.
  • Промени, засягащи обратна съвместимост:
  • споделено е ключовата дума сега.
  • Отхвърлена sockets.recvLine и asyncio.recvLine, добави Readline вместо.
  • начин вдлъбнатината The се борави в парсера се променили значително. Все пак, това се отразява много малко (ако има такива) реалния свят код.
  • обединението на изразяване / декларация е изпълнена. Отново това засяга само случаите ръбове, без известния световен код.
  • променен интерфейс асинхронен на модула scgi.
  • WideStrings сега боклук събрани подобно на други видове струнни.
  • Compiler Допълнения:
  • Командата doc2 не генерира изход за целия проект вече. Използвайте новият --project превключвател за активиране на това поведение.
  • Компилаторът сега може да предупреди за засенчени локални променливи. Все пак, това трябва да бъде включено изрично чрез --warning [ShadowIdent]:. На
  • Компилаторът вече поддържа почти всеки Pragma в пуш Pragma.
  • Общи преобразуватели са били изпълнени.
  • Добавена силно експериментална noforward Pragma позволява специален режим компилация, която до голяма степен елиминира нуждата от форуърдни декларации.
  • Език Допълнения:
  • Case изрази вече се поддържат.
  • Table конструктори сега имитират по-тясно синтаксиса на отчета за случая.
  • Нимрод може да се направи извод, сега типа връщане на Proc от тялото му.
  • Добавена Mixin декларация да повлияе символ задължителни правила в генеричните лекарства.
  • Exception проследяване е добавен и командата doc2 надпише възможни изключения за вас.
  • Потребителски дефинирани ефекти (& quot; тагове & quot;). Проследяване е било добавено и командата doc2 надпише възможни тагове за вас
  • Видове може да бъде обяснена с новата не нулева изрично да се посочи, че при липса на синтаксис не е позволено. Въпреки това в момента компилаторът не извършва напреднали статична проверка за това; За момента това е само за целите на документацията.
  • В изявление на износа е бил добавен към езика: Може да се използва за символ спедиция така клиентски модули не трябва да внасят зависимости на модула изрично
  • .
  • претоварване на базата на ASTs е изпълнена.
  • Generics вече се поддържат в продължение на няколко методи.
  • Обектите могат да се инициализира чрез изразяване на обект конструктор.
  • Има нов синтактична конструкция (;) обединяващи изрази и твърдения
  • .
  • Вече можете да използвате от модул внос нула, ако искате да импортирате модула, но искат да наложат напълно квалифициран достъп до всеки символ в модул.

Какво ново във версия 0.8.14:.

  • Фиксирана сериозна корупция памет относно съобщение минаваща
  • Фиксирана сериозен бъг относно различни инстанцирания на родово Proc.
  • Фиксирана нововъведена бъг, при грешна EIO изключение беше повдигнат за края на файла за текстови файлове, които не завършват с нов ред.
  • Bugfix c2nim, c2pas: на --out вариант никога не е работил правилно
  • .
  • Bugfix:. Изпращане на генерични PROCs никога не е работил
  • Още няколко фиксирани бъга за макроси и време на компилация оценка.
  • ОС сега да се вземат предвид вътрешните насоки за стека, които могат да бъдат въведени от агресивни C оптимизатори.
  • родния разпределител Нимрод е / GC сега работи върху PowerPC.
  • Много други поправки на грешки:. Твърде много, за да се изброят всички тях

Какво ново във версия 0.8.6:

  • Фиксирани бъгове:
  • На pragmas намекват [X]: изключване и предупреждение [X]: Тръгвам работи
  • .
  • Метод синтаксис покана за итератори работи отново (за х в lines.split ()).
  • Фиксирана правописна грешка в removeDir за POSIX, че да доведе до безкрайна рекурсия.
  • Компилаторът сега проверява този модул имена на файлове са валидни идентификатори.
  • Празни модели за dynlib Pragma сега са възможни.
  • os.parseCmdLine връща грешни резултати за празното пространство в края.
  • непоследователен ползване кортеж (използвайки същия кортеж с и без именувани области) не се блъсне генератора на код вече.
  • A-добро съобщение за грешка, се предоставя, когато натоварването на Proc в един динамичен и либералните провали.
  • Допълнения:
  • Добавени system.contains за открити масиви.
  • The PEG модул вече поддържа търсене оператор линия @ The.
  • Grammar / анализатор: SAD | IND се допуска, преди всякакъв вид затваряне скоба. Това дава възможност за по-гъвкаво изходния код форматиране.
  • Компилаторът сега използва таблица се свързват за символ справка в рамките контекст капан. (Виж manual.html # шаблони за подробности.)
  • изхвърли & quot; & quot; & quot; отдавна ми коментар & quot; & quot; & quot; сега е оптимизиран далеч.
  • Нови --floatChecks: за | ключове и pragmas за по-добро отстраняване на грешки на операции с плаваща запетая. (Виж manual.html # предварително дефинирани с плаваща запетая типове за подробности.)
  • Наръчникът е подобрен. (Много благодаря на Philippe Lhoste!)
  • Промени, засягащи обратна съвместимост:
  • Компилаторът не пропуснете стъпката на свързване на вече дори не файла се промени.
  • os.splitFile (& quot; .xyz & quot;) сега се връща (& quot; & quot ;, & quot; .xyz & quot ;, & quot; & quot;) вместо (& quot; & quot ;, & quot; & quot ;, & quot; .xyz & quot; ). Имената на файловете, като се започва с точка, се обработват по различен начин.
  • strutils.split (ите: низ, SEPS: задайте [Чар]) никога не се получава празен низ вече. Това поведение е може би по-подходящо за празно разделяне.
  • Компилаторът сега спира след преминаването линия на --version команда.
  • Премахната поддръжка на ENUM наследство в парсера; ENUM наследство Не е документирано, така или иначе.
  • областта на MSG от system.E_base има сега низа тип, вместо CString. Това подобрява безопасността на паметта.

Какво ново във версия 0.8.2:

  • Фиксирани бъгове:
  • Минавайки --hint [X]: разстояние или --warning [X]:. С успех и на командния ред аргументи на компилатора сега работи
  • Основен параметри за шаблони сега работят.
  • Фиксирана проблем със сигурността в system.copy.
  • String случай без друго част генерирана грешен код.
  • Различни поправки за модула osproc; тя сега работи върху Windows.
  • Допълнения:
  • Реализирани множество методи.
  • Компилаторът сега открива броя на наличните процесори и изпълнява C компилатор едновременно. Това може да се регулира от --parallel_build:. Ключа number_of_processors командния ред
  • PEG-базиран модел съвпадение чрез модула за клечки.
  • Добавено system.definedInScope.
  • Добавено system.accumulateResult.
  • Добавено os.walkDirRec.
  • Добавени osproc.countProcessors.
  • Добавено osproc.execProcesses.
  • Системата за конфигурация вече поддържа $ cc.options.linker.
  • Обединения ИЗРАЗът и typeDesc в граматиката / парсера:. Това ще даде възможност за анонимни PROCs без ламбда
  • Много скриптове нямат нужда за GC: Новият --gc: няма превключвател команден ред могат да се използват за изключване на ОС от изпълнимия файл
  • .
  • Промени, засягащи назад Съвместимост:
  • Прием на адреса на даден обект дискриминантен сега невалиден.
  • Приемане на Proc до Proc Var е разрешено само за PROCs отбелязани с 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 трябва да работи отново
  • артикули за набор [Чар] и масив [Чар, T] трябва да работят сега
  • Допълнения:
  • изпълнени основни видове и двуфазна символ справка в генерични съчетания
  • параметри шаблонни вече могат да бъдат реални типове
  • изпълнени общи сурови символни низове: идент & quot; ABC & quot; е пряк път за идент (R & quot; ABC & quot;)
  • в претоварване итератори разрешаване, са отделени от PROCs; итератори вече могат да имат едно и също име + подпис, както PROCs
  • символ справка в шаблони могат да бъдат засегнати от новия свързват ключова дума
  • компилатора сега приема --no_main превключвател за по-добра връзка на оперативна съвместимост с други компилирани езици
  • реализира кортеж разопаковане в VAR раздели
  • генератора на код излъчва по подразбиране: __assume (0); за Visual C ++ (за оптимизация)
  • компилатора сега проверява дали един Proc има странични ефекти; PROCs които са декларирали, че нямат странични ефекти са отхвърлени, ако компилаторът не може да се провери това
  • 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; / somepath / тук & 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`` PROCs
  • последователности сега трябва да бъдат изградени с `` `` @ оператора. Това води до по-малко неясноти.
  • компилаторът вече използва по-малко памет и е много по-бързо
  • ОС вече е много по-бърз
  • нови автомати: Zlib, SDL, Xlib, OpenGL, ODBC, Lua
  • генерирания C код е много по-бързо, за да се оптимизира с GCC
  • нови библиотеки: потоци, zipfiles
  • компилатора Нимрод е пренесен до FreeBSD: тя трябва да работи върху твърде
  • друг BSD е

<силни> Изисквания :

  • Python

Подобен софтуер

Agena
Agena

22 Jun 18

bin86
bin86

3 Jun 15

Exscript
Exscript

12 May 15

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

Коментари не е намерена
добавите коментар
Включете на изображения!