diff --git a/core/alien/strings/strings.factor b/core/alien/strings/strings.factor index d59a56e8f6..b5d92e02a0 100644 --- a/core/alien/strings/strings.factor +++ b/core/alien/strings/strings.factor @@ -87,19 +87,9 @@ M: byte-array symbol>string utf8 alien>string ; M: array symbol>string [ utf8 alien>string ] map ", " join ; -string ( n -- str ) special-object utf8 alien>string ; -: string>cpu ( str -- cpu ) - { x86.32 x86.64 arm ppc.32 ppc.64 } [ name>> = ] with find nip ; - -: string>os ( str -- os ) - { windows macosx linux } [ name>> = ] with find nip ; - -PRIVATE> - [ OBJ-CPU special-object>string string>cpu \ cpu set-global OBJ-OS special-object>string string>os \ os set-global diff --git a/core/system/system.factor b/core/system/system.factor index 2803b3f9bd..99628b2b69 100644 --- a/core/system/system.factor +++ b/core/system/system.factor @@ -36,6 +36,30 @@ UNION: unix macosx linux ; : vm-compile-time ( -- string ) \ vm-compile-time get-global ; +cpu-hash H{ + { "x86.32" x86.32 } + { "x86.64" x86.64 } + { "arm" arm } + { "ppc.32" ppc.32 } + { "ppc.64" ppc.64 } +} + +CONSTANT: string>os-hash H{ + { "windows" windows } + { "macosx" macosx } + { "linux" linux } +} + +: string>cpu ( str -- class ) + string>cpu-hash at ; + +: string>os ( str -- class ) + string>os-hash at ; + +PRIVATE> + : image-path ( -- path ) \ image-path get-global ; : vm-path ( -- path ) \ vm-path get-global ;