Fork me on GitHub
#clojure
<
2017-10-15
>
bpiel01:10:32

Just in case anyone was wondering: the conversation between @qqq and I about guildsman gradients happened in #tensorflow

qqq11:10:33

what does the ^:portkey/no-sync in

(ns ^:portkey/no-sync portkey.ouroboros
  "The JVM that instruments itself."
  (:refer-clojure :exclude [descendants])
  (:require [ :as io]))

mean ?

cgrand13:10:34

@U0JHH97UK’s answer is correct but It’s vestigial code inherited from powderkeg

programmancer11:10:57

I haven't seen it used often for namespace, but it's shorthand for metadata: https://clojure.org/guides/weird_characters#__code_code_and_code_code_metadata

programmancer12:10:38

I imagine that portkey uses the information internally for something.

programmancer12:10:24

Essentially it attaches the metadata map: {:portkey/no-sync true} to the namespace.

programmancer12:10:06

Some code operating on the namespace itself could then look up the metadata and do something depending on the value of that key in the metadata.

lovuikeng12:10:43

Clojure, the first 10 years

What did we think we were getting (10 years ago)? A programming tool.
What did we get (10 years later)? A lens for viewing program construction and systems design.
The next 10 years?  It's all to you
I suppose this talk would go into one of clojure classics https://www.youtube.com/watch?v=9N7xM40fio0

qqq13:10:44

operating inside boot, I get:

(clojure.core/require 'portkey.ouroboros) ;; => nil

(clojure.core/use 'portkey.ouroboros) ;; => namespace 'portkey.ouroboros' not found
this confuses me, as the nil implies the require succeeded, but for whatever reason, I can't 'use' the namespace

cgrand13:10:32

@qqq It seems that boot’s classloaders shenanigans and portkey’s ones are not mixing up well

qqq13:10:49

yeah, I got a slightly more helpful error, 1 moment please

qqq13:10:35

https://github.com/portkey-cloud/portkey/blob/master/src/main/clojure/portkey/ouroboros.clj#L173 java.lang.IllegalStateException: This class is expected to be loaded by the system classloader. java.lang.ExceptionInInitializerError: clojure.lang.Compiler$CompilerException: java.lang.ExceptionInInitializerError, compiling:(portkey/ouroboros.clj:173:37) ^^-- that's the silent error when I try to (require 'portkey.ouroboros)

qqq13:10:52

so the namesapce portkey.ouroboros is not loading, and it's complaininga bout that line 173 -- as for how to fix that, I don't know how

qqq13:10:19

@cgrand: ^ @dominicm recommended pinging you 🙂

qqq13:10:24

(from #boot)

qqq13:10:14

okay, so https://github.com/portkey-cloud/portkey/blob/master/src/main/clojure/portkey/ouroboros.clj#L173 wants to look at portkey.Agent/instrumentaion which then causes the class to be loaded .. and runs the static functions to initialize it

cgrand13:10:31

Can’t fix it right now, would you mind opening an issue? I’ll try to take care of it once at the airport.

qqq13:10:19

@cgrand: I'm not used to filing github issues. Here's my attempt at https://github.com/portkey-cloud/portkey/issues/36 -- please let me know if there is more info I should add.

cgrand13:10:31

@qqq that’s perfect thanks

cgrand13:10:28

(this is not an issue coming out the blue, we have discussed it so the issue as a summary of the current analysis is the right thing to write down)

qqq13:10:29

glad to make an epsilon contribution; looking forward to resolution 🙂

cgrand14:10:36

It’s not an epsilon resolution, portkey needs people like you and @baptiste-from-paris that are brave enough to try it and find limitations and edge cases. :thumbsup:

viesti14:10:02

I think that tactic has been successful and has gotten us this far, so continuing it will get us further :)

hmaurer14:10:17

Hi! Is there some sort of “mentoring” program/website/else for Clojurians who would like to get paired with an experienced Clojure dev for feedback on a project and/or questions?

hmaurer14:10:51

By that I mean not “one-off” pairing (like coming here to ask a question), but over a longer period of time

hmaurer14:10:16

Maybe this belong in #off-topic

qqq14:10:18

@cgrand: documenting the error = epsilon 'contribution' resolution / fixing the error = lots of work = won't be done by me 🙂 btw, https://www.youtube.com/watch?v=qJXqQATJNTk was an excellent talk -- basically what got me to try portkey