fix another Mach-O FFI problem

cvs
Slava Pestov 2005-10-24 02:31:01 +00:00
parent b15a262e54
commit 9d2e4a77a6
3 changed files with 14 additions and 29 deletions

View File

@ -17,6 +17,7 @@
<li>Stack shuffles are compiled more efficiently.</li>
<li>Pushing literals on either side of a stack shuffle is now compiled more efficiently.</li>
<li>Fixed a problem with relocation of compiled code on PowerPC.</li>
<li>Fixed various FFI issues on Mac OS X.</li>
</ul>
</li>
@ -24,7 +25,7 @@
<li>User interface:
<ul>
<li>Graphics rendering is now done using OpenGL and text rendering is done via FreeType. SDL_gfx and SDL_ttf libraries are no longer required.</li>
<li>Added expandable outliners. Used by the inspector, <code>.s</code>, <code>usage.</code>, <code>uses.</code>, <code>vocabs.</code>, and various other words.</li>
<li>Added word completion to the listener pane; press <code>TAB</code>.</li>
<li>Added word navigation shortcuts to the listener pane; press <code>C+LEFT</code> and <code>C+RIGHT</code> to move a word at a time, and <code>C+BACKSPACE</code> and <code>C+DELETE</code> to delete the previous and next word, respectively.</li>
@ -51,29 +52,9 @@ prefix removed.</li>
<li>Everything else:
<ul>
<li>Quaternions added to math library.
Quaternions are represented as pairs of real numbers. Literal syntax is <code>Q{ a b c d }Q</code>, where <code>a</code>, <code>b</code>, <code>c</code> and <code>d</code> are real numbers.
Many quaternion operations can be done using Factor's existing vector algebra words; this follows from the mathematical fact that the quaternions are a 2-dimensional vector space over the complex numbers:
<ul>
<li>Addition: <code>v+</code></li>
<li>Subtraction: <code>v-</code></li>
<li>Negation: <code>vneg</code></li>
<li>Norm: <code>norm</code></li>
<li>Multiplication by a complex number on the left: <code>n*v</code></li>
</ul>
A few new words are also needed:
<ul>
<li>Convert complex number to quaternion: <code>c&gt;n</code></li>
<li>Multiply by a complex number on the right: <code>q*n</code></li>
<li>Quaternion multiplication: <code>q*</code></li>
<li>Quaternion division: <code>q/</code></li>
<li>Quaternion conjugate: <code>qconjugate</code></li>
</ul>
</li>
<li>On Mac OS X, signal 11 errors caused by stack under/overflow no longer trigger the
OS X crash reporter dialog.</li>
<li>Easier exception handling. The <code>cleanup ( try cleanup -- )</code> word encapsulates the following idiom:
<pre>
[ A ] [ B rethrow ] catch
@ -105,7 +86,12 @@ However, most uses of <code>catch</code> can be replaced by <code>cleanup</code>
<li>Intel 8080 CPU and Space Invaders emulator in <code>contrib/space-invaders</code> (Chris Double)</li>
<li>AOL Instant Messenger chat client library in <code>contrib/aim</code> (Doug Coleman)</li>
<li>Cairo graphics library binding in <code>contrib/cairo</code> (Sampo Vuori)</li>
<li>Cairo graphics library binding in <code>contrib/cairo</code>. (Sampo Vuori)</li>
<li>New <code>contrib/math/</code> library with quaternions, matrices, polynomials, and various
advanced mathematical functions. (Doug Coleman)</li>
</ul>
</li>
</ul>
</li>

View File

@ -7,7 +7,7 @@ kernel-internals lists math memory namespaces words ;
: compile-c-call ( symbol dll -- )
2dup dlsym 11 LOAD32 0 1 rel-dlsym 11 MTLR BLRL ;
: stack-increment \ stack-reserve get stack@ 16 align ;
: stack-increment \ stack-reserve get 32 max stack@ 16 align ;
M: %prologue generate-node ( vop -- )
drop

View File

@ -3,7 +3,9 @@ Copyright (C) 1993-1999, 2002-2003 Bruno Haible <clisp.org at bruno>
Copyright (C) 2003 Paolo Bonzini <gnu.org at bonzini>
Used under BSD license with permission from Paolo Bonzini and Bruno Haible,
2005-03-10 */
2005-03-10
see http://www.caddr.com/macho/archives/sbcl-devel/2005-3/4764.html */
#ifdef __APPLE__
@ -26,10 +28,7 @@ static SIGSEGV_THREAD_STATE_TYPE save_thread_state;
static void
terminating_handler ()
{
/* Dump core. */
raise (SIGSEGV);
/* Seriously. */
abort ();
}