clj-nativedep version 0.2.0 released
Hi, A new version of the clj-nativedep library has been released to clojars. The library provides a "standard" way to handle native library dependencies and OS detection. This version adds support for explicit mac detection via the (mac?) function. See: https://github.com/rritoch/clj-nativedep Clojars/Leiningen dependency: [clj-nativedep "0.2.0"] Best Regards, Ralph Ritoch -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Clojure OSGI (Java 9?) support library ready for review
Hi, I created a library on github https://github.com/rritoch/clj-osgi-namespaces which facilitates namespace isolation and clojure namespace imports and exports for OSGI environments. Since this library and related libraries produce bundles it doesn't seem appropriate for Clojars. Both a hello world bundle and a hello world user bundle which imports from hello world have been tested and appear to be fully functional. Feel free to use and extend this code at will as I'm releasing it under the MIT license. Best Regards, Ralph Ritoch -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Lein-SableCC 1.0.0 is released
This is the first release of the lein-sablecc leiningen plugin. This project is on github at https://github.com/rritoch/lein-sablecc It has been released to clojars at https://clojars.org/lein-sablecc Description: This plugin integrates the SableCC Compiler Compiler with a leiningen project. The primary purpose of this plugin is to simplify the task of developing compilers and interpreters in Clojure. The plugin facilitates compilation of SableCC grammar files via the command line and provides a hook to the leiningen javac task to integrate SableCC generation and compilation with the normal leiningen compilation process. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: For review: Clojure Namespace Isolation
Thank you. I have signed the contributor agreement and applied to join clojure-dev (request pending). On Monday, December 8, 2014 3:38:15 AM UTC+8, Alan Forrester wrote: On 7 December 2014 at 19:27, Fluid Dynamics a209...@trbvm.com javascript: wrote: On Sunday, December 7, 2014 11:12:37 AM UTC-5, Bozhidar Batsov wrote: I think you should post this to cloju...@googlegroups.com To where? Your post displayed like that, and I couldn't get a usable tooltip expanding the address by mousing over it either. clojure slash dev at googlegroups dot com with no spaces and with @ and - in place of slash and at. Alan -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: For review: Clojure Namespace Isolation
Gary, What your stating is possible with this, but it wouldn't be automatic. You could load the one dependency in one isolation, and load the second dependency in a second isolation. This is where a bit of hard work would be needed to keep the pointers returned when you create the two environments, Go into each environment to grab pointers to the namespace(s) you depend on. Then you need to create your own instance of a namespace container (clojure.lang.NamespaceContainer.) which gives you the capability of calling it's putIfAbsent method to import object references of those namespaces from the two environments. This was not an intended feature, but it is a feature that can be accessed. Best Regards, Ralph Ritoch On Monday, December 8, 2014 8:39:29 PM UTC+8, Gary Verhaegen wrote: Naive question: does that solve the dependency problem where two explicit dependencies depend on different versions of a transitive one and something breaks because of it? On Monday, 8 December 2014, Ralph Ritoch rri...@gmail.com javascript: wrote: Thank you. I have signed the contributor agreement and applied to join clojure-dev (request pending). On Monday, December 8, 2014 3:38:15 AM UTC+8, Alan Forrester wrote: On 7 December 2014 at 19:27, Fluid Dynamics a209...@trbvm.com wrote: On Sunday, December 7, 2014 11:12:37 AM UTC-5, Bozhidar Batsov wrote: I think you should post this to cloju...@googlegroups.com To where? Your post displayed like that, and I couldn't get a usable tooltip expanding the address by mousing over it either. clojure slash dev at googlegroups dot com with no spaces and with @ and - in place of slash and at. Alan -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: For review: Clojure Namespace Isolation
Gary, One additional note. When your about to use a dependency you will still need to enter into the isolation of that dependency for any feature that accesses namespaces not in your current environment (such as any call to the dependency which uses conflicting namespaces). Not every feature of a dependency will require the conflicting dependencies, but some will. It wouldn't be easy, or automatic, but it would become possible. Best Regards, Ralph Ritoch On Monday, December 8, 2014 9:23:12 PM UTC+8, Ralph Ritoch wrote: Gary, What your stating is possible with this, but it wouldn't be automatic. You could load the one dependency in one isolation, and load the second dependency in a second isolation. This is where a bit of hard work would be needed to keep the pointers returned when you create the two environments, Go into each environment to grab pointers to the namespace(s) you depend on. Then you need to create your own instance of a namespace container (clojure.lang.NamespaceContainer.) which gives you the capability of calling it's putIfAbsent method to import object references of those namespaces from the two environments. This was not an intended feature, but it is a feature that can be accessed. Best Regards, Ralph Ritoch On Monday, December 8, 2014 8:39:29 PM UTC+8, Gary Verhaegen wrote: Naive question: does that solve the dependency problem where two explicit dependencies depend on different versions of a transitive one and something breaks because of it? On Monday, 8 December 2014, Ralph Ritoch rri...@gmail.com wrote: Thank you. I have signed the contributor agreement and applied to join clojure-dev (request pending). On Monday, December 8, 2014 3:38:15 AM UTC+8, Alan Forrester wrote: On 7 December 2014 at 19:27, Fluid Dynamics a209...@trbvm.com wrote: On Sunday, December 7, 2014 11:12:37 AM UTC-5, Bozhidar Batsov wrote: I think you should post this to cloju...@googlegroups.com To where? Your post displayed like that, and I couldn't get a usable tooltip expanding the address by mousing over it either. clojure slash dev at googlegroups dot com with no spaces and with @ and - in place of slash and at. Alan -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: For review: Clojure Namespace Isolation
One important piece of information about this feature is that it doesn't manipulate classloaders. This feature was designed to be used with OSGi or applications that handle their own classloading issues. In a typical application when entering a namespace isolation you may also need to bind a separate Compiler/LOADER and Thread context loader, but those classloaders can, and should, have common parent classloaders to load clojure from the same classloader. This feature simply isolates clojure namespaces, it doesn't manipulate the underlying Java support systems which can already be manipulated with existing clojure features. The benefit of this feature is that you can create separate namespace environments with different copies of the same namespace names without needing to run separate run-times making it possible for them to directly share all clojure data types via shared namespaces since they're loaded by the same classloader. A side effect of the implementation is that it is possible to copy namespaces from one environment to another if you have the pointer returned from creating the environment. I have considered adding automatic creation of dynamic classloaders and associating them with isolation environments but that can be done from libraries using existing clojure features. For future reference since additional features will likely be added to this fork, this feature is implemented via the git commit https://github.com/rritoch/clojure/commit/0f4804bbf584049fd85ffa872f10522cc41eff9a -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
For review: Clojure Namespace Isolation
Hello, I have created a way to create namespace isolation within clojure. The code is available on github @ https://github.com/rritoch/clojure . What this new code does is it replaces the clojure.lang.Namespace/namespaces static property with a clojure.lang.NamespaceContainer object that is a version which utilizes thread local memory and facilitates creating separate namespace environments within a single Runtime. To create and enter a new environment. (clojure.lang.NamespaceContainer/enter) This returns a pointer which can later be used to re-enter the namespace as the enter method also takes a single argument of that pointer. To leave the isolation environment ... (clojure.lang.NamespaceContainer/exit) When used with OSGi this should make it possible to maintain a single Runtime per clojure version running on a system. To ensure maximum stability, the current namespace and all of it's dependent namespaces are copied into the newly created container. Once inside a new container, changes can be made without any risk of namespace conflicts with other parts of the system. I would like to submit these features for addition to Clojure. Best Regards, Ralph Ritoch -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups Clojure group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.