[Ecls-list] 2 small problems with ECL 15.2.21 on Windows/MSVC
Polos Ruetz
polos.ruetz at gmail.com
Tue Feb 24 19:48:18 UTC 2015
Hi,
just reporting 2 small problems with new ECL on Windows, using the
MSVC (2008/2010) compilers:
(1) File "ecl/src/c/file.d" needs this patch to compile correctly (see
also attachment):
diff --git a/_file.d b/file.d
index 578cc27..8427b3b 100755
--- a/_file.d
+++ b/file.d
@@ -2773,12 +2773,12 @@ io_file_length(cl_object strm)
static cl_object
io_file_get_position(cl_object strm)
{
- int f = IO_FILE_DESCRIPTOR(strm);
- if (isatty(f)) return(ECL_NIL);
-
cl_object output;
ecl_off_t offset;
+ int f = IO_FILE_DESCRIPTOR(strm);
+ if (isatty(f)) return(ECL_NIL);
+
ecl_disable_interrupts();
offset = lseek(f, 0, SEEK_CUR);
ecl_enable_interrupts();
@@ -2810,10 +2810,10 @@ io_file_get_position(cl_object strm)
static cl_object
io_file_set_position(cl_object strm, cl_object large_disp)
{
- int f = IO_FILE_DESCRIPTOR(strm);
- if (isatty(f)) return(ECL_NIL);
ecl_off_t disp;
int mode;
+ int f = IO_FILE_DESCRIPTOR(strm);
+ if (isatty(f)) return(ECL_NIL);
if (Null(large_disp)) {
disp = 0;
mode = SEEK_END;
(2) Starting up ECL in a Windows console gives this error (as you can
see, it's simply a problem with character encoding of the name of the
new maintainer):
ECL (Embeddable Common-Lisp) 15.2.21 (git:UNKNOWN)
Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya
Copyright (C) 1993 Giuseppe Attardi
Copyright (C) 2000 Juan J. Garcia-Ripoll
Copyright (C) 2015 Daniel Kochma
Condition of type: STREAM-ENCODING-ERROR
encoding error on stream #<i/o win32 console stream "stdout"> (:EXTERNAL-FORMAT
...
Available restarts:
1. (CONTINUE) Ignore character
2. (USE-VALUE) Store a different character code.
Top level in: #<process TOP-LEVEL>.
>
--
Paul
-------------- next part --------------
diff --git a/_file.d b/file.d
index 578cc27..8427b3b 100755
--- a/_file.d
+++ b/file.d
@@ -2773,12 +2773,12 @@ io_file_length(cl_object strm)
static cl_object
io_file_get_position(cl_object strm)
{
- int f = IO_FILE_DESCRIPTOR(strm);
- if (isatty(f)) return(ECL_NIL);
-
cl_object output;
ecl_off_t offset;
+ int f = IO_FILE_DESCRIPTOR(strm);
+ if (isatty(f)) return(ECL_NIL);
+
ecl_disable_interrupts();
offset = lseek(f, 0, SEEK_CUR);
ecl_enable_interrupts();
@@ -2810,10 +2810,10 @@ io_file_get_position(cl_object strm)
static cl_object
io_file_set_position(cl_object strm, cl_object large_disp)
{
- int f = IO_FILE_DESCRIPTOR(strm);
- if (isatty(f)) return(ECL_NIL);
ecl_off_t disp;
int mode;
+ int f = IO_FILE_DESCRIPTOR(strm);
+ if (isatty(f)) return(ECL_NIL);
if (Null(large_disp)) {
disp = 0;
mode = SEEK_END;
More information about the ecl-devel
mailing list