Skip to content

ICE from tilde in custom operator #1090

Description

@matx-amy
package Foo where

(~) :: a -> b -> a
(~) x _ = x

y :: Integer
y = 1 ~ 2

gets

Internal Bluespec Compiler Error:
Please report this failure to the BSC developers, by opening a ticket
in the issue database: https://github.com/B-Lang-org/bsc/issues
The following internal error message should be included in your
correspondence along with any other relevant details:
Bluespec Compiler, version 2026.01-158-ga7259aad9 (build a7259aad9)
fixupDefs.get: Foo.~
[~,
 Foo.y,
 Prelude.$,
 Prelude.||,
...
 PreludeBSV.Prelude.Generic~PreludeBSV._PreludeBSV.CReg5789~_n0~_n1~Prelude.Meta~Prelude.MetaData~_PreludeBSV.CReg5789~PreludeBSV~Prelude.PrimPair~Prelude.NumArg~_n0~Prelude.NumArg~_n1~1~Prelude.Meta~Prelude.MetaConsNamed~_PreludeBSV.CReg5789~0~10~Prelude.PrimPair~Prelude.Meta~Prelude.MetaField~port0__write~0~Prelude.Conc~->~Prelude.Bit~_n0~Prelude.ActionValue_~Prelude.Bit~_n1~Prelude.PrimPair~Prelude.Meta~Prelude.MetaField~port0__read~1~Prelude.Conc~Prelude.Bit~_n0~Prelude.PrimPair~Prelude.Meta~Prelude.MetaField~port1__write~2~Prelude.Conc~->~Prelude.Bit~_n0~Prelude.ActionValue_~Prelude.Bit~_n1~Prelude.PrimPair~Prelude.Meta~Prelude.MetaField~port1__read~3~Prelude.Conc~Prelude.Bit~_n0~Prelude.PrimPair~Prelude.Meta~Prelude.MetaField~port2__write~4~Prelude.Conc~->~Prelude.Bit~_n0~Prelude.ActionValue_~Prelude.Bit~_n1~Prelude.PrimPair~Prelude.Meta~Prelude.MetaField~port2__read~5~Prelude.Conc~Prelude.Bit~_n0~Prelude.PrimPair~Prelude.Meta~Prelude.MetaField~port3__write~6~Prelude.Conc~->~Prelude.Bit~_n0~Prelude.ActionValue_~Prelude.Bit~_n1~Prelude.PrimPair~Prelude.Meta~Prelude.MetaField~port3__read~7~Prelude.Conc~Prelude.Bit~_n0~Prelude.PrimPair~Prelude.Meta~Prelude.MetaField~port4__write~8~Prelude.Conc~->~Prelude.Bit~_n0~Prelude.ActionValue_~Prelude.Bit~_n1~Prelude.Meta~Prelude.MetaField~port4__read~9~Prelude.Conc~Prelude.Bit~_n0,
 PreludeBSV.Prelude.Generic~PreludeBSV._PreludeBSV.CReg5884~_n0~_n1~Prelude.Meta~Prelude.MetaData~_PreludeBSV.CReg5884~PreludeBSV~Prelude.PrimPair~Prelude.NumArg~_n0~Prelude.NumArg~_n1~1~Prelude.Meta~Prelude.MetaConsNamed~_PreludeBSV.CReg5884~0~10~Prelude.PrimPair~Prelude.Meta~Prelude.MetaField~port0__write~0~Prelude.Conc~->~Prelude.Bit~_n0~Prelude.ActionValue_~Prelude.Bit~_n1~Prelude.PrimPair~Prelude.Meta~Prelude.MetaField~port0__read~1~Prelude.Conc~Prelude.Bit~_n0~Prelude.PrimPair~Prelude.Meta~Prelude.MetaField~port1__write~2~Prelude.Conc~->~Prelude.Bit~_n0~Prelude.ActionValue_~Prelude.Bit~_n1~Prelude.PrimPair~Prelude.Meta~Prelude.MetaField~port1__read~3~Prelude.Conc~Prelude.Bit~_n0~Prelude.PrimPair~Prelude.Meta~Prelude.MetaField~port2__write~4~Prelude.Conc~->~Prelude.Bit~_n0~Prelude.ActionValue_~Prelude.Bit~_n1~Prelude.PrimPair~Prelude.Meta~Prelude.MetaField~port2__read~5~Prelude.Conc~Prelude.Bit~_n0~Prelude.PrimPair~Prelude.Meta~Prelude.MetaField~port3__write~6~Prelude.Conc~->~Prelude.Bit~_n0~Prelude.ActionValue_~Prelude.Bit~_n1~Prelude.PrimPair~Prelude.Meta~Prelude.MetaField~port3__read~7~Prelude.Conc~Prelude.Bit~_n0~Prelude.PrimPair~Prelude.Meta~Prelude.MetaField~port4__write~8~Prelude.Conc~->~Prelude.Bit~_n0~Prelude.ActionValue_~Prelude.Bit~_n1~Prelude.Meta~Prelude.MetaField~port4__read~9~Prelude.Conc~Prelude.Bit~_n0]

Presumably the tildes used in name-mangling are relevant.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions