clean up the bootstrap mess by moving the struct summary and make-mirror methods to classes.struct.prettyprint
parent
badbfef890
commit
f3768b5361
|
@ -1,7 +1,9 @@
|
|||
! (c)Joe Groff bsd license
|
||||
USING: accessors alien assocs classes classes.struct
|
||||
combinators kernel math prettyprint.backend prettyprint.custom
|
||||
prettyprint.sections see.private sequences strings words ;
|
||||
USING: accessors alien alien.c-types arrays assocs classes
|
||||
classes.struct combinators continuations fry kernel make math
|
||||
math.parser mirrors prettyprint.backend prettyprint.custom
|
||||
prettyprint.sections see.private sequences strings
|
||||
summary words ;
|
||||
IN: classes.struct.prettyprint
|
||||
|
||||
<PRIVATE
|
||||
|
@ -46,3 +48,21 @@ M: struct >pprint-sequence
|
|||
M: struct pprint*
|
||||
[ pprint-struct ]
|
||||
[ pprint-struct-pointer ] pprint-c-object ;
|
||||
|
||||
M: struct summary
|
||||
[
|
||||
dup class name>> %
|
||||
" struct of " %
|
||||
byte-length #
|
||||
" bytes " %
|
||||
] "" make ;
|
||||
|
||||
M: struct make-mirror
|
||||
[
|
||||
[ drop "underlying" ] [ (underlying)>> ] bi 2array 1array
|
||||
] [
|
||||
'[
|
||||
_ struct>assoc
|
||||
[ [ [ name>> ] [ c-type>> ] bi 2array ] dip ] assoc-map
|
||||
] [ drop { } ] recover
|
||||
] bi append ;
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
! Copyright (C) 2007, 2008 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors arrays assocs classes classes.struct
|
||||
classes.struct.prettyprint.private classes.tuple
|
||||
classes.tuple.private combinators generic hashtables kernel
|
||||
math quotations sequences slots slots.private vectors words
|
||||
continuations fry ;
|
||||
USING: assocs hashtables kernel sequences generic words
|
||||
arrays classes slots slots.private classes.tuple
|
||||
classes.tuple.private math vectors quotations accessors
|
||||
combinators ;
|
||||
IN: mirrors
|
||||
|
||||
TUPLE: mirror { object read-only } ;
|
||||
|
@ -56,13 +55,3 @@ M: array make-mirror <enum> ;
|
|||
M: vector make-mirror <enum> ;
|
||||
M: quotation make-mirror <enum> ;
|
||||
M: object make-mirror <mirror> ;
|
||||
|
||||
M: struct make-mirror
|
||||
[
|
||||
[ drop "underlying" ] [ (underlying)>> ] bi 2array 1array
|
||||
] [
|
||||
'[
|
||||
_ struct>assoc
|
||||
[ [ [ name>> ] [ c-type>> ] bi 2array ] dip ] assoc-map
|
||||
] [ drop { } ] recover
|
||||
] bi append ;
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
! Copyright (C) 2008 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors classes sequences kernel namespaces
|
||||
make words math math.parser assocs classes.struct
|
||||
alien.c-types ;
|
||||
make words math math.parser assocs ;
|
||||
IN: summary
|
||||
|
||||
GENERIC: summary ( object -- string )
|
||||
|
@ -32,11 +31,3 @@ M: assoc summary
|
|||
M: f summary object-summary ;
|
||||
|
||||
M: integer summary object-summary ;
|
||||
|
||||
M: struct summary
|
||||
[
|
||||
dup class name>> %
|
||||
" struct of " %
|
||||
byte-length #
|
||||
" bytes " %
|
||||
] "" make ;
|
||||
|
|
Loading…
Reference in New Issue