{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":7416546,"defaultBranch":"master","name":"mercury","ownerLogin":"Mercury-Language","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2013-01-03T02:16:53.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/3138707?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1694920816.0","currentOid":""},"activityList":{"items":[{"before":"69d74c62a73cbd87a135a02387a44b26e212ebb0","after":"ae38bb3ebf10b56bbe2794c9a34b06bbe06051de","ref":"refs/heads/master","pushedAt":"2024-06-11T14:32:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"Add support for 24 bit color.\n\ncompiler/globals.m:\n Expand the representation of colors to include 24 bit color.\n\n Expand the syntax of color specifications to allow strings of the form\n #RRGGBB to specify 24 bit colors.\n\n Factor out common code in report syntax errors in color specifications.\n\ncompiler/write_error_spec.m:\n Output the appropriate SGR escape codes when switching to a 24 bit color.\n\ntests/invalid/bug150_bad_color.err_exp:\n Expect an updated diagnostic.","shortMessageHtmlLink":"Add support for 24 bit color."}},{"before":"d0fa8a95dfd330f5987ae02fc4526fee2b3bf0e9","after":"69d74c62a73cbd87a135a02387a44b26e212ebb0","ref":"refs/heads/master","pushedAt":"2024-06-11T13:55:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"Delete stray dot from the end of a diagnostic.","shortMessageHtmlLink":"Delete stray dot from the end of a diagnostic."}},{"before":"f1fc2f6cb3ab22b1d80590275c07bb002f48b1f8","after":"d0fa8a95dfd330f5987ae02fc4526fee2b3bf0e9","ref":"refs/heads/master","pushedAt":"2024-06-11T04:25:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"Integrate envvars for colors into the option list.\n\ncompiler/mercury_compile_main.m:\n Convert the values of the MERCURY_COLOR_SCHEME and NO_COLOR environment\n variables into references to some (new) options, and insert the resulting\n EnvVarArgs into the lists of options given to getopt.m through the\n initial invocation of the handle_given_options predicate. And since\n other parts of the compiler later reinvoke handle_given_options\n (usually with module-specific options obtained from entries in\n Mercury.options files), pass the value of EnvVarArgs to the other\n parts of the compiler that do this.\n\ncompiler/make.build.m:\ncompiler/make.get_module_dep_info.m:\ncompiler/make.module_target.m:\ncompiler/make.program_target.m:\ncompiler/make.top_level.m:\ncompiler/make.track_flags.m:\n Include the EnvVarArgs in the option list given to handle_given_options\n in between the module-specific options from Mercury.options files\n and the options we got from the command line. This sets up the\n what-can-override-what relationships that we aim for.\n\ncompiler/handle_options.m:\n Stop looking up the values of MERCURY_COLOR_SCHEME and NO_COLOR,\n since that is now done by mercury_compile_main.m. Simplify the\n affected code accordingly.\n\ncompiler/make.make_info.m:\n Store the EnvVarArgs computed by mercury_compile_main.m in the make_info\n structure, to transmit it to the components of the make package that\n need it.\n\ncompiler/options.m:\n Add the new options needed by all of the above. These include options\n that record where the option that set the color scheme came from\n (so that we place the blame correctly if the color scheme specification\n is malformed), and an option that tells the special_handler predicate\n to *ignore* the setting of the color scheme from MERCURY_COLOR_SCHEME.\n This last one is intended to be used in tests/invalid/Mercury.options\n to solve the problem of \"how can we get Mercury.options to override\n MERCURY_COLOR_SCHEME when we actually want to give our users a system\n in which MERCURY_COLOR_SCHEME always overrides Mercury.options?\".\n\ntests/invalid/bug150_bad_color.{m,err_exp:}\n A new test case that tests the message we should get when the value\n of MERCURY_COLOR_SCHEME is malformed.\n\ntests/invalid/bug150_partial_color.{m,err_exp}:\n A new test case that tests the message we should get when the value\n of MERCURY_COLOR_SCHEME specifies colors for some roles but not others.\n\ntests/invalid/Mercury.options:\ntests/invalid/Mmakefile:\n Enable the new test cases, and execute them with the intended options.","shortMessageHtmlLink":"Integrate envvars for colors into the option list."}},{"before":"2deea93614c5eca9f7eb9df4fada40562de9f3a0","after":"f1fc2f6cb3ab22b1d80590275c07bb002f48b1f8","ref":"refs/heads/master","pushedAt":"2024-06-10T12:26:07.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"Clean up the assert ecosystem a bit.\n\ncompiler/accumulator.m:\n Give some predicates more meaningful names.\n\n Fix the copyright attribution.\n\ncompiler/assertion.m:\n Put related predicates next to each other.\n\n Give some predicates more meaningful names.\n\n Keep private the predicates that do not need to be exported.\n\ncompiler/hlds_promise.m:\n Merge the three separate interface sections into one; this module\n is not big enough to benefit from having them separate.\n\n Stop using pred_ids as keys in exclusive_tables.\n\ncompiler/check_promise.m:\n Conform to the change in hlds_promise.m.\n\n Add some comments.\n\ncompiler/notes/promise_ex.html:\n Fix some bit rot, and note some other bit rot.","shortMessageHtmlLink":"Clean up the assert ecosystem a bit."}},{"before":"d9f1a9982340dcf51f661ab0da145fe54dbbd609","after":"2deea93614c5eca9f7eb9df4fada40562de9f3a0","ref":"refs/heads/master","pushedAt":"2024-06-08T22:34:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"Move some import to the implementation setcion.","shortMessageHtmlLink":"Move some import to the implementation setcion."}},{"before":"8f490f6b69c6733b44546046bdca345d5ece80ff","after":"d9f1a9982340dcf51f661ab0da145fe54dbbd609","ref":"refs/heads/master","pushedAt":"2024-06-07T18:43:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"Print a message if we find color scheme errors.\n\ncompiler/globals.m:\n If we find errors in a color scheme specification, record a message\n reporting that error in a mutable in write_error_spec.m.\n\n Update the colors in used in the 16 bit light and dark color schemes\n to the ones proposed by Peter.\n\ncompiler/write_error_spec.m:\n Change the operation the maybe_print_delayed_error_message predicate,\n which we invoke when we finish dealing with a module, to print any\n diagnostics recorded by globals.m about malformed color scheme\n specifications, but only if we actually printed at least one message\n that could have been affected by such problems.\n\ncompiler/handle_options.m:\n Conform to the change in globals.m.","shortMessageHtmlLink":"Print a message if we find color scheme errors."}},{"before":"13cf29732d800430d2e9a777fdbe06d9f9050fef","after":"8f490f6b69c6733b44546046bdca345d5ece80ff","ref":"refs/heads/master","pushedAt":"2024-06-07T16:28:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"Make module_qual.m a proper package.\n\ncompiler/module_qual.m:\n Delete from this module everything except include_module declarations,\n making it a proper package, after moving (most of) the deleted things\n to other modules. The rest were already unused.\n\ncompiler/module_qual.mq_info.m:\n This new submodule of module_qual.m contains the definition of the\n mq_info type, its getter/setter predicates, and some utility operations.\n This is the bulk of the old module_qual.m.\n\n Delete two fields of the old mq_info/mq_sub_info structure, because\n they were never used.\n\ncompiler/module_qual.qualify_items.m:\n Move the predicates that module qualify entire aug_comp_units,\n aug_make_int_units and parse_tree_int3s here from module_qual.m.\n\n Rename some already-here predicates to avoid name clashes with\n the newly moved predicates.\n\n Export only the predicates that are used outside the module *now*.\n\n Update some comments.\n\ncompiler/module_qual.id_set.m:\n Move a type and a predicate here from module_qual.m.\n\n Make a comment more detailed.\n\n Reorder the args of a predicate.\n\ncompiler/module_qual.collect_mq_info.m:\n Delete some trace goals that lost their usefulness a long time ago.\n\ncompiler/notes/compiler_design.html:\n Update the documentation of the module_qual package.\n\n Conform to the changes above.\n\ncompiler/add_clause.m:\ncompiler/add_type.m:\ncompiler/comp_unit_interface.m:\ncompiler/hlds_module.m:\ncompiler/make_hlds_passes.m:\ncompiler/mercury_compile_make_hlds.m:\ncompiler/module_qual.qual_errors.m:\ncompiler/pred_table.m:\ncompiler/qual_info.m:\ncompiler/superhomogeneous.m:\n Conform to the changes above.\n\ncompiler/add_class.m:\ncompiler/add_foreign_proc.m:\ncompiler/higher_order.make_specialized_preds.m:\ncompiler/ml_lookup_switch.m:\ncompiler/mode_errors.m:\ncompiler/tag_switch_util.m:\n Sort import_module declarations.","shortMessageHtmlLink":"Make module_qual.m a proper package."}},{"before":"09836fe7beacfef308076c4bd122662dd18782c1","after":"13cf29732d800430d2e9a777fdbe06d9f9050fef","ref":"refs/heads/master","pushedAt":"2024-06-07T09:47:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"Delete includes from add_pragma.m and make_hlds_passes.m.\n\ncompiler/add_pragma.m:\ncompiler/make_hlds_passes.m:\n Delete include_module declarations from these modules, making them\n into ordinary modules.\n\ncompiler/make_hlds.m:\n Move all those include_module declarations here, where they don't mix\n with ordinary code.\n\ncompiler/make_hlds_error.m:\n Move some error reporting predicates here from add_pragma.m,\n to give add_pragma.m's former submodules access to them.\n\ncompiler/add_pragma_tabling.m:\ncompiler/add_pragma_type_spec.m:\ncompiler/make_hlds_separate_items.m:\n Add the import_module declarations that these former submodules\n used to get from their parent modules.","shortMessageHtmlLink":"Delete includes from add_pragma.m and make_hlds_passes.m."}},{"before":"4c2b80ecb0d7cbbbb44ce757f9925e96ec3d4af7","after":"09836fe7beacfef308076c4bd122662dd18782c1","ref":"refs/heads/master","pushedAt":"2024-06-07T00:00:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"Delete an unneeded field.\n\ncompiler/const_struct.m:\n Delete the inst field from proxy structs, since it is never used.","shortMessageHtmlLink":"Delete an unneeded field."}},{"before":"2526c4b8cbd2fac99c706e593eecf7bee705fa1d","after":"4c2b80ecb0d7cbbbb44ce757f9925e96ec3d4af7","ref":"refs/heads/master","pushedAt":"2024-06-06T22:47:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"Improve the format of speed_summary's output.","shortMessageHtmlLink":"Improve the format of speed_summary's output."}},{"before":"7501c52c8b2962a04841abacfa26949aaa1983a6","after":"2526c4b8cbd2fac99c706e593eecf7bee705fa1d","ref":"refs/heads/master","pushedAt":"2024-06-06T22:42:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"Split possible_cause into hint and inconsistent.\n\ncompiler/error_spec.m:\n Replace the possible_cause color name with the hint and inconsistent\n color names, as agreed on m-rev.\n\ncompiler/globals.m:\ncompiler/write_error_spec.m:\n Update the code handling color names and their mapping to color shades.\n\ncompiler/options.m:\n Update the invisible options that record that mapping.\n\ntools/bootcheck:\n Update the color scheme used for the test suite.\n\ncompiler/accumulator.m:\ncompiler/add_pragma.m:\ncompiler/add_pragma_tabling.m:\ncompiler/add_type.m:\ncompiler/check_typeclass.m:\ncompiler/equiv_type.m:\ncompiler/format_call_errors.m:\ncompiler/inst_check.m:\ncompiler/make_hlds_error.m:\ncompiler/make_hlds_passes.m:\ncompiler/make_hlds_warn.m:\ncompiler/mode_errors.m:\ncompiler/module_qual.qual_errors.m:\ncompiler/parse_item.m:\ncompiler/parse_mutable.m:\ncompiler/parse_pragma.m:\ncompiler/parse_type_defn.m:\ncompiler/post_typecheck.m:\ncompiler/simplify_goal_call.m:\ncompiler/simplify_proc.m:\ncompiler/split_parse_tree_src.m:\ncompiler/state_var.m:\ncompiler/termination.m:\ncompiler/typecheck_error_overload.m:\ncompiler/typecheck_error_undef.m:\ncompiler/typecheck_errors.m:\n Replace uses of the possible_cause color with one of its replacements.\n In a few cases, adjust some other colors as well.\n\ntests/invalid/bad_statevar_bad_context.err_exp:\ntests/invalid/bind_in_negated.err_exp:\ntests/invalid/bug197.err_exp:\ntests/invalid/bug487.err_exp:\ntests/invalid/coerce_disambig.err_exp:\ntests/invalid/coerce_implied_mode.err_exp:\ntests/invalid/coerce_infer.err_exp:\ntests/invalid/coerce_non_du.err_exp:\ntests/invalid/coerce_type_error.err_exp:\ntests/invalid/coerce_unify_tvars.err_exp:\ntests/invalid/conflicting_tabling_pragmas.err_exp:\ntests/invalid/dcg_context.err_exp:\ntests/invalid/default_ho_inst_2.err_exp:\ntests/invalid/fbnf.err_exp:\ntests/invalid/freefree.err_exp:\ntests/invalid/functor_ho_inst_bad_1.err_exp:\ntests/invalid/functor_ho_inst_bad_3.err_exp:\ntests/invalid/higher_order_mode_mismatch.err_exp:\ntests/invalid/ho_type_mode_bug.err_exp:\ntests/invalid/merge_inst_error.err_exp:\ntests/invalid/mode_inf.err_exp:\ntests/invalid/modes_erroneous.err_exp:\ntests/invalid/multimode_dcg.err_exp:\ntests/invalid/partial_implied_mode.err_exp:\ntests/invalid/quant_constraint_1.err_exp:\ntests/invalid/quant_constraint_2.err_exp:\ntests/invalid/string_format_bad.err_exp:\ntests/invalid/string_format_unknown.err_exp:\ntests/invalid/test_may_duplicate.err_exp:\ntests/invalid/test_may_export_body.err_exp:\ntests/invalid/type_diff.err_exp:\ntests/invalid/typeclass_dup_method_mode.err_exp:\ntests/invalid_make_int/bad_mutable_int.int_err_exp:\ntests/invalid_nodepend/duplicate_modes.err_exp:\ntests/invalid_nodepend/errors_2.err_exp:\ntests/invalid_nodepend/occurs.err_exp:\ntests/invalid_nodepend/require_tailrec_invalid.err_exp:\ntests/invalid_nodepend/test_with_type.err_exp:\ntests/invalid_nodepend/unbound_type_vars.err_exp:\ntests/invalid_purity/impure_pred_t1_fixed.err_exp:\ntests/invalid_purity/impure_pred_t2.err_exp:\ntests/invalid_purity/purity_nonsense_1.err_exp:\ntests/invalid_purity/purity_nonsense_2.err_exp:\ntests/warnings/foreign_term_invalid.err_exp:\ntests/warnings/format_call_multi.err_exp:\ntests/warnings/format_call_warning.err_exp:\ntests/warnings/table_with_inline.err_exp:\ntests/warnings/warn_succ_ind.err_exp:\ntests/warnings/warn_succ_ind.err_exp2:\ntests/warnings/warn_succ_ind.err_exp3:\n Expect updated diagnostics.","shortMessageHtmlLink":"Split possible_cause into hint and inconsistent."}},{"before":"b3c6950cf45bd5dee62ba16ad9cab1cd50c03c71","after":"7501c52c8b2962a04841abacfa26949aaa1983a6","ref":"refs/heads/master","pushedAt":"2024-06-06T14:58:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"Allow some colors to be left unspecified.\n\ncompiler/globals.m:\n When a @specified color scheme leaves some colors unspecified,\n do not generate an error; generate an informational message instead.\n Change the data structure we use to record color schemes to accommodate\n this fact.\n\ncompiler/options.m:\n Add the option on which the new informational message is conditional.\n Do not document it yet.\n\ncompiler/handle_options.m:\n Ignore those informational messages for now.\n\ncompiler/error_spec.m:\n When coloring a list of pieces, record the color in the piece\n that marks the end of the list, as well as in the start,\n since new code in write_error_spec.m now needs this.\n\ncompiler/write_error_spec.m:\n When processing a piece that marks either the start or the end\n of a colored region, ignore the piece of the color role named\n in that piece has no assigned color. This leaves all the pieces\n in between with the same color as the pieces on the two sides\n of the to-be-ostensibly-colored region.","shortMessageHtmlLink":"Allow some colors to be left unspecified."}},{"before":"08185ebdef1e3befdc166efdc214306a5e8773c3","after":"b3c6950cf45bd5dee62ba16ad9cab1cd50c03c71","ref":"refs/heads/master","pushedAt":"2024-06-06T00:15:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"Add draft support for color schemes.\n\ncompiler/write_error_spec.m:\n Delete the code that fills in the default colors for each role.\n\ncompiler/globals.m:\n Move that code here, into the implementation of\n convert_color_spec_options, which is the function that\n write_error_spec.m uses to set up the color database it uses\n by looking up the right options in the option_table.\n\n The main part of this diff is the addition of a new predicate,\n record_color_scheme_in_options, whose job is to *set up* those\n options.\n\n It does so by allowing the user to specify a *color scheme*,\n which may be a builtin scheme (of which we now support four,\n {dark,light}{16,256}), or a scheme that the user specifies directly\n using a string of the form\n\n specified@subject=C:correct=C:incorrect=C:possible_cause:C\n\n where each C is either a color name, or an SGR color number in 0..255.\n (And possibly something like rgb-R-G-B later.)\n\n There is also the pseudo-color-scheme named none, which is not a\n color scheme at all, but rather a way to turn off all use of color.\n\ncompiler/handle_options.m:\n Add code to allow the user to specify a color scheme using either\n\n - a new maybe_string option named --color-scheme, or\n - an environment variable named MERCURY_COLOR_SCHEME.\n\n Also add code to allow an environment variable named NO_COLOR\n to turn off the use of color regardless of any other color settings.\n\n Add a mechanism to avoid getting stuck in an infinite loop\n in the presence of errors in the values of environment variables\n that we use to set up the first globals structure.\n\ncompiler/options.m:\n Add the options needed by the new code in handle_options.m.\n Some are not yet documented, the rest are intended never to be documented,\n so there is no corresponding change to doc/user_guidet.texi (yet).\n\ntools/bootcheck:\n Set the MERCURY_COLOR_SCHEME environment variable to specify\n the colors now in .err_exp files.","shortMessageHtmlLink":"Add draft support for color schemes."}},{"before":"20ee8a61a2a5ada6ee80caae80e35231390bf640","after":"08185ebdef1e3befdc166efdc214306a5e8773c3","ref":"refs/heads/master","pushedAt":"2024-06-05T14:17:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"Improve the style of mercury_term_lexer.m.\n\nlibrary/mercury_term_lexer.m:\n Delete the get_token predicate and its string-reading versions,\n since it is almost identical to get_token_2, and differs only by\n passing a constant as an extra argument. Do this after effectively\n inlining all calls to the deleted predicates. Then rename the old\n get_token_2 to get_token, and likewise for the string-reading versions.\n\n Shorten some too-long function symbol names.\n\n Replace _2 suffixes at the ends of predicate names with _loop,\n in cases where the purpose of the _2 predicate was looping.\n\n Make some other predicate names more descriptive in other ways as well.\n\n Factor out some common code.","shortMessageHtmlLink":"Improve the style of mercury_term_lexer.m."}},{"before":"baf48aafb125b244bc9178935556f4c2f34b0604","after":"20ee8a61a2a5ada6ee80caae80e35231390bf640","ref":"refs/heads/master","pushedAt":"2024-06-05T12:21:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"juliensf","name":"Julien Fischer","path":"/juliensf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3062255?s=80&v=4"},"commit":{"message":"Fix spelling.\n\nlibrary/mercury_term_lexer.m:\ntests/invalid_nodepend/unicode_1.err_exp:\n As above.","shortMessageHtmlLink":"Fix spelling."}},{"before":"71008838be45e73f18b41b5c8c07627654d0b327","after":"baf48aafb125b244bc9178935556f4c2f34b0604","ref":"refs/heads/master","pushedAt":"2024-06-05T06:33:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"Add dividers around tripicated predicates ...\n\n... and move some utility routines near the end.","shortMessageHtmlLink":"Add dividers around tripicated predicates ..."}},{"before":"1b61fd5c5a2b02991709aec74bd81c9693176a74","after":"71008838be45e73f18b41b5c8c07627654d0b327","ref":"refs/heads/master","pushedAt":"2024-06-05T05:14:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"Improve diagnostics for Unicode errors.\n\nlibrary/mercury_term_lexer.m:\n Generate more detailed diagnostics for errors in Unicode escapes.\n\n When we expect 4 or 8 hex digits to specify a Unicode code point\n but get to an end-of-file before we get that many, we used to return\n an eof token *without* any indication of the partial Unicode character.\n Replace this with an error message that is specific to this situation.\n\ntests/invalid_nodepend/unicode_1.err_exp:\ntests/invalid_nodepend/unicode_2.err_exp:\n Expect updated diagnostics.","shortMessageHtmlLink":"Improve diagnostics for Unicode errors."}},{"before":"62848611777d333788b8e7d5b2789b89b7e5998b","after":"1b61fd5c5a2b02991709aec74bd81c9693176a74","ref":"refs/heads/master","pushedAt":"2024-06-03T13:24:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"More tweaks to the text of diagnostics.\n\ncompiler/add_pragma.m:\n When reporting duplicate require_tail_rec pragmas, specify whether\n it is for a whole predicate, or just for one of its modes.\n\ncompiler/parse_type_name.m:\n Don't just report an \"ill-formed type\": report exactly what is wrong\n with it.\n\ncompiler/add_pragma_tabling.m:\ncompiler/convert_parse_tree.m:\ncompiler/det_report.m:\ncompiler/parse_pragma_tabling.m:\n Fix the wording of some diagnostics.\n\nlibrary/mercury_term_lexer.m:\n Fix the wording of a diagnostic.\n\ntests/invalid_nodepend/Mmakefile:\n Reenable two test cases that were accidentally left out\n when they were moved here from tests/invalid.\n\ntests/invalid_nodepend/fundeps_vars.err_exp:\ntests/invalid_nodepend/instance_bug.err_exp:\ntests/invalid_nodepend/invalid_main.err_exp:\ntests/invalid_nodepend/kind.err_exp:\ntests/invalid_nodepend/null_char.err_exp:\ntests/invalid_nodepend/require_tailrec_invalid.err_exp:\ntests/invalid_nodepend/reserved_type_name.m:\ntests/invalid_nodepend/specified.err_exp:\n Expect updated diagnostics.","shortMessageHtmlLink":"More tweaks to the text of diagnostics."}},{"before":"dadb0e4970df259a1e1823d041db03d6ca3050d2","after":"62848611777d333788b8e7d5b2789b89b7e5998b","ref":"refs/heads/master","pushedAt":"2024-06-03T11:14:54.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"More tweaks to diagnostics, mostly for imports.\n\ncompiler/item_util.m:\n Make the diagnostics for duplicate include_module, import_module and\n use_module declarations more readable, color them appropriately,\n and (in some cases) include more info in them.\n\ncompiler/modes.m:\n Improve the wording of some diagnostics.\n\ncompiler/add_pred.m:\ncompiler/lambda.m:\ncompiler/polymorphism_lambda.m:\ncompiler/prog_foreign_enum.m:\n Delete imports of ancestor modules, since you now get a warning for that,\n which --halt-at-warn turns into an error.\n\nlibrary/mercury_term_parser.m:\n Lower case the start of an error description that will end up\n in the *middle* of a sentence in the complete error message.\n\n Make a previously semidet predicate det, to avoid the possibility\n of missing anything.\n\ntests/invalid/typeclass_mode_3.err_exp:\ntests/invalid/typeclass_mode_4.err_exp:\ntests/invalid/undeclared_mode.err_exp:\ntests/invalid_nodepend/bigtest.err_exp:\ntests/invalid_nodepend/bug115.err_exp:\ntests/invalid_nodepend/constrained_poly_insts.err_exp:\ntests/invalid_nodepend/errors_3.err_exp:\ntests/warnings/warn_self_import.err_exp:\n Expect updated diagnostics.","shortMessageHtmlLink":"More tweaks to diagnostics, mostly for imports."}},{"before":"94085f5165505fcd717c09afb314aa667f1dd8c4","after":"dadb0e4970df259a1e1823d041db03d6ca3050d2","ref":"refs/heads/master","pushedAt":"2024-06-02T04:54:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"Don't repeat info unnecessarily in diagnostics.\n\ncompiler/make_hlds_error.m:\n When generating a message about a duplicate definition, do not repeat\n the entity's name in the \"here is the previous definition\" part\n of the message.\n\ntests/invalid/bug476.err_exp:\ntests/invalid/user_field_access_decl_conflict.err_exp:\ntests/invalid_nodepend/invalid_typeclass.err_exp:\n Expect updated diagnostics.","shortMessageHtmlLink":"Don't repeat info unnecessarily in diagnostics."}},{"before":"bf5d7b0ef81a04e773b8b4d83302549f0d68ee47","after":"94085f5165505fcd717c09afb314aa667f1dd8c4","ref":"refs/heads/master","pushedAt":"2024-06-01T17:44:51.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"Detect and report duplicate mutables.\n\ncompiler/add_mutable_aux_preds.m:\n If a mutable has the same name as another mutable defined earlier,\n report this fact, and don't try to implement the mutable. If we did\n try to implement it, we would get a whole slew of errors about\n multiple definitions of all the other kinds of items that we turn\n a mutable definition into.\n\ntests/invalid/duplicate_mutable.{m,err_exp}:\n Add this test case for the diagnostics we generate for this issue.\n\ntests/invalid/Mmakefile:\n Enable the new test case.","shortMessageHtmlLink":"Detect and report duplicate mutables."}},{"before":"ea1b3a51ec5e9f2bed43c576f992b39c304770e1","after":"bf5d7b0ef81a04e773b8b4d83302549f0d68ee47","ref":"refs/heads/master","pushedAt":"2024-06-01T17:22:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"Reenable two tests.\n\ntests/invalid/Mmakefile:\n Renenable the undef_type test, which got accidentally disabled\n in oct 2023.\n\n Execute the trailed_mutable test in both trailing and non-trailing grades.\n We used to enable it *only* in trailing grades, but had its only .err_exp\n file set to the contents expected in *non*-trailing grades.\n\ntests/invalid/undef_type.err_exp:\n Update this file for recent changes to diagnostics.\n\ntests/invalid/trailed_mutable.m:\n Modify the code of this test to ensure that we can expect\n at least one diagnostic in both trailing and non-trailing grades.\n\ntests/invalid/trailed_mutable.err_exp:\ntests/invalid/trailed_mutable.err_exp2:\n Add the .err_exp2 file, and fill each of these files with the\n expected output for non-trailing and trailing grades respectively.","shortMessageHtmlLink":"Reenable two tests."}},{"before":"4d32e801f6706e4a4fea7431698c8076e4608fcf","after":"ea1b3a51ec5e9f2bed43c576f992b39c304770e1","ref":"refs/heads/master","pushedAt":"2024-06-01T15:37:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"More minor tweaks to diagnostics.\n\ncompiler/add_pragma_type_spec.m:\n Use color in some diagnostics.\n\ncompiler/parse_type_defn.m:\n Use color better in a diagnostic.\n\ncompiler/simplify_proc.m:\n Improve the wording of some diagnostics.\n\ntests/invalid/synth_attr_error.err_exp:\ntests/invalid/test_may_duplicate.err_exp:\ntests/invalid/test_may_export_body.err_exp:\ntests/invalid/test_type_spec.err_exp:\ntests/invalid/type_no_arrow.err_exp:\n Expect updated diagnostics.","shortMessageHtmlLink":"More minor tweaks to diagnostics."}},{"before":"76f95cfa980b165d10ce87d18718494cd9564fd7","after":"4d32e801f6706e4a4fea7431698c8076e4608fcf","ref":"refs/heads/master","pushedAt":"2024-06-01T13:08:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"Use color in prog_event.m.\n\ncompiler/prog_event.m:\n Add color to the diagnostics generated by this module. Add the word\n \"Error\" to the start of each diagnostic.\n\ncompiler/add_type.m:\ncompiler/format_call_errors.m:\n Refine just what gets colored in some diagnostics.\n\ncompiler/mode_errors.m:\n Fix a singular/plural disagreement.\n\ntests/invalid/any_passed_as_ground.err_exp:\ntests/invalid/constrained_poly_insts_2.err_exp:\ntests/invalid/ho_default_func_1.err_exp:\ntests/invalid/ho_default_func_3.err_exp:\ntests/invalid/ho_default_func_4.err_exp:\ntests/invalid/ho_type_mode_bug.err_exp:\ntests/invalid/state_vars_test_1.err_exp:\ntests/invalid/string_format_bad.err_exp:\ntests/invalid/string_format_unknown.err_exp:\ntests/invalid/subtype_foreign_supertype_1.err_exp:\ntests/invalid/subtype_foreign_supertype_2.err_exp:\ntests/invalid/synth_attr_error.err_exp:\ntests/invalid/try_detism.err_exp:\ntests/warnings/format_call_multi.err_exp:\ntests/warnings/format_call_warning.err_exp:\n Expect updated diagnostics.","shortMessageHtmlLink":"Use color in prog_event.m."}},{"before":"4398974007ed2616a902aa347e78cd219850ab5f","after":"76f95cfa980b165d10ce87d18718494cd9564fd7","ref":"refs/heads/master","pushedAt":"2024-06-01T06:22:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"Fit the x_list_to_y_pieces functions into a scheme.\n\ncompiler/error_spec.m:\n The existing functions for formatting lists of items as the\n components of diagnostics grew without design. Impose a design\n on them, by fitting them into an overall scheme with consistent\n rules, and document those rules.\n\n Add a utility function that me\n\ncompiler/format_call_errors.m:\n when generating a diagnostic reporting a mismatch between a\n conversion specifier and the value in a poly_type, and that kind of\n poly_type had more than one valid conversion specifier, we intended\n to print all of those valid conversion specifiers, but missed printing\n the first one. Fix this.\n\ncompiler/typecheck_error_type_assign.m:\n Fix an old bug: when dumping a type assign for the verbose part\n of a type error's diagnostic, we used to print the first of\n any typeclass constraints on the type vars of the type assign\n at the end of the line giving the type of the last program variable,\n even though that info is not specific to that program variable.\n\ncompiler/add_clause.m:\ncompiler/add_foreign_enum.m:\ncompiler/add_foreign_proc.m:\ncompiler/add_mode.m:\ncompiler/add_pragma.m:\ncompiler/check_import_accessibility.m:\ncompiler/check_pragma_format_call.m:\ncompiler/check_type_inst_mode_defns.m:\ncompiler/check_typeclass.m:\ncompiler/det_analysis.m:\ncompiler/det_report.m:\ncompiler/direct_arg_in_out.m:\ncompiler/du_type_layout.m:\ncompiler/equiv_type.m:\ncompiler/error_msg_inst.m:\ncompiler/error_type_util.m:\ncompiler/handle_options.m:\ncompiler/hlds_call_tree.m:\ncompiler/hlds_error_util.m:\ncompiler/inst_check.m:\ncompiler/make_hlds_error.m:\ncompiler/make_hlds_warn.m:\ncompiler/mode_errors.m:\ncompiler/module_qual.qual_errors.m:\ncompiler/old_type_constraints.m:\ncompiler/options_file.m:\ncompiler/parse_class.m:\ncompiler/parse_goal.m:\ncompiler/parse_inst_mode_defn.m:\ncompiler/parse_inst_mode_name.m:\ncompiler/parse_item.m:\ncompiler/parse_pragma.m:\ncompiler/parse_pragma_foreign.m:\ncompiler/parse_type_defn.m:\ncompiler/post_typecheck.m:\ncompiler/prog_event.m:\ncompiler/prog_foreign_enum.m:\ncompiler/prog_mode.m:\ncompiler/recompilation.check.m:\ncompiler/simplify_goal_call.m:\ncompiler/simplify_goal_disj.m:\ncompiler/state_var.m:\ncompiler/superhomogeneous.m:\ncompiler/typecheck_error_overload.m:\ncompiler/typecheck_error_undef.m:\ncompiler/typecheck_errors.m:\n Conform to the changes in error_spec.m.\n\ntests/invalid/mpj_1.err_exp:\ntests/invalid/string_format_bad.err_exp:\ntests/invalid/string_format_unknown.err_exp:\ntests/warnings/format_call_warning.err_exp:\n Expect updated diagnostics.","shortMessageHtmlLink":"Fit the x_list_to_y_pieces functions into a scheme."}},{"before":"90b580723d5f55d7ed42c8771b7f11d73ce8290e","after":"4398974007ed2616a902aa347e78cd219850ab5f","ref":"refs/heads/master","pushedAt":"2024-05-31T10:10:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"More tweaks to diagnostics.\n\ncompiler/typecheck_errors.m:\n Redo the way we generate diagnostics for unproven typeclass constraints.\n The old approach was: for each type assign (of which there can be many),\n print the list of unproven constraints in that type_assign. Given N\n type assigns, this could print a constraint up to N times.\n\n This diff switches to a new approach that computes\n\n - the set of constraints that are unproven in *all* type assigns,\n and which are therefore *definitely* errors, and\n\n - the set of constraints that are unproven in *some but not all*\n type assigns, which therefore *may be* errors, but also may be\n non-errors,\n\n and then prints both sets with an explanation of each. Besides the\n classification being helpful to users, telling them which constraints\n to concentrate on fixing first, this approach also guarantees that\n each constraint in its output will appear just once. In other words,\n it has much better worst-case behavior. (Unfortunately, the test suite\n has no test cases that are more complicated than two unproven constraints\n in a single type assign.)\n\ncompiler/mark_tail_calls.m:\n Add color to the diagnostics generated by this module.\n\ncompiler/add_clause.m:\ncompiler/check_type_inst_mode_defns.m:\ncompiler/field_access.m:\n Tweaks to move towards a situation where the messages generated\n for similar errors either in different circumstances or to different\n kinds of entities use the same terminology and use color the same way\n to the extent possible.\n\ntests/invalid/record_syntax_errors.err_exp:\ntests/invalid/ref_to_implicit_comma.err_exp:\ntests/invalid/repeated_field_name.err_exp:\ntests/invalid/repeated_instance_vars_unsat.err_exp:\ntests/invalid/require_tailrec_1.err_exp:\ntests/invalid/require_tailrec_1.err_exp2:\ntests/invalid/require_tailrec_2.err_exp:\ntests/invalid/require_tailrec_2.err_exp2:\ntests/invalid/require_tailrec_3.err_exp:\ntests/invalid/require_tailrec_3.err_exp2:\ntests/invalid/typeclass_test_13.err_exp:\ntests/invalid/typeclass_test_7.err_exp:\ntests/invalid/unsatisfiable_constraint_bug.err_exp:\ntests/invalid/unsatisfiable_constraint_msg.err_exp:\ntests/invalid/unsatisfiable_super.err_exp:\ntests/invalid_nodepend/typeclass_test_1.err_exp:\ntests/invalid_nodepend/typeclass_test_2.err_exp:\n Expect updated diagnostics.","shortMessageHtmlLink":"More tweaks to diagnostics."}},{"before":"aff575a86f8d07487e91dfc19dec9b231822f4dd","after":"90b580723d5f55d7ed42c8771b7f11d73ce8290e","ref":"refs/heads/master","pushedAt":"2024-05-30T21:58:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"More tweaks to diagnostics.\n\ncompiler/add_foreign_proc.m:\ncompiler/add_type.m:\ncompiler/check_type_inst_mode_defns.m:\ncompiler/det_analysis.m:\ncompiler/module_qual.qual_errors.m:\n Tweaks to move towards a situation where the messages generated\n for similar errors either in different circumstances or to different\n kinds of entities use the same terminology and use color the same way\n to the extent possible.\n\ntests/invalid/bad_fact_table_decls.err_exp:\ntests/invalid/ee_invalid.err_exp:\ntests/invalid/oisu_check_add_pragma_errors.err_exp:\ntests/invalid/one_member.err_exp:\ntests/invalid/pragma_c_code_dup_var.err_exp:\ntests/invalid/pragma_qual_error.err_exp:\ntests/invalid/subtype_abstract.err_exp:\ntests/invalid/subtype_circular.err_exp:\ntests/invalid/undef_lambda_mode.err_exp:\ntests/invalid/undef_mode_and_no_clauses.err_exp:\ntests/invalid/wrong_type_arity.err_exp:\ntests/invalid_make_int/bad_type_class_constraint_intermodule.int_err_exp:\ntests/invalid_make_int/bug499.int_err_exp:\ntests/invalid_make_int/bug521.int_err_exp:\ntests/invalid_make_int/builtin_int.int_err_exp:\ntests/invalid_make_int/int_impl_imports.int_err_exp:\ntests/invalid_make_int/missing_interface_import.int_err_exp:\ntests/invalid_make_int/missing_interface_import_test_2.int_err_exp:\ntests/invalid_make_int/transitive_import.int_err_exp:\ntests/invalid_make_int/type_arity.int_err_exp:\ntests/invalid_make_int/undef_inst.int_err_exp:\ntests/invalid_make_int/undef_mode.int_err_exp:\ntests/invalid_make_int/undef_type_int.int_err_exp:\ntests/invalid_make_int/undef_type_mod_qual.int_err_exp:\ntests/invalid_nodepend/bad_mutable.err_exp:\ntests/invalid_nodepend/errors_1.err_exp:\ntests/invalid_nodepend/errors_3.err_exp:\ntests/invalid_nodepend/instance_bug.err_exp:\ntests/invalid_nodepend/kind.err_exp:\ntests/invalid_nodepend/subtype_invalid_supertype.err_exp:\ntests/recompilation/remove_type_re.err_exp.2:\ntests/recompilation/type_qual_re.err_exp.2:\n Expect updated diagnostics.","shortMessageHtmlLink":"More tweaks to diagnostics."}},{"before":"7bb3358c44e1db1d764519b434b54d41d61bb0f2","after":"aff575a86f8d07487e91dfc19dec9b231822f4dd","ref":"refs/heads/master","pushedAt":"2024-05-30T18:51:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"Use color in convert_parse_tree.m.\n\ncompiler/convert_parse_tree.m:\n Add color to the diagnostics for errors in .m files.\n (Leave the diagnostics about unexpected items in interface and\n optimization files without color, since users cannot see them unless\n an automatically generated file has been screwed up.)\n\n Improve the wording of both kinds of diagnostics.\n\ncompiler/item_util.m:\n Add a utility function for the new code in convert_parse_tree.m.\n\ntests/invalid/bad_item_in_interface.err_exp:\ntests/invalid/not_in_interface.err_exp:\ntests/invalid_make_int/bad_finalise_decl_int.int_err_exp:\ntests/invalid_make_int/bad_in_interface.int_err_exp:\ntests/invalid_make_int/bad_initialise_decl_int.int_err_exp:\ntests/invalid_make_int/bad_mutable_int.int_err_exp:\ntests/invalid_make_int/pragma_export_int.int_err_exp:\ntests/invalid_make_int/test_type_spec_int.int_err_exp:\n Expect updated diagnostics.","shortMessageHtmlLink":"Use color in convert_parse_tree.m."}},{"before":"24ec3898609f6d0ce7b94406a3f854e8d65da3c1","after":"7bb3358c44e1db1d764519b434b54d41d61bb0f2","ref":"refs/heads/master","pushedAt":"2024-05-30T15:25:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"Group related error_msgs together.\n\ncompiler/det_report.m:\n When det_infer_goal reports that a disjunction can have more than one\n solution, it generates two or more error_msgs: one stating the above fact,\n and one for each later disjunct that can succeed.\n\n The lists of error_msgs det_infer_goal returns are sorted by its callers.\n This sorting can put unrelated error messages between the error_msgs\n describing the determinism problem with the disjunction.\n\n Fix this problem by making det_infer_goal return error_msg *groups*,\n so that we can then sort the *groups* while keeping the order of the\n messages within each group.\n\ncompiler/error_sort.m:\n Add a type to represent error_msg groups, and code to sort error_msg\n groups, and to flatten lists of error_msg groups.\n\ncompiler/det_analysis.m:\n Conform to the change in det_report.m.\n\ntests/invalid/bug496.err_exp:\ntests/invalid/not_a_switch.err_exp:\n Expect updated diagnostics.","shortMessageHtmlLink":"Group related error_msgs together."}},{"before":"2deb68829958869041e60c1d5712ac85b06dbf06","after":"24ec3898609f6d0ce7b94406a3f854e8d65da3c1","ref":"refs/heads/master","pushedAt":"2024-05-30T12:19:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"zsomogyi","name":"Zoltan Somogyi","path":"/zsomogyi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3301709?s=80&v=4"},"commit":{"message":"Improve diagnostics about missing ::mode annotations.\n\ncompiler/add_clause.m:\n When a mode-specific clause is missing a ::mode annotation from some\n arguments, print the identities of those arguments.\n\ncompiler/add_pred.m:\n Improve the wording of a diagnostic.\n\ntests/invalid/mode_decl_in_wrong_section.err_exp:\ntests/invalid/multimode_dcg.err_exp:\ntests/invalid/multimode_dcg.m:\ntests/invalid/multimode_syntax.err_exp:\n Expect updated diagnostics.","shortMessageHtmlLink":"Improve diagnostics about missing ::mode annotations."}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEYlUEZAA","startCursor":null,"endCursor":null}},"title":"Activity ยท Mercury-Language/mercury"}