emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Tim Cross <theophilusx@gmail.com>
To: numbchild@gmail.com
Cc: org-mode <emacs-orgmode@gnu.org>
Subject: Re: ob-clojure should not tangle with inserting (ns ..) line when no :ns specified.
Date: Sat, 01 Dec 2018 08:25:22 +1100	[thread overview]
Message-ID: <87a7lq1cn1.fsf@gmail.com> (raw)
In-Reply-To: <877egvj6l2.fsf@gmail.com>


stardiviner <numbchild@gmail.com> writes:

> The ob-clojure tangle will insert ~(ns ..)~ from babel header argument :ns or use defualt ~(ns user)~.
>
>    #+begin_src clojure :eval no :ns "" :tangle "data/code/xunfei-clj-demo/project.clj" :results link :file "data/code/xunfei-clj-demo/project.clj"
>    (defproject xunfei-clj-demo "0.1.0-SNAPSHOT"
>      :description "xunfei-clj demo"
>      :url "http://example.com/FIXME"
>      :license {:name "Eclipse Public License"
>                :url  "http://www.eclipse.org/legal/epl-v10.html"}
>      :dependencies [[org.clojure/clojure "1.9.0"]
>                     [xunfei-clj "0.1.4-SNAPSHOT"]]
>      :resource-paths ["lib/Msc.jar"])
>    #+end_src
>
> In upper case, obviously I don't want insert the ~(ns ..)~ line of code.
>
> I hope the ob-clojure header argument ~:ns~ should detect value like
> "nil", "" (empty string) or something else. Or when ~:ns~ header
> argument is not specified. So that the tangling will not auto insert
> ~(ns ..)~ line.

I think the problem here is that really, project.clj is not a valid
clojure source file. It is really a clojure data file or clojure
snippet (I mean in the sense that you cannot execute it or include it as
a dependency within a clojure program - it is input data for the lein
build tool). If lein was being developed from scratch today, rather than
project.clj, you would probably have project.edn.

The question is, should we allow setting ns to nil/"", preventing
inclusion of a ns line, which would make 'real' clojure source files
invalid just to support this edge case or should we consider an
alternative solution e.g.

- have a 'lein-project' source type which could perhaps provide
  additional support for editing project.clj files (as I suspect lein is
  on the way out - replaced with things like clj or boot)
- try using edn-mode and having support for edn as a valid language
  type. I've never used edn mode and I'm not 100% certain project.clj
  and edn are completely compatible.

It seems to me that the preferred build tool is likely to become clj or
derivatives of clj. I've noticed increasingly longer delays in new lein
releases (the 'reflection' warning has been there for nearly 12 months
now, as has the incorrect classpath warning on some platforms).

In the long-term, I think org would probably benefit from integration
with clj rather than cider for ob-clojure as it is likely to be more
stable and less complex. Using cider has always felt like pushing a
square peg into a round hole to me. 

Tim

--
Tim Cross

  reply	other threads:[~2018-11-30 21:25 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-30  8:46 ob-clojure should not tangle with inserting (ns ..) line when no :ns specified stardiviner
2018-11-30 21:25 ` Tim Cross [this message]
2018-12-03  6:25   ` stardiviner
2018-12-04 21:22     ` Tim Cross
2018-12-05  9:04       ` stardiviner
2019-01-10  1:47 ` stardiviner
2019-01-14  5:52   ` stardiviner
2019-01-21  0:39     ` [PATCH] " stardiviner
2019-01-21 20:19       ` Nicolas Goaziou
2019-01-22  7:57         ` stardiviner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87a7lq1cn1.fsf@gmail.com \
    --to=theophilusx@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=numbchild@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).