Damien George
01978648fd
py/objset: Simplify set and frozenset by separating their locals dicts.
...
A lot of set's methods (the mutable ones) are not allowed to operate on a
frozenset, and giving frozenset a separate locals dict with only the
methods that it supports allows to simplify the logic that verifies if
args are a set or a frozenset. Even though the new frozenset locals dict
is relatively large (88 bytes on 32-bit archs) there is a much bigger
saving coming from the removal of a const string for an error message,
along with the removal of some checks for set or frozenset type.
Changes in code size due to this patch are (for ports that changed at all):
unix x64: -56
unix nanbox: -304
stm32: -64
esp8266: -124
cc3200: -40
Apart from the reduced code, frozenset now has better tab-completion
because it only lists the valid methods. And the error message for
accessing an invalid method is now more detailed (it includes the
method name that wasn't found).
2017-10-03 17:55:53 +11:00
..
2017-08-13 22:52:33 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2016-12-09 22:50:58 +11:00
2016-12-09 22:50:58 +11:00
2017-08-23 11:32:27 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2016-12-09 22:50:58 +11:00
2017-02-08 10:48:51 +11:00
2017-09-25 16:35:19 -07:00
2017-08-15 11:53:36 +10:00
2017-07-31 18:35:40 +10:00
2017-08-15 11:33:43 +10:00
2017-08-17 16:19:35 +10:00
2017-09-12 16:03:52 +10:00
2017-07-31 18:35:40 +10:00
2017-09-12 16:03:52 +10:00
2017-08-15 11:53:36 +10:00
2017-08-21 22:00:34 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-09-13 20:36:06 +10:00
2017-07-31 18:35:40 +10:00
2017-08-15 11:53:36 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2016-12-09 21:23:17 +11:00
2017-08-15 11:53:36 +10:00
2017-08-21 22:04:23 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-08-15 11:53:36 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-08-13 22:52:33 +10:00
2017-07-31 18:35:40 +10:00
2016-09-02 14:32:47 +10:00
2017-06-09 13:42:13 +10:00
2017-07-04 22:37:41 +10:00
2017-08-31 17:00:14 +10:00
2017-08-31 16:46:13 +10:00
2017-08-31 17:00:14 +10:00
2017-05-29 11:36:05 +03:00
2017-09-06 14:09:13 +10:00
2017-07-31 18:35:40 +10:00
2017-09-18 00:06:43 +03:00
2017-08-30 21:02:00 +10:00
2017-07-31 18:35:40 +10:00
2017-08-30 21:02:00 +10:00
2017-07-31 18:35:40 +10:00
2017-08-30 21:02:00 +10:00
2017-07-31 18:35:40 +10:00
2017-09-01 11:11:09 +10:00
2017-08-30 21:02:00 +10:00
2017-09-26 11:59:11 +10:00
2017-02-22 12:58:11 +11:00
2017-09-26 11:59:11 +10:00
2017-07-24 18:41:24 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-18 11:57:39 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-08-15 11:53:36 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-09-01 15:25:29 +10:00
2017-08-29 12:52:18 +10:00
2017-09-12 08:55:14 +03:00
2017-03-06 17:13:16 +11:00
2017-09-04 14:16:27 +10:00
2017-09-04 23:35:46 +10:00
2017-08-29 13:16:30 +10:00
2017-07-18 11:57:39 +10:00
2017-07-31 18:35:40 +10:00
2017-08-29 13:16:30 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-09-18 14:31:03 +10:00
2017-08-29 13:16:30 +10:00
2017-07-31 18:35:40 +10:00
2017-09-21 15:24:57 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-09-26 12:57:51 +10:00
2017-08-15 11:53:36 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-09-18 00:06:43 +03:00
2017-09-18 00:06:43 +03:00
2017-09-18 00:06:43 +03:00
2017-09-18 00:06:43 +03:00
2017-09-07 00:10:10 +03:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-02-16 18:38:06 +11:00
2017-07-31 18:35:40 +10:00
2017-08-29 13:16:30 +10:00
2017-07-31 18:35:40 +10:00
2017-10-03 17:55:53 +11:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-09-19 21:21:12 +03:00
2017-08-29 13:16:30 +10:00
2017-08-20 22:02:41 +03:00
2017-06-09 17:33:01 +03:00
2017-08-29 13:16:30 +10:00
2017-09-06 00:23:41 +03:00
2017-08-29 13:16:30 +10:00
2017-09-10 17:05:57 +03:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-09-25 17:09:05 +10:00
2016-11-16 18:13:50 +11:00
2017-09-10 13:54:00 +03:00
2017-08-15 11:53:36 +10:00
2017-07-31 18:35:40 +10:00
2017-09-01 15:22:25 +10:00
2017-07-24 18:43:14 +10:00
2017-03-14 11:52:05 +11:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-18 11:57:39 +10:00
2017-09-25 16:35:19 -07:00
2017-07-31 18:35:40 +10:00
2017-09-18 00:06:43 +03:00
2017-09-13 20:33:55 +10:00
2017-03-20 15:20:26 +11:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-09-25 16:35:19 -07:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-09-21 18:22:55 +10:00
2017-08-20 22:02:41 +03:00
2017-09-06 16:43:09 +10:00
2017-09-06 16:43:09 +10:00
2017-09-22 11:28:45 +10:00
2017-09-25 16:35:19 -07:00
2017-09-21 20:29:41 +10:00
2017-09-26 11:59:11 +10:00