harpy 0.6.0.0 → 0.6.0.1
raw patch · 4 files changed
+77/−68 lines, 4 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- NEWS +4/−0
- README +0/−65
- README.md +64/−0
- harpy.cabal +9/−3
NEWS view
@@ -1,6 +1,10 @@ -*-outline-*- * Harpy NEWS +** Updated for move to Github.++*** Re-licensed under BSD3+ ** New in version 0.6.0.0 *** Re-licensed under BSD3
− README
@@ -1,65 +0,0 @@- -*-outline-*--* README file for the Harpy Haskell Run-time Code Generator--Codename: Harpy - Haskell Assembler at Run-time produces Y...- Harpy [myth.] f: die Harpyie- http://en.wikipedia.org/wiki/Harpy--** Introduction--Harpy is a library for run-time code generation in Haskell programs.--Harpy requires several Haskell extensions and GHC-specific features-(the Haskell FFI, Template Haskell, multi-parameter type classes and-monad transformers).--** Features--The following modules are included in this package:--Harpy.CodeGenMonad: This module defines the code generator monad,- which is a combined state/reader/exception monad. It contains- all the necessary details for allocating and managing code buffers.--Harpy.X86CodeGen: This module contains all the functions for generating- native x86 machine code. The functions are very simple, and it is- necessary to specify all addressing modes etc. when emitting an- instruction.--Harpy.X86Assembler: A type class based layer on top of X86CodeGen- which determines the addressing modes from the types of the- operands.--Harpy.X86CGCombinators: Code generation combinators for conditionals,- loops, function entry/exit code etc.--Harpy.X86Disassembler: A disassembler for x86 machine code.--Harpy.Call: Exports functions for invoking the generated code.--** Notes about the implementation--*** X86CodeGen.lhs--The file X86CodeGen.lhs is based on a header file called x86-codegen.h-from the Mono distribution, which defines macros for emitting x86-machine code directly into a memory buffer. The Haskell module is a-nearly one-to-one mapping from the original macros to Haskell-functions. The main differences are:--- Instead of emitting the data directly into a buffer, it uses the- CodeGen monad from file CodeGenMonad.lhs.--- The functions are strongly typed.--Several things should be kept in mind when using this file:--- Buffer overflow checks have to be done manually with checkBufferSize or- ensureBufferSize--- MMX, SSE, SSE2 and SSE3 instructions and registers are not supported.--- 64-bit mode is not supported.--- The disassembler supports (in principle) 64-bit mode and SSE- instructions, but this has not been tested.
+ README.md view
@@ -0,0 +1,64 @@+# harpy - Runtime code generation for x86 machine code++ Codename: Harpy - Haskell Assembler at Run-time produces Y...+ Harpy [myth.] f: die Harpyie+ http://en.wikipedia.org/wiki/Harpy++## Introduction++Harpy is a library for run-time code generation in Haskell programs.++Harpy requires several Haskell extensions and GHC-specific features+(the Haskell FFI, Template Haskell, multi-parameter type classes and+monad transformers).++## Features++The following modules are included in this package:++Harpy.CodeGenMonad: This module defines the code generator monad,+ which is a combined state/reader/exception monad. It contains+ all the necessary details for allocating and managing code buffers.++Harpy.X86CodeGen: This module contains all the functions for generating+ native x86 machine code. The functions are very simple, and it is+ necessary to specify all addressing modes etc. when emitting an+ instruction.++Harpy.X86Assembler: A type class based layer on top of X86CodeGen+ which determines the addressing modes from the types of the+ operands.++Harpy.X86CGCombinators: Code generation combinators for conditionals,+ loops, function entry/exit code etc.++Harpy.X86Disassembler: A disassembler for x86 machine code.++Harpy.Call: Exports functions for invoking the generated code.++## Notes about the implementation++### X86CodeGen.lhs++The file X86CodeGen.lhs is based on a header file called x86-codegen.h+from the Mono distribution, which defines macros for emitting x86+machine code directly into a memory buffer. The Haskell module is a+nearly one-to-one mapping from the original macros to Haskell+functions. The main differences are:++- Instead of emitting the data directly into a buffer, it uses the+ CodeGen monad from file CodeGenMonad.lhs.++- The functions are strongly typed.++Several things should be kept in mind when using this file:++- Buffer overflow checks have to be done manually with checkBufferSize or+ ensureBufferSize++- MMX, SSE, SSE2 and SSE3 instructions and registers are not supported.++- 64-bit mode is not supported.++- The disassembler supports (in principle) 64-bit mode and SSE+ instructions, but this has not been tested.
harpy.cabal view
@@ -1,7 +1,7 @@-Cabal-version: >=1.2+Cabal-version: >=1.6 Build-type: Simple Name: harpy-Version: 0.6.0.0+Version: 0.6.0.1 License: BSD3 License-file: LICENSE Author: Dirk Kleeblatt <dirk.kleeblatt@gmx.de>@@ -30,13 +30,19 @@ . * All the above modules use the code generation monad defined in module "Harpy.CodeGenMonad".+homepage: https://github.com/mgrabmueller/harpy+bug-reports: https://github.com/mgrabmueller/harpy/issues Stability: Experimental Extra-source-files:- NEWS README Makefile ChangeLog.md+ NEWS README.md Makefile ChangeLog.md doc/Makefile doc/tutorial.lhs doc/larger-tutorial.lhs examples/evaluator/ArithTypes.hs examples/evaluator/ArithParser.hs examples/evaluator/Evaluator.hs++source-repository head+ type: git+ location: https://github.com/mgrabmueller/harpy Library Build-depends: