Changelog for MarpaX-Java-ClassFile 0.009 2023-07-28T05:39:18 [Graham Knop ] - remove extraneous imports from File::Spec [Jean-Damien Durand ] - bin/javap: require Log::Any::Adapter::Log4perl 0.008 2016-03-31T05:15:12Z [Jean-Damien Durand ] - Role/Parser.pm: Fix number of calls to logger is_trace, is _debug etc... when setting localized variables - Move from MooX::Role::Logger to MooX::Log::Any because the logger can be propagated with the later 0.007 2016-03-30T17:20:17Z [Jean-Damien Durand ] - BNF/OpCodeArray.pm: jsr bnf fix - bin/javapp: log error eventually, and protect against failure with illegal interchange characters when printing out - Parser/Actions.pm: make sure utf8 returns undef on the stack instead of nothing - dist.ini: 2016 0.006 2016-03-29T18:24:25Z [Jean-Damien Durand ] - dist.ini: MetaProvides::Package and not MetaProvides::Class... 0.005 2016-03-29T18:10:21Z [Jean-Damien Durand ] - Shortcut immediately to interpreted value, when it is the case, in strinfigication - _bytesToVector optmization and utf8() fix again - Parser/Actions.pm: less ops - dist.ini: hopefully fix package indexing 0.004 2016-03-28T21:54:19Z [Jean-Damien Durand ] - Parser/Actions.pm: Revised and fixed utf8 action 0.003 2016-03-28T16:27:51Z [Jean-Damien Durand ] - Struct/MethodInfo.pm: Added stringification of access flags - Util/AccessFlagsStringification.pm: Added "Class" 0.002 2016-03-28T10:16:10Z [Jean-Damien Durand ] - dzil xtest - bin/javapp: recommend implicitely a redirection in the help - One-line description mode - BNF/OpCodeArray.pm: add constant_pool - bin/javapp: say output can contain UTF-8 characters - BNF/OpCodeArray.pm: relativeOffset - Struct/OpCode.pm: relativeOffset - Struct/ConstantUtf8Info.pm: removed duplicate - BNF/OpCodeArray.pm: use natively position returned by lexeme value instead of playing with Marpa::R2::Context::location in the action - Struct/_Base.pm: switch to Class::XSAccessor::Array - Util/BNF.pm: possibility to overwrite top or bottom bnf - Role/Parser.pm: fix logging - Struct/_Base.pm: fix generation of accessors in tiny mode - Object::Tiny::XS - Role/Parser.pm: micro optimization - bin/javapp: NOTES - bin/javapp: POD - Java/ClassFile.pm: POD - Parser/Actions.pm: utf8 micro optimization - Parser/Actions.pm: utf8 micro optimizations and protections - Role/Parser.pm: A little perl op optimization - Role/Parser.pm: Make sure that bypassing inner grammar is using a defined value - Role/Parser.pm: bypass inner grammar creation when the result is predictable - bin/classdump: removal - bin/javapp: fix calls to print - Java/ClassFile.pm: fixed calls to logger - bin/javapp: fix usage of archive - .jar support - cosmetic dev+ - Fixes after testing - stringification dev+ - Struct/_Base.pm: left align x => y - Util/AccessFlagsStringification.pm: Access flags stringification - bin/javapp: back to print - BNF/ClassFile.pm: take care of unnecessay references counts - Role/Parser.pm: make constant_pool with a default instead of being lazy - Util/ArrayRefWeakenisation.pm: ArrayRef content weakenisator - bin/javapp: use File::Find - tracing levels - event 'attribute_length$' was missing - cosmetic fix - Role/Parser.pm: Added offset in debug statements - Added usuefull debug statements - bin/javapp: log info of current file - Added missing grammars - BNF/ExceptionsAttribute.pm: cosmetic (removed a comma) - Added missing grammar - Struct/AnnotationDefaultAttribute.pm: stringification - Struct/Annotation.pm: stringification - BNF/RuntimeVisibleAnnotationsAttribute.pm: comment fix - Struct/ClassFile.pm: Removed unused _stringify method - Array stringification helper - bin/javapp: add options - Fix ConstantPoolArray constructor when no under AUTHOR_TESTING - overload dev+ - use a real constant pool array object - use overload - toString dev+ - Fix BNF for tag, that must be an u1 - dzil compliance - javapp is now classdump - Javapp dev+ - Move check out - this will be in a dedicated module OOTD - Checker dev+ - Leave validation to a later stage - javapp dev+ - OpCode: make originPos an explicit attribute at object creation, avoiding a sub BUILD - Parse/InnerGrammar.pm: micro but justified optimization, nbDone is really a temporary thingy - javap dev+ - Struct runtime optimization in production mode - Role/Parser.pm: use prod_isa() + micro optimizations - Parser/InnerGrammar.pm: use prod_isa() - Parser/Actions.pm: micro optimizations - BNF/OpCodeArray.pm: bug fix when there is no padding, and remove padding from action value - Util/ProductionMode.pm: prod_isa() - BNF/{AnnotationArray,ElementValueArray}.pm: these two grammars are pure arrays, the simplest possible grammars and also the most dangerous: use inner_silent() to prevent loop on evevents calling events and so on - Role/Parser.pm: New routine inner_silent() to read an inner grammar and ignore eventual events after it is pushed as a MANAGED lexeme - BNF/ConstantDoubleInfo.pm: _value is indeed a double, not a long - Parse/Actions.pm: but fix when calculating size of Bit::Vector - Role/Parser.pm: Removed a debug print to STDERR -; - Load time optimization - Role/Parser.pm: My usual recognizers hooks when semantics never change (and this is the case here) - BNF/OpCodeArray.pm: padding fix and internal lexeme add for prevent over-calculation of entries - Struct/OpCode.pm: remember only offset (length calculation is garbbled because of an "ok" internal lexeme anyway) - Role/Parser.pm: lexeme_read_u4 fix - BNF/ConstantIntegerInfo.pm: integer() was renamed to signedU4() - Role/Parser.pm: localization of G, R, support of literal() and pause() for all signed/unsigned U1, U2, U4 - Parser/InnerGrammar.pm: Support of inner grammar of unknown number of elements - Parser/Actions: Bit::Vector globalization, renamed integer() to signedU4() - Support of opcodes - Struct/_Base.pm: my minimalist OO thingy - not used yet - OpCode dev+ - Bug fixes when testing - BNF/AppendFrame.pm: bug fix - Fixes - Fields working - Fixed naming - Attributes dev+ - StackMap dev+ - CodeAttribute dev+ - Leave validation out for the moment - Add required - ConstantValueAttribute dev+ - Make sure all Constant*Info.pm referenced by ConstantValueAttribute have a _value attribute - BNF/ConstantValueAttribute.pm: Added - Add requires to all Constant members - BNF/SignatureAttribute.pm: signature themselves - getAndCheckCpInfo() centralization - BNF/ClassFile.pm: use explicit literals and rules - Role/Parser.pm: make literal arguments explicit - Util/BNF.pm: make u1, u2, u4 and managed internal - InterfacesArray - BNF/ClassFile.pm: Removed debug statement since now it looks ok - ConstantPool revisited dev+ - New architecture dev+ - New architecture: dev+ - dev+ - Common/InnerGrammar.pm: Add first() method - Add a weak ref to classFile in all sub-objects - Java/ClassFile.pm: Set counter and array immediately when calling inner grammars - ClassFile/Common.pm: executeInnerGrammar() returns inner grammar value - Java/ClassFile.pm: Added missing close() in the constructor + more in POD - All grammar values are objects - return objets directly in the AST dev+ - Java/ClassFile.pm: Removed unused variable %_ACCESSFLAGS - Java/ClassFile.pm: Return a self-describing array as ast - ClassFile/ConstantPoolArray.pm: Renamed _checkItem to _checkConstantPoolItem - ClassFile/Validator.pm: dev+ - Methodtype validation - Methodhandle validation dev+ - ClassFile/ConstantPoolArray.pm: CONSTANT_MethodHandle_info validation dev+ - ClassFile/FieldDescriptor.pm: Removed - ClassFile/ConstantPoolArray.pm: parse tree value dev+ - Java/ClassFile.pm: Keep original bitmask in access_flags parse tree value - ClassFile/ConstantPoolArray.pm: validation dev+ - constant pool validation - ClassFile/Common.pm: Do basic logging without lex information when in the value() mode - Revert "Java/ClassFile.pm: remember constantPool ast" - Java/ClassFile.pm: remember constantPool ast - ClassFile/Common.pm: make executeInnerGrammar return its ast - Common/Actions.pm: Removed unnecessary temporary variables - bis - Common/Actions.pm: Removed unnecessary temporary variables - Java/ClassFile.pm: Improve POD about computed_value - Java/ClassFile.pm: Removed analysis of access_flags - will be done somewhere else - Java/ClassFile.pm: precisions in POD - ClassFile/*Array.pm: Fix parse tree value - Fix undef entry in ConstantPoolArray directly ConstantPoolArray module -; - ConstantPoolArray and wanted undef entries dev+ - ClassFile/Common.pm: has_r() and not _has_r() - ClassFile/Common.pm: Fixed logging in literalXxx() methods - ClassFile/Common.pm: Add literalManaged - ClassFile/FieldDescriptor.pm: dev+ - with qw/MarpaX::Java::ClassFile::Common::InnerGrammar/ - Common/InnerGrammar.pm: Centralized common code for inner grammars into this role - ClassFile/Common.pm: use directly stack for performance - lib: Hide recognizer that is always implicit in user-space - ClassFile/Common.pm more log wrapper 0.001 2016-02-28T09:51:32Z [Jean-Damien Durand ] - Changes,META.json,README.pod: for first release - Java/ClassFile.pm: SYNPOSIS -> SYNOPSIS - Java/ClassFile.pm: put a NOTES section in POD - lib: General POD fixes - ClassFile/AttributesArray.pm: utf8 and POD fix - dist.ini: Say files undef lib/MarpaX/Java/ClassFile should not be indexed - bin/javapp: Removed hexdump - lib/: eof xtest compliance - lib/: Add missing ABSTRACT, VERSION and AUTHORITY - lib/: Add ABSTRACT, VERSION and AUTHORITY - Working version -; ! - More readable code - ClassFile/Common.pm: Generic executeInnerGrammar() method - Make grammars looks like a class variable - Java/ClassFile.pm: use explicitely lexeme in sub-rules and log how many items we ask for when lauching an inner grammar - ClassFile/ConstantPoolArray.pm: use explicitely lexeme in sub-rules - use ConstantPoolArray instead of ConstantPool - ClassFile/Common.pm: Removed BUILD and BUILDARGS they should never be in a role, add possiblity to set next position on lexeme_read, add support for eventual exhaustion user-space handling - bin/javapp: Call ast() instead of non-existing output() -; - Java/ClassFile.pm: Removed call to Data::Scan::Printer - ClassFile/Common.pm: make ast be lazy and have a builder - dev+: Constant pool working version -; - dev+ - Init