code: def release(self, sim_size):
          
          requested = self._conc_alloc_size(sim_size)
          used = self.heap_location - self.heap_base
          released = requested if requested <= used else used
          self.heap_location -= released
          l.debug("Releasing %d bytes from the heap (%d bytes were requested to be released)", released, requested)
docs: The memory release primitive for this heap implementation. Decreases the position of the break to deallocate
          space. Guards against releasing beyond the initial heap base.
  
          :param sim_size: a size specifying how much to decrease the break pointer by (may be symbolic or not)