Changes between Initial Version and Version 1 of ParrotHackList

Show
Ignore:
Timestamp:
12/28/10 23:52:47 (11 years ago)
Author:
Yuki`N
Comment:

Initial script (first revision) output.

Legend:

Unmodified
Added
Removed
Modified
  • ParrotHackList

    v1 v1  
     1= Parrot HACK List = 
     2 
     3  * [https://github.com/parrot/parrot/blob/master/compilers/pge/PGE/P5Regex.pir#L115 compilers/pge/PGE/P5Regex.pir:115][[br]] 
     4{{{ 
     5optable.'newtok'('close:}', 'looser'=>'infix:|', 'nows'=>1)            # XXX: hack 
     6}}} 
     7 
     8  * [https://github.com/parrot/parrot/blob/master/compilers/imcc/imcc.l#L43 compilers/imcc/imcc.l:43][[br]] 
     9{{{ 
     10/* parser state structure 
     11 * the first few items are common to struct parser_state, but 
     12 * we AFAIK need this hack as flex doesn't export YY_BUFFER_STATE */ 
     13}}} 
     14 
     15  * [https://github.com/parrot/parrot/blob/master/compilers/imcc/imclexer.c#L2416 compilers/imcc/imclexer.c:2416][[br]] 
     16{{{ 
     17/* parser state structure 
     18 * the first few items are common to struct parser_state, but 
     19 * we AFAIK need this hack as flex doesn't export YY_BUFFER_STATE */ 
     20}}} 
     21 
     22  * [https://github.com/parrot/parrot/blob/master/compilers/pct/src/PCT/Grammar.pir#L187 compilers/pct/src/PCT/Grammar.pir:187][[br]] 
     23{{{ 
     24##  the 'o', 'd', or 'x' into 8, 10, or 16 (yes, it's hack 
     25}}} 
     26 
     27  * [https://github.com/parrot/parrot/blob/master/src/embed/api.c#L708 src/embed/api.c:708][[br]] 
     28{{{ 
     29=item C<Parrot_Int Parrot_api_wrap_imcc_hack(Parrot_PMC interp_pmc, const char * 
     30}}} 
     31 
     32  * [https://github.com/parrot/parrot/blob/master/src/embed/api.c#L710 src/embed/api.c:710][[br]] 
     33{{{ 
     34imcc_hack_func_t func)> 
     35}}} 
     36 
     37  * [https://github.com/parrot/parrot/blob/master/src/embed/api.c#L712 src/embed/api.c:712][[br]] 
     38{{{ 
     39WARNING: This is an evil hack to provide a wrapper around IMCC to catch unhandled 
     40}}} 
     41 
     42  * [https://github.com/parrot/parrot/blob/master/src/embed/api.c#L725 src/embed/api.c:725][[br]] 
     43{{{ 
     44Parrot_api_wrap_imcc_hack(Parrot_PMC interp_pmc, const char * sourcefile, 
     45}}} 
     46 
     47  * [https://github.com/parrot/parrot/blob/master/src/embed/api.c#L727 src/embed/api.c:727][[br]] 
     48{{{ 
     49imcc_hack_func_t func) 
     50}}} 
     51 
     52  * [https://github.com/parrot/parrot/blob/master/src/embed/api.c#L729 src/embed/api.c:729][[br]] 
     53{{{ 
     54ASSERT_ARGS(Parrot_api_wrap_imcc_hack) 
     55}}} 
     56 
     57  * [https://github.com/parrot/parrot/blob/master/src/nci/extra_thunks.c#L37 src/nci/extra_thunks.c:37][[br]] 
     58{{{ 
     59/* All our static functions that call in various ways. Yes, terribly 
     60   hackish, but that is just fine */ 
     61}}} 
     62 
     63  * [https://github.com/parrot/parrot/blob/master/src/nci/core_thunks.c#L37 src/nci/core_thunks.c:37][[br]] 
     64{{{ 
     65/* All our static functions that call in various ways. Yes, terribly 
     66   hackish, but that is just fine */ 
     67}}} 
     68 
     69  * [https://github.com/parrot/parrot/blob/master/src/packfile/api.c#L2237 src/packfile/api.c:2237][[br]] 
     70{{{ 
     71* Temporary? hack to put ConstantTable in front of other segments. 
     72}}} 
     73 
     74  * [https://github.com/parrot/parrot/blob/master/src/oo.c#L253 src/oo.c:253][[br]] 
     75{{{ 
     76        /* This is a hack! All PMCs should be able to be handled through 
     77           a single codepath, and all of them should be able to avoid 
     78           stringification because it's so imprecise. */ 
     79}}} 
     80 
     81  * [https://github.com/parrot/parrot/blob/master/src/pmc/parrotinterpreter.c#L447 src/pmc/parrotinterpreter.c:447][[br]] 
     82{{{ 
     83/* quick hack to get the global stash */ 
     84}}} 
     85 
     86  * [https://github.com/parrot/parrot/blob/master/src/pmc/namespace.c#L710 src/pmc/namespace.c:710][[br]] 
     87{{{ 
     88/* TODO - this hack needs to go */ 
     89}}} 
     90 
     91  * [https://github.com/parrot/parrot/blob/master/src/pmc/null.c#L547 src/pmc/null.c:547][[br]] 
     92{{{ 
     93/* XXX maybe a hack to get TGE running again */ 
     94}}} 
     95 
     96  * [https://github.com/parrot/parrot/blob/master/src/pmc/class.pmc#L1719 src/pmc/class.pmc:1719][[br]] 
     97{{{ 
     98This is just a temporary hack. Type ID numbers shouldn't be externally 
     99}}} 
     100 
     101  * [https://github.com/parrot/parrot/blob/master/src/pmc/scheduler.c#L93 src/pmc/scheduler.c:93][[br]] 
     102{{{ 
     103    /* TT #946: this line is causing an order-of-destruction error 
     104       because the scheduler is being freed before its tasks. 
     105       Commenting this out till we get a real fix (although it's a hack) */ 
     106}}} 
     107 
     108  * [https://github.com/parrot/parrot/blob/master/src/pmc/fixedintegerarray.c#L96 src/pmc/fixedintegerarray.c:96][[br]] 
     109{{{ 
     110    /* a quick hack to create a clone in the constant PMC arena 
     111     * this is needed for the call signatures 
     112     * 
     113     * a better way would be probably to supply a flag to the clone 
     114     * vtable 
     115     */ 
     116}}} 
     117 
     118  * [https://github.com/parrot/parrot/blob/master/src/pmc/null.pmc#L63 src/pmc/null.pmc:63][[br]] 
     119{{{ 
     120/* XXX maybe a hack to get TGE running again */ 
     121}}} 
     122 
     123  * [https://github.com/parrot/parrot/blob/master/src/pmc/threadinterpreter.pmc#L44 src/pmc/threadinterpreter.pmc:44][[br]] 
     124{{{ 
     125* XXX a quick hack to pass the few tests 
     126}}} 
     127 
     128  * [https://github.com/parrot/parrot/blob/master/src/pmc/parrotinterpreter.pmc#L429 src/pmc/parrotinterpreter.pmc:429][[br]] 
     129{{{ 
     130/* quick hack to get the global stash */ 
     131}}} 
     132 
     133  * [https://github.com/parrot/parrot/blob/master/src/pmc/scheduler.pmc#L256 src/pmc/scheduler.pmc:256][[br]] 
     134{{{ 
     135        /* TT #946: this line is causing an order-of-destruction error 
     136           because the scheduler is being freed before its tasks. 
     137           Commenting this out till we get a real fix (although it's a hack) */ 
     138}}} 
     139 
     140  * [https://github.com/parrot/parrot/blob/master/src/pmc/complex.pmc#L554 src/pmc/complex.pmc:554][[br]] 
     141{{{ 
     142Quick hack to emulate get_real() and get_imag(): 
     143}}} 
     144 
     145  * [https://github.com/parrot/parrot/blob/master/src/pmc/namespace.pmc#L468 src/pmc/namespace.pmc:468][[br]] 
     146{{{ 
     147/* TODO - this hack needs to go */ 
     148}}} 
     149 
     150  * [https://github.com/parrot/parrot/blob/master/src/pmc/fixedintegerarray.pmc#L102 src/pmc/fixedintegerarray.pmc:102][[br]] 
     151{{{ 
     152        /* a quick hack to create a clone in the constant PMC arena 
     153         * this is needed for the call signatures 
     154         * 
     155         * a better way would be probably to supply a flag to the clone 
     156         * vtable 
     157         */ 
     158}}} 
     159 
     160  * [https://github.com/parrot/parrot/blob/master/src/pmc/threadinterpreter.c#L67 src/pmc/threadinterpreter.c:67][[br]] 
     161{{{ 
     162* XXX a quick hack to pass the few tests 
     163}}} 
     164 
     165  * [https://github.com/parrot/parrot/blob/master/src/call/args.c#L1161 src/call/args.c:1161][[br]] 
     166{{{ 
     167                /* The 'return' above is a temporary hack to duplicate an old 
     168                 * bug, and will be replaced by the exception below at the next 
     169                 * deprecation point, see TT #1103 
     170 
     171                Parrot_ex_throw_from_c_args(interp, NULL, 
     172                    EXCEPTION_INVALID_OPERATION, 
     173                    "too many named arguments: %d passed, 0 used", 
     174                    named_arg_count); 
     175                 */ 
     176}}} 
     177 
     178  * [https://github.com/parrot/parrot/blob/master/src/extra_nci_thunks.c#L37 src/extra_nci_thunks.c:37][[br]] 
     179{{{ 
     180/* All our static functions that call in various ways. Yes, terribly 
     181   hackish, but that is just fine */ 
     182}}} 
     183 
     184  * [https://github.com/parrot/parrot/blob/master/src/thread.c#L757 src/thread.c:757][[br]] 
     185{{{ 
     186* XXX a quick hack to pass the few tests 
     187}}} 
     188 
     189  * [https://github.com/parrot/parrot/blob/master/src/gc/string_gc.c#L1015 src/gc/string_gc.c:1015][[br]] 
     190{{{ 
     191        /* Somewhat of a hack, but if we get per-pool 
     192            * collections, it should help ease the pain */ 
     193}}} 
     194 
     195  * [https://github.com/parrot/parrot/blob/master/src/gc/malloc.c#L2738 src/gc/malloc.c:2738][[br]] 
     196{{{ 
     197probably figure out how to hack this routine to print out or 
     198}}} 
     199 
     200  * [https://github.com/parrot/parrot/blob/master/src/gc/system.c#L125 src/gc/system.c:125][[br]] 
     201{{{ 
     202double align_hack[2]; 
     203}}} 
     204 
     205  * [https://github.com/parrot/parrot/blob/master/src/gc/system.c#L138 src/gc/system.c:138][[br]] 
     206{{{ 
     207static void (*fn_ptr)(void) = (void (*)(void))&u.align_hack[0]; 
     208}}} 
     209 
     210  * [https://github.com/parrot/parrot/blob/master/src/debug.c#L3520 src/debug.c:3520][[br]] 
     211{{{ 
     212            /* This hack is needed because we occasionally are told 
     213               that we have string registers when we actually don't */ 
     214}}} 
     215 
     216  * [https://github.com/parrot/parrot/blob/master/lib/Pod/Simple/HTML.pm#L283 lib/Pod/Simple/HTML.pm:283][[br]] 
     217{{{ 
     218unless($$text_r and $$text_r =~ m/name=['"]___top['"]/) { # a hack 
     219}}} 
     220 
     221  * [https://github.com/parrot/parrot/blob/master/lib/Pod/Simple/HTML.pm#L331 lib/Pod/Simple/HTML.pm:331][[br]] 
     222{{{ 
     223# An efficiency hack 
     224}}} 
     225 
     226  * [https://github.com/parrot/parrot/blob/master/lib/Pod/Simple/HTML.pm#L456 lib/Pod/Simple/HTML.pm:456][[br]] 
     227{{{ 
     228# TODO: support for X<...>'s found in here?  (maybe hack into linearize_tokens) 
     229}}} 
     230 
     231  * [https://github.com/parrot/parrot/blob/master/lib/Pod/Simple/HTML.pm#L579 lib/Pod/Simple/HTML.pm:579][[br]] 
     232{{{ 
     233# An early hack: 
     234}}} 
     235 
     236  * [https://github.com/parrot/parrot/blob/master/lib/Pod/Simple/HTML.pm#L592 lib/Pod/Simple/HTML.pm:592][[br]] 
     237{{{ 
     238# Give this routine first hack again 
     239}}} 
     240 
     241  * [https://github.com/parrot/parrot/blob/master/lib/Pod/Simple/HTML.pm#L725 lib/Pod/Simple/HTML.pm:725][[br]] 
     242{{{ 
     243# A crazy hack to allow specifying custom L<foo> => URL mappings 
     244}}} 
     245 
     246  * [https://github.com/parrot/parrot/blob/master/lib/Pod/Simple/RTF.pm#L57 lib/Pod/Simple/RTF.pm:57][[br]] 
     247{{{ 
     248# Bit of a hack here: 
     249}}} 
     250 
     251  * [https://github.com/parrot/parrot/blob/master/lib/Pod/Simple/BlackBox.pm#L711 lib/Pod/Simple/BlackBox.pm:711][[br]] 
     252{{{ 
     253if( $para->[1]{'~_freaky_para_hack'} ) { 
     254}}} 
     255 
     256  * [https://github.com/parrot/parrot/blob/master/lib/Pod/Simple/BlackBox.pm#L712 lib/Pod/Simple/BlackBox.pm:712][[br]] 
     257{{{ 
     258DEBUG and print "Accomodating '=item * Foo' tolerance hack.\n"; 
     259}}} 
     260 
     261  * [https://github.com/parrot/parrot/blob/master/lib/Pod/Simple/BlackBox.pm#L713 lib/Pod/Simple/BlackBox.pm:713][[br]] 
     262{{{ 
     263push @$para, delete $para->[1]{'~_freaky_para_hack'}; 
     264}}} 
     265 
     266  * [https://github.com/parrot/parrot/blob/master/lib/Pod/Simple/BlackBox.pm#L1304 lib/Pod/Simple/BlackBox.pm:1304][[br]] 
     267{{{ 
     268if( $para->[1]{'~_freaky_para_hack'} ) { 
     269}}} 
     270 
     271  * [https://github.com/parrot/parrot/blob/master/lib/Pod/Simple/BlackBox.pm#L1305 lib/Pod/Simple/BlackBox.pm:1305][[br]] 
     272{{{ 
     273DEBUG and print "Accomodating '=item * Foo' tolerance hack.\n"; 
     274}}} 
     275 
     276  * [https://github.com/parrot/parrot/blob/master/lib/Pod/Simple/BlackBox.pm#L1306 lib/Pod/Simple/BlackBox.pm:1306][[br]] 
     277{{{ 
     278push @$para, delete $para->[1]{'~_freaky_para_hack'}; 
     279}}} 
     280 
     281  * [https://github.com/parrot/parrot/blob/master/lib/Pod/Simple.pm#L507 lib/Pod/Simple.pm:507][[br]] 
     282{{{ 
     283# A hack-wrapper here for when you have like "=over\n\n=item 456\n\n" 
     284}}} 
     285 
     286  * [https://github.com/parrot/parrot/blob/master/lib/Pod/Simple.pm#L538 lib/Pod/Simple.pm:538][[br]] 
     287{{{ 
     288$para->[1]{'~_freaky_para_hack'} = $1; 
     289}}} 
     290 
     291  * [https://github.com/parrot/parrot/blob/master/lib/Pod/Simple.pm#L571 lib/Pod/Simple.pm:571][[br]] 
     292{{{ 
     293DEBUG and print "Applying precooked treelet hack to $_[0][0]\n"; 
     294}}} 
     295 
     296  * [https://github.com/parrot/parrot/blob/master/lib/Pod/Simple.pm#L1413 lib/Pod/Simple.pm:1413][[br]] 
     297{{{ 
     298next if $attrname =~ m/::/; # a hack 
     299}}} 
     300 
     301  * [https://github.com/parrot/parrot/blob/master/lib/Parrot/Docs/File.pm#L70 lib/Parrot/Docs/File.pm:70][[br]] 
     302{{{ 
     303'hacking'      => 'README file', 
     304}}} 
     305 
     306  * [https://github.com/parrot/parrot/blob/master/lib/Parrot/Docs/POD2HTML.pm#L249 lib/Parrot/Docs/POD2HTML.pm:249][[br]] 
     307{{{ 
     308# A little bit of a hack to avoid config template files. 
     309}}} 
     310 
     311  * [https://github.com/parrot/parrot/blob/master/lib/Parrot/Configure/Options/Conf.pm#L84 lib/Parrot/Configure/Options/Conf.pm:84][[br]] 
     312{{{ 
     313--define=inet_aton   Quick hack to use inet_aton instead of inet_pton 
     314}}} 
     315 
     316  * [https://github.com/parrot/parrot/blob/master/ports/fedora/2.11.0/parrot.spec#L137 ports/fedora/2.11.0/parrot.spec:137][[br]] 
     317{{{ 
     318# The LD_LIBRARY_PATH hack is needed for "miniparrot" 
     319}}} 
     320 
     321  * [https://github.com/parrot/parrot/blob/master/ports/fedora/2.11.0/parrot.spec#L149 ports/fedora/2.11.0/parrot.spec:149][[br]] 
     322{{{ 
     323# The LD_LIBRARY_PATH hack is needed for the command "pbc_to_exe parrot-nqp.pbc" 
     324}}} 
     325 
     326  * [https://github.com/parrot/parrot/blob/master/ports/cygwin/README#L1711 ports/cygwin/README:1711][[br]] 
     327{{{ 
     328/usr/share/doc/parrot/1.0.0/html/t/op/hacks.t.html 
     329}}} 
     330 
     331  * [https://github.com/parrot/parrot/blob/master/ports/cygwin/README#L1895 ports/cygwin/README:1895][[br]] 
     332{{{ 
     333* removed the postinstall and preremove hacks 
     334}}} 
     335 
     336  * [https://github.com/parrot/parrot/blob/master/include/parrot/api.h#L18 include/parrot/api.h:18][[br]] 
     337{{{ 
     338typedef int (*imcc_hack_func_t)(Parrot_PMC, const char *, int, const char **, Parrot_PMC*); 
     339}}} 
     340 
     341  * [https://github.com/parrot/parrot/blob/master/include/parrot/api.h#L232 include/parrot/api.h:232][[br]] 
     342{{{ 
     343Parrot_Int Parrot_api_wrap_imcc_hack( 
     344}}} 
     345 
     346  * [https://github.com/parrot/parrot/blob/master/include/parrot/api.h#L239 include/parrot/api.h:239][[br]] 
     347{{{ 
     348imcc_hack_func_t func); 
     349}}} 
     350 
     351  * [https://github.com/parrot/parrot/blob/master/include/parrot/api.h#L292 include/parrot/api.h:292][[br]] 
     352{{{ 
     353#define ASSERT_ARGS_Parrot_api_wrap_imcc_hack __attribute__unused__ int _ASSERT_ARGS_CHECK = (0) 
     354}}} 
     355 
     356  * [https://github.com/parrot/parrot/blob/master/include/parrot/caches.h#L16 include/parrot/caches.h:16][[br]] 
     357{{{ 
     358/* turn off this hack, we need something better */ 
     359}}} 
     360 
     361  * [https://github.com/parrot/parrot/blob/master/config/gen/opengl.pm#L373 config/gen/opengl.pm:373][[br]] 
     362{{{ 
     363# Ignore internal GLUT Win32 compatibility hackage 
     364}}} 
     365 
     366  * [https://github.com/parrot/parrot/blob/master/config/gen/makefiles/root.in#L643 config/gen/makefiles/root.in:643][[br]] 
     367{{{ 
     368# We build DYNPMC_TARGET in corevm. It's kinda hack to test t/pmc/threads.t CLONE_LIBRARIES 
     369}}} 
     370 
     371  * [https://github.com/parrot/parrot/blob/master/config/inter/make.pm#L122 config/inter/make.pm:122][[br]] 
     372{{{ 
     373# TT #1049: this is an ugly hack 
     374}}} 
     375 
     376  * [https://github.com/parrot/parrot/blob/master/config/auto/headers.pm#L41 config/auto/headers.pm:41][[br]] 
     377{{{ 
     378# headers we found so far. This is somewhat a hack, but makes probing 
     379}}} 
     380 
     381  * [https://github.com/parrot/parrot/blob/master/t/pmc/class.t#L83 t/pmc/class.t:83][[br]] 
     382{{{ 
     383$I0 = 1        # hack for testing exceptions 
     384}}} 
     385 
     386  * [https://github.com/parrot/parrot/blob/master/t/pmc/signal.t#L46 t/pmc/signal.t:46][[br]] 
     387{{{ 
     388# This is a non-portable hack. 
     389}}} 
     390 
     391  * [https://github.com/parrot/parrot/blob/master/t/pmc/fixedpmcarray.t#L566 t/pmc/fixedpmcarray.t:566][[br]] 
     392{{{ 
     393arr[3] = 'hacker' 
     394}}} 
     395 
     396  * [https://github.com/parrot/parrot/blob/master/t/pmc/fixedpmcarray.t#L572 t/pmc/fixedpmcarray.t:572][[br]] 
     397{{{ 
     398sorted_arr[1] = 'hacker' 
     399}}} 
     400 
     401  * [https://github.com/parrot/parrot/blob/master/t/op/sprintf_tests#L201 t/op/sprintf_tests:201][[br]] 
     402{{{ 
     403%d      $p=sprintf('%p',$p);$p=~/^[0-9a-f]+$/   1       Coarse hack: hex from %p? 
     404}}} 
     405 
     406  * [https://github.com/parrot/parrot/blob/master/t/op/sprintf_tests#L202 t/op/sprintf_tests:202][[br]] 
     407{{{ 
     408%d      $p=sprintf('%-8p',$p);$p=~/^[0-9a-f]+\s*$/      1       Coarse hack: hex from %p? 
     409}}} 
     410 
     411  * [https://github.com/parrot/parrot/blob/master/t/benchmark/benchmarks.t#L194 t/benchmark/benchmarks.t:194][[br]] 
     412{{{ 
     413q{vpm.pir} => qq(100000;\nl hackerjust another per\n) 
     414}}} 
     415 
     416  * [https://github.com/parrot/parrot/blob/master/t/configure/034-step.t#L143 t/configure/034-step.t:143][[br]] 
     417{{{ 
     418my $line = q{$(basename   morgan/lefay/abra.ca.dabra src/foo.c              hacks)}; 
     419}}} 
     420 
     421  * [https://github.com/parrot/parrot/blob/master/t/configure/034-step.t#L162 t/configure/034-step.t:162][[br]] 
     422{{{ 
     423my $line = q{$(notdir morgan/lefay/abra.ca.dabra src/foo.c          hacks)}; 
     424}}} 
     425 
     426  * [https://github.com/parrot/parrot/blob/master/t/codingstd/c_returns.t#L30 t/codingstd/c_returns.t:30][[br]] 
     427{{{ 
     428This test was hacked from the C<check_returns> sub in 
     429}}} 
     430 
     431  * [https://github.com/parrot/parrot/blob/master/CREDITS#L273 CREDITS:273][[br]] 
     432{{{ 
     433D: nqp hackery 
     434}}} 
     435 
     436  * [https://github.com/parrot/parrot/blob/master/tools/release/templates.json#L32 tools/release/templates.json:32][[br]] 
     437{{{ 
     438instructions</a>. For those who want to hack on Parrot or languages that run on top of Parrot, 
     439}}} 
     440 
     441  * [https://github.com/parrot/parrot/blob/master/tools/dev/nci_thunk_gen.pir#L351 tools/dev/nci_thunk_gen.pir:351][[br]] 
     442{{{ 
     443/* All our static functions that call in various ways. Yes, terribly 
     444   hackish, but that is just fine */ 
     445}}} 
     446 
     447  * [https://github.com/parrot/parrot/blob/master/tools/dev/parrot-fuzzer#L468 tools/dev/parrot-fuzzer:468][[br]] 
     448{{{ 
     449#This is a moderately fragile hack that relies on the specific 
     450}}} 
     451 
     452  * [https://github.com/parrot/parrot/blob/master/tools/dev/findhacks.pl#L8 tools/dev/findhacks.pl:8][[br]] 
     453{{{ 
     454tools/dev/findhacks.pl - Generates a TracWiki formatted list of 'hack' 
     455}}} 
     456 
     457  * [https://github.com/parrot/parrot/blob/master/tools/dev/findhacks.pl#L13 tools/dev/findhacks.pl:13][[br]] 
     458{{{ 
     459$ perl tools/dev/findhacks.pl 
     460}}} 
     461 
     462  * [https://github.com/parrot/parrot/blob/master/tools/dev/findhacks.pl#L18 tools/dev/findhacks.pl:18][[br]] 
     463{{{ 
     464looks for all instances of the word 'hack' in the source. It then outputs a 
     465}}} 
     466 
     467  * [https://github.com/parrot/parrot/blob/master/tools/dev/findhacks.pl#L25 tools/dev/findhacks.pl:25][[br]] 
     468{{{ 
     469open(HACKS, '-|', 'grep -rIn hack .') || die "Could not grep! $!\n"; 
     470}}} 
     471 
     472  * [https://github.com/parrot/parrot/blob/master/tools/dev/findhacks.pl#L29 tools/dev/findhacks.pl:29][[br]] 
     473{{{ 
     474if(/^.\/(.+?):([0-9]+):(.*hack.*)$/i) { 
     475}}} 
     476 
     477  * [https://github.com/parrot/parrot/blob/master/tools/dev/findhacks.pl#L84 tools/dev/findhacks.pl:84][[br]] 
     478{{{ 
     479Automatically generated by tools/dev/findhacks.pl 
     480}}} 
     481 
     482  * [https://github.com/parrot/parrot/blob/master/docs/pdds/pdd21_namespaces.pod#L328 docs/pdds/pdd21_namespaces.pod:328][[br]] 
     483{{{ 
     484Note that this method is basically a convenience and/or performance hack, as 
     485}}} 
     486 
     487  * [https://github.com/parrot/parrot/blob/master/docs/pdds/pdd03_calling_conventions.pod#L54 docs/pdds/pdd03_calling_conventions.pod:54][[br]] 
     488{{{ 
     489opcodes.  But for now, certain efficiency hacks are easier with four opcodes. 
     490}}} 
     491 
     492  * [https://github.com/parrot/parrot/blob/master/docs/book/draft/chXX_library.pod#L22 docs/book/draft/chXX_library.pod:22][[br]] 
     493{{{ 
     494that can be used by Parrot hackers and HLL-implementers alike, if needed. 
     495}}} 
     496 
     497  * [https://github.com/parrot/parrot/blob/master/docs/book/draft/chXX_library.pod#L46 docs/book/draft/chXX_library.pod:46][[br]] 
     498{{{ 
     499project, and since a number of Perl hackers are very active in Parrot, 
     500}}} 
     501 
     502  * [https://github.com/parrot/parrot/blob/master/docs/book/draft/appd_build_options.pod#L37 docs/book/draft/appd_build_options.pod:37][[br]] 
     503{{{ 
     504unless you are planning to hack on IMCC directly. 
     505}}} 
     506 
     507  * [https://github.com/parrot/parrot/blob/master/docs/dev/pmc_obj_design_meeting_notes.pod#L7 docs/dev/pmc_obj_design_meeting_notes.pod:7][[br]] 
     508{{{ 
     509be found at L<http://rakudo.org/hackathon-chicago/index.cgi?object> and 
     510}}} 
     511 
     512  * [https://github.com/parrot/parrot/blob/master/docs/dev/pmc_obj_design_meeting_notes.pod#L8 docs/dev/pmc_obj_design_meeting_notes.pod:8][[br]] 
     513{{{ 
     514L<http://rakudo.org/hackathon-chicago/index.cgi?pmc>. A log of the discussion 
     515}}} 
     516 
     517  * [https://github.com/parrot/parrot/blob/master/docs/project/cage_cleaners_guide.pod#L303 docs/project/cage_cleaners_guide.pod:303][[br]] 
     518{{{ 
     519=head2 Help other contributors hack their patches into Parrot-style industrial-strength C code. 
     520}}} 
     521 
     522  * [https://github.com/parrot/parrot/blob/master/examples/tools/pgegrep#L145 examples/tools/pgegrep:145][[br]] 
     523{{{ 
     524stdindashhack: 
     525}}} 
     526 
     527  * [https://github.com/parrot/parrot/blob/master/examples/tools/pgegrep#L148 examples/tools/pgegrep:148][[br]] 
     528{{{ 
     529goto stdinhack 
     530}}} 
     531 
     532  * [https://github.com/parrot/parrot/blob/master/examples/tools/pgegrep#L153 examples/tools/pgegrep:153][[br]] 
     533{{{ 
     534goto stdindashhack 
     535}}} 
     536 
     537  * [https://github.com/parrot/parrot/blob/master/examples/tools/pgegrep#L185 examples/tools/pgegrep:185][[br]] 
     538{{{ 
     539stdinhack: 
     540}}} 
     541 
     542  * [https://github.com/parrot/parrot/blob/master/examples/io/httpd.pir#L82 examples/io/httpd.pir:82][[br]] 
     543{{{ 
     544The code was heavily hacked by bernhard and leo. 
     545}}} 
     546 
     547  * [https://github.com/parrot/parrot/blob/master/examples/benchmarks/vpm.pir#L11 examples/benchmarks/vpm.pir:11][[br]] 
     548{{{ 
     549_string = "just another perl hacker" 
     550}}} 
     551 
     552  * [https://github.com/parrot/parrot/blob/master/examples/benchmarks/vpm.rb#L4 examples/benchmarks/vpm.rb:4][[br]] 
     553{{{ 
     554string = "just another ruby hacker" 
     555}}} 
     556 
     557  * [https://github.com/parrot/parrot/blob/master/examples/benchmarks/mops.pasm#L32 examples/benchmarks/mops.pasm:32][[br]] 
     558{{{ 
     559# Eeevil hack. 
     560}}} 
     561 
     562  * [https://github.com/parrot/parrot/blob/master/examples/benchmarks/oo1.pir#L17 examples/benchmarks/oo1.pir:17][[br]] 
     563{{{ 
     564# find_global hack              2.16          1.6 
     565}}} 
     566 
     567  * [https://github.com/parrot/parrot/blob/master/examples/benchmarks/oo1.pir#L24 examples/benchmarks/oo1.pir:24][[br]] 
     568{{{ 
     569# find_global hack                            1.51 
     570}}} 
     571 
     572  * [https://github.com/parrot/parrot/blob/master/examples/benchmarks/vpm.pl#L9 examples/benchmarks/vpm.pl:9][[br]] 
     573{{{ 
     574my $string = "just another perl hacker"; 
     575}}} 
     576 
     577  * [https://github.com/parrot/parrot/blob/master/examples/benchmarks/vpm.py#L6 examples/benchmarks/vpm.py:6][[br]] 
     578{{{ 
     579astring = "just another pyth hacker" 
     580}}} 
     581 
     582  * [https://github.com/parrot/parrot/blob/master/examples/shootout/revcomp.pir#L9 examples/shootout/revcomp.pir:9][[br]] 
     583{{{ 
     584# Original by Joshua Isom, heavily hacked by Leopold Toetsch 
     585}}} 
     586 
     587  * [https://github.com/parrot/parrot/blob/master/examples/pir/sudoku.pir#L2426 examples/pir/sudoku.pir:2426][[br]] 
     588{{{ 
     589NB: it seems to be simpler to just hack the code as to utter the 
     590}}} 
     591 
     592  * [https://github.com/parrot/parrot/blob/master/examples/pir/befunge/Changes#L52 examples/pir/befunge/Changes:52][[br]] 
     593{{{ 
     594PMC, and thanks go to Steve Fink for his hack to pop an 
     595}}} 
     596 
     597  * [https://github.com/parrot/parrot/blob/master/examples/pir/befunge/Changes#L57 examples/pir/befunge/Changes:57][[br]] 
     598{{{ 
     599of Clinton Pierce's hack. 
     600}}} 
     601 
     602  * [https://github.com/parrot/parrot/blob/master/examples/c/test_main.c#L170 examples/c/test_main.c:170][[br]] 
     603{{{ 
     604          case '.':  /* Give Windows Parrot hackers an opportunity to 
     605                      * attach a debuggger. */ 
     606}}} 
     607 
     608  * [https://github.com/parrot/parrot/blob/master/examples/README#L14 examples/README:14][[br]] 
     609{{{ 
     610japh       - Say 'Just another Parrot hacker' in various ways 
     611}}} 
     612 
     613  * [https://github.com/parrot/parrot/blob/master/ChangeLog#L951 ChangeLog:951][[br]] 
     614{{{ 
     615Also added small hack for .sub directive (which simply translates 
     616}}} 
     617 
     618  * [https://github.com/parrot/parrot/blob/master/ChangeLog#L4640 ChangeLog:4640][[br]] 
     619{{{ 
     620* core.ops, t/op/hacks.t: Added in the readline op, as well as 
     621}}} 
     622 
     623  * [https://github.com/parrot/parrot/blob/master/ChangeLog#L6994 ChangeLog:6994][[br]] 
     624{{{ 
     625Fixes to make Parrot compile without the temporary build hack 
     626}}} 
     627 
     628  * [https://github.com/parrot/parrot/blob/master/ChangeLog#L7843 ChangeLog:7843][[br]] 
     629{{{ 
     630Small hack to keep process_opfunc.pl from generating extra return() 
     631}}} 
     632 
     633  * [https://github.com/parrot/parrot/blob/master/ChangeLog#L9397 ChangeLog:9397][[br]] 
     634{{{ 
     635Temporary hack to store string constants in bytecode and recreate 
     636}}} 
     637 
     638  * [https://github.com/parrot/parrot/blob/master/frontend/parrot/main.c#L157 frontend/parrot/main.c:157][[br]] 
     639{{{ 
     640if (!Parrot_api_wrap_imcc_hack( 
     641}}} 
     642 
     643  * [https://github.com/parrot/parrot/blob/master/frontend/parrot/main.c#L642 frontend/parrot/main.c:642][[br]] 
     644{{{ 
     645          case '.':  /* Give Windows Parrot hackers an opportunity to 
     646                      * attach a debuggger. */ 
     647}}} 
     648 
     649  * [https://github.com/parrot/parrot/blob/master/editor/mk_skeleton.pir#L4 editor/mk_skeleton.pir:4][[br]] 
     650{{{ 
     651# intended for people who hack on parrot itself, not users of parrot. 
     652}}} 
     653 
     654  * [https://github.com/parrot/parrot/blob/master/Makefile#L701 Makefile:701][[br]] 
     655{{{ 
     656# We build DYNPMC_TARGET in corevm. It's kinda hack to test t/pmc/threads.t CLONE_LIBRARIES 
     657}}} 
     658 
     659{{{ 
     660#!comment 
     661Automatically generated by tools/dev/findhacks.pl 
     662}}}