Version 0.8.10 released
2010年10月20日 Andreas Rumpf
Bugfixes
- Bugfix: Command line parsing on Windows and
os.parseCmdLinenow adheres to the same parsing rules as Microsoft’s C/C++ startup code. - Bugfix: Passing a
refpointer to the untypedpointertype is invalid. - Bugfix: Updated
keyvalexample. - Bugfix:
system.splitChunkstill contained code for debug output. - Bugfix:
dialogs.ChooseFileToSaveusesSTOCK_SAVEinstead ofSTOCK_OPENfor the GTK backend. - Bugfix: Various bugs concerning exception handling fixed.
- Bugfix:
low(somestring)crashed the compiler. - Bugfix:
strutils.endsWithlacked range checking. - Bugfix: Better detection for AMD64 on Mac OS X.
Changes affecting backwards compatibility
- Reversed parameter order for
os.copyFileandos.moveFile!!! - Procs not marked as
procvarcannot only be passed to a procvar anymore, unless they are used in the same module. - Deprecated
times.getStartMilsecs: UseepochTimeorcpuTimeinstead. - Removed
system.OpenFile. - Removed
system.CloseFile. - Removed
strutils.replaceStr. - Removed
strutils.deleteStr. - Removed
strutils.splitLinesSeq. - Removed
strutils.splitSeq. - Removed
strutils.toString. - If a DLL cannot be loaded (via the
dynlibpragma)EInvalidLibraryis not raised anymore. Insteadsystem.quit()is called. This is because raising an exception requires heap allocations. However the memory manager might be contained in the DLL that failed to load. - The
remodule (and thepcrewrapper) now depend on the pcre dll.
Additions
- The
{.compile: "file.c".}pragma uses a CRC check to see if the file needs to be recompiled. - Added
system.reopen. - Added
system.getCurrentException. - Added
system.appType. - Added
system.compileOption. - Added
times.epochTimeandtimes.cpuTime. - Implemented explicit type arguments for generics.
- Implemented
{.size: sizeof(cint).}pragma for enum types. This is useful for interfacing with C. - Implemented
{.pragma.}pragma for user defined pragmas. - Implemented
{.extern.}pragma for better control of name mangling. - The
importcandexportcpragmas support format strings:proc p{.exportc: "nim_$1".}exportspasnim_p. This is useful for user defined pragmas. - The standard library can be built as a DLL. Generating DLLs has been improved.
- Added
expatmodule. - Added
jsonmodule. - Added support for a Tiny C backend. Currently this only works on Linux.
You need to bootstrap with
-d:tinycto enable Tiny C support. Nimrod can then execute code directly vianimrod run myfile.