Skip to content

[Bug]: fileWriter argument checks false against stdout, when it should be true #28247

@nldias

Description

@nldias

Summary of Problem

Description:

when passing stdout to a fileWriter argument, inside the procedure it checks false against itself.

Is this issue currently blocking your progress?

It renders my code less elegant. Instead of checking against stdout, I need to check
the path against "/dev/pts/0"

Steps to Reproduce

Source Code:

use IO;
var f = stdout;
f.writeln("hello");
again(f);
proc again(
   const in g: fileWriter(true)
   ) {
   if g == stdout {
      g.writeln("hello again");
   }
}

Compile command:

just save the file and compile with chpl foo.chpl

Execution command:

Just run the file ./foo

Associated Future Test(s):

Are there any tests in Chapel's test system that demonstrate this issue?

Not that I am aware of

Configuration Information

  • Output of chpl --version:
    chpl version 2.6.0
    built with LLVM version 18.1.3
    available LLVM targets: xtensa, m68k, xcore, x86-64, x86, wasm64, wasm32, ve, systemz, sparcel, sparcv9, sparc, riscv64, riscv32, ppc64le, ppc64, ppc32le, ppc32, nvptx64, nvptx, msp430, mips64el, mips64, mipsel, mips, loongarch64, loongarch32, lanai, hexagon, bpfeb, bpfel, bpf, avr, thumbeb, thumb, armeb, arm, amdgcn, r600, aarch64_32, aarch64_be, aarch64, arm64_32, arm64
    Copyright 2020-2025 Hewlett Packard Enterprise Development LP
    Copyright 2004-2019 Cray Inc.
    (See LICENSE file for more details)

  • Output of $CHPL_HOME/util/printchplenv --anonymize:
    CHPL_TARGET_PLATFORM: linux64
    CHPL_TARGET_COMPILER: llvm
    CHPL_TARGET_ARCH: x86_64
    CHPL_TARGET_CPU: native
    CHPL_LOCALE_MODEL: flat
    CHPL_COMM: none
    CHPL_TASKS: qthreads
    CHPL_LAUNCHER: none
    CHPL_TIMERS: generic
    CHPL_UNWIND: none
    CHPL_TARGET_MEM: jemalloc
    CHPL_ATOMICS: cstdlib
    CHPL_GMP: bundled
    CHPL_HWLOC: bundled
    CHPL_RE2: bundled
    CHPL_LLVM: system *
    CHPL_AUX_FILESYS: none

  • Back-end compiler and version, e.g. gcc --version or clang --version: clang

  • (For Cray systems only) Output of module list:

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions