# $Id: DEPRECATED.pod 37512 2009-03-17 06:55:09Z allison $ =head1 Deprecation in Parrot Please see F for the parrot project's policy regarding deprecated features. This is a list of currently deprecated features of Parrot. Every deprecation has an associated Trac ticket [1]. Each item indicates the first release in which it is eligible for removal. If the release listed is one that has already occurred, this feature may be removed at any time. Following the 1.0 release, whenever deprecated items are removed, information regarding how to cope with the removal will be added to L. When running parrot, you can receive warnings about deprecated opcodes. Either run parrot with the C<-w> option to enable all warnings, or specifically by including this C code: .include 'include/warnings.pasm' warningson .PARROT_WARNINGS_DEPRECATED_FLAG =head1 Configuration =over 4 =item Always build with core PMC set (remove config option) [eligible in 1.1] L =back =head1 PMCS =over 4 =item pointer [eligible in 1.1] L =item random [eligible in 1.1] L =item ref [eligible in 1.1] L =item slice [eligible in 1.1] L =item bound_nci [eligible in 1.1] L =item moved to dynpmc [eligible in 1.1] AddrRegistry, CodeString, Env, Eval, File, OS, PCCMETHOD_Test, StringHandle, and Timer. L =item multiple dispatch within core PMCs [eligible in 1.1] L =back =head1 Opcodes =over 4 =item moved to dynop [eligible in 1.1] Parts or all of: bit.ops, debug.ops, io.ops, math.ops, obscure.ops, set.ops (the obscure and rarely used parts), sys.ops. L =item experimental ops [eligible in 1.1] F =item myops & dan ops [eligible in 1.1] L =back =head1 Bytecode =over 4 =item packfile structure [eligible in 1.1] L =item opcode numbering [eligible in 1.1] L =item PMC numbering [eligible in 1.1] L =back =head1 Class Features =over 4 =item PMC union struct [eligible in 1.1] This will be removed once all core PMCs have been updated. L =item :anon and :vtable named parameters to add_method [eligible in 1.1] If you want to override a vtable method/function when building a Class, then use the method C instead of calling C with one or both of these flags. L =back =head1 PIR syntax =over 4 =item Assignment syntax with opcodes [eligible in 1.1] When the first argument of an opcode is C, then the assignment syntax will be allowed, as it is today. In any other case (i.e. C, C), this will become a syntax error. For example: $S0 = print $P0 = substr 1, 2, "x" Will have to be: print $S0 substr $P0, 1, 2, "x" L =item named class/pmc lookup in pir syntax such as new, isa, subclass, get_class, etc [eligible in 1.1] Class PMC name resolution will be the following. if the arg is a STRING Relative to the current Namespace if the arg is a Array (of any sort) or Key Relative to the current HLL Namespace if the arg is a Namespace or Class PMC The passed in class or the class attatched to the passed in namespace. L =item C<.HLL_map> [eligible in 1.1] Languages should use this instead: $P0 = getinterp $P0.'hll_map'(TypeA, TypeB) L =back =head1 Functions =over 4 =item mmd_cvt_to_types [eligible in 1.1] L =item src/pic.c and src/pic_jit.c [eligible in 1.1] These two files were a thin prototype implementation of Polymorphic Inline Caching that only ever applied to 4 opcodes, one of which has now been removed. The files (and all functions in them) are deprecated, and will be removed. L =item Subs marked with C<:vtable>/C<:method> aren't in namespace [eligible in 1.1] Subs marked with C<:vtable> or C<:method> flags are no longer given a namespace entry by default. Use the C<:nsentry> flag to cause this to happen. L =item Parrot_readbc, Parrot_loadbc. [eligible in 1.1] They have been renamed to C, C. C has one third int argument. L =item C API coding standards cleanup [eligible in 1.1] All C API functions that aren't currently named according to the 'Parrot__*' scheme will be renamed. If you depend on these functions in an extending/embedding interface or C-level custom PMCs, check in 1.4 or 2.0 for the new names. L =item src/hash.c API cleanup [eligible in 1.1] The following functions will be changed to return a C instead of taking a C as an argument: =over 4 =item * parrot_new_hash_x =item * parrot_new_cstring_hash =item * parrot_new_pointer_hash =back L C will also be rewritten to return a Hash* and will be renamed to C for consistency with other similar functions. L =item Parrot_add_library_path [eligible in 1.1] Will be renamed to C. L =back =head1 Compiler tools =head2 P6object =over 4 =item P6protoobject stringification [eligible in 1.1] Stringification of protoobjects will return the full name of the type and parentheses, per Synopsis 12. L =back =head2 Parrot Grammar Engine =over 4 =item Deprecated rules and methods [eligible in 1.1] The following "built-in" PGE rules and methods are from previous versions of Synopsis 5. Deprecated rules: C, C, C, C, C, C Deprecated methods: C<.text>, C<.item>, C<.result_object> L =item Stringification, numification [eligible in 1.1] C< PGE::Match > objects will stringify or numify based on the text that is matched, not the result object. L =back =head2 Parrot Compiler Toolkit =over 4 =item PCT::HLLCompiler stages [eligible in 1.1] The interface of various methods for adding, removing, and modifying the list stages in a PCT::HLLCompiler object is subject to change. The existing actual stages will remain; only the mechanism for specifying the order of individual stages is likely to change. L =item PCT::HLLCompiler from Perl 5's Test::Harness [eligible in 1.1] In order to facilitate using PCT::HLLCompiler with test harnesses, the C method of PCT::HLLCompiler object exits silently if it detects that it is being run in a sample run from Perl's Test::Harness. Currently this detection is done by checking the second command line argument for "@INC"; future releases may use a different detection mechanism or eliminate it altogether. L =back =head2 Not Quite Perl (NQP) =over 4 =item C< $(...) > syntax [eligible in 1.5] The C< $(...) > syntax for obtaining a result object from a Match object will no longer work. The new syntax is yet to be determined. L =back =cut =head1 build tools =over 4 =item tools/build/dynoplibs.pl and tools/build/dynpmc.pl [eligible in 1.1] Replaced with makefiles. L =back =head1 Footnotes =over 4 =item 1 L is parrot's primary issue tracking system. Older tickets may be listed at L. =back =cut