{"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:1714244985.0","currentOid":""},"activityList":{"items":[{"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"}},{"before":null,"after":"94b4a71c3528e887aba870a8c58a55075d4a3090","ref":"refs/heads/prompt","pushedAt":"2024-04-27T19:09: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":"prompt","shortMessageHtmlLink":"prompt"}},{"before":"7187176e359f63608343849784b4a1c6d45addfb","after":"204fcc8a6678a141b878d17323582958f4b87e75","ref":"refs/heads/main","pushedAt":"2024-04-27T16:29: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":"Update Macro Modules docs to unquote identifiers","shortMessageHtmlLink":"Update Macro Modules docs to unquote identifiers"}},{"before":"82a36ece00338095c574520eb5eaa5145c154ec9","after":"c856d78d930f961bd9c11c62c634d038f05633d5","ref":"refs/heads/optimize-table-destructure","pushedAt":"2024-04-21T02:18:57.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 pattern matching macros to optimize table destructures too.","shortMessageHtmlLink":"Update pattern matching macros to optimize table destructures too."}},{"before":"9222a65f49111dd1542cc4c2c5f3525a6cbbf5d0","after":"7187176e359f63608343849784b4a1c6d45addfb","ref":"refs/heads/main","pushedAt":"2024-04-20T23:30:38.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":"Catch parsing mistakes from missing whitespace before strings.","shortMessageHtmlLink":"Catch parsing mistakes from missing whitespace before strings."}},{"before":"6ee38646dcbf7db067f6a4ba52281f68c521081e","after":"82a36ece00338095c574520eb5eaa5145c154ec9","ref":"refs/heads/optimize-table-destructure","pushedAt":"2024-04-20T16:56:45.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":"Ensure that values-optimized table destructuring is local if needed.\n\nPreviously it would emit assignments without the \"local\" part, which\nwould result in globals.","shortMessageHtmlLink":"Ensure that values-optimized table destructuring is local if needed."}},{"before":null,"after":"6ee38646dcbf7db067f6a4ba52281f68c521081e","ref":"refs/heads/optimize-table-destructure","pushedAt":"2024-04-18T03:44:01.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":"Unwrap tables when destructuring table literal into a table.\n\nOptimize so that: (local [ok val] [(pcall my-function x y z)])\nis equivalent to: (local (ok val) (pcall my-function x y z))\n\nThis allows us to reduce the use of non-call parens and de-emphasize\nthe role of multiple values.\n\nThis does not cover pattern matching yet, just regular destructuring.\n\nIt also still needs a lot of documentation updates.","shortMessageHtmlLink":"Unwrap tables when destructuring table literal into a table."}},{"before":"d808246586dafc824b9e25cd5d32768b081385be","after":"9222a65f49111dd1542cc4c2c5f3525a6cbbf5d0","ref":"refs/heads/main","pushedAt":"2024-04-16T05:01:15.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":"Make with-open safe to compile when the debug table is missing.","shortMessageHtmlLink":"Make with-open safe to compile when the debug table is missing."}},{"before":null,"after":"04333f2224df734a4c5d406a08a033de5043c205","ref":"refs/heads/copy","pushedAt":"2024-04-16T04:53:04.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":"Expose copy in macro scope.\n\nInstead of having our own copy function private to Fennel's own\nmacros, expose it for all macros.\n\nIn a few cases, we need to skip the copying of the metatable, so allow\nthat with a 3rd argument.","shortMessageHtmlLink":"Expose copy in macro scope."}},{"before":"a7c45bc8e01425e81cb2b4382fcecd7d26a38069","after":"d808246586dafc824b9e25cd5d32768b081385be","ref":"refs/heads/main","pushedAt":"2024-04-14T23:45:02.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":"Use on-error for repl reload failures.\n\nThe \"Lua Compile\" section of on-error is never actually used, so get\nrid of it.","shortMessageHtmlLink":"Use on-error for repl reload failures."}},{"before":"bb597e35f9ea0b939a9534eb0634f4ce22c2c7fd","after":"a7c45bc8e01425e81cb2b4382fcecd7d26a38069","ref":"refs/heads/main","pushedAt":"2024-04-14T03:53:31.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":"Introduce utils.call-of? helper function.","shortMessageHtmlLink":"Introduce utils.call-of? helper function."}},{"before":"e497d62576b1056add070e44408ccc34b6c64001","after":"bb597e35f9ea0b939a9534eb0634f4ce22c2c7fd","ref":"refs/heads/main","pushedAt":"2024-04-13T05:25:05.000Z","pushType":"push","commitsCount":15,"pusher":{"login":"technomancy","name":"Phil Hagelberg","path":"/technomancy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141?s=80&v=4"},"commit":{"message":"Tidy up a few utils functions.","shortMessageHtmlLink":"Tidy up a few utils functions."}},{"before":"3fcc75a42f29ee75b594fcb0c513aa46c57f179e","after":"e497d62576b1056add070e44408ccc34b6c64001","ref":"refs/heads/main","pushedAt":"2024-04-13T00:03: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":"Don't wrap tset target in parens unless it's necessary.\n\nThis helps remove an unneeded do/end statement separator in all but\nfairly obscure edge cases. Also previously we wrapped forms which\nalready had parens in another set of parens, now we separate out \"does\nthis need wrapping?\" from \"does this need a separator?\"\n\nThis should not need any paren wrapping, so no do/end:\n\n (fn map [xs f]\n (icollect [_ x (pairs xs)] (f x)))\n\n [...]\n i_22_auto = (i_22_auto + 1)\n tbl_21_auto[i_22_auto] = val_23_auto\n [...]\n\nThis does need parens, but no do/end as it doesn't follow parens:\n\n (do (tset {} \"a\" 1) 1)\n\n do\n ({})[\"a\"] = 1\n end\n\nThis one does need a do/end because parens follow parens:\n\n (do (print) (tset {} 1 1) 1)\n\n do\n print()\n do end ({})[1] = 1\n end","shortMessageHtmlLink":"Don't wrap tset target in parens unless it's necessary."}},{"before":"d9a80c5849ab2ef76c78aaada448b9f926788621","after":"3fcc75a42f29ee75b594fcb0c513aa46c57f179e","ref":"refs/heads/main","pushedAt":"2024-04-12T15:35:51.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 support for :parse-literal hook.\n\nThis hook takes a literal non-table AST node, a source table, and the raw\nstring which parsed to that node. Whatever non-nil value it returns\nwill be placed into the AST.\n\nThis can be used to work around the lack of source map data on\nnon-table AST nodes like strings and numbers, either by wrapping it in\nanother AST node, or by recording it elsewhere.","shortMessageHtmlLink":"Add support for :parse-literal hook."}},{"before":"9b6e3608a91fee4ef84f6777e2e12b02aca00c42","after":"d9a80c5849ab2ef76c78aaada448b9f926788621","ref":"refs/heads/main","pushedAt":"2024-04-11T00:51:29.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":"Add comment listing macros.fnl compiler-env extras\n\nBuilt-ins in src/fennel/macros.fnl are compiled using a custom\ncompiler-env exposing fennel, utils, and specials.get-function-metadta,\nbut it's easy to forget these are available that way.\n\nA better solution may be to make it possible to explicitly require the\nrelevant internal modules from macros.fnl, but a comment is a better\nthan nothing.","shortMessageHtmlLink":"Add comment listing macros.fnl compiler-env extras"}},{"before":"d3713f64810b64618550ddc5042b659f9ee39926","after":"9b6e3608a91fee4ef84f6777e2e12b02aca00c42","ref":"refs/heads/main","pushedAt":"2024-04-11T00:06:45.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":"replace redundant double-eval-safe? helper\n\nThe helper function `double-eval-safe?` in macros.fnl already existed as\n`utils.idempotent-expr?`, so I removed it in favor of that, as the utils\nmodule is exposed to the builtin macros' compiler env in src/fennel.fnl.\n\nAlso cleaned up the idempotent-expr? function itself, removing a check\nfor a nonexisting integer type.","shortMessageHtmlLink":"replace redundant double-eval-safe? helper"}},{"before":"f64daa8112d7ea86fe804c52462e5aaca6ee5f4c","after":"d3713f64810b64618550ddc5042b659f9ee39926","ref":"refs/heads/main","pushedAt":"2024-04-06T00:43: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":"Clarify licensing of style guide in readme.","shortMessageHtmlLink":"Clarify licensing of style guide in readme."}},{"before":"700e61c6038f2999bcc5f0bcf4c448582c576143","after":"f64daa8112d7ea86fe804c52462e5aaca6ee5f4c","ref":"refs/heads/main","pushedAt":"2024-04-05T16:33:44.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":"Catch more places that new locals can't be introduced.","shortMessageHtmlLink":"Catch more places that new locals can't be introduced."}},{"before":"35dde5e1b270df3dc9f91feb50fe89cc8f27f242","after":"700e61c6038f2999bcc5f0bcf4c448582c576143","ref":"refs/heads/main","pushedAt":"2024-04-05T04:07: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":"Disallow introducing locals when passing args to functions/macros.\n\nWe can't prevent functions from being declared with names, because the\nname might be needed for recursion. But we can detect and declare the\nlocal name in the function's internal scope instead of the containing\nscope where appropriate.\n\nExcept we're currently doing both of these based on nval=1, which\nmeans we can't prevent new names from being declared in the last\nargument to a function.","shortMessageHtmlLink":"Disallow introducing locals when passing args to functions/macros."}},{"before":"aeb13a88f7b7bca82cc4f8ef64fbe98028b9de37","after":"35dde5e1b270df3dc9f91feb50fe89cc8f27f242","ref":"refs/heads/main","pushedAt":"2024-04-05T03:23:36.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":"Apply zero-value when calling + and *.","shortMessageHtmlLink":"Apply zero-value when calling + and *."}},{"before":"dbc845bc13efc633a1c0c0fe91800a7ace5f16e1","after":"aeb13a88f7b7bca82cc4f8ef64fbe98028b9de37","ref":"refs/heads/main","pushedAt":"2024-04-04T23:39:26.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":"Skip unnecessary gensym when rhs is a symbol.","shortMessageHtmlLink":"Skip unnecessary gensym when rhs is a symbol."}},{"before":"a2e19cce05da862e75b2b6922ff202a88b98a2d7","after":"dbc845bc13efc633a1c0c0fe91800a7ace5f16e1","ref":"refs/heads/main","pushedAt":"2024-04-04T21:59:30.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":"Tidy up keep-side-effects.","shortMessageHtmlLink":"Tidy up keep-side-effects."}},{"before":"e039b52ee9edd4c88ba65f99ab87da471471b9ab","after":"a2e19cce05da862e75b2b6922ff202a88b98a2d7","ref":"refs/heads/main","pushedAt":"2024-04-03T18:08:08.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 some deprecation notices to docstrings.","shortMessageHtmlLink":"Add some deprecation notices to docstrings."}},{"before":"5c62f09faa2bab75caba02444fed66bb777ccd04","after":"e039b52ee9edd4c88ba65f99ab87da471471b9ab","ref":"refs/heads/main","pushedAt":"2024-04-03T18:03:30.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":"Add tests for :keywords in repl and out.","shortMessageHtmlLink":"Add tests for :keywords in repl and out."}},{"before":"a190198664841c069f05bddb959a071c99208565","after":"5c62f09faa2bab75caba02444fed66bb777ccd04","ref":"refs/heads/main","pushedAt":"2024-04-03T17:16:20.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"technomancy","name":"Phil Hagelberg","path":"/technomancy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141?s=80&v=4"},"commit":{"message":"Document the keywords option","shortMessageHtmlLink":"Document the keywords option"}},{"before":"02ffba14ec22158a083ae01f0df2d0a22357b36d","after":"a190198664841c069f05bddb959a071c99208565","ref":"refs/heads/main","pushedAt":"2024-03-30T15:54:41.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":"Try LUA env var before falling back to lua in cli test.","shortMessageHtmlLink":"Try LUA env var before falling back to lua in cli test."}},{"before":"dadbabb10ec3c0902862e3fc4f9435b3c509b354","after":"02ffba14ec22158a083ae01f0df2d0a22357b36d","ref":"refs/heads/main","pushedAt":"2024-03-11T21:16:24.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 1.4.0 regression for and/or IIFE varargs\n\nAny IIFE's genereated by and/or inside `(fn [...])` weren't\npropagating the varargs to the inner IIFE call.\n\nCloses https://todo.sr.ht/~technomancy/fennel/206","shortMessageHtmlLink":"fix 1.4.0 regression for and/or IIFE varargs"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEQZhSvgA","startCursor":null,"endCursor":null}},"title":"Activity ยท bakpakin/Fennel"}