Platform/Porting to unified sources: Difference between revisions
| Line 6: | Line 6: | ||
[https://bugzilla.mozilla.org/buglist.cgi?f1=blocked&list_id=8605698&o1=substring&resolution=---&query_format=advanced&v1=939583 Here is a bugzilla search] that lists all such bugs i.e. all the directories that are currently being ported by someone. | [https://bugzilla.mozilla.org/buglist.cgi?f1=blocked&list_id=8605698&o1=substring&resolution=---&query_format=advanced&v1=939583 Here is a bugzilla search] that lists all such bugs i.e. all the directories that are currently being ported by someone. | ||
<bugzilla> | |||
{ | |||
"blocks": "939583", | |||
"include_fields": "id, summary, whiteboard, status, resolution" | |||
} | |||
</bugzilla> | |||
Directories already ported are listed below (see '''\o/ UNIFIED_SOURCES \o/''' in the list below). | Directories already ported are listed below (see '''\o/ UNIFIED_SOURCES \o/''' in the list below). | ||
Revision as of 03:06, 18 November 2013
This page is here to help coordinate the effort around porting Gecko's build system to UNIFIED_SOURCES, a mechanism that enables faster builds by concatenating sources files to have fewer, larger translation units.
Ongoing porting projects
When we start porting a directory, we file a bug about it, and block the tracking bug with the unified alias (bug 939583).
Here is a bugzilla search that lists all such bugs i.e. all the directories that are currently being ported by someone.
210 Total; 0 Open (0%); 210 Resolved (100%); 0 Verified (0%);
Directories already ported are listed below (see \o/ UNIFIED_SOURCES \o/ in the list below).
Script to track porting status
Here is a script; run it from the root of your source directory to generate a report on the porting status and number of cpp files under each source directory.
#!/bin/bash
MOZBUILDFILES="`find . -name moz.build | grep -v \\./obj`"
logfile="unified-conversion-status.log"
filescount=`echo "$MOZBUILDFILES" | wc -l`
fileindex=0
(while read -r mozbuildfile
do
fileindex=$((fileindex + 1))
mozbuilddir="`dirname "$mozbuildfile"`"
numcpp=`find $mozbuilddir -name "*.cpp" -o -name "*.C" -o -name "*.cc" -o -name "*.mm" -maxdepth 1 | wc -l`
if [ $numcpp -eq 0 ]
then
continue
fi
if ! ( grep -wq SOURCES "$mozbuildfile" || grep -wq UNIFIED_SOURCES "$mozbuildfile" )
then
continue
fi
echo -ne "\r$((100 * fileindex / filescount))% $mozbuilddir\033[0K" \
1>&2
outputline="$numcpp $mozbuilddir"
unified_msg=
if grep -q UNIFIED_SOURCES "$mozbuildfile"
then
outputline="$outputline \o/ UNIFIED_SOURCES \o/"
fi
echo "$outputline"
done <<< "$MOZBUILDFILES") | sort -rn > "$logfile"
echo -e "\rResults written to $logfile\033[0K"
Current porting status
This is just the output of the above script; use it to find a new directory to work on.
The first column is the number of cpp files below each directory, so the higher number hint loosely at greater potential benefits.
Directories that are already ported have \o/ UNIFIED_SOURCES \o/ written next to them.
143 ./content/svg/content/src \o/ UNIFIED_SOURCES \o/
91 ./content/base/src
76 ./content/html/content/src
74 ./gfx/thebes
70 ./xpcom/reflect/xptcall/src/md/unix
65 ./xpcom/tests
64 ./netwerk/base/src
64 ./js/src/jsapi-tests
55 ./security/manager/ssl/src
53 ./content/canvas/src
49 ./toolkit/crashreporter/google-breakpad/src/processor
47 ./widget/windows
46 ./layout/generic \o/ UNIFIED_SOURCES \o/
44 ./layout/style \o/ UNIFIED_SOURCES \o/
44 ./gfx/harfbuzz/src
41 ./layout/xul/base/src \o/ UNIFIED_SOURCES \o/
40 ./netwerk/test
40 ./content/events/src
39 ./widget/cocoa
39 ./js/src
39 ./gfx/2d
38 ./content/xslt/src/xpath
38 ./content/media
37 ./dom/base
36 ./layout/base \o/ UNIFIED_SOURCES \o/
36 ./gfx/graphite2/src
35 ./xpcom/glue
35 ./layout/svg \o/ UNIFIED_SOURCES \o/
35 ./ipc/ipdl/test/cxx
33 ./parser/html \o/ UNIFIED_SOURCES \o/
33 ./netwerk/protocol/http
32 ./js/xpconnect/src
31 ./gfx/ots/src
31 ./content/media/webaudio
30 ./content/xslt/src/xslt
28 ./widget/xpwidgets \o/ UNIFIED_SOURCES \o/
27 ./widget/gtk
26 ./xpcom/io
26 ./tools/profiler
26 ./toolkit/xre
26 ./toolkit/crashreporter/google-breakpad/src/common
26 ./gfx/gl
26 ./content/xul/templates/src
25 ./ipc/glue
25 ./extensions/universalchardet/src/base
25 ./dom/plugins/ipc
24 ./xpcom/base
24 ./widget/qt
24 ./image/src
24 ./content/smil
24 ./accessible/src/base
23 ./storage/src
22 ./xpcom/ds
22 ./toolkit/crashreporter/google-breakpad/src/common/linux
22 ./layout/mathml \o/ UNIFIED_SOURCES \o/
22 ./editor/libeditor/base \o/ UNIFIED_SOURCES \o/
22 ./dom/indexedDB
21 ./dom/plugins/base
19 ./accessible/src/windows/msaa
19 ./accessible/src/atk
18 ./xpcom/string/src
18 ./widget/os2
18 ./widget/android
18 ./layout/forms \o/ UNIFIED_SOURCES \o/
18 ./gfx/layers
18 ./gfx/angle/src/libGLESv2
18 ./dom/bluetooth
18 ./content/media/webaudio/blink
17 ./netwerk/cache
17 ./editor/libeditor/html \o/ UNIFIED_SOURCES \o/
17 ./dom/system/gonk
17 ./dom/file
17 ./content/xbl/src
16 ./toolkit/components/places
16 ./netwerk/cache2
16 ./intl/uconv/src \o/ UNIFIED_SOURCES \o/
16 ./dom/workers
16 ./dom/camera
15 ./js/jsd
15 ./dom/ipc
14 ./rdf/base/src
13 ./widget/windows/winrt
13 ./parser/htmlparser/src \o/ UNIFIED_SOURCES \o/
13 ./gfx/src
13 ./extensions/spellcheck/hunspell/src
12 ./widget/gonk
12 ./toolkit/mozapps/update/updater
12 ./toolkit/crashreporter/google-breakpad/src/common/mac
12 ./layout/tables \o/ UNIFIED_SOURCES \o/
12 ./docshell/base
12 ./accessible/src/xul
12 ./accessible/src/windows/ia2
12 ./accessible/src/generic
11 ./xpcom/threads
11 ./xpcom/build
11 ./toolkit/crashreporter/google-breakpad/src/client/linux/minidump_writer
11 ./toolkit/components/url-classifier
11 ./netwerk/streamconv/converters
11 ./gfx/ycbcr
11 ./dom/plugins/base/android
11 ./dom/mobilemessage/src
11 ./content/media/webspeech/recognition
10 ./accessible/src/mac
9 ./media/libsoundtouch/src \o/ UNIFIED_SOURCES \o/
9 ./layout/xul/tree \o/ UNIFIED_SOURCES \o/
9 ./layout/xul/grid \o/ UNIFIED_SOURCES \o/
9 ./layout/inspector/src \o/ UNIFIED_SOURCES \o/
9 ./dom/network/src
8 ./xpfe/appshell/src
8 ./uriloader/exthandler
8 ./python/mozbuild/mozbuild/test/frontend/data/variable-passthru
8 ./python/mozbuild/mozbuild/test/backend/data/variable_passthru
8 ./netwerk/wifi \o/ UNIFIED_SOURCES \o/
8 ./extensions/spellcheck/src
8 ./editor/composer/src \o/ UNIFIED_SOURCES \o/
8 ./caps/src
8 ./accessible/src/html
7 ./mozglue/build
7 ./modules/libjar \o/ UNIFIED_SOURCES \o/
7 ./intl/lwbrk/src
7 ./intl/locale/src
7 ./image/decoders
7 ./content/media/directshow
7 ./content/html/document/src
6 ./xpcom/reflect/xptcall/src/md/win32
6 ./widget/gonk/nativewindow
6 ./uriloader/prefetch
6 ./tools/jprof
6 ./toolkit/system/gnome
6 ./toolkit/crashreporter/client
6 ./toolkit/components/startup
6 ./toolkit/components/maintenanceservice
6 ./security/manager/pki/src
6 ./security/manager/boot/src
6 ./netwerk/protocol/ftp
6 ./netwerk/ipc \o/ UNIFIED_SOURCES \o/
6 ./mozglue/linker
6 ./modules/libjar/zipwriter/src \o/ UNIFIED_SOURCES \o/
6 ./js/xpconnect/wrappers
6 ./extensions/cookie
6 ./extensions/auth
6 ./embedding/browser/webBrowser
6 ./editor/libeditor/text \o/ UNIFIED_SOURCES \o/
6 ./dom/telephony
6 ./dom/src/storage
6 ./content/xul/document/src
6 ./content/media/wmf
6 ./content/media/webspeech/synth
6 ./content/media/webrtc
6 ./content/media/omx
5 ./widget/gonk/libdisplay
5 ./toolkit/crashreporter/google-breakpad/src/client/solaris/handler
5 ./toolkit/crashreporter/google-breakpad/src/client/mac/handler
5 ./toolkit/crashreporter/google-breakpad/src/client/mac/crash_generation
5 ./toolkit/components/downloads
5 ./other-licenses/skia-npapi
5 ./netwerk/protocol/wyciwyg \o/ UNIFIED_SOURCES \o/
5 ./netwerk/protocol/about
5 ./netwerk/dns
5 ./modules/libpref/src
5 ./memory/mozalloc
5 ./layout/printing \o/ UNIFIED_SOURCES \o/
5 ./intl/unicharutil/util \o/ UNIFIED_SOURCES \o/
5 ./intl/unicharutil/src \o/ UNIFIED_SOURCES \o/
5 ./intl/locale/src/unix
5 ./gfx/angle/src/libEGL
5 ./embedding/components/commandhandler/src
5 ./editor/txmgr/src \o/ UNIFIED_SOURCES \o/
5 ./content/xslt/src/base
5 ./content/media/omx/mediaresourcemanager
5 ./content/media/mediasource
5 ./content/media/gstreamer
4 ./xpcom/reflect/xptinfo/src
4 ./xpcom/components
4 ./toolkit/crashreporter
4 ./netwerk/socket \o/ UNIFIED_SOURCES \o/
4 ./netwerk/protocol/websocket \o/ UNIFIED_SOURCES \o/
4 ./netwerk/protocol/device \o/ UNIFIED_SOURCES \o/
4 ./netwerk/cookie
4 ./mozglue/android
4 ./layout/tools/layout-debug/src \o/ UNIFIED_SOURCES \o/
4 ./intl/locale/src/windows
4 ./intl/locale/src/os2
4 ./gfx/cairo/cairo/src
4 ./extensions/pref/autoconfig/src
4 ./embedding/components/printingui/src/win
4 ./dom/time
4 ./dom/quota
4 ./dom/fmradio/ipc
4 ./dom/encoding
4 ./docshell/shistory/src
4 ./content/xml/document/src
4 ./content/xml/content/src
4 ./content/media/plugins
4 ./content/media/ogg
4 ./chrome/src
4 ./accessible/src/xpcom
3 ./widget/shared
3 ./tools/trace-malloc/lib
3 ./tools/trace-malloc
3 ./toolkit/system/dbus
3 ./toolkit/crashreporter/google-breakpad/src/common/solaris
3 ./toolkit/crashreporter/google-breakpad/src/client/linux/handler
3 ./toolkit/components/remote
3 ./toolkit/components/ctypes/tests
3 ./startupcache
3 ./rdf/tests/dsds
3 ./parser/xml/src
3 ./netwerk/protocol/data \o/ UNIFIED_SOURCES \o/
3 ./mobile/android/components/build
3 ./layout/build
3 ./js/xpconnect/tests/components/native
3 ./js/xpconnect/loader
3 ./js/src/shell
3 ./js/ipc
3 ./ipc/testshell
3 ./ipc/dbus
3 ./intl/locale/src/mac
3 ./intl/hyphenation/src
3 ./image/decoders/icon
3 ./hal
3 ./gfx/ipc
3 ./embedding/tests/winEmbed
3 ./embedding/components/windowwatcher/src
3 ./embedding/components/printingui/src/unixshared
3 ./embedding/components/printingui/src/os2
3 ./embedding/components/printingui/src/mac
3 ./editor/txtsvc/src \o/ UNIFIED_SOURCES \o/
3 ./dom/wifi
3 ./dom/power
3 ./dom/media
3 ./dom/gamepad
3 ./dom/devicestorage
3 ./dom/audiochannel
3 ./content/xul/content/src
3 ./content/media/webm
3 ./content/media/encoder
3 ./browser/components/shell/src
3 ./accessible/src/windows/sdn
2 ./xpcom/sample
2 ./xpcom/reflect/xptcall/src/md/test
2 ./widget/qt/faststartupqt
2 ./view/src
2 ./uriloader/base
2 ./toolkit/xre/test/win
2 ./toolkit/system/unixproxy
2 ./toolkit/mozapps/update/tests
2 ./toolkit/mozapps/plugins/tests
2 ./toolkit/library
2 ./toolkit/crashreporter/test
2 ./toolkit/crashreporter/google-breakpad/src/client/linux/crash_generation
2 ./toolkit/crashreporter/google-breakpad/src/client
2 ./toolkit/components/mediasniffer
2 ./toolkit/components/autocomplete
2 ./toolkit/components/alerts
2 ./testing/tools/screenshot
2 ./security/manager/ssl/tests/unit/tlsserver/lib
2 ./rdf/datasource/src
2 ./profile/dirserviceprovider/src
2 ./netwerk/system/qt
2 ./netwerk/streamconv/test
2 ./netwerk/protocol/viewsource \o/ UNIFIED_SOURCES \o/
2 ./netwerk/protocol/rtsp
2 ./netwerk/protocol/file \o/ UNIFIED_SOURCES \o/
2 ./mozglue/tests
2 ./layout/ipc \o/ UNIFIED_SOURCES \o/
2 ./js/xpconnect/shell
2 ./ipc/app
2 ./intl/unicharutil/tests
2 ./intl/strres/src
2 ./intl/chardet/src
2 ./extensions/universalchardet/src/xpcom
2 ./extensions/permissions
2 ./embedding/components/find/src
2 ./dom/system/unix
2 ./dom/system/android
2 ./dom/system
2 ./dom/src/notification
2 ./dom/src/geolocation
2 ./dom/promise
2 ./dom/plugins/ipc/interpose
2 ./dom/plugins/ipc/hangui
2 ./dom/indexedDB/ipc
2 ./dom/fmradio
2 ./content/xslt/src/xml
2 ./content/media/webspeech/synth/pico
2 ./content/media/wave
2 ./content/media/raw
2 ./content/media/apple
2 ./content/mathml/content/src
2 ./build/unix/elfhack
2 ./browser/metro/shell/commandexecutehandler
2 ./accessible/src/other
1 ./xulrunner/tools/redit
1 ./xulrunner/stub
1 ./xulrunner/examples/simple/components/src
1 ./xulrunner/app
1 ./xpfe/components/windowds
1 ./xpfe/components/directory
1 ./xpfe/components/build
1 ./xpcom/windbgdlg
1 ./xpcom/tests/external
1 ./xpcom/tests/component_no_aslr
1 ./xpcom/tests/component
1 ./xpcom/tests/bug656331_component
1 ./xpcom/sample/program
1 ./xpcom/reflect/xptinfo/tests
1 ./xpcom/reflect/xptcall/tests
1 ./xpcom/reflect/xptcall/src/md/os2
1 ./xpcom/reflect/xptcall/src
1 ./xpcom/glue/tests/gtest
1 ./xpcom/glue/standalone
1 ./webapprt/win
1 ./webapprt/mac
1 ./webapprt/gtk2
1 ./uriloader/exthandler/tests
1 ./tools/jprof/stub
1 ./toolkit/system/windowsproxy
1 ./toolkit/system/osxproxy
1 ./toolkit/system/androidproxy
1 ./toolkit/profile
1 ./toolkit/library/winvccorlib
1 ./toolkit/identity
1 ./toolkit/devtools/server
1 ./toolkit/crashreporter/injector
1 ./toolkit/components/typeaheadfind
1 ./toolkit/components/telemetry
1 ./toolkit/components/statusfilter
1 ./toolkit/components/satchel
1 ./toolkit/components/reflect
1 ./toolkit/components/perf
1 ./toolkit/components/parentalcontrols
1 ./toolkit/components/jsdownloads/src
1 ./toolkit/components/intl
1 ./toolkit/components/find
1 ./toolkit/components/finalizationwitness
1 ./toolkit/components/filepicker
1 ./toolkit/components/diskspacewatcher
1 ./toolkit/components/ctypes
1 ./toolkit/components/commandlines
1 ./toolkit/components/build
1 ./testing/mochitest/ssltunnel
1 ./storage/build
1 ./services/crypto/component
1 ./security/sandbox/win/src/sandboxbroker
1 ./security/sandbox/linux
1 ./security/manager/ssl/tests/unit/tlsserver/cmd
1 ./rdf/util/src
1 ./rdf/tests/triplescat
1 ./rdf/tests/rdfpoll
1 ./rdf/tests/rdfcat
1 ./rdf/build
1 ./netwerk/system/win32
1 ./netwerk/system/mac
1 ./netwerk/system/android
1 ./netwerk/streamconv/src
1 ./netwerk/sctp/src
1 ./netwerk/sctp/datachannel
1 ./netwerk/protocol/res
1 ./netwerk/protocol/app
1 ./netwerk/mime
1 ./netwerk/build
1 ./memory/replace/dmd
1 ./media/omx-plugin/lib/ics/libutils
1 ./media/omx-plugin/lib/ics/libstagefright
1 ./media/omx-plugin/lib/hc/libstagefright
1 ./media/omx-plugin/lib/gb235/libstagefright
1 ./media/omx-plugin/lib/gb/libutils
1 ./media/omx-plugin/lib/gb/libstagefright_color_conversion
1 ./media/omx-plugin/lib/gb/libstagefright
1 ./media/omx-plugin/lib/froyo/libstagefright
1 ./media/omx-plugin/hc
1 ./media/omx-plugin/gb235
1 ./media/omx-plugin/gb
1 ./media/omx-plugin/froyo
1 ./media/omx-plugin
1 ./media/libspeex_resampler/src
1 ./media/libcubeb/src
1 ./js/src/gdb
1 ./js/ductwork/debugger
1 ./ipc/unixsocket
1 ./ipc/ril
1 ./ipc/nfc
1 ./ipc/netd
1 ./ipc/keystore
1 ./ipc/ipdl/test/cxx/app
1 ./intl/build
1 ./image/encoders/png
1 ./image/encoders/jpeg
1 ./image/encoders/ico
1 ./image/encoders/bmp
1 ./image/decoders/icon/win
1 ./image/decoders/icon/qt
1 ./image/decoders/icon/os2
1 ./image/decoders/icon/mac
1 ./image/decoders/icon/gtk
1 ./image/decoders/icon/android
1 ./image/build
1 ./extensions/widgetutils/src
1 ./extensions/gnomevfs
1 ./extensions/gio
1 ./embedding/components/webbrowserpersist/src
1 ./embedding/components/build
1 ./embedding/components/appstartup/src
1 ./embedding/browser/build
1 ./dom/voicemail
1 ./dom/system/windows
1 ./dom/system/mac
1 ./dom/src/offline
1 ./dom/src/jsurl
1 ./dom/src/json
1 ./dom/src/events
1 ./dom/nfc
1 ./dom/media/bridge
1 ./dom/icc/src
1 ./dom/cellbroadcast/src
1 ./dom/browser-element
1 ./dom/battery
1 ./dom/apps/src
1 ./dom/alarm
1 ./dom/activities/src
1 ./docshell/build
1 ./content/svg/document/src
1 ./build/win32/vmwarerecordinghelper
1 ./build/win32/crashinjectdll
1 ./build/win32
1 ./build/unix/stdc++compat
1 ./browser/metro/shell/testing
1 ./browser/metro/shell/linktool
1 ./browser/components/migration/src
1 ./browser/components/feeds/src
1 ./browser/components/dirprovider
1 ./browser/components/build
1 ./browser/components/about
1 ./browser/app
1 ./b2g/gaia
1 ./b2g/app
1 ./accessible/src/windows/uia