Nimrod

소프트웨어 스크린 샷:
Nimrod
소프트웨어 정보:
버전: 0.9.2
업로드 날짜: 20 Feb 15
개발자: Andreas Rumpf
라이센스: 무료
인기: 16

Rating: nan/5 (Total Votes: 0)

효율적이고 간단한 유지하면서

니므롯은 오픈 소스, 절차 적, 객체 지향, 일반 및 함수형 프로그래밍 스타일을 지원하도록 설계 무료, 정적으로 입력, 필수 프로그래밍 언어이다.
니므롯 도메인 특정 언어를 만드는 데 사용할 수 있도록 강력한 매크로 시스템 사양의 일부로서 추상 구문 트리 (AST) 할 수있다. 기능은 리스프에서 상속.
이 소프트웨어는 네이티브 코드 생성, 가비지 컬렉션, 제로 오버 헤드 반복자, 사용자 정의 가능한 사업자, 높은 수준의 데이터 유형, 시간 평가, 앞으로 compability, GTK2, 윈도우 API, POSIX API를 바인딩, 플러그 파서 시스템, 문서 생성기를 컴파일을 제공하고, 파스칼 니므롯을 변환 유틸리티.
니므롯은 리눅스, BSD, 맥 OS & NBSP에서 실행할 수 있음을 의미, 휴대용; X & NBSP; 및 Windows 운영 체제

이 릴리스의 새로운 기능입니다 무엇 : 있습니다.

버그 수정 :
이전 GC가 제대로주기를 수집하지 않습니다. 고정하지만 성능 회귀가 발생할 수 있습니다. 그러나 당신은 GC_disableMarkAndSweep와주기 수집기를 비활성화 할 수 있습니다 적절한 시간이나 전혀에서 명시 적으로 실행합니다. 이 문제를 가지고 있지만 일반적으로 느린 상태이고 실시간 보장을 가지고하지 않습니다 markAndSweep : 당신이 --gc으로 활성화 할 수있는 새로운 GC가있다.
포인트 유형을 부동 캐스트 지금 사용 설명서에 명기 된대로 bitcast는 않습니다. 이것은 잘못 다른 부동 소수점 값을 변환 할 캐스트를 사용하는 코드를 나누기.
SCGI 모듈의 성능은 크게, 더 이상 많은 동시 요청을 차단하지 않습니다 향상되었습니다.
총 70 github의 문제를 해결하고 60 가져 오기 요청을 통해 합병했다.
라이브러리 추가 :
빠르게 (또는 더 느리게) 기본 GC보다 할 수있는 새로운 실험 마크 및 스윕 GC가있다. --gc로 사용 : markAndSweep을.
상태 시스템을 지원하기 system.onRaise을 추가했습니다.
시저의 지역 주민에 대한 액세스를 제공 system.locals을 추가했습니다.
AST에 대한 추가 macros.quote 준 인용.
해키 가변 길이 개체를 지원하기 위해 system.unsafeNew을 추가했습니다.
system.fields 및 system.fieldPairs도 객체를 지원; 그들은 단지 지원 튜플하는 데 사용됩니다.
라이트 system.CurrentSourcePath는 현재 소스 파일의 파일 시스템 전체 경로를 반환.
매크로 모듈은 이제 추상 구문 트리를 구축하기위한 유용 할 것들 많이 포함되어 있습니다.
이전 버전과의 호환성에 영향을 미치는 변경 :
공유는 이제 키워드입니다.
사용되지 않는 sockets.recvLine 및 asyncio.recvLine 대신 내의 readLine을 추가했다.
방법 들여 쓰기는 크게 변화 파서에서 처리됩니다. 그러나,이 (만약 있다면)이 거의 실제 코드에 영향을 미친다.
식 / 문 통일 구현되었습니다. 다시 말하지만 이것은 단지 가장자리 케이스 및 알려진 실제 코드에 영향을 미칩니다.
SCGI 모듈의 비동기 인터페이스를 변경.
WideStrings 이제 쓰레기는 다른 문자열 타입처럼 수집됩니다.
컴파일러 추가 :
doc2 명령은 더 이상 전체 프로젝트의 출력을 생성하지 않습니다. 이 동작을 가능하게하는 새로운 --project 스위치를 사용합니다.
컴파일러는 이제 그림자가 지역 변수에 대해 경고 할 수 있습니다. 에 : 그러나이 명시 적으로 [ShadowIdent] --warning를 통해 온해야합니다.
컴파일러는 이제 푸시 프라그의 거의 모든 프라그를 지원합니다.
일반 컨버터 구현되었습니다.
크게 앞으로 선언에 대한 필요성을 제거하는 특수 편집 모드를 가능하게하는 실험적인 noforward 프​​라그을 추가했습니다.
언어 추가 :
경우 표현식이 지원됩니다.
테이블 생성자는 이제 더 밀접 경우 문의 구문을 모방.
니므롯은 이제 몸에서 시저의 반환 유형을 추론 할 수있다.
제네릭에 기호 바인딩 규칙에 영향을 미칠 수있는 믹스 인 선언을 추가했습니다.
예외 추적이 추가되었습니다 및 doc2 명령은 가능 예외 주석을 단다.
사용자 정의 효과 (& quot; 태그 및 용어는) 추적이 추가되었습니다 및 doc2 명령은 당신을 위해 가능한 태그 주석을 단다.
유형은 허용되지 않습니다 명시 적으로 전무을 명시하지 전무 새로운 구문을 주석 할 수 있습니다. 그러나 현재 컴파일러는이 검사에는 고급 정적 수행하지 않습니다; 지금은이 문서의 목적을 위해 단지이다.
수출 문은 언어에 추가되었습니다 클라이언트 모듈이 명시 적으로 모듈의 종속성을 가져올 필요가 없습니다 있도록 심볼 전달에 사용할 수 있습니다.
하는 AST를 기반으로 오버로드 구현되었습니다.
제네릭은 이제 멀티 방법 지원됩니다.
객체는 객체 생성자 식을 통해 초기화 할 수 있습니다.
새로운 문법 구조가 (;) 표현과 문장을 통합.
모듈을 가져올 수 있지만 모듈의 모든 기호에 완전한 접근을 적용 할 경우 이제 모듈 가져 오기의 무기 호에서 사용할 수 있습니다.

