summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/ref/api-evaluation.texi11
-rw-r--r--module/system/base/compile.scm7
2 files changed, 13 insertions, 5 deletions
diff --git a/doc/ref/api-evaluation.texi b/doc/ref/api-evaluation.texi
index e20bad429..0a85ec98b 100644
--- a/doc/ref/api-evaluation.texi
+++ b/doc/ref/api-evaluation.texi
@@ -567,8 +567,9 @@ Add @var{dir} to the front of the module load path.
@item -o @var{ofile}
@itemx --output=@var{ofile}
-Write output bytecode to @var{ofile}. By convention, bytecode file names end
-in @code{.go}.
+Write output bytecode to @var{ofile}. By convention, bytecode file
+names end in @code{.go}. When @option{-o} is omitted, the output file
+name is as for @code{compile-file} (see below).
@item -W @var{warning}
@itemx --warn=@var{warning}
@@ -589,6 +590,9 @@ Use @var{lang} as the target language of @var{file}. If this option is omitted,
@end table
+Each @var{file} is assumed to be UTF-8-encoded, unless it contains a
+coding declaration as recognized by @code{file-encoding}
+(@pxref{Character Encoding of Source Files}).
@end deffn
The compiler can also be invoked directly by Scheme code using the procedures
@@ -608,6 +612,9 @@ Compile the file named @var{file}.
Output will be written to a file in the current directory whose name
is computed as @code{(compiled-file-name @var{file})}.
+
+As with @command{guile-tools compile}, @var{file} is assumed to be
+UTF-8-encoded unless it contains a coding declaration.
@end deffn
@deffn {Scheme Procedure} compiled-file-name file
diff --git a/module/system/base/compile.scm b/module/system/base/compile.scm
index 7c83fd7f5..35dc0b197 100644
--- a/module/system/base/compile.scm
+++ b/module/system/base/compile.scm
@@ -1,6 +1,6 @@
;;; High-level compiler interface
-;; Copyright (C) 2001, 2009, 2010 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2009, 2010, 2011 Free Software Foundation, Inc.
;;; This library is free software; you can redistribute it and/or
;;; modify it under the terms of the GNU Lesser General Public
@@ -120,8 +120,9 @@
(let* ((comp (or output-file (compiled-file-name file)))
(in (open-input-file file))
(enc (file-encoding in)))
- (if enc
- (set-port-encoding! in enc))
+ ;; Choose the input encoding deterministically.
+ (set-port-encoding! in (or enc "UTF-8"))
+
(ensure-writable-dir (dirname comp))
(call-with-output-file/atomic comp
(lambda (port)