{"action":"created","issue":{"url":"https://api.github.com/repos/gap-system/gap/issues/459","labels_url":"https://api.github.com/repos/gap-system/gap/issues/459/labels{/name}","comments_url":"https://api.github.com/repos/gap-system/gap/issues/459/comments","events_url":"https://api.github.com/repos/gap-system/gap/issues/459/events","html_url":"https://github.com/gap-system/gap/pull/459","id":126713328,"number":459,"title":"Remove uses of SuPeRfail in the library","user":{"login":"fingolfin","id":241512,"avatar_url":"https://avatars.githubusercontent.com/u/241512?v=3","gravatar_id":"","url":"https://api.github.com/users/fingolfin","html_url":"https://github.com/fingolfin","followers_url":"https://api.github.com/users/fingolfin/followers","following_url":"https://api.github.com/users/fingolfin/following{/other_user}","gists_url":"https://api.github.com/users/fingolfin/gists{/gist_id}","starred_url":"https://api.github.com/users/fingolfin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fingolfin/subscriptions","organizations_url":"https://api.github.com/users/fingolfin/orgs","repos_url":"https://api.github.com/users/fingolfin/repos","events_url":"https://api.github.com/users/fingolfin/events{/privacy}","received_events_url":"https://api.github.com/users/fingolfin/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/gap-system/gap/labels/gapdays2016","name":"gapdays2016","color":"fbca04"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2016-01-14T18:08:22Z","updated_at":"2016-01-15T22:44:33Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/gap-system/gap/pulls/459","html_url":"https://github.com/gap-system/gap/pull/459","diff_url":"https://github.com/gap-system/gap/pull/459.diff","patch_url":"https://github.com/gap-system/gap/pull/459.patch"},"body":"This PR removes usage of `SuPeRfail` in the library, specifically in `lib/demo.g`. This is achieved by adding `READ_COMMAND_REAL` to the kernel, an alternative to `READ_COMMAND` (in fact, `READ_COMMAND` is now just a thin wrapper around `READ_COMMAND_REAL`).\r\n\r\nI am not great on naming things, so if you have a better idea than `READ_COMMAND_REAL`, please let me know\r\n\r\nMy hope is that we can eventually get rid of `SuPeRfail` completely with this.\r\n\r\nFor now, I am aware of these packages using `SuPeRfail` in some way:\r\n* io -- knows how to (un)pickle it it -- we can probably just remove that code, can't we? or are there legitimate reasons to serialize `SuPeRfail`?\r\n* scscp -- has a modified copy of the demo code, could be easily adapted to use `READ_COMMAND_REAL`\r\n* rcwa -- has a modified copy of the demo code, could be easily adapted to use `READ_COMMAND_REAL`\r\n* openmath -- just occurs in a test, but that is so because openmath uses `READ_COMMAND`; my guess is that it should be changed to use `READ_COMMAND_REAL`\r\n* sgpviz -- could be easily adapted to use `READ_COMMAND_REAL`\r\n* ToolsForHomalg, CAP: code could be refactored, e.g. in a similar way to how `READ_COMMAND_REAL` does it (see also homalg-project/homalg_project#151)\r\n* fr -- does not use `SuPeRfail`, but does use `READ_COMMAND`. I don't really understand what it uses it for, though, but I hope it could also us `READ_COMMAND_REAL`.\r\n\r\nIf we could this into GAP soon (perhaps even backport it to GAP 4.8?), then packages could start removing uses of `SuPeRfail`. And once that is compete, we can get rid of `SuPeRfail` (e.g. in GAP 4.9)"},"comment":{"url":"https://api.github.com/repos/gap-system/gap/issues/comments/172116566","html_url":"https://github.com/gap-system/gap/pull/459#issuecomment-172116566","issue_url":"https://api.github.com/repos/gap-system/gap/issues/459","id":172116566,"user":{"login":"fingolfin","id":241512,"avatar_url":"https://avatars.githubusercontent.com/u/241512?v=3","gravatar_id":"","url":"https://api.github.com/users/fingolfin","html_url":"https://github.com/fingolfin","followers_url":"https://api.github.com/users/fingolfin/followers","following_url":"https://api.github.com/users/fingolfin/following{/other_user}","gists_url":"https://api.github.com/users/fingolfin/gists{/gist_id}","starred_url":"https://api.github.com/users/fingolfin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fingolfin/subscriptions","organizations_url":"https://api.github.com/users/fingolfin/orgs","repos_url":"https://api.github.com/users/fingolfin/repos","events_url":"https://api.github.com/users/fingolfin/events{/privacy}","received_events_url":"https://api.github.com/users/fingolfin/received_events","type":"User","site_admin":false},"created_at":"2016-01-15T22:44:33Z","updated_at":"2016-01-15T22:44:33Z","body":"Correct, this command is currently only used for the demo mode, nothing else.\r\n\r\nIt would make sense to adapt `CallWithTimeout` to this kinds of return value. We could also do it the other way around, but then they would differ from `CALL_WITH_CATCH` -- and I am somewhat reluctant to change that, as it's been around for a long time now...\r\n\r\nOTOH,  `CallWithTimeout` is the only of the three that has already been publically documented (albeit only in a beta version)... Ah welll...\r\nAnd *if* we change `CallWithTimeout`, then of course we must change it on both the stable-4.8 branch and the master branch (i.e. change it on the stable-4.8 branch, then merge that into master)."}}