(self, size: Union[int, UnknownSize])
return address
Gives an address for a new memory chunck of <size> bytes.

        :param size: The requested size for the chunck, in number of bytes.
        :return: The address of the chunck.
Gives an address for a new memory chunck of <size> bytes.
Gives an address for a new memory chunck of <size > bytes .
def allocate(self, size: Union[int, UnknownSize]) -> HeapAddress:
        """
        Gives an address for a new memory chunck of <size> bytes.

        :param size: The requested size for the chunck, in number of bytes.
        :return: The address of the chunck.
        """
        address = self._next_heap_address

        size = self._canonical_size if isinstance(size, UnknownSize) else size
        self._next_heap_address += size

        self._allocated_addresses += [self._next_heap_address]

        return address
def allocate ( self , size : Union [ int , UnknownSize ] ) -> HeapAddress : address = self . _next_heap_address size = self . _canonical_size if isinstance ( size , UnknownSize ) else size self . _next_heap_address += size self . _allocated_addresses += [ self . _next_heap_address ] return address