Coder Social home page Coder Social logo

clj-embed's People

Contributors

rutledgepaulv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

clj-embed's Issues

Provide an extensible mechanism for serializing across runtimes

Because clojure itself is loaded in a separate classloader it means that non-primitives don't transmit across the class loader boundary in a consumable way. By providing a hook on the root and the runtime side I should be able to let users define their own serialize/parse hooks per data type if they need to send results back and forth. Minimally, this library could take care of it for core clojure data types.

An example of this problem can be seen in this:

(with-runtime runtime :dummy)
=> #object[clojure.lang.Keyword 0x6358bfef ":dummy"]

(keyword? (with-runtime runtime :dummy))
=> false

Piped runtime documentation unclear

From the example I'm a little confused:

  • Is runtime a bound var? Or should it be r like the surrounding context
  • I'm not fully certain of the intention of it, from the given example. I think it has access to dynamic vars or something, but I'm really not clear.

git/directory dependencies don't work

For some reason the loader can't find these while loading the clojure sources, but io/resource works. So I think it's either ShimDandy's loading strategy or the fact that clojure.lang.Compiler/LOADER is bound to an incorrect classloader.

Ability to nest runtimes

After initializing a new runtime, I should inject the clj-embed namespace into it so that you can nest them.

Ability to convey locals from root runtime when targeting another?

Could I determine what is being referenced in the local context but not present in the target runtime and then map them and their deps into the runtime? That would simplify the process of setting up the runtime to handle some particular piece of code that involves functions and libraries, etc.

Ability to create clone of root runtime

Ideally you could start with the same classpath as the project invoking the new runtime. Probably best if you can always spawn a clone of the "current" runtime (root or otherwise).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.