]> gitweb.factorcode.org Git - factor.git/blob - core/system/system.factor
731cbd31087c289bfd05817cee20bd68cb77efd4
[factor.git] / core / system / system.factor
1 ! Copyright (C) 2007, 2010 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: kernel kernel.private sequences math namespaces
4 init splitting assocs system.private layouts words ;
5 IN: system
6
7 SINGLETONS: x86.32 x86.64 arm ppc.32 ppc.64 ;
8
9 UNION: x86 x86.32 x86.64 ;
10 UNION: ppc ppc.32 ppc.64 ;
11
12 : cpu ( -- class ) \ cpu get-global ; foldable
13
14 SINGLETONS: windows macosx linux ;
15
16 UNION: unix macosx linux ;
17
18 : os ( -- class ) \ os get-global ; foldable
19
20 : vm-compiler ( -- string ) \ vm-compiler get-global ; foldable
21
22 <PRIVATE
23
24 : string>cpu ( str -- class )
25     H{
26         { "x86.32" x86.32 }
27         { "x86.64" x86.64 }
28         { "arm" arm }
29         { "ppc.32" ppc.32 }
30         { "ppc.64" ppc.64 }
31     } at ;
32
33 : string>os ( str -- class )
34     H{
35         { "windows" windows }
36         { "macosx" macosx }
37         { "linux" linux }
38     } at ;
39
40 PRIVATE>
41
42 : image ( -- path ) \ image get-global ;
43
44 : vm ( -- path ) \ vm get-global ;
45
46 : embedded? ( -- ? ) OBJ-EMBEDDED special-object ;
47
48 : exit ( n -- * ) do-shutdown-hooks (exit) ;