27;s assuming there is something blocking for an extended
period of time that is causing it.
--
/ Peter Schuller
--
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
> * GC kicking in
-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
Will tell you immediately.
A couple of hundred ms seems very very plausible for GC. What is your
target/desired maximum pause time?
--
/ Peter Schuller
--
You received this message because you are subscribed to
nts (a rapidly-growing category these days).
Ok. Will see how far I take it once I get it working first.
Thank you for the input,
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo
plru
[2]
https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide
--
/ Peter Schuller
--
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 p
expected to help much in the general case (but I
am certainly no expert here).
Would not multimethods be the main candidate for invokedynamic?
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send emai
> FYI, the main page of ccw is manually maintained and contains up to date
> information wrt current plugin status.
> That's maybe why you didn't have to /specifically/ complain 'bout ccw itself
> ;-)
Yes, it seems more "obviously maintained" than most :)
-
sh intro as to what it is etc.
Again, just another POV. Take it with a grain of salt. But know that
I'm speaking *as a developer*, just not as a developer *of those
things* that I am trying to find/use/read about.
--
/ Peter Schuller
--
You received this message because you are subscrib
s a LInkedArrayList, but if
it matters to you do have it be persistent/immutable...
--
/ Peter Schuller
--
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
Not that there is no reason to set ms=mx (there are reasons), but the
need to do so tends to be over-stated in my opinion. But if I'm
missing something I'd like to know about it :)
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups
> For 30 second worth of calculations, this doesn't look to bad to me.
If that was for all of the 30 seconds then yeah, GC is not the issue.
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this gr
are not quite so bad in terms of time spent doing GC
that the JVM throws an exception, yet bad enough to cause very
frequent full GC:s at considerable cost in CPU time.)
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To
tGC -XX:+PrintGCDetails and look
at the heap size after a full collection.
--
/ Peter Schuller
--
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 a
invocation for performance reasons?
--
/ Peter Schuller
--
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
+1 on improving stack traces (though I haven't had experience with
clj-stacktrace, other than what I have read on this list).
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send e
p-the-world GC. The likelyhood of this happening is higher the
lower the pause time goal you specify. An starter command line to play
with (preferably with jdk 1.7) might be:
-XX:+UnlockExperimentalVMOptions -XX:+UseG1GC
-XX:MaxGCPauseMillis=15 -XX:GCPauseIntervalMillis=20
--
/ Peter Schuller
--
ead, poorer cache locality, etc).
(Note that I'm not arguing the point of whether or not it should be
committed before 1.2, but I'm genuinely interested in why not reading
one character (or byte) at a time would be a controversial change.)
--
/ Peter Schuller
--
You received this me
ntext. I tried
reproducing just now and I was not able to trigger any memory use
beyond what I expected.
Do you have a self-contained fully working example that you can point
to (preferably with your actual data files + code, but otherwise just
the code)?
--
/ Peter Schuller
--
You receiv
creates an apple, and
presumably an "apple" is something which is callable (probably a map,
so that when called with the return-value of (alter snake move) it
simply returns nil or some value associated with that key).
--
/ Peter Schuller
--
You received this message because you are s
ould suffer potentially very extreme
performance impacts which aren't fixed by just avoiding allocation as
is mentioned in the erjang wiki page. Or is this over-stating the
problem?
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups "Clojure"
s, is probably to install the
swank-clojure package via ELPA: http://tromey.com/elpa/
There is something similar for vim (I'm sure a vim user will chime in).
If you're rather looking for overall workflows/program structure/best
practices etc - good question. :)
--
/ Peter Schuller
--
before second print
(1 2 3 4 5 6)
So; consuming a lazy data structure while retaining a reference to its
head, will result in memory use similar to that which you may have
expected if the data structure was not lazy to begin with.
--
/ Peter Schuller
--
You received this message because you are subscr
y sure that's
> making your sequence non-lazy.
Correct me if I'm wrong but that should only apply to the list of list
that concat is supposed to be concatenating; the contents of *those*
lists would still be lazy (if the original list was lazy to begin
with).
--
/ Peter Schuller
--
urned by concat would be lazy in and of
itself, ultimately there will be the non-lazy return value of
Pattern.split() in memory.
Also, is it considered idiomatic to rely on lazyness in cases like this, anyone?
--
/ Peter Schuller
--
You received this message because you are subscribed to the
> Is there a more terse way to express the same thing? I suspect there
> is a mechanism similar to (or perhaps a generalization of) composition
> for that, but I couldn't find it in the API docs.
http://stackoverflow.com/questions/2822140/function-composition-clojure
--
/
n with
node.js it's relevant to point out that no, clojure doesn't inherently
get you massive concurrency even if you can most definitely do
threading/asynch mixing with clojure like with most languages.
--
/ Peter Schuller
--
You received this message because you are subscribed to th
> You can build a scalable app with Conjure on Jetty. You don't need an
> evented server like Aleph or node.js to build a scalable app.
Depends on what you mean by scalable. If you want to keep 250 000
concurrent mostly idle connections, you'll likely want to be event
bas
as going on.
--
/ Peter Schuller
--
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
line
history retained might make a fresh normalized REPL easily accessible
in a way that doesn't involve re-typing lots of stuff (while clearly
not preserving actual state other than history)?
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups &
structures though, with a similar inappropriateness for a functional
interface, where full participation as a persistent data structure
with respect to STM would be desirable.
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To po
rying to figure out the most idiomatic way of providing a
convenient LRU cache for use in Clojure, with persistent semantics.
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to cloju
between that and my suggested side-effectful interface,
it seems to me, is that while my first suggestion had the primary
interface be functional but to provide a convenience interface that
has side-effects, while this other variant would provide a
side-effectful interface as its primary interface
cts
to receive a ref, such that you can now do:
(let [val (dosync (lru-get! c key))]
...)
Instead of every potential caller having to do mostly the same thing
anyway. What do you think?
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups &qu
Hugely appreciated!
--
/ Peter Schuller
--
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
firs
entical to leiningen's.
--
/ Peter Schuller
--
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
s of other services, doing
non-trivial control flow etc) in event-based form? Any comments on how
it scales, in terms of development costs, as the size and complexity
of the system grows?
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups "Cl
f an
implementation where the underlying concurrency abstraction is in fact
really efficient (in terms of stack sizes and in terms of switching
overhead). In other words, the day where having a few hundred thousand
concurrents connections does *not* imply that you must write your
entire application
o keep it short *while* also meaningful, structured and
non-clashing.
+1 for clojure :)
--
/ Peter Schuller
--
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
e I've used CCW a bit, I haven't used
it enough to have a good feel for it. So my input above comes mostly
from a general perspective.
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email
enient for newbies.
While I don't disagree that links would be useful, FYI you can usually just do:
(doc X)
The exception seems to be special forms which give references to the web site.
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups &quo
ations anyway,
Oops, sorry. I started writing something and meant to discard it, but
accidentally hit send...
--
/ Peter Schuller
--
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
No
WIth regards to benchmarking that accurately discounts loop overhead;
it seems to me that even if you apply elaborate logic, if the thing
you're benchmarking is so small that looping overhead becomes
significant, you risk making the benchmark subject to subtle
variations anyway,
--
/
not meant for really serious benchmarking,
but I think it would be a good thing to have in cases where one might
now otherwise use (time ..).
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send emai
> I'm on Snow Leopard. I think there's something wrong with Terminal
So my guess is that for some reason the terminal is not using the same
encoding as whatever is expected by Java (presumably Java looks at
LANG and friends).
--
/ Peter Schuller
--
You received this message be
tive
system encoding being, say, shift_JIS or something which is then
interpreted as, say, UTF-8 and luckily/unluckily not failing, instead
producing a valid unicode string of length 27.
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups "Clojure&qu
;s a whole other matter. I can see the IDE issues,
but presumably the python/ruby situation is not very good there unless
you're heavily into cygwin or something.
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To
> I can register another account (no problem), but what implications are
> there on the fact that I wrote 'scode' on the contributor agreement I
> mail:ed Rich?
I just registered "peterschuller".
--
/ Peter Schuller
--
You received this message because you are su
, but what implications are
there on the fact that I wrote 'scode' on the contributor agreement I
mail:ed Rich?
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@google
g PersistentList, it
seems contains() always returns false - which makes sense if you
consider that lists are not functions of indexes (while vectors and
java arrays are).
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups "Clojure" gr
be thread-safe or not,
but in any case I think it is good default behavior to always strive
to do I/O chunk-wise, regardless of whether the expectation is that
the underlying stream is fast (for some definition of fast).
--
/ Peter Schuller
--
You received this message because you are subscribed
28: 2.92 seconds
1024: 2.88 seconds
4096: 3.12 seconds
--
/ Peter Schuller
--
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 - p
rds, you should
be able to run:
ant ci-build
And that should install (although it does so very silently) clojure
into your (user) local maven repository:
ls -ltr ~/.m2/repository/org/clojure/clojure/1.2.0-master-SNAPSHOT
--
/ Peter Schuller
--
You received this message because you are subs
m not sure whether it will help, but this part of "Practical Common
Lisp" may be useful even though the book is about Common Lisp:
http://www.gigamonkeys.com/book/syntax-and-semantics.html
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups "
realize I totally misread it... *atom*, not var... Please ignore my
response.
--
/ Peter Schuller
--
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 member
bly HTTP is expensive enough
anyway that eliminating the overhead associated with a ref can be
considered an irrelevant overhead.
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to cloj
I might be missing something about
the intent.
--
/ Peter Schuller
--
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 pati
> Does anybody know how I can produce a sorted-set from a list without
> overflowing the stack on a list of up to 20 items?
I'm thinking I must be misunderstanding the question, but (apply
sorted-set lst)?
--
/ Peter Schuller
--
You received this message because you are subscr
haps higher memory
usage.
(Personally I've never been in a situation where I wanted the client
VM, in spite of the supposed recommentation for GUI:s... I never got
that. I prefer just running with -server and perhaps turning on
CMS/G1. Maybe if I were severely memory constrained...)
--
/
t;non-empty" can be atomically detected by enqueue(),
allowing it to determine whether or not it was responsible for such a
state transition, in which case it schedules the action for execution.
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Grou
tion with simple CAS loops to great
effect.)
--
/ Peter Schuller
--
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
> Unless I am misunderstanding the context in which the code runs, I
Which I was. Please ignore my previous post (sorry, think before I
post... think before I post...) and consider me joined in the OP's
question.
--
/ Peter Schuller
--
You received this message because you are subsc
d nothing queued.
doRun() itself keeps itself running until it manages to empty the
queue, at which point a future enqueue() will once again re-start
execution.
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to
> Personally, I like the lstrip/strip/rstrip, but that's just because
> I'm used to them.
strip is fine too IMO; I'm neutral between *strip and *trim.
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups "Clojure" gro
ng makes it nice and tidy.
While I recognize the perl (or whatever the original is) precedent
from chomp/chop, there is precedent for trim/left trim/right trim too.
What *would* one call trim/ltrim to make them consistent with chomp?
--
/ Peter Schuller
--
You received this message because you
eed,
overall, with the originally posted article.
--
/ Peter Schuller
--
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 p
state in an erlang actor. The claim is rather that
the intended fundamental model implemented by an actor is not one of
shared mutable state.
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send emai
s not
mean that you cannot use them to build something on top that *is*
susceptible to deadlock/races.
--
/ Peter Schuller
--
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
ang, and that
there is no other means to avoid deadlock, meaning that while you will
not deadlock in the message passing system you can cause memory
exhaustion.
Disclaimer: While I've played with erlang I'm not really that into it,
please correct me someone if I've misrepresented any
;ctrl-p" gives me the line I just wrote, etc. For me, being used to
primarily sitting at the zsh command line,I would not be able to use
the plain REPL without it or I'd go nuts ;)
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups
said file contain
actual data not valid clojure, or was it just an empty file? If the
latter, no output is expected, as you point out.
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to
;(println "test")' > test.clj
% java -cp /usr/local/share/java/classes/clojure.jar clojure.main test.clj
test
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo
346)
at clojure.lang.RestFn.invoke(RestFn.java:413)
at clojure.lang.Var.invoke(Var.java:359)
at clojure.lang.AFn.applyToHelper(AFn.java:173)
at clojure.lang.Var.applyTo(Var.java:476)
at clojure.main.main(main.java:37)
--
/ Peter Schuller
--
You received this m
s API, but I failed to
confirm it.
In that case, I suggest putting a huge warning in the documentation at
least, as to the potential destructiveness of the operation.
(Ant's trick with canonical names feels shaky in the context of
something as general-purpose as delete-file)
--
/ Peter Sc
> i.e. I agree with you, but am also against allowing this behaviour as
> an option, unless others feel it's a good option to have.
I can definitely buy that.
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups "Clojure" g
.
The simplest "fix" (assuming everyone agrees it's a problem) is to
simply change it not to, but I suggested the option to allow for both
- but the default should presumably be to *not* follow symlinks.
--
/ Peter Schuller
--
You received this message because you are subscribed
e for inclusion I'd be interested in
having a stab at it (it's a nicely bite-sized opportunity to write
some clojure).
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo
in
the REPL in both 1.1 and 1.2 because of the after-eval printing of the
result, but the alters do succeed. In other words, *printing* a, @a, b
or @b may give you difficulties due to infinite recursion. But is one
of the (dosync ...) blocks really failing?
--
/ Peter Schuller
--
You received t
them)? An admittedly Unix biased expected behavior would
be, I believe, to not do that by default, but maybe have an option to
do so.
(Did you want feedback here or on assembla?)
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups "Clojure" gro
http://research.sun.com/techrep/2000/smli_tr-2000-88.pdf
Of course both CMS and G1 will have changed since the original
publications of the papers, but they should offer good insight.
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups "Clojure&
solved the problem of not downloading during build.
One should probably look into doing something similar for other
packaging systems then.
Guess I need to bite the bullet and learn Maven ;)
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups "
t then what
about GPL libraries and similar license hassles?
Actually, how is this dealt with in the Maven community?
--
/ Peter Schuller
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegrou
erface with the
infrastructure of the language. And any random blackbox doesn't cut
it; certain demands are imposed on the blackbox in order for it to
play nice with the packaging infrastructure.
At this time I haven't thought this through enough in the case of
Clojure to offer a prac
ser
experience once package maintainers start picking this up, just like
the case is with Python and Ruby.
I'd be interested in looking into getting some kind of draft
implementation of this, if people think it's a good idea (though I
can't make time commitments - busy busy busy).
--
nse for that particular API (such as
read-line).
--
/ Peter Schuller
--
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
ay to do
it or anything.
The -XX:+DisableExplicitGC is because some software authors try to be
"smart" and insert System.gc() calls at "appropriate" points. They
tend to fail, so if you select a GC that actually does handle your
case with minimal pauses you also want to disable
84 matches
Mail list logo