Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated MNRL Submodule to compile on Apple M1 Processors as well as Updated Readme.md #44

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
@@ -0,0 +1 @@
src/obj/
46 changes: 6 additions & 40 deletions README.md
@@ -1,56 +1,20 @@
# Virtual Automata Simulator (VASim)

VASim is a homogeneous non-deterministic finite automata simulator. Homogeneous automata do not contain epsilon transitions, and also have the property that all incoming transitions for a particular state have the same rule.
VASim is a homogeneous non-deterministic finite automata (NFA) simulator. Homogeneous automata do not contain epsilon transitions, and also have the property that all incoming transitions for a particular state have the same symbol set.

VASim can parse, transform, simulate, and profile homogeneous automata, and is meant to be an open tool for automata processing research. VASim can also be extended to support arbitrary automata processing elements other than traditional states.

## Installation

VASim is designed to run on 64-bit machines GCC 4.9+. Users have successfully compiled on 32-bit platforms but these builds are not officially supported. Below are the commands used to install on all tested platforms.
VASim is designed to run on 64-bit machines, Intel/AMD x86-64 or Apple's M processors. Below are the commands used to install on all tested platforms.

### Ubuntu Linux (14.04/16.04 with gcc 5.0+)
### Ubuntu Linux (18.04/20.04/22.04) and MacOS (M1 or Intel)
```bash

$ git clone https://github.com/jackwadden/VASim.git
$ cd VASim
$ make

```

### MacOS (10.11+)
```bash

$ brew install nasm
$ brew install gcc5
$ git clone https://github.com/jackwadden/VASim.git
$ cd VASim
$ make

```

### Windows 7 (Cygwin64)

Dependencies:
- Cygwin64
- Git (https://git-scm.com/download/win)

First you must install all required Cygwin64 software tools
```bash

C:\> chdir cygwin64
C:\cygwin64> move <path-to-setup-x86_64.exe> .
C:\cygwin64> setup-x86_64.exe -q -P wget -P gcc-g++ -P make -P diffutils -P libmpfr-devel -P libgmp-devel -P libmpc-devel -P nasm

```
Once Cygwin64 is configured, VASim should compile correctly in a Cygwin terminal.

```bash

$ git clone https://github.com/jackwadden/VASim.git
$ cd VASim
$ make


```

## Command Line Usage
Expand Down Expand Up @@ -98,7 +62,7 @@ int main(int argc, char * argv[]) {
cout << ap.getReportVector().size() << endl;

// enable report gathering for the automata
ap.enableReport();
ap.setReport(true);

// initialize simulation
ap.initializeSimulation();
Expand All @@ -114,6 +78,8 @@ int main(int argc, char * argv[]) {
}
```

To compile against the library, use the Makefile in test/VASim.

## Issues

Please see https://www.github.com/jackwadden/VASim/issues for a list of known bugs or to create an issue ticket.
Expand Down
4 changes: 2 additions & 2 deletions include/automata.h
@@ -1,5 +1,5 @@
/**
* @file
* Header file for VASim
*/
#ifndef AUTOMATA_H
#define AUTOMATA_H
Expand Down Expand Up @@ -59,7 +59,6 @@ class Automata {
std::vector<SpecialElement*> latchedSpecialElements;
std::vector<SpecialElement*> activateNoInputSpecialElements;


// Simulation Statistics
std::vector<std::pair<uint64_t, std::string>> reportVector;
std::unordered_map<uint32_t, std::list<std::string>> activationVector;
Expand Down Expand Up @@ -116,6 +115,7 @@ class Automata {
void automataToNFAFile(std::string fn);
void automataToANMLFile(std::string fn);
void automataToMNRLFile(std::string fn);
void automataToHLSFiles(int N, int split_factor);
void automataToHDLFile(std::string fn);
void automataToBLIFFile(std::string fn);
void automataToGraphFile(std::string fn);
Expand Down
1 change: 1 addition & 0 deletions src/.gitignore
@@ -0,0 +1 @@
obj/*
Binary file removed src/.main.cpp.swp
Binary file not shown.