diff options
-rw-r--r-- | src/ChangeLog | 10 | ||||
-rw-r--r-- | src/interp/c-util.boot | 1 | ||||
-rw-r--r-- | src/interp/clam.boot | 2 | ||||
-rw-r--r-- | src/interp/define.boot | 21 |
4 files changed, 18 insertions, 16 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 4b301309..235c92bd 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,15 @@ 2012-05-04 Gabriel Dos Reis <gdr@cs.tamu.edu> + * interp/define.boot (compileConstructor1): Don't call + clearConstructorCache here. Simplify. + (compileConstructor): Call clearConstructorCache here. + * interp/c-util.boot (backendCompile2): Do not test for membership + of $clamList. + * interp/clam.boot (compHash): Use compQuietly instead of + compileQuietly. + +2012-05-04 Gabriel Dos Reis <gdr@cs.tamu.edu> + * interp/clam.boot (compHash): Use compQuietly in lieu of compileInteractive. diff --git a/src/interp/c-util.boot b/src/interp/c-util.boot index 50861e5f..e43cd164 100644 --- a/src/interp/c-util.boot +++ b/src/interp/c-util.boot @@ -1542,7 +1542,6 @@ backendCompile2: %Code -> %Symbol backendCompile2 code == code isnt [name,[type,args,:body]] => systemError ['"parenthesis error in: ", code] - symbolTarget(name,$clamList) => compClam(name,args,body,$clamList) type = "SPADSLAM" => backendCompileSPADSLAM(name,args,body) assembleCode [name,[type,args,:body]] diff --git a/src/interp/clam.boot b/src/interp/clam.boot index 02b3fa06..64d9fc14 100644 --- a/src/interp/clam.boot +++ b/src/interp/clam.boot @@ -243,7 +243,7 @@ compHash(op,argl,body,cacheNameOrNil,eqEtc,countFl) == if $reportCompilation then sayBrightlyI bright '"Generated LISP code for function:" pp computeFunction - compileQuietly [computeFunction] + compQuietly [computeFunction] if cacheNameOrNil = nil then cacheType:= diff --git a/src/interp/define.boot b/src/interp/define.boot index 57095ff6..25ab7aea 100644 --- a/src/interp/define.boot +++ b/src/interp/define.boot @@ -2084,27 +2084,20 @@ spadCompileOrSetq(db,form is [nam,[lam,vl,body]]) == compileConstructor(db,form) compileConstructor(db,form) == - u:= compileConstructor1(db,form) + u := compileConstructor1(db,form) clearClams() --clear all CLAMmed functions + clearConstructorCache u --clear cache for constructor u compileConstructor1(db,form:=[fn,[key,vl,:bodyl]]) == -- fn is the name of some category/domain/package constructor; -- we will cache all of its values on $ConstructorCache with reference -- counts - $clamList: local := nil - lambdaOrSlam := - dbConstructorKind db = 'category => 'SPADSLAM - dbInstanceCache db = nil => 'LAMBDA - $clamList:= - [[fn,"$ConstructorCache",'domainEqualList,'count],:$clamList] - 'LAMBDA - compForm:= [[fn,[lambdaOrSlam,vl,:bodyl]]] - u := - dbConstructorKind db = 'category => compAndDefine compForm - backendCompile compForm - clearConstructorCache fn --clear cache for constructor - first u + dbConstructorKind db = 'category => + first compAndDefine [[fn,['SPADSLAM,vl,:bodyl]]] + dbInstanceCache db = nil => + first backendCompile [[fn,['LAMBDA,vl,:bodyl]]] + compClam(fn,vl,bodyl,[[fn,"$ConstructorCache",'domainEqualList,'count]]) constructMacro: %Form -> %Form constructMacro (form is [nam,[lam,vl,body]]) == |