Changes between Initial Version and Version 7 of Ticket #872

08/07/09 00:59:32 (7 years ago)

Replying to coke:

Removing the implementation of something entirely and throwing an exception when its used isn't deprecation. We should either: 1) leave it alone until post 2.0 on the off chance that someone was using it in a way that worked for them (even though no one has been able to provide code that might demonstrate its usage, I'm willing to believe it exists.) Or 2) delete it entirely, on the assumption that it never worked. Or 3) emit a warning when it is used, but otherwise leave the implementation alone. This can be tied to parrot's warning feature, as deprecated opcodes do. The current solution, removing the guts and throwing an exception, means that anyone who was potentially using it can't; This has effectively already removed the feature from parrot, and if we're going to do that, let's just do it. If instead we're trying to warn people, #3 is preferred.


  • Ticket #872

    • Property owner set to NotFound
    • Property priority changed from major to minor
    • Property severity changed from medium to low
    • Property summary changed from segfault with PASM1 compiler to Deprecate PASM1 compiler and PDB_compile function
  • Ticket #872 – description

    initial v7  
    1 {{{ 
    2 .sub 'a' :main 
    3   $P0 = compreg 'PASM1' 
    4   $S0 = "say 'hi'\n" 
    5   $P1 = $P0($S0) 
    6   $P1() 
    7 .end 
    8 }}} 
     1+1 from me. What happened to this compiler, ripping out all it's functionally and replacing it with an exception, doesn't really satisfy the deprecation policy, but then again keeping in a feature that doesn't work for the sake of keeping it not working doesn't really do so either. 
    10 BT from gcc:  
    11 {{{ 
    12 #0  0x00000000 in ?? () 
    13 #1  0xb7c485b6 in Parrot_invokecc_p (cur_opcode=0x80f8260, interp=0x804f040) 
    14     at src/ops/core.ops:504 
    15 #2  0xb7cfbcd0 in runops_slow_core (interp=0x804f040, pc=0x80f8260) 
    16     at src/runcore/cores.c:462 
    17 #3  0xb7cfa8ce in runops_int (interp=0x804f040, offset=0) 
    18     at src/runcore/main.c:987 
    19 #4  0xb7cd3155 in runops (interp=0x804f040, offs=0) at src/call/ops.c:119 
    20 #5  0xb7cd3564 in runops_args (interp=0x804f040, sub=0x80c34d8, obj=0x80b4450, 
    21     meth_unused=0x0, sig=0xb7f1dcb3 "vP", 
    22     ap=0xbfebd02c "À4\f\bxÐë¿\2009÷·\220ò\004\bÀ4\f\bØ4\f\b\030lô·xÐë¿¿.ï·@ð\004\b\001") at src/call/ops.c:269 
    23 #6  0xb7cd4416 in Parrot_runops_fromc_args (interp=0x804f040, sub=0x80c34d8, 
    24     sig=0xb7f1dcb3 "vP") at src/call/ops.c:338 
    25 #7  0xb7cb1907 in Parrot_runcode (interp=0x804f040, argc=1, argv=0xbfebd1a8) 
    26     at src/embed.c:1021 
    27 #8  0xb7ef2ebf in imcc_run_pbc (interp=0x804f040, obj_file=0, output_file=0x0, 
    28     argc=1, argv=0xbfebd1a8) at compilers/imcc/main.c:801 
    29 #9  0xb7ef3abc in imcc_run (interp=0x804f040, sourcefile=0xbfebd41a "foo.pir", 
    30     argc=1, argv=0xbfebd1a8) at compilers/imcc/main.c:1092 
    31 #10 0x08048978 in main (argc=1, argv=0xbfebd1a8) at src/main.c:60 
    32 }}} 
     3I don't think we've really given it enough thought, but "features" that didn't work at the time that the deprecation policy was adopted should really be grandfathered in as being "experimental" features. They didn't work, there wasn't an expectation that they would "continue" to work, etc. Better to just remove this and be done with it.