ajhc: Haskell compiler that produce binary through C language

[ compiler, gpl, library, program ] [ Propose Tags ]

The jhc is a haskell compiler which aims to produce the most efficient programs possible via whole program analysis and other optimizations.

The jhc is very minimalist in that it does not have a precompiled run time system, but rather generates what is needed as part of the compilation process. However, back ends do have specific run-time representations of data, which can be affected by things like the choice of garbage collector.


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.8.0.1, 0.8.0.3, 0.8.0.4, 0.8.0.5, 0.8.0.6, 0.8.0.7, 0.8.0.8, 0.8.0.9, 0.8.0.10
Dependencies array, base (>=4.0 && <5), binary, bytestring, containers, directory, fgl, filepath, haskeline, HsSyck, mtl, old-time, pretty, process, random, regex-compat, syb, temporary, unix, utf8-string, Win32, zlib [details]
License GPL-2.0-only
Author John Meacham <john@repetae.net>
Maintainer Kiwamu Okabe <kiwamu@debian.or.jp>
Category Compiler
Home page http://ajhc.masterq.net/
Source repo head: git clone https://github.com/ajhc/ajhc.git
Uploaded by KiwamuOkabe at 2013-04-02T19:59:03Z
Distributions
Reverse Dependencies 1 direct, 0 indirect [details]
Executables ajhc
Downloads 9321 total (25 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2016-12-21 [all 8 reports]

Readme for ajhc-0.8.0.3

[back to package description]

Ajhc - arafura-jhc Build Status

A fork of jhc. And also Haskell compiler.

This project is founded by Metasepi Project.

How to install

$ cabal install ajhc

How to build latest version

$ sudo apt-get install make locales autoconf libreadline-dev \
  libwww-perl libconfig-yaml-perl graphviz haskell-platform drift pandoc \
  libghc-readline-dev libghc-utf8-string-dev libghc-hssyck-dev
$ git clone git://github.com/ajhc/ajhc.git
$ cd ajhc
$ git checkout arafura
$ autoreconf -i
$ ./configure
$ make cabal-install

For developing

First, you should use the arafura branch, rather than master branch.

You should send patch to jhc, if testing on Ajhc is good.

$ darcs get http://repetae.net/repos/jhc
$ cd jhc/
$ patch -p1 < ~/yourfile.patch
$ darcs record -a
$ darcs send

The command darcs send sends email the patch to jhc author (= John Meacham).

Needing to install/build on Windows (currently in progress)

Install msys

http://sourceforge.net/projects/mingw/files/Installer/mingw-get-inst/

Install below.

  • C Compiler
  • MSYS Basic System
  • MinGW Developer ToolKit

You should run cabal install on msys console.

Install Git for Windows

http://msysgit.github.com/

It's good choosing the below option.

  • "Checkout as-is, commit as-is"
  • "Run Git and included Unix tools from the Windows Command Prompt"

Install Haskell Platform

http://www.haskell.org/platform/windows.html

Install DrIFT

$ cabal install DrIFT-cabalized

Future plan

Done

Yet

  • No more depend on DrIFT. Use http://hackage.haskell.org/package/derive.
  • No more depend on Perl (LWP and YAML).
  • Support LPCXpresso NXP LPX1769 with demo.
  • Rewrite Cortex-M3 base library with Ajhc.
  • Pass all regress test, and enable regress fail setting on travis-ci. https://travis-ci.org/ajhc/ajhc
  • Analyze jhc internal (Japanese doc). http://metasepi.masterq.net/posts/2013-01-31-jhc_internal_overview.html
  • Find critical region of Ajhc for reentrant and thread safe.
  • Port Haskell libraries on haskell-platform to Ajhc.
  • Understand jhc's region inference.
  • Find the method to implement GC that can be interrupted.
  • Get smaller RTS. Benchmark the RTS for running on custom FPGA CPU.
  • Start rewritng NetBSD kernel with Ajhc.