Skip to content

Function & cast related implementation#75

Open
Doomsk wants to merge 46 commits into
dev/pythonfrom
dev/python_impl/fn_impl
Open

Function & cast related implementation#75
Doomsk wants to merge 46 commits into
dev/pythonfrom
dev/python_impl/fn_impl

Conversation

@Doomsk
Copy link
Copy Markdown
Member

@Doomsk Doomsk commented Oct 12, 2025

This PR defines, implements and refactors code for function and cast structure, logic and overall expected behavior.

On the function side:

  • function definition
  • function call
  • function call resolution (executing instructions)
  • function table for retrieval
  • meta function definition
  • meta function for other types (functions with arguments as options, functions with arguments and with options in the body, functions with arguments and with body)
  • some basic built-in functions definition

on the cast side:

  • cast definition
  • cast call
  • cast call resolution (instruction execution)
  • cast workflow (quantum programs, low level quantum language translation, targeting quantum backend, quantum instructions execution, result interpretation and type casting)

pinging @q-inho

Doomsk and others added 30 commits May 13, 2025 23:02
* new start to match main and this branch

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more documentation

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more documentation

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix mkdocs ci

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more doc pages

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add TODOs, docs introductions, mike versioning, codes fix here and there

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more docs

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix small typo

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

---------

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
* new start to match main and this branch

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more documentation

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more documentation

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix mkdocs ci

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more doc pages

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add TODOs, docs introductions, mike versioning, codes fix here and there

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more docs

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix small typo

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add docs build from main branch

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

---------

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
* new start to match main and this branch

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more documentation

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more documentation

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix mkdocs ci

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more doc pages

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add TODOs, docs introductions, mike versioning, codes fix here and there

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more docs

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix small typo

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add docs build from main branch

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more docs descriptions, pre-commit config
improve heap memory logic and Heather dialect grammar (in progress)

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

---------

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
* new start to match main and this branch

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more documentation

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more documentation

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix mkdocs ci

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more doc pages

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add TODOs, docs introductions, mike versioning, codes fix here and there

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more docs

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix small typo

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add docs build from main branch

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more docs descriptions, pre-commit config
improve heap memory logic and Heather dialect grammar (in progress)

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add instructions docs
improve docs overall

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

---------

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
* add fresh new structure

* add memblock and tests

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more code

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* improve memory block logic and structure

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* improve test

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* include data and type container

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* include data and type container

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* new start to match main and this branch

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more documentation

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more documentation

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix mkdocs ci

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more doc pages

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add TODOs, docs introductions, mike versioning, codes fix here and there

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more docs

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix small typo

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add docs build from main branch

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more docs descriptions, pre-commit config
improve heap memory logic and Heather dialect grammar (in progress)

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add instructions docs
improve docs overall

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add logo and favicon

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* restart some rust codebase

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* restart some rust codebase

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix pre-commit

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add github actions workflows for lint and tests

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix pre-commit and pytest

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix pre-commit and pytest

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix pre-commit location

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* remove netqasm for now

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix pre-commit and pytest actions

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix pre-commit action

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix pytest action

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix pytest action

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix working directory for github actions

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add qiskit-aer dependency

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

---------

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix ast code
add Heather AST parsing visitor

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* small fix

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* small fix

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

---------

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
* Add QNez instruction and update LowLeveQLang for OpenQASM v2.0 support

* reformat for pre-commit

* fix mypy exit error

* Add QInstrFlag to manage instruction behavior and update QNez for argument generation

* Add skip_gen flag to conditionally generate arguments in gen_instrs method

* QNez: Update boolean handling for mask values in instruction processing

* Update argument in test for QNez instruction from '@redim' to '@Not'
Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
# Conflicts:
#	python/src/hhat_lang/low_level/quantum_lang/openqasm/v2/qlang.py
#	python/tests/lowlevel/qlang/openqasm/v2/test_lowlevelqlang.py
add visitor ir
test visitor ir

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
implement IR base classes to inherit from hhat_lang.core

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
…parser and evaluator

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
add function importer
improve variables, memory stack, heap, and symbol tables
finish IR parsing visitor
improve grammar
fix create new file on project

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
improve IR logic with symbol tables and ref tables
add enum data structure
(wip) improve IR visitor

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
(wip) improve IR visitor

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
…nd functions

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
improve other codes to utilize IR graph logic
(wip) implement IR visitor with IR graph

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
add PEG grammar in python for faster parsing
fix type and function imports, ref tables
fix IR visitor

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
(wip) big cleanup, big refactor

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
Doomsk added 15 commits August 25, 2025 16:57
big cleanup, big refactor

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
…, mul, div, pow

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
# Conflicts:
#	.github/workflows/ci.yml
#	README.md
#	docs/CNAME
#	docs/TODOs.md
#	docs/core/index.md
#	docs/dialects/creation.md
#	docs/dialects/heather/current_syntax.md
#	docs/dialects/heather/heather_syntax.md
#	docs/dialects/heather/index.md
#	docs/index.md
#	docs/python/python_guide.md
#	docs/running_hhat.md
#	docs/stylesheets/extra.css
#	docs/toolchain.md
#	mkdocs.yml
#	python/README.md
#	python/pyproject.toml
#	python/src/hhat_lang/core/code/instructions.py
#	python/src/hhat_lang/core/code/utils.py
#	python/src/hhat_lang/core/data/core.py
#	python/src/hhat_lang/core/data/utils.py
#	python/src/hhat_lang/core/data/variable.py
#	python/src/hhat_lang/core/error_handlers/errors.py
#	python/src/hhat_lang/core/execution/abstract_base.py
#	python/src/hhat_lang/core/execution/abstract_program.py
#	python/src/hhat_lang/core/lowlevel/abstract_qlang.py
#	python/src/hhat_lang/core/memory/core.py
#	python/src/hhat_lang/core/types/__init__.py
#	python/src/hhat_lang/core/types/abstract_base.py
#	python/src/hhat_lang/core/types/core.py
#	python/src/hhat_lang/core/types/resolve_sizes.py
#	python/src/hhat_lang/core/utils.py
#	python/src/hhat_lang/dialects/heather/grammar/grammar.peg
#	python/src/hhat_lang/low_level/quantum_lang/openqasm/v2/__init__.py
#	python/src/hhat_lang/low_level/quantum_lang/openqasm/v2/instructions.py
#	python/src/hhat_lang/low_level/quantum_lang/openqasm/v2/qlang.py
#	python/src/hhat_lang/low_level/target_backend/qiskit/openqasm/code_executor.py
#	python/src/hhat_lang/toolchain/project/new.py
#	python/tests/core/test_type_ds.py
#	python/tests/dialects/heather/parsing/ex_fn01.hat
#	python/tests/dialects/heather/parsing/ex_fn02.hat
#	python/tests/dialects/heather/parsing/ex_main02.hat
Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
fix Heather's quantum program.py

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
fix ci workflow

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
(wip) add metafn grammar and functionality --new function constructors
(wip) add metamod grammar
fix and refactor memory, ir, ir visitor (wip), functions, types, symbol table (wip), ir builder (wip) to account for changes in the H-hat engine

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
@Doomsk Doomsk self-assigned this Oct 12, 2025
(wip) add metafn grammar and functionality --new function constructors
(wip) add metamod grammar
fix and refactor memory, ir, ir visitor (wip), functions, types, symbol table (wip), ir builder (wip) to account for changes in the H-hat engine
(wip) config logic for executor to run using the correct data

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

4 participants