fix 1.0 1+ compiler bug

cvs
Slava Pestov 2005-11-05 01:19:15 +00:00
parent 2524f441ed
commit c0f4d073df
7 changed files with 29 additions and 20 deletions

View File

@ -8,7 +8,21 @@
<ul>
<li>The <code>ifte</code> combinator has been renamed to <code>if</code>!</li>
<li>Incompatible changes:
<ul>
<li>The <code>ifte</code> combinator has been renamed to <code>if</code>.</li>
<li>Syntax changes:
<pre>
{ 1 2 3 } ! arrays
V{ 1 2 3 } ! vectors
H{ [[ key value ]] ... } ! hashtables
C{ 1.02 -7.44 } ! complex numbers
T{ class slots ... } ! tuple
</pre>
</li>
</ul>
<li>Compiler:
@ -29,7 +43,9 @@
<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>
<lI>Added mouse-over help for presentations</lI>
<lI>Added mouse-over help for presentations.</lI>
<li>Previously-entered output is now clickable in the listener.</li>
<li>New, better-looking widget theme.</li>
</ul>
</li>
@ -49,6 +65,8 @@ sequences which have the same elements as the two input sequences, with the comm
prefix removed.</li>
</li>
</ul>
<li>Everything else:
<ul>
@ -88,8 +106,9 @@ 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>New <code>contrib/math/</code> library with quaternions, matrices, polynomials, and various
advanced mathematical functions. (Doug Coleman)</li>
<li>Advanced math library with quaternions, matrices, polynomials, statistics and various
functions in <code>contrib/math/</code>. (Doug Coleman)</li>
<li>Dimensioned units in <code>contrib/units/</code>. (Doug Coleman)</li>
</ul>
</li>

View File

@ -1,9 +1,8 @@
0.79:
- update handbook
- fix remaining GL issues
- UI issue: try resizing slider while menu is open
- 3/2 { 1 2 3 } nth -> fep
- 1.0 1+ -> 1.0 1.0 1- -> 1.0
+ ui:

View File

@ -11,7 +11,6 @@ parser threads words ;
init-threads
init-io
"HOME" os-env [ "." ] unless* "~" set
init-assembler
init-error-handler
default-cli-args
parse-command-line

View File

@ -1,10 +1,8 @@
! Copyright (C) 2004, 2005 Slava Pestov.
! See http://factor.sf.net/license.txt for BSD license.
IN: assembler
USING: alien compiler-backend math memory kernel hashtables
namespaces ;
SYMBOL: interned-literals
USING: alien compiler-backend generic hashtables kernel lists
math memory namespaces ;
: compiled-header HEX: 01c3babe ; inline
@ -25,9 +23,6 @@ SYMBOL: interned-literals
literal-top set-compiled-cell
literal-top dup cell + set-literal-top ;
: intern-literal ( obj -- lit# )
interned-literals get [ add-literal ] cache ;
: compile-byte ( n -- )
compiled-offset set-compiled-byte
compiled-offset 1+ set-compiled-offset ; inline
@ -41,7 +36,4 @@ SYMBOL: interned-literals
compiled-offset 0 compile-cell
compiled-offset 0 compile-cell ;
: init-assembler ( -- )
H{ } clone interned-literals global set-hash ;
: w>h/h dup -16 shift HEX: ffff bitand >r HEX: ffff bitand r> ;

View File

@ -12,7 +12,7 @@ M: %immediate generate-node ( vop -- )
dup 0 vop-in address swap 0 vop-out v>operand LOAD ;
: load-indirect ( dest literal -- )
intern-literal over LOAD32 0 1 rel-address dup 0 LWZ ;
add-literal over LOAD32 0 1 rel-address dup 0 LWZ ;
M: %indirect generate-node ( vop -- )
dup 0 vop-out v>operand swap 0 vop-in load-indirect ;

View File

@ -19,7 +19,7 @@ SYMBOL: relocation-table
0 rel-type, relocating word-primitive rel, ;
: rel-dlsym ( name dll rel/abs 16/16 -- )
1 rel-type, relocating cons intern-literal rel, ;
1 rel-type, relocating cons add-literal rel, ;
: rel-address ( rel/abs 16/16 -- )
#! Relocate address just compiled.

View File

@ -27,7 +27,7 @@ M: %immediate generate-node ( vop -- )
dup 0 vop-out v>operand swap 0 vop-in address MOV ;
: load-indirect ( dest literal -- )
intern-literal unit MOV 0 0 rel-address ;
add-literal unit MOV 0 0 rel-address ;
M: %indirect generate-node ( vop -- )
#! indirect load of a literal through a table