Version 2 (modified by Yuki`N, 11 years ago)

Revision 2

Parrot HACK List

  •  compilers/imcc/imcc.l:43
    /* parser state structure
     * the first few items are common to struct parser_state, but
    * we AFAIK need this hack as flex doesn't export YY_BUFFER_STATE */
  •  compilers/imcc/imclexer.c:2416
    /* parser state structure
     * the first few items are common to struct parser_state, but
    * we AFAIK need this hack as flex doesn't export YY_BUFFER_STATE */
  •  src/nci/extra_thunks.c:37
    /* All our static functions that call in various ways. Yes, terribly
    hackish, but that is just fine */
  •  src/nci/core_thunks.c:37
    /* All our static functions that call in various ways. Yes, terribly
    hackish, but that is just fine */
  •  src/oo.c:253
            /* This is a hack! All PMCs should be able to be handled through
               a single codepath, and all of them should be able to avoid
               stringification because it's so imprecise. */
  •  src/pmc/scheduler.c:93
        /* TT #946: this line is causing an order-of-destruction error
           because the scheduler is being freed before its tasks.
    Commenting this out till we get a real fix (although it's a hack) */
  •  src/pmc/fixedintegerarray.c:96
        /* a quick hack to create a clone in the constant PMC arena
         * this is needed for the call signatures
         *
         * a better way would be probably to supply a flag to the clone
         * vtable
         */
  •  src/pmc/scheduler.pmc:256
            /* TT #946: this line is causing an order-of-destruction error
               because the scheduler is being freed before its tasks.
    Commenting this out till we get a real fix (although it's a hack) */
  •  src/pmc/fixedintegerarray.pmc:102
            /* a quick hack to create a clone in the constant PMC arena
             * this is needed for the call signatures
             *
             * a better way would be probably to supply a flag to the clone
             * vtable
             */
  •  src/call/args.c:1161
                    /* The 'return' above is a temporary hack to duplicate an old
                     * bug, and will be replaced by the exception below at the next
                     * deprecation point, see TT #1103

                    Parrot_ex_throw_from_c_args(interp, NULL,
                        EXCEPTION_INVALID_OPERATION,
                        "too many named arguments: %d passed, 0 used",
                        named_arg_count);
                     */
  •  src/extra_nci_thunks.c:37
    /* All our static functions that call in various ways. Yes, terribly
    hackish, but that is just fine */
  •  src/gc/string_gc.c:1015
            /* Somewhat of a hack, but if we get per-pool
                * collections, it should help ease the pain */
  •  src/debug.c:3520
                /* This hack is needed because we occasionally are told
                   that we have string registers when we actually don't */
  •  ChangeLog:951
    Also added small hack for .sub directive (which simply translates
  •  ChangeLog:4640
    * core.ops, t/op/hacks.t: Added in the readline op, as well as
  •  ChangeLog:7843
    Small hack to keep process_opfunc.pl from generating extra return()
  •  ChangeLog:9397
    Temporary hack to store string constants in bytecode and recreate
  •  Makefile:701
    # We build DYNPMC_TARGET in corevm. It's kinda hack to test t/pmc/threads.t CLONE_LIBRARIES