Skip to content

Commit b750429

Browse files
committed
Sync latest
1 parent a9a4698 commit b750429

File tree

5 files changed

+42
-33
lines changed

5 files changed

+42
-33
lines changed

integration_tests/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -529,7 +529,7 @@ RUN(NAME test_types_01 LABELS cpython llvm llvm_jit c)
529529
RUN(NAME test_types_02 LABELS cpython llvm llvm_jit c wasm)
530530
# RUN(NAME test_str_01 LABELS cpython llvm llvm_jit c)
531531
RUN(NAME test_str_02 LABELS cpython llvm llvm_jit) # renable c
532-
RUN(NAME test_str_03 LABELS cpython llvm llvm_jit) # renable c # post sync
532+
# RUN(NAME test_str_03 LABELS cpython llvm llvm_jit) # renable c # str negative indexing
533533
RUN(NAME test_str_04 LABELS cpython llvm llvm_jit) # renable c, wasm
534534
RUN(NAME test_str_05 LABELS cpython llvm llvm_jit) # renable c
535535
# RUN(NAME test_str_06 LABELS cpython llvm llvm_jit c)
@@ -542,7 +542,7 @@ RUN(NAME test_list_04 LABELS cpython llvm llvm_jit NOFAST) # renable c
542542
RUN(NAME test_list_06 LABELS cpython llvm llvm_jit c)
543543
RUN(NAME test_list_07 LABELS cpython llvm llvm_jit c NOFAST)
544544
RUN(NAME test_list_08 LABELS cpython llvm llvm_jit c NOFAST)
545-
# RUN(NAME test_list_09 LABELS cpython llvm llvm_jit c NOFAST)
545+
RUN(NAME test_list_09 LABELS cpython llvm llvm_jit c NOFAST)
546546
# RUN(NAME test_list_10 LABELS cpython llvm llvm_jit c NOFAST)
547547
# RUN(NAME test_list_11 LABELS cpython llvm llvm_jit c)
548548
# RUN(NAME test_list_section LABELS cpython llvm llvm_jit c NOFAST)

integration_tests/test_list_09.py

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from lpython import i32
22

3+
34
def test_list_concat():
45
x: list[i32] = []
56
y: list[i32] = []
@@ -10,39 +11,41 @@ def test_list_concat():
1011
x = [1, 2, 3]
1112
z = x + y
1213
for i in range(1, 4):
13-
assert z[i-1] == i
14+
assert z[i - 1] == i
1415

1516
x.clear()
1617
y = [6, 7, 8]
1718
z = x + y
1819
for i in range(1, 4):
19-
assert z[i-1] == i + 5
20+
assert z[i - 1] == i + 5
2021

2122
x = [1, 2, 3, 4, 5]
2223
z = x + y
2324
for i in range(1, 9):
24-
assert z[i-1] == i
25+
assert z[i - 1] == i
2526

26-
x.clear(); y.clear()
27+
x.clear()
28+
y.clear()
2729
for i in range(9, 51):
2830
x.append(i)
2931
for i in range(51, 101):
3032
y.append(i)
3133

3234
z = z + x + y
33-
x[0] = 0; x[1] = 0
35+
x[0] = 0
36+
x[1] = 0
3437
y.clear()
3538
for i in range(1, 100):
36-
assert z[i-1] == i
37-
39+
assert z[i - 1] == i
40+
3841
c: list[str]
3942
d: list[str]
40-
c = ['a', 'b']
41-
d = ['c', 'd', 'e']
43+
c = ["a", "b"]
44+
d = ["c", "d", "e"]
4245
c += d
4346
assert len(c) == 5
4447
for i in range(5):
45-
assert ord(c[i]) - ord('a') == i
48+
assert ord(c[i]) - ord("a") == i
4649

4750

4851
test_list_concat()

libasr

Submodule libasr updated 1187 files

src/bin/lpython.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1844,6 +1844,7 @@ int main(int argc, char *argv[])
18441844
bool separate_compilation = false;
18451845
bool to_jit = false;
18461846
bool disable_warnings = false;
1847+
bool hide_error_banner = false;
18471848

18481849
std::string arg_fmt_file;
18491850
// int arg_fmt_indent = 4;
@@ -1911,7 +1912,7 @@ int main(int argc, char *argv[])
19111912
app.add_flag("--time-report", time_report, "Show compilation time report");
19121913
app.add_flag("--static", static_link, "Create a static executable");
19131914
app.add_flag("--no-warnings", disable_warnings, "Turn off all warnings");
1914-
app.add_flag("--no-error-banner", compiler_options.no_error_banner, "Turn off error banner");
1915+
app.add_flag("--no-error-banner", hide_error_banner, "Turn off error banner");
19151916
app.add_option("--backend", arg_backend, "Select a backend (llvm, cpp, x86, wasm, wasm_x86, wasm_x64)")->capture_default_str();
19161917
app.add_flag("--enable-bounds-checking", compiler_options.bounds_checking, "Turn on index bounds checking");
19171918
app.add_flag("--openmp", compiler_options.openmp, "Enable openmp");
@@ -1993,6 +1994,10 @@ int main(int argc, char *argv[])
19931994
compiler_options.show_warnings = false;
19941995
}
19951996