이 버전 0.8.14의 새로운 기능 :

는 메시지 전달에 관한 심각한 메모리 손상을 수정했습니다.
일반 PROC의 다른 인스턴스 생성에 관한 심각한 버그가 수정되었습니다.
잘못된 EIO 예외가 개행으로 끝나지 않는 텍스트 파일에 대한 파일의 끝 올려 새로 도입 된 버그가 수정되었습니다.
버그 수정 c2nim는 c2pas : --out 옵션이 제대로 작동하지 않았다.
버그 수정 : 일반 발동의 전달은 결코 일하지.
좀 더 매크로에 대한 버그 수정과 컴파일 시간을 평가.
GC는 이제 적극적인 C 옵티 마이저에 의해 도입 될 수있다 스택에 계정 내부 포인터로합니다.
니므롯의 기본 할당은 / GC는 이제 파워에서 작동합니다.
기타 버그 수정의 많은 : 그들 모두를 나열하려면 너무 많은.

이 버전 0.8.6의 새로운 기능 :

이 버그 수정 :
해제 및 경고 [X] : 프라 그마는 [X]를 암시 지금 일을 끕니다.
반복자의 메서드 호출 구문이 다시 작동 (lines.split에 X 용 ()).
무한 재귀가 발생할 POSIX에 대한 removeDir에 오타가 수정되었습니다.
컴파일러는 이제 모듈 파일 이름이 유효한 식별자 것을 확인합니다.
dynlib 프라그를위한 빈 패턴이 지금 가능합니다.
os.parseCmdLine은 후행 공백에 대한 잘못된 결과를 반환했습니다.
더 이상 코드 생성기를 충돌하지 않는다 (와 이름 필드없이 동일한 튜플을 사용하여) 논리적이 아닌 튜플 사용.
동적 LIB 내의 PROC 로​​딩 실패시 오류 메시지가 더 제공된다.
추가 :
열린 배열에 대한 추가 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;가 .xyz & quot ;, & quot; & quot;) 대신 (quot &; & quot ;, & quot; & quot ;, & quot;가 .xyz & quot;). 점으로 시작하는 파일 이름은 다르게 처리됩니다.
strutils.split (S : 문자열, SEPS : 설정 [문자])는 결코 더 이상 빈 문자열을 얻을 수 없습니다. 이 문제는 아마 공백 분할에 더 적합합니다.
컴파일러는 이제 --version 명령 줄 스위치 후 중지합니다.
파서에 열거 상속 제거 지원; 열거 상속 어쨌든 문서화 된 적이있다.
system.E_base의 MSG 필드 대신 CString을의 지금 형 문자열을 가지고있다. 이것은 메모리의 안전을 향상시킨다.

