Thanks to visit codestin.com
Credit goes to github.com

Skip to content

f-strings produce SIGSEGV #1946

Open
Open
@rebcabin

Description

@rebcabin

repro : https://github.com/rebcabin/lpython/tree/brian-lasr/lasr/lpython/Issue1946

The following works in ordinary CPython:

hexit         : str = r'[0-9a-fA-F]'
octit         : str = r'[0-7]'
digit         : str = r'[0-9]'
alpha         : str = r'[_a-zA-Z]'
asr_alpha_mer : str = r'[_a-zA-Z0-9@~]'


# Really want Pattern[str] and re.compile


hex_pat : str = fr'-?0[xX]{hexit}+'
oct_pat : str = fr'-?0{octit}+'
int_pat : str = fr'-?{digit}+'
dec_pat : str = fr'(-?{digit})M'
# Not kosher Clojure
sym_pat : str = fr'({alpha}{asr_alpha_mer}*)'

LPython produces a SIGSEV (after commenting out the compatibility block at the top):

(lp) ┌─(~/CLionProjects/lpython/lasr/lpython)────────────────────────────────────────────────────────────────────────────────────────────────────────────(brian@Golf37:s000)─┐
└─(15:51:59 on brian-lasr ✹ ✭)──> ~/CLionProjects/lpython/src/bin/lpython  Issue1946/lasr_lexer.py && ./lasr_lexer.out                                2 ↵ ──(Sun,Jun18)─┘
Internal Compiler Error: Unhandled exception
Traceback (most recent call last):
  File "/Users/brian/CLionProjects/lpython/src/bin/lpython.cpp", line 1828
    std::string emit_file_name = basename + "__tmp__generated__.c";
  File "/Users/brian/CLionProjects/lpython/src/bin/lpython.cpp", line 783
    r1 = LCompilers::LPython::python_ast_to_asr(al, lm, *ast, diagnostics, compiler_options,
  File "/Users/brian/CLionProjects/lpython/src/lpython/semantics/python_ast_to_asr.cpp", line 7429
    diag::Diagnostics &diagnostics,
  File "/Users/brian/CLionProjects/lpython/src/lpython/semantics/python_ast_to_asr.cpp", line 7382
    target_type = ASRUtils::TYPE(ASR::make_Integer_t(al, x.base.base.loc, 8));
  File "/Users/brian/CLionProjects/lpython/src/lpython/semantics/python_ast_to_asr.cpp", line 4492
    void transform_stmts(Vec<ASR::stmt_t*> &body, size_t n_body, AST::stmt_t **m_body) {
  File "/Users/brian/CLionProjects/lpython/src/lpython/python_ast.h", line 1883
    void visit_stmt(const stmt_t &b) { visit_stmt_t(b, self()); }
  File "/Users/brian/CLionProjects/lpython/src/lpython/python_ast.h", line 1757
    case stmtType::AugAssign: { v.visit_AugAssign((const AugAssign_t &)x); return; }
  File "/Users/brian/CLionProjects/lpython/src/lpython/semantics/python_ast_to_asr.cpp", line 4725
    }
  File "/Users/brian/CLionProjects/lpython/src/lpython/semantics/python_ast_to_asr.cpp", line 2707
    }
  File "/Users/brian/CLionProjects/lpython/src/lpython/python_ast.h", line 1910
    void visit_expr(const expr_t &b) { visit_expr_t(b, self()); }
  File "/Users/brian/CLionProjects/lpython/src/lpython/python_ast.h", line 1801
    case exprType::FormattedValue: { v.visit_FormattedValue((const FormattedValue_t &)x); return; }
  File "/Users/brian/CLionProjects/lpython/src/lpython/python_ast.h", line 1929
    void visit_JoinedStr(const JoinedStr_t & /* x */) { throw LCompilersException("visit_JoinedStr() not implemented"); }
LCompilersException: visit_JoinedStr() not implemented

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions