]> gitweb.factorcode.org Git - factor.git/blob - extra/tools/deploy/strip-cocoa.factor
Initial import
[factor.git] / extra / tools / deploy / strip-cocoa.factor
1 USING: cocoa cocoa.messages cocoa.application cocoa.nibs
2 assocs namespaces kernel words compiler sequences ui.cocoa ;
3
4 "stop-after-last-window?" get
5 global [
6     stop-after-last-window? set
7
8     [ "MiniFactor.nib" load-nib ] cocoa-init-hook set-global
9
10     ! Only keeps those methods that we actually call
11     sent-messages get super-sent-messages get union
12     objc-methods [ intersect ] change
13
14     sent-messages get
15     super-sent-messages get
16     [ keys [ objc-methods get at dup ] H{ } map>assoc ] 2apply
17     super-message-senders [ intersect ] change
18     message-senders [ intersect ] change
19
20     sent-messages off
21     super-sent-messages off
22
23     ! We need this for strip-stack-traces to work fully
24     { message-senders super-message-senders }
25     [
26         get values [
27             dup update-xt compile
28         ] each
29     ] each
30 ] bind