{"action":"created","issue":{"url":"https://api.github.com/repos/micropython/micropython/issues/1955","repository_url":"https://api.github.com/repos/micropython/micropython","labels_url":"https://api.github.com/repos/micropython/micropython/issues/1955/labels{/name}","comments_url":"https://api.github.com/repos/micropython/micropython/issues/1955/comments","events_url":"https://api.github.com/repos/micropython/micropython/issues/1955/events","html_url":"https://github.com/micropython/micropython/issues/1955","id":145178091,"number":1955,"title":"RFC: Baremetal bootstrapping process (for esp8266 and in general)","user":{"login":"pfalcon","id":500451,"avatar_url":"https://avatars.githubusercontent.com/u/500451?v=3","gravatar_id":"","url":"https://api.github.com/users/pfalcon","html_url":"https://github.com/pfalcon","followers_url":"https://api.github.com/users/pfalcon/followers","following_url":"https://api.github.com/users/pfalcon/following{/other_user}","gists_url":"https://api.github.com/users/pfalcon/gists{/gist_id}","starred_url":"https://api.github.com/users/pfalcon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pfalcon/subscriptions","organizations_url":"https://api.github.com/users/pfalcon/orgs","repos_url":"https://api.github.com/users/pfalcon/repos","events_url":"https://api.github.com/users/pfalcon/events{/privacy}","received_events_url":"https://api.github.com/users/pfalcon/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/micropython/micropython/labels/esp8266","name":"esp8266","color":"bfe5bf"},{"url":"https://api.github.com/repos/micropython/micropython/labels/rfc","name":"rfc","color":"FF66CC"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":21,"created_at":"2016-04-01T13:14:42Z","updated_at":"2016-04-05T20:21:59Z","closed_at":null,"body":"This is to finalize design of bootstrapping process for new baremetal ports, exemplified by esp8266 port.\r\n\r\nRequirements:\r\n\r\n1. It should be possible to do filesystem setup/mounting on Python side.\r\n2. It should be possible to execute user-modifiable configuration code on boot.\r\n3. It should be possible to execute user application on boot.\r\n"},"comment":{"url":"https://api.github.com/repos/micropython/micropython/issues/comments/205975607","html_url":"https://github.com/micropython/micropython/issues/1955#issuecomment-205975607","issue_url":"https://api.github.com/repos/micropython/micropython/issues/1955","id":205975607,"user":{"login":"pfalcon","id":500451,"avatar_url":"https://avatars.githubusercontent.com/u/500451?v=3","gravatar_id":"","url":"https://api.github.com/users/pfalcon","html_url":"https://github.com/pfalcon","followers_url":"https://api.github.com/users/pfalcon/followers","following_url":"https://api.github.com/users/pfalcon/following{/other_user}","gists_url":"https://api.github.com/users/pfalcon/gists{/gist_id}","starred_url":"https://api.github.com/users/pfalcon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pfalcon/subscriptions","organizations_url":"https://api.github.com/users/pfalcon/orgs","repos_url":"https://api.github.com/users/pfalcon/repos","events_url":"https://api.github.com/users/pfalcon/events{/privacy}","received_events_url":"https://api.github.com/users/pfalcon/received_events","type":"User","site_admin":false},"created_at":"2016-04-05T20:21:59Z","updated_at":"2016-04-05T20:21:59Z","body":"There's no need to ask anybody's opinion. There's simply the only way to do that in a reliable way (to avoid case when some code sees your function and another code doesn't) - assigning to `builtin`. For that purpose it exists and it is thus objective reality. Discussions like that are akin to discussing \"why Pi is bad\". Indeed, there can be unlimited number of cognitive agents which can provide unlimited amount of subjective opinions why it is, but when you need to find out circumference of a circle, you just multiply its diameter by Pi, that's all.\r\n\r\nTo sum up the discussion so far:\r\n\r\n1. The design based on exec'ing stuff into same namespace shows traits of bad practices.\r\n2. The argument that it offers interesting usability loopholes is weak, as the alternative is shown, and thus it should not be deciding whether exec model is kept or not.\r\n3. (There can be argument of optimality - after all, that was deciding argument in the previous part of discussion, but that's exactly what we lack and instead discuss how good is Pi).\r\n"}}