이 버전 0.8.2의 새로운 기능 :

이 버그 수정 :
--hint [X] 전달 : 오프 또는 --warning [X] : 컴파일러에 대한 명령 행 인수는 이제 작품으로 끕니다.
템플릿에 대한 기본 매개 변수는 이제 작동합니다.
system.copy에 고정 보안 문제.
다른 부분이없는 문자열 경우는 잘못된 코드를 생성합니다.
osproc 모듈에 대한 다양한 수정; 지금은 윈도우에서 작동합니다.
추가 :
구현 멀티 방법.
컴파일러는 현재 사용 가능한 프로세서의 수를 감지하고 동시에 C 컴파일러를 실행합니다. 이 --parallel_build 조정할 수 있습니다 : 프로세서 수는 줄 스위치를 명령.
못 모듈을 통해 일치하는 PEG-기반 패턴.
추가 system.definedInScope.
추가 system.accumulateResult.
추가 os.walkDirRec.
추가 osproc.countProcessors.
추가 osproc.execProcesses.
구성 시스템은 이제 $의 cc.options.linker을 지원합니다.
문법 / 파서 EXPR과 typeDesc 합병이 람다없이 익명의 발동이 가능합니다.
많은 스크립트는 GC에 대한 필요가 없습니다 : 새로운 --gc : 없음 명령 줄 스위치는 실행 파일에서 GC를 제외 할 수 있습니다.
compability 이전 버전에 영향을 미치는 변경 :
개체 판별의 주소를 가지고가는 것은 이제 유효하지 않습니다.
PROC의 VAR에 PROC 전달은 procvar 또는 호출 규칙! = nimcall 표시 발동 허용됩니다. 지금이는 경고가 발생하지만, 이것은 곧 오류로 바뀝니다.
시스템은. & 지금 서열 매개 변수 대신 openArray를받을 system.add.
strutils.findSubStr 및 strutils.findChars을 제거. 그들은 3 버전 이상 사용되지 않습니다.
유니 코드 모듈은 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는 이제 작동합니다
추가 :
구현 제네릭 형식 및 일반 루틴에서 2 단계 기호 조회
템플릿 매개 변수는 이제 실수 타입이 될 수 있습니다
원시 문자열 리터럴 일반화하여 구현 :; ABC & quot 답하라 & quot을; 행선지에 대한 바로 가기입니다 (R & 용어는 ABC & quot;)
발동 분리 해상도 반복자를 오버로드에; 반복자는 이제 발동과 동일한 이름 + 서명을 할 수 있습니다
템플릿에서 기호 조회는 새로운 바인드 키워드에 의해 영향을받을 수있다
컴파일러는 이제 다른 컴파일 언어와 더 나은 링크 상호 운용성을위한 --no_main 스위치를 받아
VAR 섹션에 풀고 튜플 구현
코드 생성기는 기본을 방출 : __assume (0); 비주얼 C ++에 대한 (최적화)
PROC 부작용이있는 경우 컴파일러 해주기 검사; 컴파일러가이를 확인할 수없는 경우에 부작용이없는 것으로 선언된다 발동은 거부
형식 연산자 strutils. % 이제 자동 인수 계산에 대한 $ #을 지원합니다
구현 strutils.join
compability 이전 버전에 영향을 미치는 변경 :
2 상 심볼 룩업 일반 루틴에서 수행
바인딩은 이제 예약어; 예외는 더 이상 아무런 예약어입니다
추상적 인 유형은 구별 유형 이름이 변경되었습니다; 따라서 별개의 예약어는 지금; 추상적 인은 더 이상 아무 예약어입니다
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 ℃와 8 진수는 이제 제대로 지원
열거 지금은 음의 값으로 시작할 수 있습니다
문자열이 구문 분석 된 번호 다음에 종료하지 않는 경우에서는 parseInt는 ParseBiggestInt 이제 예외를 발생
컴파일러는 올바르게 최상위 문을 처리
생성 nimcache 디렉토리는 결코 슬래시로 끝나는 없습니다
createDir 이제 글로벌 UNIX에서 디렉토리에 대해 작동합니다 (& quot; / somepath는 / 여기에 & quot;)
./& quot를, 컴파일러는 이제 선도적 & quot와 실행 파일을 실행; UNIX에서
컴파일러는 이제 프로 시저 포인터의 일정한 배열을 지원합니다
case 문에서의 elif는 이제 작동
지금 작업 개방형 배열 매개 변수를 사용하여 반복자
어떤 상황에서 $ myEnum 작동하지 않았다 어디에 버그를 수정

