view interps/c-intercal/coopt.sh @ 11562:6b0304dcec5c draft

<oerjan> ` cd bin; cp welcome \xd0\xb4\xd0\xbe\xd0\xb1\xd1\x80\xd0\xbe-\xd0\xbf\xd0\xbe\xd0\xb6\xd0\xb0\xd0\xbb\xd0\xbe\xd0\xb2\xd0\xb0\xd1\x82\xd1\x8c; sled \xd0\xb4\xd0\xbe\xd0\xb1\xd1\x80\xd0\xbe-\xd0\xbf\xd0\xbe\xd0\xb6\xd0\xb0\xd0\xbb\xd0\xbe\xd0\xb2\xd0\xb0\xd1\x82\xd1\x8c//s,welcome,welcome.ru,
author HackEso <hackeso@esolangs.org>
date Wed, 16 May 2018 04:46:17 +0100
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 +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
echo "#! /bin/sh
cat <<'ickoutTERM???!'" | cat - icktemp.out > $1
chmod +x $1
rm icktemp.out
exit 0