• Stars
    star
    144
  • Rank 254,019 (Top 6 %)
  • Language UrWeb
  • License
    BSD 3-Clause "New...
  • Created over 12 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Beautiful, interactive visualizations of logical inference
Install
-------

1) Get a copy of Coq with PGIP support

    git clone https://github.com/ezyang/coq
    # build Coq using the standard methods

You need to tell Logitext about where this Coq lives.
The easiest way is to create a file named config in the
Logitext directory that sets the PATH to the bin directory of
the built Coq, e.g.

    echo 'export PATH=$HOME/coq/bin:$PATH' > config

(Note: We use the -boot option to run Coq; this makes installation
easier but requires you to keep the build directory around.  If
you really want to 'make install' your copy of Coq, you'll need
to edit CoqTop.hs to remove the -boot flag, or make a coqtop wrapper
executable that strips the -boot flag.)

Test this setup by running the following commands:

    . config
    coqtop -v    # should have build date equal to current date
    coqtop -boot # should put you into repl

2) Get the Ur metaprogramming library

    hg clone http://hg.impredicative.com/meta/

Place this as a subdirectory of the logitext folder, and it will
automatically get picked up.

3) Get the Ur/Web compiler

    hg clone http://hg.impredicative.com/urweb
    # build Ur/Web using the standard method

You have a few options for setting up Ur/Web.  If you can install
it globally on the system, you need no further changes.

Alternatively, you can configure an alternate --prefix for Ur/Web, and
then add the Ur/Web in that location to your PATH.  (The build.sh script
references 'config', so you can place it there.) You'll also need to add
the include directory to C_INCLUDE_PATH, as we use the C FFI, which
needs a fully qualified header name (GHC will need this too).

Another convenient option is to just set URWEB_FLAGS="-boot",
and don't bother installing into an alternate prefix.  You'll
still need to modify PATH and C_INCLUDE_PATH, but you can directly
point them at the build directory.

4) Prepare GHC and Haskell

Any widely available distribution should do; the author personally
is using 7.4.1 with the Haskell Platform.  Run

    cabal configure

in order to find out what libraries you need, and install them.
We don't use cabal to build the Haskell products though, because
we need to use GHC to link Ur/Web and Haskell code together.

5) Build it!

You'll need a Linux system with inotify to use the normal scripts. Run

    ./build.sh

which sets up a continuous rebuilding server, and automatically starts
up with the normal parameters.  Tweak the script for your own needs
as necessary.  You can also run

    ./tc.sh

to get continuous typechecking on the Ur/Web files.

6) Serve static files

Ur/Web doesn't support serving static files natively, so you will need
to have another running web server to serve the external JavaScript and
CSS files.  By default they are expected to be at the URL
http://localhost/logitext/ but you can change this by editing
js.urp, logitext.urp, and logitext.ur (be sure to change the <link>
href, the script directives and the allow url directives).

Troubleshooting
---------------

    Database connection initialized.
    Starting up coqtop...
    Ready coqtop
    fd:9: commitBuffer: resource vanished (Broken pipe)

This means you are not using a version of Coq which understands the -pgip flag.

    In file included from /tmp/fileMvYC8r/webapp.c:7:0:
    /home/ezyang/Dev/logitext/haskell.h:1:25: fatal error: urweb/urweb.h: No such file or directory

You have not set your C_INCLUDE_PATH correctly.

    unhandled exception: Io: openIn "/usr/local/lib/urweb/ur/char.ur" failed with SysErr: No such file or directory [noent]

You forgot to pass the -boot flag to Ur/Web using URWEB_FLAGS.

More Repositories

1

htmlpurifier

Standards compliant HTML filter written in PHP
PHP
2,837
star
2

ghstack

Submit stacked diffs to GitHub on the command line
Python
613
star
3

git-ftp

A quick and efficient way of pushing changed files to a website via FTP
Python
494
star
4

convolution-visualizer

Convolution visualizations
JavaScript
350
star
5

compact

Compact regions library for Haskell
Haskell
81
star
6

nvprof2json

Convert nvprof profiles into about:tracing compatible JSON files
Python
67
star
7

csrf-magic

Automatic CSRF protection for PHP applications
PHP
41
star
8

torchdbg

PyTorch centric eager mode debugger
TypeScript
39
star
9

thesis

Thesis
TeX
37
star
10

stride-visualizer

Stride visualizations
JavaScript
36
star
11

pl-class-public

Public slides and assignments for CSCI-UA.04900: Special Topics in Programming Languages
JavaScript
34
star
12

cusec2012-victor

Transcript of "Inventing on Principle", CUSEC 2012 given by Bret Victor
34
star
13

ghc-shake

ghc --make reimplemented with Shake
Haskell
31
star
14

metromaps

Metro Maps as envisioned by Dafna Shahaf
HTML
27
star
15

lr-agda

Logical relations proof in Agda
Agda
23
star
16

onnx-pytorch

PyTorch development for onnx
Python
21
star
17

pytorch-unattached

Tensors and Dynamic neural networks in Python with strong GPU acceleration
C++
20
star
18

tlparse

