Skip to content

Unify injected print-method implementations with orchard.print #935

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 23, 2025

Conversation

alexander-yakushev
Copy link
Member

@alexander-yakushev alexander-yakushev commented Apr 23, 2025

Now that orchard.print has more printers for different classes, we can use it instead of custom code in cider-nrepl to modify print-method behavior. Brings more consistency and removes some code too.

One controversial change: different derefables like atoms, futures, etc., have changed how they look:

;; before
#atom[{:status :ready, :val 1} 0x11381415]
#promise[{:status :pending, :val nil} 0x2a40ec4d]
#delay[{:status :failed, :val #error {....}]

;; now
#atom[1]
#promise[<pending>]
#delay[<failed> #error[...]]

I hope this doesn't break anything – if people rely on printed representation of these objects, specifically on how cider-nrepl augments them, and then parse that, they are probably in a bigger trouble already.


  • All tests are passing
  • You've updated the README

@alexander-yakushev alexander-yakushev merged commit 629ffab into master Apr 23, 2025
16 checks passed
@alexander-yakushev alexander-yakushev deleted the orchard-print branch April 23, 2025 07:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants