Mercurial > repo
view interps/c-intercal/coopt.sh @ 5674:91d4a5b788c9
<tswett> echo \'[11,11,11,15,15,23,12],[5,5,5,3,53,45,16,26,00,20,15,16,22,25,45,91,32,11,15,27,06,01,11,01,47,22,30,13,43,21,11,13,29,61,65,17,19,12,28,17,11,01,23,20,16,20,81,18,32,25,58,22.,1985,10.301350435,1555466973690094680980000956080767,13720946704494913791885940266665466978579582015128512190078...\' > wisdom/code
author | HackBot |
---|---|
date | Wed, 24 Jun 2015 14:47:46 +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 +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