{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":598707144,"defaultBranch":"main","name":"pavel.yaiwr","ownerLogin":"softdevteam","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-02-07T16:47:59.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/10271085?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1682590487.0","currentOid":""},"activityList":{"items":[{"before":"3c670533b23904fb3b096296bdd9ec35a94b72ee","after":"3c9859b620a304404bf57d29d4e61145c389bdf7","ref":"refs/heads/main","pushedAt":"2023-04-27T10:20:12.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"bors[bot]","name":null,"path":"/apps/bors","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/1847?s=80&v=4"},"commit":{"message":"Merge #38\n\n38: scoped closures r=vext01 a=Pavel-Durov\n\n+ Removed function declaration store in favour of single variable store\r\n+ Moved `Rc` + `RefCell` reference into `Scope` store\r\n+ Renamed `VariableNotFound` to `UndefinedReference` as it might be wither function or variable\r\n+ Added tests\r\n\r\nClosure example:\r\n```\r\n// Run-time:\r\n// stdout: 3\r\n// 4\r\n// 5\r\n// stderr:\r\n\r\nfun f(x) {\r\n fun g() {\r\n return x+1;\r\n }\r\n x = x + 1;\r\n return g;\r\n}\r\n\r\nlet c1 = f(1);\r\nlet c2 = f(2);\r\nlet c3 = f(3);\r\n\r\nprintln(c1());\r\nprintln(c2());\r\nprintln(c3());\r\n```\n\nCo-authored-by: Pavel Durov ","shortMessageHtmlLink":"Merge #38"}},{"before":"ca1676f6df769251f30b110e8c47ebf782abba96","after":null,"ref":"refs/heads/staging.tmp","pushedAt":"2023-04-27T10:14:49.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bors[bot]","name":null,"path":"/apps/bors","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/1847?s=80&v=4"}},{"before":"3c670533b23904fb3b096296bdd9ec35a94b72ee","after":"3c9859b620a304404bf57d29d4e61145c389bdf7","ref":"refs/heads/staging","pushedAt":"2023-04-27T10:14:49.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"bors[bot]","name":null,"path":"/apps/bors","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/1847?s=80&v=4"},"commit":{"message":"Merge #38\n\n38: scoped closures r=vext01 a=Pavel-Durov\n\n+ Removed function declaration store in favour of single variable store\r\n+ Moved `Rc` + `RefCell` reference into `Scope` store\r\n+ Renamed `VariableNotFound` to `UndefinedReference` as it might be wither function or variable\r\n+ Added tests\r\n\r\nClosure example:\r\n```\r\n// Run-time:\r\n// stdout: 3\r\n// 4\r\n// 5\r\n// stderr:\r\n\r\nfun f(x) {\r\n fun g() {\r\n return x+1;\r\n }\r\n x = x + 1;\r\n return g;\r\n}\r\n\r\nlet c1 = f(1);\r\nlet c2 = f(2);\r\nlet c3 = f(3);\r\n\r\nprintln(c1());\r\nprintln(c2());\r\nprintln(c3());\r\n```\n\nCo-authored-by: Pavel Durov ","shortMessageHtmlLink":"Merge #38"}},{"before":"4d8ffb0affef8f9c66df24568f31b7fd9ebf7f33","after":"ca1676f6df769251f30b110e8c47ebf782abba96","ref":"refs/heads/staging.tmp","pushedAt":"2023-04-27T10:14:48.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"bors[bot]","name":null,"path":"/apps/bors","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/1847?s=80&v=4"},"commit":{"message":"[ci skip][skip ci][skip netlify] -bors-staging-tmp-38","shortMessageHtmlLink":"[ci skip][skip ci][skip netlify] -bors-staging-tmp-38"}},{"before":null,"after":"4d8ffb0affef8f9c66df24568f31b7fd9ebf7f33","ref":"refs/heads/staging.tmp","pushedAt":"2023-04-27T10:14:47.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bors[bot]","name":null,"path":"/apps/bors","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/1847?s=80&v=4"},"commit":{"message":"[ci skip][skip ci][skip netlify]","shortMessageHtmlLink":"[ci skip][skip ci][skip netlify]"}},{"before":"d7e7cdfadb14003800d5af3635e38fada6781fd4","after":"3c670533b23904fb3b096296bdd9ec35a94b72ee","ref":"refs/heads/main","pushedAt":"2023-04-25T08:53:21.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"bors[bot]","name":null,"path":"/apps/bors","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/1847?s=80&v=4"},"commit":{"message":"Merge #37\n\n37: first class functions r=vext01 a=Pavel-Durov\n\n- First-class functions - treating functions as variables.\r\n- Renamed lib struct `Calc` to `YAIWR`\r\n\r\nExamples of first-class functions and closures applications:\r\n1. \r\n```\r\n// Run-time:\r\n// stdout: 1\r\n// stderr:\r\n\r\nfun f() {\r\n let x = 0;\r\n fun g() {\r\n x = x + 1;\r\n return x;\r\n }\r\n return g;\r\n}\r\n\r\nlet a = f();\r\nprintln(a());\r\n```\r\n2.\r\n```\r\n// Run-time:\r\n// stdout: 1001\r\n// stderr:\r\n\r\nfun f() {\r\n let x = 1;\r\n fun g(num) {\r\n if (num == 0){\r\n return x + 1;\r\n } else {\r\n x = x * num;\r\n return g;\r\n }\r\n }\r\n \r\n return g;\r\n}\r\n\r\nlet a = f();\r\na(10);\r\na(10);\r\na(10);\r\nprintln(a(0));\r\n\r\n```\r\n\n\nCo-authored-by: Pavel Durov ","shortMessageHtmlLink":"Merge #37"}},{"before":"4bf7ff3f1e0cb7fd149f7838f165f6a222967e7a","after":null,"ref":"refs/heads/staging.tmp","pushedAt":"2023-04-25T08:49:51.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bors[bot]","name":null,"path":"/apps/bors","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/1847?s=80&v=4"}},{"before":"d7e7cdfadb14003800d5af3635e38fada6781fd4","after":"3c670533b23904fb3b096296bdd9ec35a94b72ee","ref":"refs/heads/staging","pushedAt":"2023-04-25T08:49:51.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"bors[bot]","name":null,"path":"/apps/bors","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/1847?s=80&v=4"},"commit":{"message":"Merge #37\n\n37: first class functions r=vext01 a=Pavel-Durov\n\n- First-class functions - treating functions as variables.\r\n- Renamed lib struct `Calc` to `YAIWR`\r\n\r\nExamples of first-class functions and closures applications:\r\n1. \r\n```\r\n// Run-time:\r\n// stdout: 1\r\n// stderr:\r\n\r\nfun f() {\r\n let x = 0;\r\n fun g() {\r\n x = x + 1;\r\n return x;\r\n }\r\n return g;\r\n}\r\n\r\nlet a = f();\r\nprintln(a());\r\n```\r\n2.\r\n```\r\n// Run-time:\r\n// stdout: 1001\r\n// stderr:\r\n\r\nfun f() {\r\n let x = 1;\r\n fun g(num) {\r\n if (num == 0){\r\n return x + 1;\r\n } else {\r\n x = x * num;\r\n return g;\r\n }\r\n }\r\n \r\n return g;\r\n}\r\n\r\nlet a = f();\r\na(10);\r\na(10);\r\na(10);\r\nprintln(a(0));\r\n\r\n```\r\n\n\nCo-authored-by: Pavel Durov ","shortMessageHtmlLink":"Merge #37"}},{"before":"dfdaf262a751ad5a481251ba84a0125272e2e604","after":"4bf7ff3f1e0cb7fd149f7838f165f6a222967e7a","ref":"refs/heads/staging.tmp","pushedAt":"2023-04-25T08:49:50.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"bors[bot]","name":null,"path":"/apps/bors","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/1847?s=80&v=4"},"commit":{"message":"[ci skip][skip ci][skip netlify] -bors-staging-tmp-37","shortMessageHtmlLink":"[ci skip][skip ci][skip netlify] -bors-staging-tmp-37"}},{"before":null,"after":"dfdaf262a751ad5a481251ba84a0125272e2e604","ref":"refs/heads/staging.tmp","pushedAt":"2023-04-25T08:49:49.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bors[bot]","name":null,"path":"/apps/bors","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/1847?s=80&v=4"},"commit":{"message":"[ci skip][skip ci][skip netlify]","shortMessageHtmlLink":"[ci skip][skip ci][skip netlify]"}},{"before":"66bba7dc1ff7485c7869917e1967f4870c9b689a","after":null,"ref":"refs/heads/trying.tmp","pushedAt":"2023-04-21T10:26:44.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bors[bot]","name":null,"path":"/apps/bors","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/1847?s=80&v=4"}},{"before":"fab8864e6379236009d065495eb0d6dcc3b0b003","after":"051efbdb26b4b1ef8e141e2b2d8a94fcad5f25c4","ref":"refs/heads/trying","pushedAt":"2023-04-21T10:26:43.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"bors[bot]","name":null,"path":"/apps/bors","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/1847?s=80&v=4"},"commit":{"message":"Try #37:","shortMessageHtmlLink":"Try #37:"}},{"before":"8cfe7538eb1822e1a4d5414d395a18530d51e546","after":"66bba7dc1ff7485c7869917e1967f4870c9b689a","ref":"refs/heads/trying.tmp","pushedAt":"2023-04-21T10:26:43.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"bors[bot]","name":null,"path":"/apps/bors","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/1847?s=80&v=4"},"commit":{"message":"[ci skip][skip ci][skip netlify] -bors-staging-tmp-37","shortMessageHtmlLink":"[ci skip][skip ci][skip netlify] -bors-staging-tmp-37"}},{"before":null,"after":"8cfe7538eb1822e1a4d5414d395a18530d51e546","ref":"refs/heads/trying.tmp","pushedAt":"2023-04-21T10:26:42.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bors[bot]","name":null,"path":"/apps/bors","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/1847?s=80&v=4"},"commit":{"message":"[ci skip][skip ci][skip netlify]","shortMessageHtmlLink":"[ci skip][skip ci][skip netlify]"}},{"before":"cd1f9d70839da9281dc51220b119cc284234aaa5","after":"d7e7cdfadb14003800d5af3635e38fada6781fd4","ref":"refs/heads/main","pushedAt":"2023-04-20T08:42:28.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"bors[bot]","name":null,"path":"/apps/bors","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/1847?s=80&v=4"},"commit":{"message":"Merge #35\n\n35: closures r=vext01 a=Pavel-Durov\n\n+ function closoures with read and write functionality\r\n+ scope reference as `Rc>` (what is this witchcraft?)\r\n+ seperated variable declaration and initialisation\r\n+ new undeclared variable error\r\n+ lang tests\r\n+ unit tests\r\n\r\n### Closure example:\r\n\r\n```\r\n// Run-time:\r\n// stdout: 4\r\n// stderr:\r\n\r\nlet g_var = 1;\r\n\r\nfun f1 (){\r\n g_var = 2;\r\n let f1_var = 2;\r\n fun f2 (){\r\n return f1_var;\r\n }\r\n return f2();\r\n}\r\n\r\nprintln(f1() + g_var);\r\n\r\n```\n\nCo-authored-by: Pavel Durov ","shortMessageHtmlLink":"Merge #35"}},{"before":"5f369e5345f6daaf6e586188759d94b6007afceb","after":null,"ref":"refs/heads/staging.tmp","pushedAt":"2023-04-20T08:38:59.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bors[bot]","name":null,"path":"/apps/bors","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/1847?s=80&v=4"}},{"before":"cd1f9d70839da9281dc51220b119cc284234aaa5","after":"d7e7cdfadb14003800d5af3635e38fada6781fd4","ref":"refs/heads/staging","pushedAt":"2023-04-20T08:38:59.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"bors[bot]","name":null,"path":"/apps/bors","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/1847?s=80&v=4"},"commit":{"message":"Merge #35\n\n35: closures r=vext01 a=Pavel-Durov\n\n+ function closoures with read and write functionality\r\n+ scope reference as `Rc>` (what is this witchcraft?)\r\n+ seperated variable declaration and initialisation\r\n+ new undeclared variable error\r\n+ lang tests\r\n+ unit tests\r\n\r\n### Closure example:\r\n\r\n```\r\n// Run-time:\r\n// stdout: 4\r\n// stderr:\r\n\r\nlet g_var = 1;\r\n\r\nfun f1 (){\r\n g_var = 2;\r\n let f1_var = 2;\r\n fun f2 (){\r\n return f1_var;\r\n }\r\n return f2();\r\n}\r\n\r\nprintln(f1() + g_var);\r\n\r\n```\n\nCo-authored-by: Pavel Durov ","shortMessageHtmlLink":"Merge #35"}},{"before":"7c523a803e74ec82ae1b43a77b333b8c34df15a4","after":"5f369e5345f6daaf6e586188759d94b6007afceb","ref":"refs/heads/staging.tmp","pushedAt":"2023-04-20T08:38:58.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"bors[bot]","name":null,"path":"/apps/bors","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/1847?s=80&v=4"},"commit":{"message":"[ci skip][skip ci][skip netlify] -bors-staging-tmp-35","shortMessageHtmlLink":"[ci skip][skip ci][skip netlify] -bors-staging-tmp-35"}},{"before":null,"after":"7c523a803e74ec82ae1b43a77b333b8c34df15a4","ref":"refs/heads/staging.tmp","pushedAt":"2023-04-20T08:38:58.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bors[bot]","name":null,"path":"/apps/bors","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/1847?s=80&v=4"},"commit":{"message":"[ci skip][skip ci][skip netlify]","shortMessageHtmlLink":"[ci skip][skip ci][skip netlify]"}},{"before":"9b3901f56c478e6a320bf9254545ef7dad6e4d35","after":null,"ref":"refs/heads/first-class-functions","pushedAt":"2023-04-19T16:33:07.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Pavel-Durov","name":"Pavel Durov","path":"/Pavel-Durov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6065236?s=80&v=4"}},{"before":null,"after":"9b3901f56c478e6a320bf9254545ef7dad6e4d35","ref":"refs/heads/first-class-functions","pushedAt":"2023-04-19T16:31:34.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Pavel-Durov","name":"Pavel Durov","path":"/Pavel-Durov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6065236?s=80&v=4"},"commit":{"message":"Merge branch 'closures' into fist-class-functions","shortMessageHtmlLink":"Merge branch 'closures' into fist-class-functions"}},{"before":"49c6808feb853972bfa8c30cad13fc126944bf45","after":null,"ref":"refs/heads/trying.tmp","pushedAt":"2023-04-18T14:47:36.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bors[bot]","name":null,"path":"/apps/bors","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/1847?s=80&v=4"}},{"before":"98ff38934eb75685a5570077f02d61b860493aaa","after":"fab8864e6379236009d065495eb0d6dcc3b0b003","ref":"refs/heads/trying","pushedAt":"2023-04-18T14:47:35.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"bors[bot]","name":null,"path":"/apps/bors","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/1847?s=80&v=4"},"commit":{"message":"Try #35:","shortMessageHtmlLink":"Try #35:"}},{"before":"f8886025dc44a8e125ed3fe620536be83ca46453","after":"49c6808feb853972bfa8c30cad13fc126944bf45","ref":"refs/heads/trying.tmp","pushedAt":"2023-04-18T14:47:34.000Z","pushType":"push","commitsCount":19,"pusher":{"login":"bors[bot]","name":null,"path":"/apps/bors","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/1847?s=80&v=4"},"commit":{"message":"[ci skip][skip ci][skip netlify] -bors-staging-tmp-35","shortMessageHtmlLink":"[ci skip][skip ci][skip netlify] -bors-staging-tmp-35"}},{"before":null,"after":"f8886025dc44a8e125ed3fe620536be83ca46453","ref":"refs/heads/trying.tmp","pushedAt":"2023-04-18T14:47:34.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bors[bot]","name":null,"path":"/apps/bors","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/1847?s=80&v=4"},"commit":{"message":"[ci skip][skip ci][skip netlify]","shortMessageHtmlLink":"[ci skip][skip ci][skip netlify]"}},{"before":"2debad52c9398a82b226ee1dbd5d4586228df8f4","after":null,"ref":"refs/heads/trying.tmp","pushedAt":"2023-04-17T17:33:38.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bors[bot]","name":null,"path":"/apps/bors","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/1847?s=80&v=4"}},{"before":"32899d2137800e30306bb5fa9a93808233da4398","after":"98ff38934eb75685a5570077f02d61b860493aaa","ref":"refs/heads/trying","pushedAt":"2023-04-17T17:33:38.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"bors[bot]","name":null,"path":"/apps/bors","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/1847?s=80&v=4"},"commit":{"message":"Try #35:","shortMessageHtmlLink":"Try #35:"}},{"before":"696a78925d22a640550132a624ab7422b30e26e9","after":"2debad52c9398a82b226ee1dbd5d4586228df8f4","ref":"refs/heads/trying.tmp","pushedAt":"2023-04-17T17:33:37.000Z","pushType":"push","commitsCount":12,"pusher":{"login":"bors[bot]","name":null,"path":"/apps/bors","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/1847?s=80&v=4"},"commit":{"message":"[ci skip][skip ci][skip netlify] -bors-staging-tmp-35","shortMessageHtmlLink":"[ci skip][skip ci][skip netlify] -bors-staging-tmp-35"}},{"before":null,"after":"696a78925d22a640550132a624ab7422b30e26e9","ref":"refs/heads/trying.tmp","pushedAt":"2023-04-17T17:33:37.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bors[bot]","name":null,"path":"/apps/bors","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/1847?s=80&v=4"},"commit":{"message":"[ci skip][skip ci][skip netlify]","shortMessageHtmlLink":"[ci skip][skip ci][skip netlify]"}},{"before":"9b50724bd772d8ea63b4265e8020e010734ca56b","after":"cd1f9d70839da9281dc51220b119cc284234aaa5","ref":"refs/heads/main","pushedAt":"2023-04-13T15:29:04.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"bors[bot]","name":null,"path":"/apps/bors","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/1847?s=80&v=4"},"commit":{"message":"Merge #33\n\n33: recursion and return statements r=vext01 a=Pavel-Durov\n\n+ function termination at the return statement\r\n+ function recursion tests\r\n\r\nExamples:\r\n\r\n```\r\nfun f (){ \r\n if (1 < 2){\r\n return true;\r\n }\r\n return false; // should not be executed\r\n}\r\n\r\nprintln(f());\r\n\r\n```\r\n```\r\nfun a (){ \r\n return true;\r\n return false; // should not be executed\r\n}\r\na();\r\n```\r\n\r\n```\r\nfun add_10 (x){ \r\n if (x < 10) {\r\n return add_10(x + 1);\r\n }\r\n return x;\r\n}\r\nadd_10(1);\r\n```\n\nCo-authored-by: Pavel Durov ","shortMessageHtmlLink":"Merge #33"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyMy0wNC0yN1QxMDoyMDoxMi4wMDAwMDBazwAAAAMhY1cn","startCursor":"Y3Vyc29yOnYyOpK7MjAyMy0wNC0yN1QxMDoyMDoxMi4wMDAwMDBazwAAAAMhY1cn","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0wNC0xM1QxNToyOTowNC4wMDAwMDBazwAAAAMYION9"}},"title":"Activity ยท softdevteam/pavel.yaiwr"}