     deploy-vocab get vocab-main deploy-startup-quot
     find-megamorphic-caches
     stripped-word-props
-    stripped-globals strip-globals
+    strip-globals
     compress-objects
     compress-quotations
     strip-words

definitions generic generic.standard generic.single
tools.deploy.config combinators combinators.private classes
vocabs.loader.private classes.builtin slots.private grouping
command-line io.pathnames memoize namespaces.private ;
QUALIFIED: bootstrap.stage2
QUALIFIED: classes.private
QUALIFIED: compiler.crossref

        new-default-method '[ _ strip-default-method ] each
    ] when ;

: vocab-tree-globals ( except names -- words )
    [ child-vocabs [ words ] map concat ] map concat
    swap [ first2 lookup-word ] map sift diff ;

: stripped-globals ( -- seq )
    [
        "inspector-hook" "inspector" lookup-word ,
        {
            source-files:source-files
            continuations:error
            continuations:error-continuation
            continuations:error-thread
            continuations:restarts
        } %

        "disposables" "destructors" lookup-word ,

        "functor-words" "functors.backend" lookup-word ,

        { } {
            "stack-checker"
            "listener"
            "bootstrap"
        } vocab-tree-globals %

        ! Don't want to strip globals from test programs
        { } { "tools" } vocab-tree-globals
        { } { "tools.deploy.test" } vocab-tree-globals diff %

        deploy-unicode? get [
            { } { "unicode" } vocab-tree-globals %
        ] unless

        strip-dictionary? [
            "libraries" "alien" lookup-word ,

            { { "yield-hook" "compiler.utilities" } }
            { "cpu" "compiler" } vocab-tree-globals %

            {
                gensym
