chicken-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-hackers] -emit-inline-file and implying -inline/-local


From: Felix
Subject: [Chicken-hackers] -emit-inline-file and implying -inline/-local
Date: Sun, 17 Mar 2013 23:34:44 +0100 (CET)

Hello!

The "-emit-inline-file"/"-oi" option currently implies the "-inline"
and "-local" options. This was intended as a convenience measure (it
doesn't make much sense, otherwise), but may not be entirely obvious
to the user. I think it would be better to remove those implied
options and rely on explicit options or on the optimization level (-O3
and higher).

A patch is attached. Or does this require a change-request?


cheers,
felix
>From 78101db884d8c1552bf36ab2da507aca900e6767 Mon Sep 17 00:00:00 2001
From: felix <address@hidden>
Date: Tue, 12 Mar 2013 08:29:32 +0100
Subject: [PATCH] the `-emit-inline-file' option doesn't imply "-inline -local" 
anymore, since it only specifies where inlining-information should be stored.

---
 NEWS                      |    1 +
 batch-driver.scm          |    2 --
 csc.scm                   |    2 +-
 manual/Using the compiler |    2 +-
 support.scm               |    2 +-
 5 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/NEWS b/NEWS
index c2d16fb..ed5483c 100644
--- a/NEWS
+++ b/NEWS
@@ -7,6 +7,7 @@
 - Tools
   - csc: added "-oi"/"-ot" options as alternatives to "-emit-inline-file"
     and "-emit-type-file", respectively; "-n" has been deprecated.
+  - The "-emit-inline-file" option does not imply "-local -inline" anymore
   - chicken-install now also accepts full URI syntax for proxy environment
     variables (thanks to Michele La Monaca)
 
diff --git a/batch-driver.scm b/batch-driver.scm
index f994ae6..f87deca 100644
--- a/batch-driver.scm
+++ b/batch-driver.scm
@@ -235,8 +235,6 @@
       (set! external-protos-first #t))
     (when (memq 'inline options) (set! inline-locally #t))
     (and-let* ((ifile (memq 'emit-inline-file options)))
-      (set! inline-locally #t)         ; otherwise this option makes no sense
-      (set! local-definitions #t)
       (set! inline-output-file (option-arg ifile)))
     (and-let* ((tfile (memq 'emit-type-file options)))
       (set! type-output-file (option-arg tfile)))
diff --git a/csc.scm b/csc.scm
index a54c14c..fc76ed4 100644
--- a/csc.scm
+++ b/csc.scm
@@ -389,7 +389,7 @@ Usage: #{csc} FILENAME | OPTION ...
     -inline-global                 enable cross-module inlining
     -specialize                    perform type-based specialization of 
primitive calls
     -oi -emit-inline-file FILENAME  generate file with globally inlinable
-                                    procedures (implies -inline -local)
+                                    procedures
     -consult-inline-file FILENAME  explicitly load inline file
     -ot  -emit-type-file FILENAME  write type-declaration information into file
     -no-argc-checks                disable argument count checks
diff --git a/manual/Using the compiler b/manual/Using the compiler
index 1bfc36c..eecb4bb 100644
--- a/manual/Using the compiler 
+++ b/manual/Using the compiler 
@@ -56,7 +56,7 @@ the source text should be read from standard input.
 
 ; -emit-import-library MODULE : Specifies that an import library named 
{{MODULE.import.scm}} for the named module should be generated (equivalent to 
using the {{emit-import-library}} declaration).
 
-; -emit-inline-file FILENAME : Write procedures that can be globally inlined 
in internal form to {{FILENAME}}, if global inlining is enabled. Implies 
{{-inline -local}}. If the inline-file would be empty (because no procedure 
would be inlinable) no file is generated and any existing inline-file with that 
name is deleted.
+; -emit-inline-file FILENAME : Write procedures that can be globally inlined 
in internal form to {{FILENAME}}, if global inlining is enabled. If the 
inline-file would be empty (because no procedure would be inlinable) no file is 
generated and any existing inline-file with that name is deleted.
 
 ; -emit-type-file FILENAME : Write type-information for declarations of 
user-defined and globally visible variables to a file of the given name. The 
generated file is suitable for use with the {{-types}} option.
 
diff --git a/support.scm b/support.scm
index 8842198..f151587 100644
--- a/support.scm
+++ b/support.scm
@@ -1692,7 +1692,7 @@ Usage: chicken FILENAME OPTION ...
     -inline-global               enable cross-module inlining
     -specialize                  perform type-based specialization of 
primitive calls
     -emit-inline-file FILENAME   generate file with globally inlinable
-                                  procedures (implies -inline -local)
+                                  procedures
     -consult-inline-file FILENAME  explicitly load inline file
     -no-argc-checks              disable argument count checks
     -no-bound-checks             disable bound variable checks
-- 
1.7.2.1


reply via email to

[Prev in Thread] Current Thread [Next in Thread]