이 어떤 버전 0.7.4의 새로운 기능 : 디렉토리에 공백이 포함되어 있으면

Windows에서 설치가 작동합니다
문서 생성기는 이제 문서 주석을 렌더링
````사업자 허용되는 설명서를 말한다처럼
드문 경우에, 인덱스 체크가 필요했을지라도, 멀리 최적화 된
튜플 유형에 대한 몇 가지 버그 수정
UTF-8 처리를위한``unicode`` 모듈을 추가
``system`` 모듈에 hostOS과 hostCPU 마법을 추가
system.echo 이제 여러 인수를 받아
추가 최적화 : 반복자의 인라인 지금 실질적으로 더 나은 코드를 생성 경우에
추가 된 전체 프로그램 죽은 코드 제거
마법```이제 운영자는 열거 작동
``에 const`` 절은 수행 시간 평가를 컴파일 고급
in_Operator``는 contains````에``이름``in`` 지금 contains````로 변환하는 템플릿입니다
strutils.quoteIfContainsWhite````에 strutils.quoteIfSpaceExists````변경
파서는 훨씬 더 까다 롭고에서 missing 쉼표 등이 너무 많은 코드에 영향을 미치는 경우, 꽤 프린터에 코드를 실행하려고에 대한 것입니다.
``macros`` API는``system`` 모듈의 더 이상 일부가 아닙니다,이 API를 사용하는 당신은 지금``macros`` 모듈을 가져와야합니다
튜토리얼을 추가

이 버전 0.7.2의 새로운 기능 :

이이 버그 수정 릴리스입니다. 이 가장 중요한 수정 니므롯은 이제 AMD64 (x86_64의) 프로세서를 다시 작동합니다.
어떤 새로운 기능이 구현되지 않았습니다.

이 버전 0.7.0의 새로운 기능 :

이 각종 버그 수정, 너무 많은 사람들이 여기를 나열하려면
UNIX 기반 시스템의 설치는 더 이상 파이썬에 의존하지 않는
``koch.py​​`` 스크립트는 이제 이전의 파이썬 버전 (1.5.2 포함)와 함께 작동
변경된 정수 연산 및 변환 규칙
GC_ref``와``GC_unref`` 발동``추가
시퀀스는 이제``@``연산자로 구성 될 필요가있다. 이 적은 모호성에 연결됩니다.
컴파일러는 이제 메모리를 적게 사용하고 훨씬 빠릅니다
GC는 훨씬 빠르다
새로운 바인딩 : ZLIB, SDL, Xlib를, OpenGL을, ODBC, 루아
생성 된 C 코드는 훨씬 더 빨리 GCC로 최적화하는 것입니다
새로운 라이브러리 : 스트림, zipfiles
니므롯 컴파일러는 FreeBSD의에 장착을 할 수 있습니다 : 너무 다른 BSD의 작동해야

이 요구 사항 :

이 파이썬

유사한 소프트웨어

phc
phc

3 Jun 15

Brainy
Brainy

14 Apr 15

ADP
ADP

17 Feb 15

Rails
Rails

17 Feb 15

코멘트 Nimrod

댓글을 찾을 수 없습니다
코멘트를 추가
이미지를 켜십시오!