Re: ANN: Potemkin 0.3.0

2014-09-16 Thread Dave Sann
to answer my own question. It does not play well. I created a couple of 
simple macros that mimics the import-vars behaviour for fns and vars in 
clojurescript. 

On Sunday, 14 September 2014 17:53:47 UTC+10, Dave Sann wrote:
>
> Does Potemkin work well with clojurescript?
>
> I have seen some discussion of issues in some places. Is there anywhere 
> that notes challenges?
>
> I am particularly interested with the import-vars scenario (defining 
> namespaces separately and then merging definitions into one namespace for 
> usage).
>
> Dave
>
>
> On Thursday, 20 June 2013 13:38:32 UTC+10, Jason Wolfe wrote:
>>
>> We're starting to use potemkin at Prismatic, and the part we've found 
>> most useful which Zach didn't mention in his post are the smart types. 
>>  Especially definterface+, which is like a love child of defprotocol and 
>> definterface:
>>  - Same syntax as defprotocol, and defines functions in your namespace 
>> that wrap the interface functions (without extend-protocol support, 
>> obviously)
>>  - Allows for primitive arguments and return values (like 
>> clojure.core/definterface), which are propagated to the wrapper functions 
>> for maximal performance
>>  - Doesn't re-evaluate if the body has not changed, which can make repl 
>> development less painful (especially when used with its defrecord+ 
>> counterpart).
>>
>>
>>
>> On Wednesday, June 19, 2013 12:12:41 PM UTC-7, Zach Tellman wrote:
>>>
>>> Potemkin [1] is a collection of facades and utilities that I've found 
>>> helpful when writing larger-scale libraries or applications.  I've never 
>>> formally announced it before, but I think it's gotten to the point where 
>>> others can benefit from it.
>>>
>>> A few highlights:
>>>
>>> * 'def-map-type', which allows for the definition of custom map-like 
>>> objects with 10x less code
>>> * 'unify-gensyms', which allows for more concise nested syntax-quotes
>>> * 'import-vars', which allows for code sprinkled across multiple 
>>> namespaces to be exposed via a single namespace
>>>
>>> It's been pointed out before that ideally a library should have no 
>>> dependencies but Clojure itself, or we risk transitive dependency conflicts 
>>> when everyone uses different versions of a utility library.  In deference 
>>> to this, Potemkin is licensed such that any piece of code can be simply 
>>> pasted into your library, as long as there's a comment describing the 
>>> origin.
>>>
>>> If anyone has questions, I'm happy to answer them.  If anyone has moral 
>>> or aesthetic objections to 'import-vars', you're not alone, but please 
>>> remember you're under no obligation to use it.
>>>
>>> Zach
>>>
>>> [1] https://github.com/ztellman/potemkin
>>>
>>

-- 
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: ANN: Potemkin 0.3.0

2014-09-14 Thread Dave Sann
Does Potemkin work well with clojurescript?

I have seen some discussion of issues in some places. Is there anywhere 
that notes challenges?

I am particularly interested with the import-vars scenario (defining 
namespaces separately and then merging definitions into one namespace for 
usage).

Dave


On Thursday, 20 June 2013 13:38:32 UTC+10, Jason Wolfe wrote:
>
> We're starting to use potemkin at Prismatic, and the part we've found most 
> useful which Zach didn't mention in his post are the smart types. 
>  Especially definterface+, which is like a love child of defprotocol and 
> definterface:
>  - Same syntax as defprotocol, and defines functions in your namespace 
> that wrap the interface functions (without extend-protocol support, 
> obviously)
>  - Allows for primitive arguments and return values (like 
> clojure.core/definterface), which are propagated to the wrapper functions 
> for maximal performance
>  - Doesn't re-evaluate if the body has not changed, which can make repl 
> development less painful (especially when used with its defrecord+ 
> counterpart).
>
>
>
> On Wednesday, June 19, 2013 12:12:41 PM UTC-7, Zach Tellman wrote:
>>
>> Potemkin [1] is a collection of facades and utilities that I've found 
>> helpful when writing larger-scale libraries or applications.  I've never 
>> formally announced it before, but I think it's gotten to the point where 
>> others can benefit from it.
>>
>> A few highlights:
>>
>> * 'def-map-type', which allows for the definition of custom map-like 
>> objects with 10x less code
>> * 'unify-gensyms', which allows for more concise nested syntax-quotes
>> * 'import-vars', which allows for code sprinkled across multiple 
>> namespaces to be exposed via a single namespace
>>
>> It's been pointed out before that ideally a library should have no 
>> dependencies but Clojure itself, or we risk transitive dependency conflicts 
>> when everyone uses different versions of a utility library.  In deference 
>> to this, Potemkin is licensed such that any piece of code can be simply 
>> pasted into your library, as long as there's a comment describing the 
>> origin.
>>
>> If anyone has questions, I'm happy to answer them.  If anyone has moral 
>> or aesthetic objections to 'import-vars', you're not alone, but please 
>> remember you're under no obligation to use it.
>>
>> Zach
>>
>> [1] https://github.com/ztellman/potemkin
>>
>

