Frameworks For General-Purpose Adaptation In Computing Systems