Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Errors when executed over a prepl connection

Open
#22 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
25/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
clojure
Domain
tooling

Research direction

Start with src/lib/oops/compiler.clj at the linked lines 40–44, then reproduce the failure by starting the prepl with the provided clj command, connecting with nc, and running the example oops.core/ocall expression. Compare the prepl behavior with a normal REPL and determine a fix or workaround so oops operations no longer raise the cljs-warnings binding error over prepl.

Written by the indexing model from the issue text.

Description

So this is a bit of a weird onc since there's hardly anyone (possibly just me?) is using prepl for development right now, if you don't care just yet then that's totally fine! Thought I'd let you know anyway 😄

The error is Can't change/establish root binding of: *cljs-warnings* with set, which works fine in a normal REPL. This could be an issue with prepl itself that isn't setting up binding in the right way.

Even if I can't fix it, finding a work around would be great. If I find something I'll put it here, any help would be much appreciated though. This error occurs with any oops operation due to the fact that the setting of *cljs-warnings* is attempted by every macro low down.

I'm not sure what the difference is between a prepl and regular REPL though. You can try it yourself by starting a prepl:

clj -J-Dclojure.server.node="{:port 5556 :accept cljs.server.node/prepl}"

Connecting with something like nc:

nc 127.0.0.1 5556

And executing any oops operation such as:

(oops.core/ocall #js {"a" +} "a" 1 1)
Dominant language
Clojure
Stars
350
Forks
13
PR merge metrics
No merged PRs in 30d

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.

More from binaryage/cljs-oops

All issues in binaryage/cljs-oops

Similar issues

More Clojure issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.