# Developers

**URL:** https://chapel.discourse.group/c/developers/7.md

[Latest](https://chapel.discourse.group/latest.md) · [Categories](https://chapel.discourse.group/categories.md)

---

## [About the Chapel Developers category](https://chapel.discourse.group/t/about-the-chapel-developers-category/40)

<div class="topic-metadata">

**Author:** [@bradcray](https://chapel.discourse.group/u/bradcray)\
**Replies:** 0

</div>

A category for discussing the implementation of the Chapel language—its compiler, runtime, and core library modules. Chapel developers, whether experienced or aspiring, can use this category to discuss language design, …

---

## [Cast real(w) to uint(w)](https://chapel.discourse.group/t/cast-real-w-to-uint-w/50196)

<div class="topic-metadata">

**Author:** [@damianmoz](https://chapel.discourse.group/u/damianmoz)\
**Replies:** 16\
**Last updated:** [June 10, 2026, 9:38am UTC](https://chapel.discourse.group/t/cast-real-w-to-uint-w/50196 "2026-06-10T09:38:48Z")

</div>

Where is the code for implementing the conversion of the (obviously signed) floating point number to an unsigned integer. I want to experiment with blocking such an operation mainly because it makes no sense mathematical…

---

## [Implementing New Operators](https://chapel.discourse.group/t/implementing-new-operators/30403)

<div class="topic-metadata">

**Author:** [@damianmoz](https://chapel.discourse.group/u/damianmoz)\
**Replies:** 3\
**Last updated:** [May 15, 2026, 2:17am UTC](https://chapel.discourse.group/t/implementing-new-operators/30403 "2026-05-15T02:17:59Z")

</div>

Some time ago, maybe 1.18.0, as an alternative to the standard range syntax, I implemented i .. j :: k and I think i .. j .:. k to get a bit closer to the Fortran syntax for a range i : j : k and the Fortran user s…

---

## [Chapel GPU PGAS Support](https://chapel.discourse.group/t/chapel-gpu-pgas-support/42394)

<div class="topic-metadata">

**Author:** [@xl-tian](https://chapel.discourse.group/u/xl-tian)\
**Replies:** 3\
**Last updated:** [April 25, 2025, 10:05pm UTC](https://chapel.discourse.group/t/chapel-gpu-pgas-support/42394 "2025-04-25T22:05:02Z")

</div>

In the Chapel Introduction to GPU Programming blog, it says: To make an array accessible from code that runs on the GPU (such as our foreach loop), the array must live on the GPU locale. In the future, Chapel aims to m…

---

## [Async IO](https://chapel.discourse.group/t/async-io/42014)

<div class="topic-metadata">

**Author:** [@rivalq](https://chapel.discourse.group/u/rivalq)\
**Replies:** 8\
**Last updated:** [April 7, 2025, 1:49pm UTC](https://chapel.discourse.group/t/async-io/42014 "2025-04-07T13:49:17Z")

</div>

Hii, Do we have AsyncIO / Event loop (just like boost io context) in chapel Usecase is using tcp sockets in async manner, don’t want to use multi-threading.

---

## [On \`lvalue\` definition](https://chapel.discourse.group/t/on-lvalue-definition/31337)

<div class="topic-metadata">

**Author:** [@lucaferranti](https://chapel.discourse.group/u/lucaferranti)\
**Replies:** 2\
**Last updated:** [March 10, 2024, 8:25am UTC](https://chapel.discourse.group/t/on-lvalue-definition/31337 "2024-03-10T08:25:24Z")

</div>

I am going through the chapel grammar rules and I noticed lvalue-expression: variable-expression member-access-expression call-expression parenthesized-expression however the last is defined as parenthesized-e…

---

## [How does Chapel do its complex arithmetic](https://chapel.discourse.group/t/how-does-chapel-do-its-complex-arithmetic/30295)

<div class="topic-metadata">

**Author:** [@damianmoz](https://chapel.discourse.group/u/damianmoz)\
**Replies:** 5\
**Last updated:** [February 16, 2024, 4:14am UTC](https://chapel.discourse.group/t/how-does-chapel-do-its-complex-arithmetic/30295 "2024-02-16T04:14:29Z")

</div>

Does it do its own or does it map to some complex arithmetic handler in LLVM? Thx

---

## [Array Method: Swap and Find(if Sorted)](https://chapel.discourse.group/t/array-method-swap-and-find-if-sorted/30474)

<div class="topic-metadata">

**Author:** [@damianmoz](https://chapel.discourse.group/u/damianmoz)\
**Replies:** 9\
**Last updated:** [February 14, 2024, 3:49am UTC](https://chapel.discourse.group/t/array-method-swap-and-find-if-sorted/30474 "2024-02-14T03:49:29Z")

</div>

The swap operator, is it, or is it planned to bem vectorized (and/or) unrolled? I find myself regularly using a find within a sorted array (using a binary chop) with the same logic as Sort.InsertionSort.\_binarySearchFo…

---

## [Feature discrepancies between the vendors](https://chapel.discourse.group/t/feature-discrepancies-between-the-vendors/30482)

<div class="topic-metadata">

**Author:** [@AndrewMorgan](https://chapel.discourse.group/u/AndrewMorgan)\
**Replies:** 3\
**Last updated:** [February 5, 2024, 5:41pm UTC](https://chapel.discourse.group/t/feature-discrepancies-between-the-vendors/30482 "2024-02-05T17:41:20Z")

</div>

Hi developers, I am interested in learning more about how the GPU code generation works. More specifically I would like to know more about how you guys are tackling the problem of feature discrepancies between the vendo…

---

## [DimensionalDist2D no support for arbitrary dimension](https://chapel.discourse.group/t/dimensionaldist2d-no-support-for-arbitrary-dimension/29855)

<div class="topic-metadata">

**Author:** [@Anjiang](https://chapel.discourse.group/u/Anjiang)\
**Replies:** 2\
**Last updated:** [January 17, 2024, 6:44pm UTC](https://chapel.discourse.group/t/dimensionaldist2d-no-support-for-arbitrary-dimension/29855 "2024-01-17T18:44:28Z")

</div>

DimensionalDist2D — Chapel Documentation 1.28 seems to only support 2D array. I am interested in the design of such domain map interface, and I am curious about the reason why the most general nD mechanism is not impleme…

---

## [BlockDist's greedy algorithm for reshaping target locales](https://chapel.discourse.group/t/blockdists-greedy-algorithm-for-reshaping-target-locales/28716)

<div class="topic-metadata">

**Author:** [@Anjiang](https://chapel.discourse.group/u/Anjiang)\
**Replies:** 6\
**Last updated:** [December 6, 2023, 10:47pm UTC](https://chapel.discourse.group/t/blockdists-greedy-algorithm-for-reshaping-target-locales/28716 "2023-12-06T22:47:01Z")

</div>

BlockDist — Chapel Documentation 1.28 says the following: The rank of targetLocales must match the rank of the distribution, or be 1 . If the rank of targetLocales is 1 , a greedy heuristic is used to reshape the array …

---

## [\[GPU\] differing behavior between CPU and GPU when promoted-assigning a smaller array onto a larger](https://chapel.discourse.group/t/gpu-differing-behavior-between-cpu-and-gpu-when-promoted-assigning-a-smaller-array-onto-a-larger/22327)

<div class="topic-metadata">

**Author:** [@psath](https://chapel.discourse.group/u/psath)\
**Replies:** 8\
**Last updated:** [May 19, 2023, 6:26pm UTC](https://chapel.discourse.group/t/gpu-differing-behavior-between-cpu-and-gpu-when-promoted-assigning-a-smaller-array-onto-a-larger/22327 "2023-05-19T18:26:48Z")

</div>

This issue is related to: Error for assignment between arrays of different size disabled by --no-bounds-checks · Issue #10497 · chapel-lang/chapel · GitHub but I didn't feel like necro-posting was appropriate, as ultimat…

---

## [Mixing atomic add with non-atomic read? (and towards GPU atomics)](https://chapel.discourse.group/t/mixing-atomic-add-with-non-atomic-read-and-towards-gpu-atomics/21350)

<div class="topic-metadata">

**Author:** [@psath](https://chapel.discourse.group/u/psath)\
**Replies:** 5\
**Last updated:** [May 17, 2023, 3:57pm UTC](https://chapel.discourse.group/t/mixing-atomic-add-with-non-atomic-read-and-towards-gpu-atomics/21350 "2023-05-17T15:57:27Z")

</div>

I understand that GPUization doesn't yet support atomics. But, Here is a pattern from access-qualified GPU code that we would like to (eventually) GPU-ize via Chapel, that we've tried to model using Chapel's existing CP…

---

## [\[1.30\] Configuration and Link errors when building, on system where 1.29 previously worked](https://chapel.discourse.group/t/1-30-configuration-and-link-errors-when-building-on-system-where-1-29-previously-worked/20733)

<div class="topic-metadata">

**Author:** [@psath](https://chapel.discourse.group/u/psath)\
**Replies:** 7\
**Last updated:** [March 28, 2023, 2:56pm UTC](https://chapel.discourse.group/t/1-30-configuration-and-link-errors-when-building-on-system-where-1-29-previously-worked/20733 "2023-03-28T14:56:00Z")

</div>

I'm encountering some obscure issues getting up and running with the new 1.30 release. I'm using the exact same hand-written installer script (via configure) as I was with 1.29 (script and full log attached at bottom) an…

---

## [\[1.29.0\] Cannot deref() a c\_ptrTo(unmanaged class instance): comm-none: Assertion \`node==0\` failed](https://chapel.discourse.group/t/1-29-0-cannot-deref-a-c-ptrto-unmanaged-class-instance-comm-none-assertion-node-0-failed/19696)

<div class="topic-metadata">

**Author:** [@psath](https://chapel.discourse.group/u/psath)\
**Replies:** 8\
**Last updated:** [February 28, 2023, 8:06pm UTC](https://chapel.discourse.group/t/1-29-0-cannot-deref-a-c-ptrto-unmanaged-class-instance-comm-none-assertion-node-0-failed/19696 "2023-02-28T20:06:06Z")

</div>

Reproducer: use CTypes; class foo { var bar : int(64); }; proc main() { var myFoo = new unmanaged foo(); myFoo.bar = 8675309; writeln("myFoo: ", myFoo); var myPtr = c\_ptrTo(myFoo); writeln("myPtr: ", myPtr…

---

## [\[1.29.0\] Infinite Looping in splitInitMissingTypeError](https://chapel.discourse.group/t/1-29-0-infinite-looping-in-splitinitmissingtypeerror/19549)

<div class="topic-metadata">

**Author:** [@psath](https://chapel.discourse.group/u/psath)\
**Replies:** 13\
**Last updated:** [February 24, 2023, 8:07pm UTC](https://chapel.discourse.group/t/1-29-0-infinite-looping-in-splitinitmissingtypeerror/19549 "2023-02-24T20:07:41Z")

</div>

I'm still working on a reproducer and figuring out how to get chpl --gdb to work (something about the runtime not being built with debugging support despite the DEBUG=1 make flag) but I've run into a situation that manag…

---

## [Git History Rewrite and Steps to Adjust](https://chapel.discourse.group/t/git-history-rewrite-and-steps-to-adjust/19063)

<div class="topic-metadata">

**Author:** [@daniel.fedorin](https://chapel.discourse.group/u/daniel.fedorin)\
**Replies:** 3\
**Last updated:** [February 3, 2023, 11:17am UTC](https://chapel.discourse.group/t/git-history-rewrite-and-steps-to-adjust/19063 "2023-02-03T11:17:13Z")

</div>

Hello Chapel community, Yesterday, we rewrote a part of the Chapel language's git history, going back about 12 days. This is a change that may affect your existing local repositories of Chapel. Why? Five days ago, a …

---

## [Proposed changes to Docker distribution](https://chapel.discourse.group/t/proposed-changes-to-docker-distribution/16185)

<div class="topic-metadata">

**Author:** [@annarift](https://chapel.discourse.group/u/annarift)\
**Replies:** 0\
**Last updated:** [September 22, 2022, 4:50pm UTC](https://chapel.discourse.group/t/proposed-changes-to-docker-distribution/16185 "2022-09-22T16:50:32Z")

</div>

I have proposed and written an implementation that would modify the Dockerfile to build from the source code it's distributed with, as opposed to the current behavior of having a hardcoded release number which is fetched…

---

## [Where is the backend code of chapel?](https://chapel.discourse.group/t/where-is-the-backend-code-of-chapel/14482)

<div class="topic-metadata">

**Author:** [@leikang123](https://chapel.discourse.group/u/leikang123)\
**Replies:** 4\
**Last updated:** [July 29, 2022, 1:17am UTC](https://chapel.discourse.group/t/where-is-the-backend-code-of-chapel/14482 "2022-07-29T01:17:40Z")

</div>

Is the back-end code of chapel referring to llvm, and did not see the assembly code segment?

---

## [\[Design\] removing CHPL\_HOST\_COMPILER from the bundled LLVM's install directory](https://chapel.discourse.group/t/design-removing-chpl-host-compiler-from-the-bundled-llvms-install-directory/13118)

<div class="topic-metadata">

**Author:** [@bradcray](https://chapel.discourse.group/u/bradcray)\
**Replies:** 0\
**Last updated:** [June 6, 2022, 5:57pm UTC](https://chapel.discourse.group/t/design-removing-chpl-host-compiler-from-the-bundled-llvms-install-directory/13118 "2022-06-06T17:57:26Z")

</div>

Hi Chapel Developers (and perhaps particularly @diten) — \[Looking for comments on this in the next day or two, ideally\]. In Chapel 1.26.0: building with GCC and CHPL\_LLVM=bundled fails to find clang binary · Issue #197…

---

## [Vectorized and parallell loops. Can I have both?](https://chapel.discourse.group/t/vectorized-and-parallell-loops-can-i-have-both/13082)

<div class="topic-metadata">

**Author:** [@ahysing](https://chapel.discourse.group/u/ahysing)\
**Replies:** 8\
**Last updated:** [June 6, 2022, 2:32pm UTC](https://chapel.discourse.group/t/vectorized-and-parallell-loops-can-i-have-both/13082 "2022-06-06T14:32:22Z")

</div>

This is more a question to clarify than an issue. I just wonder how the chapel loops works. forall tells chapel to run the code on multiple tasks. foreach tells chapel that a loop is unordered. Can I have both at th…

---

## [How to structure classes as files](https://chapel.discourse.group/t/how-to-structure-classes-as-files/13072)

<div class="topic-metadata">

**Author:** [@ahysing](https://chapel.discourse.group/u/ahysing)\
**Replies:** 7\
**Last updated:** [June 2, 2022, 8:05pm UTC](https://chapel.discourse.group/t/how-to-structure-classes-as-files/13072 "2022-06-02T20:05:59Z")

</div>

Hi Chapel developers. Lately I have started writing chapel code with classes. So if I want to group a bunch of related classes together, like I am used to with c++ namespaces, It looks like modules is the right way. I…

---

## [Element-wise array comparison](https://chapel.discourse.group/t/element-wise-array-comparison/10693)

<div class="topic-metadata">

**Author:** [@j9sh](https://chapel.discourse.group/u/j9sh)\
**Replies:** 4\
**Last updated:** [March 9, 2022, 11:54pm UTC](https://chapel.discourse.group/t/element-wise-array-comparison/10693 "2022-03-09T23:54:45Z")

</div>

Hello everyone, We are trying to implement a function similar to numpy.maximum for our project. It is supposed to take in two arrays and return an array containing the element-wise maxima from the arrays. Here is a sim…

---

## [Design input for a roll function](https://chapel.discourse.group/t/design-input-for-a-roll-function/10325)

<div class="topic-metadata">

**Author:** [@ds24449](https://chapel.discourse.group/u/ds24449)\
**Replies:** 3\
**Last updated:** [February 21, 2022, 6:41pm UTC](https://chapel.discourse.group/t/design-input-for-a-roll-function/10325 "2022-02-21T18:41:03Z")

</div>

Hello everyone, We were making a finite volume and stencils related project and had a function called roll which is similar to numpy.roll and was thinking whether the following implementation will be safe in a distribut…

---

## [Implicit interfaces](https://chapel.discourse.group/t/implicit-interfaces/10408)

<div class="topic-metadata">

**Author:** [@skaller](https://chapel.discourse.group/u/skaller)\
**Replies:** 1\
**Last updated:** [February 10, 2022, 6:52am UTC](https://chapel.discourse.group/t/implicit-interfaces/10408 "2022-02-10T06:52:09Z")

</div>

Apologies in advance if this has been thought of, and note it may be complex and a stupid idea. But I thought I'd raise the idea anyhow ... A fellow was once baffled how to explain why the speed of light in January was …

---

## [\[design\] Queries about how the program is being compiled](https://chapel.discourse.group/t/design-queries-about-how-the-program-is-being-compiled/10268)

<div class="topic-metadata">

**Author:** [@bradcray](https://chapel.discourse.group/u/bradcray)\
**Replies:** 0\
**Last updated:** [February 4, 2022, 9:50pm UTC](https://chapel.discourse.group/t/design-queries-about-how-the-program-is-being-compiled/10268 "2022-02-04T21:50:32Z")

</div>

Hi Chapel Developers — As part of our effort to stabilize Chapel's standard libraries for a forthcoming 2.0 release, we are looking to reduce the degree to which programs rely on the CHPL\_\* param variables, replacing th…

---

## [Overload resolution](https://chapel.discourse.group/t/overload-resolution/10252)

<div class="topic-metadata">

**Author:** [@skaller](https://chapel.discourse.group/u/skaller)\
**Replies:** 7\
**Last updated:** [February 4, 2022, 5:21pm UTC](https://chapel.discourse.group/t/overload-resolution/10252 "2022-02-04T17:21:58Z")

</div>

Here is the algorithm for overload resolution. It is quite simple. For a set of candidate functions, we will consider only the set of domains D. We also have an argument, with a type A. We have a partial order based on s…

---

## [References](https://chapel.discourse.group/t/references/9051)

<div class="topic-metadata">

**Author:** [@skaller](https://chapel.discourse.group/u/skaller)\
**Replies:** 6\
**Last updated:** [January 4, 2022, 10:46pm UTC](https://chapel.discourse.group/t/references/9051 "2022-01-04T22:46:06Z")

</div>

So I want to explain why references are no good. Correct any mistakes please! The problem, in summary, is that Chapel lies to the user and uses tricks to maintain the lies which cannot be sustained in the presence of pa…

---

## [(Advanced) User means of reasoning about copy elision?](https://chapel.discourse.group/t/advanced-user-means-of-reasoning-about-copy-elision/8674)

<div class="topic-metadata">

**Author:** [@bradcray](https://chapel.discourse.group/u/bradcray)\
**Replies:** 3\
**Last updated:** [December 13, 2021, 6:17pm UTC](https://chapel.discourse.group/t/advanced-user-means-of-reasoning-about-copy-elision/8674 "2021-12-13T18:17:47Z")

</div>

HI Chapel Devs — While working with @twesterhout today, he was asking about copy elision in Chapel and particularly: whether there is a means for a(n advanced) user to get feedback from the compiler about when copy el…

---

## [Building Chapel 1.25.0 on Alpine](https://chapel.discourse.group/t/building-chapel-1-25-0-on-alpine/7684)

<div class="topic-metadata">

**Author:** [@josh.r](https://chapel.discourse.group/u/josh.r)\
**Replies:** 3\
**Last updated:** [November 13, 2021, 1:41am UTC](https://chapel.discourse.group/t/building-chapel-1-25-0-on-alpine/7684 "2021-11-13T01:41:23Z")

</div>

I'm using Alpine 3.14 (under WSLv2) to try to build Chapel in the preferred configuration. It looks like check\_llvm\_config (and the entire build process) assumes a setup that Alpine's clang/llvm11 doesn't match. Specifi…

[Next page](https://chapel.discourse.group/c/developers/7.md?page=1)
