[webkit-dev] ENABLE define purging

Eric Seidel eseidel at google.com
Thu Apr 28 01:21:39 PDT 2011


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


More information about the webkit-dev mailing list