fix 1.0 1+ compiler bug
parent
2524f441ed
commit
c0f4d073df
27
CHANGES.html
27
CHANGES.html
|
@ -8,7 +8,21 @@
|
||||||
|
|
||||||
<ul>
|
<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:
|
<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 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 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 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>
|
</ul>
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
|
@ -49,6 +65,8 @@ sequences which have the same elements as the two input sequences, with the comm
|
||||||
prefix removed.</li>
|
prefix removed.</li>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
<li>Everything else:
|
<li>Everything else:
|
||||||
|
|
||||||
<ul>
|
<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>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>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
|
<li>Advanced math library with quaternions, matrices, polynomials, statistics and various
|
||||||
advanced mathematical functions. (Doug Coleman)</li>
|
functions in <code>contrib/math/</code>. (Doug Coleman)</li>
|
||||||
|
<li>Dimensioned units in <code>contrib/units/</code>. (Doug Coleman)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
0.79:
|
0.79:
|
||||||
|
|
||||||
- update handbook
|
|
||||||
- fix remaining GL issues
|
- fix remaining GL issues
|
||||||
|
- UI issue: try resizing slider while menu is open
|
||||||
- 3/2 { 1 2 3 } nth -> fep
|
- 3/2 { 1 2 3 } nth -> fep
|
||||||
- 1.0 1+ -> 1.0 1.0 1- -> 1.0
|
|
||||||
|
|
||||||
+ ui:
|
+ ui:
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,6 @@ parser threads words ;
|
||||||
init-threads
|
init-threads
|
||||||
init-io
|
init-io
|
||||||
"HOME" os-env [ "." ] unless* "~" set
|
"HOME" os-env [ "." ] unless* "~" set
|
||||||
init-assembler
|
|
||||||
init-error-handler
|
init-error-handler
|
||||||
default-cli-args
|
default-cli-args
|
||||||
parse-command-line
|
parse-command-line
|
||||||
|
|
|
@ -1,10 +1,8 @@
|
||||||
! Copyright (C) 2004, 2005 Slava Pestov.
|
! Copyright (C) 2004, 2005 Slava Pestov.
|
||||||
! See http://factor.sf.net/license.txt for BSD license.
|
! See http://factor.sf.net/license.txt for BSD license.
|
||||||
IN: assembler
|
IN: assembler
|
||||||
USING: alien compiler-backend math memory kernel hashtables
|
USING: alien compiler-backend generic hashtables kernel lists
|
||||||
namespaces ;
|
math memory namespaces ;
|
||||||
|
|
||||||
SYMBOL: interned-literals
|
|
||||||
|
|
||||||
: compiled-header HEX: 01c3babe ; inline
|
: compiled-header HEX: 01c3babe ; inline
|
||||||
|
|
||||||
|
@ -25,9 +23,6 @@ SYMBOL: interned-literals
|
||||||
literal-top set-compiled-cell
|
literal-top set-compiled-cell
|
||||||
literal-top dup cell + set-literal-top ;
|
literal-top dup cell + set-literal-top ;
|
||||||
|
|
||||||
: intern-literal ( obj -- lit# )
|
|
||||||
interned-literals get [ add-literal ] cache ;
|
|
||||||
|
|
||||||
: compile-byte ( n -- )
|
: compile-byte ( n -- )
|
||||||
compiled-offset set-compiled-byte
|
compiled-offset set-compiled-byte
|
||||||
compiled-offset 1+ set-compiled-offset ; inline
|
compiled-offset 1+ set-compiled-offset ; inline
|
||||||
|
@ -41,7 +36,4 @@ SYMBOL: interned-literals
|
||||||
compiled-offset 0 compile-cell
|
compiled-offset 0 compile-cell
|
||||||
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> ;
|
: 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 ;
|
dup 0 vop-in address swap 0 vop-out v>operand LOAD ;
|
||||||
|
|
||||||
: load-indirect ( dest literal -- )
|
: 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 -- )
|
M: %indirect generate-node ( vop -- )
|
||||||
dup 0 vop-out v>operand swap 0 vop-in load-indirect ;
|
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, ;
|
0 rel-type, relocating word-primitive rel, ;
|
||||||
|
|
||||||
: rel-dlsym ( name dll rel/abs 16/16 -- )
|
: 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 -- )
|
: rel-address ( rel/abs 16/16 -- )
|
||||||
#! Relocate address just compiled.
|
#! 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 ;
|
dup 0 vop-out v>operand swap 0 vop-in address MOV ;
|
||||||
|
|
||||||
: load-indirect ( dest literal -- )
|
: 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 -- )
|
M: %indirect generate-node ( vop -- )
|
||||||
#! indirect load of a literal through a table
|
#! indirect load of a literal through a table
|
||||||
|
|
Loading…
Reference in New Issue