Skip to content
A library for reading and writing Java class-files in Haskell
Haskell Other
  1. Haskell 99.4%
  2. Other 0.6%
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
benchmark
bin
src/Language
test
.gitignore
.hindent.yaml
CHANGELOG.md
LICENSE.md
README.md
Setup.hs
package.yaml
stack.yaml

README.md

jvm-binary

A library for reading and writing Java class-files. To get started importing the Language.JVM file should be sufficient for most uses.

If you want to access Code elements of methods it is recommended to import Language.JVM.Attribute.Code qualified, like this:

import           Language.JVM
import qualified Language.JVM.Attribute.Code as Code

import qualified Data.ByteString.Lazy as BL

main :: IO ()
main = 
  ecfl <- readClassFile <$> BL.readFile "test/data/project/Main.class" 
  case ecfl of 
    Right clf -> do
      print (cThisClass clf)
      print (cSuperClass clf)
    Left msg -> 
      print msg

Stages

There are two stages in the current state of the repository. Low is closer to the class-file, while the High stage is easier to work with. The reason that we have the two stages is that the class-file representation has indices into the Constant Pool. The High stage eliminates all these problems.

Todo's

  • Add more Attributes as to the docs.
  • Add documentation for Code
  • Setup regular benchmarks

Developing

Use stack to build, test, and benchmark.

You can’t perform that action at this time.