[webkit-dev] ENABLE define purging

Maciej Stachowiak mjs at apple.com
Thu Apr 28 02:51:02 PDT 2011



The following slightly more complete and accurate command finds 132:

$ find Source -name "*.cpp" -or -name "*.h" -or -name "*.mm" -or -name "*.c" -or -name "*.m" -or -name "*.idl" | xargs -L 1000  grep -r "#if ENABLE" -h | awk '{print $2}' | grep ENABLE | sed -e 's/(/_/; s/)//;' | sort | uniq

Some suggestions:

* Maybe one thing to do is to use a different base macro name for the ones that exist solely for debugging purposes and are never meant to be used in a shipping build. For example, JSC_ZOMBIES and FAST_MALLOC_MATCH_VALIDATION are clearly in this category.

* Some of these should really be USE instead of ENABLE, since they imply use of a particular external library. GLIB_SUPPORT and LEVELDB, PURGABLE_MEMORY, and SYMBIAN_DIALOG_PROVIDERS all seem to be in this category for instance.



On Apr 28, 2011, at 1:21 AM, Eric Seidel wrote:

> We have 127 ENABLE defines.  As discussed in Maciej's "Saying No"
> talk, we should make an effort to reduce that number so as to reduce
> complexity in our build process and testing matrix.
> 
> % find Source -name "*.cpp" | xargs grep -r "#if ENABLE" -h | awk
> '{print $2}' | sort | uniq
> 
> ENABLE(3D_RENDERING)
> ENABLE(ACCELERATED_2D_CANVAS)
> ENABLE(APPLICATION_CACHE_DYNAMIC_ENTRIES)
> ENABLE(ASSEMBLER)
> ENABLE(ASSEMBLER_WX_EXCLUSIVE)
> ENABLE(BLOB)
> ENABLE(CHANNEL_MESSAGING)
> ENABLE(CLIENT_BASED_GEOLOCATION)
> ENABLE(CODEBLOCK_SAMPLING)
> ENABLE(COMPUTED_GOTO_INTERPRETER)
> ENABLE(CONTEXT_MENUS)
> ENABLE(Condition1)
> ENABLE(DASHBOARD_SUPPORT)
> ENABLE(DATABASE)
> ENABLE(DATALIST)
> ENABLE(DATA_TRANSFER_ITEMS)
> ENABLE(DEBUG_MATH_LAYOUT)
> ENABLE(DEBUG_WITH_BREAKPOINT)
> ENABLE(DETAILS)
> ENABLE(DEVICE_ORIENTATION)
> ENABLE(DFG_JIT)
> ENABLE(DFG_JIT_RESTRICTIONS)
> ENABLE(DIRECTORY_UPLOAD)
> ENABLE(DOM_STORAGE)
> ENABLE(DRAG_SUPPORT)
> ENABLE(EVENTSOURCE)
> ENABLE(EXECUTABLE_ALLOCATOR_DEMAND)
> ENABLE(EXECUTABLE_ALLOCATOR_FIXED)
> ENABLE(FAST_MALLOC_MATCH_VALIDATION)
> ENABLE(FAST_MOBILE_SCROLLING)
> ENABLE(FILE_SYSTEM)
> ENABLE(FILTERS)
> ENABLE(FTPDIR)
> ENABLE(FULLSCREEN_API)
> ENABLE(GEOLOCATION)
> ENABLE(GESTURE_EVENTS)
> ENABLE(GESTURE_RECOGNIZER)
> ENABLE(GLIB_SUPPORT)
> ENABLE(GLOBAL_FASTMALLOC_NEW)
> ENABLE(ICONDATABASE)
> ENABLE(IMAGE_DECODER_DOWN_SAMPLING)
> ENABLE(IMAGE_RESIZER)
> ENABLE(INDEXED_DATABASE)
> ENABLE(INPUT_SPEECH)
> ENABLE(INSPECTOR)
> ENABLE(INTERPRETER)
> ENABLE(JAVASCRIPT_DEBUGGER)
> ENABLE(JAVASCRIPT_I18N_API)
> ENABLE(JAVA_BRIDGE)
> ENABLE(JIT)
> ENABLE(JIT_OPTIMIZE_CALL)
> ENABLE(JIT_OPTIMIZE_METHOD_CALLS)
> ENABLE(JIT_OPTIMIZE_PROPERTY_ACCESS)
> ENABLE(JIT_USE_SOFT_MODULO)
> ENABLE(JSC_MULTIPLE_THREADS)
> ENABLE(JSC_ZOMBIES)
> ENABLE(LEVELDB)
> ENABLE(LINK_PREFETCH)
> ENABLE(MAC_JAVA_BRIDGE)
> ENABLE(MATHML)
> ENABLE(MEDIA_STATISTICS)
> ENABLE(MEDIA_STREAM)
> ENABLE(MEMORY_SAMPLER)
> ENABLE(METER_TAG)
> ENABLE(NETSCAPE_PLUGIN_API)
> ENABLE(NETSCAPE_PLUGIN_METADATA_CACHE)
> ENABLE(NOTIFICATIONS)
> ENABLE(NO_LISTBOX_RENDERING)
> ENABLE(OFFLINE_WEB_APPLICATIONS)
> ENABLE(ON_FIRST_TEXTAREA_FOCUS_SELECT_ALL)
> ENABLE(OPCODE_SAMPLING)
> ENABLE(OPCODE_STATS)
> ENABLE(OPENTYPE_SANITIZER)
> ENABLE(ORIENTATION_EVENTS)
> ENABLE(PAN_SCROLLING)
> ENABLE(PARALLEL_JOBS)
> ENABLE(PLUGIN_PACKAGE_SIMPLE_HASH)
> ENABLE(PLUGIN_PROCESS)
> ENABLE(PLUGIN_PROXY_FOR_VIDEO)
> ENABLE(PROGRESS_TAG)
> ENABLE(PURGEABLE_MEMORY)
> ENABLE(QT_BEARER)
> ENABLE(QT_USERAGENT_DEVICEMODEL)
> ENABLE(QUOTA)
> ENABLE(REGEXP_TRACING)
> ENABLE(REGISTER_PROTOCOL_HANDLER)
> ENABLE(REPAINT_THROTTLING)
> ENABLE(REQUEST_ANIMATION_FRAME)
> ENABLE(SAMPLING_COUNTERS)
> ENABLE(SAMPLING_FLAGS)
> ENABLE(SAMPLING_THREAD)
> ENABLE(SHARED_WORKERS)
> ENABLE(SINGLE_THREADED)
> ENABLE(SKIA_TEXT)
> ENABLE(SMOOTH_SCROLLING)
> ENABLE(SPEECH_INPUT)
> ENABLE(SPELLCHECK)
> ENABLE(SVG)
> ENABLE(SVG_ANIMATION)
> ENABLE(SVG_AS_IMAGE)
> ENABLE(SVG_FONTS)
> ENABLE(SVG_FOREIGN_OBJECT)
> ENABLE(SVG_USE)
> ENABLE(SYMBIAN_DIALOG_PROVIDERS)
> ENABLE(TEXT_CARET)
> ENABLE(TILED_BACKING_STORE)
> ENABLE(TOUCH_EVENTS)
> ENABLE(VIDEO)
> ENABLE(VIDEO_TRACK)
> ENABLE(WBXML)
> ENABLE(WCSS)
> ENABLE(WEBGL)
> ENABLE(WEB_ARCHIVE)
> ENABLE(WEB_AUDIO)
> ENABLE(WEB_PROCESS_SANDBOX)
> ENABLE(WEB_SOCKETS)
> ENABLE(WEB_TIMING)
> ENABLE(WML)
> ENABLE(WORKERS)
> ENABLE(WTF_MULTIPLE_THREADS)
> ENABLE(XHR_RESPONSE_BLOB)
> ENABLE(XHTMLMP)
> ENABLE(XPATH)
> ENABLE(XSLT)
> ENABLE(YARR_JIT)
> ENABLE(YARR_JIT_DEBUG)
> ENABLE_NOTIFICATIONS
> 
> It's unclear to me how many of these we can easily remove (or should remove?)
> 
> If anyone has suggestions, I have the beginning of a spreadsheet here:
> https://spreadsheets.google.com/ccc?key=0AlC4tS7Ao1fIdHFVNUpFSDBudEF5WGM3WDNzQjI3Ync&hl=en&authkey=CJCDiooK
> _______________________________________________
> webkit-dev mailing list
> webkit-dev at lists.webkit.org
> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev



More information about the webkit-dev mailing list