Re: asm-based clojure yet?
If you use ngen, it won't be so bad: http://clojureclr.blogspot.com/2011/12/using-ngen-to-improve-clojureclr.html On Friday, May 24, 2013 6:29:24 AM UTC-4, atkaaz wrote: making a note that (on my system, win7 64bit btw) clojureclr startup time is about (at least)10 seconds. tested both Clojure.Main.exe and Clojure.Compile.exe from package clojure-clr-1.4.1-Debug-4.0.zip I might be looking into Haskell which seems to have like 2 sec(max) startup time, and the hello world .exe file is 1,132,640 bytes (big but depends only on kerner32/user32/msvcrt/wsock32 .dll files) On Fri, May 17, 2013 at 2:10 PM, atkaaz atk...@gmail.com javascript:wrote: Ok, weird question: is there some clojure port on assembler yet? Even if(/especially if) it doesn't have jvm/java/javalibs support Or should I just check https://github.com/clojure/clojure-clr ? I'm mainly interested in low memory footprint and fast startup times (does clojure-clr have that?) -- -- 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 from this group, send email to clojure+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: asm-based clojure yet?
I'll throw in my own work in progress as a low-footprint target of Clojure: https://github.com/aaronc/c-in-clj. It's not an attempt to compile Clojure code to C, but rather a way to write C code efficiently from Clojure that can be dynamically invoked from Clojure. On Friday, May 17, 2013 7:49:08 AM UTC-4, Gary Trakhman wrote: I think these qualify as low-footprint clojures: https://github.com/clojure/clojurescript on node.. https://github.com/takeoutweight/clojure-scheme compiles to native https://github.com/halgari/mjolnir llvm targets. On Fri, May 17, 2013 at 7:10 AM, atkaaz atk...@gmail.com javascript:wrote: Ok, weird question: is there some clojure port on assembler yet? Even if(/especially if) it doesn't have jvm/java/javalibs support Or should I just check https://github.com/clojure/clojure-clr ? I'm mainly interested in low memory footprint and fast startup times (does clojure-clr have that?) -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clo...@googlegroups.comjavascript: 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 javascript: 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 javascript:. For more options, visit https://groups.google.com/groups/opt_out. -- -- 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 from this group, send email to clojure+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: asm-based clojure yet?
making a note that (on my system, win7 64bit btw) clojureclr startup time is about (at least)10 seconds. tested both Clojure.Main.exe and Clojure.Compile.exe from package clojure-clr-1.4.1-Debug-4.0.zip I might be looking into Haskell which seems to have like 2 sec(max) startup time, and the hello world .exe file is 1,132,640 bytes (big but depends only on kerner32/user32/msvcrt/wsock32 .dll files) On Fri, May 17, 2013 at 2:10 PM, atkaaz atk...@gmail.com wrote: Ok, weird question: is there some clojure port on assembler yet? Even if(/especially if) it doesn't have jvm/java/javalibs support Or should I just check https://github.com/clojure/clojure-clr ? I'm mainly interested in low memory footprint and fast startup times (does clojure-clr have that?) -- -- 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 from this group, send email to clojure+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: asm-based clojure yet?
for comparison an uberjar run [1] of a hello world program takes 2 seconds (2.2 sec) on clojure 1.5.1 and Leiningen 2.2.0-SNAPSHOT on Java 1.7.0_17 Java HotSpot(TM) 64-Bit Server VM [1] java -jar newproj1-0.1.0-SNAPSHOT-standalone.jar On Fri, May 24, 2013 at 1:29 PM, atkaaz atk...@gmail.com wrote: making a note that (on my system, win7 64bit btw) clojureclr startup time is about (at least)10 seconds. tested both Clojure.Main.exe and Clojure.Compile.exe from package clojure-clr-1.4.1-Debug-4.0.zip I might be looking into Haskell which seems to have like 2 sec(max) startup time, and the hello world .exe file is 1,132,640 bytes (big but depends only on kerner32/user32/msvcrt/wsock32 .dll files) On Fri, May 17, 2013 at 2:10 PM, atkaaz atk...@gmail.com wrote: Ok, weird question: is there some clojure port on assembler yet? Even if(/especially if) it doesn't have jvm/java/javalibs support Or should I just check https://github.com/clojure/clojure-clr ? I'm mainly interested in low memory footprint and fast startup times (does clojure-clr have that?) -- -- 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 from this group, send email to clojure+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: asm-based clojure yet?
One more thought on the broader ideas of LISPy languages and ASM. One of the versions of Crash Bandicoot was developed in Game Oriented Assembly LISP (GOAL) - which was a common LISP DSL that generated assembler. I recalled this today because Michael Fogus tweeted about it: https://twitter.com/fogus/status/336865798628966400 If you're a hobbyist dabbling in this space then you might find reading about it interesting and inspiring: http://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp http://all-things-andy-gavin.com/2011/03/12/making-crash-bandicoot-gool-part-9/ JG On Sunday, 19 May 2013 01:49:43 UTC+10, Gary Trakhman wrote: It's hard to really appreciate java and clojure until you actually write some C/C++ or ASM.. I have some minor experience with that stuff, and it still haunts me from time to time. Sometimes we make tradeoffs without knowing we did. By choosing a language, or having the choice made for us, we accept a set of abstractions as our bottom level of thinking for a problem-space. Only old-timers and people that make a point to care about low-level stuff will notice the implications of what they're doing along the abstraction stack. People with ingrained habits just won't find it easy to think functionally, but I'm young and irreverent, so it doesn't bother me :-). C++ is fun because of all the bolted-on kludges that 'mitigate' these problems. You can use operator-overloading on pointer operations to perform automatic reference counting, deallocating objects when things that point to them go out of scope, but I think implementing a PersistentHashMap this way would be very difficult. Also, pretty sure it can't handle cycles. I guess the point is, I appreciate any effort to understand such issues, it's been a useful thing for me to know in the 0.05% of time that knowledge is needed. But, people who don't know just won't be able to get past those problems. And, you generally can't easily find a _really_ full-stack guy to glance at it for you when it would be useful to have one. On Sat, May 18, 2013 at 11:24 AM, atkaaz atk...@gmail.com javascript:wrote: your comment caused me to be reading this http://prog21.dadgum.com/134.html (at least) On Sat, May 18, 2013 at 6:17 PM, Gary Trakhman gary.t...@gmail.comjavascript: wrote: Immutability, persistence, closures without a serious garbage collector sounds hard. On Sat, May 18, 2013 at 1:09 AM, atkaaz atk...@gmail.com javascript:wrote: Thanks very much everyone! I'm looking into all of those, but currently planning to read Julian's pdf. I didn't want to say anything until I had something definite, but just letting y'all know that I'm considering each recommendation. On Sat, May 18, 2013 at 7:12 AM, Julian julian...@gmail.comjavascript: wrote: If you had a hobbyist interest in representing S-expressions in assembler - then you could take a look at the tutorial written by Abdulaziz Ghuloum called Compilers: Backend to Frontend and Back to Front Again. It used to be available here: http://www.cs.indiana.edu/~aghuloum/compilers-tutorial-2006-09-16.pdf I don't know if it available anywhere else on the internet - but I grabbed another copy and put it here: https://sites.google.com/site/juliangamble/Home/Compilers%20Tutorial%202006-09-16.pdf?attredirects=0d=1 For a more serious representation of Clojure's persistent data structures, I don't recommend trying to implement them in ASM. Cheers Julian On Friday, 17 May 2013 22:06:45 UTC+10, Alan D. Salewski wrote: On Fri, May 17, 2013 at 02:10:02PM +0300, atkaaz spake thus: Ok, weird question: is there some clojure port on assembler yet? Even if(/especially if) it doesn't have jvm/java/javalibs support Or should I just check https://github.com/clojure/**clojure-clrhttps://github.com/clojure/clojure-clr? I'm mainly interested in low memory footprint and fast startup times (does clojure-clr have that?) You may want to check out ClojureScript, too. ClojureScript programs leveraging nodejs for host interop have fast startup times: https://github.com/clojure/**clojurescript/wikihttps://github.com/clojure/clojurescript/wiki -- --**--**- a l a n d. s a l e w s k i sale...@att.net 1024D/FA2C3588 EDFA 195F EDF1 0933 1002 6396 7C92 5CB3 FA2C 3588 --**--**- -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clo...@googlegroups.comjavascript: 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 javascript: For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: asm-based clojure yet?
thank you very much, my search has lead me to seeking a lisp that could compile to machine code (mainly because i cannot accept the 20-22 sec `lein repl` startup time and eclipse/ccw memory consumptions - so I was hoping for something fast even though the cost is portability and all else) On Wed, May 22, 2013 at 3:10 PM, Julian juliangam...@gmail.com wrote: One more thought on the broader ideas of LISPy languages and ASM. One of the versions of Crash Bandicoot was developed in Game Oriented Assembly LISP (GOAL) - which was a common LISP DSL that generated assembler. I recalled this today because Michael Fogus tweeted about it: https://twitter.com/fogus/status/336865798628966400 If you're a hobbyist dabbling in this space then you might find reading about it interesting and inspiring: http://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp http://all-things-andy-gavin.com/2011/03/12/making-crash-bandicoot-gool-part-9/ JG On Sunday, 19 May 2013 01:49:43 UTC+10, Gary Trakhman wrote: It's hard to really appreciate java and clojure until you actually write some C/C++ or ASM.. I have some minor experience with that stuff, and it still haunts me from time to time. Sometimes we make tradeoffs without knowing we did. By choosing a language, or having the choice made for us, we accept a set of abstractions as our bottom level of thinking for a problem-space. Only old-timers and people that make a point to care about low-level stuff will notice the implications of what they're doing along the abstraction stack. People with ingrained habits just won't find it easy to think functionally, but I'm young and irreverent, so it doesn't bother me :-). C++ is fun because of all the bolted-on kludges that 'mitigate' these problems. You can use operator-overloading on pointer operations to perform automatic reference counting, deallocating objects when things that point to them go out of scope, but I think implementing a PersistentHashMap this way would be very difficult. Also, pretty sure it can't handle cycles. I guess the point is, I appreciate any effort to understand such issues, it's been a useful thing for me to know in the 0.05% of time that knowledge is needed. But, people who don't know just won't be able to get past those problems. And, you generally can't easily find a _really_ full-stack guy to glance at it for you when it would be useful to have one. On Sat, May 18, 2013 at 11:24 AM, atkaaz atk...@gmail.com wrote: your comment caused me to be reading this http://prog21.dadgum.com/134.* *html http://prog21.dadgum.com/134.html (at least) On Sat, May 18, 2013 at 6:17 PM, Gary Trakhman gary.t...@gmail.comwrote: Immutability, persistence, closures without a serious garbage collector sounds hard. On Sat, May 18, 2013 at 1:09 AM, atkaaz atk...@gmail.com wrote: Thanks very much everyone! I'm looking into all of those, but currently planning to read Julian's pdf. I didn't want to say anything until I had something definite, but just letting y'all know that I'm considering each recommendation. On Sat, May 18, 2013 at 7:12 AM, Julian julian...@gmail.com wrote: If you had a hobbyist interest in representing S-expressions in assembler - then you could take a look at the tutorial written by Abdulaziz Ghuloum called Compilers: Backend to Frontend and Back to Front Again. It used to be available here: http://www.cs.indiana.** edu/~aghuloum/compilers-**tutorial-2006-09-16.pdfhttp://www.cs.indiana.edu/~aghuloum/compilers-tutorial-2006-09-16.pdf I don't know if it available anywhere else on the internet - but I grabbed another copy and put it here: https://sites.google.** com/site/juliangamble/Home/**Compilers%20Tutorial%202006-** 09-16.pdf?attredirects=0d=1https://sites.google.com/site/juliangamble/Home/Compilers%20Tutorial%202006-09-16.pdf?attredirects=0d=1 For a more serious representation of Clojure's persistent data structures, I don't recommend trying to implement them in ASM. Cheers Julian On Friday, 17 May 2013 22:06:45 UTC+10, Alan D. Salewski wrote: On Fri, May 17, 2013 at 02:10:02PM +0300, atkaaz spake thus: Ok, weird question: is there some clojure port on assembler yet? Even if(/especially if) it doesn't have jvm/java/javalibs support Or should I just check https://github.com/clojure/**clo**jure-clrhttps://github.com/clojure/clojure-clr? I'm mainly interested in low memory footprint and fast startup times (does clojure-clr have that?) You may want to check out ClojureScript, too. ClojureScript programs leveraging nodejs for host interop have fast startup times: https://github.com/clojure/**clo**jurescript/wikihttps://github.com/clojure/clojurescript/wiki -- ----- a l a n d. s a l e w s k i sale...@att.net 1024D/FA2C3588 EDFA 195F EDF1 0933 1002 6396 7C92 5CB3 FA2C 3588
Re: asm-based clojure yet?
On Wednesday, 22 May 2013 20:35:01 UTC+8, atkaaz wrote: thank you very much, my search has lead me to seeking a lisp that could compile to machine code (mainly because i cannot accept the 20-22 sec `lein repl` startup time and eclipse/ccw memory consumptions - so I was hoping for something fast even though the cost is portability and all else) The above strikes me as a slightly odd statement. Eclipse/CCW or lein repl startup times should be irrelevant because you should only be incurring them once, when starting a development session. Sure, Eclipse eats memory too, but again this is only a development time issue and your dev machine should have plenty, right? In production, running the packaged .jar file should be pretty quick and much more lightweight. JVM startup is less than 0.1sec nowadays, so you can get a splash screen or basic GUI up in front of a user almost immediately. That only leaves the time required to compile and initialise Clojure itself and your application code - maybe 5 secs or so for a reasonably sized app. If you are smart you can do quite a lot of work lazily / in the background so the user doesn't even notice I can certainly see some uses for a Clojure-to-assembler compiler, but only in very specialised areas (embedded devices, realtime systems etc.). For general purpose application development I think it's probably going to be more trouble than it is worth. -- -- 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 from this group, send email to clojure+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: asm-based clojure yet?
Looks like I forgot to enable the paging file (windows virtual memory was disabled) and that is why my eclipse/firefox would crash when running out of memory and also had much eclipse.ini memory allocated -Xms228m -Xmx712m ; and because of all these I was unable to start repl most of the time in ccw due to not enough memory(it said), so due to your comment (thank you), I've fixed those and set -Xms128m -Xmx512m but will probably go back to 712 (it's ok now since I've the paging file); but the memory total is like 3.5gig since 512 is eaten by video card memory. So now at least I can run them without running out of memory all the time :) but they still use quite a lot and I found myself having to run lein commands (like lein test) and restarting repls enough times for it to make me want something else - but I am an odd ball, so it's not something everyone else will do. Honestly I really want a system where things are more accessible, unfortunately I can't explain this (i'll try if u really want me to) for example I really enjoyed the F3 in eclipse on java source code which would do Go to Definition/Declaration (of this identifier), and also the find all calls to this method in this project and the refactoring... this kind of connectivity I'd expect to be in the system (from what I've read some Lisp machines(?) or the lisp lang on some machines really have that was it Genera ? and some read about Dynamic Windows but I also remember something vaguely about ruby - haven't used it though). In a more broader way, I want to be able to explore/deduce the system without having to jump through hoops like googling for information about it, when in fact I already have it running on my system, why not just explore its construction live while it's running, visualize all its connections (like in a graph) I like this clojure lang because it gets me closer to the way I want things to be, but it feels all so disconnected like I can't feel that when writing some code I can just easily F3 on a symbol and see where else it was used or even defined(sometimes this works in ccw btw ie. for clojure core code) So far, I'm thinking maybe code something from assembler level up (maybe even not requiring garbage collector but still not using explicit mem allocations like malloc) so it will eventually become a replacement for whatever I use for text editor, and if it does the way I think it will, I can then store all kinds of information and advance it even to the next level... but there's all these barrier with transactions and locks but this functional programming idea might be pretty good to apply(even though I envisioned a system where everything would be global(ly accessible) restrictions can still apply in dependency style like A depends on B and C depends on B, so if I want to change B then the way A and C depend on B have to be satisfied before the change can occur or that change will have to include changes to A and/or C also). Sorry for the rant, it's just that i feel lost so far(and not very knowledgeable). I just imagine how awesome it would be to can explore a system (PC+OS+java+clojure+some window+some text+some word on it) of which say you know nothing of, from a point (any point you choose) and be able to understand it and see how everything interconnects to everything else (no data/level/layer stripped just like the .exe is without the sourcecode for example), because everything you need is there, visually explorable(maybe graph like) and even changeable, if you just need to know exactly how is some word(or even a pixel) on the screen connected to everything else for example you could dig in - I don't know how it would look and how to implement that so far, but i know I want it, and apparently I'm reluctant to accepting the status quo even though that's the only way to get there :/ It can still be fast even though all the debug info (so to speak) and source code is tagged/connected to the binary code/offsets I imagine. On Wed, May 22, 2013 at 6:51 PM, Mikera mike.r.anderson...@gmail.comwrote: On Wednesday, 22 May 2013 20:35:01 UTC+8, atkaaz wrote: thank you very much, my search has lead me to seeking a lisp that could compile to machine code (mainly because i cannot accept the 20-22 sec `lein repl` startup time and eclipse/ccw memory consumptions - so I was hoping for something fast even though the cost is portability and all else) The above strikes me as a slightly odd statement. Eclipse/CCW or lein repl startup times should be irrelevant because you should only be incurring them once, when starting a development session. Sure, Eclipse eats memory too, but again this is only a development time issue and your dev machine should have plenty, right? In production, running the packaged .jar file should be pretty quick and much more lightweight. JVM startup is less than 0.1sec nowadays, so you can get a splash screen or basic GUI up in front of a user almost immediately. That only leaves
Re: asm-based clojure yet?
emacs does this navigation stuff.. M-. and M-, . For uses of a function, try grep -R or rgrep. On Wed, May 22, 2013 at 1:30 PM, atkaaz atk...@gmail.com wrote: Looks like I forgot to enable the paging file (windows virtual memory was disabled) and that is why my eclipse/firefox would crash when running out of memory and also had much eclipse.ini memory allocated -Xms228m -Xmx712m ; and because of all these I was unable to start repl most of the time in ccw due to not enough memory(it said), so due to your comment (thank you), I've fixed those and set -Xms128m -Xmx512m but will probably go back to 712 (it's ok now since I've the paging file); but the memory total is like 3.5gig since 512 is eaten by video card memory. So now at least I can run them without running out of memory all the time :) but they still use quite a lot and I found myself having to run lein commands (like lein test) and restarting repls enough times for it to make me want something else - but I am an odd ball, so it's not something everyone else will do. Honestly I really want a system where things are more accessible, unfortunately I can't explain this (i'll try if u really want me to) for example I really enjoyed the F3 in eclipse on java source code which would do Go to Definition/Declaration (of this identifier), and also the find all calls to this method in this project and the refactoring... this kind of connectivity I'd expect to be in the system (from what I've read some Lisp machines(?) or the lisp lang on some machines really have that was it Genera ? and some read about Dynamic Windows but I also remember something vaguely about ruby - haven't used it though). In a more broader way, I want to be able to explore/deduce the system without having to jump through hoops like googling for information about it, when in fact I already have it running on my system, why not just explore its construction live while it's running, visualize all its connections (like in a graph) I like this clojure lang because it gets me closer to the way I want things to be, but it feels all so disconnected like I can't feel that when writing some code I can just easily F3 on a symbol and see where else it was used or even defined(sometimes this works in ccw btw ie. for clojure core code) So far, I'm thinking maybe code something from assembler level up (maybe even not requiring garbage collector but still not using explicit mem allocations like malloc) so it will eventually become a replacement for whatever I use for text editor, and if it does the way I think it will, I can then store all kinds of information and advance it even to the next level... but there's all these barrier with transactions and locks but this functional programming idea might be pretty good to apply(even though I envisioned a system where everything would be global(ly accessible) restrictions can still apply in dependency style like A depends on B and C depends on B, so if I want to change B then the way A and C depend on B have to be satisfied before the change can occur or that change will have to include changes to A and/or C also). Sorry for the rant, it's just that i feel lost so far(and not very knowledgeable). I just imagine how awesome it would be to can explore a system (PC+OS+java+clojure+some window+some text+some word on it) of which say you know nothing of, from a point (any point you choose) and be able to understand it and see how everything interconnects to everything else (no data/level/layer stripped just like the .exe is without the sourcecode for example), because everything you need is there, visually explorable(maybe graph like) and even changeable, if you just need to know exactly how is some word(or even a pixel) on the screen connected to everything else for example you could dig in - I don't know how it would look and how to implement that so far, but i know I want it, and apparently I'm reluctant to accepting the status quo even though that's the only way to get there :/ It can still be fast even though all the debug info (so to speak) and source code is tagged/connected to the binary code/offsets I imagine. On Wed, May 22, 2013 at 6:51 PM, Mikera mike.r.anderson...@gmail.comwrote: On Wednesday, 22 May 2013 20:35:01 UTC+8, atkaaz wrote: thank you very much, my search has lead me to seeking a lisp that could compile to machine code (mainly because i cannot accept the 20-22 sec `lein repl` startup time and eclipse/ccw memory consumptions - so I was hoping for something fast even though the cost is portability and all else) The above strikes me as a slightly odd statement. Eclipse/CCW or lein repl startup times should be irrelevant because you should only be incurring them once, when starting a development session. Sure, Eclipse eats memory too, but again this is only a development time issue and your dev machine should have plenty, right? In production, running the
Re: asm-based clojure yet?
I don't know about the emacs stuff, but I consider the latter to be a nice workaround/hack :) On Wed, May 22, 2013 at 8:35 PM, Gary Trakhman gary.trakh...@gmail.comwrote: emacs does this navigation stuff.. M-. and M-, . For uses of a function, try grep -R or rgrep. On Wed, May 22, 2013 at 1:30 PM, atkaaz atk...@gmail.com wrote: Looks like I forgot to enable the paging file (windows virtual memory was disabled) and that is why my eclipse/firefox would crash when running out of memory and also had much eclipse.ini memory allocated -Xms228m -Xmx712m ; and because of all these I was unable to start repl most of the time in ccw due to not enough memory(it said), so due to your comment (thank you), I've fixed those and set -Xms128m -Xmx512m but will probably go back to 712 (it's ok now since I've the paging file); but the memory total is like 3.5gig since 512 is eaten by video card memory. So now at least I can run them without running out of memory all the time :) but they still use quite a lot and I found myself having to run lein commands (like lein test) and restarting repls enough times for it to make me want something else - but I am an odd ball, so it's not something everyone else will do. Honestly I really want a system where things are more accessible, unfortunately I can't explain this (i'll try if u really want me to) for example I really enjoyed the F3 in eclipse on java source code which would do Go to Definition/Declaration (of this identifier), and also the find all calls to this method in this project and the refactoring... this kind of connectivity I'd expect to be in the system (from what I've read some Lisp machines(?) or the lisp lang on some machines really have that was it Genera ? and some read about Dynamic Windows but I also remember something vaguely about ruby - haven't used it though). In a more broader way, I want to be able to explore/deduce the system without having to jump through hoops like googling for information about it, when in fact I already have it running on my system, why not just explore its construction live while it's running, visualize all its connections (like in a graph) I like this clojure lang because it gets me closer to the way I want things to be, but it feels all so disconnected like I can't feel that when writing some code I can just easily F3 on a symbol and see where else it was used or even defined(sometimes this works in ccw btw ie. for clojure core code) So far, I'm thinking maybe code something from assembler level up (maybe even not requiring garbage collector but still not using explicit mem allocations like malloc) so it will eventually become a replacement for whatever I use for text editor, and if it does the way I think it will, I can then store all kinds of information and advance it even to the next level... but there's all these barrier with transactions and locks but this functional programming idea might be pretty good to apply(even though I envisioned a system where everything would be global(ly accessible) restrictions can still apply in dependency style like A depends on B and C depends on B, so if I want to change B then the way A and C depend on B have to be satisfied before the change can occur or that change will have to include changes to A and/or C also). Sorry for the rant, it's just that i feel lost so far(and not very knowledgeable). I just imagine how awesome it would be to can explore a system (PC+OS+java+clojure+some window+some text+some word on it) of which say you know nothing of, from a point (any point you choose) and be able to understand it and see how everything interconnects to everything else (no data/level/layer stripped just like the .exe is without the sourcecode for example), because everything you need is there, visually explorable(maybe graph like) and even changeable, if you just need to know exactly how is some word(or even a pixel) on the screen connected to everything else for example you could dig in - I don't know how it would look and how to implement that so far, but i know I want it, and apparently I'm reluctant to accepting the status quo even though that's the only way to get there :/ It can still be fast even though all the debug info (so to speak) and source code is tagged/connected to the binary code/offsets I imagine. On Wed, May 22, 2013 at 6:51 PM, Mikera mike.r.anderson...@gmail.comwrote: On Wednesday, 22 May 2013 20:35:01 UTC+8, atkaaz wrote: thank you very much, my search has lead me to seeking a lisp that could compile to machine code (mainly because i cannot accept the 20-22 sec `lein repl` startup time and eclipse/ccw memory consumptions - so I was hoping for something fast even though the cost is portability and all else) The above strikes me as a slightly odd statement. Eclipse/CCW or lein repl startup times should be irrelevant because you should only be incurring them once, when starting a
Re: asm-based clojure yet?
Immutability, persistence, closures without a serious garbage collector sounds hard. On Sat, May 18, 2013 at 1:09 AM, atkaaz atk...@gmail.com wrote: Thanks very much everyone! I'm looking into all of those, but currently planning to read Julian's pdf. I didn't want to say anything until I had something definite, but just letting y'all know that I'm considering each recommendation. On Sat, May 18, 2013 at 7:12 AM, Julian juliangam...@gmail.com wrote: If you had a hobbyist interest in representing S-expressions in assembler - then you could take a look at the tutorial written by Abdulaziz Ghuloum called Compilers: Backend to Frontend and Back to Front Again. It used to be available here: http://www.cs.indiana.edu/~aghuloum/compilers-tutorial-2006-09-16.pdf I don't know if it available anywhere else on the internet - but I grabbed another copy and put it here: https://sites.google.com/site/juliangamble/Home/Compilers%20Tutorial%202006-09-16.pdf?attredirects=0d=1 For a more serious representation of Clojure's persistent data structures, I don't recommend trying to implement them in ASM. Cheers Julian On Friday, 17 May 2013 22:06:45 UTC+10, Alan D. Salewski wrote: On Fri, May 17, 2013 at 02:10:02PM +0300, atkaaz spake thus: Ok, weird question: is there some clojure port on assembler yet? Even if(/especially if) it doesn't have jvm/java/javalibs support Or should I just check https://github.com/clojure/**clojure-clrhttps://github.com/clojure/clojure-clr? I'm mainly interested in low memory footprint and fast startup times (does clojure-clr have that?) You may want to check out ClojureScript, too. ClojureScript programs leveraging nodejs for host interop have fast startup times: https://github.com/clojure/**clojurescript/wikihttps://github.com/clojure/clojurescript/wiki -- --**--**- a l a n d. s a l e w s k i sale...@att.net 1024D/FA2C3588 EDFA 195F EDF1 0933 1002 6396 7C92 5CB3 FA2C 3588 --**--**- -- -- 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 from this group, send email to clojure+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- -- 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 from this group, send email to clojure+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- -- 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 from this group, send email to clojure+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: asm-based clojure yet?
your comment caused me to be reading this http://prog21.dadgum.com/134.html (at least) On Sat, May 18, 2013 at 6:17 PM, Gary Trakhman gary.trakh...@gmail.comwrote: Immutability, persistence, closures without a serious garbage collector sounds hard. On Sat, May 18, 2013 at 1:09 AM, atkaaz atk...@gmail.com wrote: Thanks very much everyone! I'm looking into all of those, but currently planning to read Julian's pdf. I didn't want to say anything until I had something definite, but just letting y'all know that I'm considering each recommendation. On Sat, May 18, 2013 at 7:12 AM, Julian juliangam...@gmail.com wrote: If you had a hobbyist interest in representing S-expressions in assembler - then you could take a look at the tutorial written by Abdulaziz Ghuloum called Compilers: Backend to Frontend and Back to Front Again. It used to be available here: http://www.cs.indiana.edu/~aghuloum/compilers-tutorial-2006-09-16.pdf I don't know if it available anywhere else on the internet - but I grabbed another copy and put it here: https://sites.google.com/site/juliangamble/Home/Compilers%20Tutorial%202006-09-16.pdf?attredirects=0d=1 For a more serious representation of Clojure's persistent data structures, I don't recommend trying to implement them in ASM. Cheers Julian On Friday, 17 May 2013 22:06:45 UTC+10, Alan D. Salewski wrote: On Fri, May 17, 2013 at 02:10:02PM +0300, atkaaz spake thus: Ok, weird question: is there some clojure port on assembler yet? Even if(/especially if) it doesn't have jvm/java/javalibs support Or should I just check https://github.com/clojure/**clojure-clrhttps://github.com/clojure/clojure-clr? I'm mainly interested in low memory footprint and fast startup times (does clojure-clr have that?) You may want to check out ClojureScript, too. ClojureScript programs leveraging nodejs for host interop have fast startup times: https://github.com/clojure/**clojurescript/wikihttps://github.com/clojure/clojurescript/wiki -- --**--**- a l a n d. s a l e w s k i sale...@att.net 1024D/FA2C3588 EDFA 195F EDF1 0933 1002 6396 7C92 5CB3 FA2C 3588 --**--**- -- -- 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 from this group, send email to clojure+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- -- 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 from this group, send email to clojure+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- -- 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 from this group, send email to clojure+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- -- 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 from this group, send email to clojure+unsubscr...@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
Re: asm-based clojure yet?
It's hard to really appreciate java and clojure until you actually write some C/C++ or ASM.. I have some minor experience with that stuff, and it still haunts me from time to time. Sometimes we make tradeoffs without knowing we did. By choosing a language, or having the choice made for us, we accept a set of abstractions as our bottom level of thinking for a problem-space. Only old-timers and people that make a point to care about low-level stuff will notice the implications of what they're doing along the abstraction stack. People with ingrained habits just won't find it easy to think functionally, but I'm young and irreverent, so it doesn't bother me :-). C++ is fun because of all the bolted-on kludges that 'mitigate' these problems. You can use operator-overloading on pointer operations to perform automatic reference counting, deallocating objects when things that point to them go out of scope, but I think implementing a PersistentHashMap this way would be very difficult. Also, pretty sure it can't handle cycles. I guess the point is, I appreciate any effort to understand such issues, it's been a useful thing for me to know in the 0.05% of time that knowledge is needed. But, people who don't know just won't be able to get past those problems. And, you generally can't easily find a _really_ full-stack guy to glance at it for you when it would be useful to have one. On Sat, May 18, 2013 at 11:24 AM, atkaaz atk...@gmail.com wrote: your comment caused me to be reading this http://prog21.dadgum.com/134.html (at least) On Sat, May 18, 2013 at 6:17 PM, Gary Trakhman gary.trakh...@gmail.comwrote: Immutability, persistence, closures without a serious garbage collector sounds hard. On Sat, May 18, 2013 at 1:09 AM, atkaaz atk...@gmail.com wrote: Thanks very much everyone! I'm looking into all of those, but currently planning to read Julian's pdf. I didn't want to say anything until I had something definite, but just letting y'all know that I'm considering each recommendation. On Sat, May 18, 2013 at 7:12 AM, Julian juliangam...@gmail.com wrote: If you had a hobbyist interest in representing S-expressions in assembler - then you could take a look at the tutorial written by Abdulaziz Ghuloum called Compilers: Backend to Frontend and Back to Front Again. It used to be available here: http://www.cs.indiana.edu/~aghuloum/compilers-tutorial-2006-09-16.pdf I don't know if it available anywhere else on the internet - but I grabbed another copy and put it here: https://sites.google.com/site/juliangamble/Home/Compilers%20Tutorial%202006-09-16.pdf?attredirects=0d=1 For a more serious representation of Clojure's persistent data structures, I don't recommend trying to implement them in ASM. Cheers Julian On Friday, 17 May 2013 22:06:45 UTC+10, Alan D. Salewski wrote: On Fri, May 17, 2013 at 02:10:02PM +0300, atkaaz spake thus: Ok, weird question: is there some clojure port on assembler yet? Even if(/especially if) it doesn't have jvm/java/javalibs support Or should I just check https://github.com/clojure/**clojure-clrhttps://github.com/clojure/clojure-clr? I'm mainly interested in low memory footprint and fast startup times (does clojure-clr have that?) You may want to check out ClojureScript, too. ClojureScript programs leveraging nodejs for host interop have fast startup times: https://github.com/clojure/**clojurescript/wikihttps://github.com/clojure/clojurescript/wiki -- --**--**- a l a n d. s a l e w s k i sale...@att.net 1024D/FA2C3588 EDFA 195F EDF1 0933 1002 6396 7C92 5CB3 FA2C 3588 --**--**- -- -- 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 from this group, send email to clojure+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- -- 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 from this group, send email to clojure+unsubscr...@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
asm-based clojure yet?
Ok, weird question: is there some clojure port on assembler yet? Even if(/especially if) it doesn't have jvm/java/javalibs support Or should I just check https://github.com/clojure/clojure-clr ? I'm mainly interested in low memory footprint and fast startup times (does clojure-clr have that?) -- -- 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 from this group, send email to clojure+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: asm-based clojure yet?
I think these qualify as low-footprint clojures: https://github.com/clojure/clojurescript on node.. https://github.com/takeoutweight/clojure-scheme compiles to native https://github.com/halgari/mjolnir llvm targets. On Fri, May 17, 2013 at 7:10 AM, atkaaz atk...@gmail.com wrote: Ok, weird question: is there some clojure port on assembler yet? Even if(/especially if) it doesn't have jvm/java/javalibs support Or should I just check https://github.com/clojure/clojure-clr ? I'm mainly interested in low memory footprint and fast startup times (does clojure-clr have that?) -- -- 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 from this group, send email to clojure+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- -- 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 from this group, send email to clojure+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: asm-based clojure yet?
On Fri, May 17, 2013 at 02:10:02PM +0300, atkaaz spake thus: Ok, weird question: is there some clojure port on assembler yet? Even if(/especially if) it doesn't have jvm/java/javalibs support Or should I just check https://github.com/clojure/clojure-clr ? I'm mainly interested in low memory footprint and fast startup times (does clojure-clr have that?) You may want to check out ClojureScript, too. ClojureScript programs leveraging nodejs for host interop have fast startup times: https://github.com/clojure/clojurescript/wiki -- - a l a n d. s a l e w s k i salew...@att.net 1024D/FA2C3588 EDFA 195F EDF1 0933 1002 6396 7C92 5CB3 FA2C 3588 - -- -- 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 from this group, send email to clojure+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: asm-based clojure yet?
If you had a hobbyist interest in representing S-expressions in assembler - then you could take a look at the tutorial written by Abdulaziz Ghuloum called Compilers: Backend to Frontend and Back to Front Again. It used to be available here: http://www.cs.indiana.edu/~aghuloum/compilers-tutorial-2006-09-16.pdf I don't know if it available anywhere else on the internet - but I grabbed another copy and put it here: https://sites.google.com/site/juliangamble/Home/Compilers%20Tutorial%202006-09-16.pdf?attredirects=0d=1 For a more serious representation of Clojure's persistent data structures, I don't recommend trying to implement them in ASM. Cheers Julian On Friday, 17 May 2013 22:06:45 UTC+10, Alan D. Salewski wrote: On Fri, May 17, 2013 at 02:10:02PM +0300, atkaaz spake thus: Ok, weird question: is there some clojure port on assembler yet? Even if(/especially if) it doesn't have jvm/java/javalibs support Or should I just check https://github.com/clojure/clojure-clr ? I'm mainly interested in low memory footprint and fast startup times (does clojure-clr have that?) You may want to check out ClojureScript, too. ClojureScript programs leveraging nodejs for host interop have fast startup times: https://github.com/clojure/clojurescript/wiki -- - a l a n d. s a l e w s k i sale...@att.netjavascript: 1024D/FA2C3588 EDFA 195F EDF1 0933 1002 6396 7C92 5CB3 FA2C 3588 - -- -- 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 from this group, send email to clojure+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: asm-based clojure yet?
Thanks very much everyone! I'm looking into all of those, but currently planning to read Julian's pdf. I didn't want to say anything until I had something definite, but just letting y'all know that I'm considering each recommendation. On Sat, May 18, 2013 at 7:12 AM, Julian juliangam...@gmail.com wrote: If you had a hobbyist interest in representing S-expressions in assembler - then you could take a look at the tutorial written by Abdulaziz Ghuloum called Compilers: Backend to Frontend and Back to Front Again. It used to be available here: http://www.cs.indiana.edu/~aghuloum/compilers-tutorial-2006-09-16.pdf I don't know if it available anywhere else on the internet - but I grabbed another copy and put it here: https://sites.google.com/site/juliangamble/Home/Compilers%20Tutorial%202006-09-16.pdf?attredirects=0d=1 For a more serious representation of Clojure's persistent data structures, I don't recommend trying to implement them in ASM. Cheers Julian On Friday, 17 May 2013 22:06:45 UTC+10, Alan D. Salewski wrote: On Fri, May 17, 2013 at 02:10:02PM +0300, atkaaz spake thus: Ok, weird question: is there some clojure port on assembler yet? Even if(/especially if) it doesn't have jvm/java/javalibs support Or should I just check https://github.com/clojure/**clojure-clrhttps://github.com/clojure/clojure-clr? I'm mainly interested in low memory footprint and fast startup times (does clojure-clr have that?) You may want to check out ClojureScript, too. ClojureScript programs leveraging nodejs for host interop have fast startup times: https://github.com/clojure/**clojurescript/wikihttps://github.com/clojure/clojurescript/wiki -- --**--**- a l a n d. s a l e w s k i sale...@att.net 1024D/FA2C3588 EDFA 195F EDF1 0933 1002 6396 7C92 5CB3 FA2C 3588 --**--**- -- -- 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 from this group, send email to clojure+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- -- 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 from this group, send email to clojure+unsubscr...@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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.