summary refs log tree commit diff stats
path: root/nim
diff options
context:
space:
mode:
Diffstat (limited to 'nim')
-rw-r--r--[-rwxr-xr-x]nim/ast.pas0
-rw-r--r--[-rwxr-xr-x]nim/astalgo.pas0
-rw-r--r--[-rwxr-xr-x]nim/backends.pas0
-rw-r--r--[-rwxr-xr-x]nim/bitsets.pas0
-rw-r--r--[-rwxr-xr-x]nim/ccgexprs.pas0
-rw-r--r--[-rwxr-xr-x]nim/ccgstmts.pas0
-rw-r--r--[-rwxr-xr-x]nim/ccgtypes.pas0
-rw-r--r--[-rwxr-xr-x]nim/ccgutils.pas0
-rw-r--r--[-rwxr-xr-x]nim/cgen.pas5
-rw-r--r--[-rwxr-xr-x]nim/charsets.pas0
-rw-r--r--[-rwxr-xr-x]nim/commands.pas0
-rw-r--r--[-rwxr-xr-x]nim/condsyms.pas0
-rw-r--r--[-rwxr-xr-x]nim/config.inc0
-rw-r--r--[-rwxr-xr-x]nim/copying.txt0
-rw-r--r--[-rwxr-xr-x]nim/crc.pas0
-rw-r--r--[-rwxr-xr-x]nim/docgen.pas0
-rw-r--r--[-rwxr-xr-x]nim/eval.pas0
-rw-r--r--[-rwxr-xr-x]nim/extccomp.pas19
-rw-r--r--[-rwxr-xr-x]nim/genhelp.pas0
-rw-r--r--[-rwxr-xr-x]nim/gpl.html0
-rw-r--r--[-rwxr-xr-x]nim/hashes.pas0
-rw-r--r--[-rwxr-xr-x]nim/highlite.pas0
-rw-r--r--[-rwxr-xr-x]nim/idents.pas0
-rw-r--r--[-rwxr-xr-x]nim/importer.pas0
-rw-r--r--[-rwxr-xr-x]nim/instgen.pas0
-rw-r--r--[-rwxr-xr-x]nim/lexbase.pas0
-rw-r--r--[-rwxr-xr-x]nim/lists.pas0
-rw-r--r--[-rwxr-xr-x]nim/llvmdyn.pas0
-rw-r--r--[-rwxr-xr-x]nim/llvmstat.pas0
-rw-r--r--[-rwxr-xr-x]nim/lookup.pas0
-rw-r--r--[-rwxr-xr-x]nim/magicsys.pas0
-rw-r--r--[-rwxr-xr-x]nim/main.pas0
-rw-r--r--[-rwxr-xr-x]nim/msgs.pas0
-rw-r--r--[-rwxr-xr-x]nim/nimconf.pas0
-rw-r--r--[-rwxr-xr-x]nim/nimrod.pas0
-rw-r--r--[-rwxr-xr-x]nim/nimsets.pas0
-rw-r--r--[-rwxr-xr-x]nim/nmath.pas0
-rw-r--r--[-rwxr-xr-x]nim/nos.pas0
-rw-r--r--[-rwxr-xr-x]nim/nsystem.pas0
-rw-r--r--[-rwxr-xr-x]nim/ntime.pas0
-rw-r--r--[-rwxr-xr-x]nim/nversion.pas82
-rw-r--r--[-rwxr-xr-x]nim/options.pas0
-rw-r--r--[-rwxr-xr-x]nim/paslex.pas0
-rw-r--r--[-rwxr-xr-x]nim/pasparse.pas0
-rw-r--r--[-rwxr-xr-x]nim/platform.pas0
-rw-r--r--[-rwxr-xr-x]nim/pnimsyn.pas0
-rw-r--r--[-rwxr-xr-x]nim/pragmas.pas0
-rw-r--r--[-rwxr-xr-x]nim/procfind.pas0
-rw-r--r--[-rwxr-xr-x]nim/readme.txt0
-rw-r--r--[-rwxr-xr-x]nim/rnimsyn.pas0
-rw-r--r--[-rwxr-xr-x]nim/rodgen.pas0
-rw-r--r--[-rwxr-xr-x]nim/ropes.pas0
-rw-r--r--[-rwxr-xr-x]nim/rst.pas0
-rw-r--r--[-rwxr-xr-x]nim/scanner.pas0
-rw-r--r--[-rwxr-xr-x]nim/sem.pas0
-rw-r--r--[-rwxr-xr-x]nim/semexprs.pas0
-rw-r--r--[-rwxr-xr-x]nim/semfold.pas0
-rw-r--r--[-rwxr-xr-x]nim/semstmts.pas0
-rw-r--r--[-rwxr-xr-x]nim/semtempl.pas0
-rw-r--r--[-rwxr-xr-x]nim/semtypes.pas0
-rw-r--r--[-rwxr-xr-x]nim/sigmatch.pas0
-rw-r--r--[-rwxr-xr-x]nim/strutils.pas0
-rw-r--r--[-rwxr-xr-x]nim/syntaxes.pas0
-rw-r--r--[-rwxr-xr-x]nim/transf.pas0
-rw-r--r--[-rwxr-xr-x]nim/transtmp.pas0
-rw-r--r--[-rwxr-xr-x]nim/trees.pas0
-rw-r--r--[-rwxr-xr-x]nim/treetab.pas0
-rw-r--r--[-rwxr-xr-x]nim/types.pas0
-rw-r--r--[-rwxr-xr-x]nim/vis.pas0
-rw-r--r--[-rwxr-xr-x]nim/wordrecg.pas0
70 files changed, 60 insertions, 46 deletions
diff --git a/nim/ast.pas b/nim/ast.pas
index 6d5acf425..6d5acf425 100755..100644
--- a/nim/ast.pas
+++ b/nim/ast.pas
diff --git a/nim/astalgo.pas b/nim/astalgo.pas
index 5ab1683b3..5ab1683b3 100755..100644
--- a/nim/astalgo.pas
+++ b/nim/astalgo.pas
diff --git a/nim/backends.pas b/nim/backends.pas
index e1ac616e9..e1ac616e9 100755..100644
--- a/nim/backends.pas
+++ b/nim/backends.pas
diff --git a/nim/bitsets.pas b/nim/bitsets.pas
index 6270fbb6a..6270fbb6a 100755..100644
--- a/nim/bitsets.pas
+++ b/nim/bitsets.pas
diff --git a/nim/ccgexprs.pas b/nim/ccgexprs.pas
index 027f6a816..027f6a816 100755..100644
--- a/nim/ccgexprs.pas
+++ b/nim/ccgexprs.pas
diff --git a/nim/ccgstmts.pas b/nim/ccgstmts.pas
index 38a9e9cdf..38a9e9cdf 100755..100644
--- a/nim/ccgstmts.pas
+++ b/nim/ccgstmts.pas
diff --git a/nim/ccgtypes.pas b/nim/ccgtypes.pas
index f375daaae..f375daaae 100755..100644
--- a/nim/ccgtypes.pas
+++ b/nim/ccgtypes.pas
diff --git a/nim/ccgutils.pas b/nim/ccgutils.pas
index 6817f4518..6817f4518 100755..100644
--- a/nim/ccgutils.pas
+++ b/nim/ccgutils.pas
diff --git a/nim/cgen.pas b/nim/cgen.pas
index cb89cd910..9c0e122f2 100755..100644
--- a/nim/cgen.pas
+++ b/nim/cgen.pas
@@ -703,9 +703,8 @@ begin
   if optCFileCache in gGlobalOptions then begin
     objFile := toObjFile(cfilenoext);
     if writeRopeIfNotEqual(code, cfile) then exit;
