This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
- # admin-announcements (13)
- # announcements (1)
- # aws (17)
- # beginners (1)
- # boot (113)
- # cider (71)
- # cljs-dev (7)
- # clojure (93)
- # clojure-android (2)
- # clojure-berlin (1)
- # clojure-dev (22)
- # clojure-italy (3)
- # clojure-japan (1)
- # clojure-poland (41)
- # clojure-russia (96)
- # clojurescript (140)
- # cursive (11)
- # datomic (27)
- # devcards (1)
- # devops (1)
- # events (4)
- # funcool (3)
- # hoplon (133)
- # immutant (7)
- # ldnclj (22)
- # leiningen (5)
- # off-topic (6)
- # om (22)
- # onyx (12)
- # re-frame (8)
- # reagent (12)
@bronsa: I just added a cause/approach to http://dev.clojure.org/jira/browse/CLJ-1809 - can you tell me if I am saying the right words there?
@alexmiller: it matches my understanding of the issue, yes
fm.locals here is any local in the Java method we are producing bytecode for, right?
locals introduced during analysis are left out, that's why the bug happened: try/finally blocks introduce a local variable without adding it to fm.locals
IOW the jvm locals count for a fn method is not the same as the number of local variables in its clojure code
I'm trying to connect "try/finally blocks introduce a local variable without adding it to fm.locals" with the ticket cause / approach
is that where the indexing error becomes a problem?
@alexmiller: as I said in the first comment of that ticket, I really don't 100% understand the issue, Rich/somebody else with more knowledge of the direct linking stuff needs to take a look at that
I guess that will be me (taking a look, not being more knowledgable :)
@alexmiller: yes b/c if all the locals in fm.locals are traversed and dec'd, not taking into account "constructed" locals, it's possible that two locals end up with the same idx
I assume let is another things that constructs locals - why is that not an issue too
I'm just starting to look at this, sorry for all the dumb questions
@alexmiller: true locals (those introduced by loop/let/letfn/fn args) are constructed via registerLocal and put into fm.locals, locals needed for compilation purposes just get their id reserved via a call to getAndIncLocalNum()
thanks, this is helpful in diving further...
cfleming: not urgent, but curious if you saw my message at https://groups.google.com/d/msg/clojure-dev/v58AOZaS1Bo/5E_OwZpcCwAJ about socket repl and had any thoughts
@cfleming not urgent, but curious if you saw my message at https://groups.google.com/d/msg/clojure-dev/v58AOZaS1Bo/5E_OwZpcCwAJ about socket repl and had any thoughts
@bronsa: I'm wondering whether reducing maxlocals is a good idea in that block. seems like that's only ok if there are only arg locals.
@alexmiller maxlocal is never used anyway
ah, yeah. but it do you agree it seems incorrect to decrement it?
@alexmiller: I did but have been busy, sorry - will reply when I get a chance. Helping out at ClojureBridge Auckland right now!
@alexmiller yeah i agree it's wrong