Skip to content

Commit 54eb78b

Browse files
committed
RAII Types and more
Besides the obvious (RAII architecture, vectors, strings), this includes: 1. `cast(initializer, ...)` syntax, and rework of associated logic 3. As a result of the above, compound literals. `cast({1,2,3}, int[3])` is now supported. 4. `a += initializer` syntax, and rework of associated logic. This means complex method calls can be used as RHS of `+=`/`-=`/etc. 5. Reworked statements' `toc`/`toc_inline` family 6. ExpressionInitializer.assign_to and Expression.write rework 7. The addition of "addressable" and "c_lval" to Expression, and an associated rework of lvalue-ness 8. Strict `DMLType.cmp`. Old implementation is still used in a few places and is called `cmp_fuzzy` 9. The ability to hash DML Types in a way compatible with the new strict cmp. 10. `extern cident(blabla) as dmlident;`. 11. Improved deserialization logic for arrays; doesn't need a stack frame per dimension
1 parent 33c0853 commit 54eb78b

37 files changed

+6440
-880
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
*~
22
*.pyc
3+
flycheck_*

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ SCRIPTS := $(PYTHONPATH)/port_dml.py
8181
MPL_LICENSE := $(PYTHONPATH)/LICENSE
8282
BSD0_LICENSES := $(addsuffix /LICENSE,$(DMLLIB_DESTDIRS) $(OLD_DMLLIB_DESTDIRS_4_8) $(DMLLIB_DEST)/include/simics)
8383

84-
HFILES := $(DMLLIB_DEST)/include/simics/dmllib.h
84+
HFILES := $(DMLLIB_DEST)/include/simics/dmllib.h $(DMLLIB_DEST)/include/simics/dmlraiitypes.h
8585

8686
DMLC_BIN := $(OUT_PYFILES) $(OUT_GEN_PYFILES) $(HFILES)
8787

doc/1.4/language.md

Lines changed: 331 additions & 7 deletions
Large diffs are not rendered by default.

include/simics/dmllib.h

Lines changed: 566 additions & 94 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)