1997+
if (hide_error_banner) {
1998+
compiler_options.show_error_banner = false;
1999+
}
2000+
19962001
if (arg_version) {
19972002
std::string version = LFORTRAN_VERSION;
19982003
std::cout << "LPython version: " << version << std::endl;

src/lpython/semantics/python_ast_to_asr.cpp

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1084,7 +1084,7 @@ class CommonVisitor : public AST::BaseVisitor<StructType> {
10841084
ASR::symbol_t* variable_sym = ASR::down_cast<ASR::symbol_t>(variable_asr);
10851085
current_scope->add_symbol(dummy_ret_name, variable_sym);
10861086
ASR::expr_t* variable_var = ASRUtils::EXPR(ASR::make_Var_t(al, expr->base.loc, variable_sym));
1087-
return ASR::make_Assignment_t(al, expr->base.loc, variable_var, expr, nullptr, false);
1087+
return ASRUtils::make_Assignment_t_util(al, expr->base.loc, variable_var, expr, nullptr, false, false);
10881088
}
10891089

10901090
// Function to create appropriate call based on symbol type. If it is external
@@ -2609,8 +2609,8 @@ class CommonVisitor : public AST::BaseVisitor<StructType> {
26092609
is_runtime_expression) && !is_variable_const) {
26102610
ASR::expr_t* v_expr = ASRUtils::EXPR(ASR::make_Var_t(al, loc, v_sym));
26112611
cast_helper(v_expr, init_expr, true);
2612-
ASR::asr_t* assign = ASR::make_Assignment_t(al, loc, v_expr,
2613-
init_expr, nullptr, false);
2612+
ASR::asr_t* assign = ASRUtils::make_Assignment_t_util(al, loc, v_expr,
2613+
init_expr, nullptr, false, false);
26142614
if (current_body) {
26152615
current_body->push_back(al, ASRUtils::STMT(assign));
26162616
} else if (ASR::is_a<ASR::List_t>(*type) || is_runtime_expression) {
@@ -2705,7 +2705,7 @@ class CommonVisitor : public AST::BaseVisitor<StructType> {
27052705
dims.push_back(al, dim);
27062706
ASR::ttype_t* type = ASRUtils::make_Array_t_util(al, loc,
27072707
ASRUtils::expr_type(lbs[0]), dims.p, dims.size(), ASR::abiType::Source,
2708-
false, ASR::array_physical_typeType::PointerToDataArray, true);
2708+
false, ASR::array_physical_typeType::PointerArray, true);
27092709
return ASRUtils::EXPR(ASRUtils::make_ArrayConstructor_t_util(al,
27102710
loc, lbs.p, lbs.size(), type,
27112711
ASR::arraystorageType::RowMajor));
@@ -5706,8 +5706,8 @@ class BodyVisitor : public CommonVisitor<BodyVisitor> {
57065706
x.base.base.loc);
57075707
}
57085708
tmp = nullptr;
5709-
tmp_vec.push_back(ASR::make_Assignment_t(al, x.base.base.loc, target,
5710-
tmp_value, nullptr, false));
5709+
tmp_vec.push_back(ASRUtils::make_Assignment_t_util(al, x.base.base.loc, target,
5710+
tmp_value, nullptr, false, false));
57115711
continue;
57125712
}
57135713
if( ASRUtils::is_const(target) ) {
@@ -5748,8 +5748,8 @@ class BodyVisitor : public CommonVisitor<BodyVisitor> {
57485748
throw SemanticError("Only Class constructor is allowed in the object assignment for now", target->base.loc);
57495749
}
57505750
}
5751-
tmp_vec.push_back(ASR::make_Assignment_t(al, x.base.base.loc, target, tmp_value,
5752-
overloaded, false));
5751+
tmp_vec.push_back(ASRUtils::make_Assignment_t_util(al, x.base.base.loc, target, tmp_value,
5752+
overloaded, false, false));
57535753
if ( target->type == ASR::exprType::Var &&
57545754
tmp_value->type == ASR::exprType::StructConstructor ) {
57555755
AST::Call_t* call = AST::down_cast<AST::Call_t>(x.m_value);
@@ -6042,9 +6042,9 @@ class BodyVisitor : public CommonVisitor<BodyVisitor> {
60426042
current_scope->add_symbol(tmp_assign_name, tmp_assign_variable_sym);
60436043

60446044
// Assign the Subscript expr to temporary variable
6045-
ASR::asr_t* assign = ASR::make_Assignment_t(al, x.base.base.loc,
6045+
ASR::asr_t* assign = ASRUtils::make_Assignment_t_util(al, x.base.base.loc,
60466046
ASRUtils::EXPR(ASR::make_Var_t(al, x.base.base.loc, tmp_assign_variable_sym)),
6047-
target, nullptr, false);
6047+
target, nullptr, false, false);
60486048
if (current_body != nullptr) {
60496049
current_body->push_back(al, ASRUtils::STMT(assign));
60506050
} else {
@@ -6080,9 +6080,9 @@ class BodyVisitor : public CommonVisitor<BodyVisitor> {
60806080
current_scope->add_symbol(tmp_assign_name, tmp_assign_variable_sym);
60816081

60826082
// Assign the List expr to temporary variable
6083-
ASR::asr_t* assign = ASR::make_Assignment_t(al, x.base.base.loc,
6083+
ASR::asr_t* assign = ASRUtils::make_Assignment_t_util(al, x.base.base.loc,
60846084
ASRUtils::EXPR(ASR::make_Var_t(al, x.base.base.loc, tmp_assign_variable_sym)),
6085-
target, nullptr, false);
6085+
target, nullptr, false, false);
60866086
if (current_body != nullptr) {
60876087
current_body->push_back(al, ASRUtils::STMT(assign));
60886088
} else {
@@ -6135,7 +6135,8 @@ class BodyVisitor : public CommonVisitor<BodyVisitor> {
61356135
al, x.base.base.loc, loop_src_var,
61366136
ASRUtils::EXPR(explicit_iter_var), ASRUtils::get_contained_type(loop_src_var_ttype), nullptr);
61376137
}
6138-
auto loop_target_assignment = ASR::make_Assignment_t(al, x.base.base.loc, target, ASRUtils::EXPR(loop_src_var_element), nullptr, false);
6138+
auto loop_target_assignment = ASRUtils::make_Assignment_t_util(al, x.base.base.loc, target,
6139+
ASRUtils::EXPR(loop_src_var_element), nullptr, false, false);
61396140
body.push_back(al, ASRUtils::STMT(loop_target_assignment));
61406141

61416142
head.m_v = ASRUtils::EXPR(explicit_iter_var);
@@ -6260,7 +6261,7 @@ class BodyVisitor : public CommonVisitor<BodyVisitor> {
62606261

62616262
ASR::stmt_t* a_overloaded = nullptr;
62626263
ASR::expr_t *tmp2 = ASR::down_cast<ASR::expr_t>(tmp);
6263-
tmp = ASR::make_Assignment_t(al, x.base.base.loc, left, tmp2, a_overloaded, false);
6264+
tmp = ASRUtils::make_Assignment_t_util(al, x.base.base.loc, left, tmp2, a_overloaded, false, false);
62646265

62656266
}
62666267

@@ -7244,8 +7245,8 @@ class BodyVisitor : public CommonVisitor<BodyVisitor> {
72447245
}
72457246
cast_helper(target, value, true);
72467247
ASR::stmt_t *overloaded=nullptr;
7247-
tmp = ASR::make_Assignment_t(al, x.base.base.loc, target, value,
7248-
overloaded, false);
7248+
tmp = ASRUtils::make_Assignment_t_util(al, x.base.base.loc, target, value,
7249+
overloaded, false, false);
72497250
// if( ASR::is_a<ASR::Const_t>(*ASRUtils::symbol_type(return_var)) ) {
72507251
// ASR::Variable_t* return_variable = ASR::down_cast<ASR::Variable_t>(return_var);
72517252
// return_variable->m_symbolic_value = value;
@@ -7346,8 +7347,8 @@ class BodyVisitor : public CommonVisitor<BodyVisitor> {
73467347
ASR::expr_t* cptr = ASRUtils::EXPR(tmp);
73477348
ASR::asr_t* pp = ASR::make_PointerToCPtr_t(al, x.base.base.loc, pptr,
73487349
ASRUtils::expr_type(cptr), nullptr);
7349-
return ASR::make_Assignment_t(al, x.base.base.loc,
7350-
cptr, ASR::down_cast<ASR::expr_t>(pp), nullptr, false);
7350+
return ASRUtils::make_Assignment_t_util(al, x.base.base.loc,
7351+
cptr, ASR::down_cast<ASR::expr_t>(pp), nullptr, false, false);
73517352
}
73527353

73537354
void handle_string_attributes(ASR::expr_t *s_var,
@@ -8896,7 +8897,7 @@ we will have to use something else.
88968897
make_Integer_t, 0, 4, dim.loc);
88978898
dims.push_back(al, dim);
88988899
type = ASRUtils::make_Array_t_util(al, x.base.base.loc, type, dims.p, dims.size(),
8899-
ASR::abiType::Source, false, ASR::array_physical_typeType::PointerToDataArray, true);
8900+
ASR::abiType::Source, false, ASR::array_physical_typeType::PointerArray, true);
89008901
for( size_t i = 0; i < n_args; i++ ) {
89018902
m_args[i] = CastingUtil::perform_casting(m_args[i], ASRUtils::type_get_past_array(type),
89028903
al, x.base.base.loc);

0 commit comments

Comments
 (0)