Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1364)

Side by Side Diff: third_party/WebKit/Source/platform/wtf/README.md

Issue 2829823003: Update and fill up wtf/README.md with a proper introduction to WTF. (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # platform/wtf 1 # WTF (Web Template Framework)
2 2
3 This is the location where all the files under Source/wtf will be moved 3 WTF is a base library for Blink providing a variety of basic functionalities,
4 eventually. See 4 like containers, string libraries, reference counting mechanisms, functors,
5 [the proposal](https://docs.google.com/document/d/1shS1IZe__auYxjm9FhPbTY2P01FbN TMYRh-nen5gkDo/edit?usp=sharing) 5 threading primitives etc.
6 and
7 [the design doc](https://docs.google.com/document/d/1JK26H-1-cD9-s9QLvEfY55H2kgS xRFNPLfjs049Us5w/edit?usp=sharing)
8 regarding the relocation project. For the project's progress, see
9 [bug 691465](https://bugs.chromium.org/p/chromium/issues/detail?id=691465).
10 6
11 During the project, files in wtf/ are moved to platform/wtf incrementally, and 7 WTF's mission is to power and support all other Blink modules by providing
12 redirection headers will be placed in wtf/. So nothing should break in the 8 fast, reliable, user-friendly and secure generic primitives.
13 meantime. You can continue including WTF headers like `#include "wtf/Xxx.h"` 9
14 till the next announce in blink-dev. 10 Dependency-wise, WTF cannot depend on any other Blink modules, including
haraken 2017/04/20 13:45:13 "modules" is confusing with modules/.
Yuta Kitamura 2017/04/21 09:26:41 Done.
11 other files under platform/, since WTF is a module that can be referred from
12 anywhere in Blink. WTF basically can only depend on [base], so that we can
13 bridge functionalities of base to other Blink modules.
14
haraken 2017/04/20 13:45:13 Also let's explain the relationship between base/
Yuta Kitamura 2017/04/21 09:26:41 Done.
15 ## Library catalog
16
17 The below is a list of major libraries. For a complete list, look at
18 [the directory listing].
19
20 * **Containers**
21
22 [Vector], [HashSet], [HashMap], [Deque]
23
24 * **Strings**
25
26 [String], [AtomicString], [StringBuilder], [CString]
27
28 * **Reference counting**
29
30 [RefCounted], [RefPtr]
31
32 * **Memory**
33
34 [PtrUtil.h] (`std::unique_ptr<>` utilities),
35 [Allocator.h] (memory placement macros)
36
37 * **Functors, binding**
38
39 [Functional.h]
40
41 * **Threading**
42
43 [Threading.h], [ThreadingPrimitives.h]
44
45 * **Compile-time switch macros**
46
47 [Compiler.h] (e.g. `COMPILER(GCC)`),
48 [CPU.h] (e.g. `CPU(X86_64)` or `CPU(64BIT)`),
49 [build_config.h] (e.g. `OS(WIN)`)
50
51 * **Miscellaneous**
52
53 [Noncopyable.h] (`WTF_MAKE_NONCOPYABLE`),
54 [StdLibExtras.h] (`DEFINE_STATIC_LOCAL` etc.),
55 [CurrentTime.h],
56 [CryptographicallyRandomNumber.h],
57 [AutoReset.h],
58 [Optional.h]
59
60 ## History
61
62 The name WTF first [appeared in 2006][1], as a replacement of its older name
63 KXMLCore. At that point, there were already plenty of libraries we see today.
64 For example, you can see [the initial implementation of `Vector`][2] was landed
65 in 2006, replacing several manual array allocations and deallocations(!).
66
67 If you dig the repository a bit more, you can find the original version of
68 Assertions.h was [committed back in 2002][3]. This is probably the oldest
69 library that we can find from the repository history.
70
71 As you see, pretty much everything that we have today in WTF was created in
72 the WebKit era. WTF was initially under the directory Source/JavaScriptCore,
73 but it moved to Source/WTF/wtf in 2011-2012, then to Source/wtf in 2013.
74
75 Blink forked WebKit in 2013. In 2017, the directory finally [moved to the
76 current location][4] Source/platform/wtf.
77
78 [the directory listing]: https://cs.chromium.org/chromium/src/third_party/WebKit /Source/platform/wtf/
79 [base]: https://cs.chromium.org/chromium/src/base/
80 [Vector]: https://cs.chromium.org/chromium/src/third_party/WebKit/Source/platfor m/wtf/Vector.h
haraken 2017/04/20 13:45:13 I'd prefer dropping these links since it wouldn't
Yuta Kitamura 2017/04/21 09:26:41 I would argue that those links are worth having be
81 [HashSet]: https://cs.chromium.org/chromium/src/third_party/WebKit/Source/platfo rm/wtf/HashSet.h
82 [HashMap]: https://cs.chromium.org/chromium/src/third_party/WebKit/Source/platfo rm/wtf/HashMap.h
83 [Deque]: https://cs.chromium.org/chromium/src/third_party/WebKit/Source/platform /wtf/Deque.h
84 [String]: https://cs.chromium.org/chromium/src/third_party/WebKit/Source/platfor m/wtf/text/WTFString.h
85 [AtomicString]: https://cs.chromium.org/chromium/src/third_party/WebKit/Source/p latform/wtf/text/AtomicString.h
86 [StringBuilder]: https://cs.chromium.org/chromium/src/third_party/WebKit/Source/ platform/wtf/text/StringBuilder.h
87 [CString]: https://cs.chromium.org/chromium/src/third_party/WebKit/Source/platfo rm/wtf/text/CString.h
88 [RefCounted]: https://cs.chromium.org/chromium/src/third_party/WebKit/Source/pla tform/wtf/RefCounted.h
89 [RefPtr]: https://cs.chromium.org/chromium/src/third_party/WebKit/Source/platfor m/wtf/RefPtr.h
90 [PtrUtil.h]: https://cs.chromium.org/chromium/src/third_party/WebKit/Source/plat form/wtf/PtrUtil.h
91 [Allocator.h]: https://cs.chromium.org/chromium/src/third_party/WebKit/Source/pl atform/wtf/Allocator.h
92 [Functional.h]: https://cs.chromium.org/chromium/src/third_party/WebKit/Source/p latform/wtf/Functional.h
93 [Threading.h]: https://cs.chromium.org/chromium/src/third_party/WebKit/Source/pl atform/wtf/Threading.h
94 [ThreadingPrimitives.h]: https://cs.chromium.org/chromium/src/third_party/WebKit /Source/platform/wtf/ThreadingPrimitives.h
95 [Compiler.h]: https://cs.chromium.org/chromium/src/third_party/WebKit/Source/pla tform/wtf/Compiler.h
96 [CPU.h]: https://cs.chromium.org/chromium/src/third_party/WebKit/Source/platform /wtf/CPU.h
97 [build_config.h]: https://cs.chromium.org/chromium/src/third_party/WebKit/Source /platform/wtf/build_config.h
98 [Noncopyable.h]: https://cs.chromium.org/chromium/src/third_party/WebKit/Source/ platform/wtf/Noncopyable.h
99 [StdLibExtras.h]: https://cs.chromium.org/chromium/src/third_party/WebKit/Source /platform/wtf/StdLibExtras.h
100 [CurrentTime.h]: https://cs.chromium.org/chromium/src/third_party/WebKit/Source/ platform/wtf/CurrentTime.h
101 [CryptographicallyRandomNumber.h]: https://cs.chromium.org/chromium/src/third_pa rty/WebKit/Source/platform/wtf/CryptographicallyRandomNumber.h
102 [AutoReset.h]: https://cs.chromium.org/chromium/src/third_party/WebKit/Source/pl atform/wtf/AutoReset.h
103 [Optional.h]: https://cs.chromium.org/chromium/src/third_party/WebKit/Source/pla tform/wtf/Optional.h
104 [1]: https://chromium.googlesource.com/chromium/src/+/e372c152fc6e57743ebc508fe1 7f6eb131b4ff8d
105 [2]: https://chromium.googlesource.com/chromium/src/+/547a6ca360a56fbee3d5ea4a71 ba18f91622455c
106 [3]: https://chromium.googlesource.com/chromium/src/+/478890427ee03fd88e6f0f58ee 8220512044bed9/third_party/WebKit/WebCore/kwq/KWQAssertions.h
107 [4]:https://docs.google.com/document/d/1JK26H-1-cD9-s9QLvEfY55H2kgSxRFNPLfjs049U s5w/edit?usp=sharing
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698