{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":189002750,"defaultBranch":"Dreamland-patch","name":"bbs-ruby","ownerLogin":"ccns","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2019-05-28T10:00:09.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/7893404?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1681323836.0","currentOid":""},"activityList":{"items":[{"before":"e0933376ec080d9eec62307b48e6a3cab4a68c9c","after":"bdb86a47616cbdef6b3da0a015c29652a94b9e25","ref":"refs/heads/Dreamland-patch","pushedAt":"2023-04-14T08:58:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"IepIweidieng","name":"Wei-Cheng Yeh (IID)","path":"/IepIweidieng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/37586669?s=80&v=4"},"commit":{"message":"refactor(C): replace octal char escapes with hexadecimal ones","shortMessageHtmlLink":"refactor(C): replace octal char escapes with hexadecimal ones"}},{"before":"ae94c750fe74825265df9575542279b6632760bb","after":null,"ref":"refs/heads/master","pushedAt":"2023-04-12T18:23:56.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"IepIweidieng","name":"Wei-Cheng Yeh (IID)","path":"/IepIweidieng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/37586669?s=80&v=4"}},{"before":"785b691cd0a5f7f2f1092e0b7d1c816cb6de6dfa","after":"e0933376ec080d9eec62307b48e6a3cab4a68c9c","ref":"refs/heads/Dreamland-patch","pushedAt":"2023-04-12T17:59:47.000Z","pushType":"push","commitsCount":15,"pusher":{"login":"IepIweidieng","name":"Wei-Cheng Yeh (IID)","path":"/IepIweidieng","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/37586669?s=80&v=4"},"commit":{"message":"chore(macros): refine code enclosure forms\n\nThe enclosure forms are refined as follow:\n\nAfter enclosing macro params in `()` as described in the previous commit,\nchange each complete C expr/statement in the macro definition\ninto one of the following forms:\n\n- Constant-like definition (an expression-like definition consisting\n of only the params, arithmetric type constants, & non-modifying expressions,\n except when any param expects only non-arithmetric type or non-constant arg):\n - `expr`, if it seems to contain no oprs or only suffix oprs\n - `(expr)`, otherwise\n - Notes:\n - The expr can be another macro with constant-like definition.\n - Exprs containing the opr `,` cannot be used as a constant in C,\n and C function call opr (suffix opr `()`) is considered modifying.\n Thus a definition containing such exprs is not constant-like.\n - The prefix `+`/`-` sign of numbers is a prefix opr,\n so numbers with a sign cannot use the `expr` form.\n- Non-constant-like, expression-like (whose result is used) definition:\n - `((void)0)`, for an empty expression\n - `expr`, if it is not enclosed in `()`\n and appears to contain no oprs or only suffix oprs\n - `(exprs)`, if it otherwise contains any void expressions\n - `((void)expr_first, exprs)`,\n if `expr_first` containing no oprs other than prefix and suffix oprs\n - `((void)0, exprs)`, otherwise\n - Notes:\n - If the lowest precedence opr of a non-final expr is non-modifying,\n the expr should be casted to void and considered as a void expr.\n (Otherwise a compile-time warning may be issued.)\n - Each expr can be another macro with expression-like definition.\n - A sole expr block or lambda function counts as containing no oprs.\n - If macro F is defined as `expr++`/`expr--`,\n the `++`/`--` is always parsed as the suffix inc/dec opr,\n even in `F 1`, which is unwanted but prevented by its invalid syntax.\n Thus the suffix oprs `++` & `--` are acceptable in the `expr` form.\n - The existance of a void expr is for making `func_a MACROB` invalid\n and also an indicator that it is not a constant expression.\n - Although the `(Type) (exprs)` forms are more ideal,\n it requires the type of `exprs` to be known, which is inconvenient.\n Thus such forms are not preferred.\n- Statement-like (whose result is void) definition, rewritten as expressions\n (should be defined as a function-like macro):\n - `(void) ((void)0)`, for an empty statement\n - `(void) (exprs)`, if the rewritten expr form ends with a void expression\n - `(void) (exprs, (void)expr_last)`,\n if `expr_last` containing no oprs other than prefix and suffix oprs\n - `(void) (exprs, (void)0)`, otherwise\n - Notes:\n - If the lowest precedence opr of any expr is non-modifying,\n the expr should be casted to void and considered as a void expr.\n - The preceding `(void)` is for making `MACROA MACROB` invalid\n and also a visual indicator that it is a substitute of statements.\n - The trailing `(void)` prevent a suffix operator\n from applying to the invocation of the macro.\n- Statement-like definition which cannot be rewritten as expressions\n (should be defined as a function-like macro):\n - `statement`, for a single statement\n - Do not include the `;`\n - `do { statements } while (0)`, otherwise\n- Other macro definitions are not affected.","shortMessageHtmlLink":"chore(macros): refine code enclosure forms"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAADGKb60QA","startCursor":null,"endCursor":null}},"title":"Activity ยท ccns/bbs-ruby"}