-    if ExistsFile(objFile) then result := false
-//    and ropeEqualsFile(code, cfile)
-//    and FileNewer(objFile, cfile) then
+    if ExistsFile(objFile) and nos.FileNewer(objFile, cfile) then
+      result := false
   end
   else
     writeRope(code, cfile);
diff --git a/nim/charsets.pas b/nim/charsets.pas
index a5f14450f..a5f14450f 100755..100644
--- a/nim/charsets.pas
+++ b/nim/charsets.pas
diff --git a/nim/commands.pas b/nim/commands.pas
index 69edd86e9..69edd86e9 100755..100644
--- a/nim/commands.pas
+++ b/nim/commands.pas
diff --git a/nim/condsyms.pas b/nim/condsyms.pas
index 369ceafad..369ceafad 100755..100644
--- a/nim/condsyms.pas
+++ b/nim/condsyms.pas
diff --git a/nim/config.inc b/nim/config.inc
index f73444a71..f73444a71 100755..100644
--- a/nim/config.inc
+++ b/nim/config.inc
diff --git a/nim/copying.txt b/nim/copying.txt
index 65b743e4a..65b743e4a 100755..100644
--- a/nim/copying.txt
+++ b/nim/copying.txt
diff --git a/nim/crc.pas b/nim/crc.pas
index d669c17ee..d669c17ee 100755..100644
--- a/nim/crc.pas
+++ b/nim/crc.pas
diff --git a/nim/docgen.pas b/nim/docgen.pas
index 9615dad35..9615dad35 100755..100644
--- a/nim/docgen.pas
+++ b/nim/docgen.pas
diff --git a/nim/eval.pas b/nim/eval.pas
index 3f9d60b7a..3f9d60b7a 100755..100644
--- a/nim/eval.pas
+++ b/nim/eval.pas
diff --git a/nim/extccomp.pas b/nim/extccomp.pas
index 6fdec1186..0fc24f8d3 100755..100644
--- a/nim/extccomp.pas
+++ b/nim/extccomp.pas
@@ -18,8 +18,8 @@ uses
   nimconf, msgs; // some things are read in from the configuration file
 
 type
