Changes for version 0.002 - 2016-03-28
- Jean-Damien Durand <jeandamiendurand@free.fr>
- 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
Documentation
javap writen in perl
Modules
Java .class parsing