fix 1.0 1+ compiler bug
parent
2524f441ed
commit
c0f4d073df
27
CHANGES.html
27
CHANGES.html
|
@ -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>
|
||||
|
|
|
@ -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:
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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> ;
|
||||
|
|
|
@ -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 ;
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue