chipsalliance / chipsalliance/fasm

Replace slow implementation with single-header, plain c++ version ?

Open
#92 2 comments 2 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
104
Forks
35
PR merge metrics
No merged PRs in 30d

Description

I heard once that fasm-parsing was eating a significant amount of time in some projects and wanted to have a quick look.

But when attempting to look at it a while back I couldn't get it even to compile because of a forest of intertangled Python dependencies . Looks like the early days were centered around Python for interactive and debugging reasons.
Given that fasm is used as an important part of actual flows these days, it is probably time to slim down the dependencies, and focus on it _not_ being a bottleneck in production flows (Maybe still keep a Python implementation to focus for the interactive experiments.)

Since this project didn't compile but I still wanted to explore the format I ended up writing a parser in a header-only C++ implementation (including a C binding) to play with it. Content is parsed, values decoded and the feature names and bits are returned via callbacks. It parses FASM at about **1GiB/s per core**.

Since I am not actively working in a project using fasm, I just leave it here in case you want to pick it up.
https://github.com/hzeller/simple-fasm

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.