{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":65159560,"defaultBranch":"main","name":"Fennel","ownerLogin":"bakpakin","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2016-08-07T23:55:24.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/6185660?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1718078925.0","currentOid":""},"activityList":{"items":[{"before":"fd8e6d6e42e2546b6a8185d4b58d1eff0213b962","after":"030d0e5419302c3cb57ebd3b9eb14fb64d209c08","ref":"refs/heads/main","pushedAt":"2024-06-20T05:53:13.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"technomancy","name":"Phil Hagelberg","path":"/technomancy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141?s=80&v=4"},"commit":{"message":"Flatten out values to avoid issues with nested values.","shortMessageHtmlLink":"Flatten out values to avoid issues with nested values."}},{"before":"21ff7bcc24ae41eaafb12b5931605bba955ef767","after":"fd8e6d6e42e2546b6a8185d4b58d1eff0213b962","ref":"refs/heads/main","pushedAt":"2024-06-19T02:24:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"technomancy","name":"Phil Hagelberg","path":"/technomancy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141?s=80&v=4"},"commit":{"message":"Bring faith back to released version.","shortMessageHtmlLink":"Bring faith back to released version."}},{"before":"d8fbccffca33bf2ade4f3fd0ffd5842de6e27d55","after":"21ff7bcc24ae41eaafb12b5931605bba955ef767","ref":"refs/heads/main","pushedAt":"2024-06-18T22:20:03.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"jaawerth","name":"Jesse Wertheim","path":"/jaawerth","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5314507?s=80&v=4"},"commit":{"message":"Correctly register irc.lua as the faith exit hook","shortMessageHtmlLink":"Correctly register irc.lua as the faith exit hook"}},{"before":"9e8b23af30d5fbdaecf206664c7a6789160fd5ec","after":"d8fbccffca33bf2ade4f3fd0ffd5842de6e27d55","ref":"refs/heads/main","pushedAt":"2024-06-18T04:13:33.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"technomancy","name":"Phil Hagelberg","path":"/technomancy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141?s=80&v=4"},"commit":{"message":"Allow gensym to be called when there's no utils.root scope set.","shortMessageHtmlLink":"Allow gensym to be called when there's no utils.root scope set."}},{"before":"c549d976635d54c88e1a7fcec98af3bdfcb67b3b","after":"9e8b23af30d5fbdaecf206664c7a6789160fd5ec","ref":"refs/heads/main","pushedAt":"2024-06-17T15:58:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"technomancy","name":"Phil Hagelberg","path":"/technomancy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141?s=80&v=4"},"commit":{"message":"Replace parse-literal hook with parse-form hook.","shortMessageHtmlLink":"Replace parse-literal hook with parse-form hook."}},{"before":"b1ccc4e97338e0755e186c5b06f4c7d930efc7d6","after":"c549d976635d54c88e1a7fcec98af3bdfcb67b3b","ref":"refs/heads/main","pushedAt":"2024-06-17T04:38:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jaawerth","name":"Jesse Wertheim","path":"/jaawerth","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5314507?s=80&v=4"},"commit":{"message":"refactor out unnecessary comp helper\n\nThe comp helper function was only being used in one place, easily\nreplaceable by a hashfn.","shortMessageHtmlLink":"refactor out unnecessary comp helper"}},{"before":"73929a53afd54d78fb29dc0c037110fdc37ac4db","after":"b1ccc4e97338e0755e186c5b06f4c7d930efc7d6","ref":"refs/heads/main","pushedAt":"2024-06-16T21:22:54.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"technomancy","name":"Phil Hagelberg","path":"/technomancy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141?s=80&v=4"},"commit":{"message":"Warn after checking for malformed syms, not before.","shortMessageHtmlLink":"Warn after checking for malformed syms, not before."}},{"before":"19089bc70c15c0e441d06ef3b38b30aeaf870334","after":"73929a53afd54d78fb29dc0c037110fdc37ac4db","ref":"refs/heads/main","pushedAt":"2024-06-15T03:21:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"technomancy","name":"Phil Hagelberg","path":"/technomancy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141?s=80&v=4"},"commit":{"message":"Allow fn names to escape into surrounding scope.\n\nReverts a change from f64daa8.\n\nThis isn't ideal, but we need it to preserve backwards-compatibility.","shortMessageHtmlLink":"Allow fn names to escape into surrounding scope."}},{"before":"023dba6e09e9bde49d9065e7816f8bd1b376f537","after":"19089bc70c15c0e441d06ef3b38b30aeaf870334","ref":"refs/heads/main","pushedAt":"2024-06-14T15:53:17.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"technomancy","name":"Phil Hagelberg","path":"/technomancy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141?s=80&v=4"},"commit":{"message":"Fix bug in apropos REPL commands\n\nFix bug described in https://github.com/bakpakin/Fennel/issues/462\nby stripping `_.G` from the input rather than the output of the\n`apropos*` function.","shortMessageHtmlLink":"Fix bug in apropos REPL commands"}},{"before":"50acbdf08ccd73a965e8200410fc518c363cb479","after":"023dba6e09e9bde49d9065e7816f8bd1b376f537","ref":"refs/heads/main","pushedAt":"2024-06-14T05:00:21.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"technomancy","name":"Phil Hagelberg","path":"/technomancy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141?s=80&v=4"},"commit":{"message":"Remove luarocks packaging from main makefile.","shortMessageHtmlLink":"Remove luarocks packaging from main makefile."}},{"before":"4217c2fdd86a69aae020452a709b8a980cc654d1","after":"50acbdf08ccd73a965e8200410fc518c363cb479","ref":"refs/heads/main","pushedAt":"2024-06-13T05:29:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"technomancy","name":"Phil Hagelberg","path":"/technomancy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141?s=80&v=4"},"commit":{"message":"Update to faith testing library version 0.2.0.","shortMessageHtmlLink":"Update to faith testing library version 0.2.0."}},{"before":"b1752cb86f15194daf6db42b26d47a20e8097693","after":"4217c2fdd86a69aae020452a709b8a980cc654d1","ref":"refs/heads/main","pushedAt":"2024-06-12T04:45:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"technomancy","name":"Phil Hagelberg","path":"/technomancy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141?s=80&v=4"},"commit":{"message":"Allow plugins to be written in Lua.","shortMessageHtmlLink":"Allow plugins to be written in Lua."}},{"before":"88dbf21f0226863bae4e72317993081e34e9c47d","after":"b1752cb86f15194daf6db42b26d47a20e8097693","ref":"refs/heads/main","pushedAt":"2024-06-12T03:21:11.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"technomancy","name":"Phil Hagelberg","path":"/technomancy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141?s=80&v=4"},"commit":{"message":"Add getinfo as fennel-sourcemap-aware equivalent of debug.getinfo.","shortMessageHtmlLink":"Add getinfo as fennel-sourcemap-aware equivalent of debug.getinfo."}},{"before":null,"after":"eba5a5bdfb93e674046e977ffa1755a3a8ebf449","ref":"refs/heads/struct","pushedAt":"2024-06-11T04:08:45.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"technomancy","name":"Phil Hagelberg","path":"/technomancy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141?s=80&v=4"},"commit":{"message":"Structs, I guess.\n\nRacketeers rejoice.\n\nThis implementation puts struct in the list of regular macros, which\nis wrong. It should only be exposed in compiler scope.","shortMessageHtmlLink":"Structs, I guess."}},{"before":"2ed24c70e04747239dc94f13f820ca7cc31e90c4","after":"88dbf21f0226863bae4e72317993081e34e9c47d","ref":"refs/heads/main","pushedAt":"2024-06-03T17:10:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jaawerth","name":"Jesse Wertheim","path":"/jaawerth","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5314507?s=80&v=4"},"commit":{"message":"fix scm-2 rockspec to work with current fennel\n\nThe LUADIR needed to be set as LUA_LIB_DIR in the makefile for it to\ninstall the fennel.lua library in the right place.","shortMessageHtmlLink":"fix scm-2 rockspec to work with current fennel"}},{"before":"bdae6735b931d2da7591c4da1bd699302cda3895","after":"2ed24c70e04747239dc94f13f820ca7cc31e90c4","ref":"refs/heads/main","pushedAt":"2024-06-03T02:19:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"technomancy","name":"Phil Hagelberg","path":"/technomancy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141?s=80&v=4"},"commit":{"message":"Compile tabs to \\t instead of \\9.","shortMessageHtmlLink":"Compile tabs to \\t instead of \\9."}},{"before":"a35c5e08c4c5b3cdc38a2f180e3abc827ff660d6","after":"bdae6735b931d2da7591c4da1bd699302cda3895","ref":"refs/heads/main","pushedAt":"2024-06-01T04:47:33.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"technomancy","name":"Phil Hagelberg","path":"/technomancy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141?s=80&v=4"},"commit":{"message":"Clarify a few things in readme and contributing guide.","shortMessageHtmlLink":"Clarify a few things in readme and contributing guide."}},{"before":"724fea060d93f6e567ad665d43c4195d3ec62405","after":"a35c5e08c4c5b3cdc38a2f180e3abc827ff660d6","ref":"refs/heads/main","pushedAt":"2024-05-24T15:59:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"technomancy","name":"Phil Hagelberg","path":"/technomancy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141?s=80&v=4"},"commit":{"message":"Add deprecation warning for direct multivalues in operators.\n\nHopefully this will be removed in 2.0, because it implies that\noperators support multivalues in general, when in fact they only\nsupport them when put directly in the args, which there's no reason\never to do.","shortMessageHtmlLink":"Add deprecation warning for direct multivalues in operators."}},{"before":"7dd6b6a47caa1d31df0a65ce2255f3f1053666a7","after":"724fea060d93f6e567ad665d43c4195d3ec62405","ref":"refs/heads/main","pushedAt":"2024-05-24T00:12:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jaawerth","name":"Jesse Wertheim","path":"/jaawerth","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5314507?s=80&v=4"},"commit":{"message":"make macrodebug emit valid code on cyclic ASTs\n\nWhen macrodebug expands to a cyclic/recursive AST like\n\n (macrodebug (case [1 2] (where (or [x y] [y nil x]) (= 3 (+ x y))) x))\n\nit currently emits placeholders @1, @2, etc due to the implicit\n`:detect-cycles? true` passed to fennel.view, resulting in invalid\nfennel syntax in the serialized output.\n\nThis change simply disables detect-cycles. This fixes the case where\na macro expands to an AST with references to node higher in the tree\nlike the above, which covers most edge cases.\n\nThis makes it *possible* to emit an infinitely recursive AST, which with\nthis change would result in a massive expansion that eventually gives up\nupon hotting the maximum depth for fennel.view, but this is a mutch\nrarer edge case.\n\nThis should eventually be revisited to any failure cases involving\ninfiniten AST's serialization can give a useful compiler error, however.\nIdeally, this will eventually be covered by @-macros such that @\nforms can actually be evaluated as fennel syntax back into a\nself-referencing table.","shortMessageHtmlLink":"make macrodebug emit valid code on cyclic ASTs"}},{"before":"5a090a8001892e91dd6196aedcae1fb127b22d40","after":"7dd6b6a47caa1d31df0a65ce2255f3f1053666a7","ref":"refs/heads/main","pushedAt":"2024-05-22T02:43:39.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"technomancy","name":"Phil Hagelberg","path":"/technomancy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141?s=80&v=4"},"commit":{"message":"Support string pattern for plugin :versions.","shortMessageHtmlLink":"Support string pattern for plugin :versions."}},{"before":"9813acfa65cd63bca54d333fa757cf2fb6406fa3","after":"5a090a8001892e91dd6196aedcae1fb127b22d40","ref":"refs/heads/main","pushedAt":"2024-05-19T15:24:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"technomancy","name":"Phil Hagelberg","path":"/technomancy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141?s=80&v=4"},"commit":{"message":"Fix typos in code comments","shortMessageHtmlLink":"Fix typos in code comments"}},{"before":"66a593dd18651c74133f79af45a47ac203a23f7a","after":"9813acfa65cd63bca54d333fa757cf2fb6406fa3","ref":"refs/heads/main","pushedAt":"2024-05-17T04:14:06.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"technomancy","name":"Phil Hagelberg","path":"/technomancy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141?s=80&v=4"},"commit":{"message":"Merge branch 'optimize-table-destructure'","shortMessageHtmlLink":"Merge branch 'optimize-table-destructure'"}},{"before":"d063d32b006a4a8b9873484984c1be821a4c79fe","after":"66a593dd18651c74133f79af45a47ac203a23f7a","ref":"refs/heads/main","pushedAt":"2024-05-16T09:13:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"technomancy","name":"Phil Hagelberg","path":"/technomancy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141?s=80&v=4"},"commit":{"message":"Comparator emits locals instead of IIFE\n\nThe (define-comparator-special) function is no longer responsible\nfor short circuit protection, so it now emits locals instead of IIFE.\nThis wasn't possible before the (and)/(or) changes, because emitting\nstatements would interrupt short circuit behavior.\n\n(< 1 (funcall) x 4)\n\nBefore this commit:\nreturn (function(_1_,_2_,_3_,_4_) return (_1_ < _2_) and (_2_ < _3_) and\n(_3_ < _4_) end)(1,funcall(),x,4)\n\nAfter this commit:\nlocal _1_ = funcall()\nreturn ((1 < _1_) and (_1_ < x) and (x < 4))\n\nThis is better because the IIFE is removed, and there are fewer gensyms.\n\nI've also modified fennel's static analysis capibilities, ie the\n(short-circuit-safe?) function. Not all comparator expressions need\nshort circuit protection. There are three categories:\nOnes like (< 1 x) with exactly two arguments are handled by\n(native-comparator), and do not need protection.\nOnes like (< 1 x 5) with idempotent argugments are handled by\n(idempotent-comparator), and do not need protection.\nOnly ones like (< 1 (x!) 5) are handled by the new (binding-comparator)\nand need short circuit protection.\nI extracted the logic that chooses the comparator implementation to the\nnew (comparator-special-type) function. This way, the static analysis\n(short-circuit-safe?) function can call it to distinguish which\ncomparisons are safe.\n\nAlso, because of the way idempotent-comparator chains the arguments,\nonly the middle arguments actually need to be idempotent. I've changed\nthe comparator logic so that calls like (< (foo!) bar baz (quux!)) will\nuse the (idempotent-comparator) function because the middle args are\nidempotent, even though the first and last args aren't idempotent.","shortMessageHtmlLink":"Comparator emits locals instead of IIFE"}},{"before":"ff9fd5ff0dc8c0030cf9e84a8942435185f98b9e","after":"d063d32b006a4a8b9873484984c1be821a4c79fe","ref":"refs/heads/main","pushedAt":"2024-05-16T01:54:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"technomancy","name":"Phil Hagelberg","path":"/technomancy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141?s=80&v=4"},"commit":{"message":"Emit not-found warning from include even for non-literals.\n\nUsed to use this as a way to dodge the warnings before --skip-include\nwas implemented; now it's better to specify it on the CLI.","shortMessageHtmlLink":"Emit not-found warning from include even for non-literals."}},{"before":"88960d80415addafcfe6df2452f7f813a19dbf91","after":"ff9fd5ff0dc8c0030cf9e84a8942435185f98b9e","ref":"refs/heads/main","pushedAt":"2024-05-16T01:04:34.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"technomancy","name":"Phil Hagelberg","path":"/technomancy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141?s=80&v=4"},"commit":{"message":"Disable strict global checking when _ENV is in scope.\n\nIt's impossible for the compiler to determine what globals are valid\nin this case, so just don't check at all.\n\nThere's still a problem of _ENV becoming a mangling target, but that\nshould be treated as a separate bug.","shortMessageHtmlLink":"Disable strict global checking when _ENV is in scope."}},{"before":"db6c64502686c957e3183067e389303b2333ae8c","after":"88960d80415addafcfe6df2452f7f813a19dbf91","ref":"refs/heads/main","pushedAt":"2024-05-09T08:31:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"technomancy","name":"Phil Hagelberg","path":"/technomancy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141?s=80&v=4"},"commit":{"message":"Un-deprecate tset for doto reasons. Mention fennel.repl incompatibility.","shortMessageHtmlLink":"Un-deprecate tset for doto reasons. Mention fennel.repl incompatibility."}},{"before":"a4287243223768d8729ce95674228f5136f8bb46","after":"db6c64502686c957e3183067e389303b2333ae8c","ref":"refs/heads/main","pushedAt":"2024-05-04T22:01:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"technomancy","name":"Phil Hagelberg","path":"/technomancy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141?s=80&v=4"},"commit":{"message":"Remove parentheses from method call target in more cases\n\nFixes fennel#219.\n\n`do end (a.b):c()` -> `a.b:c()`\n`do end (a[1]):c()` -> `a[1]:c()`\n`do end (a().b):c()` -> `a().b:c()`\n\nI believe this puts us down to only 2 `do end` intstances in the\nentire compendium.","shortMessageHtmlLink":"Remove parentheses from method call target in more cases"}},{"before":"204fcc8a6678a141b878d17323582958f4b87e75","after":"a4287243223768d8729ce95674228f5136f8bb46","ref":"refs/heads/main","pushedAt":"2024-05-04T20:18:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"technomancy","name":"Phil Hagelberg","path":"/technomancy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141?s=80&v=4"},"commit":{"message":"Fix inconsistent capitalization in 'fennel --help'\n\nThe help message mixes \"REPL\" and \"repl\", \"Fennel\" and \"fennel\", etc. This\npatch unifies both. Also, Lisp is capitalized, as we refer to the family of\nlanguages, not the speech impediment.","shortMessageHtmlLink":"Fix inconsistent capitalization in 'fennel --help'"}},{"before":"e8fdac6ccb37df970fe96095077c5bb35b371e17","after":"eb4df868205e1ef0ceac6c94ba949f747876cd15","ref":"refs/heads/prompt","pushedAt":"2024-04-27T19:15:30.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"technomancy","name":"Phil Hagelberg","path":"/technomancy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141?s=80&v=4"},"commit":{"message":"prompt","shortMessageHtmlLink":"prompt"}},{"before":"94b4a71c3528e887aba870a8c58a55075d4a3090","after":"e8fdac6ccb37df970fe96095077c5bb35b371e17","ref":"refs/heads/prompt","pushedAt":"2024-04-27T19:13:40.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"technomancy","name":"Phil Hagelberg","path":"/technomancy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141?s=80&v=4"},"commit":{"message":"prompt","shortMessageHtmlLink":"prompt"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEai8HVwA","startCursor":null,"endCursor":null}},"title":"Activity ยท bakpakin/Fennel"}