[BigInt] Add ValueMul into DFG
[WebKit-https.git] / PerformanceTests / ChangeLog
1 2018-12-10  Caio Lima  <ticaiolima@gmail.com>
2
3         [BigInt] Add ValueMul into DFG
4         https://bugs.webkit.org/show_bug.cgi?id=186175
5
6         Reviewed by Yusuke Suzuki.
7
8         * BigIntBench/big-int-simple-mul.js: Added.
9         * BigIntBench/value-mul-type-propagation.js: Added.
10
11 2018-11-07  Caio Lima  <ticaiolima@gmail.com>
12
13         [BigInt] Add support to BigInt into ValueAdd
14         https://bugs.webkit.org/show_bug.cgi?id=186177
15
16         Reviewed by Keith Miller.
17
18         The idea of BigIntBench is to provide a set of microbenchmarks and
19         benchmarks to evaluate how fast BigInt computations are happening on
20         JSC implementation.
21
22         Now, we are adding microbenchmarks in this set,
23         but the plan is to move these tests to "JSTest/microbenchmarks" when
24         BigInt is enabled by default. After that, the focus of Bigint bench is
25         to provide a set of tests that represents real use cases of BigInt in
26         JS programs.
27
28         * BigIntBench/big-int-add-prediction-propagation.js: Added.
29         * BigIntBench/big-int-simple-add.js: Added.
30         * BigIntBench/big-int-simple-sub.js: Added.
31
32 2018-11-07  Tadeu Zagallo  <tzagallo@apple.com>
33
34         REGRESSION(r237547): Test failures on 32-bit JSC since the JIT was disabled
35         https://bugs.webkit.org/show_bug.cgi?id=191184
36
37         Reviewed by Saam Barati.
38
39         Skip test when the JIT is disabled, it takes too long to run on CLoop.
40
41         * JetStream/cdjs/main.js:
42
43 2018-11-05  Myles C. Maxfield  <mmaxfield@apple.com>
44
45         Cache glyph paths and share underline skipping code between all the ports
46         https://bugs.webkit.org/show_bug.cgi?id=191239
47
48         Reviewed by Alex Christensen.
49
50         Measures the performance of drawing a whole lot of underlines
51
52         * Layout/underline.html: Added.
53
54 2018-10-25  Saam Barati  <sbarati@apple.com>
55
56         Check in corresponding C code in JetStream 2
57         https://bugs.webkit.org/show_bug.cgi?id=190733
58
59         Rubber-stamped by Filip Pizlo.
60
61         * JetStream2/simple/float-mm.c: Added.
62         * JetStream2/wasm/HashSet.cpp: Added.
63         * JetStream2/wasm/gcc-loops.cpp: Added.
64         * JetStream2/wasm/quicksort.c: Added.
65         * JetStream2/wasm/TSF: Added.
66         * JetStream2/wasm/TSF/build.sh: Added.
67         * JetStream2/wasm/TSF/config.h: Added.
68         * JetStream2/wasm/TSF/gpc.h: Added.
69         * JetStream2/wasm/TSF/gpc_code_gen_util.c: Added.
70         * JetStream2/wasm/TSF/gpc_instruction.c: Added.
71         * JetStream2/wasm/TSF/gpc_instruction_dispatch.gen: Added.
72         * JetStream2/wasm/TSF/gpc_instruction_size.gen: Added.
73         * JetStream2/wasm/TSF/gpc_instruction_stack_effects.gen: Added.
74         * JetStream2/wasm/TSF/gpc_instruction_static_size.gen: Added.
75         * JetStream2/wasm/TSF/gpc_instruction_to_string.gen: Added.
76         * JetStream2/wasm/TSF/gpc_int_common.h: Added.
77         * JetStream2/wasm/TSF/gpc_intable.c: Added.
78         * JetStream2/wasm/TSF/gpc_internal.h: Added.
79         * JetStream2/wasm/TSF/gpc_interpreter.gen: Added.
80         * JetStream2/wasm/TSF/gpc_program.c: Added.
81         * JetStream2/wasm/TSF/gpc_proto.c: Added.
82         * JetStream2/wasm/TSF/gpc_stack_height.c: Added.
83         * JetStream2/wasm/TSF/gpc_threaded.c: Added.
84         * JetStream2/wasm/TSF/gpc_worklist.h: Added.
85         * JetStream2/wasm/TSF/tsf.h: Added.
86         * JetStream2/wasm/TSF/tsf_adaptive_reader.c: Added.
87         * JetStream2/wasm/TSF/tsf_asprintf.c: Added.
88         * JetStream2/wasm/TSF/tsf_atomics.h: Added.
89         * JetStream2/wasm/TSF/tsf_buf_reader.c: Added.
90         * JetStream2/wasm/TSF/tsf_buf_writer.c: Added.
91         * JetStream2/wasm/TSF/tsf_buffer.c: Added.
92         * JetStream2/wasm/TSF/tsf_build_defines.h: Added.
93         * JetStream2/wasm/TSF/tsf_config.h: Added.
94         * JetStream2/wasm/TSF/tsf_config_stub.h: Added.
95         * JetStream2/wasm/TSF/tsf_copier.c: Added.
96         * JetStream2/wasm/TSF/tsf_define_helpers.c: Added.
97         * JetStream2/wasm/TSF/tsf_define_helpers.h: Added.
98         * JetStream2/wasm/TSF/tsf_destructor.c: Added.
99         * JetStream2/wasm/TSF/tsf_error.c: Added.
100         * JetStream2/wasm/TSF/tsf_format.h: Added.
101         * JetStream2/wasm/TSF/tsf_fsdb.c: Added.
102         * JetStream2/wasm/TSF/tsf_fsdb_protocol.c: Added.
103         * JetStream2/wasm/TSF/tsf_fsdb_protocol.h: Added.
104         * JetStream2/wasm/TSF/tsf_generator.c: Added.
105         * JetStream2/wasm/TSF/tsf_gpc_code_gen.c: Added.
106         * JetStream2/wasm/TSF/tsf_indent.h: Added.
107         * JetStream2/wasm/TSF/tsf_internal.h: Added.
108         * JetStream2/wasm/TSF/tsf_internal_config.h: Added.
109         * JetStream2/wasm/TSF/tsf_internal_config_stub.h: Added.
110         * JetStream2/wasm/TSF/tsf_inttypes.h: Added.
111         * JetStream2/wasm/TSF/tsf_io.c: Added.
112         * JetStream2/wasm/TSF/tsf_io_utils.c: Added.
113         * JetStream2/wasm/TSF/tsf_ir.c: Added.
114         * JetStream2/wasm/TSF/tsf_ir.h: Added.
115         * JetStream2/wasm/TSF/tsf_ir_different.c: Added.
116         * JetStream2/wasm/TSF/tsf_ir_different.h: Added.
117         * JetStream2/wasm/TSF/tsf_ir_speed.c: Added.
118         * JetStream2/wasm/TSF/tsf_limits.c: Added.
119         * JetStream2/wasm/TSF/tsf_named_type.c: Added.
120         * JetStream2/wasm/TSF/tsf_native.c: Added.
121         * JetStream2/wasm/TSF/tsf_parser.c: Added.
122         * JetStream2/wasm/TSF/tsf_primitive.c: Added.
123         * JetStream2/wasm/TSF/tsf_ra_type_man.c: Added.
124         * JetStream2/wasm/TSF/tsf_reflect.c: Added.
125         * JetStream2/wasm/TSF/tsf_region.h: Added.
126         * JetStream2/wasm/TSF/tsf_serial_in_man.c: Added.
127         * JetStream2/wasm/TSF/tsf_serial_out_man.c: Added.
128         * JetStream2/wasm/TSF/tsf_serial_protocol.h: Added.
129         * JetStream2/wasm/TSF/tsf_sha1.c: Added.
130         * JetStream2/wasm/TSF/tsf_sha1.h: Added.
131         * JetStream2/wasm/TSF/tsf_sha1_writer.c: Added.
132         * JetStream2/wasm/TSF/tsf_sort.c: Added.
133         * JetStream2/wasm/TSF/tsf_st.c: Added.
134         * JetStream2/wasm/TSF/tsf_st.h: Added.
135         * JetStream2/wasm/TSF/tsf_st_typetable.c: Added.
136         * JetStream2/wasm/TSF/tsf_stream_file_input.c: Added.
137         * JetStream2/wasm/TSF/tsf_stream_file_output.c: Added.
138         * JetStream2/wasm/TSF/tsf_type.c: Added.
139         * JetStream2/wasm/TSF/tsf_type_in_map.c: Added.
140         * JetStream2/wasm/TSF/tsf_type_out_map.c: Added.
141         * JetStream2/wasm/TSF/tsf_type_table.c: Added.
142         * JetStream2/wasm/TSF/tsf_types.h: Added.
143         * JetStream2/wasm/TSF/tsf_util.h: Added.
144         * JetStream2/wasm/TSF/tsf_version.c: Added.
145         * JetStream2/wasm/TSF/tsf_zip_abstract.c: Added.
146         * JetStream2/wasm/TSF/tsf_zip_abstract.h: Added.
147         * JetStream2/wasm/TSF/tsf_zip_attr.c: Added.
148         * JetStream2/wasm/TSF/tsf_zip_reader.c: Added.
149         * JetStream2/wasm/TSF/tsf_zip_writer.c: Added.
150
151 2018-10-18  Saam Barati  <sbarati@apple.com>
152
153         Make JetStream 2
154         https://bugs.webkit.org/show_bug.cgi?id=187829
155
156         Rubber-stamped by Mark Lam.
157
158         This patch checks in the new JetStream 2 benchmark. JetStream 2 is
159         a new JavaScript and Web Assembly benchmark. JetStream 2's goal
160         is to measure the startup, worst case, and peak throughput performance
161         of the JavaScript engine. JetStream 2 incorporates these previous
162         benchmarks:
163         - JetStream
164         - ARES-6
165         - Kraken
166         - Web Tooling Benchmark
167         - WasmBench
168         - RexBench
169         
170         JetStream 2 also adds some new benchmarks:
171         - Two tests emphasizing web worker performance.
172         - One test emphasizing Promise, async iteration, and DataView performance.
173         - Two new code load tests.
174         - WSL: a test measuring all kinds of things, especially emphasizing exception performance.
175
176         * JetStream2: Added.
177
178 2018-10-02  Chris Dumez  <cdumez@apple.com>
179
180         Regression(r236613): Parser/html-parser.html performance test is failing
181         https://bugs.webkit.org/show_bug.cgi?id=190201
182
183         Unreviewed, apply the same fix as in r236699 to make sure the iframe is treated as
184         same origin, so that calls to document.open() / document.write() succeed.
185
186         * Parser/html-parser.html:
187
188 2018-10-01  Chris Dumez  <cdumez@apple.com>
189
190         Regression(r236613): Parser/HTML5-8266-ParseOnly.html performance tests no longer runs
191         https://bugs.webkit.org/show_bug.cgi?id=190174
192
193         Reviewed by Ryosuke Niwa.
194
195         Update iframe's sandbox to use 'allow-same-origin' so that the iframe is treated as same-origin and so that
196         the top frame can call document.open() / document.write() on the subframe. This test was also failing in
197         Firefox without this change.
198
199         * Parser/HTML5-8266-ParseOnly.html:
200
201 2018-08-27  Aditya Keerthi  <akeerthi@apple.com>
202
203         Consolidate ENABLE_INPUT_TYPE_COLOR and ENABLE_INPUT_TYPE_COLOR_POPOVER
204         https://bugs.webkit.org/show_bug.cgi?id=188931
205
206         Reviewed by Wenson Hsieh.
207
208         * StitchMarker/wtf/FeatureDefines.h: Removed ENABLE_INPUT_TYPE_COLOR_POPOVER.
209
210 2018-08-23  Don Olmstead  <don.olmstead@sony.com>
211
212         [CMake] Have checks are not getting set inside CMake properly
213         https://bugs.webkit.org/show_bug.cgi?id=188901
214
215         Reviewed by Michael Catanzaro.
216
217         Add notification that MallocBench is disabled.
218
219         * CMakeLists.txt:
220
221 2018-08-23  Don Olmstead  <don.olmstead@sony.com>
222
223         [CMake] Add HAVE_MALLOC_TRIM definition
224         https://bugs.webkit.org/show_bug.cgi?id=188897
225
226         Reviewed by Konstantin Tokarev.
227
228         MallocBench should only be built on Apple platforms and platforms that
229         have malloc_trim.
230
231         * CMakeLists.txt:
232
233 2018-08-13  Jon Lee  <jonlee@apple.com>
234
235         Update MotionMark version number
236         https://bugs.webkit.org/show_bug.cgi?id=188535
237         <rdar://problem/43254078>
238
239         Reviewed by Said Abou-Hallawa.
240
241         * MotionMark/resources/strings.js: To 1.1.
242
243 2018-08-13  Jon Lee  <jonlee@apple.com>
244
245         [MotionMark] Update Multiply test
246         https://bugs.webkit.org/show_bug.cgi?id=188532
247         <rdar://problem/43252151>
248
249         Reviewed by Said Abou-Hallawa.
250
251         Update Multiply test to have a larger upper limit of number of particles. Cycle through three
252         different ways of hiding an element. Add new Multiple suite that isolates those components for
253         debugging purposes.
254
255         * MotionMark/resources/debug-runner/tests.js:
256         * MotionMark/tests/dom/multiply.html: Added.
257         * MotionMark/tests/dom/resources/multiply.js: Added.
258         * MotionMark/tests/master/resources/multiply.js:
259
260 2018-08-13  Jon Lee  <jonlee@apple.com>
261
262         [MotionMark] Update Leaves test
263         https://bugs.webkit.org/show_bug.cgi?id=188530
264         <rdar://problem/43251862>
265
266         Reviewed by Said Abou-Hallawa.
267
268         Update Leaves test to include opacity and scale. Add new Leaves suite that isolate those components
269         for debugging purposes.
270
271         * MotionMark/resources/debug-runner/tests.js:
272         * MotionMark/tests/dom/leaves.html:
273         * MotionMark/tests/dom/resources/leaves.js:
274         * MotionMark/tests/master/resources/leaves.js:
275
276 2018-08-10  Ben Richards  <benton_richards@apple.com>
277
278         Add ability to ignore process prewarming for launch time benchmark
279         https://bugs.webkit.org/show_bug.cgi?id=188462
280
281         Reviewed by Ryosuke Niwa.
282
283         Added a flag to the new tab benchmark that will open a blank tab before the tab to be measured in order to ignore process prewarming.
284
285         * LaunchTime/launch_time.py:
286         (DefaultLaunchTimeHandler):
287         (DefaultLaunchTimeHandler.on_receive_stop_time): Deleted.
288         (DefaultLaunchTimeHandler.on_receive_stop_signal):
289         (DefaultLaunchTimeHandler.do_HEAD):
290         (DefaultLaunchTimeHandler.do_GET):
291         (DefaultLaunchTimeHandler.do_POST):
292         (LaunchTimeBenchmark):
293         (LaunchTimeBenchmark._standard_deviation): Fixed divide by zero bug when '-n' is set to 1
294         (LaunchTimeBenchmark.open_tab): Added option to open a blank tab
295         (LaunchTimeBenchmark.run):
296         * LaunchTime/new_tab.py:
297         (NewTabBenchmark.initialize):
298         (NewTabBenchmark.run_iteration):
299         (NewTabBenchmark.will_parse_arguments):
300         (NewTabBenchmark.did_parse_arguments):
301         (NewTabBenchmark.ResponseHandler.Handler.get_test_page):
302         (NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
303         (NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
304         (NewTabBenchmark):
305         * LaunchTime/startup.py:
306         (StartupBenchmark.ResponseHandler.Handler.get_test_page):
307         (StartupBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
308         (StartupBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
309         (StartupBenchmark):
310
311 2018-08-10  Truitt Savell  <tsavell@apple.com>
312
313         Unreviewed, rolling out r234750.
314
315         Caused 185 perf test failures.
316
317         Reverted changeset:
318
319         "Add ability to ignore process prewarming for launch time
320         benchmark"
321         https://bugs.webkit.org/show_bug.cgi?id=188462
322         https://trac.webkit.org/changeset/234750
323
324 2018-08-09  Ben Richards  <benton_richards@apple.com>
325
326         Add ability to ignore process prewarming for launch time benchmark
327         https://bugs.webkit.org/show_bug.cgi?id=188462
328
329         Reviewed by Ryosuke Niwa.
330
331         Added a flag to the new tab benchmark that will open a blank tab before the tab to be measured in order to ignore process prewarming.
332
333         * LaunchTime/launch_time.py:
334         (DefaultLaunchTimeHandler):
335         (DefaultLaunchTimeHandler.on_receive_stop_time): Deleted.
336         (DefaultLaunchTimeHandler.on_receive_stop_signal):
337         (DefaultLaunchTimeHandler.do_HEAD):
338         (DefaultLaunchTimeHandler.do_GET):
339         (DefaultLaunchTimeHandler.do_POST):
340         (LaunchTimeBenchmark):
341         (LaunchTimeBenchmark._standard_deviation): Fixed divide by zero bug when '-n' is set to 1
342         (LaunchTimeBenchmark.open_tab): Added option to open a blank tab
343         (LaunchTimeBenchmark.run):
344         * LaunchTime/new_tab.py:
345         (NewTabBenchmark.initialize):
346         (NewTabBenchmark.run_iteration):
347         (NewTabBenchmark.will_parse_arguments):
348         (NewTabBenchmark.did_parse_arguments):
349         (NewTabBenchmark.ResponseHandler.Handler.get_test_page):
350         (NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
351         (NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
352         (NewTabBenchmark):
353         * LaunchTime/startup.py:
354         (StartupBenchmark.ResponseHandler.Handler.get_test_page):
355         (StartupBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
356         (StartupBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
357         (StartupBenchmark):
358
359 2018-07-26  Andy VanWagoner  <andy@vanwagoner.family>
360
361         [INTL] Remove INTL sub-feature compile flags
362         https://bugs.webkit.org/show_bug.cgi?id=188081
363
364         Reviewed by Michael Catanzaro.
365
366         Removed old and unused i18n flag.
367
368         * StitchMarker/wtf/FeatureDefines.h:
369
370 2018-07-20  David Fenton  <david_fenton@apple.com>
371
372         REGRESSION (234006) ERROR: Blocked access to external URL http://code.jquery.com/jquery-1.9.1.min.js
373         https://bugs.webkit.org/show_bug.cgi?id=187858
374
375         Unreviewed test gardening, skipped test.
376
377         * Skipped: LaunchTime
378
379 2018-07-19  Ben Richards  <benton_richards@apple.com>
380
381         Add benchmark for WebKit process launch times
382         https://bugs.webkit.org/show_bug.cgi?id=186414
383
384         Reviewed by Ryosuke Niwa.
385
386         Added two benchmarks, one for measuring browser new tab launch time and one for browser startup time.
387
388         * LaunchTime/.gitignore: Added.
389         * LaunchTime/feedback_client.html: Added.
390         Displays benchmark progress in browser
391         * LaunchTime/feedback_server.py: Added.
392         (FeedbackServer): Sends data to feedback_client via websocket
393         (FeedbackServer.__init__):
394         (FeedbackServer._create_app):
395         (FeedbackServer._start_server):
396         (FeedbackServer._send_all_messages):
397         (FeedbackServer.start):
398         (FeedbackServer.stop):
399         (FeedbackServer.send_message): Send a message to the feedback_client
400         (FeedbackServer.wait_until_client_has_loaded): Wait until the feedback_client has opened a websocket connection to the feedback_server
401         (FeedbackServer.MainHandler): Handler factory to create handler that serves feedback_client.html
402         (FeedbackServer.MainHandler.Handler):
403         (FeedbackServer.MainHandler.Handler.get):
404         (FeedbackServer.WSHandler): Handler factory to create handler that sends data to feedback client
405         (FeedbackServer.WSHandler.Handler):
406         (FeedbackServer.WSHandler.Handler.open): On websocket connection opened
407         (FeedbackServer.WSHandler.Handler.on_close): On websocket connection closed
408         * LaunchTime/launch_time.py: Added.
409         (DefaultLaunchTimeHandler): Abstract HTTP request handler for launch time benchmarks
410         (DefaultLaunchTimeHandler.get_test_page): Default test page to be overridden by benchmarks
411         (DefaultLaunchTimeHandler.get_blank_page):
412         (DefaultLaunchTimeHandler.on_receive_stop_time):
413         (DefaultLaunchTimeHandler.do_HEAD):
414         (DefaultLaunchTimeHandler.do_GET):
415         (DefaultLaunchTimeHandler.do_POST):
416         (DefaultLaunchTimeHandler.log_message): Suppresses HTTP logs from SimpleHTTPRequestHandler
417         (LaunchTimeBenchmark): Abstract class which launch time benchmarks inherit from and override methods desired to customize
418         (LaunchTimeBenchmark.__init__):
419         (LaunchTimeBenchmark._parse_browser_bundle_path): Parser for bundle path option
420         (LaunchTimeBenchmark._parse_args):
421         (LaunchTimeBenchmark._run_server): Target function for main server thread
422         (LaunchTimeBenchmark._setup_servers):
423         (LaunchTimeBenchmark._clean_up):
424         (LaunchTimeBenchmark._exit_due_to_exception):
425         (LaunchTimeBenchmark._geometric_mean):
426         (LaunchTimeBenchmark._standard_deviation):
427         (LaunchTimeBenchmark._compute_results): Returns mean and std dev of list of results and pretty prints if should_print=True is specified
428         (LaunchTimeBenchmark._wait_times): Mimic numpy.linspace
429         (LaunchTimeBenchmark.open_tab): Open a browser tab with the html given by self.response_handler.get_test_page
430         (LaunchTimeBenchmark.launch_browser): Open a broser to either the feedback client (if option is set) or a blank page
431         (LaunchTimeBenchmark.quit_browser):
432         (LaunchTimeBenchmark.quit_browser.quit_app):
433         (LaunchTimeBenchmark.quit_browser.is_app_closed):
434         (LaunchTimeBenchmark.close_tab):
435         (LaunchTimeBenchmark.wait):
436         (LaunchTimeBenchmark.log): Print to console and send to feedback client if --feedback-in-browser flag is used
437         (LaunchTimeBenchmark.log_verbose): Only logs if --verbose flag is used
438         (LaunchTimeBenchmark.run):
439         (LaunchTimeBenchmark.group_init): Initialization done before each round of iterations
440         (LaunchTimeBenchmark.run_iteration):
441         (LaunchTimeBenchmark.initialize): Convenience method to be overriden by subclasses which is called at the end of __init__
442         (LaunchTimeBenchmark.will_parse_arguments): Called before argparse.parse_args to let subclasses add new command line arguments
443         (LaunchTimeBenchmark.did_parse_arguments): Called after argparse.parse_args to let subclass initialize based on command line arguments
444         * LaunchTime/new_tab.py: Added
445         (NewTabBenchmark):
446         (NewTabBenchmark._parse_wait_time): Parser for wait time option
447         (NewTabBenchmark.initialize):
448         (NewTabBenchmark.run_iteration):
449         (NewTabBenchmark.group_init):
450         (NewTabBenchmark.will_parse_arguments):
451         (NewTabBenchmark.did_parse_arguments):
452         (NewTabBenchmark.ResponseHandler):
453         (NewTabBenchmark.ResponseHandler.Handler):
454         (NewTabBenchmark.ResponseHandler.Handler.get_test_page):
455         * LaunchTime/startup.py: Added
456         (StartupBenchmark): This benchmark measures browser startup time and initial page load time
457         (StartupBenchmark.initialize):
458         (StartupBenchmark.run_iteration):
459         (StartupBenchmark.ResponseHandler):
460         (StartupBenchmark.ResponseHandler.Handler):
461         (StartupBenchmark.ResponseHandler.Handler.get_test_page):
462         * LaunchTime/thirdparty/__init__.py: Added.
463         (AutoinstallImportHook): Auto installs tornado package for feedback server
464         (AutoinstallImportHook.__init__):
465         (AutoinstallImportHook._ensure_autoinstalled_dir_is_in_sys_path):
466         (AutoinstallImportHook.find_module):
467         (AutoinstallImportHook._install_tornado):
468         (AutoinstallImportHook.greater_than_equal_to_version):
469         (AutoinstallImportHook._install):
470         (AutoinstallImportHook.get_latest_pypi_url):
471         (AutoinstallImportHook.install_binary):
472         (autoinstall_everything):
473         (get_os_info):
474
475 2018-06-25  Jon Lee  <jonlee@apple.com>
476
477         [MotionMark] Add support for version numbers
478         https://bugs.webkit.org/show_bug.cgi?id=186479
479
480         Reviewed by Said Abou-Hallawa.
481
482         Add support for displaying the version number as well as including it in the JSON results.
483
484         When loading the front page, script replaces any element with classname version with the
485         version number of the benchmark, which is stored in Strings.version.
486
487         The JSON structure for the results includes a new version property:
488             {
489               "version": "1.0",
490               "options": { ... },
491               "data": [ ... ]
492             }
493
494         When dragging a results file, the version listed will come from the JSON file. Older
495         results will not have had the version property, in which case it will default to "1.0".
496
497         * MotionMark/index.html: Update title to some other default. Script will update it.
498         Include the version number in the logo title.
499         * MotionMark/developer.html: Ditto.
500         * MotionMark/about.html: Ditto.
501
502         * MotionMark/resources/runner/motionmark.js:
503         (ResultsDashboard): Update constructor to include version. This is used when serializing
504         results out to JSON, and displaying the results panel in developer mode.
505         (ResultsDashboard._processData): When running the benchmark, include benchmark version string
506         in the results object.
507         (ResultsDashboard.version):
508         (window.benchmarkRunnerClient.willStartFirstIteration): When running the benchmark, pass the
509         benchmark version string to the dashboard, which holds the results.
510         (window.sectionsManager.setSectionVersion): Helper function to update the element in the
511         section with the class name version.
512         (window.benchmarkController.initialize): Populate all DOM elements with class name "version"
513         with the version string. Update the page title.
514         (window.benchmarkController.showResults): When showing results, update the version string
515         based on what is included in the JSON results, which would be the same as the benchmark version.
516         * MotionMark/resources/runner/motionmark.css: Include missing copyright. Wrap the SVG logo
517         in a div and include the version string.
518         * MotionMark/resources/strings.js: Add strings for the page title template, and the version.
519
520         * MotionMark/resources/debug-runner/motionmark.css:
521         * MotionMark/resources/debug-runner/motionmark.js:
522         (window.benchmarkRunnerClient.willStartFirstIteration): When running the benchmark, pass the
523         benchmark version string to the dashboard, which holds the results.
524         (window.benchmarkController.initialize): Populate all DOM elements with class name "version"
525         with the version string. Update the page title. When dragging in JSON results, look for
526         version to pass to the dashboard. If it doesn't exist, default to "1.0".
527         (window.benchmarkController.showResults): When showing results, update the version string
528         based on what is included in the JSON results, instead of the current benchmark version.
529         * MotionMark/resources/debug-runner/tests.js: Update page title template.
530
531 2018-06-08  Jon Lee  <jonlee@apple.com>
532
533         [MotionMark] Rename Suits test files
534         https://bugs.webkit.org/show_bug.cgi?id=186447
535
536         Reviewed by Said Abou-Hallawa.
537
538         * MotionMark/resources/runner/tests.js:
539         * MotionMark/tests/master/resources/suits.js: Renamed from PerformanceTests/MotionMark/tests/master/resources/svg-particles.js.
540         * MotionMark/tests/master/suits.html: Renamed from PerformanceTests/MotionMark/tests/master/svg-particles.html.
541         * MotionMark/tests/svg/suits.html:
542
543 2018-06-08  Jon Lee  <jonlee@apple.com>
544
545         Add sub-tests based on Suits
546         https://bugs.webkit.org/show_bug.cgi?id=186260
547
548         Reviewed by Said Abou-Hallawa.
549
550         Add a new developer Suits suite with sub-tests that isolate parts of each particle.
551         The sub-tests are:
552             - Particles using only clip paths
553             - Particles using only shapes
554             - Particles that have no gradients
555             - Particles that have no rotation
556             - Particles that do not move around at all (but all of the physics calculations are
557             still performed)
558
559         * MotionMark/resources/debug-runner/tests.js:
560         * MotionMark/tests/master/resources/svg-particles.js: Rename the stage, particle, and
561         benchmark to "Suits" from "SVG". Change SuitsParticle so that we guarantee 50% clip and
562         shape paths rather than relying on random chance. Wrap a check around creation of the
563         gradient element, and use a simple fill color when we aren't using a gradient.
564         * MotionMark/tests/svg/suits.html: Added.
565         * MotionMark/tests/svg/suits.js: Added.
566         Look for the query string and set the particle based on what is selected.
567
568 2018-06-06  Jon Lee  <jonlee@apple.com>
569
570         Allow the ramp controller to run tests that take less time than the initial ramp-up phase
571         https://bugs.webkit.org/show_bug.cgi?id=186257
572
573         Reviewed by Said Abou-Hallawa.
574
575         * MotionMark/tests/resources/main.js: Extend the desired end timestamp when ramp-up occurs.
576         Previously the controller assumed that the duration of the test was always longer than the
577         time it took to figure out the order of magnitude of particles to render. When that range
578         is determined, the end timestamp is then extended. If the duration is too short, the controller
579         would throw an exception. The fix is to continue extending the timestamp every time the order of
580         magnitude tiers up.
581
582         In general testing with really short durations isn't practical, but sometimes it is
583         desired for debugging.
584
585         To avoid confusion of the private variables, I renamed Benchmark._startTimestamp to
586         Benchmark._benchmarkStartTimestamp, to disambiguate from Controller._startTimestamp.
587         Benchmark._startTimestamp is set once and never changed, after the initial 100ms warm-up.
588         Controller._startTimestamp is initialized to 0 (which means "not initialized"), and then after
589         the warm up is complete, set in Controller.start() to the same wall clock timestamp, and never
590         changed afterwards.
591
592 2018-06-06  Jon Lee  <jonlee@apple.com>
593
594         Remove unneeded data processing in MotionMark
595         https://bugs.webkit.org/show_bug.cgi?id=186256
596
597         Reviewed by Said Abou-Hallawa.
598
599         Remove calculation of average frame rate based on multiple samples at a given complexity.
600         It is not used in the calculation of the score, and is just extra work to do at the end
601         of a test.
602
603         * MotionMark/developer.html: Remove options to show average data and regression based on
604         that data.
605         * MotionMark/resources/debug-runner/graph.js: Remove data. Update the time graph that
606         shows the relationship between the break point in the regression against the complexity
607         graph.
608         * MotionMark/resources/debug-runner/motionmark.css: Make the confidence intervals easier
609         to see.
610         * MotionMark/resources/runner/motionmark.js: Simplify score calculation now that we are
611         only calculating regressions on the raw data. We were calculating it based on the averages,
612         but that was just for analysis, and not used in the actual score. Get rid of the
613         |complexitySamples| local variable.
614         * MotionMark/resources/strings.js: Remove unneeded string constant.
615         * MotionMark/tests/resources/main.js:
616         (processSamples): Refactor so that more of it can be shared between Controller and
617         RampController. It also avoids processing the raw samples (controllerSamples) twice for
618         the ramp controller.
619         (_processComplexitySamples): Remove logic to calculate averages based on complexity.
620         (_processMarks): Split this out from the old processSamples.
621         (_processControllerSamples): Split this out from the old processSamples.
622
623 2018-06-06  Jon Lee  <jonlee@apple.com>
624
625         Strip out more characters when creating permalinks
626         https://bugs.webkit.org/show_bug.cgi?id=186259
627
628         Reviewed by Said Abou-Hallawa.
629
630         Tests and suites may have names that make permalinks to the tests less readable when
631         shared. Expand the set of characters that are stripped out of the names.
632
633         * MotionMark/resources/debug-runner/motionmark.js: Refactor to call
634         stripUnwantedCharactersForURL. For existing links, decode the suite and test names.
635         * MotionMark/resources/extensions.js:
636         (Utilities.stripUnwantedCharactersForURL): Rename from stripNonASCIICharacters.
637         Remove any non-alphanumeric character.
638
639 2018-06-04  Jon Lee  <jonlee@apple.com>
640
641         Remove unnecessary MotionMark controllers
642         https://bugs.webkit.org/show_bug.cgi?id=186255
643
644         Reviewed by Said Abou-Hallawa.
645
646         Get rid of the ramp30 and the fixed-with-a-step controllers, which aren't used for testing
647         or debugging.
648
649         * MotionMark/developer.html: Move the "ramp" option as first, since that is the default
650         controller for the benchmark.
651         * MotionMark/resources/debug-runner/motionmark.js:
652         * MotionMark/resources/runner/motionmark.js: Added missing copyright notice.
653         * MotionMark/tests/resources/main.js:
654
655 2018-05-25  Myles C. Maxfield  <mmaxfield@apple.com>
656
657         Improve the performance of Font::canRenderCombiningCharacterSequence()
658         https://bugs.webkit.org/show_bug.cgi?id=185933
659
660         Reviewed by Ryosuke Niwa.
661
662         * Layout/ComplexLongUnique.html: Added.
663
664 2018-05-25  Saam Barati  <sbarati@apple.com>
665
666         Have a memory test where we can validate JSCs mini memory mode
667         https://bugs.webkit.org/show_bug.cgi?id=185932
668
669         Reviewed by Mark Lam.
670
671         We add a directory here with the contents of the testmem benchmark.
672         To run it, use `Tools/Scripts/run-testmem`. To add new tests in the future,
673         you just need to add JS files to this directory.
674
675         * testmem: Added.
676         * testmem/air.js: Added.
677         * testmem/base64.js: Added.
678         * testmem/basic.js: Added.
679         * testmem/box2d.js: Added.
680         * testmem/crypto-md5.js: Added.
681         * testmem/date-format-tofte.js: Added.
682         * testmem/earley-boyer.js: Added.
683         * testmem/hash-map.js: Added.
684         * testmem/regex-dna.js: Added.
685         * testmem/splay.js: Added.
686         * testmem/tagcloud.js: Added.
687
688 2018-05-22  Ryan Haddad  <ryanhaddad@apple.com>
689
690         Unreviewed, rolling out r232052.
691
692         Breaks internal builds.
693
694         Reverted changeset:
695
696         "Use more C++17"
697         https://bugs.webkit.org/show_bug.cgi?id=185176
698         https://trac.webkit.org/changeset/232052
699
700 2018-05-21  Yusuke Suzuki  <utatane.tea@gmail.com>
701
702         Use more C++17
703         https://bugs.webkit.org/show_bug.cgi?id=185176
704
705         Reviewed by JF Bastien.
706
707         * MallocBench/MallocBench.xcodeproj/project.pbxproj:
708         * MediaTime/Configurations/Base.xcconfig:
709         * MediaTime/MediaTime.xcodeproj/project.pbxproj:
710
711 2018-04-30  Myles C. Maxfield  <mmaxfield@apple.com>
712
713         Improve the performance of FontCascadeDescription's effectiveFamilies
714         https://bugs.webkit.org/show_bug.cgi?id=184720
715
716         Reviewed by Simon Fraser.
717
718         This performance test calls SystemFontDatabase::systemFontCascadeList() around 2,000,000 times (before
719         this patch is applied), which is roughly equivalent to the page we found the performance problem on.
720         The calling pattern is roughly equivalent in this test.
721
722         * Layout/system-ui.html: Added.
723
724 2018-03-08  Antti Koivisto  <antti@apple.com>
725
726         Update StyleBench version number in page title to 0.3
727
728         * StyleBench/index.html:
729
730         There has been a bunch of changes, most notably the addition of attribute selector test step.
731
732 2018-02-16  Dean Jackson  <dino@apple.com>
733
734         Use OPENGL macros to be more clear about which OpenGL/ES WebGL uses on Cocoa
735         https://bugs.webkit.org/show_bug.cgi?id=182894
736
737         Reviewed by Tim Horton.
738
739         Rename OPENGL_ES_2 to OPENGL_ES.
740
741         * StitchMarker/wtf/Platform.h:
742
743 2018-02-09  Ryosuke Niwa  <rniwa@webkit.org>
744
745         Make run-perf-tests work with Speedometer 2.0 and re-enable the test
746         https://bugs.webkit.org/show_bug.cgi?id=182088
747
748         Reviewed by Antti Koivisto.
749
750         This patch updates the test harness to report new metrics of Speedometer 2.0.
751
752         Replaced the total time by the geometric mean of the time spent in each suite, and added scores
753         as a metric in addition to time. Also, updated the PerfTestRunner harness and the results template
754         to support "Score" metric with "pt" as its unit.
755
756         * Skipped: Unskipped the test.
757         * Speedometer/resources/benchmark-report.js:
758         (window.benchmarkClient.willStartFirstIteration..createTest): Added the unit as an optional argument
759         to report the score in addition to time. Also report the geomean of time instead of the total time.
760         (window.benchmarkClient.willStartFirstIteration): Report the geomean of time.
761         (window.benchmarkClient.didRunSuites): Record the entire measuredValues instead of just tests.
762         (window.benchmarkClient.didFinishLastIteration): Report the scores.
763
764 2018-02-09  Ross Kirsling  <ross.kirsling@sony.com>
765
766         Use REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR on any non-Windows port.
767         https://bugs.webkit.org/show_bug.cgi?id=182623
768
769         Reviewed by Alex Christensen.
770
771         * StitchMarker/wtf/Platform.h:
772         Simplify #if.
773
774 2018-02-01  Antti Koivisto  <antti@apple.com>
775
776         StyleBench: Attribute selectors and other improvements
777         https://bugs.webkit.org/show_bug.cgi?id=182387
778
779         Reviewed by Joseph Pecoraro.
780
781         - Add some attributes to elements in all tests
782         - Add some attribute selectors to stylesheets in all tests
783         - Also add some * selectors to all stylesheets.
784         - Add attribute mutation step to all suites
785         - Make test steps do more mutations (25->100) and reduce the number of steps to keep testing time in check.
786           Too fast steps were running into timer resolution limits.
787
788         * StyleBench/resources/style-bench.js:
789         (defaultConfiguration):
790         (prototype.randomAttributeName):
791         (prototype.randomAttributeValue):
792         (prototype.randomAttributeSelector):
793         (prototype.makeCompoundSelector):
794         (prototype.makeElement):
795         (prototype.addClasses):
796         (prototype.removeClasses):
797         (prototype.mutateAttributes):
798         (prototype.async.runForever):
799         * StyleBench/resources/tests.js:
800         (makeSteps):
801         (makeSuite):
802
803 2018-02-01  Geoffrey Garen  <ggaren@apple.com>
804
805         Make MallocBench easier for non-WebKit engineers to run
806         https://bugs.webkit.org/show_bug.cgi?id=182415
807
808         Reviewed by Saam Barati.
809
810         * MallocBench/MallocBench.xcodeproj/project.pbxproj: Use c++14 so we
811         can make_unique.
812
813         Specify that we support all Darwin platforms so you can test them.
814
815         * MallocBench/run-malloc-benchmarks: Specify the path to MallocBench
816         and libmbmalloc explicitly, rather than computing them implicitly
817         using webkitdirs. Non-WebKit folks don't have the directory structure
818         required by webkitdirs.
819
820         Remove Linux-specific and cmake-specific behaviors because we only
821         needed them in the world of implicit path computation.
822
823 2018-01-31  Ryosuke Niwa  <rniwa@webkit.org>
824
825         Make run-perf-tests work with StyleBench and re-enable it
826         https://bugs.webkit.org/show_bug.cgi?id=182322
827
828         Reviewed by Antti Koivisto.
829
830         This patch updates the test harness to report new metrics of StyleBench.
831
832         Replaced the total time by the geometric mean of the time spent in each suite, and added scores
833         as a metric in addition to time. Also, updated the PerfTestRunner harness and the results template
834         to support "Score" metric with "pt" as its unit.
835
836         * Skipped: Unskipped the test.
837         * StyleBench/resources/benchmark-report.js:
838         (window.benchmarkClient.willStartFirstIteration..createTest): Added the unit as an optional argument
839         to report the score in addition to time. Also report the geomean of time instead of the total time.
840         (window.benchmarkClient.willStartFirstIteration): Report the geomean of time.
841         (window.benchmarkClient.didRunSuites): Record the entire measuredValues instead of just tests.
842         (window.benchmarkClient.didFinishLastIteration): Report the scores.
843         * resources/results-template.html: Added "Score" as a metric and "pt" as its unit.
844         * resources/runner.js:
845         (PerfTestRunner..finish): Ditto.
846
847 2018-01-30  Ryosuke Niwa  <rniwa@webkit.org>
848
849         StyleBench: Generate more mutation steps
850         https://bugs.webkit.org/show_bug.cgi?id=182291
851
852         Rubber-stamped by Antti Koivisto
853
854         Use zero-based index instead of one-based index.
855
856         * StyleBench/resources/tests.js:
857         (makeSteps):
858
859 2018-01-30  Antti Koivisto  <antti@apple.com>
860
861         StyleBench: Generate more mutation steps
862         https://bugs.webkit.org/show_bug.cgi?id=182291
863
864         Reviewed by Ryosuke Niwa.
865
866         The test should be doing multiple rounds of mutations in a single document to test what is supposed to test (like it did before r227756).
867         This also makes test results more stable and less dependent on possible first-time costs.
868
869         * StyleBench/resources/benchmark-runner.js:
870
871         Adjust correctionFactor to match the new steps count. With 1.5 Firefox is ~72rpm.
872
873         * StyleBench/resources/tests.js:
874         (makeSteps):
875
876         Generate 10 rounds of class/element mutation steps.
877         Give each generated step unique name so reporting works.
878         Make individual steps do fewer mutations.
879
880 2018-01-29  Antti Koivisto  <antti@apple.com>
881
882         StyleBench: Remove : from a test name
883         https://bugs.webkit.org/show_bug.cgi?id=182258
884
885         Reviewed by Ryosuke Niwa.
886
887         It breaks reporting.
888
889         * StyleBench/resources/style-bench.js:
890         (nthPseudoClassConfiguration):
891
892 2018-01-29  Ryosuke Niwa  <rniwa@webkit.org>
893
894         Temporarily skip StyleBench until webkit.org/b/182088 is fixed.
895
896         * Skipped:
897
898 2018-01-29  Ryosuke Niwa  <rniwa@webkit.org>
899
900         Make StyleBench compatible with run-benchmark and run-perf-tests
901         https://bugs.webkit.org/show_bug.cgi?id=182262
902
903         Reviewed by Antti Koivisto.
904
905         Copied resource files referenced from Speedometer directory since run-benchmark needs to be able
906         to checkout each benchmark separately.
907
908         Removed the code to create tests of the same name five times in makeSteps since this
909         won't be compatible with either run-benchmark or run-perf-tests.
910
911         * StyleBench/index.html: Removed the code to show warnings for local files since run-benchmark
912         doesn't use HTTP server in WebDriver mode.
913         * StyleBench/resources/benchmark-report.js: Copied from resources/benchmark-report.js.
914         * StyleBench/resources/benchmark-runner.js: Copied from resources/benchmark-runner.js.
915         (BenchmarkRunner.prototype._finalize): Use the correction factor of 8 instead of 5 in StyleBench.
916         * StyleBench/resources/gauge.png: Copied from resources/gauge.png.
917         * StyleBench/resources/gauge@2x.png: Copied from resources/gauge@2x.png.
918         * StyleBench/resources/main.css: Copied from resources/main.css.
919         * StyleBench/resources/main.js: Copied from resources/main.js.
920         * StyleBench/resources/tests.js:
921         (makeSteps): Only make each test once.
922
923 2018-01-26  Chris Nardi  <cnardi@chromium.org>
924
925         Addressing post-review comments after r226614
926         https://bugs.webkit.org/show_bug.cgi?id=182151
927
928         Reviewed by Myles C. Maxfield.
929
930         * StitchMarker/wtf/text/StringImpl.h:
931         (WTF::isSpaceOrNewline):
932         * StitchMarker/wtf/text/TextBreakIterator.cpp:
933         (WTF::numCodeUnitsInGraphemeClusters):
934         * StitchMarker/wtf/text/TextBreakIterator.h:
935
936 2018-01-22  Antti Koivisto  <antti@apple.com>
937
938         StyleBench: Separate test for :nth pseudo classes
939         https://bugs.webkit.org/show_bug.cgi?id=181932
940
941         Reviewed by Sam Weinig.
942
943         Optimization strategies for nth are different from other structural pseudo classes (:first-child etc). Move them to a separate test.
944
945         * StyleBench/resources/style-bench.js:
946         (structuralPseudoClassConfiguration):
947         (nthPseudoClassConfiguration):
948
949             Add a new configuration.
950
951         (predefinedConfigurations):
952         (pseudoClassConfiguration): Deleted.
953
954 2018-01-17  Ryosuke Niwa  <rniwa@webkit.org>
955
956         Temporarily skip Speedometer until we fix the metrics.
957
958         * Skipped:
959
960 2018-01-16  Alex Christensen  <achristensen@webkit.org>
961
962         Fix Mac CMake build after r222900
963
964         * MallocBench/MallocBench/CMakeLists.txt:
965         The mbmalloc target doesn't exist if we're not in developer mode, so only use it if we are.
966
967 2018-01-09  Ryosuke Niwa  <rniwa@webkit.org>
968
969         Speedometer 2.0: Update the About page.
970         https://bugs.webkit.org/show_bug.cgi?id=175918
971
972         Reviewed by Keith Miller.
973
974         Updated the about page for Speedometer 2.0.
975
976         * Speedometer/index.html:
977
978 == Rolled over to ChangeLog-2018-01-01 ==