GithubHelp home page GithubHelp logo

isabella232 / plutus-core-semantics Goto Github PK

View Code? Open in Web Editor NEW

This project forked from runtimeverification/plutus-core-semantics

0.0 0.0 0.0 3.49 MB

License: BSD 3-Clause "New" or "Revised" License

Shell 30.73% Dockerfile 8.60% Makefile 60.67%

plutus-core-semantics's Introduction

KPlutus - K Semantics of Plutus-Core

Dependencies

  • Install needed K dependencies: https://github.com/kframework/k
  • Update submodules: git submodule update --init --recursive
  • Make dependencies: make deps RELEASE=true

Building

  • Build everything: make build -j8
  • Build LLVM backend: make build-llvm -j8
  • Build Haskell backend: make build-haskell -j8
  • Build just KPlutus runner and includes: make build-kplutus -j8

A note about Crypto++

Due to a bug in the ubuntu bionic and focal packages for crypto++ that affects us here, we build a static library for it from source. If you're certain that you have a crypto++ package installed that doesn't have this bug, you can run the make commands with NOBUILD_CRYPTOPP=true

Testing

  • Conformance tests: make conformance-test Runs all tests where an input program is executed by the kplc run command. The output is compared against the reference implementation as well as a previous run of kplc run

  • Simple hand-written tests: make test-simple These contain small tests that have been written during the development of the semantics.

  • Examples generated by the uplc program: make test-uplc-examples The uplc program contains several small examples. These are slightly larger programs than files in simple tests. The uplc program is a part of the plutus repository https://github.com/input-output-hk/plutus

  • Examples benchmark examples: test-benchmark-validation-examples This contains many examples derived from the plutus-apps directory. These represent are more realistic plutus programs. The tests from this directory were extracted from https://github.com/input-output-hk/plutus/tree/master/plutus-benchmark/validation/data

  • Examples generated by the nofib-exe program: test-nofib-exe-examples nofib-exe is a program that generates large programs that can serve as performance tests. This program is a part of the plutus repository.

  • Update test results: make update-results Update all test results. Note: this requires having the uplc program installed in the machine's PATH.

plutus-core-semantics's People

Contributors

bmmoore avatar dwightguth avatar effectfully avatar ehildenb avatar gtrepta avatar lucaspena avatar nishantjr avatar rv-jenkins avatar theo25 avatar zzma avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.