BINARY_NAME=lambda TEST=simple .PHONY: help build run profile explain graph docs .DEFAULT_GOAL := help help: @ echo "Available targets:" @ echo " build - Build the lambda executable" @ echo " run - Build and run the lambda interpreter (use TEST= to specify sample)" @ echo " profile - Build and run with CPU profiling enabled" @ echo " explain - Build and run with explanation mode and profiling" @ echo " graph - Generate and open CPU profile visualization" @ echo " docs - Start local godoc server on port 6060" build: @ go build -o ${BINARY_NAME} ./cmd/lambda @ chmod +x ${BINARY_NAME} run: build @ ./${BINARY_NAME} - < ./samples/$(TEST).txt > program.out profile: build @ ./${BINARY_NAME} -p profile/cpu.prof - < ./samples/$(TEST).txt > program.out explain: build @ ./${BINARY_NAME} -x -p profile/cpu.prof - < ./samples/$(TEST).txt > program.out graph: @ go tool pprof -raw -output=profile/cpu.raw profile/cpu.prof @ go tool pprof -svg profile/cpu.prof > profile/cpu.svg @ open profile/cpu.svg docs: @ echo ">>> View at 'http://localhost:6060/pkg/git.maximhutz.com/max/lambda/'" @ go run golang.org/x/tools/cmd/godoc@latest -http=:6060