{"action":"created","issue":{"url":"https://api.github.com/repos/genodelabs/genode/issues/1987","repository_url":"https://api.github.com/repos/genodelabs/genode","labels_url":"https://api.github.com/repos/genodelabs/genode/issues/1987/labels{/name}","comments_url":"https://api.github.com/repos/genodelabs/genode/issues/1987/comments","events_url":"https://api.github.com/repos/genodelabs/genode/issues/1987/events","html_url":"https://github.com/genodelabs/genode/issues/1987","id":157713700,"number":1987,"title":"Transition to the new base API","user":{"login":"nfeske","id":1268399,"avatar_url":"https://avatars.githubusercontent.com/u/1268399?v=3","gravatar_id":"","url":"https://api.github.com/users/nfeske","html_url":"https://github.com/nfeske","followers_url":"https://api.github.com/users/nfeske/followers","following_url":"https://api.github.com/users/nfeske/following{/other_user}","gists_url":"https://api.github.com/users/nfeske/gists{/gist_id}","starred_url":"https://api.github.com/users/nfeske/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nfeske/subscriptions","organizations_url":"https://api.github.com/users/nfeske/orgs","repos_url":"https://api.github.com/users/nfeske/repos","events_url":"https://api.github.com/users/nfeske/events{/privacy}","received_events_url":"https://api.github.com/users/nfeske/received_events","type":"User","site_admin":false},"labels":[{"id":203367,"url":"https://api.github.com/repos/genodelabs/genode/labels/cleanup","name":"cleanup","color":"1b7921","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":38,"created_at":"2016-05-31T16:24:30Z","updated_at":"2017-01-06T14:30:58Z","closed_at":null,"body":"With the release of version 16.05, we refined Genode's API in many ways: http://genode.org/documentation/release-notes/16.05 Now it is time to adapt the existing components to the new API. This is a huge undertaking. According to the number of _target.mk_ files, our source tree hosts nearly 400 components, not counting those hosted in the genode-world repository. My goal is to finish the transition of all components until the release of Genode 16.11.\n\n_Component entry, use of the new environment_\n\nWe should start with the easy ones\n- Components that use the former `Server` API are quite easy as they are already structured in the new way. The change is almost mechanical, following the \"Migration guide\" of the release notes 16.05.\n- Plain single-threaded non-server components such as many test cases can handled by replacing their `main` functions by corresponding `Component::construct` functions.\n\nThe remaining components should be either redesigned or removed. We should use this issue to discuss such decisions. As a guiding principle, I would argue to keep a component only if we have at least one run script that actually uses it. Otherwise, the component is essentially dead anyway. So we will have to make up our minds whether to spend time to update the component including a test case, or to drop it. For example, in my opinion, we could easily drop the iso9660 server, or the xvfb application while keeping in mind that the code is not lost (as it is still present in the source history).\n\n_Removing old printf-style output functions_\n\nWe should replace all occurrences of `#include <base/printf.h>`, `PDBG`, `PWRN`, `PERR`, `PINF`, `PLOG`, and `Genode::printf` by the new facilities of _base/log.h_. Note that this is not merely a mechanical activity. We will possibly need to adjust the success-criterions of various run scripts because this adjustment will certainly change the overall output. (e.g., I am thinking of the PDGB messages during the startup of core)\n\n_Eliminating the use of `Genode::env()`_\n\nThis step will require us to propagate a `Env &` to all code parts that have to interact with the environment. This is particularly the case for creating connection objects and for code that used to rely on `Genode::env()->heap()`.\n"},"comment":{"url":"https://api.github.com/repos/genodelabs/genode/issues/comments/270913996","html_url":"https://github.com/genodelabs/genode/issues/1987#issuecomment-270913996","issue_url":"https://api.github.com/repos/genodelabs/genode/issues/1987","id":270913996,"user":{"login":"cnuke","id":988433,"avatar_url":"https://avatars.githubusercontent.com/u/988433?v=3","gravatar_id":"","url":"https://api.github.com/users/cnuke","html_url":"https://github.com/cnuke","followers_url":"https://api.github.com/users/cnuke/followers","following_url":"https://api.github.com/users/cnuke/following{/other_user}","gists_url":"https://api.github.com/users/cnuke/gists{/gist_id}","starred_url":"https://api.github.com/users/cnuke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cnuke/subscriptions","organizations_url":"https://api.github.com/users/cnuke/orgs","repos_url":"https://api.github.com/users/cnuke/repos","events_url":"https://api.github.com/users/cnuke/events{/privacy}","received_events_url":"https://api.github.com/users/cnuke/received_events","type":"User","site_admin":false},"created_at":"2017-01-06T14:30:58Z","updated_at":"2017-01-06T14:30:58Z","body":"@chelmuth please merge 76c4e77, \t1662b79 and 8a7e2f1 to staging."}}
{"actor":{"display_login":"cnuke"}}