{"action":"created","issue":{"url":"https://api.github.com/repos/rakudo/rakudo/issues/2346","repository_url":"https://api.github.com/repos/rakudo/rakudo","labels_url":"https://api.github.com/repos/rakudo/rakudo/issues/2346/labels{/name}","comments_url":"https://api.github.com/repos/rakudo/rakudo/issues/2346/comments","events_url":"https://api.github.com/repos/rakudo/rakudo/issues/2346/events","html_url":"https://github.com/rakudo/rakudo/issues/2346","id":367614798,"node_id":"MDU6SXNzdWUzNjc2MTQ3OTg=","number":2346,"title":"JIT ERROR: Negative offset for dynamic label 33","user":{"login":"0racle","id":5448535,"node_id":"MDQ6VXNlcjU0NDg1MzU=","avatar_url":"https://avatars3.githubusercontent.com/u/5448535?v=4","gravatar_id":"","url":"https://api.github.com/users/0racle","html_url":"https://github.com/0racle","followers_url":"https://api.github.com/users/0racle/followers","following_url":"https://api.github.com/users/0racle/following{/other_user}","gists_url":"https://api.github.com/users/0racle/gists{/gist_id}","starred_url":"https://api.github.com/users/0racle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/0racle/subscriptions","organizations_url":"https://api.github.com/users/0racle/orgs","repos_url":"https://api.github.com/users/0racle/repos","events_url":"https://api.github.com/users/0racle/events{/privacy}","received_events_url":"https://api.github.com/users/0racle/received_events","type":"User","site_admin":false},"labels":[{"id":754431088,"node_id":"MDU6TGFiZWw3NTQ0MzEwODg=","url":"https://api.github.com/repos/rakudo/rakudo/labels/Moar","name":"Moar","color":"efc581","default":false},{"id":754403485,"node_id":"MDU6TGFiZWw3NTQ0MDM0ODU=","url":"https://api.github.com/repos/rakudo/rakudo/labels/%E2%9A%A0%20blocker%20%E2%9A%A0","name":"⚠ blocker ⚠","color":"b60205","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2018-10-08T01:24:13Z","updated_at":"2018-10-12T23:31:27Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"## The Problem\r\n\r\nI'm converting a list of strings to objects. Within the first 50-odd entries, I will get up to 4 STDERR messages saying `JIT ERROR: Negative offset for dynamic label 33`\r\n\r\n## Steps to Reproduce\r\n\r\nThe issue occurs when using my module [`Net::Netmask`](https://github.com/0racle/p6-Net-Netmask/).\r\n\r\n```perl-6\r\nuse Net::Netmask;\r\n\r\nsub random-subnet() {\r\n    (^256 xx 4)».pick.join('.')\r\n    ~ (((True) => 10, (False) => 1).Bag.pick ?? \"/{(16..32).pick}\" !! '') \r\n}\r\n\r\nfor ( random-subnet() xx Inf ).head(30) -> $line {\r\n    say Net::Netmask.new($line)\r\n}\r\n```\r\n\r\n  > NOTE: I'm actually using a file (`for 'subnets'.IO.lines -> $line`) but the above also reproduces it.\r\n\r\nOUTPUT:\r\n\r\n```\r\nNet::Netmask.new(\"230.18.225.192/27\")\r\nNet::Netmask.new(\"31.194.88.128/25\")\r\nNet::Netmask.new(\"160.157.128.0/20\")\r\nJIT ERROR: Negative offset for dynamic label 33\r\nJIT ERROR: Negative offset for dynamic label 33\r\nNet::Netmask.new(\"169.242.9.200/30\")\r\nNet::Netmask.new(\"93.113.165.92/31\")\r\nNet::Netmask.new(\"14.29.160.0/19\")\r\nNet::Netmask.new(\"22.216.79.52/32\")\r\nNet::Netmask.new(\"238.179.128.0/22\")\r\nNet::Netmask.new(\"162.141.112.0/23\")\r\nNet::Netmask.new(\"250.107.32.240/30\")\r\nNet::Netmask.new(\"150.86.128.0/20\")\r\nNet::Netmask.new(\"109.33.208.175/32\")\r\nNet::Netmask.new(\"93.161.8.14/32\")\r\nNet::Netmask.new(\"107.198.243.182/31\")\r\nNet::Netmask.new(\"111.62.89.224/29\")\r\nNet::Netmask.new(\"102.157.159.248/29\")\r\nNet::Netmask.new(\"240.123.173.128/26\")\r\nNet::Netmask.new(\"101.164.176.0/22\")\r\nNet::Netmask.new(\"192.149.130.0/27\")\r\nNet::Netmask.new(\"211.119.99.224/31\")\r\nNet::Netmask.new(\"2.181.32.0/19\")\r\nNet::Netmask.new(\"110.253.192.0/19\")\r\nNet::Netmask.new(\"43.8.223.64/26\")\r\nNet::Netmask.new(\"147.111.156.225/32\")\r\nNet::Netmask.new(\"105.17.177.212/31\")\r\nJIT ERROR: Negative offset for dynamic label 33\r\nJIT ERROR: Negative offset for dynamic label 33\r\nNet::Netmask.new(\"233.6.115.96/27\")\r\nNet::Netmask.new(\"252.203.0.0/19\")\r\nNet::Netmask.new(\"18.32.0.0/16\")\r\nNet::Netmask.new(\"48.118.80.0/20\")\r\nNet::Netmask.new(\"249.41.55.138/32\")\r\n```\r\n\r\nI will golf down the cause, but potential avenues for investigation I suspect would center on what happens inside `Net::Netmask.new`. The `new` method is a multi which accepts various named or positional arguments with `where` clauses. Additionally there is a `BUILD` submethod.\r\n\r\n## Environment\r\nI'm running an older distro that has old versions of glibc, gcc, and other build tools. Previously bug's I have encountered are not able to be reproduces on more modern distro's, so this may also be a factor.\r\n\r\n* Operating system: \r\nCentOS release 6.9 (Final)\r\nLinux spawn 2.6.32-696.23.1.el6.x86_64 #1 SMP Tue Mar 13 22:44:18 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux\r\n\r\n* Compiler version (`perl6 -v`): \r\nThis is Rakudo version 2018.09-371-g8bb34ff built on MoarVM version 2018.09-124-g588873f\r\nimplementing Perl 6.c.\r\n"},"comment":{"url":"https://api.github.com/repos/rakudo/rakudo/issues/comments/429489240","html_url":"https://github.com/rakudo/rakudo/issues/2346#issuecomment-429489240","issue_url":"https://api.github.com/repos/rakudo/rakudo/issues/2346","id":429489240,"node_id":"MDEyOklzc3VlQ29tbWVudDQyOTQ4OTI0MA==","user":{"login":"jnthn","id":50259,"node_id":"MDQ6VXNlcjUwMjU5","avatar_url":"https://avatars2.githubusercontent.com/u/50259?v=4","gravatar_id":"","url":"https://api.github.com/users/jnthn","html_url":"https://github.com/jnthn","followers_url":"https://api.github.com/users/jnthn/followers","following_url":"https://api.github.com/users/jnthn/following{/other_user}","gists_url":"https://api.github.com/users/jnthn/gists{/gist_id}","starred_url":"https://api.github.com/users/jnthn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnthn/subscriptions","organizations_url":"https://api.github.com/users/jnthn/orgs","repos_url":"https://api.github.com/users/jnthn/repos","events_url":"https://api.github.com/users/jnthn/events{/privacy}","received_events_url":"https://api.github.com/users/jnthn/received_events","type":"User","site_admin":false},"created_at":"2018-10-12T23:31:27Z","updated_at":"2018-10-12T23:31:27Z","author_association":"MEMBER","body":"> What do you mean? I see no error message on 2018.09.\r\n\r\nI believe it was going into a log file before that was only ever written if a particular environment variable was set.\r\n\r\n> But evidence suggests that we usually get away with it.\r\n\r\nUsually, yes, though as I understand it, the consequences of us *not* getting away with it could include a mis-deopt or an incorrect dynvar resolution? Or is it only happening with labels that are likely not to mark out inline boundaries?\r\n\r\n> I found that I cannot easily remove all of them without introducing a signfiicant pessimisation, though.\r\nSo please let me know what you want.\r\n\r\nWell, as usual, we all want fast until it breaks our program, and then we want slower but correct... :-)"}}
{"actor":{"display_login":"jnthn"}}