bmalloc, WTF and JavaScriptCore parts of [Xcode] Update some build settings as recomm...
[WebKit-https.git] / Source / WTF / ChangeLog
1 2018-10-03  Dan Bernstein  <mitz@apple.com>
2
3         WTF part of [Xcode] Update some build settings as recommended by Xcode 10
4         https://bugs.webkit.org/show_bug.cgi?id=190250
5
6         Reviewed by Alex Christensen.
7
8         * Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS,
9           and CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF.
10
11         * WTF.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck.
12
13         * wtf/MathExtras.h:
14         (WTF::fastLog2): Addressed newly-enabled CLANG_WARN_COMMA by splitting some comma-separated
15           expressions into individual statements.
16
17 2018-10-03  Mark Lam  <mark.lam@apple.com>
18
19         Make string MaxLength for all WTF and JS strings consistently equal to INT_MAX.
20         https://bugs.webkit.org/show_bug.cgi?id=190187
21         <rdar://problem/42512909>
22
23         Reviewed by Michael Saboff.
24
25         * wtf/text/StringConcatenate.h:
26         (WTF::tryMakeStringFromAdapters):
27         (WTF::sumWithOverflow): Deleted.
28         * wtf/text/StringImpl.h:
29         * wtf/text/WTFString.h:
30
31 2018-10-03  Michael Catanzaro  <mcatanzaro@igalia.com>
32
33         -Wunused-variable in RenderLayer::updateScrollableAreaSet
34         https://bugs.webkit.org/show_bug.cgi?id=190200
35
36         Reviewed by Yusuke Suzuki.
37
38         Add a new UNUSED_VARIABLE() macro. It's the same as UNUSED_PARAM(), just named differently.
39
40         * wtf/Compiler.h:
41
42 2018-10-01  Dean Jackson  <dino@apple.com>
43
44         [macOS] Switching to discrete GPU should be done in the UI process
45         https://bugs.webkit.org/show_bug.cgi?id=189361
46         <rdar://problem/43949622>
47
48         Reviewed by Simon Fraser.
49
50         Define GL_SILENCE_DEPRECATION to avoid deprecation warnings for OpenGL.
51
52         * wtf/Platform.h:
53
54 2018-10-02  Commit Queue  <commit-queue@webkit.org>
55
56         Unreviewed, rolling out r236624 and r236671.
57         https://bugs.webkit.org/show_bug.cgi?id=190207
58
59         The change in r236624 introduced crashes on the bots
60         (Requested by ryanhaddad on #webkit).
61
62         Reverted changesets:
63
64         "Refactoring: eliminate raw pointer usage in Fullscreen code"
65         https://bugs.webkit.org/show_bug.cgi?id=188747
66         https://trac.webkit.org/changeset/236624
67
68         "Unify implementation in VideoFullscreenInterfaceAVKit"
69         https://bugs.webkit.org/show_bug.cgi?id=190091
70         https://trac.webkit.org/changeset/236671
71
72 2018-10-02  Caio Lima  <ticaiolima@gmail.com>
73
74         [BigInt] BigInt.proptotype.toString is broken when radix is power of 2
75         https://bugs.webkit.org/show_bug.cgi?id=190033
76
77         Reviewed by Yusuke Suzuki.
78
79         * wtf/MathExtras.h:
80         (WTF::ctz32):
81
82 2018-10-01  Andy Estes  <aestes@apple.com>
83
84         [watchOS] Adopt NSURLSessionCompanionProxyPreference
85         https://bugs.webkit.org/show_bug.cgi?id=190177
86         <rdar://problem/43402114>
87
88         Reviewed by Wenson Hsieh.
89
90         * wtf/FeatureDefines.h:
91
92 2018-10-01  Koby Boyango  <koby.b@mce-sys.com>
93
94         [WTF][JSCONLY] Use MainThreadWin on Windows in the JSCOnly port
95         https://bugs.webkit.org/show_bug.cgi?id=190121
96
97         Reviewed by Yusuke Suzuki.
98
99         This fixes JSCOnly build on Windows after r236617.
100
101         * wtf/PlatformJSCOnly.cmake:
102
103 2018-10-01  Commit Queue  <commit-queue@webkit.org>
104
105         Unreviewed, rolling out r236647.
106         https://bugs.webkit.org/show_bug.cgi?id=190124
107
108         Breaking test stress/big-int-to-string.js (Requested by
109         caiolima_ on #webkit).
110
111         Reverted changeset:
112
113         "[BigInt] BigInt.proptotype.toString is broken when radix is
114         power of 2"
115         https://bugs.webkit.org/show_bug.cgi?id=190033
116         https://trac.webkit.org/changeset/236647
117
118 2018-09-30  Caio Lima  <ticaiolima@gmail.com>
119
120         [BigInt] BigInt.proptotype.toString is broken when radix is power of 2
121         https://bugs.webkit.org/show_bug.cgi?id=190033
122
123         Reviewed by Yusuke Suzuki.
124
125         * wtf/MathExtras.h:
126         (WTF::ctz32):
127
128 2018-09-28  Jer Noble  <jer.noble@apple.com>
129
130         Refactoring: eliminate raw pointer usage in Fullscreen code
131         https://bugs.webkit.org/show_bug.cgi?id=188747
132         <rdar://problem/43541164>
133
134         Reviewed by Alex Christensen.
135
136         * WTF.xcodeproj/project.pbxproj:
137         * wtf/WeakPtrContainer.h: Added.
138
139 2018-09-28  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
140
141         [WTF] Make isMainThread more reliable
142         https://bugs.webkit.org/show_bug.cgi?id=189880
143
144         Reviewed by Mark Lam.
145
146         isMainThread() relied on Thread::current(). This API becomes broken in Windows
147         when the Thread is about to be destroyed since TLS is already cleared. This causes
148         a bug since `isMainThread()` is called in Thread::didExit in Windows.
149
150         This patch makes this `isMainThread` more reliable in all the platforms. In Windows,
151         we use `Thread::currentID()` instead of `Thread::current()` since `Thread::currentID`
152         uses Win32 GetCurrentThreadId directly. In the other system, we use `pthread_main_np`
153         or `pthread_self` instead.
154
155         We also move `holdLock` code inside `if (shouldRemoveThreadFromThreadGroup())`. If
156         the other thread takes a mutex and destroyed, this `holdLock` waits forever. This problem
157         only happens in Windows since Windows calls TLS destructor for the main thread.
158
159         * WTF.xcodeproj/project.pbxproj:
160         * wtf/MainThread.cpp:
161         (WTF::initializeMainThread):
162         (): Deleted.
163         (WTF::isMainThread): Deleted.
164         (WTF::isMainThreadIfInitialized): Deleted.
165         * wtf/Platform.h:
166         * wtf/PlatformMac.cmake:
167         * wtf/Threading.cpp:
168         (WTF::Thread::didExit):
169         * wtf/cocoa/MainThreadCocoa.mm: Renamed from Source/WTF/wtf/mac/MainThreadMac.mm.
170         * wtf/generic/MainThreadGeneric.cpp:
171         (WTF::initializeMainThreadPlatform):
172         (WTF::isMainThread):
173         (WTF::isMainThreadIfInitialized):
174         * wtf/win/MainThreadWin.cpp:
175         (WTF::initializeMainThreadPlatform):
176         (WTF::isMainThread):
177         (WTF::isMainThreadIfInitialized):
178
179 2018-09-28  Commit Queue  <commit-queue@webkit.org>
180
181         Unreviewed, rolling out r236605.
182         https://bugs.webkit.org/show_bug.cgi?id=190087
183
184         caused three API test timeouts (Requested by jernoble on
185         #webkit).
186
187         Reverted changeset:
188
189         "Refactoring: eliminate raw pointer usage in Fullscreen code"
190         https://bugs.webkit.org/show_bug.cgi?id=188747
191         https://trac.webkit.org/changeset/236605
192
193 2018-09-28  Brian Burg  <bburg@apple.com>
194
195         Replace recently added line comments in Compiler.h
196         https://bugs.webkit.org/show_bug.cgi?id=190062
197         <rdar://problem/44838618>
198
199         Reviewed by Joseph Pecoraro.
200
201         This breaks some Apple-internal tooling. For now, work around it by
202         changing the comment style. On the other side, the issue will be fixed
203         more permanently by adopting the approach from r230213.
204
205         * wtf/Compiler.h: Use multiline comments.
206
207 2018-09-28  Jer Noble  <jer.noble@apple.com>
208
209         Refactoring: eliminate raw pointer usage in Fullscreen code
210         https://bugs.webkit.org/show_bug.cgi?id=188747
211         <rdar://problem/43541164>
212
213         Reviewed by Alex Christensen.
214
215         * WTF.xcodeproj/project.pbxproj:
216         * wtf/WeakPtrContainer.h: Added.
217
218 2018-09-28  Koby Boyango  <koby.b@mce.systems>
219
220         [WTF] Add ExternalStringImpl, a StringImpl for user controlled buffers
221         https://bugs.webkit.org/show_bug.cgi?id=189991
222
223         Reviewed by Yusuke Suzuki.
224
225         * WTF.xcodeproj/project.pbxproj:
226         * wtf/CMakeLists.txt:
227         * wtf/text/ExternalStringImpl.cpp: Added.
228         * wtf/text/ExternalStringImpl.h: Added.
229         * wtf/text/StringImpl.cpp:
230         * wtf/text/StringImpl.h:
231
232 2018-09-27  Saam barati  <sbarati@apple.com>
233
234         Verify the contents of AssemblerBuffer on arm64e
235         https://bugs.webkit.org/show_bug.cgi?id=190057
236         <rdar://problem/38916630>
237
238         Reviewed by Mark Lam.
239
240         * wtf/PtrTag.h:
241         (WTF::tagInt):
242
243 2018-09-27  Jer Noble  <jer.noble@apple.com>
244
245         MediaPlayer should have mediaPlayerWaitingForKeyChanged() / bool waitingForKey() accessor
246         https://bugs.webkit.org/show_bug.cgi?id=189951
247
248         Reviewed by Eric Carlson.
249
250         Templated functions should take r-value references, as they have perfect type deduction for
251         all parameter types; references, l-value references, and r-value references in template function
252         parameters have special type deduction semantics.
253         See: <https://en.cppreference.com/w/cpp/language/reference#Forwarding_references>
254
255         Previously, const reference parameters would be copied when passed into anyOf(), and containers
256         of Ref<> would generate compile errors when passed into anyOf, as they cannot be copied. Now,
257         with r-value reference types in template parameters, a const reference is mapped to a const reference,
258         a non-const reference is mapped to a non-const reference, and a r-value reference is mapped to
259         an r-value reference.
260
261         * wtf/Algorithms.h:
262         (WTF::forEach):
263         (WTF::anyOf):
264         (WTF::allOf):
265
266 2018-09-25  John Wilander  <wilander@apple.com>
267
268         Change from HAVE(CFNETWORK_STORAGE_PARTITIONING) to ENABLE(RESOURCE_LOAD_STATISTICS)
269         https://bugs.webkit.org/show_bug.cgi?id=189959
270         <rdar://problem/44767642>
271
272         Reviewed by Chris Dumez.
273
274         * wtf/Platform.h:
275             Enables RESOURCE_LOAD_STATISTICS for Cocoa platforms.
276
277 2018-09-24  Fujii Hironori  <Hironori.Fujii@sony.com>
278
279         Rename WTF_COMPILER_GCC_OR_CLANG to WTF_COMPILER_GCC_COMPATIBLE
280         https://bugs.webkit.org/show_bug.cgi?id=189733
281
282         Reviewed by Michael Catanzaro.
283
284         Clang for Windows build enables WTF_COMPILER_CLANG and
285         WTF_COMPILER_MSVC, but disables WTF_COMPILER_GCC_OR_CLANG. It is
286         strange WTF_COMPILER_GCC_OR_CLANG is not enabled even though
287         WTF_COMPILER_CLANG is enabled. However, Clang for Windows imitates
288         MSVC, and codes for COMPILER(GCC_OR_CLANG) are for non MSVC. At
289         least at the moment, it is not feasible to define
290         WTF_COMPILER_GCC_OR_CLANG for Clang for Windows.
291
292         To solve the issue, this change renames WTF_COMPILER_GCC_OR_CLANG
293         to WTF_COMPILER_GCC_COMPATIBLE.
294
295         As an exception, I'd like to use IGNORE_WARNINGS_* macros even in
296         Clang for Windows builds.
297
298         * wtf/Assertions.cpp: Replaced COMPILER(GCC_OR_CLANG) with COMPILER(GCC_COMPATIBLE).
299         * wtf/Assertions.h: Ditto.
300         * wtf/Atomics.h: Ditto.
301         * wtf/CheckedArithmetic.h: Ditto.
302         * wtf/FastMalloc.h: Ditto.
303         * wtf/MathExtras.h: Ditto.
304         * wtf/Platform.h: Ditto.
305         * wtf/StdLibExtras.h: Ditto.
306         * wtf/Vector.h: Ditto.
307         * wtf/text/ASCIIFastPath.h: Ditto.
308         * wtf/Compiler.h:  Ditto. Replaced "COMPILER(GCC_OR_CLANG)" with "COMPILER(GCC) || COMPILER(CLANG)" of IGNORE_WARNINGS_* macros.
309
310 2018-09-21  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
311
312         [JSC] Enable LLInt ASM interpreter on X64 and ARM64 in non JIT configuration
313         https://bugs.webkit.org/show_bug.cgi?id=189778
314
315         Reviewed by Keith Miller.
316
317         This patch adds ENABLE(C_LOOP) which indicates we use CLoop as the interpreter.
318         Previously, we used !ENABLE(JIT) for this configuration. But now, we have
319         a build configuration that has LLInt ASM interpreter (not CLoop) and !ENABLE(JIT).
320
321         We enable LLInt ASM interpreter for non JIT environment in X86_64 and ARM64 architectures.
322         And we enable ENABLE(ASSEMBLER) for non JIT environment since it offers machine register
323         information which is used for LLInt and SamplingProfiler.
324
325         * wtf/Platform.h:
326
327 2018-09-21  Keith Miller  <keith_miller@apple.com>
328
329         Add Promise SPI
330         https://bugs.webkit.org/show_bug.cgi?id=189809
331
332         Reviewed by Saam Barati.
333
334         Fix issue where creating a JSContextRef off the main thread before
335         creating initializing the main thread would cause an assertion
336         failure.
337
338         * wtf/MainThread.cpp:
339         (WTF::isMainThreadIfInitialized):
340         * wtf/MainThread.h:
341         * wtf/mac/MainThreadMac.mm:
342         (WTF::isMainThreadIfInitialized):
343         * wtf/text/cf/StringImplCF.cpp:
344         (WTF::StringImpl::createCFString):
345
346 2018-09-21  Ryan Haddad  <ryanhaddad@apple.com>
347
348         Unreviewed, rolling out r236359.
349
350         Broke the Windows build.
351
352         Reverted changeset:
353
354         "Add Promise SPI"
355         https://bugs.webkit.org/show_bug.cgi?id=189809
356         https://trac.webkit.org/changeset/236359
357
358 2018-09-21  Keith Miller  <keith_miller@apple.com>
359
360         Add Promise SPI
361         https://bugs.webkit.org/show_bug.cgi?id=189809
362
363         Reviewed by Saam Barati.
364
365         Fix issue where creating a JSContextRef off the main thread before
366         creating initializing the main thread would cause an assertion
367         failure.
368
369         * wtf/MainThread.cpp:
370         (WTF::isMainThreadIfInitialized):
371         * wtf/MainThread.h:
372         * wtf/mac/MainThreadMac.mm:
373         (WTF::isMainThreadIfInitialized):
374         * wtf/text/cf/StringImplCF.cpp:
375         (WTF::StringImpl::createCFString):
376
377 2018-09-20  Fujii Hironori  <Hironori.Fujii@sony.com>
378
379         [Win][Clang] UNUSED_PARAM(this) causes compilation error of "cannot take the address of an rvalue of type"
380         https://bugs.webkit.org/show_bug.cgi?id=189732
381
382         Reviewed by Per Arne Vollan.
383
384         Clang for Windows can't compile the MSVC workaround of
385         UNUSED_PARAM which has been introduced for Windows CE and Visual
386         Studio 10. I think it's safe just to remove it.
387
388         * wtf/Compiler.h: Removed the code for COMPILER(MSVC).
389
390 2018-09-20  Alex Christensen  <achristensen@webkit.org>
391
392         Unreviewed, rolling out r235976.
393
394         Broke ARM
395
396         Reverted changeset:
397
398         "Use a Variant instead of a union in CSSSelector"
399         https://bugs.webkit.org/show_bug.cgi?id=188559
400         https://trac.webkit.org/changeset/235976
401
402 2018-09-17  Yusuke Suzuki  <utatane.tea@gmail.com>
403
404         [WTF] Use Semaphore and BinarySemaphore instead of dispatch_semaphore_t
405         https://bugs.webkit.org/show_bug.cgi?id=185339
406
407         Reviewed by Mark Lam.
408
409         This patch adds WTF::Semaphore, which is based on WTF::Lock and WTF::Condition.
410
411         * WTF.xcodeproj/project.pbxproj:
412         * wtf/CMakeLists.txt:
413         * wtf/Semaphore.h: Added.
414         (WTF::Semaphore::Semaphore):
415         (WTF::Semaphore::signal):
416         (WTF::Semaphore::waitUntil):
417         (WTF::Semaphore::waitFor):
418         (WTF::Semaphore::wait):
419         * wtf/generic/WorkQueueGeneric.cpp:
420         (WorkQueue::platformInitialize):
421         * wtf/threads/BinarySemaphore.cpp:
422         (WTF::BinarySemaphore::waitUntil):
423         (WTF::BinarySemaphore::wait): Deleted.
424         * wtf/threads/BinarySemaphore.h:
425         (WTF::BinarySemaphore::waitFor):
426         (WTF::BinarySemaphore::wait):
427         Align the names of the functions to WTF::Condition.
428         Add BinarySemaphore::wait(), which is the same to waitUntil(WallTime::infinity()).
429
430 2018-09-17  Jer Noble  <jer.noble@apple.com>
431
432         Add support for HEVC codec types in Media Capabilities
433         https://bugs.webkit.org/show_bug.cgi?id=189565
434
435         Reviewed by Eric Carlson.
436
437         Extract the toIntegralType template into its own header.
438
439         * wtf/CMakeLists.txt:
440         * wtf/text/StringConversion.h: Added.
441         (isCharacterAllowedInBase):
442         (toIntegralType):
443         * wtf/text/WTFString.cpp:
444
445 2018-09-17  Jer Noble  <jer.noble@apple.com>
446
447         Enable USE_MEDIAREMOTE on iOS
448         https://bugs.webkit.org/show_bug.cgi?id=189096
449
450         Reviewed by Eric Carlson.
451
452         * wtf/Platform.h:
453
454 2018-09-17  Frederic Wang  <fwang@igalia.com>
455
456         Build error in ImageBufferCG when compiled with IOSurfacePool
457         https://bugs.webkit.org/show_bug.cgi?id=189579
458
459         Reviewed by Tim Horton.
460
461         IOSurface.h might be included with different value of IOSURFACE_CANVAS_BACKING_STORE, causing
462         compilation errors when files in the same unified source do not agree on the definition.
463         This patch moves the definition of IOSURFACE_CANVAS_BACKING_STORE from ImageBufferDataCG.h
464         to Platform.h so that IOSURFACE_CANVAS_BACKING_STORE is set to the same value in all files.
465         Finally some minors changes to explicitly declare/define ImageBuffer are performed in order
466         to prevent future issues with Unified build rotating.
467
468         * wtf/Platform.h: Move definition from ImageBufferDataCG.h.
469
470 2018-09-14  Ryan Haddad  <ryanhaddad@apple.com>
471
472         Unreviewed, rolling out r235990.
473
474         Introduced TestWebKitAPI.NowPlayingTest timeouts on iOS
475
476         Reverted changeset:
477
478         "Enable USE_MEDIAREMOTE on iOS"
479         https://bugs.webkit.org/show_bug.cgi?id=189096
480         https://trac.webkit.org/changeset/235990
481
482 2018-09-13  Jer Noble  <jer.noble@apple.com>
483
484         Enable USE_MEDIAREMOTE on iOS
485         https://bugs.webkit.org/show_bug.cgi?id=189096
486
487         Reviewed by Eric Carlson.
488
489         * wtf/Platform.h:
490
491 2018-09-13  Alex Christensen  <achristensen@webkit.org>
492
493         Use a Variant instead of a union in CSSSelector
494         https://bugs.webkit.org/show_bug.cgi?id=188559
495
496         Reviewed by Antti Koivisto.
497
498         * wtf/Variant.h:
499         Add packing macros to make it so Variant-containing structures don't always have 7 bytes of padding per Variant.
500
501 2018-09-12  Guillaume Emont  <guijemont@igalia.com>
502
503         Add IGNORE_WARNING_.* macros
504         https://bugs.webkit.org/show_bug.cgi?id=188996
505
506         Reviewed by Michael Catanzaro.
507
508         * wtf/Assertions.cpp:
509         * wtf/Assertions.h:
510         * wtf/Compiler.h:
511         * wtf/MD5.cpp:
512         (WTF::MD5::MD5):
513         (WTF::MD5::addBytes):
514         (WTF::MD5::checksum):
515         * wtf/PrintStream.cpp:
516         (WTF::PrintStream::printfVariableFormat):
517         * wtf/SHA1.cpp:
518         (WTF::SHA1::SHA1):
519         (WTF::SHA1::addBytes):
520         (WTF::SHA1::computeHash):
521         * wtf/ThreadingPthreads.cpp:
522         * wtf/Vector.h:
523         (WTF::VectorBuffer::endOfBuffer):
524         * wtf/text/WTFString.cpp:
525         (WTF::createWithFormatAndArguments):
526
527 == Rolled over to ChangeLog-2018-09-11 ==