{"action":"created","issue":{"url":"https://api.github.com/repos/Fuco1/smartparens/issues/629","repository_url":"https://api.github.com/repos/Fuco1/smartparens","labels_url":"https://api.github.com/repos/Fuco1/smartparens/issues/629/labels{/name}","comments_url":"https://api.github.com/repos/Fuco1/smartparens/issues/629/comments","events_url":"https://api.github.com/repos/Fuco1/smartparens/issues/629/events","html_url":"https://github.com/Fuco1/smartparens/pull/629","id":164864916,"number":629,"title":"Memoize `syntax-ppss` in a couple places","user":{"login":"aaronjensen","id":8588,"avatar_url":"https://avatars.githubusercontent.com/u/8588?v=3","gravatar_id":"","url":"https://api.github.com/users/aaronjensen","html_url":"https://github.com/aaronjensen","followers_url":"https://api.github.com/users/aaronjensen/followers","following_url":"https://api.github.com/users/aaronjensen/following{/other_user}","gists_url":"https://api.github.com/users/aaronjensen/gists{/gist_id}","starred_url":"https://api.github.com/users/aaronjensen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aaronjensen/subscriptions","organizations_url":"https://api.github.com/users/aaronjensen/orgs","repos_url":"https://api.github.com/users/aaronjensen/repos","events_url":"https://api.github.com/users/aaronjensen/events{/privacy}","received_events_url":"https://api.github.com/users/aaronjensen/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":22,"created_at":"2016-07-11T15:25:56Z","updated_at":"2016-07-21T14:33:30Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/Fuco1/smartparens/pulls/629","html_url":"https://github.com/Fuco1/smartparens/pull/629","diff_url":"https://github.com/Fuco1/smartparens/pull/629.diff","patch_url":"https://github.com/Fuco1/smartparens/pull/629.patch"},"body":"These places are called many times each operation with the same point.\r\n`syntax-ppss` can be slow in some modes, like elixir-mode.\r\n\r\n## Before\r\n\r\n```\r\n+ flyspell-post-command-hook                                      694  64%\r\n- command-execute                                                 291  26%\r\n - call-interactively                                             291  26%\r\n  - funcall-interactively                                         291  26%\r\n   - self-insert-command                                          275  25%\r\n    - sp--post-self-insert-hook-handler                           261  24%\r\n     - condition-case                                             261  24%\r\n      - if                                                        261  24%\r\n       - progn                                                    261  24%\r\n        - if                                                      261  24%\r\n         - let                                                    261  24%\r\n          - let                                                   261  24%\r\n           - cond                                                 261  24%\r\n            - if                                                  259  24%\r\n             - setq                                               259  24%\r\n              - progn                                             259  24%\r\n               - let                                              200  18%\r\n                - cdr                                             200  18%\r\n                 - sp--all-pairs-to-insert                        200  18%\r\n                  - let                                           200  18%\r\n                   - let                                          199  18%\r\n                    - let                                         166  15%\r\n                     - while                                      166  15%\r\n                      - let                                       166  15%\r\n                       - if                                       166  15%\r\n                        - sp--do-action-p                         165  15%\r\n                         - let*                                   133  12%\r\n                          - if                                     81   7%\r\n                           - sp-point-in-string                    81   7%\r\n                            - condition-case                       78   7%\r\n                             - progn                               78   7%\r\n                              - save-excursion                     77   7%\r\n                               - nth                               77   7%\r\n                                + syntax-ppss                      73   6%\r\n                          + cond                                   47   4%\r\n                          + sp-get-pair                             3   0%\r\n                          + sp--get-closing-regexp                  1   0%\r\n                         + setq                                    32   2%\r\n                        + progn                                     1   0%\r\n                    + if                                           33   3%\r\n               + sp-insert-pair                                    53   4%\r\n               + sp-skip-closing-pair                               6   0%\r\n            + sp--char-is-part-of-closing                           2   0%\r\n    + flycheck-handle-change                                        8   0%\r\n    + smie-blink-matching-open                                      2   0%\r\n      jit-lock-after-change                                         2   0%\r\n    + expand-abbrev                                                 1   0%\r\n   + newline-and-indent                                             7   0%\r\n   + evil-normal-state                                              5   0%\r\n   + profiler-report                                                4   0%\r\n+ redisplay_internal (C function)                                  28   2%\r\n+ evil-escape-pre-command-hook                                     22   2%\r\n+ ...                                                              20   1%\r\n+ timer-event-handler                                              12   1%\r\n+ sp--save-pre-command-state                                        5   0%\r\n+ winner-save-old-configurations                                    3   0%\r\n+ alchemist-company-filter                                          2   0%\r\n+ company-post-command                                              1   0%\r\n+ which-key--hide-popup                                             1   0%\r\n```\r\n\r\n## After\r\n\r\n```\r\n+ flyspell-post-command-hook                                      917  75%\r\n- command-execute                                                 217  17%\r\n - call-interactively                                             217  17%\r\n  - funcall-interactively                                         217  17%\r\n   + newline-and-indent                                           202  16%\r\n   + evil-normal-state                                              6   0%\r\n   + profiler-report                                                4   0%\r\n   + evil-open-below                                                3   0%\r\n   - self-insert-command                                            1   0%\r\n      jit-lock-after-change                                         1   0%\r\n+ redisplay_internal (C function)                                  26   2%\r\n+ ...                                                              13   1%\r\n+ timer-event-handler                                              12   0%\r\n+ winner-save-old-configurations                                    7   0%\r\n+ evil-repeat-post-hook                                             4   0%\r\n+ evil-escape-pre-command-hook                                      4   0%\r\n+ evil-repeat-pre-hook                                              3   0%\r\n+ alchemist-company-filter                                          3   0%\r\n+ hl-paren-initiate-highlight                                       1   0%\r\n```\r\n\r\nThese profiles were taken with https://github.com/Fuco1/smartparens/pull/628 included as well."},"comment":{"url":"https://api.github.com/repos/Fuco1/smartparens/issues/comments/234272507","html_url":"https://github.com/Fuco1/smartparens/pull/629#issuecomment-234272507","issue_url":"https://api.github.com/repos/Fuco1/smartparens/issues/629","id":234272507,"user":{"login":"aaronjensen","id":8588,"avatar_url":"https://avatars.githubusercontent.com/u/8588?v=3","gravatar_id":"","url":"https://api.github.com/users/aaronjensen","html_url":"https://github.com/aaronjensen","followers_url":"https://api.github.com/users/aaronjensen/followers","following_url":"https://api.github.com/users/aaronjensen/following{/other_user}","gists_url":"https://api.github.com/users/aaronjensen/gists{/gist_id}","starred_url":"https://api.github.com/users/aaronjensen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aaronjensen/subscriptions","organizations_url":"https://api.github.com/users/aaronjensen/orgs","repos_url":"https://api.github.com/users/aaronjensen/repos","events_url":"https://api.github.com/users/aaronjensen/events{/privacy}","received_events_url":"https://api.github.com/users/aaronjensen/received_events","type":"User","site_admin":false},"created_at":"2016-07-21T14:33:30Z","updated_at":"2016-07-21T14:33:30Z","body":"@dgutov http://debbugs.gnu.org/cgi/bugreport.cgi?bug=24048"}}
{"actor":{"display_login":"aaronjensen"}}