All notable changes to this project will be documented in this file.
xxx
- New
Block::add_comment
API to add comments inside blocks;Block::items
is nowVec<BlockItem>
instead ofVec<Statement>
(#25). - New
Type::Zero
for internal zero-sized type representation. (#27) - Debug instruction support with
Instr::DbgFile
andInstr::DbgLoc
for source mapping. (#27)
- BREAKING: New field
Option<u64>
insideInstr::Call
to specify variadic arguments (#24).
- Various
new()
functions now takeInto<String>
instead of aString
(#15) - Add unsigned and signed variants of sub-word types:
Type::SignedByte
,Type::UnsignedByte
,Type::SignedHalfword
,Type::UnsignedHalfword
(#23)
This release prepares the lib for the upcoming QBE 1.1.
Type::size()
can now correctly calculate the size of aggregate types (#12).Function::add_block()
returns a reference to the created block (#18)- Add
blit
instruction, in preparation for QBE release 1.1 (#20).
Type::Aggregate
now takes aTypeDef
instead of the name of a type (#12).- Deprecated
Function::last_block()
(#18)
Function
andDataDef
now have anew
constructorModule
now implements common traits (Debug
,Clone
,Eq
,PartialEq
,Ord
,PartialOrd
,Hash
,Default
andCopy
)
Module::add_function
,Module::add_type
andModule::add_data
now consume their corresponding structs, instead of constructing them
- Data types now implement common traits (
Debug
,Clone
,Eq
,PartialEq
,Ord
,PartialOrd
,Hash
,Default
andCopy
) where applicable - Added
Linkage
data type (seeLinkage
) - Added a
Module
data type that houses functions and data definitions
- Remove
Qbe
prefix from data structures.QbeValue
becomesqbe::Value
- The
exported
flag of aFunction
has been replaced withLinkage
- Tests
- Hello World example
QbeBlock
now hasstatements
instead ofinstructions
- Initial release (taken over from the Antimony project)