stacksgov / grants-program

Welcome to the Stacks Foundation Grant Program. Community members interested in submitting a grant proposal may do so by opening an issue in this repository and filling out the grant application.
141 stars 36 forks source link

Clarity Sequence Library #719

Closed njordhov closed 1 year ago

njordhov commented 1 year ago

APPLICANT

Type:                                                                        Direct Application

Email:                                                                    terje@in-progress.com

Discord:                                                    Terje | njordhov

Twitter:                                                        

Stacks Forum:            njordhov

GRANT BASICS

Grant Name:                                        Clarity Sequence Library

Total Budget:                              10,000

Total Duration:                 40

Grant Type:                                               Open Source Dev 1st time Grantees

Grant Track:                                          Stacks dApps & Clarity

Grant Goal:                                               Create New Technology

Grant Audience:             Developers

Specific Audience:         Clarity contract developers

Grant Team:                                       

Previous Grants:                      

Ecosystem Programs:      

GRANT MISSION, IMPACT, RISKS & REFERENCE

Grant Mission:         Sequence operations can be challenging to implement in Clarity contracts, yet are crucial for many smart contract applications. A Clarity library with common sequence functions will make it easier to implement more advanced contracts. It will also give our developer community hands-on experience that can help in determining which functions would be most beneficial to implement natively in the Stacks blockchain VM.

The sequence library will accelerate the development of more advanced smart contracts and help us further improve the Clarity language, bringing us closer to a user-owned internet through usage in applications.

The sequence library will lower the barrier to developing advanced smart contracts for Stacks, potentially accelerating a broader adoption.

Clarity developers will benefit directly from using the sequence library in their contract and having code examples that can be used as inspiration. The project will encourage more discussion and engagement about further improvements to the Clarity language.

Grant Impact:               N/A

Grant Risks:                          Clarity is strongly typed without support for defining generic functions that can work across sequence types. Also, Clarity execution cost is typically a function of sequence length, making some sequence algorithms infeasible and hard to scale. Other sequence operations might be impossible due to Clarity not being Turing complete. The Clarity language is a moving target as it is advancing with new releases of the Stacks blockchain.

The Sequence library will have separate implementations for each sequence type, and possibly also for different sequence lengths. The implementation will not optimize for execution cost. It is assumed that other projects will revise and update the Sequence library in response to advances in the Clarity VM and changes in the needs of our developer community.

Support Link:                                     As the developer of ClarityTools and its transpiler for Clarity language extensions, I have a deep understanding of what is possible with Clarity when it comes to sequence operations.

I am intimately familiar with sequence operations in Lisp-based languages, having many years of experience as a professional developer extensively using Lisp languages, primarily Clojure and Common Lisp.

GRANT ROADMAP & DELIVERABLES

MILESTONE 1:

Deliverable:                   1) Sequence library deployed as a Clarity contract on Mainnet; 2) Github repo with source files for the project; 3) Documentation of how to use the functions;

FINAL DELIVERABLE

Deliverable:                   Clarity implementation of common sequence functions as: 1) Extension contract library deployed on Mainnet; 2) Github repo with related sources; 3) Documentation of the functions and their usage. The functions will be implemented for all Clarity sequence types (lists, buffers and strings).

stacks-foundation commented 1 year ago

👋 @njordhov
Thanks for your application! We will do a pre-review and let you know if we have any immediate questions. In the mean time please refer to our review schedule here for a detailed timeline and response dates.
Best, Will

njordhov commented 1 year ago

Completed: https://github.com/njordhov/clarity-sequence

will-corcoran commented 1 year ago

Thanks @njordhov !

Just curious if you have any updates / anticipated completion date for your Clarity Linter grant?