48 lines
992 B
Factor
48 lines
992 B
Factor
! Copyright (C) 2007, 2010 Slava Pestov.
|
|
! See http://factorcode.org/license.txt for BSD license.
|
|
USING: assocs init kernel.private namespaces ;
|
|
IN: system
|
|
|
|
SINGLETONS: x86.32 x86.64 arm ppc.32 ppc.64 ;
|
|
|
|
UNION: x86 x86.32 x86.64 ;
|
|
UNION: ppc ppc.32 ppc.64 ;
|
|
|
|
: cpu ( -- class ) \ cpu get-global ; foldable
|
|
|
|
SINGLETONS: windows macosx linux ;
|
|
|
|
UNION: unix macosx linux ;
|
|
|
|
: os ( -- class ) \ os get-global ; foldable
|
|
|
|
: vm-compiler ( -- string ) \ vm-compiler get-global ; foldable
|
|
|
|
<PRIVATE
|
|
|
|
: string>cpu ( str -- class )
|
|
H{
|
|
{ "x86.32" x86.32 }
|
|
{ "x86.64" x86.64 }
|
|
{ "arm" arm }
|
|
{ "ppc.32" ppc.32 }
|
|
{ "ppc.64" ppc.64 }
|
|
} at ;
|
|
|
|
: string>os ( str -- class )
|
|
H{
|
|
{ "windows" windows }
|
|
{ "macosx" macosx }
|
|
{ "linux" linux }
|
|
} at ;
|
|
|
|
PRIVATE>
|
|
|
|
: image ( -- path ) \ image get-global ;
|
|
|
|
: vm ( -- path ) \ vm get-global ;
|
|
|
|
: embedded? ( -- ? ) OBJ-EMBEDDED special-object ;
|
|
|
|
: exit ( n -- * ) do-shutdown-hooks (exit) ;
|