Version 1 (modified by Yuki`N, 4 years ago)

Initial script (first revision) output.

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/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/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