tagion ~crypto-review-freeze

Configuration exists to allow language server to do proper static analasys, compilation is not supported


To use this package, run the following command in your project's root directory:

Manual usage
Put the following dependency into your project's dependences section:

codecov CI Devnet running

Tagion

🚧 This document is still in development. Some things may be out of date or incomplete

👋 Welcome to the Tagion project!

This repository is a home for all core units, also containing scripts for cross-compilation, testing and docs generation.

Documentation DDOC

Installation

Installation tested on ubuntu 22.04, nixos-unstable

Setup steps & preflight checks

  1. Make sure that you have add your ssh keys to your github profile

Follow this guide: https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

  1. First of all please be sure that you have everything, command You can run the following commands, if you are using arch, nix or ubuntu
# Ubuntu
apt-get install git autoconf build-essential libtool dub cmake
# Arch
pacman -Syu git make autoconf gcc libtool dub cmake
# nix
nix develop

You can skip the next step if you installed with nix.

  1. Choose a D compiler ldc2 or dmd
  • LLVM D compiler - ldc2 (latest working version is 1.35)
wget https://github.com/ldc-developers/ldc/releases/download/v1.35.0/ldc2-1.35.0-linux-x86_64.tar.xz
tar xf ldc2-1.35.0-linux-x86_64.tar.xz
export PATH="path-to-ldc2/ldc2-1.34.0-linux-x86_64/bin:$PATH"
  • Reference D compiler - dmd
wget https://downloads.dlang.org/releases/2.x/2.105.2/dmd.2.105.2.linux.tar.xz
tar xf dmd.2.105.2.linux.tar.xz
export PATH="path-to-dmd2/dmd2/linux/bin64:$PATH"
  1. Install dstep if you need to be able to update c headers to d interface Download release binaries (or follow build instruction from https://github.com/jacob-carlborg/dstep)
wget https://github.com/jacob-carlborg/dstep/releases/download/v1.0.0/dstep-1.0.0-linux-x86_64.tar.xz
tar xf dstep-1.0.0-linux-x86_64.tar.xz
# Then copy the executable to a directory searched by your path, like the path you added when you set up your compiler
  1. Verify that the binaries are available and check their version (comments showing versions used as of writing)
dstep --version # 1.0.0
ldc2 --version # LDC - the LLVM D compiler (1.35.0): ...
dmd --version # v2.105.2
  1. Cloning tagion repo
git clone [email protected]:tagion/tagion.git

Compiling

  1. Running tests
make test
  1. Compiling binaries
make tagion
make install
# Will install to dir specified by INSTALL=/path/to/dir
# This directory should also be in your PATH variable
# such that you can use the tools from you shell
  1. General info about build flow
# Help info
make help
# or
make help-<topic>

# Info about environment variables
make env
# or
make env-<topic>
  1. Compilation options, can be specified on the commandline or in a local.mk in the project root
# Showing the default values
ONETOOL=1 # ALL tools linked in to a single executable
          # and individual tools are symbolic links to that binary
DC=       # D compiler to use, default will try to pick between dmd and ldc2
CC=       # C compiler to use, default will try to pick between gcc and clang

Profiling

Profiling can be enabled in two way.

Buildin profiler

Enable the dmd build profiler with the PROFILE environment.

make PROFILE=1 DC=dmd <target>

The result of the profile can be sorted and displayed with the tprofile (onetool).

Profiling Valgrind

Valgrind profiler can be started with the VALGRIND environment.

Run the unittest with valgrind and callgrind.

make VALGRIND=1 unittest

Any of the test/bdd target can be executed with the VALGRIND=1.

Note. The result from the callgrind viewed with Kcachegrind.

Overview

./documents/ # Development flow docs

./src/
     /lib-* # Library source code
     /bin-* # Executable source code
     /fork-* # Vendor library compilation scripts
./bdd/ # behaviour driven tests
./tub/ # Build flow scripts

Generating Docs

Installation

You have to install docsify globally.

npm i docsify-cli -g

Building the docs

To build the docs use the command:

make ddoc

Running the document servers

make servedocs

This will start two servers ( default 3000 and 3001 ), with each of them running the different servers.

Tools

See tools

Tagion Node Architecture

The Tagion Node Architecture

BDD-test tools

BDD-tool

Maintainers

Authors:
  • decard
Dependencies:
none
Versions:
1.2.0 2024-Feb-20
1.2.0-rc 2024-Feb-12
1.1.1 2024-Jan-20
1.1.0 2024-Jan-12
1.0.5 2023-Dec-20
Show all 25 versions
Download Stats:
  • 0 downloads today

  • 0 downloads this week

  • 0 downloads this month

  • 11 downloads total

Score:
0.6
Short URL:
tagion.dub.pm