{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":21663285,"defaultBranch":"main","name":"chapel","ownerLogin":"chapel-lang","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2014-07-09T18:15:54.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/7597261?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1715695447.0","currentOid":""},"activityList":{"items":[{"before":"38d3894f650b3f0b84301174286d23d9379baad5","after":"6b96fedd816d87ba7dd5ba991e417d5c3f0f5dfd","ref":"refs/heads/main","pushedAt":"2024-06-07T22:30:57.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"DanilaFe","name":"Daniel","path":"/DanilaFe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4361282?s=80&v=4"},"commit":{"message":"dyno: adjust functions that return pre-determined IDs to parse the modules these IDs come from. (#25190)\n\nNormally, IDs are only assigned to ASTs once they've been parsed, so\r\n`idToAst` is safe to assume that it should just find the AST that\r\ncorresponds to a given ID in the existing list of parsing results.\r\nHowever, some of our code expects IDs for certain modules to exist, and\r\nreturns those. However, this means that sometimes the modules haven't\r\nbeen parsed, and `idToAst` lookups will fail. This PR adds a wrapper for\r\nthis \"return expected ID\" pattern that forced the parsing of the module\r\nin question.\r\n\r\nReviewed by @riftEmber -- thanks!\r\n\r\n## Testing\r\n- [x] paratest\r\n- [x] `make test-cls`","shortMessageHtmlLink":"dyno: adjust functions that return pre-determined IDs to parse the mo…"}},{"before":"57c5b877a2bd435ffd19f3f0f85047e6f1218153","after":"38d3894f650b3f0b84301174286d23d9379baad5","ref":"refs/heads/main","pushedAt":"2024-06-07T16:47:02.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"tzinsky","name":"Tim Zinsky","path":"/tzinsky","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2154980?s=80&v=4"},"commit":{"message":"Set chplcheck test script to be executable (#25193)\n\nThe script will not properly launch from our testing system.","shortMessageHtmlLink":"Set chplcheck test script to be executable (#25193)"}},{"before":"bf0f659196133ae57003d5821d5119671be53cae","after":"57c5b877a2bd435ffd19f3f0f85047e6f1218153","ref":"refs/heads/main","pushedAt":"2024-06-06T22:40:48.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"jhh67","name":"John H. Hartman","path":"/jhh67","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3190372?s=80&v=4"},"commit":{"message":"Update bundled GASNet to GASNet-2024.5.0 (#25179)\n\nUpdate bundled GASNet to GASNet-2024.5.0\r\n\r\n[Reviewed by @jabraham17 and @bonachea, thank you.]","shortMessageHtmlLink":"Update bundled GASNet to GASNet-2024.5.0 (#25179)"}},{"before":"1b1b9202cd53587de93eb9873073b3c394494b6a","after":"bf0f659196133ae57003d5821d5119671be53cae","ref":"refs/heads/main","pushedAt":"2024-06-06T22:40:23.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"jabraham17","name":"Jade Abraham","path":"/jabraham17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15747900?s=80&v=4"},"commit":{"message":"Switch homebrew to use system hwloc and jemalloc (#25148)\n\nSwitches the homebrew formula in the chapel tree to use a system install\r\nof hwloc, which allows chapel to use qthreads. This results in better\r\nperformance for users. This also uses a system install of jemalloc,\r\nwhich also increases performance.\r\n\r\n- [x] Tested locally by install chapel from the homebrew formula and\r\nrunning `chpl examples/hello.chpl && ./hello`\r\n\r\nTo be merged after https://github.com/chapel-lang/chapel/pull/25145 and\r\nhttps://github.com/chapel-lang/chapel/pull/25158\r\n\r\nResolves https://github.com/chapel-lang/chapel/issues/24655\r\nResolves https://github.com/chapel-lang/chapel/issues/24931\r\n\r\n[Reviewed by @stonea]","shortMessageHtmlLink":"Switch homebrew to use system hwloc and jemalloc (#25148)"}},{"before":"6496bea150d2a9c294f0a14735b623b4b94d479b","after":"1b1b9202cd53587de93eb9873073b3c394494b6a","ref":"refs/heads/main","pushedAt":"2024-06-06T22:39:55.000Z","pushType":"pr_merge","commitsCount":6,"pusher":{"login":"jabraham17","name":"Jade Abraham","path":"/jabraham17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15747900?s=80&v=4"},"commit":{"message":"Patch build system to allow building with CHPL_TARGET_JEMALLOC=system (#25158)\n\nThis PR patches some of our build configuration scripts to be able to\r\nuse `CHPL_TARGET_JEMALLOC=system`. This allows us to use our preferred\r\nconfiguration for performance (`CHPL_MEM=jemalloc`) in situations where\r\nwe cannot build the bundled jemalloc (i.e. for packaging)\r\n\r\nWhen using a system jemalloc 5.x, we have to turn off chunk hooks\r\n(jemalloc 5.x does not support it)\r\n\r\nTesting:\r\n- [x] `start_test test/release/examples` with `CHPL_MEM=jemalloc` and\r\n`CHPL_TARGET_JEMALLOC` on Mac\r\n\r\nNotes:\r\n- Builds on top of https://github.com/chapel-lang/chapel/pull/25145\r\n- Fully unblocks https://github.com/chapel-lang/chapel/issues/24931 and\r\nhttps://github.com/chapel-lang/chapel/issues/24655, and enables homebrew\r\nto use the preferred config\r\n(https://github.com/chapel-lang/chapel/pull/25148)\r\n- Uses diffs from https://github.com/chapel-lang/chapel/pull/23409\r\n\r\n[Reviewed by @jhh67]","shortMessageHtmlLink":"Patch build system to allow building with CHPL_TARGET_JEMALLOC=system ("}},{"before":"9b6d9f1b6175870e3e2152f11a5dca67fd2fcfc8","after":"6496bea150d2a9c294f0a14735b623b4b94d479b","ref":"refs/heads/main","pushedAt":"2024-06-06T21:00:24.000Z","pushType":"pr_merge","commitsCount":21,"pusher":{"login":"DanilaFe","name":"Daniel","path":"/DanilaFe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4361282?s=80&v=4"},"commit":{"message":"dyno: changes to improve `--dyno-scope-bundled` performance (#25090)\n\nThis PR makes a number of changes that serve to improve the performance\r\nof `chpl` under `--dyno-scope-bundled.` They are as follows:\r\n\r\n* Disable query tracing. This is currently done system-wide while this\r\nPR is a draft, but a merge-ready version of this PR should have some\r\nkind of build switch or configuration to disable query tracing when a\r\nrelease build is being created.\r\n* Deliberately leak the memory associated with the Dyno context. This\r\none might be a bit controversial. The Dyno context's destruct -- thanks\r\nto all the memoized queries -- takes 0.1s to run. We only ever `delete`\r\nit on `clean_exit`, which means that the OS is about to reclaim memory\r\nanyway.\r\n* Reduce usage of `parentAst` in identifier lookups (specifically, the\r\nlogic that checks for, and silences, warnings about nodes-in-calls\r\n(which are handled by call resolution). We already track if we're in the\r\ncalled expression of a call, so we can re-use that. This saves the --\r\ncostly -- `parentAst` lookups.\r\n* Adjust logic in `validateAndSetToId` to use 'ID::parentSymbolId`\r\ninstead of the `idToParentId` query; the former does not require any AST\r\nknowledge, which also reduces the reliance on `idToAst`. It also helps\r\nskip some intermediate (non-scope) IDs while traversing.\r\n* Slightly re-order the checks in `astToAttributeGroup` to avoid as many\r\n`parentAst` lookups as possible.\r\n* Remove the logic that looks up `super` in scopes, since `super` is a\r\nreserved keyword with special meaning.\r\n* In certain eligible conditions, skip checking scopes in favor of\r\nreturning a (\"found\") ID() when looking up a well-known reserved name.\r\nE.g., looking up `int` cannot result in matches anywhere but the global\r\nscope (since `int` is a reserved keyword), so there's no reason to look\r\nit up in user modules.\r\n* Rewrite the computation for transitively finding method receivers from\r\ninheritance chains to be recursive and re-use previous results.\r\n\r\nThe net result is that the following invocation:\r\n\r\n```\r\nchpl --no-compiler-driver --dyno-scope-bundled examples/hello.chpl --stop-after-pass=parseAndConvertUast \r\n```\r\n\r\nWent from 1.3 seconds to 0.9 seconds on my local machine. This is a step\r\nforward, but is far from the 0.4s of the `--no-dyno-scope-resolve\r\n--stop-after-pass=scopeResolve` version of this command.\r\n\r\n## Other notes\r\n* Unsurprisingly, most of the time (900ms / 1.3s of the original\r\nexecution) is spent in `doLookupInScope`\r\n* From there, `scopeResolveFunction` takes 75% of the total execution\r\ntime of `parseAndConvertUast`\r\n* According to query timings, the `resolveVisibilityStmtsQuery` is still\r\namong the slowest self-queries we have (i.e., excluding child execution\r\ntimes). This might be unsurprising since it runs the non-query\r\n`doLookupInScope`.\r\n* Noticed some minor overheads from constructing QueryMapResults. Tried\r\nswitching them to use small pointer sets and small vectors, but that\r\nhurt instead of helping.\r\n\r\nAt this point, it seems like we might need some sort of lookup cache,\r\nsince identifiers are looked up within modules many times. This is\r\ncomplicated by the fact that instead of \"checked module for X\", we have\r\n\"checked module for X given the following filter flags\", which makes it\r\nharder to detect when we can be sure that a symbol doesn't exist in a\r\nscope.\r\n\r\nReviewed by @mppf -- thanks!\r\n\r\n## Testing\r\n- [x] paratest","shortMessageHtmlLink":"dyno: changes to improve --dyno-scope-bundled performance (#25090)"}},{"before":"8aa8f6e620da756a44b7cc72e1414d86f41b9cb2","after":"9b6d9f1b6175870e3e2152f11a5dca67fd2fcfc8","ref":"refs/heads/main","pushedAt":"2024-06-06T16:52:51.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"bradcray","name":"Brad Chamberlain","path":"/bradcray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7536222?s=80&v=4"},"commit":{"message":"Skip new test in multilocale compilations (#25180)\n\n[trivial, not reviewed]\r\n\r\nI had forgotten that we generate an error when passing arrays by 'ref'\r\nto 'export' proces in multilocale programs, and didn't think to test\r\nthis new test in that setting. This skips it in those settings since the\r\npoint of the test is independent of that question.","shortMessageHtmlLink":"Skip new test in multilocale compilations (#25180)"}},{"before":"a7aecca6a031e0f34b966ad9cd0446153acea73b","after":"8aa8f6e620da756a44b7cc72e1414d86f41b9cb2","ref":"refs/heads/main","pushedAt":"2024-06-05T21:00:14.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jabraham17","name":"Jade Abraham","path":"/jabraham17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15747900?s=80&v=4"},"commit":{"message":"Add perf annotation for `unset CHPL_TARGET_CPU` (#25176)\n\nAdds an perf annotation for a change to the perf testing infrastructure\r\nfor chapcs, #25161\r\n\r\n[Reviewed by @stonea]","shortMessageHtmlLink":"Add perf annotation for unset CHPL_TARGET_CPU (#25176)"}},{"before":"65c9158c7b1c825e4c847cb8d0836f337bb34373","after":"a7aecca6a031e0f34b966ad9cd0446153acea73b","ref":"refs/heads/main","pushedAt":"2024-06-05T20:27:54.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jabraham17","name":"Jade Abraham","path":"/jabraham17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15747900?s=80&v=4"},"commit":{"message":"Add missing parts of packaging scripts (#25166)\n\nThis PR adds a few missing parts to some of the packaging scripts used\r\nto build OS packages.\r\n\r\nThese are currently error-prone, as there is a lot of duplicated code\r\nbetween scripts. This PR serves as a stop gap measure until [this PR is\r\nready](https://github.com/chapel-lang/chapel/pull/25076).\r\n\r\n[Reviewed by @jhh67]","shortMessageHtmlLink":"Add missing parts of packaging scripts (#25166)"}},{"before":"37927d846f917e104b4b98cef4e81d70b2de6fb7","after":"65c9158c7b1c825e4c847cb8d0836f337bb34373","ref":"refs/heads/main","pushedAt":"2024-06-05T20:07:47.000Z","pushType":"pr_merge","commitsCount":13,"pusher":{"login":"DanilaFe","name":"Daniel","path":"/DanilaFe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4361282?s=80&v=4"},"commit":{"message":"Add `chpl-language-server` testing to `nightly` (#25163)\n\nThis PR builds on top of\r\nhttps://github.com/chapel-lang/chapel/pull/25159. It adds support for\r\nrunning `make test-cls`, which runs end-to-end tests for the Chapel\r\nlanguage server (CLS). Closes\r\nhttps://github.com/chapel-lang/chapel/issues/25023.\r\n\r\nThis PR does the following:\r\n* Makes sure that `test-chpl-language-server` actually gets the language\r\nserver build\r\n* Adds an ordering dependency between the `chapel-py-env` and\r\n`cls-test-env` to make sure both of them don't try building a venv at\r\nthe same time.\r\n* Disables `--upgrade` when building the `cls-test-venv`, which\r\notherwise causes it to override the sphinx binary.\r\n\r\nReviewed by @arezaii -- thanks!\r\n\r\n## Testing\r\n- [x] `nightly -debug` on local machine with a clean checkout","shortMessageHtmlLink":"Add chpl-language-server testing to nightly (#25163)"}},{"before":"1faec1e0d89610e78811e3f1ae2cecf7c476dccc","after":"37927d846f917e104b4b98cef4e81d70b2de6fb7","ref":"refs/heads/main","pushedAt":"2024-06-05T19:21:04.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"DanilaFe","name":"Daniel","path":"/DanilaFe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4361282?s=80&v=4"},"commit":{"message":"Fix symbol-not-found errors when checking imports due to module order (#25173)\n\nCloses https://github.com/chapel-lang/chapel/issues/25172.\r\n\r\nThe problem is simple; it's due to the order in which modules are\r\nsearched. It's possible to reproduce it in a single file, and the bug\r\neffectively has to do with the `public use` having not been resolved at\r\nthe time that a module is searched. Here' a reproducer based on Shreyas'\r\noriginal example.\r\n\r\n```Chapel\r\nmodule A {\r\n proc main() {\r\n use C;\r\n import B.{foo};\r\n foo();\r\n }\r\n}\r\nmodule B {\r\n public use C;\r\n}\r\n\r\nmodule C {\r\n proc foo() {\r\n writeln(\"Just chilling\");\r\n }\r\n}\r\n```\r\n\r\nProduces\r\n\r\n```\r\nshreyasrepro.chpl:2: In function 'main':\r\nshreyasrepro.chpl:4: error: Bad identifier, no known 'foo' defined in 'B'\r\n```\r\n\r\nThe sequence is as follows:\r\n\r\n1. A, B, C are constructed and added to the global module list, in that\r\norder.\r\n2. A is scope-resolved. To verify the import from B, it needs to look\r\nfor fields in variables scope and use statements.\r\n3. Because B hasn't been scope-resolved yet, its use statements haven't\r\nbeen processed, so the lookup fails.\r\n\r\nThe solution I think is to make use of the logic that @lydia-duncan\r\nintroduced in https://github.com/chapel-lang/chapel/pull/16021.\r\n\r\nReviewed by @lydia-duncan -- thanks!\r\n\r\n## Testing\r\n- [x] paratest","shortMessageHtmlLink":"Fix symbol-not-found errors when checking imports due to module order ("}},{"before":"ddf6acb6728eaffbfcbcd8468a6ce6bc82d76324","after":"1faec1e0d89610e78811e3f1ae2cecf7c476dccc","ref":"refs/heads/main","pushedAt":"2024-06-05T18:17:49.000Z","pushType":"pr_merge","commitsCount":5,"pusher":{"login":"DanilaFe","name":"Daniel","path":"/DanilaFe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4361282?s=80&v=4"},"commit":{"message":"Add support for chplcheck testing to `nightly` (#25159)\n\nCloses https://github.com/chapel-lang/chapel/issues/24782 (except for\r\nthe part about adding a new Jenkins job)\r\n\r\nThis PR builds on top of\r\nhttps://github.com/chapel-lang/chapel/pull/25149 to add support for\r\n`chplcheck` testing. It does so by adding a new flag, `chplcheck`, which\r\nis used to trigger `make chplcheck` during the build. As a consequence\r\nof `make chplcheck`, the Python bindings for Dyno are built. This\r\nenables existing tests in `test/chplcheck`, because their `SKIPIF`\r\nexplicitly tries loading the `chapel-py` package from the virtual\r\nenvironment.\r\n\r\nThis PR depends on #25149 because it relies on the fixes in that PR to\r\nsend emails on failure.\r\n\r\nReviewed by @arezaii -- thanks!","shortMessageHtmlLink":"Add support for chplcheck testing to nightly (#25159)"}},{"before":"11200f68fd8d146381221f4024cb169b3cec56f7","after":"ddf6acb6728eaffbfcbcd8468a6ce6bc82d76324","ref":"refs/heads/main","pushedAt":"2024-06-05T18:00:43.000Z","pushType":"pr_merge","commitsCount":11,"pusher":{"login":"DanilaFe","name":"Daniel","path":"/DanilaFe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4361282?s=80&v=4"},"commit":{"message":"Improve error handling for underscores in odd places (#25168)\n\nCloses https://github.com/chapel-lang/chapel/issues/25002. Closes\r\nhttps://github.com/chapel-lang/chapel/issues/25001.\r\n\r\nThis PR takes exactly the steps I outlined in #25002. Specifically, it:\r\n\r\n\r\n1. Allows `_` to make it from the parser to the AST, even in\r\nnon-declaration contexts like `var x = _`.\r\n2. Adds a post-parse check to detect `_` and warn about it, _except_ in\r\nplaces where it's allowed\r\n3. Makes that post-parse check have a nicer error message :)\r\n\r\nWhile there, it improves the error message for `for` in particular,\r\nwhere it explains what the user should do if they don't care about their\r\nidentifier. Thus, one gets:\r\n\r\n\"Screen\r\n\r\nThat last line is specific to indexable loops.\r\n\r\nReviewed by @vasslitvinov -- thanks!\r\n\r\n# Testing\r\n- [x] paratest","shortMessageHtmlLink":"Improve error handling for underscores in odd places (#25168)"}},{"before":"44fafd79b61a1bdeccd8fff19312bb1252de1819","after":"11200f68fd8d146381221f4024cb169b3cec56f7","ref":"refs/heads/main","pushedAt":"2024-06-05T17:27:33.000Z","pushType":"pr_merge","commitsCount":6,"pusher":{"login":"jabraham17","name":"Jade Abraham","path":"/jabraham17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15747900?s=80&v=4"},"commit":{"message":"Improve chapel-py errors when python versions are mismatched (#25126)\n\nThis PR significantly improves the errors users get when they try and\r\nuse a chapel-py based tool with mismatched python versions.\r\n\r\nThis PR splits the chpldeps install directory into general dependencies\r\nand python version specific dependencies. This allows the\r\n`run-in-venv-with-python-bindings` script to be able to easily\r\ndistinguish python versions. This also allows builds for multiple python\r\nversions to live side-by-side, without needing to `make clobber`.\r\n\r\nResolves https://github.com/chapel-lang/chapel/issues/24892\r\n\r\nTested locally, switching between python3.11 and python3.12\r\n\r\n[Reviewed by @mppf and @DanilaFe]","shortMessageHtmlLink":"Improve chapel-py errors when python versions are mismatched (#25126)"}},{"before":"d9d411a27ccd2e2475b64cf5143b160d98600d11","after":"44fafd79b61a1bdeccd8fff19312bb1252de1819","ref":"refs/heads/main","pushedAt":"2024-06-05T17:27:13.000Z","pushType":"pr_merge","commitsCount":5,"pusher":{"login":"jabraham17","name":"Jade Abraham","path":"/jabraham17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15747900?s=80&v=4"},"commit":{"message":"Fix CLS bugs bundle (#25165)\n\nThis PR fixes several CLS issues as a bundle, as they are all small\r\nchanges\r\n\r\nBugs fixed:\r\n- Dead code for `if; else if; else` was not displayed correctly\r\n- Errors like \"Cannot establish type for call expression\" that have no\r\ncustom error type displayed strangely\r\n\r\n[Reviewed by @DanilaFe]","shortMessageHtmlLink":"Fix CLS bugs bundle (#25165)"}},{"before":"5304cac3a426866ac40179be9569257f6053053e","after":"d9d411a27ccd2e2475b64cf5143b160d98600d11","ref":"refs/heads/main","pushedAt":"2024-06-05T17:25:29.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"jeremiah-corrado","name":null,"path":"/jeremiah-corrado","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/62707311?s=80&v=4"},"commit":{"message":"Add special handling for map.parSafe and set.parSafe unstable warnings (#25167)\n\nAdd special logic to the compiler to prevent the following `map` and\r\n`set` initializations from emitting unstable warnings from their\r\n`parSafe` field:\r\n\r\n```chpl\r\nvar m: map(int, int);\r\nvar s: set(int);\r\n```\r\n\r\nAlso add logic to emit unstable warnings when specifying the `map` or\r\n`set` types with a value for `parSafe`:\r\n```chpl\r\ntype mt = map(int, int, false);\r\ntype st = set(int, parSafe=true);\r\n```\r\n\r\n- [x] local paratest\r\n- [x] gasnet paratest\r\n\r\n[ reviewed by @benharsh ] - thanks!","shortMessageHtmlLink":"Add special handling for map.parSafe and set.parSafe unstable warnings ("}},{"before":"7fb1585d82274c82910e0c0749ebc2ca5185ebad","after":"5304cac3a426866ac40179be9569257f6053053e","ref":"refs/heads/main","pushedAt":"2024-06-05T17:14:47.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"bradcray","name":"Brad Chamberlain","path":"/bradcray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7536222?s=80&v=4"},"commit":{"message":"Add a missing 'override' (#25170)\n\n[trivial, not reviewed]\r\n\r\nWhile sketching out some code involving 'export' declarations, I ran\r\ninto an error pointing out that an internal method was missing its\r\noverride keyword, which was accurate. Fixing that here.","shortMessageHtmlLink":"Add a missing 'override' (#25170)"}},{"before":"c01a20e8ea5b685542e2db68c9f6de85ac348a8c","after":"7fb1585d82274c82910e0c0749ebc2ca5185ebad","ref":"refs/heads/main","pushedAt":"2024-06-05T00:10:49.000Z","pushType":"pr_merge","commitsCount":6,"pusher":{"login":"DanilaFe","name":"Daniel","path":"/DanilaFe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4361282?s=80&v=4"},"commit":{"message":"dyno: fix string -> bytes cast, disallow casts that are disallowed by production. (#25164)\n\nCloses https://github.com/chapel-lang/chapel/issues/25154.\r\n\r\nIt turns out there's a case missing for casting from {strings, bytes} to\r\n{strings, bytes}. Strictly speaking, only string -> string and string ->\r\nbytes casts are allowed, but all of them would be implemented the same\r\nway (by just copying the string data). This is [how the production\r\ncompiler does\r\nit](https://github.com/DanilaFe/chapel/blob/14f2f0b5b58cf453517a6315747d7a2c8241c6d9/compiler/resolution/preFold.cpp#L2697-L2720).\r\n\r\nTo match production's \"invalid cast\" errors, this PR adds some logic\r\nthat matches that of `preFold.cpp`, which just checks the from- and to-\r\ntypes of the cast, and doesn't attempt casting if the pair is not\r\nallowed.\r\n\r\nOf course, the PR also adds tests on top of that.\r\n\r\nThis fixes the hover-on-string bug, too.\r\n\r\n\"Screen\r\n\r\nReviewed by @benharsh -- thanks!\r\n\r\n## Testing\r\n- [x] paratest","shortMessageHtmlLink":"dyno: fix string -> bytes cast, disallow casts that are disallowed by…"}},{"before":"3d02ccb45c75abe76dd1719878986c271d5c50ac","after":"c01a20e8ea5b685542e2db68c9f6de85ac348a8c","ref":"refs/heads/main","pushedAt":"2024-06-04T21:17:50.000Z","pushType":"pr_merge","commitsCount":5,"pusher":{"login":"DanilaFe","name":"Daniel","path":"/DanilaFe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4361282?s=80&v=4"},"commit":{"message":"BTR: catch non-fatal, but failed `mysystem` commands in `nightly` script (#25149)\n\nI noticed a relatively significant problem in our `nightly` script. We\r\nhave two variables in `mysystem`: one that configures whether failing\r\nthe command should be fatal, and one that configures whether an email\r\nshould be sent. Most commands are either non-fatal non-email, or fatal\r\nand send-email. However, some commands (e.g., `make spectests`, `rsync`)\r\nare non-fatal send-email. Despite this, the code for sending an email\r\n(or doing any kind of error tracking) is lacking.\r\n\r\n```Perl\r\nsub mysystem {\r\n $command = $_[0];\r\n $errorname = $_[1];\r\n $fatal = $_[2];\r\n $mailmsg = $_[3]; # !!!! Not used anywhere?\r\n $showcommand = $_[4];\r\n\r\n if ($showcommand) { print \"Executing $command\\n\"; }\r\n my $status = system($command);\r\n if ($status != 0) {\r\n $endtime = localtime;\r\n $somethingfailed = 1;\r\n if($status != -1) {$status = $status / 256; }\r\n print \"Error $errorname: $status\\n\";\r\n if ($fatal != 0) {\r\n exit 1;\r\n }\r\n }\r\n $status;\r\n}\r\n```\r\n\r\nThus, we miss notifications for various errors and would, on `main`,\r\nalso miss notifying the triager if a hypothetical `make chplcheck`\r\nfails. This PR addresses this by storing the non-fatal, do-email\r\ncommands that fail into a new file, `mysystemlog.txt`, and adding its\r\ncontents to the existing emailing functionality.\r\n\r\n# Implementation\r\nCurrently, the `nightly` script itself doesn't send emails; only our\r\nJenkins runner does this. The nightly script signals to Jenkins that an\r\nemail should be sent by creating an `email.txt` file. If this file is\r\npresent, Jenkins sends it. Thus, to signal existing errors from\r\n`mysystem`, we need to keep track of them and include them while\r\ngenerating `email.txt`. To do this, this PR adds a new file,\r\n`mysystemlog.txt` (specialized based on the nightly configuration name).\r\nIt is given as an argument to `mysystem`, causing it to write failures\r\nto that file.\r\n\r\nFundamentally, the nature of `mysystem`'s error reporting is tri-state.\r\nThere's no \"fatal, do not email\" calls. As a result, it's not\r\nwell-represented using the two boolean variables I mentioned above. As a\r\nresult of that, and of the need to path in a path to write errors to,\r\nI've switched it to accepting only one argument: a string that's either\r\na path (for non-fatal, email) or a special value for fatal and\r\nnon-fatal-non-email configs. As a result, the calls now look like this:\r\n\r\n```Perl\r\n# Non-fatal, no email\r\nmysystem(\"cd $chplhomedir && $make -j$num_procs $make_vars_opt chpldoc\", \"make chapel chpldoc\", $ignoreErrors);\r\n\r\n# Fatal\r\nmysystem(\"cd $chplhomedir && $make -j$num_procs $make_vars_opt compiler\", \"making chapel compiler\", $exitOnError);\r\n\r\n# Email on error\r\nmysystem(\"cd $chplhomedir && $make spectests\", \"making spec tests\", $emailOnError);\r\n```\r\n\r\nIt reads nicer than `0, 1` arguments, and communicates more information.\r\n\r\nFrom here, I adjusted the emailer script to check for the existence of\r\nthe error file, and send email if so.\r\n\r\nReviewed by @tzinsky -- thanks!","shortMessageHtmlLink":"BTR: catch non-fatal, but failed mysystem commands in nightly scr…"}},{"before":"23373c0a09b1668b6d624ce41319944faacc9f97","after":"3d02ccb45c75abe76dd1719878986c271d5c50ac","ref":"refs/heads/main","pushedAt":"2024-06-04T16:36:04.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"jabraham17","name":"Jade Abraham","path":"/jabraham17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15747900?s=80&v=4"},"commit":{"message":"Upgrade bundled OFI to 1.21 (#25041)\n\nUpgrades the bundled libfabric (OFI) to the latest version, 1.21\r\n\r\nTesting\r\n- [x] build with CHPL_COMM=ofi and CHPL_LIBFABRIC=bundled on MacOS\r\n- [x] build with CHPL_COMM=ofi and CHPL_LIBFABRIC=bundled on Ubuntu22\r\n- [x] build with CHPL_COMM=ofi and CHPL_LIBFABRIC=bundled on RHEL\r\n- [x] build with CHPL_COMM=ofi and CHPL_LIBFABRIC=bundled on\r\nAmazonLinux2\r\n- [x] `start_test release/examples` with EFA\r\n- [x] `start_test release/examples` with TCP\r\n- [x] Tested that trying to use the bundled OFI on a cray system gives\r\nthe appropriate warning\r\n\r\n[Reviewed by @jhh67]","shortMessageHtmlLink":"Upgrade bundled OFI to 1.21 (#25041)"}},{"before":"a459889a2034b9c893b63f8615eb39f11f75f5dd","after":"23373c0a09b1668b6d624ce41319944faacc9f97","ref":"refs/heads/main","pushedAt":"2024-06-03T22:11:45.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"jabraham17","name":"Jade Abraham","path":"/jabraham17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15747900?s=80&v=4"},"commit":{"message":"Fix scripts for perf tests (#25161)\n\nThis fixes an issue without `util/cron/common-perf.bash` where\r\n`comm-fast.bash` was never being loaded into the environment, meaning\r\nthat `unset CHPL_TARGET_CPU` was never being run. This was causing the\r\nconfusing behavior of nightly tests running with `CHPL_TARGET_CPU=none`\r\nwhen they should not have.\r\n\r\nThe root cause was calling `$(cd $(dirname ${BASH_SOURCE[0]}) ; pwd)`\r\ntwice in the same `.bash` file, instead of having `CWD=$(cd $(dirname\r\n${BASH_SOURCE[0]}) ; pwd)`.\r\n\r\nIn an effort to future proof other test scripts, I also changed\r\n`common-quickstart` even though it wasn't currently an issue.\r\n\r\n[Reviewed by @bradcray]","shortMessageHtmlLink":"Fix scripts for perf tests (#25161)"}},{"before":"ff213cc1a2462374375bc35086985f790807a76e","after":"a459889a2034b9c893b63f8615eb39f11f75f5dd","ref":"refs/heads/main","pushedAt":"2024-06-03T21:01:29.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jabraham17","name":"Jade Abraham","path":"/jabraham17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15747900?s=80&v=4"},"commit":{"message":"Fix typo in skipif (#25160)\n\nFix typo in skipif\r\n\r\n[Reviewed by @brandon-neth]","shortMessageHtmlLink":"Fix typo in skipif (#25160)"}},{"before":"10c9daae5add133beb0bc3051014fd8c5e8652f3","after":"ff213cc1a2462374375bc35086985f790807a76e","ref":"refs/heads/main","pushedAt":"2024-06-03T19:06:16.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"lydia-duncan","name":"Lydia Duncan","path":"/lydia-duncan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2454710?s=80&v=4"},"commit":{"message":"Fix a sporadic output problem in the python interoperability begin test (#25157)\n\n[reviewed by @dlongnecke-cray]\r\n\r\nResolves Cray/chapel-private#6347\r\n\r\nThough rare, we were able to occasionally see the first `begin` call\r\nexecute after a later one. The order of their output is not important,\r\njust that the call completed at all before the end of the program (which\r\nit should). With that in mind, split the portions that are vulnerable to\r\nshowing they're in a different order to their own test files.\r\n\r\nTechnically, they could have just been moved into a single test file\r\ninstead of each to a separate one, but it didn't seem important one way\r\nor the other.\r\n\r\nTested locally multiple times to attempt to trigger any remaining\r\ninstabilities (though I think there shouldn't be)","shortMessageHtmlLink":"Fix a sporadic output problem in the python interoperability begin te…"}},{"before":"ee822b6b73438c2bd7230662e55101f7a7f7a112","after":"10c9daae5add133beb0bc3051014fd8c5e8652f3","ref":"refs/heads/main","pushedAt":"2024-06-03T17:54:45.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jabraham17","name":"Jade Abraham","path":"/jabraham17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15747900?s=80&v=4"},"commit":{"message":"Fix how Dyno prints param booleans (#25156)\n\nFix how Dyno prints booleans, prior to this PR they were printed as `0`\r\nand `1` for `false` and `true`, respectively.\r\n\r\nThis effects how chpl-language-server prints param values.\r\n\r\n```chapel\r\nrecord R {\r\n param P: bool;\r\n}\r\n// prior to this PR\r\nvar a /*: R(1)*/ = new R(true);\r\n// after this PR\r\nvar b /*: R(true)*/ = new R(true);\r\n```\r\n\r\nNote that this makes dyno printing match the production compiler.\r\n\r\n```chapel\r\ncompilerWarning(b.type:string); // prints 'R(true)'\r\n\r\nparam p = false;\r\ncompilerWarning(p:string); // prints 'false'\r\n```\r\n\r\nTesting\r\n- `make test-cls`\r\n\r\n[Reviewed by @DanilaFe]","shortMessageHtmlLink":"Fix how Dyno prints param booleans (#25156)"}},{"before":"c03fd7c6272a88b469bf9b0ff3b0f5c2bd339667","after":"ee822b6b73438c2bd7230662e55101f7a7f7a112","ref":"refs/heads/main","pushedAt":"2024-06-03T16:53:51.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"jabraham17","name":"Jade Abraham","path":"/jabraham17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15747900?s=80&v=4"},"commit":{"message":"Patch build system to allow building with CHPL_HWLOC=system (#25145)\n\nThis PR patches some of our build scripts to work with\r\n`CHPL_HWLOC=system`. By default, we will still continue to default to\r\n`CHPL_HWLOC=bundled` with qthreads, but users can opt in to using a\r\nsystem install by explicitly setting `CHPL_HWLOC=system`\r\n\r\nThis is a step in the right direction to allow us to use the preferred\r\nChapel configuration for Macs in homebrew.\r\n\r\nTesting:\r\n- [x] `start_test test/release/examples` with `CHPL_HWLOC=system` on Mac\r\n\r\n\r\nNotes:\r\n- Partially unblocks https://github.com/chapel-lang/chapel/issues/24931\r\nand https://github.com/chapel-lang/chapel/issues/24655\r\n- Used https://github.com/chapel-lang/chapel/pull/23409 as a starting\r\npoint\r\n\r\n[Reviewed by @jhh67]","shortMessageHtmlLink":"Patch build system to allow building with CHPL_HWLOC=system (#25145)"}},{"before":"23cf56e59be565c150176f0c96f4e3188c0e9ec2","after":"c03fd7c6272a88b469bf9b0ff3b0f5c2bd339667","ref":"refs/heads/main","pushedAt":"2024-06-03T16:41:17.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jabraham17","name":"Jade Abraham","path":"/jabraham17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15747900?s=80&v=4"},"commit":{"message":"Switch perf playground to pass manager improvements branch (#25141)\n\nSwitch perf playground to test some changes to the LLVM pass manager for\r\nLLVM 16+\r\n\r\n[Not reviewed - trivial]","shortMessageHtmlLink":"Switch perf playground to pass manager improvements branch (#25141)"}},{"before":"d18b61fb1ec3dedfd2137418ca2db6efd5c685e9","after":"23cf56e59be565c150176f0c96f4e3188c0e9ec2","ref":"refs/heads/main","pushedAt":"2024-06-03T15:09:54.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jabraham17","name":"Jade Abraham","path":"/jabraham17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15747900?s=80&v=4"},"commit":{"message":"Prevent misuse of `resolveFunction` in chpl-language-server (#25155)\n\nFixes an issue where chpl-language-server would incorrectly call\r\n`resolveFunction` on a non-function by adding a missing check in\r\n`_search_instantiations`\r\n\r\nTested locally\r\n\r\n[Reviewed by @DanilaFe]","shortMessageHtmlLink":"Prevent misuse of resolveFunction in chpl-language-server (#25155)"}},{"before":"e8181cd4bf104d76bd680fd19a5fe58450c3138b","after":"d18b61fb1ec3dedfd2137418ca2db6efd5c685e9","ref":"refs/heads/main","pushedAt":"2024-06-03T15:09:31.000Z","pushType":"pr_merge","commitsCount":6,"pusher":{"login":"jabraham17","name":"Jade Abraham","path":"/jabraham17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15747900?s=80&v=4"},"commit":{"message":"Prevent chpl-language-server from providing type inserts for loops (#25151)\n\nThis fixes an issue where `chpl-language-server` would add insertable\r\ntype inlays for loops, even though thats not valid syntax. If a user\r\ntried to insert the type inlay, they would then get a syntax error. This\r\nPR prevents users from making that mistake by removing the insertable\r\ninlay. The inlay still shows, it is just not insertable.\r\n\r\nPrior to this PR, users woild be able to insert the type as shown below\r\n![Screenshot 2024-05-31 at 3 11 56\r\nPM](https://github.com/chapel-lang/chapel/assets/15747900/135615e7-78c0-4a0b-93a3-6b39548ed304)\r\n\r\nInserting this type creates the following error\r\n![Screenshot 2024-05-31 at 3 13 11\r\nPM](https://github.com/chapel-lang/chapel/assets/15747900/e3a1256d-07b4-4dbb-beb1-e6c87ac17ae5)\r\n\r\nThis PR prevents this situation from occurring all together.\r\n\r\nTested locally with `make test-cls`\r\n\r\n[Reviewed by @DanilaFe]","shortMessageHtmlLink":"Prevent chpl-language-server from providing type inserts for loops (#…"}},{"before":"5197efa19c3a76afd016f51c9a14a87465d5a4d9","after":"e8181cd4bf104d76bd680fd19a5fe58450c3138b","ref":"refs/heads/main","pushedAt":"2024-05-31T20:13:45.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"bradcray","name":"Brad Chamberlain","path":"/bradcray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7536222?s=80&v=4"},"commit":{"message":"Fix leak in new GMP-related test added in #25124 (#25146)\n\n[trivial, not reviewed—thanks to @lydia-duncan for pointing it out]\r\n\r\nI caught all the manual frees that my new GMP tests needed apart from\r\none... :'(","shortMessageHtmlLink":"Fix leak in new GMP-related test added in #25124 (#25146)"}},{"before":"8d03631cf3b56d140548be9a84e8d8c5ade965d9","after":"5197efa19c3a76afd016f51c9a14a87465d5a4d9","ref":"refs/heads/main","pushedAt":"2024-05-31T04:55:43.000Z","pushType":"pr_merge","commitsCount":5,"pusher":{"login":"e-kayrakli","name":"Engin Kayraklioglu","path":"/e-kayrakli","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4141670?s=80&v=4"},"commit":{"message":"Small fixes in GPU runtime (#25144)\n\nWhile preparing for my talk, I bumped into two issues:\r\n\r\n- `unordered` get/put weren't defined for device. This caused\r\ncompilation issues. Note that we never call those similar to base\r\nget/put, but we just need definitions to compile with.\r\n- `chpl_gpu_mem_realloc` was causing trouble in cpu-as-device mode, I\r\nbelieve this might be the first time we tried to create a rank-change\r\nview in this mode. The issue was a misplaced assertion. This PR moves it\r\naround.\r\n\r\n[Reviewed by @DanilaFe]\r\n\r\nTest:\r\n- [x] nvidia\r\n- [x] amd\r\n- [x] cpu\r\n- [x] nvidia+ofi on new tests","shortMessageHtmlLink":"Small fixes in GPU runtime (#25144)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEX6O55wA","startCursor":null,"endCursor":null}},"title":"Activity · chapel-lang/chapel"}