{"action":"created","issue":{"url":"https://api.github.com/repos/casadi/casadi/issues/1585","labels_url":"https://api.github.com/repos/casadi/casadi/issues/1585/labels{/name}","comments_url":"https://api.github.com/repos/casadi/casadi/issues/1585/comments","events_url":"https://api.github.com/repos/casadi/casadi/issues/1585/events","html_url":"https://github.com/casadi/casadi/issues/1585","id":108329621,"number":1585,"title":"Remove public classes inheriting from Function","user":{"login":"jaeandersson","id":2487645,"avatar_url":"https://avatars.githubusercontent.com/u/2487645?v=3","gravatar_id":"","url":"https://api.github.com/users/jaeandersson","html_url":"https://github.com/jaeandersson","followers_url":"https://api.github.com/users/jaeandersson/followers","following_url":"https://api.github.com/users/jaeandersson/following{/other_user}","gists_url":"https://api.github.com/users/jaeandersson/gists{/gist_id}","starred_url":"https://api.github.com/users/jaeandersson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaeandersson/subscriptions","organizations_url":"https://api.github.com/users/jaeandersson/orgs","repos_url":"https://api.github.com/users/jaeandersson/repos","events_url":"https://api.github.com/users/jaeandersson/events{/privacy}","received_events_url":"https://api.github.com/users/jaeandersson/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/casadi/casadi/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/casadi/casadi/milestones/13","html_url":"https://github.com/casadi/casadi/milestones/Version%203.0","labels_url":"https://api.github.com/repos/casadi/casadi/milestones/13/labels","id":1072673,"number":13,"title":"Version 3.0","description":"Release 3.0 consolidates and extends the syntax changes from 2.4 and previous releases. With this release, CasADi should enter a new stage of maturity and hopefully stability.","creator":{"login":"jaeandersson","id":2487645,"avatar_url":"https://avatars.githubusercontent.com/u/2487645?v=3","gravatar_id":"","url":"https://api.github.com/users/jaeandersson","html_url":"https://github.com/jaeandersson","followers_url":"https://api.github.com/users/jaeandersson/followers","following_url":"https://api.github.com/users/jaeandersson/following{/other_user}","gists_url":"https://api.github.com/users/jaeandersson/gists{/gist_id}","starred_url":"https://api.github.com/users/jaeandersson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaeandersson/subscriptions","organizations_url":"https://api.github.com/users/jaeandersson/orgs","repos_url":"https://api.github.com/users/jaeandersson/repos","events_url":"https://api.github.com/users/jaeandersson/events{/privacy}","received_events_url":"https://api.github.com/users/jaeandersson/received_events","type":"User","site_admin":false},"open_issues":76,"closed_issues":19,"state":"open","created_at":"2015-04-17T19:05:14Z","updated_at":"2015-11-09T23:39:27Z","due_on":"2016-01-31T23:00:00Z","closed_at":null},"comments":35,"created_at":"2015-09-25T13:43:47Z","updated_at":"2015-11-12T16:54:54Z","closed_at":null,"body":"I think we should move towards having only a single public `Function` class and remove the public classes for `SXFunction`, `NlpSolver`, `Integrator` etc. This will make the API cleaner and smaller, but some functionality which is currently provided as member functions of these classes would have to be provided in other ways.\r\n\r\nHere's what I propose to do with existing classes:\r\n * `SXFunction` and `MXFunction` are replaced with static member functions in the `SX` and `MX` classes respectively. I.e. the new syntax becomes `SX.Function` and `MX.Function` in Python/MATLAB and  `SX::Function` and `MX::Function` in C++. Upper case F in `Function` deviates from the current naming convention so we have to decide whether to change this name or change the naming convention.  `SX.function` and `MX.function` are probably not options as `function` is most certainly a keyword in at least MATLAB.\r\n * `NlpSolver`, `Integrator` etc. are replaced with functions in the `casadi` namespace with the same name. They return `Function` instances. The above remark about naming convention also applies."},"comment":{"url":"https://api.github.com/repos/casadi/casadi/issues/comments/156164698","html_url":"https://github.com/casadi/casadi/issues/1585#issuecomment-156164698","issue_url":"https://api.github.com/repos/casadi/casadi/issues/1585","id":156164698,"user":{"login":"jgillis","id":329032,"avatar_url":"https://avatars.githubusercontent.com/u/329032?v=3","gravatar_id":"","url":"https://api.github.com/users/jgillis","html_url":"https://github.com/jgillis","followers_url":"https://api.github.com/users/jgillis/followers","following_url":"https://api.github.com/users/jgillis/following{/other_user}","gists_url":"https://api.github.com/users/jgillis/gists{/gist_id}","starred_url":"https://api.github.com/users/jgillis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jgillis/subscriptions","organizations_url":"https://api.github.com/users/jgillis/orgs","repos_url":"https://api.github.com/users/jgillis/repos","events_url":"https://api.github.com/users/jgillis/events{/privacy}","received_events_url":"https://api.github.com/users/jgillis/received_events","type":"User","site_admin":false},"created_at":"2015-11-12T16:54:54Z","updated_at":"2015-11-12T16:54:54Z","body":"Out of curiosity, what did you do to obtain the above code for the development branch?"}}