{"action":"created","issue":{"url":"https://api.github.com/repos/ocramz/xeno/issues/28","repository_url":"https://api.github.com/repos/ocramz/xeno","labels_url":"https://api.github.com/repos/ocramz/xeno/issues/28/labels{/name}","comments_url":"https://api.github.com/repos/ocramz/xeno/issues/28/comments","events_url":"https://api.github.com/repos/ocramz/xeno/issues/28/events","html_url":"https://github.com/ocramz/xeno/pull/28","id":388632026,"node_id":"MDExOlB1bGxSZXF1ZXN0MjM2ODUwMjY4","number":28,"title":"Dom recovery","user":{"login":"mgajda","id":685529,"node_id":"MDQ6VXNlcjY4NTUyOQ==","avatar_url":"https://avatars1.githubusercontent.com/u/685529?v=4","gravatar_id":"","url":"https://api.github.com/users/mgajda","html_url":"https://github.com/mgajda","followers_url":"https://api.github.com/users/mgajda/followers","following_url":"https://api.github.com/users/mgajda/following{/other_user}","gists_url":"https://api.github.com/users/mgajda/gists{/gist_id}","starred_url":"https://api.github.com/users/mgajda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mgajda/subscriptions","organizations_url":"https://api.github.com/users/mgajda/orgs","repos_url":"https://api.github.com/users/mgajda/repos","events_url":"https://api.github.com/users/mgajda/events{/privacy}","received_events_url":"https://api.github.com/users/mgajda/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2018-12-07T12:18:38Z","updated_at":"2018-12-31T00:04:13Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/ocramz/xeno/pulls/28","html_url":"https://github.com/ocramz/xeno/pull/28","diff_url":"https://github.com/ocramz/xeno/pull/28.diff","patch_url":"https://github.com/ocramz/xeno/pull/28.patch"},"body":"This PR adds `Xeno.Dom.Robust` interface that automatically closes XML elements if the closing tag is not found. Extremely useful for HTML parsing. Additionally it provides a function to skip doctype.\r\n\r\n`Xeno.DOM.Robust` is only slightly slower than old version, so I suggest use it on all HTML documents, and those XML documents that are not strict in their conformance to the standard."},"comment":{"url":"https://api.github.com/repos/ocramz/xeno/issues/comments/450595782","html_url":"https://github.com/ocramz/xeno/pull/28#issuecomment-450595782","issue_url":"https://api.github.com/repos/ocramz/xeno/issues/28","id":450595782,"node_id":"MDEyOklzc3VlQ29tbWVudDQ1MDU5NTc4Mg==","user":{"login":"mgajda","id":685529,"node_id":"MDQ6VXNlcjY4NTUyOQ==","avatar_url":"https://avatars1.githubusercontent.com/u/685529?v=4","gravatar_id":"","url":"https://api.github.com/users/mgajda","html_url":"https://github.com/mgajda","followers_url":"https://api.github.com/users/mgajda/followers","following_url":"https://api.github.com/users/mgajda/following{/other_user}","gists_url":"https://api.github.com/users/mgajda/gists{/gist_id}","starred_url":"https://api.github.com/users/mgajda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mgajda/subscriptions","organizations_url":"https://api.github.com/users/mgajda/orgs","repos_url":"https://api.github.com/users/mgajda/repos","events_url":"https://api.github.com/users/mgajda/events{/privacy}","received_events_url":"https://api.github.com/users/mgajda/received_events","type":"User","site_admin":false},"created_at":"2018-12-31T00:04:13Z","updated_at":"2018-12-31T00:04:13Z","author_association":"NONE","body":"Note that `Xeno.DOM.Robust` is optional, we can still use `Xeno.DOM` for maximum speed.\r\n\r\nPre after fixing `stack.yaml` to use the same library versions:\r\n```\r\nCase  Allocated  GCs      \r\ndom       3,808    0      \r\nsax       6,344    0      \r\ndom      14,496    0      \r\ndom      30,296    0      \r\nsax       2,312    0      \r\ndom      10,464    0      \r\ndom     211,496    0      \r\nsax     352,784    0      \r\ndom   1,369,848    0      \r\nBenchmark xeno-memory-bench: FINISH\r\nBenchmark xeno-speed-bench: RUNNING...\r\n(...)                          \r\nbenchmarking 4KB/xeno-sax \r\ntime                 5.737 μs   (5.519 μs .. 6.047 μs)\r\n                     0.988 R²   (0.984 R² .. 0.992 R²)\r\nmean                 6.080 μs   (5.865 μs .. 6.336 μs)\r\nstd dev              832.7 ns   (613.2 ns .. 1.170 μs)\r\nvariance introduced by outliers: 93% (severely inflated)\r\n                          \r\nbenchmarking 4KB/xeno-dom \r\ntime                 10.57 μs   (10.14 μs .. 10.94 μs)\r\n                     0.991 R²   (0.988 R² .. 0.994 R²)\r\nmean                 10.04 μs   (9.766 μs .. 10.40 μs)\r\nstd dev              1.024 μs   (850.5 ns .. 1.491 μs)\r\nvariance introduced by outliers: 86% (severely inflated)\r\n(...)\r\nbenchmarking 31KB/xeno-sax\r\ntime                 2.829 μs   (2.739 μs .. 2.937 μs)\r\n                     0.986 R²   (0.967 R² .. 0.996 R²)\r\nmean                 2.875 μs   (2.785 μs .. 3.032 μs)\r\nstd dev              405.9 ns   (254.2 ns .. 596.0 ns)\r\nvariance introduced by outliers: 94% (severely inflated)\r\n                          \r\nbenchmarking 31KB/xeno-dom\r\ntime                 5.295 μs   (5.188 μs .. 5.416 μs)\r\n                     0.993 R²   (0.989 R² .. 0.996 R²)\r\nmean                 5.303 μs   (5.138 μs .. 5.504 μs)\r\nstd dev              571.3 ns   (456.8 ns .. 746.3 ns)\r\nvariance introduced by outliers: 89% (severely inflated)\r\n(...)\r\nbenchmarking 211KB/xeno-sax\r\ntime                 277.5 μs   (268.7 μs .. 286.1 μs)\r\n                     0.989 R²   (0.981 R² .. 0.995 R²)\r\nmean                 290.3 μs   (274.6 μs .. 334.9 μs)\r\nstd dev              77.74 μs   (21.58 μs .. 168.0 μs)\r\nvariance introduced by outliers: 97% (severely inflated)\r\n                          \r\nbenchmarking 211KB/xeno-dom\r\ntime                 589.1 μs   (562.9 μs .. 617.4 μs)\r\n                     0.981 R²   (0.967 R² .. 0.991 R²)\r\nmean                 586.3 μs   (556.4 μs .. 687.3 μs)\r\nstd dev              168.2 μs   (61.32 μs .. 336.9 μs)\r\nvariance introduced by outliers: 97% (severely inflated)\r\n```\r\nPost:\r\n```\r\nCase               Allocated  GCs\r\ndom                    3,808    0\r\nsax                    6,152    0\r\ndom                   38,224    0\r\ndom-with-recovery     44,520    0\r\ndom                   30,608    0\r\nsax                    2,264    0\r\ndom                   21,952    0\r\ndom-with-recovery     25,008    0\r\ndom                  211,184    0\r\nsax                  343,880    0\r\ndom                2,479,864    1\r\ndom-with-recovery  2,774,144    1\r\nBenchmark xeno-memory-bench: FINISH\r\nBenchmark xeno-speed-bench: RUNNING...\r\n(...)\r\nbenchmarking 4KB/xeno-sax \r\ntime                 6.087 μs   (5.873 μs .. 6.256 μs)\r\n                     0.992 R²   (0.988 R² .. 0.996 R²)\r\nmean                 5.897 μs   (5.733 μs .. 6.293 μs)\r\nstd dev              770.6 ns   (445.6 ns .. 1.344 μs)\r\nvariance introduced by outliers: 92% (severely inflated)\r\n                          \r\nbenchmarking 4KB/xeno-dom \r\ntime                 15.80 μs   (15.16 μs .. 16.55 μs)\r\n                     0.988 R²   (0.980 R² .. 0.995 R²)\r\nmean                 15.90 μs   (15.23 μs .. 17.32 μs)\r\nstd dev              3.432 μs   (1.338 μs .. 6.314 μs)\r\nvariance introduced by outliers: 97% (severely inflated)\r\n                          \r\nbenchmarking 4KB/xeno-dom-with-recovery\r\ntime                 19.00 μs   (18.28 μs .. 19.54 μs)\r\n                     0.990 R²   (0.984 R² .. 0.994 R²)\r\nmean                 19.05 μs   (18.38 μs .. 20.92 μs)\r\nstd dev              3.574 μs   (1.679 μs .. 6.926 μs)\r\nvariance introduced by outliers: 96% (severely inflated)\r\n(...)\r\nbenchmarking 31KB/xeno-sax\r\ntime                 2.954 μs   (2.881 μs .. 3.045 μs)\r\n                     0.992 R²   (0.987 R² .. 0.996 R²)\r\nmean                 3.079 μs   (2.937 μs .. 3.568 μs)\r\nstd dev              784.7 ns   (249.3 ns .. 1.604 μs)\r\nvariance introduced by outliers: 98% (severely inflated)\r\n                          \r\nbenchmarking 31KB/xeno-dom\r\ntime                 6.807 μs   (6.598 μs .. 7.117 μs)\r\n                     0.980 R²   (0.963 R² .. 0.992 R²)\r\nmean                 7.273 μs   (6.927 μs .. 8.041 μs)\r\nstd dev              1.999 μs   (971.1 ns .. 3.541 μs)\r\nvariance introduced by outliers: 98% (severely inflated)\r\n                          \r\nbenchmarking 31KB/xeno-dom-with-recovery\r\ntime                 8.890 μs   (8.595 μs .. 9.136 μs)\r\n                     0.989 R²   (0.984 R² .. 0.993 R²)\r\nmean                 8.731 μs   (8.472 μs .. 9.070 μs)\r\nstd dev              1.077 μs   (881.2 ns .. 1.415 μs)\r\nvariance introduced by outliers: 91% (severely inflated)\r\n(...)\r\nbenchmarking 211KB/xeno-sax\r\ntime                 287.4 μs   (282.1 μs .. 295.2 μs)\r\n                     0.994 R²   (0.990 R² .. 0.996 R²)\r\nmean                 287.8 μs   (277.8 μs .. 298.5 μs)\r\nstd dev              30.04 μs   (21.65 μs .. 44.40 μs)\r\nvariance introduced by outliers: 80% (severely inflated)\r\n                          \r\nbenchmarking 211KB/xeno-dom\r\ntime                 745.8 μs   (716.7 μs .. 780.7 μs)\r\n                     0.980 R²   (0.966 R² .. 0.989 R²)\r\nmean                 799.0 μs   (758.1 μs .. 869.8 μs)\r\nstd dev              166.3 μs   (92.45 μs .. 245.2 μs)\r\nvariance introduced by outliers: 93% (severely inflated)\r\n                          \r\nbenchmarking 211KB/xeno-dom-with-recovery\r\ntime                 962.8 μs   (940.8 μs .. 996.0 μs)\r\n                     0.987 R²   (0.978 R² .. 0.992 R²)\r\nmean                 973.0 μs   (937.9 μs .. 1.064 ms)\r\nstd dev              174.6 μs   (109.3 μs .. 340.6 μs)\r\nvariance introduced by outliers: 90% (severely inflated)\r\n```"}}
{"actor":{"display_login":"mgajda"}}