update eval.c to support stack