[Ecls-list] Two small problems with ECL 15.2.21 on Windows

Polos Ruetz polos.ruetz at gmail.com
Wed Feb 25 08:03:34 UTC 2015


Hi,

just reporting two small problems with new ECL 15.2.21 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