aboutsummaryrefslogtreecommitdiff
path: root/backendC
diff options
context:
space:
mode:
Diffstat (limited to 'backendC')
-rw-r--r--backendC/CleanCompilerSources/backend.c6
-rw-r--r--backendC/CleanCompilerSources/backend.h14
-rw-r--r--backendC/CleanCompilerSources/compiledefines.h2
-rw-r--r--backendC/CleanCompilerSources/instructions.c12
-rw-r--r--backendC/CleanCompilerSources/instructions.h4
-rw-r--r--backendC/CleanCompilerSources/syntaxtr.t10
6 files changed, 32 insertions, 16 deletions
diff --git a/backendC/CleanCompilerSources/backend.c b/backendC/CleanCompilerSources/backend.c
index bb09c6f..aef2907 100644
--- a/backendC/CleanCompilerSources/backend.c
+++ b/backendC/CleanCompilerSources/backend.c
@@ -367,7 +367,7 @@ BESetMainDclModuleN (int main_dcl_module_n_parameter)
}
void
-BEDeclareIclModule (CleanString name, int nFunctions, int nTypes, int nConstructors, int nFields)
+BEDeclareIclModule (CleanString name, CleanString modificationTime, int nFunctions, int nTypes, int nConstructors, int nFields)
{
int i;
char *cName;
@@ -399,6 +399,7 @@ BEDeclareIclModule (CleanString name, int nFunctions, int nTypes, int nConstruct
iclModule = icl->beicl_module;
iclModule->im_name = moduleNameSymbol;
+ iclModule->im_modification_time = ConvertCleanString (modificationTime);
iclModule->im_def_module = NULL;
iclModule->im_rules = NULL;
iclModule->im_start = NULL;
@@ -431,7 +432,7 @@ BEDeclareIclModule (CleanString name, int nFunctions, int nTypes, int nConstruct
} /* BEDeclareIclModule */
void
-BEDeclareDclModule (int moduleIndex, CleanString name, int isSystemModule, int nFunctions, int nTypes, int nConstructors, int nFields)
+BEDeclareDclModule (int moduleIndex, CleanString name, CleanString modificationTime, int isSystemModule, int nFunctions, int nTypes, int nConstructors, int nFields)
{
char *cName;
SymbolP moduleNameSymbol;
@@ -453,6 +454,7 @@ BEDeclareDclModule (int moduleIndex, CleanString name, int isSystemModule, int n
dclModule = ConvertAllocType (DefRepr);
dclModule->dm_name = moduleNameSymbol;
+ dclModule->dm_modification_time = ConvertCleanString (modificationTime);
dclModule->dm_system_module = isSystemModule;
dclModule->dm_symbols = gBEState.be_allSymbols; /* ??? too many symbols? */
diff --git a/backendC/CleanCompilerSources/backend.h b/backendC/CleanCompilerSources/backend.h
index de0e54c..acfcf3e 100644
--- a/backendC/CleanCompilerSources/backend.h
+++ b/backendC/CleanCompilerSources/backend.h
@@ -1,15 +1,15 @@
/* version info */
// increment this for every release
-# define kBEVersionCurrent 0x02000212
+# define kBEVersionCurrent 0x02000213
// change this to the same value as kBEVersionCurrent if the new release is not
// upward compatible (for example when a function is added)
-# define kBEVersionOldestDefinition 0x02000212
+# define kBEVersionOldestDefinition 0x02000213
// change this to the same value as kBEVersionCurrent if the new release is not
// downward compatible (for example when a function is removed)
-# define kBEVersionOldestImplementation 0x02000212
+# define kBEVersionOldestImplementation 0x02000213
# define kBEDebug 1
@@ -491,11 +491,11 @@ Clean (BEAbcCodeBlock:: Bool BEStringListP BackEnd -> (BECodeBlockP, BackEnd))
BECodeBlockP BEAnyCodeBlock (BECodeParameterP inParams, BECodeParameterP outParams, BEStringListP instructions);
Clean (BEAnyCodeBlock:: BECodeParameterP BECodeParameterP BEStringListP BackEnd -> (BECodeBlockP, BackEnd))
-void BEDeclareIclModule (CleanString name, int nFunctions, int nTypes, int nConstructors, int nFields);
-Clean (BEDeclareIclModule :: String Int Int Int Int BackEnd -> BackEnd)
+void BEDeclareIclModule (CleanString name, CleanString modificationTime, int nFunctions, int nTypes, int nConstructors, int nFields);
+Clean (BEDeclareIclModule :: String String Int Int Int Int BackEnd -> BackEnd)
-void BEDeclareDclModule (int moduleIndex, CleanString name, int systemModule, int nFunctions, int nTypes, int nConstructors, int nFields);
-Clean (BEDeclareDclModule :: Int String Bool Int Int Int Int BackEnd -> BackEnd)
+void BEDeclareDclModule (int moduleIndex, CleanString name, CleanString modificationTime, int systemModule, int nFunctions, int nTypes, int nConstructors, int nFields);
+Clean (BEDeclareDclModule :: Int String String Bool Int Int Int Int BackEnd -> BackEnd)
void BEDeclarePredefinedModule (int nTypes, int nConstructors);
Clean (BEDeclarePredefinedModule :: Int Int BackEnd -> BackEnd)
diff --git a/backendC/CleanCompilerSources/compiledefines.h b/backendC/CleanCompilerSources/compiledefines.h
index 3e89a85..df91918 100644
--- a/backendC/CleanCompilerSources/compiledefines.h
+++ b/backendC/CleanCompilerSources/compiledefines.h
@@ -1,5 +1,5 @@
-#define CLEAN2
+#define CLEAN2 1
#define SHORT_CLASS_NAMES
#define U_RECORD_SELECTORS 1
diff --git a/backendC/CleanCompilerSources/instructions.c b/backendC/CleanCompilerSources/instructions.c
index dafb606..9e29575 100644
--- a/backendC/CleanCompilerSources/instructions.c
+++ b/backendC/CleanCompilerSources/instructions.c
@@ -3200,7 +3200,7 @@ void GenFieldSelectorDescriptor (SymbDef sdef,int has_gc_apply_entry)
void GenModuleDescriptor (
#if WRITE_DCL_MODIFICATION_TIME
- FileTime file_time
+ ModuleFileTime file_time
#else
void
#endif
@@ -3213,7 +3213,11 @@ void GenModuleDescriptor (
if (WriteModificationTimes){
FPutC (' ',OutFile);
FPutC ('\"',OutFile);
+# if CLEAN2
+ FPutS (file_time,OutFile);
+# else
FWriteFileTime (file_time,OutFile);
+# endif
FPutC ('\"',OutFile);
}
#endif
@@ -3221,7 +3225,7 @@ void GenModuleDescriptor (
void GenDepend (char *modname
#if WRITE_DCL_MODIFICATION_TIME
- ,FileTime file_time
+ ,ModuleFileTime file_time
#endif
)
{
@@ -3235,7 +3239,11 @@ void GenDepend (char *modname
if (WriteModificationTimes){
FPutC (' ',OutFile);
FPutC ('\"',OutFile);
+# if CLEAN2
+ FPutS (file_time,OutFile);
+# else
FWriteFileTime (file_time,OutFile);
+# endif
FPutC ('\"',OutFile);
}
#endif
diff --git a/backendC/CleanCompilerSources/instructions.h b/backendC/CleanCompilerSources/instructions.h
index c140d80..532aee7 100644
--- a/backendC/CleanCompilerSources/instructions.h
+++ b/backendC/CleanCompilerSources/instructions.h
@@ -173,8 +173,8 @@ void GenStrictConstructorDescriptor (SymbDef sdef,StateP constructor_arg_state_p
void GenArrayFunctionDescriptor (SymbDef arr_fun_def, Label desclab, int arity);
#if defined(WRITE_DCL_MODIFICATION_TIME) && WRITE_DCL_MODIFICATION_TIME
-void GenModuleDescriptor (FileTime file_time);
-void GenDepend (char *modname,FileTime file_time);
+void GenModuleDescriptor (ModuleFileTime file_time);
+void GenDepend (char *modname,ModuleFileTime file_time);
#else
void GenModuleDescriptor (void);
void GenDepend (char *modname);
diff --git a/backendC/CleanCompilerSources/syntaxtr.t b/backendC/CleanCompilerSources/syntaxtr.t
index 3b58edb..7ce4b8d 100644
--- a/backendC/CleanCompilerSources/syntaxtr.t
+++ b/backendC/CleanCompilerSources/syntaxtr.t
@@ -935,6 +935,12 @@ struct string_list {
};
#endif
+#if CLEAN2
+typedef char * ModuleFileTime;
+#else
+typedef FileTime ModuleFileTime;
+#endif
+
typedef struct {
Symbol im_name;
Symbol im_symbols;
@@ -957,7 +963,7 @@ typedef struct {
struct string_list * im_imported_libs;
#endif
#if WRITE_DCL_MODIFICATION_TIME
- FileTime im_modification_time;
+ ModuleFileTime im_modification_time;
#endif
} *ImpMod, ImpRepr;
@@ -979,6 +985,6 @@ struct def_repr {
struct module_info * dm_module_info;
#endif
#if WRITE_DCL_MODIFICATION_TIME
- FileTime dm_modification_time;
+ ModuleFileTime dm_modification_time;
#endif
};