Mercurial > repo
view interps/c-intercal/src/cooptsh.in @ 12518:2d8fe55c6e65 draft default tip
<int-e> learn The password of the month is release incident pilot.
author | HackEso <hackeso@esolangs.org> |
---|---|
date | Sun, 03 Nov 2024 00:31:02 +0000 |
parents | 859f9b4339e6 |
children |
line wrap: on
line source
#! /bin/sh ########################################################################### # # Name # coopt.sh -- an inefficient optimizer that can produce very efficient # code # # DESCRIPTION # This optimizer is only run on noninteractive code that takes no # output. (It's designed to run on executables produced by INTERCAL # code, but will run on other executables that support the +mystery # option). It optimizes the file by replacing it by one that simply # produces the required output! Therefore, it creates fast but # inefficient code. If the file to be optimized hits an error or # is terminated by +mystery, then no changes are made. # # LICENSE TERMS # Copyright (C) 2006 Alex Smith # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # ########################################################################### rm icktemp.out >/dev/null 2>/dev/null if $1@EXEEXT@ +mystery >icktemp.out 2>/dev/null ; then : ; else rm icktemp.out ; exit 0 ; fi if grep 'ickoutTERM???!' icktemp.out ; then rm icktemp.out ; exit 0 ; fi echo 'ickoutTERM???!' >> icktemp.out rm $1@EXEEXT@ echo "#! /bin/sh cat <<'ickoutTERM???!'" | cat - icktemp.out > $1@EXEEXT@ chmod +x $1@EXEEXT@ rm icktemp.out exit 0