Quick Search
Browse
Pages
Blog
Labels
Attachments
Mail
Advanced
What’s New
Space Directory
Feed Builder
Keyboard Shortcuts
Confluence Gadgets
Log In
Sign Up
Dashboard
Clojure Design
Copy Page
You are not logged in. Any changes you make will be marked as
anonymous
. You may want to
Log In
if you already have an account. You can also
Sign Up
for a new account.
This page is being edited by
.
Paragraph
Paragraph
Heading 1
Heading 2
Heading 3
Heading 4
Heading 5
Heading 6
Preformatted
Quote
Bold
Italic
Underline
Colour
More colours
Strikethrough
Subscript
Superscript
Monospace
Clear Formatting
Bullet list
Numbered list
Outdent
Indent
Align left
Align center
Align right
Link
Table
Insert
Insert Content
Image
Link
Attachment
Symbol
Emoticon
Wiki Markup
Horizontal rule
tinymce.confluence.insert_menu.macro_desc
Info
JIRA Issue
Status
Gallery
Tasklist
Table of Contents
Other Macros
Undo
Redo
Keyboard Shortcuts Help
<p>Need different build artifacts:</p> <ul> <li>production: lean and mean <ul> <li>no source code</li> <li>(eventually?) reduced metadata</li> </ul> </li> <li>development <ul> <li>source code </li> </ul> </li> <li>batteries included <ul> <li>includes latest core-approved version of all contribs</li> <li>easy way to distinguish level of maturity <ul> <li>Clojure and a few others: 1.x or later</li> <li>many things < 1.0</li> </ul> </li> <li>does batteries included need both production and development versions? <ul> <li>guessing development only would be ok</li> </ul> </li> </ul> </li> </ul> <h2>Thoughts on build profiles (SS 2011-03-17)</h2> <p>There are two aspects, each with two possible approaches:</p> <ul> <li>Packaging aspect: what goes in the JAR? <ul> <li>"before" approach: modules <ul> <li>Split "Clojure" into smaller modules <ul> <li>E.g., "data structures", "runtime support", "compiler"</li> <li>All can live in the same Git repository</li> </ul> </li> <li>Build and release each module on its own</li> <li>Release "Clojure" as the combination of all of them</li> <li>Users can combine them in different ways <ul> <li>E.g., an Android app can omit the compiler</li> </ul> </li> <li>Requires significant source-code reorganization</li> </ul> </li> <li>"after" approach: multiple build artifacts <ul> <li>Build "Clojure" as one thing</li> <li>Filter different subsets of .class files into different JARs</li> <li>Leaves current source-code structure in place</li> <li>Trickier to get right <ul> <li>E.g., ensuring no missing dependencies among compiled artifacts</li> </ul> </li> </ul> </li> </ul> </li> <li>Compiling aspect: what goes in each .class file? <ul> <li>"before" approach: compiler flags <ul> <li>Compile-time flags to include/omit certain things <ul> <li>Set once for an entire build? Or per-namespace?</li> </ul> </li> <li>Raises question: what is the interface to the Clojure compiler? <ul> <li>clojure.lang.Compile is a command-line interface</li> <li>clojure.core/compile is the Clojure interface</li> <li>For better tooling we need an official Java interface</li> </ul> </li> </ul> </li> <li>"after" approach: filtering <ul> <li>Process compiler's output to remove things like metadata</li> <li>How would we do this?</li> </ul> </li> </ul> </li> </ul>
Attachments
Labels
Location
< Edit
Preview >
Loading…
Save
Cancel
Next hint
search
attachments
weblink
advanced