Similar lisps and emacs reimplementations?

340 views
Skip to first unread message

Sam Halliday

unread,
Mar 9, 2016, 1:43:38 PM3/9/16
to Clojure
Hi all,

I have been learning clojure as holiday reading (I'm a scala dev and am one of the main authors of ENSIME.org, which brings IDE like support to text editors for Java and Scala).

Clojure is amazing! I'm really loving learning it. There is so much good stuff in here, plus it's a lisp which is just incredible for me because I've been an Emacs hacker for nearly two decades.

I've done enough research to know that the clojure licence is off topic and discussions about it make people feel "nauseous", so I'll skip over begging you to change it to MPL or Apache 2.0 and tell you that I cannot use EPL at work. It is blacklisted by many of my customers and the patent retaliation clause gives my legal advisors enough to construct terrifying scenarios that all ended up in the end of my career. Also, I can't add clojure support or use clojure in ENSIME because of the well known GPL / EPL incompatibility.

So... skipping over that. It seems I can't actually use this beautiful language. But I do a fair bit of emacs-lisp so naturally I'd like to know to what extent the features have been reimplemented?

I've seen that Emacs 25 is going to have something that looks a bit like destructuring, I've used dash (but there is an idiomatic replacement coming too) and I've seen some "ports" of the threading (I love this macro so much). However direct ports are still subject to the original licence, so it needs to be a clean room implementation (or Rich/the author to release those macros user GPL as an emacs package).

Is there anything else that is making its way back into Emacs lisp as a result of what has been learnt in Clojure?

And are there any other lisps which use STM? Emacs is still single threaded so STM is almost useless there. I'd be really interested in a modern lisp with STM and a licence that I could use at work.

Best regards,
Sam

adrian...@mail.yu.edu

unread,
Mar 10, 2016, 9:03:09 AM3/10/16
to Clojure
Common Lisp is timeless in my opinion. :)

STMX is a high performance STM implementation for Common Lisp. 


On SBCL it even compiled down as an optimization to Intel TSX assembly instructions (which incidentally were disabled by the manufacturer unfortunately a couple of years ago due to a major bug; I am not sure if they fixed the bug in newer chips yet). In any event, it's still a great implementation. 

Aleksander Sumowski

unread,
Mar 10, 2016, 9:58:02 AM3/10/16
to clo...@googlegroups.com
If you're more keen on GPL-compatible, Clojure-like language with STM/CSP (upcoming) than being currently able to use it in production take a look at Pixie:

https://github.com/pixie-lang/pixie

It's syntax is heavily inspired by Clojure, STM is coming, and it's fast - no JVM. The state is "pre-alpha" though.

Cheers,
Aleksander

--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@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+u...@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+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


uSwitch is a trading name of uSwitch Ltd. Registered in England and Wales (Company No. 03612689). Registered Address: Notcutt House, 36 Southwark Bridge Road, London, SE1 9EU

This communication and any attachments contains information which is confidential and may be subject to legal privilege. It is for intended recipients only. If you are not the intended recipient you must not copy, distribute, publish, rely on or otherwise use it without our consent. Some of our communications may contain confidential information which it could be a criminal offence for you to disclose or use without authority. If you have received this email in error please notify the sender immediately and delete the email from your computer.

uSwitch Ltd reserves the right to monitor all email communications for compliance with legal, regulatory and professional standards.

Sam Halliday

unread,
Mar 19, 2016, 6:32:59 AM3/19/16
to Clojure
Thanks Aleksander,

However it's quite the opposite: I'd like to be able to use Clojure in production environments but I cannot because the EPL is an extremely dangerous licence for an IPR-heavy company to use as their language to develop core technology. The patent retaliation clause provides opportunities for competitors to nullify our patents, and I'd go so far as to say that the personal risks are career threatening. The only way that legal would approve the use of an EPL-licenced core technology / language would be if we had a private licence in place with Rich Hickey, who has the legal privilege to provide such an arrangement, rendering the patent retaliation clause invalid. That would appease legal, but it is enough to upset management's view of Clojure as a viable option.

I wouldn't be able to use a GPL licenced lisp either, unless it is just the compiler that is GPL and the runtime libraries are more permissive. There is ample precedent for using GPL tooling at my customers' sites (gcc, git, etc).

Best regards,
Sam

A. Levy

unread,
Mar 19, 2016, 11:29:06 AM3/19/16
to Clojure
Can you elaborate a little more on those nightmare scenarios? From my (amateur) reading of the EPL, it looks like the patent clauses apply to contributors to the program. In this case, Clojure. Does developing something in Clojure force you to release it under the EPL?

Sam Halliday

unread,
Mar 19, 2016, 11:52:04 AM3/19/16
to A. Levy, Clojure
It's got nothing to do with contributing to Clojure (the Grant of Right
is standard in all modern free software licences). The problem is the
patent retaliation clause, which I quote from Section 7 of the
[EPL](http://www.eclipse.org/legal/epl-v10.html)

"If Recipient institutes patent litigation against any entity
(including a cross-claim or counterclaim in a lawsuit) alleging that
the Program itself (excluding combinations of the Program with other
software or hardware) infringes such Recipient's patent(s), then such
Recipient's rights granted under Section 2(b) shall terminate as of
the date such litigation is filed."

In other words, if you ever have a legal dispute with anybady about a
patent violation in clojure (which somebody else could have contributed
without your permission), then you lose your right to use clojure. As
in, turn off your production systems, now.

This could be persued by anybody (corporate or individual, including the
person who you are suing for implementing your patents) who has ever
contributed to Clojure. Rich Hickey is in a privileged position where he
can grant ad hoc / tailored licences to corporate customers, granting
immunity to the patent retaliation clause.

This may not be a concern for small companies or hobbyists, who are
unlikely to find themselves in such a situation, but it is a major
concern for corporate entities that are often finding themselves in huge
IPR counterclaims with their peers. I can only guess that the current
use of clojure in corporate environments was sneaked in "under the
radar" and a modern legal audit would be quite a gruelling ordeal for
everybody involved in choosing clojure as a platform.

So, I can enjoy the language, but only as a hobby.

Best regards,
Sam


signature.asc

Jason Felice

unread,
Mar 19, 2016, 2:58:34 PM3/19/16
to clo...@googlegroups.com, A. Levy
I specifically know of a large corporation with a strict legal team which has rejected React's license, but accepted both the Eclipse and Apache public licenses.  React's license has a similar but much broader clause with respect to patents.

Sam's claim, 'I can only guess that the current use of clojure in corporate environments was sneaked in "under the radar" and a modern legal audit would be quite a gruelling ordeal for everybody involved in choosing clojure as a platform,' is quite strong.  And TERRIFYING.  But also suspicious.

This same verbiage appears in the Apache license and the Artistic license, meaning that if a corporation were to reject licenses with this clause, they would need to avoid a significant part of the Java ecosystem (including Tomcat, Elasticsearch, Hadoop, & Kafka), Node.JS, and Perl.  I suspect that Hadoop isn't only used "as a hobby" nor is only "sneaked in", yes?

I am not a lawyer.  Due diligence required.  Your corporation's requirements might vary.  However, let me dismiss the FUD that the Clojure or the EPL could never be responsibly used in a corporation.

-Jason


--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@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+u...@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+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

"A. Levy" <ale...@gmail.com> writes:

> [ text/plain ]

> Can you elaborate a little more on those nightmare scenarios? From my (amateur) reading of the EPL, it looks like the patent clauses apply to contributors to the program. In this case, Clojure. Does developing something in Clojure force you to release it under the EPL?
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clo...@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+u...@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 a topic in the Google Groups "Clojure" group.
> To unsubscribe from this topic, visit https://groups.google.com/d/topic/clojure/i2pHlViYkxg/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to clojure+u...@googlegroups.com.

> For more options, visit https://groups.google.com/d/optout.

--

Sam Halliday

unread,
Mar 19, 2016, 3:07:16 PM3/19/16
to Jason Felice, clo...@googlegroups.com, A. Levy
Jason Felice writes:
> This same verbiage appears in the Apache license and the Artistic license

This is false. What I quoted is the EPL patent retaliation clause and
Apache 2.0 has no such clause. Perhaps you are thinking about the Apache
2.0's Grant of Patent clause, which is similar to EPL's Grant of Right
clause.

I refer you to Apache 2.0 to confirm for yourself

http://www.apache.org/licenses/LICENSE-2.0.html


Make no mistakes, the EPL's patent retaliation clause is *not* corporate
friendly. If it has been approved at some corporates, it will have been
after careful legal considerations that are simply not necessary for
Apache 2.0 licenced software.


> Sam Halliday wrote:
>> It's got nothing to do with contributing to Clojure (the Grant of Right
>> is standard in all modern free software licences). The problem is the
>> patent retaliation clause, which I quote from Section 7 of the
>> [EPL](http://www.eclipse.org/legal/epl-v10.html)
>>
>> "If Recipient institutes patent litigation against any entity
>> (including a cross-claim or counterclaim in a lawsuit) alleging that
>> the Program itself (excluding combinations of the Program with other
>> software or hardware) infringes such Recipient's patent(s), then such
>> Recipient's rights granted under Section 2(b) shall terminate as of
>> the date such litigation is filed."
>>
>> In other words, if you ever have a legal dispute with anybady about a
>> patent violation in clojure (which somebody else could have contributed
>> without your permission), then you lose your right to use clojure. As
>> in, turn off your production systems, now.
>>
>> This could be persued by anybody (corporate or individual, including the
>> person who you are suing for implementing your patents) who has ever
>> contributed to Clojure. Rich Hickey is in a privileged position where he
>> can grant ad hoc / tailored licences to corporate customers, granting
>> immunity to the patent retaliation clause.

--
Best regards,
Sam

Gregg Reynolds

unread,
Mar 19, 2016, 3:16:36 PM3/19/16
to clo...@googlegroups.com


On Mar 19, 2016 10:51 AM, "Sam Halliday" <sam.ha...@gmail.com> wrote:
>
> It's got nothing to do with contributing to Clojure (the Grant of Right
> is standard in all modern free software licences). The problem is the
> patent retaliation clause, which I quote from Section 7 of the
> [EPL](http://www.eclipse.org/legal/epl-v10.html)
>
>    "If Recipient institutes patent litigation against any entity
>    (including a cross-claim or counterclaim in a lawsuit) alleging that
>    the Program itself (excluding combinations of the Program with other
>    software or hardware) infringes such Recipient's patent(s), then such
>    Recipient's rights granted under Section 2(b) shall terminate as of
>    the date such litigation is filed."
>
> In other words, if you ever have a legal dispute with anybady about a
> patent violation in clojure (which somebody else could have contributed
> without your permission), then you lose your right to use clojure. As
> in, turn off your production systems, now.
>

So don't allege that The Program infringes.  Allege that the Contribution infringes.  Can you tell IANAL? ;)  I just have a hard time believing this could not be finessed by a sufficiently devious lawyer.

g

Sam Halliday

unread,
Mar 19, 2016, 3:32:56 PM3/19/16
to Jason Felice, clo...@googlegroups.com, A. Levy
Admitedly, the Apache 2.0 does have a patent retaliation clause. It's
just subtely different :-)


