Bachelor's Thesis

Improving the GraalPy interpreter

Final Thesis 1.6 MB

Author of thesis: Bc. Adam Rudolf Hrbáč

Acad. year: 2023/2024

Supervisor: Ing. David Kozák

Reviewer: Ing. Aleš Smrčka, Ph.D.

Abstract:

GraalPy is a Python implementation for the Java Virtual Machine, designed for easy embedding into Java applications. Such embedding is primarily useful for adopting 3rd party Python packages in existing Java codebases. GraalPy also often has greater performance compared to CPython, the canonical implementation of Python. This work implements two major features. First, the async API, one of the last major missing Python features in GraalPy, used primarily for web development, allowing writing concurrent code without parallelism, using so-called colored async, where each context switch point must be explicitly annotated. It is composed of two major parts, a library providing an event loop, asyncio in this work, as well as the syntactic components of Python, providing the way with which to indicate context switches. The second feature is the tracing API, a CPython API for implementing Python debuggers, used by integrated debuggers in IDEs, coverage tools, etc. It works by analyzing the Python bytecode in order to determine whether a new line is being executed, and if so, invokes a registered callback. This callback is also used when returning a value, calling a function and raising an exception, allowing a debugger to set a breakpoint for these events. Both features are part of the GraalPy releases and have had a notable benefit to compatibility with 3rd party packages.

Keywords:

Python, async, debugger, GraalPy

Date of defence

10.06.2024

Result of the defence

Defended (thesis was successfully defended)

znamkaAznamka

Grading

A

Process of defence

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm A.

Topics for thesis defence

  1. V čem vidíte největší přidanou hodnotu vaší práce?
  2. Dalo by se vaše řešení dále zlepšit? Jakým způsobem byste postupoval?
  3. Mohl byste zhodnotit přínos vašeho řešení pro komunitu?

Language of thesis

English

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

doc. RNDr. Milan Češka, Ph.D. (předseda)
Ing. Zbyněk Křivka, Ph.D. (člen)
doc. Ing. Peter Chudý, Ph.D., MBA (člen)
Ing. Jiří Matoušek, Ph.D. (člen)
Ing. Jaroslav Rozman, Ph.D. (člen)

Supervisor’s report
Ing. David Kozák

Student odvedl vynikající práci. Kladně hodnotím hlavně rozsah a náročnost tématu a také kvalitu implementace. Výsledky práce jsou plně integrovány do překladače využívaného aktivně v průmyslu. Znalosti nezbytné k úspěšné realizaci této práce dalece přesahují typickou úroveň absolventa BP. Text práce a práce s literaturou též přesahuje typický rozsah BP.

Evaluation criteria Verbal classification
Informace k zadání

Práce je realizována ve spolupráci s firmou Oracle. Svou náročností dalece přesahuje rozsah BP, student musel získat a aplikovat netriviální znalosti v oblasti implementace programovacích jazyků, konkrétně podpory pro asynchronní programovaní a debugging. Práce splnila všechny body zadání, s výsledky jsem velmi spokojen.

Práce s literaturou

Student sám aktivně vyhledával relevantní materiály, na základě kterých svoji práci realizoval.

Aktivita během řešení, konzultace, komunikace

Student pracoval aktivně, dlouhodobě a zodpovědně. Na konzultace chodil včas a dobře připravený.

Aktivita při dokončování

Student mě se svojí prací průběžně seznamoval, měl jsem dostatek času si text několikrát projít. Zpětnou vazbu student zodpovědně integroval do textu práce.

Publikační činnost, ocenění

Výsledky práce byly integrovány do open-source Python interpretu GraalPy. Práce byla prezentována na studentské konferenci Excel@FIT.

Points proposed by supervisor: 99
Display more

Grade proposed by supervisor: A

Reviewer’s report
Ing. Aleš Smrčka, Ph.D.

Technická zpráva je na výborné úrovni. Práce obsahuje všechny podstatné části a souhrně dokumentuje přínos. Implementovaná rozšíření nástroje GraalPy jsou funkční a jsou přijata komunitou. Celkový rozsah práce je nadprůměrný.

Evaluation criteria Verbal classification Points
Náročnost zadání

Evaluation level: obtížnější zadání

Práce vyžaduje podrobnou znalost interních detailů nejen upravovaného reálného projektu GraalPy, ale také dalších technologií související s překladači a interprety (korutiny, efektivní datové struktury, trasovací technologie).

Prezentační úroveň technické zprávy

Technická zpráva má logickou strukturu a lehce se v ní naviguje.  Student uvádí čtenáře do problematiky a souvisejících technologií a navazuje na dvě hlavní kapitoly pojednávající o hlavních přínosech práce. Potenciální drobné vylepšení by mohlo být ve strukturalizované analýze požadavků a přesnějším zhodnocení dosažených výsledků.

85
Formální úprava technické zprávy

Z hlediska jazykové a typografické stránky nemám výhrady. Práce je v anglickém jazyce a je čitelná.

90
Realizační výstup

K realizačnímu výstupu nemám žádné výhrady. Student pracoval na reálném, aktivním projektu a přispěl celkem s více než 10 tis. řádky (kódu a komentářů). Jeho přínos je identifikovatelný a je již zahrnut do hlavní větve nástroje GraalPy.

95
Využitelnost výsledků

Dosažené výsledky (rozšířená podpora interpretu GraalPy) je již využívaná komunitou.

Rozsah splnění požadavků zadání

Evaluation level: zadání splněno

Student splnil zadání v plném rozsahu. V rozšíření se zaměřil právě na asynchronní programy i na zpřístupnění operací pro ladění programů.

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Práce s literaturou

Práce s literaturou je bez problémů. Student se odkazuje převážně na internetové zdroje (domovské stránky) zpřízněných SW projektů, což je z ohledem na kategorii projektu pochopitelné. Cituje také odborné publikace, které s tématem souvisejí.

95
Points proposed by reviewer: 93
Display more

Grade proposed by reviewer: A