argotorg / argotorg/solidity

Assembly language feature: add new levels for Yul

Open
#13,247 39 comments 8 reactions 0 assignees View on GitHub
language design :rage4:
Dominant language
C++
Stars
25.7k
Forks
6.2k
Avg merge
1d 11h
Merged PRs (30d)
21

Description

## Abstract

Add new levels for Yul: **Yul+** being a higher-level version and **Yul-** being a lower-level version.

## Motivation

The current version of Yul can be viewed as a pretty high-level assembly language since it provides e.g. no access to stack and control flow instructions. I open this issue to initiate a discussion on adding potential new levels to the current version of Yul. The idea started with my Twitter thread [here](https://twitter.com/pcaversaccio/status/1541529156504231938) and feedback by @leonardoalt. The current idea is to add new levels of Yul: **Yul+** being a higher-level version and **Yul-** being a lower-level version with more compilation stack layers. Building something similar to LLVM IR would be really nice.

Contributor guide

Open the contributing guide

Research direction

Start with the issue discussion and its linked motivation thread, then review how the current Yul level is defined. Establish the semantics and scope of Yul+ and Yul-, including stack and control-flow access, before implementation; the LLVM IR comparison is exploratory rather than an acceptance criterion.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, solidity
Domain
blockchain, compilers
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.