Merge branch 'master' of git://factorcode.org/git/factor
commit
9faad4fa49
|
@ -4,20 +4,42 @@ USING: kernel classes.tuple classes.tuple.private math arrays
|
||||||
byte-arrays words stack-checker.known-words ;
|
byte-arrays words stack-checker.known-words ;
|
||||||
IN: compiler.intrinsics
|
IN: compiler.intrinsics
|
||||||
|
|
||||||
: (tuple) ( layout -- tuple )
|
ERROR: missing-intrinsic ;
|
||||||
"BUG: missing (tuple) intrinsic" throw ;
|
|
||||||
|
: (tuple) ( n -- tuple ) missing-intrinsic ;
|
||||||
|
|
||||||
\ (tuple) { tuple-layout } { tuple } define-primitive
|
\ (tuple) { tuple-layout } { tuple } define-primitive
|
||||||
\ (tuple) make-flushable
|
\ (tuple) make-flushable
|
||||||
|
|
||||||
: (array) ( n -- array )
|
: (array) ( n -- array ) missing-intrinsic ;
|
||||||
"BUG: missing (array) intrinsic" throw ;
|
|
||||||
|
|
||||||
\ (array) { integer } { array } define-primitive
|
\ (array) { integer } { array } define-primitive
|
||||||
\ (array) make-flushable
|
\ (array) make-flushable
|
||||||
|
|
||||||
: (byte-array) ( n -- byte-array )
|
: (byte-array) ( n -- byte-array ) missing-intrinsic ;
|
||||||
"BUG: missing (byte-array) intrinsic" throw ;
|
|
||||||
|
|
||||||
\ (byte-array) { integer } { byte-array } define-primitive
|
\ (byte-array) { integer } { byte-array } define-primitive
|
||||||
\ (byte-array) make-flushable
|
\ (byte-array) make-flushable
|
||||||
|
|
||||||
|
: (ratio) ( -- ratio ) missing-intrinsic ;
|
||||||
|
|
||||||
|
\ (ratio) { } { ratio } define-primitive
|
||||||
|
\ (ratio) make-flushable
|
||||||
|
|
||||||
|
: (complex) ( -- complex ) missing-intrinsic ;
|
||||||
|
|
||||||
|
\ (complex) { } { complex } define-primitive
|
||||||
|
\ (complex) make-flushable
|
||||||
|
|
||||||
|
: (wrapper) ( -- wrapper ) missing-intrinsic ;
|
||||||
|
|
||||||
|
\ (wrapper) { } { wrapper } define-primitive
|
||||||
|
\ (wrapper) make-flushable
|
||||||
|
|
||||||
|
: (set-slot) ( val obj n -- ) missing-intrinsic ;
|
||||||
|
|
||||||
|
\ (set-slot) { object object fixnum } { } define-primitive
|
||||||
|
|
||||||
|
: (write-barrier) ( obj -- ) missing-intrinsic ;
|
||||||
|
|
||||||
|
\ (write-barrier) { object } { } define-primitive
|
||||||
|
|
|
@ -298,6 +298,12 @@ SYMBOL: value-infos
|
||||||
: node-output-infos ( node -- seq )
|
: node-output-infos ( node -- seq )
|
||||||
dup out-d>> [ node-value-info ] with map ;
|
dup out-d>> [ node-value-info ] with map ;
|
||||||
|
|
||||||
|
: first-literal ( #call -- obj )
|
||||||
|
dup in-d>> first node-value-info literal>> ;
|
||||||
|
|
||||||
|
: last-literal ( #call -- obj )
|
||||||
|
dup out-d>> peek node-value-info literal>> ;
|
||||||
|
|
||||||
: immutable-tuple-boa? ( #call -- ? )
|
: immutable-tuple-boa? ( #call -- ? )
|
||||||
dup word>> \ <tuple-boa> eq? [
|
dup word>> \ <tuple-boa> eq? [
|
||||||
dup in-d>> peek node-value-info
|
dup in-d>> peek node-value-info
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
! Copyright (C) 2007 Slava Pestov.
|
! Copyright (C) 2007, 2008 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: namespaces math words kernel assocs classes
|
USING: namespaces math words kernel assocs classes
|
||||||
math.order kernel.private ;
|
math.order kernel.private ;
|
||||||
|
@ -74,3 +74,5 @@ M: bignum >integer
|
||||||
M: real >integer
|
M: real >integer
|
||||||
dup most-negative-fixnum most-positive-fixnum between?
|
dup most-negative-fixnum most-positive-fixnum between?
|
||||||
[ >fixnum ] [ >bignum ] if ;
|
[ >fixnum ] [ >bignum ] if ;
|
||||||
|
|
||||||
|
UNION: immediate fixnum POSTPONE: f ;
|
||||||
|
|
Loading…
Reference in New Issue