]> gitweb.factorcode.org Git - factor.git/commitdiff
fix another Mach-O FFI problem
authorSlava Pestov <slava@factorcode.org>
Mon, 24 Oct 2005 02:31:01 +0000 (02:31 +0000)
committerSlava Pestov <slava@factorcode.org>
Mon, 24 Oct 2005 02:31:01 +0000 (02:31 +0000)
CHANGES.html
library/compiler/ppc/generator.factor
native/unix/mach_signal.c

index d72381387707085571711688fdc5c309dd57b9f1..0872389cde916d1ab6fd6898c4fe03755c9b2ca5 100644 (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>
index 91eac8e19857bd911c5b75517a676fea50345fd6..7db4a1c9efb51dbf30cd9dd09a480ac37ec9d13c 100644 (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
index 8b52fec1aaf192fad0a94cc7d2e890bc0c68a059..a6f5ba9a42940b50d1ea45ad2d8a18201b805623 100644 (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 ();
 }