master^2
ldXiao 3 years ago
parent b626422b3e
commit bddac3db2e

@ -1,187 +1,50 @@
# CORE TESTS Core Tests: 80/80
Reading pa3-tests/core/stmt_while.py.ast.typed
+ Test: pa3-tests/core/stmt_while.py.ast.typed passed Benchmark: 10/10
Reading pa3-tests/core/op_div_mod.py.ast.typed
+ Test: pa3-tests/core/op_div_mod.py.ast.typed passed =========================
Reading pa3-tests/core/object_attr_get_none.py.ast.typed
+ Test: pa3-tests/core/object_attr_get_none.py.ast.typed passed Standard tests: 80/80
Reading pa3-tests/core/call.py.ast.typed
+ Test: pa3-tests/core/call.py.ast.typed passed Work Log: 10/10
Reading pa3-tests/core/id_local.py.ast.typed
+ Test: pa3-tests/core/id_local.py.ast.typed passed Additional Tests: 10/10
Reading pa3-tests/core/list_get_element.py.ast.typed
+ Test: pa3-tests/core/list_get_element.py.ast.typed passed Code style, SDLC etc: 10/10
Reading pa3-tests/core/list_set_element_none.py.ast.typed
+ Test: pa3-tests/core/list_set_element_none.py.ast.typed passed ## Tests
Reading pa3-tests/core/object_method_none.py.ast.typed
+ Test: pa3-tests/core/object_method_none.py.ast.typed passed
Reading pa3-tests/core/nested.py.ast.typed
+ Test: pa3-tests/core/nested.py.ast.typed passed
Reading pa3-tests/core/str_cat.py.ast.typed
+ Test: pa3-tests/core/str_cat.py.ast.typed passed
Reading pa3-tests/core/literal_bool.py.ast.typed
+ Test: pa3-tests/core/literal_bool.py.ast.typed passed
Reading pa3-tests/core/list_set_element_oob_1.py.ast.typed
+ Test: pa3-tests/core/list_set_element_oob_1.py.ast.typed passed
Reading pa3-tests/core/stmt_for_list.py.ast.typed
+ Test: pa3-tests/core/stmt_for_list.py.ast.typed passed
Reading pa3-tests/core/object_attr_set_none.py.ast.typed
+ Test: pa3-tests/core/object_attr_set_none.py.ast.typed passed
Reading pa3-tests/core/error_invalid_print.py.ast.typed
+ Test: pa3-tests/core/error_invalid_print.py.ast.typed passed
Reading pa3-tests/core/id_global.py.ast.typed
+ Test: pa3-tests/core/id_global.py.ast.typed passed
Reading pa3-tests/core/pass.py.ast.typed
+ Test: pa3-tests/core/pass.py.ast.typed passed
Reading pa3-tests/core/len_invalid_1.py.ast.typed
+ Test: pa3-tests/core/len_invalid_1.py.ast.typed passed
Reading pa3-tests/core/stmt_for_str_eval.py.ast.typed
+ Test: pa3-tests/core/stmt_for_str_eval.py.ast.typed passed
Reading pa3-tests/core/literal_str.py.ast.typed
+ Test: pa3-tests/core/literal_str.py.ast.typed passed
Reading pa3-tests/core/op_cmp_int.py.ast.typed
+ Test: pa3-tests/core/op_cmp_int.py.ast.typed passed
Reading pa3-tests/core/str_cat_2.py.ast.typed
+ Test: pa3-tests/core/str_cat_2.py.ast.typed passed
Reading pa3-tests/core/op_sub.py.ast.typed
+ Test: pa3-tests/core/op_sub.py.ast.typed passed
Reading pa3-tests/core/object_method_nested.py.ast.typed
+ Test: pa3-tests/core/object_method_nested.py.ast.typed passed
Reading pa3-tests/core/list_len_empty.py.ast.typed
+ Test: pa3-tests/core/list_len_empty.py.ast.typed passed
Reading pa3-tests/core/str_get_element_oob_1.py.ast.typed
+ Test: pa3-tests/core/str_get_element_oob_1.py.ast.typed passed
Reading pa3-tests/core/op_negate.py.ast.typed
+ Test: pa3-tests/core/op_negate.py.ast.typed passed
Reading pa3-tests/core/list_get_element_oob_1.py.ast.typed
+ Test: pa3-tests/core/list_get_element_oob_1.py.ast.typed passed
Reading pa3-tests/core/var_assign.py.ast.typed
+ Test: pa3-tests/core/var_assign.py.ast.typed passed
Reading pa3-tests/core/literal_int.py.ast.typed
+ Test: pa3-tests/core/literal_int.py.ast.typed passed
Reading pa3-tests/core/object_attr_get.py.ast.typed
+ Test: pa3-tests/core/object_attr_get.py.ast.typed passed
Reading pa3-tests/core/stmt_for_list_nested.py.ast.typed
+ Test: pa3-tests/core/stmt_for_list_nested.py.ast.typed passed
Reading pa3-tests/core/list_get_element_complex.py.ast.typed
+ Test: pa3-tests/core/list_get_element_complex.py.ast.typed passed
Reading pa3-tests/core/stmt_return_early.py.ast.typed
+ Test: pa3-tests/core/stmt_return_early.py.ast.typed passed
Reading pa3-tests/core/stmt_for_list_nested_same_var.py.ast.typed
+ Test: pa3-tests/core/stmt_for_list_nested_same_var.py.ast.typed passed
Reading pa3-tests/core/op_logical.py.ast.typed
+ Test: pa3-tests/core/op_logical.py.ast.typed passed
Reading pa3-tests/core/expr_if.py.ast.typed
+ Test: pa3-tests/core/expr_if.py.ast.typed passed
Reading pa3-tests/core/error_mod_zero.py.ast.typed
+ Test: pa3-tests/core/error_mod_zero.py.ast.typed passed
Reading pa3-tests/core/stmt_for_str_same_var.py.ast.typed
+ Test: pa3-tests/core/stmt_for_str_same_var.py.ast.typed passed
Reading pa3-tests/core/str_cmp.py.ast.typed
+ Test: pa3-tests/core/str_cmp.py.ast.typed passed
Reading pa3-tests/core/op_mul.py.ast.typed
+ Test: pa3-tests/core/op_mul.py.ast.typed passed
Reading pa3-tests/core/list_concat_2.py.ast.typed
+ Test: pa3-tests/core/list_concat_2.py.ast.typed passed
Reading pa3-tests/core/list_get_element_oob_2.py.ast.typed
+ Test: pa3-tests/core/list_get_element_oob_2.py.ast.typed passed
Reading pa3-tests/core/list_len.py.ast.typed
+ Test: pa3-tests/core/list_len.py.ast.typed passed
Reading pa3-tests/core/input.py.ast.typed
+ Test: pa3-tests/core/input.py.ast.typed passed
Reading pa3-tests/core/stmt_for_str.py.ast.typed
+ Test: pa3-tests/core/stmt_for_str.py.ast.typed passed
Reading pa3-tests/core/str_get_element_oob_2.py.ast.typed
+ Test: pa3-tests/core/str_get_element_oob_2.py.ast.typed passed
Reading pa3-tests/core/object_method.py.ast.typed
+ Test: pa3-tests/core/object_method.py.ast.typed passed
Reading pa3-tests/core/call_with_args.py.ast.typed
+ Test: pa3-tests/core/call_with_args.py.ast.typed passed
Reading pa3-tests/core/nested2.py.ast.typed
+ Test: pa3-tests/core/nested2.py.ast.typed passed
Reading pa3-tests/core/str_get_element_oob_3.py.ast.typed
+ Test: pa3-tests/core/str_get_element_oob_3.py.ast.typed passed
Reading pa3-tests/core/op_add.py.ast.typed
+ Test: pa3-tests/core/op_add.py.ast.typed passed
Reading pa3-tests/core/op_cmp_bool.py.ast.typed
+ Test: pa3-tests/core/op_cmp_bool.py.ast.typed passed
Reading pa3-tests/core/stmt_for_list_return.py.ast.typed
+ Test: pa3-tests/core/stmt_for_list_return.py.ast.typed passed
Reading pa3-tests/core/stmt_for_str_empty.py.ast.typed
+ Test: pa3-tests/core/stmt_for_str_empty.py.ast.typed passed
Reading pa3-tests/core/object_attr_set.py.ast.typed
+ Test: pa3-tests/core/object_attr_set.py.ast.typed passed
Reading pa3-tests/core/list_concat_none.py.ast.typed
+ Test: pa3-tests/core/list_concat_none.py.ast.typed passed
Reading pa3-tests/core/predef_constructors.py.ast.typed
+ Test: pa3-tests/core/predef_constructors.py.ast.typed passed
Reading pa3-tests/core/list_get_element_oob_3.py.ast.typed
+ Test: pa3-tests/core/list_get_element_oob_3.py.ast.typed passed
Reading pa3-tests/core/stmt_if.py.ast.typed
+ Test: pa3-tests/core/stmt_if.py.ast.typed passed
Reading pa3-tests/core/list_set_element.py.ast.typed
+ Test: pa3-tests/core/list_set_element.py.ast.typed passed
Reading pa3-tests/core/stmt_for_list_modify.py.ast.typed
+ Test: pa3-tests/core/stmt_for_list_modify.py.ast.typed passed
Reading pa3-tests/core/stmt_for_list_nonlocal.py.ast.typed
+ Test: pa3-tests/core/stmt_for_list_nonlocal.py.ast.typed passed
Reading pa3-tests/core/object_attr_set_eval_order.py.ast.typed
+ Test: pa3-tests/core/object_attr_set_eval_order.py.ast.typed passed
Reading pa3-tests/core/error_div_zero.py.ast.typed
+ Test: pa3-tests/core/error_div_zero.py.ast.typed passed
Reading pa3-tests/core/op_is.py.ast.typed
+ Test: pa3-tests/core/op_is.py.ast.typed passed
Reading pa3-tests/core/list_set_element_oob_3.py.ast.typed
+ Test: pa3-tests/core/list_set_element_oob_3.py.ast.typed passed
Reading pa3-tests/core/object_init.py.ast.typed
+ Test: pa3-tests/core/object_init.py.ast.typed passed
Reading pa3-tests/core/list_concat.py.ast.typed
+ Test: pa3-tests/core/list_concat.py.ast.typed passed
Reading pa3-tests/core/stmt_for_list_eval.py.ast.typed
+ Test: pa3-tests/core/stmt_for_list_eval.py.ast.typed passed
Reading pa3-tests/core/len_invalid_2.py.ast.typed
+ Test: pa3-tests/core/len_invalid_2.py.ast.typed passed
Reading pa3-tests/core/object_method_override.py.ast.typed
+ Test: pa3-tests/core/object_method_override.py.ast.typed passed
Reading pa3-tests/core/stmt_for_list_none.py.ast.typed
+ Test: pa3-tests/core/stmt_for_list_none.py.ast.typed passed
Reading pa3-tests/core/stmt_for_list_empty.py.ast.typed
+ Test: pa3-tests/core/stmt_for_list_empty.py.ast.typed passed
Reading pa3-tests/core/str_get_element.py.ast.typed
+ Test: pa3-tests/core/str_get_element.py.ast.typed passed
Reading pa3-tests/core/stmt_for_str_nested.py.ast.typed
+ Test: pa3-tests/core/stmt_for_str_nested.py.ast.typed passed
Reading pa3-tests/core/object_method_complex_call.py.ast.typed
+ Test: pa3-tests/core/object_method_complex_call.py.ast.typed passed
Reading pa3-tests/core/list_set_element_oob_2.py.ast.typed
+ Test: pa3-tests/core/list_set_element_oob_2.py.ast.typed passed
Reading pa3-tests/core/str_len.py.ast.typed
+ Test: pa3-tests/core/str_len.py.ast.typed passed
Reading pa3-tests/core/list_get_element_none.py.ast.typed
+ Test: pa3-tests/core/list_get_element_none.py.ast.typed passed
Tests: 80 passed, 0 failed, and 0 ignored.
# BENCHMARK CORRECTNESS TESTS
Reading pa3-tests/benchmarks/prime.py.ast.typed
+ Test: pa3-tests/benchmarks/prime.py.ast.typed passed
Reading pa3-tests/benchmarks/sieve.py.ast.typed
+ Test: pa3-tests/benchmarks/sieve.py.ast.typed passed
Reading pa3-tests/benchmarks/exp.py.ast.typed
+ Test: pa3-tests/benchmarks/exp.py.ast.typed passed
Reading pa3-tests/benchmarks/tree.py.ast.typed
+ Test: pa3-tests/benchmarks/tree.py.ast.typed passed
Reading pa3-tests/benchmarks/stdlib.py.ast.typed
+ Test: pa3-tests/benchmarks/stdlib.py.ast.typed passed
Tests: 5 passed, 0 failed, and 0 ignored.
# BENCHMARK PERFORMANCE TESTS Congratulations, you have solved all test cases in the final project!
Your compiler has achieved comparable speed with reference implementation in all 5 benchmarks. Good job.
```sh
Reading pa3-tests/benchmarks/prime.py.ast.typed Reading pa3-tests/benchmarks/prime.py.ast.typed
Cycles executed = 65741 Cycles executed = 65741 (ref 52357)
Reading pa3-tests/benchmarks/sieve.py.ast.typed Reading pa3-tests/benchmarks/sieve.py.ast.typed
Cycles executed = 65720 Cycles executed = 65720 (ref 56008)
Reading pa3-tests/benchmarks/exp.py.ast.typed Reading pa3-tests/benchmarks/exp.py.ast.typed
Cycles executed = 29039 Cycles executed = 29039 (ref 25016)
Reading pa3-tests/benchmarks/tree.py.ast.typed Reading pa3-tests/benchmarks/tree.py.ast.typed
Cycles executed = 239089 Cycles executed = 239089 (ref 195356)
Reading pa3-tests/benchmarks/stdlib.py.ast.typed Reading pa3-tests/benchmarks/stdlib.py.ast.typed
Cycles executed = 34689 Cycles executed = 34689 (ref 33237)
```
## Worklog
Your worklog is clear and concise. It could be improved by providing more information about your decisions on when to box variables, when to reset stack pointers, how to determine the frame size, and so on. This would help us understand your project deeper and faster.
## Code quality and SDLC
The code quality is good. I noticed several comments for structural separations like “ *********** functions start ***********” and found it clever and beautiful.
I noted the absence of comments at the critical positions, like resetting stack pointers or setting frame size, so the same feedback as for the worklog section.
In terms of SDLC, you have done very well with professional use of Git PRs, tags, and automatic test scripts (which it would probably be cleaner to put in a separate directory).
## Final remarks
It has been a long and tiring journey, but you emerged victorious! You have built an excellent compiler that could serve as a foundation for further work, be it more complex optimizations, garbage collection, or something else entirely.
It was my pleasure to grade your projects. Thank you for taking the class and have fun working with (or maybe on!) programming languages in the future.

Loading…
Cancel
Save