{"action":"created","issue":{"url":"https://api.github.com/repos/MrTJP/ProjectRed/issues/910","labels_url":"https://api.github.com/repos/MrTJP/ProjectRed/issues/910/labels{/name}","comments_url":"https://api.github.com/repos/MrTJP/ProjectRed/issues/910/comments","events_url":"https://api.github.com/repos/MrTJP/ProjectRed/issues/910/events","html_url":"https://github.com/MrTJP/ProjectRed/issues/910","id":99541496,"number":910,"title":"ICs have no output delay. 0-tick pulses & self-powering wire loops.","user":{"login":"evg-zhabotinsky","id":6692701,"avatar_url":"https://avatars.githubusercontent.com/u/6692701?v=3","gravatar_id":"","url":"https://api.github.com/users/evg-zhabotinsky","html_url":"https://github.com/evg-zhabotinsky","followers_url":"https://api.github.com/users/evg-zhabotinsky/followers","following_url":"https://api.github.com/users/evg-zhabotinsky/following{/other_user}","gists_url":"https://api.github.com/users/evg-zhabotinsky/gists{/gist_id}","starred_url":"https://api.github.com/users/evg-zhabotinsky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/evg-zhabotinsky/subscriptions","organizations_url":"https://api.github.com/users/evg-zhabotinsky/orgs","repos_url":"https://api.github.com/users/evg-zhabotinsky/repos","events_url":"https://api.github.com/users/evg-zhabotinsky/events{/privacy}","received_events_url":"https://api.github.com/users/evg-zhabotinsky/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":6,"created_at":"2015-08-06T22:52:42Z","updated_at":"2015-08-07T12:23:59Z","closed_at":null,"body":"~~I started looking into it because of Victorious3/Integrated-Circuits#135.\r\nThen I found out that P:R already has its own ICs and that they are affected too.~~\r\n\r\n#### Problem\r\n\r\n~~For some gates, when input goes low and then goes back high **even within the same tick**, gate action triggers the same as if input was low for a few ticks.~~\r\n\r\n~~For example, **Toggle Latch** will toggle if its input is turned off and then back on *in the same tick*.~~\r\n\r\n~~List of affected gates I found: Toggle latch, Pulse former, Counter, Synchronizer and Repeater (btw: vanilla repeater is fine).~~\r\n\r\n~~**Gates inside ICs are affected too**, although I guess they are implemented differently. (Well, at least Toggle Latch is affected.)~~\r\n\r\nICs have no output delay.\r\nIn some cases, it causes 0-tick signal pulses or makes ICs power themselves \"for no apparent reason\".\r\n\r\n#### How to reproduce\r\n\r\nCreate an empty IC, place \"simple IO\" on opposite sides, switch them to \"inout\" mode and connect with wire. Done!\r\n\r\nNow place these in straight line: lever (A), wire, IC, IC, ..., IC, lever (B).\r\nThen place a toggle latch on one side of that wire, and a NOT gate with toggle latch on another.\r\n\r\nTurn lever A on. Turn lever B on. After that turn lever A off.\r\nWire will visually remain on (or flicker briefly), but toggle latch that is directly connected to it *will toggle*. However, toggle latch connected through a NOT gate *will not toggle*, no matter how many ICs you use (you can even connect them with wires).\r\n\r\nThat is, *it is actually a 0-tick pulse, and it triggers Toggle latch*.\r\n\r\nAlso, that IC will sometimes power itself whei its IOs are shorted."},"comment":{"url":"https://api.github.com/repos/MrTJP/ProjectRed/issues/comments/128686815","html_url":"https://github.com/MrTJP/ProjectRed/issues/910#issuecomment-128686815","issue_url":"https://api.github.com/repos/MrTJP/ProjectRed/issues/910","id":128686815,"user":{"login":"evg-zhabotinsky","id":6692701,"avatar_url":"https://avatars.githubusercontent.com/u/6692701?v=3","gravatar_id":"","url":"https://api.github.com/users/evg-zhabotinsky","html_url":"https://github.com/evg-zhabotinsky","followers_url":"https://api.github.com/users/evg-zhabotinsky/followers","following_url":"https://api.github.com/users/evg-zhabotinsky/following{/other_user}","gists_url":"https://api.github.com/users/evg-zhabotinsky/gists{/gist_id}","starred_url":"https://api.github.com/users/evg-zhabotinsky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/evg-zhabotinsky/subscriptions","organizations_url":"https://api.github.com/users/evg-zhabotinsky/orgs","repos_url":"https://api.github.com/users/evg-zhabotinsky/repos","events_url":"https://api.github.com/users/evg-zhabotinsky/events{/privacy}","received_events_url":"https://api.github.com/users/evg-zhabotinsky/received_events","type":"User","site_admin":false},"created_at":"2015-08-07T12:23:59Z","updated_at":"2015-08-07T12:23:59Z","body":"Thanks! I was tinkering with it for a while already, an did not even try to short IOs both on inside and outside of IC. It does indeed create self-powering loops. So for now I will have to go with delay on outputs.\r\n\r\nOne last question: are any classes outside api directory meant for external use? Or may they break things without notice?"}}