Tensegritics / Tensegritics/ClojureDart

static methods on interfaces backing protocols

Open
#301 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement interop
Dominant language
Clojure
Stars
1.6k
Forks
119
PR merge metrics
No merged PRs in 30d

Description

This affects both produced code and consumption from Dart.

As part of the abstract class backing a protocol we could have static methods to invoke the protocol.
This would help invoking protocols from Dart.

Plus these static methods could be marked @pragma("vm:prefer-inline"), which would also simplified emitted code as emitted code could rely on them (in case of a method with multiple arities we may have one static method per arity for CLJD usage and one static method with optionals for Dart usage) in emitted code.

Relying on them in emitted code would have benefits in code size and legibility.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no files or tests. Start by locating the code that generates abstract classes backing protocols and the emitted-code paths that invoke them, then inspect how Dart consumes those protocols. Done would include static protocol invocation methods usable from Dart and consistent handling of methods with multiple arities.

Written by the indexing model from the issue text.

Assessment

Tech stack
clojure, dart
Domain
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.