This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMU Common Lisp".
The branch, master has been updated via aa96ed2c3a137c91d1dc5b093c216dab9098f684 (commit) via 746b693fcaf68942e81f54827f0567d2024fa2f2 (commit) via fafec7a74c93e625837de704c17becfa21ec7929 (commit) via 1c272796c2f8e55ed70efee07ab35eb123e15361 (commit) via e5614137527de543e2db8a36acd2bd98d590bf4f (commit) via 7219aff9de80f64693e962be53d6448a5006da17 (commit) via d5c4bf02e10c67057084836549647879584d29bb (commit) via 2a93478cc3f27b51eab5cf03a369c3be3198ecd7 (commit) via 7760d6b885f7f40759bca5e9b0b9d77439c96a94 (commit) via 7a6b43385b08db8414dbef6ebeea1a546fc07d54 (commit) via 1f129c07172f4cb20e7b5bb5f81b751835cdf55d (commit) via 926c825e22595b1a84bc8b506002cef5116a1156 (commit) via 22a7242216b409ea56b0a5c511d92f2b4ce971ad (commit) via 9de92cad019d1644556a9cc6e5108cf08f9dd4b7 (commit) via 3cbda6ca17f8c0a0d5af99cbb4e7b79a9900bc09 (commit) via ff6c7800a9daad265e8179497ccaca578d405ed9 (commit) via b815e78622eaeef8487fb0f4d084c18f279b8e52 (commit) from 771b7ee43d15c24563557b102ec15f466ece13cb (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit aa96ed2c3a137c91d1dc5b093c216dab9098f684 Author: Raymond Toy rtoy@google.com Date: Wed Jan 4 09:19:58 2012 -0800
Get rid of more compiler warnings on Linux by making HANDLER_ARGS match the sa_sigaction argument types. Adjust code appropriately to use os_context_t appropriately too.
diff --git a/src/lisp/Linux-os.c b/src/lisp/Linux-os.c index 20731e2..6c8f10f 100644 --- a/src/lisp/Linux-os.c +++ b/src/lisp/Linux-os.c @@ -406,18 +406,19 @@ sigsegv_handler_tramp(void) void sigsegv_handler(HANDLER_ARGS) { - int fault_addr = context->uc_mcontext.cr2; + os_context_t *os_context = (os_context_t *) context; + int fault_addr = os_context->uc_mcontext.cr2;
#ifdef RED_ZONE_HIT - if (os_control_stack_overflow((void *) fault_addr, context)) + if (os_control_stack_overflow((void *) fault_addr, os_context)) return; #endif if (gc_write_barrier(code->si_addr)) return; #if defined(__x86_64) - DPRINTF(0, (stderr, "sigsegv: rip: %p\n", context->uc_mcontext.gregs[REG_RIP])); + DPRINTF(0, (stderr, "sigsegv: rip: %p\n", os_context->uc_mcontext.gregs[REG_RIP])); #else - DPRINTF(0, (stderr, "sigsegv: eip: %x\n", context->uc_mcontext.gregs[REG_EIP])); + DPRINTF(0, (stderr, "sigsegv: eip: %x\n", os_context->uc_mcontext.gregs[REG_EIP])); #endif
#ifdef RED_ZONE_HIT @@ -427,13 +428,13 @@ sigsegv_handler(HANDLER_ARGS) to the other stack. */ tramp_signal = signal; tramp_code = *code; - tramp_context = *context; - SC_PC(context) = (unsigned long) sigsegv_handler_tramp; + tramp_context = *os_context; + SC_PC(os_context) = (unsigned long) sigsegv_handler_tramp; return; } #endif
- sigsegv_handle_now(signal, code, context); + sigsegv_handle_now(signal, code, os_context); } #else static void diff --git a/src/lisp/Linux-os.h b/src/lisp/Linux-os.h index 06acf3b..b00e454 100644 --- a/src/lisp/Linux-os.h +++ b/src/lisp/Linux-os.h @@ -44,7 +44,7 @@ typedef int os_vm_prot_t; /* like hpux */
void restore_fpu(ucontext_t *);
-#define HANDLER_ARGS int signal, siginfo_t *code, ucontext_t *context +#define HANDLER_ARGS int signal, siginfo_t *code, void *context #define CODE(code) ((code) ? code->si_code : 0) #define RESTORE_FPU(context) restore_fpu(context)
diff --git a/src/lisp/interrupt.c b/src/lisp/interrupt.c index 39a2d87..de17cee 100644 --- a/src/lisp/interrupt.c +++ b/src/lisp/interrupt.c @@ -406,7 +406,7 @@ interrupt_install_low_level_handler(int signal, void handler(HANDLER_ARGS)) { struct sigaction sa;
- sa.sa_sigaction = handler; + sa.sa_sigaction = (void (*)(HANDLER_ARGS)) handler; sigemptyset(&sa.sa_mask); FILLBLOCKSET(&sa.sa_mask); sa.sa_flags = SA_RESTART | SA_SIGINFO; @@ -461,12 +461,12 @@ install_handler(int signal, void handler(HANDLER_ARGS)) if (interrupt_low_level_handlers[signal] == 0) { if (handler == (void (*)(HANDLER_ARGS)) SIG_DFL || handler == (void (*)(HANDLER_ARGS)) SIG_IGN) - sa.sa_sigaction = handler; + sa.sa_sigaction = (void (*)(HANDLER_ARGS)) handler; else if (sigismember(&new, signal)) - sa.sa_sigaction = maybe_now_maybe_later; + sa.sa_sigaction = (void (*)(HANDLER_ARGS)) maybe_now_maybe_later; else - sa.sa_sigaction = interrupt_handle_now_handler; - + sa.sa_sigaction = (void (*)(HANDLER_ARGS)) interrupt_handle_now_handler; + sigemptyset(&sa.sa_mask); FILLBLOCKSET(&sa.sa_mask); sa.sa_flags = SA_SIGINFO | SA_RESTART; diff --git a/src/lisp/x86-arch.c b/src/lisp/x86-arch.c index 474fb87..2932b13 100644 --- a/src/lisp/x86-arch.c +++ b/src/lisp/x86-arch.c @@ -278,11 +278,11 @@ void sigtrap_handler(HANDLER_ARGS) { unsigned int trap; - + os_context_t* os_context = (os_context_t *) context; #if 0 fprintf(stderr, "x86sigtrap: %8x %x\n", - SC_PC(context), *(unsigned char *) (SC_PC(context) - 1)); - fprintf(stderr, "sigtrap(%d %d %x)\n", signal, CODE(code), context); + SC_PC(os_os_context), *(unsigned char *) (SC_PC(os_context) - 1)); + fprintf(stderr, "sigtrap(%d %d %x)\n", signal, CODE(code), os_context); #endif
if (single_stepping && (signal == SIGTRAP)) { @@ -292,7 +292,7 @@ sigtrap_handler(HANDLER_ARGS)
#ifdef SC_EFLAGS /* Disable single-stepping */ - SC_EFLAGS(context) ^= 0x100; + SC_EFLAGS(os_context) ^= 0x100; #else /* Un-install single step helper instructions. */ *(single_stepping - 3) = single_step_save1; @@ -304,7 +304,7 @@ sigtrap_handler(HANDLER_ARGS) /* * Re-install the breakpoint if possible. */ - if ((int) SC_PC(context) == (int) single_stepping + 1) + if ((int) SC_PC(os_context) == (int) single_stepping + 1) fprintf(stderr, "* Breakpoint not re-install\n"); else { char *ptr = (char *) single_stepping; @@ -318,9 +318,9 @@ sigtrap_handler(HANDLER_ARGS) }
/* This is just for info in case monitor wants to print an approx */ - current_control_stack_pointer = (unsigned long *) SC_SP(context); + current_control_stack_pointer = (unsigned long *) SC_SP(os_context);
- RESTORE_FPU(context); + RESTORE_FPU(os_context);
/* * On entry %eip points just after the INT3 byte and aims at the @@ -329,13 +329,13 @@ sigtrap_handler(HANDLER_ARGS) * arguments to follow. */
- trap = *(unsigned char *) SC_PC(context); + trap = *(unsigned char *) SC_PC(os_context);
switch (trap) { case trap_PendingInterrupt: DPRINTF(0, (stderr, "<trap Pending Interrupt.>\n")); - arch_skip_instruction(context); - interrupt_handle_pending(context); + arch_skip_instruction(os_context); + interrupt_handle_pending(os_context); break;
case trap_Halt: @@ -345,59 +345,59 @@ sigtrap_handler(HANDLER_ARGS)
fpu_save(fpu_state); #endif - fake_foreign_function_call(context); + fake_foreign_function_call(os_context); lose("%%primitive halt called; the party is over.\n"); - undo_fake_foreign_function_call(context); + undo_fake_foreign_function_call(os_context); #ifndef __linux__ fpu_restore(fpu_state); #endif - arch_skip_instruction(context); + arch_skip_instruction(os_context); break; }
case trap_Error: case trap_Cerror: DPRINTF(0, (stderr, "<trap Error %x>\n", CODE(code))); - interrupt_internal_error(signal, code, context, CODE(code) == trap_Cerror); + interrupt_internal_error(signal, code, os_context, CODE(code) == trap_Cerror); break;
case trap_Breakpoint: #if 0 fprintf(stderr, "*C break\n"); #endif - SC_PC(context) -= 1; + SC_PC(os_context) -= 1;
- handle_breakpoint(signal, CODE(code), context); + handle_breakpoint(signal, CODE(code), os_context); #if 0 fprintf(stderr, "*C break return\n"); #endif break;
case trap_FunctionEndBreakpoint: - SC_PC(context) -= 1; - SC_PC(context) = - (int) handle_function_end_breakpoint(signal, CODE(code), context); + SC_PC(os_context) -= 1; + SC_PC(os_context) = + (int) handle_function_end_breakpoint(signal, CODE(code), os_context); break;
#ifdef trap_DynamicSpaceOverflowWarning case trap_DynamicSpaceOverflowWarning: interrupt_handle_space_overflow(SymbolFunction (DYNAMIC_SPACE_OVERFLOW_WARNING_HIT), - context); + os_context); break; #endif #ifdef trap_DynamicSpaceOverflowError case trap_DynamicSpaceOverflowError: interrupt_handle_space_overflow(SymbolFunction (DYNAMIC_SPACE_OVERFLOW_ERROR_HIT), - context); + os_context); break; #endif default: DPRINTF(0, (stderr, "[C--trap default %d %d %p]\n", signal, CODE(code), - context)); - interrupt_handle_now(signal, code, context); + os_context)); + interrupt_handle_now(signal, code, os_context); break; } }
commit 746b693fcaf68942e81f54827f0567d2024fa2f2 Merge: fafec7a 771b7ee Author: Raymond Toy rtoy@google.com Date: Wed Jan 4 08:38:06 2012 -0800
Merge branch 'master' of git://common-lisp.net/projects/cmucl/cmucl
commit fafec7a74c93e625837de704c17becfa21ec7929 Merge: 1c27279 f187450 Author: Raymond Toy rtoy@google.com Date: Thu Dec 22 14:35:11 2011 -0800
Merge branch 'master' of git://common-lisp.net/projects/cmucl/cmucl
commit 1c272796c2f8e55ed70efee07ab35eb123e15361 Merge: e561413 43c8a82 Author: Raymond Toy rtoy@google.com Date: Thu Dec 22 08:26:23 2011 -0800
Merge branch 'master' of git://common-lisp.net/projects/cmucl/cmucl
commit e5614137527de543e2db8a36acd2bd98d590bf4f Merge: 7219aff 2326ebc Author: Raymond Toy rtoy@google.com Date: Wed Dec 21 08:58:30 2011 -0800
Merge branch 'master' of git://common-lisp.net/projects/cmucl/cmucl
commit 7219aff9de80f64693e962be53d6448a5006da17 Merge: d5c4bf0 d56fecd Author: Raymond Toy rtoy@google.com Date: Fri Dec 16 08:53:11 2011 -0800
Merge branch 'master' of git://common-lisp.net/projects/cmucl/cmucl
commit d5c4bf02e10c67057084836549647879584d29bb Merge: 2a93478 71e768a Author: Raymond Toy rtoy@google.com Date: Thu Dec 8 10:28:15 2011 -0800
Merge branch 'master' of git://common-lisp.net/projects/cmucl/cmucl
commit 2a93478cc3f27b51eab5cf03a369c3be3198ecd7 Author: Raymond Toy rtoy@google.com Date: Thu Dec 8 09:55:36 2011 -0800
Fix ticket:50
Catch the case of " " and signal an error so that we can print such pathnames using the #P(...) syntax. Also catch the case where the directory includes an explicit directory separator, "/", which would not be printed readably either.
Update the pot file too.
diff --git a/src/code/filesys.lisp b/src/code/filesys.lisp index ab2f564..308b8b5 100644 --- a/src/code/filesys.lisp +++ b/src/code/filesys.lisp @@ -488,7 +488,14 @@ (error (intl:gettext ":BACK cannot be represented in namestrings."))) ((member :wild-inferiors) (pieces "**/")) - ((or simple-string pattern (eql :wild)) + (simple-string + (when (zerop (length dir)) + (error (intl:gettext "Cannot represent "" in namestrings."))) + (when (string-equal dir "/") + (error (intl:gettext "Cannot represent an explicit directory separator in namestrings."))) + (pieces (unparse-unix-piece dir)) + (pieces "/")) + ((or pattern (eql :wild)) (pieces (unparse-unix-piece dir)) (pieces "/")) (t diff --git a/src/i18n/locale/cmucl.pot b/src/i18n/locale/cmucl.pot index 92ace3d..a1087ca 100644 --- a/src/i18n/locale/cmucl.pot +++ b/src/i18n/locale/cmucl.pot @@ -9026,7 +9026,15 @@ msgid "" "Convert String to octets using the specified External-format. The\n" " string is bounded by Start (defaulting to 0) and End (defaulting to\n" " the end of the string. If Buffer is given, the octets are stored\n" -" there. If not, a new buffer is created." +" there. If not, a new buffer is created. Buffer-start specifies\n" +" where in the buffer the first octet will be placed.\n" +"\n" +" Three values are returned: The buffer, the number of valid octets\n" +" written, and the number of characters converted. Note that the\n" +" actual number of octets written may be greater than the returned\n" +" value, These represent the partial octets of the next character to\n" +" be converted, but there was not enough room to hold the complete set\n" +" of octets." msgstr ""
#: src/code/extfmts.lisp @@ -9807,6 +9815,14 @@ msgid ":BACK cannot be represented in namestrings." msgstr ""
#: src/code/filesys.lisp +msgid "Cannot represent "" in namestrings." +msgstr "" + +#: src/code/filesys.lisp +msgid "Cannot represent an explicit directory separator in namestrings." +msgstr "" + +#: src/code/filesys.lisp msgid "Cannot specify a directory separator in a pathname name: ~S" msgstr ""
commit 7760d6b885f7f40759bca5e9b0b9d77439c96a94 Merge: 7a6b433 576ae2a Author: Raymond Toy rtoy@google.com Date: Fri Dec 2 08:40:57 2011 -0800
Merge branch 'master' of git://common-lisp.net/projects/cmucl/cmucl
commit 7a6b43385b08db8414dbef6ebeea1a546fc07d54 Merge: 1f129c0 eea8746 Author: Raymond Toy rtoy@google.com Date: Mon Nov 21 08:39:45 2011 -0800
Merge branch 'master' of git://common-lisp.net/projects/cmucl/cmucl
commit 1f129c07172f4cb20e7b5bb5f81b751835cdf55d Merge: 926c825 44ca897 Author: Raymond Toy rtoy@google.com Date: Thu Nov 17 09:19:43 2011 -0800
Merge branch 'master' of git://common-lisp.net/projects/cmucl/cmucl
commit 926c825e22595b1a84bc8b506002cef5116a1156 Merge: 22a7242 17c9b81 Author: Raymond Toy rtoy@google.com Date: Mon Nov 7 08:57:40 2011 -0800
Merge branch 'master' of git://common-lisp.net/projects/cmucl/cmucl
commit 22a7242216b409ea56b0a5c511d92f2b4ce971ad Merge: 9de92ca 77e3035 Author: Raymond Toy rtoy@google.com Date: Thu Nov 3 11:22:18 2011 -0700
Merge branch 'master' of git://common-lisp.net/projects/cmucl/cmucl
commit 9de92cad019d1644556a9cc6e5108cf08f9dd4b7 Merge: 3cbda6c df24c18 Author: Raymond Toy rtoy@google.com Date: Mon Oct 31 08:42:37 2011 -0700
Merge branch 'master' of git://common-lisp.net/projects/cmucl/cmucl
commit 3cbda6ca17f8c0a0d5af99cbb4e7b79a9900bc09 Merge: ff6c780 938269e Author: Raymond Toy rtoy@google.com Date: Tue Oct 25 09:07:08 2011 -0700
Merge branch 'master' of git://common-lisp.net/projects/cmucl/cmucl
commit ff6c7800a9daad265e8179497ccaca578d405ed9 Merge: b815e78 7243adb Author: Raymond Toy rtoy@google.com Date: Fri Oct 21 09:35:16 2011 -0700
Merge branch 'master' of ssh://rtoy.dyndns.org/Volumes/share2/src/clnet/cmucl/dev/src
commit b815e78622eaeef8487fb0f4d084c18f279b8e52 Author: Raymond Toy rtoy@google.com Date: Fri Oct 21 09:28:16 2011 -0700
Fix (format t "a~0&b"): No newline should be printed.
diff --git a/code/format.lisp b/code/format.lisp index b8a9e76..704ec34 100644 --- a/code/format.lisp +++ b/code/format.lisp @@ -1999,9 +1999,10 @@ (if params (expand-bind-defaults ((count 1)) params `(progn - (fresh-line stream) - (dotimes (i (1- ,count)) - (terpri stream)))) + (when (plusp ,count) + (fresh-line stream) + (dotimes (i (1- ,count)) + (terpri stream))))) '(fresh-line stream)))
(def-format-interpreter #& (colonp atsignp params) @@ -2010,9 +2011,10 @@ :complaint (intl:gettext "Cannot specify either colon or atsign for this directive."))) (interpret-bind-defaults ((count 1)) params - (fresh-line stream) - (dotimes (i (1- count)) - (terpri stream)))) + (when (plusp count) + (fresh-line stream) + (dotimes (i (1- count)) + (terpri stream)))))
(def-format-directive #| (colonp atsignp params) (when (or colonp atsignp)
-----------------------------------------------------------------------
Summary of changes: src/lisp/Linux-os.c | 15 ++++++++------- src/lisp/Linux-os.h | 2 +- src/lisp/interrupt.c | 10 +++++----- src/lisp/x86-arch.c | 46 +++++++++++++++++++++++----------------------- 4 files changed, 37 insertions(+), 36 deletions(-)
hooks/post-receive