algorand / pyteal

Algorand Smart Contracts in Python
https://pyteal.readthedocs.io
MIT License
288 stars 130 forks source link

Source Mapper Improvements: Better Performance and Its Consequences #677

Open tzaffi opened 1 year ago

tzaffi commented 1 year ago

Problem

The source mapper is very slow and a memory hog. As a result, two non-ideal artifacts have been added:

  1. pyteal.ini which defaults to pyteal-source-mapper.enabled = False
  2. Nightly tests in C.I. which carve out the slowest portion of the tests and complicate local testing

Solution

@jasonpaulos has an experimental approach which promises to speed things up to the point that these artifacts can be eliminated, or mitigated.

I propose:

Why keep the pyteal.ini ?

Tasks

Dependencies

None

Urgency

Medium - defaulting to pyteal-source-mapper.enabled = True will make source mapping a lot more accessible, and getting rid of nightly tests will reduce developer friction.

bbroder-algo commented 1 year ago

I like the pyproject.toml-based categorized feature gate support approach over adding a pyteal.ini.