Ticket #552 (closed bug: fixed)
Evaluate all hack-identifying comments in source code
Reported by: | jkeenan | Owned by: | dukeleto |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | tools | Version: | |
Severity: | medium | Keywords: | hack gci |
Cc: | jkeenan | Language: | |
Patch status: | Platform: | all |
Description
A couple of years back, Paul T Cochrane grepped our repository for 'TODO', 'FIXME' and 'XXX' and created RT tickets for all comments containing these strings. We've incorporated some of that in our test suite.
Tonight I realized that we have many comments in our source code which identify adjacent code as hacks. Some of these are already being tracked in RT or TT; others are not yet tracked.
Before creating a raft of new TTs, I'd like to post an edited list of what I got from grep-ing trunk for 'hack'. If you can respond to any of these this-is-a-hack comments, please do so.
Thank you very much.
kid51
$ cat ~/learn/parrot/hacks.edited.txt ./src/gc/resources.c:495: /* Somewhat of a hack, but if we get per-pool ./src/gc/mark_sweep.c:621: /* XXX FIXME hack */ ./src/gc/mark_sweep.c:736: /* yes, this cast is a hack for now, but a pointer is a pointer */ ./src/gc/mark_sweep.c:992: /* short-term hack to color objects black */ ./src/gc/system.c:78: double align_hack[2]; ./src/gc/system.c:91: static void (*fn_ptr)(void) = (void (*)(void))&u.align_hack[0]; ./src/string/api.c:147: /* XXX FIXME hack to avoid cross-interpreter issue until it ./src/pmc/class.pmc:1586:This is just a temporary hack. Type ID numbers shouldn't be externally ./src/pmc/complex.pmc:537:Quick hack to emulate get_real() and get_imag(): ./src/pmc/null.pmc:49: /* XXX maybe a hack to get TGE running again */ ./src/pmc/parrotinterpreter.pmc:390: /* quick hack to get the global stash */ ./src/pmc/parrotthread.pmc:46: * XXX a quick hack to pass the few tests ./src/pmc/fixedintegerarray.pmc:173: /* a quick hack to create a clone in the constant PMC arena ./src/pmc/namespace.pmc:324: /* TODO - this hack needs to go */ ./src/pmc/nci.pmc:327: /* Parrot_eprintf(interp, "HACKED %S\n", nci_info->signature); */ ./src/pmc/default.pmc:88: /* the quick hack below cannot be used because the string could ./src/pmc/default.pmc:92: * a quick hack, to prevent freeing that string during GC ./src/jit/arm/jit_emit.h:490: are on (ie MOV followed by anything, including hacks with setting the carry ./src/jit/ppc/jit_emit.h:1223: * sets condition codes, so the speed hack in Parrot_ifunless_i_ic ./src/jit/sun4/jit_emit.h:19: XXX Hack [perl #37819] below. ./src/jit/sun4/jit_emit.h:797:/* XXX Hack to fix the following bug as of 05 Dec 2005: ./src/jit/sun4/jit_emit.h:798: Hack [perl #37819] Sun4 builds fail linking against jit.o ./src/jit/sun4/jit_emit.h:802: See also the "Hack [perl #37819]" section near the bottom of this ./src/jit/sun4/jit_emit.h:824:/* XXX end blind hack for [perl #37819] --but see ./src/jit/sun4/jit_emit.h:825: additional hack section at bottom. ./src/jit/sun4/jit_emit.h:1180:/* XXX Hack [perl #37819] Unlike the functions above, this one apparently ./src/jit/amd64/jit_emit.h:808: * to track down, the hackish things to do(movhlpd and movlhpd were used, but I ./src/io/unix.c:698: /* XXX ugly hack to be able to pass some arguments ./src/oo.c:228: /* This is a hack! All PMCs should be able to be handled through ./src/global.c:888: /* TEMPORARY HACK - cache invalidation should be a namespace function */ ./src/pic.c:99: * hack to turn on inlining - just sub_p_p for mops done ./src/list.c:854: * Jr's book "Hacker's Delight". */ ./src/malloc.c:2191: S. Warren Jr's book "Hacker's Delight". ./src/malloc.c:2738: probably figure out how to hack this routine to print out or ./src/thread.c:1128: /* XXX: maybe a little hack; see RT #49532 */ ./ext/SQLite3/DBDI/Driver/SQLite3.pm:12: # This bit of hackery is to get around the fact that you can't use ./tools/build/nativecall.pl:332: hackish, but that is just fine */ ./tools/build/nativecall.pl:524: "here there be hacks" */ ./tools/util/pgegrep:140: stdindashhack: ./tools/util/pgegrep:143: goto stdinhack ./tools/util/pgegrep:148: goto stdindashhack ./tools/util/pgegrep:180: stdinhack: ./tools/dev/parrot-fuzzer:470: #This is a moderately fragile hack that relies on the specific ./lib/Parrot/Configure/Options/Conf.pm:83: --define=inet_aton Quick hack to use inet_aton instead of inet_pton ./lib/Parrot/Docs/POD2HTML.pm:248: # A little bit of a hack to avoid config template files. ./lib/Parrot/Docs/File.pm:71: 'hacking' => 'README file', ./include/parrot/caches.h:18:/* turn off this hack, we need something better */ ./compilers/pct/src/PCT/Grammar.pir:188: ## the 'o', 'd', or 'x' into 8, 10, or 16 (yes, it's hack ./compilers/imcc/imclexer.c:2408: * we AFAIK need this hack as flex doesn't export YY_BUFFER_STATE */ ./compilers/imcc/main.c:440: case '.': /* Give Windows Parrot hackers an opportunity to ./compilers/imcc/imcc.l:49: * we AFAIK need this hack as flex doesn't export YY_BUFFER_STATE */ ./compilers/pge/PGE/P5Regex.pir:115: optable.'newtok'('close:}', 'looser'=>'infix:|', 'nows'=>1) # XXX: hack ./compilers/pirc/src/pir.l:405:{DQ_STRING} { /* XXX this is a bit hacky. First the string is unescaped, but that ./compilers/pirc/src/pirlexer.c:2586:{ /* XXX this is a bit hacky. First the string is unescaped, but that ./t/pmc/signal.t:48:# This is a non-portable hack. ./t/pmc/class.t:89: $I0 = 1 # hack for testing exceptions ./t/steps/auto_arch-01.t:44: # Darwin because of a hack in config/auto/arch.pm. We capture the warning ./t/op/sprintf_tests:201:%d $p=sprintf('%p',$p);$p=~/^[0-9a-f]+$/ 1 Coarse hack: hex from %p? ./t/op/sprintf_tests:202:%d $p=sprintf('%-8p',$p);$p=~/^[0-9a-f]+\s*$/ 1 Coarse hack: hex from %p? ./config/inter/make.pm:123: # RT#43171 this is an ugly hack ./config/auto/alignptrs/test_c.in:43: printf("Soft failure hack for systems that simulate unaligned access\n"); ./config/auto/headers.pm:42: # headers we found so far. This is somewhat a hack, but makes probing ./config/gen/opengl.pm:320: # Ignore internal GLUT Win32 compatibility hackage ./config/gen/opengl.pm:649: $ignore{$file}++, next if $name =~ /_ATEXIT_HACK$/;
Change History
Note: See
TracTickets for help on using
tickets.