]> gitweb.factorcode.org Git - factor.git/blob - core/system/system.factor
595c439f0cc6fe7e76cf01442a840b26dff185e2
[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: assocs init kernel.private namespaces ;
4 IN: system
5
6 SINGLETONS: x86.32 x86.64 arm ppc.32 ppc.64 ;
7
8 UNION: x86 x86.32 x86.64 ;
9 UNION: ppc ppc.32 ppc.64 ;
10
11 : cpu ( -- class ) \ cpu get-global ; foldable
12
13 SINGLETONS: windows macosx linux ;
14
15 UNION: unix macosx linux ;
16
17 : os ( -- class ) \ os get-global ; foldable
18
19 : vm-compiler ( -- string ) \ vm-compiler get-global ; foldable
20
21 <PRIVATE
22
23 : string>cpu ( str -- class )
24     H{
25         { "x86.32" x86.32 }
26         { "x86.64" x86.64 }
27         { "arm" arm }
28         { "ppc.32" ppc.32 }
29         { "ppc.64" ppc.64 }
30     } at ;
31
32 : string>os ( str -- class )
33     H{
34         { "windows" windows }
35         { "macosx" macosx }
36         { "linux" linux }
37     } at ;
38
39 PRIVATE>
40
41 : image ( -- path ) \ image get-global ;
42
43 : vm ( -- path ) \ vm get-global ;
44
45 : embedded? ( -- ? ) OBJ-EMBEDDED special-object ;
46
47 : exit ( n -- * ) do-shutdown-hooks (exit) ;