-  TSystemCC = (ccNone, ccGcc, ccLcc, ccBcc, ccDmc, ccWcc, ccVcc, ccTcc, ccPcc,
-               ccUcc, ccIcc, ccGpp);
+  TSystemCC = (ccNone, ccGcc, ccLLVM_Gcc, ccLcc, ccBcc, ccDmc, ccWcc, ccVcc, 
+               ccTcc, ccPcc, ccUcc, ccIcc, ccGpp);
 
   TInfoCCProp = ( // properties of the C compiler:
     hasSwitchRange,  // CC allows ranges in switch statements (GNU C extension)
@@ -61,6 +61,21 @@ const
       props: {@set}[hasSwitchRange, hasComputedGoto, hasCpp];
     ),
     (
+      name: 'llvm_gcc';
+      objExt: 'o'+'';
+      optSpeed: ' -O3 -ffast-math ';
+      optSize: ' -Os -ffast-math ';
+      compile: 'llvm-gcc -c $options $include -o $objfile $file';
+      buildGui: ' -mwindows';
+      buildDll: ' -mdll';
+      link: 'llvm-gcc $options $buildgui $builddll -o $exefile $objfiles';
+      includeCmd: ' -I';
+      debug: '';
+      pic: '-fPIC';
+      asmStmtFrmt: 'asm($1);$n';
+      props: {@set}[hasSwitchRange, hasComputedGoto, hasCpp];
+    ),
+    (
       name: 'lcc';
       objExt: 'obj';
       optSpeed: ' -O -p6 ';
diff --git a/nim/genhelp.pas b/nim/genhelp.pas
index 382a0b8bf..382a0b8bf 100755..100644
--- a/nim/genhelp.pas
+++ b/nim/genhelp.pas
diff --git a/nim/gpl.html b/nim/gpl.html
index 0aec9fff0..0aec9fff0 100755..100644
--- a/nim/gpl.html
+++ b/nim/gpl.html
diff --git a/nim/hashes.pas b/nim/hashes.pas
index 80acc57ca..80acc57ca 100755..100644
--- a/nim/hashes.pas
+++ b/nim/hashes.pas
diff --git a/nim/highlite.pas b/nim/highlite.pas
index ee115b815..ee115b815 100755..100644
--- a/nim/highlite.pas
+++ b/nim/highlite.pas
diff --git a/nim/idents.pas b/nim/idents.pas
index 8779abb2b..8779abb2b 100755..100644
--- a/nim/idents.pas
+++ b/nim/idents.pas
diff --git a/nim/importer.pas b/nim/importer.pas
index 5377434fe..5377434fe 100755..100644
--- a/nim/importer.pas
+++ b/nim/importer.pas
diff --git a/nim/instgen.pas b/nim/instgen.pas
index 2d5abc8b2..2d5abc8b2 100755..100644
--- a/nim/instgen.pas
+++ b/nim/instgen.pas
diff --git a/nim/lexbase.pas b/nim/lexbase.pas
index f02c375ff..f02c375ff 100755..100644
--- a/nim/lexbase.pas
+++ b/nim/lexbase.pas
diff --git a/nim/lists.pas b/nim/lists.pas
index 74b1479d9..74b1479d9 100755..100644
--- a/nim/lists.pas
+++ b/nim/lists.pas
diff --git a/nim/llvmdyn.pas b/nim/llvmdyn.pas
index 34839a1c8..34839a1c8 100755..100644
--- a/nim/llvmdyn.pas
+++ b/nim/llvmdyn.pas
diff --git a/nim/llvmstat.pas b/nim/llvmstat.pas
index e7d06a284..e7d06a284 100755..100644
--- a/nim/llvmstat.pas
+++ b/nim/llvmstat.pas
diff --git a/nim/lookup.pas b/nim/lookup.pas
index 143967f3e..143967f3e 100755..100644
--- a/nim/lookup.pas
+++ b/nim/lookup.pas
diff --git a/nim/magicsys.pas b/nim/magicsys.pas
index 2f314065d..2f314065d 100755..100644
--- a/nim/magicsys.pas
+++ b/nim/magicsys.pas
diff --git a/nim/main.pas b/nim/main.pas
index 8ea82ced3..8ea82ced3 100755..100644
--- a/nim/main.pas
+++ b/nim/main.pas
diff --git a/nim/msgs.pas b/nim/msgs.pas
index 6f4f8225e..6f4f8225e 100755..100644
--- a/nim/msgs.pas
+++ b/nim/msgs.pas
diff --git a/nim/nimconf.pas b/nim/nimconf.pas
index dd29684f6..dd29684f6 100755..100644
--- a/nim/nimconf.pas
+++ b/nim/nimconf.pas
diff --git a/nim/nimrod.pas b/nim/nimrod.pas
index 7f8512984..7f8512984 100755..100644
--- a/nim/nimrod.pas
+++ b/nim/nimrod.pas
diff --git a/nim/nimsets.pas b/nim/nimsets.pas
index 2b8dff20a..2b8dff20a 100755..100644
--- a/nim/nimsets.pas
+++ b/nim/nimsets.pas
diff --git a/nim/nmath.pas b/nim/nmath.pas
index 8b638eb42..8b638eb42 100755..100644
--- a/nim/nmath.pas
+++ b/nim/nmath.pas
diff --git a/nim/nos.pas b/nim/nos.pas
index bafa28d43..bafa28d43 100755..100644
--- a/nim/nos.pas
+++ b/nim/nos.pas
diff --git a/nim/nsystem.pas b/nim/nsystem.pas
index 0b8b897c2..0b8b897c2 100755..100644
--- a/nim/nsystem.pas
+++ b/nim/nsystem.pas
diff --git a/nim/ntime.pas b/nim/ntime.pas
index 9135c26c3..9135c26c3 100755..100644
--- a/nim/ntime.pas
+++ b/nim/ntime.pas
diff --git a/nim/nversion.pas b/nim/nversion.pas
index f59a2e756..6b6ee6169 100755..100644
--- a/nim/nversion.pas
+++ b/nim/nversion.pas
@@ -1,41 +1,41 @@
-//
-//
-//           The Nimrod Compiler
-//        (c) Copyright 2008 Andreas Rumpf
-//
-//    See the file "copying.txt", included in this
-//    distribution, for details about the copyright.
-//
-
-unit nversion;
-
-// this unit implements the version handling
-
-interface
-
-{$include 'config.inc'}
-
-uses
-  strutils;
-
-const
-  MaxSetElements = 1 shl 16; // (2^16) to support unicode character sets?
-  defaultAsmMarkerSymbol = '!';
-
-  //[[[cog
-  //from koch import NIMROD_VERSION
-  //cog.outl("VersionAsString = '%s';" % NIMROD_VERSION)
-  //ver = NIMROD_VERSION.split('.')
-  //cog.outl('VersionMajor = %s;' % ver[0])
-  //cog.outl('VersionMinor = %s;' % ver[1])
-  //cog.outl('VersionPatch = %s;' % ver[2])
-  //]]]
-  VersionAsString = '0.2.1';
-  VersionMajor = 0;
-  VersionMinor = 2;
-  VersionPatch = 1;
-  //[[[[end]]]]
-
-implementation
-
-end.
+//

+//

+//           The Nimrod Compiler

+//        (c) Copyright 2008 Andreas Rumpf

+//

+//    See the file "copying.txt", included in this

+//    distribution, for details about the copyright.

+//

+

+unit nversion;

+

+// this unit implements the version handling

+

+interface

+

+{$include 'config.inc'}

+

+uses

+  strutils;

+

+const

+  MaxSetElements = 1 shl 16; // (2^16) to support unicode character sets?

+  defaultAsmMarkerSymbol = '!';

+

+  //[[[cog

+  //from koch import NIMROD_VERSION

+  //cog.outl("VersionAsString = '%s';" % NIMROD_VERSION)

+  //ver = NIMROD_VERSION.split('.')

+  //cog.outl('VersionMajor = %s;' % ver[0])

+  //cog.outl('VersionMinor = %s;' % ver[1])

+  //cog.outl('VersionPatch = %s;' % ver[2])

+  //]]]

+  VersionAsString = '0.5.1';

+  VersionMajor = 0;

+  VersionMinor = 5;

+  VersionPatch = 1;

+  //[[[[end]]]]

+

+implementation

+

+end.

diff --git a/nim/options.pas b/nim/options.pas
index e7ec0a1ce..e7ec0a1ce 100755..100644
--- a/nim/options.pas
+++ b/nim/options.pas
diff --git a/nim/paslex.pas b/nim/paslex.pas
index 5b90a6138..5b90a6138 100755..100644
--- a/nim/paslex.pas
+++ b/nim/paslex.pas
diff --git a/nim/pasparse.pas b/nim/pasparse.pas
index 2d581d81a..2d581d81a 100755..100644
--- a/nim/pasparse.pas
+++ b/nim/pasparse.pas
diff --git a/nim/platform.pas b/nim/platform.pas
index 3bb109943..3bb109943 100755..100644
--- a/nim/platform.pas
+++ b/nim/platform.pas
diff --git a/nim/pnimsyn.pas b/nim/pnimsyn.pas
index 8407804e7..8407804e7 100755..100644
--- a/nim/pnimsyn.pas
+++ b/nim/pnimsyn.pas
diff --git a/nim/pragmas.pas b/nim/pragmas.pas
index f257be390..f257be390 100755..100644
--- a/nim/pragmas.pas
+++ b/nim/pragmas.pas
diff --git a/nim/procfind.pas b/nim/procfind.pas
index f7a78c8b9..f7a78c8b9 100755..100644
--- a/nim/procfind.pas
+++ b/nim/procfind.pas
diff --git a/nim/readme.txt b/nim/readme.txt
index 99d574bac..99d574bac 100755..100644
--- a/nim/readme.txt
+++ b/nim/readme.txt
diff --git a/nim/rnimsyn.pas b/nim/rnimsyn.pas
index b4f97e82c..b4f97e82c 100755..100644
--- a/nim/rnimsyn.pas
+++ b/nim/rnimsyn.pas
diff --git a/nim/rodgen.pas b/nim/rodgen.pas
index a9bb17b49..a9bb17b49 100755..100644
--- a/nim/rodgen.pas
+++ b/nim/rodgen.pas
diff --git a/nim/ropes.pas b/nim/ropes.pas
index 48a38d7b4..48a38d7b4 100755..100644
--- a/nim/ropes.pas
+++ b/nim/ropes.pas
diff --git a/nim/rst.pas b/nim/rst.pas
index d6452ceae..d6452ceae 100755..100644
--- a/nim/rst.pas
+++ b/nim/rst.pas
diff --git a/nim/scanner.pas b/nim/scanner.pas
index 8e5bc3fc5..8e5bc3fc5 100755..100644
--- a/nim/scanner.pas
+++ b/nim/scanner.pas
diff --git a/nim/sem.pas b/nim/sem.pas
index 48a967d35..48a967d35 100755..100644
--- a/nim/sem.pas
+++ b/nim/sem.pas
diff --git a/nim/semexprs.pas b/nim/semexprs.pas
index 66f9b1e3f..66f9b1e3f 100755..100644
--- a/nim/semexprs.pas
+++ b/nim/semexprs.pas
diff --git a/nim/semfold.pas b/nim/semfold.pas
index 2edc2e7a0..2edc2e7a0 100755..100644
--- a/nim/semfold.pas
+++ b/nim/semfold.pas
diff --git a/nim/semstmts.pas b/nim/semstmts.pas
index 66db7b802..66db7b802 100755..100644
--- a/nim/semstmts.pas
+++ b/nim/semstmts.pas
diff --git a/nim/semtempl.pas b/nim/semtempl.pas
index f7f0cadd5..f7f0cadd5 100755..100644
--- a/nim/semtempl.pas
+++ b/nim/semtempl.pas
diff --git a/nim/semtypes.pas b/nim/semtypes.pas
index e402b9864..e402b9864 100755..100644
--- a/nim/semtypes.pas
+++ b/nim/semtypes.pas
diff --git a/nim/sigmatch.pas b/nim/sigmatch.pas
index 69ffdbb43..69ffdbb43 100755..100644
--- a/nim/sigmatch.pas
+++ b/nim/sigmatch.pas
diff --git a/nim/strutils.pas b/nim/strutils.pas
index b654b7868..b654b7868 100755..100644
--- a/nim/strutils.pas
+++ b/nim/strutils.pas
diff --git a/nim/syntaxes.pas b/nim/syntaxes.pas
index 1068064ce..1068064ce 100755..100644
--- a/nim/syntaxes.pas
+++ b/nim/syntaxes.pas
diff --git a/nim/transf.pas b/nim/transf.pas
index 33ece8116..33ece8116 100755..100644
--- a/nim/transf.pas
+++ b/nim/transf.pas
diff --git a/nim/transtmp.pas b/nim/transtmp.pas
index df61aa00d..df61aa00d 100755..100644
--- a/nim/transtmp.pas
+++ b/nim/transtmp.pas
diff --git a/nim/trees.pas b/nim/trees.pas
index bd4137083..bd4137083 100755..100644
--- a/nim/trees.pas
+++ b/nim/trees.pas
diff --git a/nim/treetab.pas b/nim/treetab.pas
index 5a9dbdb2a..5a9dbdb2a 100755..100644
--- a/nim/treetab.pas
+++ b/nim/treetab.pas
diff --git a/nim/types.pas b/nim/types.pas
index 5719d181a..5719d181a 100755..100644
--- a/nim/types.pas
+++ b/nim/types.pas
diff --git a/nim/vis.pas b/nim/vis.pas
index 7f59abaec..7f59abaec 100755..100644
--- a/nim/vis.pas
+++ b/nim/vis.pas
diff --git a/nim/wordrecg.pas b/nim/wordrecg.pas
index da709a8f3..da709a8f3 100755..100644
--- a/nim/wordrecg.pas
+++ b/nim/wordrecg.pas