Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document using Boot to generate a classpath file #876

Merged
merged 1 commit into from
Mar 11, 2019

Conversation

pyrmont
Copy link
Contributor

@pyrmont pyrmont commented Mar 7, 2019

Planck can access dependencies that are specified on its classpath. These can be specified by hand but an alternative is to use a tool like Boot to output the dependencies to a file that can then be fed into Planck. This PR adds documentation to the Planck docs that explains how this can be done and closes #343.

It's noted that, due to the introduction of tools.deps and Planck's support for it via plk, this is less important than it was at the time of the initial discussion.

Planck can access dependencies that are specified on its classpath.
These can be specified by hand but an alternative is to use a tool like
Boot to output the dependencies to a file that can then be fed into
Planck. This PR adds documentation to the Planck docs that explains how
this can be done and closes planck-repl#343.

It's noted that, due to the introduction of tools.deps and Planck's
support for it via `plk`, this is less important than it was at the
time of the initial discussion.
@pyrmont
Copy link
Contributor Author

pyrmont commented Mar 7, 2019

I think this PR satisfies the request in #343 but I would understand if the preferred solution is to refuse this PR and close that issue. That issue dates from before tools.deps was introduced and at a time when the Planck docs contained a section about caching the classpath. That section has since been removed from the docs.

@mfikes mfikes merged commit 977bcc8 into planck-repl:master Mar 11, 2019
pyrmont added a commit to pyrmont/planck that referenced this pull request Mar 13, 2019
Planck can access dependencies that are specified on its classpath.
These can be specified by hand but an alternative is to use a tool like
Boot to output the dependencies to a file that can then be fed into
Planck. This PR adds documentation to the Planck docs that explains how
this can be done and closes planck-repl#343.

It's noted that, due to the introduction of tools.deps and Planck's
support for it via `plk`, this is less important than it was at the
time of the initial discussion.
mfikes pushed a commit that referenced this pull request Mar 15, 2019
Planck can access dependencies that are specified on its classpath.
These can be specified by hand but an alternative is to use a tool like
Boot to output the dependencies to a file that can then be fed into
Planck. This PR adds documentation to the Planck docs that explains how
this can be done and closes #343.

It's noted that, due to the introduction of tools.deps and Planck's
support for it via `plk`, this is less important than it was at the
time of the initial discussion.
mfikes added a commit that referenced this pull request Mar 15, 2019
* Add with-in-str (#874)

* Update copyright / date in man page (#879)

* Document using Boot to generate a classpath file (#876)

Planck can access dependencies that are specified on its classpath.
These can be specified by hand but an alternative is to use a tool like
Boot to output the dependencies to a file that can then be fed into
Planck. This PR adds documentation to the Planck docs that explains how
this can be done and closes #343.

It's noted that, due to the introduction of tools.deps and Planck's
support for it via `plk`, this is less important than it was at the
time of the initial discussion.

* Support interning quoted data structures (#508) (#884)

Planck provides an `intern` function in `planck.core` that is similar
to Clojure's `clojure.core/intern`. Whereas Clojure's version calls out
to a Java class, Planck `eval`s a `def` statement defining the name and
value to be interned.

The prior implementation in Planck used syntax quoting to generate the
`def` form. The problem with this was that certain data structures that
would be passed to `planck.core/intern` as a quoted argument would be
unquoted in the `def` form. Depending on the data structure, this could
then cause an error.

A simple example that demonstrates the problem is passing a symbol as
the value to be bound. Calling `(planck.core/intern *ns* 'foo 'bar)`
would result in one of two things, both of which were wrong. If 'bar`
were not bound, Planck would report an error when `bar` was unquoted
because no value existed. If `bar` were bound, that value would be
interpolated. In neither case would `foo` be bound to the symbol `bar`.

This commit adds support for quoted data structures by quoting any value
that is passed to `planck.core/intern`. This takes advantage of the fact
that quoting has no effect on most data structures. For example, `'5`
results in `5`. This closes #508.

* Execution error instead of syntax for 08 (#881)

Fixes #857
mfikes pushed a commit that referenced this pull request Mar 15, 2019
Planck can access dependencies that are specified on its classpath.
These can be specified by hand but an alternative is to use a tool like
Boot to output the dependencies to a file that can then be fed into
Planck. This PR adds documentation to the Planck docs that explains how
this can be done and closes #343.

It's noted that, due to the introduction of tools.deps and Planck's
support for it via `plk`, this is less important than it was at the
time of the initial discussion.
mfikes pushed a commit that referenced this pull request Mar 22, 2019
* Add with-in-str (#874)

* Update copyright / date in man page (#879)

* Document using Boot to generate a classpath file (#876)

Planck can access dependencies that are specified on its classpath.
These can be specified by hand but an alternative is to use a tool like
Boot to output the dependencies to a file that can then be fed into
Planck. This PR adds documentation to the Planck docs that explains how
this can be done and closes #343.

It's noted that, due to the introduction of tools.deps and Planck's
support for it via `plk`, this is less important than it was at the
time of the initial discussion.

* Add almost all of the Google Closure Library (#496)

Due to the way Planck is built, the Google Closure Library needs to be
bundled together with the executable. While the entirety of the library
has historically been available during the build process, only a small
subset has actually been included in the bundle.

This commit broadens the scope to almost the entirety of the Google
Closure Library (save for the facilities made available under the
`goog.demos` namespace). While this provides broader support to users,
it does substantially increase the amount of time it takes to complete
the full build process.

To provide an up to date version of the Google Closure Library, this
commit switches the version that is downloaded from the Maven repository
to a more recent distribution. This newer version of the Google Closure
Library caused conformance warnings to be displayed during the build
process. To avoid this, a newer version of the Google Closure Compiler
is also now required. As the newer version of the Google Closure Library
relies on features from ECMAScript 6, the language output of the Closure
Compiler has been switched to this version of ECMAScript.

Finally, the documentation has been updated as required.

* Remove some bundled GCL namespaces (#496)

The initial commit included almost the entirety of the Google Closure
Library. Doing so increased the time taken to compile Planck
considerably. This commit removes some of the namespaces that are not
considered appropriate or desirable for Planck. This reduces the time
taken for a full build by about a third.

The documentation has also been updated.

* Restore GCL localisations

To improve build times for the optimised version of Planck,the previous
commit did not include the localisation namespaces that are part of the
Google Closure Library. This commit restores the namespaces and instead
changes the `planck-cljs/script/bundle` script to skip these files when
optimising.

This commit can now be considered to fix #496. The documentation and
change log have been updated accordingly.

* Fix warning about time for build
@pyrmont pyrmont deleted the issue-343 branch March 22, 2019 17:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add docs showing how to use boot-cp
2 participants