Damien George
534b7c368d
py: Do adjacent str/bytes literal concatenation in lexer, not compiler.
...
It's much more efficient in RAM and code size to do implicit literal string
concatenation in the lexer, as opposed to the compiler.
RAM usage is reduced because the concatenation can be done right away in the
tokeniser by just accumulating the string/bytes literals into the lexer's
vstr. Prior to this patch adjacent strings/bytes would create a parse tree
(one node per string/bytes) and then in the compiler a whole new chunk of
memory was allocated to store the concatenated string, which used more than
double the memory compared to just accumulating in the lexer.
This patch also significantly reduces code size:
bare-arm: -204
minimal: -204
unix x64: -328
stmhal: -208
esp8266: -284
cc3200: -224
2017-02-17 12:12:40 +11:00
..
2016-10-17 12:17:37 +11:00
2017-01-03 15:40:50 +11:00
2016-12-09 16:51:49 +11:00
2016-12-09 22:50:58 +11:00
2016-12-09 22:50:58 +11:00
2016-12-09 22:50:58 +11:00
2016-12-09 16:51:49 +11:00
2016-12-09 22:50:58 +11:00
2016-12-09 22:50:58 +11:00
2016-12-09 22:54:45 +11:00
2016-12-09 22:50:58 +11:00
2016-12-09 22:50:58 +11:00
2017-02-08 10:48:51 +11:00
2017-02-16 18:38:06 +11:00
2016-10-17 12:17:37 +11:00
2017-01-27 12:34:09 +11:00
2017-01-17 22:53:06 +03:00
2015-05-17 18:12:19 +01:00
2017-01-22 11:56:16 +11:00
2016-10-17 12:17:37 +11:00
2017-01-22 12:12:54 +11:00
2017-01-22 11:59:29 +11:00
2017-02-17 12:12:40 +11:00
2016-12-09 17:06:21 +11:00
2017-02-16 18:38:06 +11:00
2017-02-16 18:38:06 +11:00
2016-09-30 13:53:00 +10:00
2016-12-21 11:52:05 +11:00
2016-11-16 16:14:14 +11:00
2017-02-16 19:45:06 +11:00
2016-12-09 21:23:17 +11:00
2017-02-16 18:38:06 +11:00
2017-01-19 23:32:16 +11:00
2015-05-17 21:47:11 +01:00
2016-05-23 12:42:23 +01:00
2016-05-21 21:38:50 +03:00
2016-08-26 15:35:26 +10:00
2016-07-01 00:09:55 +03:00
2017-02-17 12:12:40 +11:00
2017-02-17 12:12:40 +11:00
2017-02-17 11:30:14 +11:00
2016-09-02 14:32:47 +10:00
2016-09-09 23:01:23 +10:00
2015-10-30 11:34:53 +03:00
2016-08-26 15:35:26 +10:00
2017-02-08 11:00:15 +11:00
2016-12-27 01:05:37 +03:00
2016-11-08 14:28:30 +11:00
2017-01-05 15:51:36 +11:00
2016-09-22 00:23:16 +10:00
2017-02-16 18:38:06 +11:00
2016-09-22 00:23:16 +10:00
2016-09-22 00:23:16 +10:00
2016-09-22 00:23:16 +10:00
2016-10-07 13:31:59 +11:00
2016-11-03 12:33:01 +11:00
2016-10-11 10:56:22 +11:00
2017-01-17 22:53:06 +03:00
2016-09-22 00:23:16 +10:00
2017-02-15 11:28:02 +11:00
2016-09-22 00:23:16 +10:00
2017-02-15 11:28:15 +11:00
2016-05-28 00:17:19 +03:00
2016-10-14 20:14:01 +03:00
2016-12-28 12:45:33 +11:00
2016-10-21 18:30:58 +11:00
2016-02-25 10:05:46 +00:00
2017-01-30 12:26:07 +11:00
2016-06-28 11:28:52 +01:00
2017-02-16 16:51:16 +11:00
2017-02-16 16:51:16 +11:00
2017-02-16 18:38:06 +11:00
2016-06-28 11:28:52 +01:00
2016-06-28 11:28:52 +01:00
2016-07-21 00:54:21 +03:00
2017-02-08 11:12:26 +11:00
2017-02-08 11:12:26 +11:00
2017-02-08 11:12:26 +11:00
2017-02-16 18:38:06 +11:00
2017-02-16 18:38:06 +11:00
2017-02-16 19:11:34 +11:00
2017-02-16 16:51:16 +11:00
2017-02-16 16:51:16 +11:00
2016-09-30 17:02:07 +10:00
2016-11-22 01:33:55 +03:00
2015-11-29 14:25:35 +00:00
2017-02-16 16:51:17 +11:00
2017-02-04 00:23:56 +11:00
2017-02-16 19:11:34 +11:00
2017-02-16 18:38:06 +11:00
2017-02-16 16:51:17 +11:00
2017-02-16 16:51:17 +11:00
2017-02-16 18:38:06 +11:00
2017-02-03 00:01:37 +11:00
2017-02-16 16:51:16 +11:00
2015-11-13 12:49:18 +00:00
2017-02-16 18:38:06 +11:00
2015-01-01 20:32:09 +00:00
2017-02-16 18:38:06 +11:00
2017-02-16 16:51:17 +11:00
2017-02-16 16:51:17 +11:00
2017-02-16 16:51:17 +11:00
2017-02-02 22:23:10 +03:00
2017-02-16 19:11:34 +11:00
2017-02-16 16:51:16 +11:00
2017-02-16 18:38:06 +11:00
2017-01-26 23:30:38 +11:00
2017-01-26 23:30:38 +11:00
2016-10-17 12:17:37 +11:00
2016-09-19 12:28:55 +10:00
2016-10-17 12:17:37 +11:00
2017-02-16 18:38:06 +11:00
2016-08-12 22:39:03 +03:00
2017-02-16 18:38:06 +11:00
2017-02-16 18:38:06 +11:00
2017-02-16 19:11:34 +11:00
2015-11-29 14:25:35 +00:00
2015-11-29 14:25:35 +00:00
2017-02-16 18:38:06 +11:00
2017-02-16 16:51:16 +11:00
2017-02-16 18:38:06 +11:00
2016-10-13 11:46:14 +11:00
2017-02-16 18:38:06 +11:00
2017-02-16 19:11:34 +11:00
2017-02-16 18:38:06 +11:00
2017-02-16 18:38:06 +11:00
2016-01-11 00:49:27 +00:00
2017-02-16 18:38:06 +11:00
2015-01-01 20:32:09 +00:00
2017-02-16 19:45:06 +11:00
2016-11-15 16:48:48 +11:00
2016-12-28 12:25:00 +11:00
2016-03-14 22:34:03 +00:00
2016-03-14 22:52:52 +00:00
2016-03-14 22:34:03 +00:00
2017-02-17 00:19:34 +11:00
2016-11-16 18:13:50 +11:00
2017-01-30 12:26:07 +11:00
2016-11-02 23:15:41 +11:00
2016-06-16 01:42:48 +03:00
2017-01-27 17:19:06 +11:00
2016-11-16 18:13:51 +11:00
2016-11-16 18:13:51 +11:00
2016-05-20 12:46:20 +01:00
2015-04-29 00:46:26 +01:00
2016-03-30 14:48:31 +03:00
2017-02-16 18:38:06 +11:00
2016-04-25 20:03:14 +03:00
2017-02-16 19:11:34 +11:00
2017-02-16 18:38:06 +11:00
2016-09-30 13:53:00 +10:00
2016-09-30 13:53:00 +10:00
2016-10-30 15:54:19 -02:00
2017-02-16 18:38:06 +11:00
2015-01-01 20:32:09 +00:00
2016-01-08 13:43:56 +00:00
2016-06-28 11:09:31 +01:00
2016-03-07 14:12:24 +07:00
2016-11-14 00:24:22 +03:00
2016-12-02 16:37:29 +11:00
2016-12-28 17:50:10 +11:00
2015-01-01 20:32:09 +00:00
2017-02-16 18:38:06 +11:00
2017-02-16 18:38:06 +11:00
2016-10-14 16:46:34 +11:00
2016-10-31 23:21:15 +03:00