TORCH_LOGS parser for PT2
Rust
19
star
19

hpd3js

Haskell heap profiling with D3.js
JavaScript
17
star
20

SMT-LIB-benchmarks-pytorch-shapes

SMT-LIB benchmarks for shape computations from deep learning models in PyTorch
SMT
16
star
21

backpack-examples

Backpack examples repository
15
star
22

eff

Inefficient and syntactically unwieldy implementation of algebraic effects in Python using generators
Python
14
star
23

ghc-rts-rust

A reimplementation of GHC's runtime system in Rust
Rust
14
star
24

deepseq-magic

Deep evaluation of data structures without NFData
Haskell
11
star
25

HoTT-coqex

Coq solutions to exercises in HoTT book
Coq
11
star
26

hamt

Hash Array Mapped Tries in Haskell
Haskell
11
star
27

ocaml-cminsketch

Count-min sketch implementation in OCaml
OCaml
10
star
28

hsleak

A collection of space leaks in GHC Haskell
Haskell
10
star
29

ghc-plugin-template

Sample project for GHC core transformation plugins
Haskell
9
star
30

stenomatic

The Stenomatic 9000: a Steno drilling tool
HTML
8
star
31

reflex-backpack

Reflex with Backpack
Haskell
8
star
32

backpack-regex-example

Regex example with Backpack
8
star
33

scheme-hamt

Hash-array mapped trie in mit-scheme
Scheme
8
star
34

jfp-ghc-rts

JFP article on the GHC RTS
8
star
35

ghc-usage

Frontend plugin to print locally used module info
Haskell
8
star
36

stg-spec

Specification of GHC's spineless tagless G-machine and its cost semantics
Makefile
7
star
37

tmr-issue24

Mini-issue of The Monad Reader!
Haskell
6
star
38

tmr-issue20

The Monad Reader: Issue 20
Haskell
6
star
39

nf

NF data type to statically enforce normal form
Haskell
6
star
40

mutsleuth

Mutation detection in Python
Python
5
star
41

hello-plugin

Hello World plugin using GHC API, intended for use with cabal/stack repl
Haskell
5
star
42

groom

Pretty-print Show instances from Haskell
Haskell
5
star
43

SensorSimulator

Sensor Simulator for simulating sensor data in real time.
Java
5
star
44

sake-bot

Bot for transmitting Travis build information upstream
Ruby
5
star
45

triemap

Matching and unification on TrieMaps
Haskell
4
star
46

tmr-issue22

Issue 22 of the Monad Reader
Haskell
3
star
47

hackage-query

Query Hackage for interesting information
Haskell
3
star
48

hoopl

Higher-order optimization library
Haskell
3
star
49

stenowiki

Wiki for steno dictionary entries
Python
3
star
50

breaking-barriers

Research repository for "breaking barriers"
TeX
3
star
51

sigc

Compare implementations with signatures, generate "implements" tables
Haskell
3
star
52

tmr-issue21

Issue 21 of The Monad Reader
Haskell
2
star
53

cpython-metaclass

metaclass in cpython extension
C++
2
star
54

automation

Shell
2
star
55

jpeg-raw-sync

Sync jpeg deletions to raw folder
Rust
2
star
56

rlimits

Support code for Haskell resource limits.
Haskell
2
star
57

ezyang.com

HTML files for my personal website
HTML
2
star
58

bake

Experimental GHC API driver for Backpack
Haskell
2
star
59

haskell-mit6005

Haskell to MIT 6.005 FP pseudocode pretty-printer
Haskell
2
star
60

labeler-github-action

Labeling GitHub action for PyTorch issues/pull requests
JavaScript
2
star
61

ghceye

Haskell
2
star
62

data-dependent-shape-puzzles

Puzzlers regarding data-dependent shapes in PT2
Jupyter Notebook
2
star
63

ghc-cafeteria

Eagerly evaluated all CAFs in your application
Haskell
2
star
64

pdfs

1
star
65

github-delete-old-branches

Delete old branches from GitHub
Ruby
1
star
66

flavr

Mobile website for flavor matching lookups (data not included)
Haskell
1
star
67

s3-bouncer

Gatekeeper for presigned S3 urls
Python
1
star
68

ci-experiments

CI experiments
1
star
69

hiw16-slides

Slides for Haskell Implementor's Workshop 2016
1
star
70

gh-magic-keywords

magic keyword experiment
1
star
71

stratify

Stratifies the lambda cube into multiple levels
Haskell
1
star
72

pldi14-rlimits-aec

Artifact evaluation for PLDI'14
Haskell
1
star
73

tmr-issue23

Issue 23 of The Monad Reader
TeX
1
star
74

model-tests

Model tests for PyTorch
Python
1
star
75

latency

Some latency benchmarks
Haskell
1
star
76

cachegrind-labs

some experiments using cachegrind to measure performance
C++
1
star
77

dividing-the-land

Answer Set Programming solution to Dividing the Land metapuzzle
JavaScript
1
star
78

vimrc

My vimrc
Vim Script
1
star
79

crepe

experimenting with puppeteer
JavaScript
1
star
80

circleci-experiment

testing for circleci
1
star