Commits (2)
tarball=ecl-VERSION.tar.bz2
sha1=66f99db852b23660668e8c1d5304ec842558d1a2
md5=14740f65bb971127bb10caaff855361e
cksum=1956945543
tarball=ecl-VERSION.tgz
sha1=a0db6c435dcc33404b0a2a4a402e1f2edc169e95
md5=204e20f3fa875f1dfab96bfee07ecf60
cksum=2022632711
Backport of fix in master ecl repo. See trac 20845.
diff --git a/src/c/unixfsys.d b/src/c/unixfsys.d
index d3dd4d1..287eded 100644
--- a/src/c/unixfsys.d
+++ b/src/c/unixfsys.d
@@ -158,7 +158,7 @@ current_dir(void) {
output = ecl_alloc_adjustable_base_string(size);
ecl_disable_interrupts();
ok = getcwd((char*)output->base_string.self, size);
- if (ok == NULL && errno != ENAMETOOLONG) {
+ if (ok == NULL && errno != ERANGE) {
perror("ext::getcwd error");
ecl_internal_error("Can't work without CWD");
}
diff --git a/src/lsp/config.lsp.in b/src/lsp/config.lsp.in
index e8bed39..957d7ba 100644
--- a/src/lsp/config.lsp.in
+++ b/src/lsp/config.lsp.in
@@ -7,12 +7,12 @@
;;
(in-package "LISP")
-#+(and (not ecl-min) (not nacl) (not :mingw32) (not :msvc) (not :cygwin) uname)
+#+(and (not ecl-min) (not nacl) (not :mingw32) (not :msvc) uname)
(ffi:clines "
#include <sys/utsname.h>
")
-#+(and (not ecl-min) (not nacl) (not :mingw32) (not :msvc) (not :cygwin) uname)
+#+(and (not ecl-min) (not nacl) (not :mingw32) (not :msvc) uname)
(defun uname ()
(ffi:c-inline () () :object "{
cl_object output;
@@ -28,7 +28,7 @@
@(return) = output;
}" :one-liner nil))
-#+(and ecl-min uname)
+#+ecl-min
(defun uname ()
"A poor man's uname"
(list "@SOFTWARE_TYPE@"
From d23d974654fbef889aa1c110d6e2968e07b58930 Mon Sep 17 00:00:00 2001
From: "Erik M. Bray" <erik.bray@lri.fr>
Date: Thu, 17 Mar 2016 15:57:16 +0100
Subject: [PATCH] Allow CC and other environment variables passed to
safe-run-program to be a command with arguments
---
src/cmp/cmpos-run.lsp | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/cmp/cmpos-run.lsp b/src/cmp/cmpos-run.lsp
index 49f6605..b824409 100755
--- a/src/cmp/cmpos-run.lsp
+++ b/src/cmp/cmpos-run.lsp
@@ -54,7 +54,10 @@
(cmpnote "Invoking external command:~% ~A ~{~A ~}" program args)
(multiple-value-bind (stream result process)
(let* ((*standard-output* ext:+process-standard-output+)
- (*error-output* ext:+process-error-output+))
+ (*error-output* ext:+process-error-output+)
+ (program (split-program-options program))
+ (args `(,@(cdr program) ,@args))
+ (program (car program)))
(with-current-directory
#-(and cygwin (not ecl-min))
(ext:run-program program args :input nil :output t :error t :wait t)
--
1.9.1
commit ce828c400054af96f61b41daa56bd08c195ac749
Author: Fabrizio Fabbri <ffabbri4@bloomberg.net>
Date: Wed Mar 2 12:43:36 2016 -0500
Win64 and Visual Studio compiler
* Fix compilation error.
* Fix feature discover on cl compiler.
diff --git a/src/cmp/cmpmain.lsp b/src/cmp/cmpmain.lsp
index 2eb4008..0b8bbfd 100755
--- a/src/cmp/cmpmain.lsp
+++ b/src/cmp/cmpmain.lsp
@@ -234,6 +234,7 @@ the environment variable TMPDIR to a different value." template))
extern \"C\"
#endif
+ECL_DLLEXPORT
void ~A(cl_object cblock)
{
/*
diff -Naur ecl-16.1.2.orig/src/c/file.d ecl-16.1.2/src/c/file.d
--- ecl-16.1.2.orig/src/c/file.d 2016-05-11 13:10:51.867673867 +1200
+++ ecl-16.1.2/src/c/file.d 2016-05-11 14:44:48.121907307 +1200
@@ -3354,8 +3354,10 @@
ecl_disable_interrupts();
do {
out = fwrite(c, sizeof(char), n, IO_STREAM_FILE(strm));
- } while (out < n && restartable_io_error(strm, "fwrite"));
- ecl_enable_interrupts();
+ /* Ignore write errors to stderr to avoid an infinite loop */
+ } while (out < n && (IO_STREAM_FILE(strm) != stderr) && restartable_io_error(strm, "fwrite"));
diff --git a/src/c/file.d b/src/c/file.d
index 0f739b0..70e5c77 100755
--- a/src/c/file.d
+++ b/src/c/file.d
@@ -3351,7 +3351,9 @@ output_stream_write_byte8(cl_object strm, unsigned char *c, cl_index n)
ecl_disable_interrupts();
do {
out = fwrite(c, sizeof(char), n, IO_STREAM_FILE(strm));
- } while (out < n && restartable_io_error(strm, "fwrite"));
+ /* Ignore write errors to stderr to avoid an infinite loop */
+ } while (out < n && (IO_STREAM_FILE(strm) != stderr) && restartable_io_error(strm, "fwrite"));
+
+ ecl_enable_interrupts();
return out;
ecl_enable_interrupts();
return out;
}
......@@ -134,7 +134,7 @@ def test_ecl_options():
sage: test_ecl_options()
ECL_OPT_INCREMENTAL_GC = 0
ECL_OPT_TRAP_SIGSEGV = 1
ECL_OPT_TRAP_SIGFPE = 1
ECL_OPT_TRAP_SIGFPE = 0
ECL_OPT_TRAP_SIGINT = 1
ECL_OPT_TRAP_SIGILL = 1
ECL_OPT_TRAP_SIGBUS = 1
......@@ -244,6 +244,8 @@ def init_ecl():
# we need it to stop handling SIGCHLD
ecl_set_option(ECL_OPT_TRAP_SIGCHLD, 0);
# we need it to stop handling SIGFPE - as of ECL 16.1.3
ecl_set_option(ECL_OPT_TRAP_SIGFPE, 0);
#we keep our own GMP memory functions. ECL should not claim them
ecl_set_option(ECL_OPT_SET_GMP_MEMORY_FUNCTIONS,0);
......