Fork me on GitHub
#clojure-dev
<
2017-02-16
>
Alex Miller (Clojure team)03:02:43

I think Rich would agree with you

Alex Miller (Clojure team)03:02:54

by “argued” do you mean just sitting around talking in a chat room or on a ticket?

bronsa08:02:02

I'm sure I've written about it in a mailing list years ago, but not ticket that I remember of as I never got feedback about it

bronsa08:02:38

I would be happy to make a ticket + patch making those unboxing hints invalid so that it doesn't trip people over (myself included, as the above clearly shows how I forgot about it :)) but need to know there is interest in that before spending time on it

bronsa08:02:39

ATM all I know is that I believe it to be an invalid type hint usage based on my understanding of the compiler /language semantics but I have no idea of my interpretation is correct

bronsa08:02:38

don't read too much into that 'argued about it' above btw, I just meant it as 'ah, how stupid I am, I've told people in the past not to make this mistake and now I've made it myself'

Alex Miller (Clojure team)15:02:33

I’m having trouble with the latest patch

Alex Miller (Clojure team)15:02:49

trying it on some public projects I’m seeing errors like "Unable to resolve symbol: inst_23951 in this context"

bronsa15:02:58

"it's a simple lexical transformation" I said

bronsa15:02:50

I'll see if I can take another look at this this evening

bronsa15:02:20

I think working on classloader issues was less painful than this

Alex Miller (Clojure team)15:02:24

I’m going to move forward testing the current state w/o the patch for now

bronsa15:02:29

yeah no worries

bronsa15:02:34

thanks for all the testing

bronsa16:02:38

@alexmiller hmm, I'm getting that exception w/o my patch applied

bronsa16:02:05

and it's manifesting itself on a nested try in a go

bronsa16:02:44

I think it might be an issue with the try catch changes that went in rather than with my patch

bronsa16:02:50

(defn foo [x]
  (async/go
    (try
      (try
        (async/<! x)
        (catch clojure.lang.ExceptionInfo e
          (async/<! x)
          (throw e)))
      (catch Exception e e))))

bronsa16:02:55

smallest repro ^

bronsa16:02:00

failing on current master

hiredman16:02:14

(defn foo []
  (async/go
    (try
      (catch clojure.lang.ExceptionInfo e
        (async/<! 1)
        (throw e)))))

hiredman16:02:53

appears to be the same error from that, and it seems to go away if I comment out the throw

bronsa16:02:17

try replacing (throw e) with just e

bronsa16:02:32

think that might be the smallest repro we can get

bronsa16:02:58

(async/go
  (try
    (catch Exception e
      (async/<! 1)
      e)))

bronsa16:02:12

core.async: fix 5 bugs, create 2 more

bronsa16:02:24

compilers are hard man

Alex Miller (Clojure team)16:02:35

@bronsa apologies for misattributing the error :)

bronsa16:02:22

ah no worries

bronsa16:02:49

i get a kick out of debugging those things regardless of whose patch introduced them ;)

hiredman18:02:18

I haven't found a quick fix for this

bronsa18:02:43

I'll take a look at it later in case you can't find a fix

hiredman19:02:44

I think I got it (patch forth coming)

hiredman19:02:49

when I fixed the reflection on printStackTrace issue, I used with-meta instead of vary-meta, and it turns out there was some metadata there that the macro uses to figure out what to save between state machine invocations

hiredman20:02:30

I reopened the issue and added a new patch http://dev.clojure.org/jira/browse/ASYNC-169