signature.asc

Gregg Reynolds

unread,
Mar 19, 2016, 3:45:18 PM3/19/16
to clo...@googlegroups.com


On Mar 19, 2016 5:33 AM, "Sam Halliday" <sam.ha...@gmail.com> wrote:
>
> Thanks Aleksander,
>
> However it's quite the opposite: I'd like to be able to use Clojure in production environments but I cannot because the EPL is an extremely dangerous licence for an IPR-heavy company to use as their language to develop core technology. The patent retaliation clause provides opportunities for competitors to nullify our patents,

I'll probably regret this, but now I'm curious: has this clause  ever been tested in the courts?  it strikes me as very dubious.  a bit like signing away your rights by agreeing to be a slave.  not allowed.  a license to blackmail, really; there's nothing to stop the Evil version of RH (for example) from dumping tons of patent infringing code into Clojure tomorrow.  you can't sue without crippling your business, so you'd have to settle.  so from my decidedly non lawyer perspective it would be surprising if this sort of clause would hold up.  and I swear to Pete I am not trolling here!

Dragan Djuric

unread,
Mar 19, 2016, 4:00:51 PM3/19/16
to Clojure
I understand your position (you have bosses that you have to answer to), but I would like to thank you for reminding me to thank Rich for choosing the license that is unfriendly to software patent litigators. here is how I look at this: there is a wonderful free software that lots of people contribute too. Even if you are a corporation, you can use it to your benefit. But, evil corporations that promulgate software patents - should be screwed!

Jonah Benton

unread,
Mar 19, 2016, 5:36:26 PM3/19/16
to clo...@googlegroups.com
I definitely don't want to get into a pointless legal discussion! Obviously everyone's situation- and legal interpretation thereof- is different, yadda yadda.  

Will just say in passing having gone through the language of the EPL and other licenses with IP lawyers on a few separate occasions over the years, I have not come across a strong manifestation of this particular interpretation. 

The risk your lawyers seem to be concerned about has more to do with the EPL's Commercial Distribution language- section 4- which specifies that Contributors/Distributors of EPL code have to indemnify other contributors. This means that a company distributing an application under the EPL could be liable for claims against components that they didn't create and just packaged with their app- e.g. Clojure- except that the EPL also says

"The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement."

The intent is for the commercial distribution clause to work with the patent clause- which just means that if you initiate a suit over a component you lose the right to continue to use that component- such that under the EPL

* you are not incurring obligations for IP violations in code you distribute but didn't write
* if you sue or countersue, you need to keep the suit to 1st party IP, or else you lose the rights to 3rd party IP

This protocol has been sufficient for the folks I've worked with but obviously everyone's lawyers get to decide how they feel about it.

Obviously Ellison or Myhrvold or some other patent troll could decide that there was IP trespass in Clojure itself. In that case, anyone with deep enough pockets found to be using it would be presented with a bill, license be damned.

Anyway- good luck!


--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@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+u...@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+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
"A. Levy" <ale...@gmail.com> writes:

> [ text/plain ]
> Can you elaborate a little more on those nightmare scenarios? From my (amateur) reading of the EPL, it looks like the patent clauses apply to contributors to the program. In this case, Clojure. Does developing something in Clojure force you to release it under the EPL?
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clo...@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+u...@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 a topic in the Google Groups "Clojure" group.
> To unsubscribe from this topic, visit https://groups.google.com/d/topic/clojure/i2pHlViYkxg/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to clojure+u...@googlegroups.com.

> For more options, visit https://groups.google.com/d/optout.

--

Ricardo Gomez

unread,
Mar 20, 2016, 2:40:18 PM3/20/16
to Clojure
This is why I just do public domain software. Licenses aren't very good for plagiarism, which is what I'm really bothered by.
Reply all
Reply to author
Forward
0 new messages