-- 
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: ANN: Potemkin 0.3.0

2013-06-19 Thread Jason Wolfe
We're starting to use potemkin at Prismatic, and the part we've found most 
useful which Zach didn't mention in his post are the smart types. 
 Especially definterface+, which is like a love child of defprotocol and 
definterface:
 - Same syntax as defprotocol, and defines functions in your namespace that 
wrap the interface functions (without extend-protocol support, obviously)
 - Allows for primitive arguments and return values (like 
clojure.core/definterface), which are propagated to the wrapper functions 
for maximal performance
 - Doesn't re-evaluate if the body has not changed, which can make repl 
development less painful (especially when used with its defrecord+ 
counterpart).



On Wednesday, June 19, 2013 12:12:41 PM UTC-7, Zach Tellman wrote:
>
> Potemkin [1] is a collection of facades and utilities that I've found 
> helpful when writing larger-scale libraries or applications.  I've never 
> formally announced it before, but I think it's gotten to the point where 
> others can benefit from it.
>
> A few highlights:
>
> * 'def-map-type', which allows for the definition of custom map-like 
> objects with 10x less code
> * 'unify-gensyms', which allows for more concise nested syntax-quotes
> * 'import-vars', which allows for code sprinkled across multiple 
> namespaces to be exposed via a single namespace
>
> It's been pointed out before that ideally a library should have no 
> dependencies but Clojure itself, or we risk transitive dependency conflicts 
> when everyone uses different versions of a utility library.  In deference 
> to this, Potemkin is licensed such that any piece of code can be simply 
> pasted into your library, as long as there's a comment describing the 
> origin.
>
> If anyone has questions, I'm happy to answer them.  If anyone has moral or 
> aesthetic objections to 'import-vars', you're not alone, but please 
> remember you're under no obligation to use it.
>
> Zach
>
> [1] https://github.com/ztellman/potemkin
>

-- 
-- 
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/groups/opt_out.




Re: ANN: Potemkin 0.3.0

2013-06-19 Thread Matthew Chadwick

>
> If anyone has moral or aesthetic objections to 'import-vars', you're not 
> alone, but please remember you're under no obligation to use it.


I used lein-clique to make a graph of Lamina's 
dependencies(huge
 PNG), but the use of import-vars caused several mirrored subgraphs 
which I don't really know how to filter out.  

-- 
-- 
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/groups/opt_out.




Re: ANN: Potemkin 0.3.0

2013-06-19 Thread Zack Maril
We've been using Potemkin inside Titanium, Ogre, and Archimedes. It works 
well for importing functions, but I'm about to do a rewrite of Titanium and 
Ogre because of complications arising from being clever with importing 
dynamic vars. I would caution against trying to import dynamic vars (or 
functions that rely on dynamic vars) between libraries. 
-Zack

On Wednesday, June 19, 2013 3:12:41 PM UTC-4, Zach Tellman wrote:
>
> Potemkin [1] is a collection of facades and utilities that I've found 
> helpful when writing larger-scale libraries or applications.  I've never 
> formally announced it before, but I think it's gotten to the point where 
> others can benefit from it.
>
> A few highlights:
>
> * 'def-map-type', which allows for the definition of custom map-like 
> objects with 10x less code
> * 'unify-gensyms', which allows for more concise nested syntax-quotes
> * 'import-vars', which allows for code sprinkled across multiple 
> namespaces to be exposed via a single namespace
>
> It's been pointed out before that ideally a library should have no 
> dependencies but Clojure itself, or we risk transitive dependency conflicts 
> when everyone uses different versions of a utility library.  In deference 
> to this, Potemkin is licensed such that any piece of code can be simply 
> pasted into your library, as long as there's a comment describing the 
> origin.
>
> If anyone has questions, I'm happy to answer them.  If anyone has moral or 
> aesthetic objections to 'import-vars', you're not alone, but please 
> remember you're under no obligation to use it.
>
> Zach
>
> [1] https://github.com/ztellman/potemkin
>

-- 
-- 
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/groups/opt_out.




ANN: Potemkin 0.3.0

2013-06-19 Thread Zach Tellman
Potemkin [1] is a collection of facades and utilities that I've found 
helpful when writing larger-scale libraries or applications.  I've never 
formally announced it before, but I think it's gotten to the point where 
others can benefit from it.

A few highlights:

* 'def-map-type', which allows for the definition of custom map-like 
objects with 10x less code
* 'unify-gensyms', which allows for more concise nested syntax-quotes
* 'import-vars', which allows for code sprinkled across multiple namespaces 
to be exposed via a single namespace

It's been pointed out before that ideally a library should have no 
dependencies but Clojure itself, or we risk transitive dependency conflicts 
when everyone uses different versions of a utility library.  In deference 
to this, Potemkin is licensed such that any piece of code can be simply 
pasted into your library, as long as there's a comment describing the 
origin.

If anyone has questions, I'm happy to answer them.  If anyone has moral or 
aesthetic objections to 'import-vars', you're not alone, but please 
remember you're under no obligation to use it.

Zach

[1] https://github.com/ztellman/potemkin

-- 
-- 
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/groups/opt_out.