Hello Helmut,
I found this link on the slime-developer mailing list and I wondered if it is usable and if so, how would I implement it? I don't have a lot of experience fiddling with slime's internals. http://article.gmane.org/gmane.lisp.slime.devel/8378/match=fasl
Is there some other convenient way to set the location for fasl files from within a slime session so that when I do a compile/load, the fasl goes to the same location as the output from asdf. Currently the output from asdf goes to one place, and the output from compile/load goes to my source directory.
I'm looking for a simple function call that would pass a pathname or would return to the default if no pathname was passed or maybe just a variable that I can set from within a slime session that would do the job. I only want this to to happen for some projects and not happen for others that don't yet use asdf.
Thanks,
Paul Bowyer
Here is what I been using for a few years, C-c C-k output goes to the same place as asdf. Note I don't remember why it does this through find-symbol, but I it could be that Slime not always had the *FASL-PATHNAME-FUNCTION* thing, and I wanted it to work on both new and old slime.. You can probably convert find-symbol to defvar or such.
;; Make C-c C-k in SLIME also use the correct directory (let (fasl-finder-sym) (when (and (find-package :swank) (setq fasl-finder-sym (find-symbol "*FASL-PATHNAME-FUNCTION*" :swank)) (null (symbol-value fasl-finder-sym))) (set fasl-finder-sym (lambda (path options) (declare (ignore options)) (let ((fasl-path (asdf:apply-output-translations (compile-file-pathname path)))) (when fasl-path (ensure-directories-exist fasl-path) fasl-path))))))
At Sun, 16 Jun 2013 15:39:38 -0700, Paul Bowyer wrote:
Hello Helmut,
I found this link on the slime-developer mailing list and I wondered if it is usable and if so, how would I implement it? I don't have a lot of experience fiddling with slime's internals. http://article.gmane.org/gmane.lisp.slime.devel/8378/match=fasl
Is there some other convenient way to set the location for fasl files from within a slime session so that when I do a compile/load, the fasl goes to the same location as the output from asdf. Currently the output from asdf goes to one place, and the output from compile/load goes to my source directory.
I'm looking for a simple function call that would pass a pathname or would return to the default if no pathname was passed or maybe just a variable that I can set from within a slime session that would do the job. I only want this to to happen for some projects and not happen for others that don't yet use asdf.
Thanks,
Paul Bowyer
Hello Max,
Thanks for the lisp code. Now I would like to know where you place this code. Is it placed in .emacs or some other place? If it's placed in .emacs, is there a particular location there? The reason I ask is that I tried placing a defun in .emacs and I couldn't get it to work. Sorry for my ignorance...
Sincerely,
Paul Bowyer
On 06/17/2013 08:03 AM, Max Mikhanosha wrote:
Here is what I been using for a few years, C-c C-k output goes to the same place as asdf. Note I don't remember why it does this through find-symbol, but I it could be that Slime not always had the *FASL-PATHNAME-FUNCTION* thing, and I wanted it to work on both new and old slime.. You can probably convert find-symbol to defvar or such.
;; Make C-c C-k in SLIME also use the correct directory (let (fasl-finder-sym) (when (and (find-package :swank) (setq fasl-finder-sym (find-symbol "*FASL-PATHNAME-FUNCTION*" :swank)) (null (symbol-value fasl-finder-sym))) (set fasl-finder-sym (lambda (path options) (declare (ignore options)) (let ((fasl-path (asdf:apply-output-translations (compile-file-pathname path)))) (when fasl-path (ensure-directories-exist fasl-path) fasl-path))))))
At Sun, 16 Jun 2013 15:39:38 -0700, Paul Bowyer wrote:
Hello Helmut,
I found this link on the slime-developer mailing list and I wondered if it is usable and if so, how would I implement it? I don't have a lot of experience fiddling with slime's internals. http://article.gmane.org/gmane.lisp.slime.devel/8378/match=fasl
Is there some other convenient way to set the location for fasl files from within a slime session so that when I do a compile/load, the fasl goes to the same location as the output from asdf. Currently the output from asdf goes to one place, and the output from compile/load goes to my source directory.
I'm looking for a simple function call that would pass a pathname or would return to the default if no pathname was passed or maybe just a variable that I can set from within a slime session that would do the job. I only want this to to happen for some projects and not happen for others that don't yet use asdf.
Thanks,
Paul Bowyer
No this is on Common Lisp side, not the Elisp side, it needs to run after SLIME is already loaded. I have it in a ~/.swank.lisp file, which Slime loads on CommonLisp side when its initializing.
I suggest that you test drive the code to verify that it works for you, you can execute it from REPL without making it permanent.
At Mon, 17 Jun 2013 09:15:17 -0700, Paul Bowyer wrote:
Hello Max,
Thanks for the lisp code. Now I would like to know where you place this code. Is it placed in .emacs or some other place? If it's placed in .emacs, is there a particular location there? The reason I ask is that I tried placing a defun in .emacs and I couldn't get it to work. Sorry for my ignorance...
Sincerely,
Paul Bowyer
On 06/17/2013 08:03 AM, Max Mikhanosha wrote:
Here is what I been using for a few years, C-c C-k output goes to the same place as asdf. Note I don't remember why it does this through find-symbol, but I it could be that Slime not always had the *FASL-PATHNAME-FUNCTION* thing, and I wanted it to work on both new and old slime.. You can probably convert find-symbol to defvar or such.
;; Make C-c C-k in SLIME also use the correct directory (let (fasl-finder-sym) (when (and (find-package :swank) (setq fasl-finder-sym (find-symbol "*FASL-PATHNAME-FUNCTION*" :swank)) (null (symbol-value fasl-finder-sym))) (set fasl-finder-sym (lambda (path options) (declare (ignore options)) (let ((fasl-path (asdf:apply-output-translations (compile-file-pathname path)))) (when fasl-path (ensure-directories-exist fasl-path) fasl-path))))))
At Sun, 16 Jun 2013 15:39:38 -0700, Paul Bowyer wrote:
Hello Helmut,
I found this link on the slime-developer mailing list and I wondered if it is usable and if so, how would I implement it? I don't have a lot of experience fiddling with slime's internals. http://article.gmane.org/gmane.lisp.slime.devel/8378/match=fasl
Is there some other convenient way to set the location for fasl files from within a slime session so that when I do a compile/load, the fasl goes to the same location as the output from asdf. Currently the output from asdf goes to one place, and the output from compile/load goes to my source directory.
I'm looking for a simple function call that would pass a pathname or would return to the default if no pathname was passed or maybe just a variable that I can set from within a slime session that would do the job. I only want this to to happen for some projects and not happen for others that don't yet use asdf.
Thanks,
Paul Bowyer
Hello Max,
I tried the code in *inferior-lisp* and it produced this function #<FUNCTION (LAMBDA (PATH OPTIONS)) {100657C57B}>
I then tried compiling/loading a file, but the fasl still goes in my source directory.
I tried placing the code in ~/.swank.lisp, started emacs/slime, compiled/loaded a file, and still the fasl ends up in my source directory.
Is there some glue code that connect this function to compile-file in slime that might be missing?
By the way, when you email me, I get two messages per mailing.
Sincerely,
Paul Bowyer
On 06/17/2013 09:20 AM, Max Mikhanosha wrote:
No this is on Common Lisp side, not the Elisp side, it needs to run after SLIME is already loaded. I have it in a ~/.swank.lisp file, which Slime loads on CommonLisp side when its initializing.
I suggest that you test drive the code to verify that it works for you, you can execute it from REPL without making it permanent.
At Mon, 17 Jun 2013 09:15:17 -0700, Paul Bowyer wrote:
Hello Max,
Thanks for the lisp code. Now I would like to know where you place this code. Is it placed in .emacs or some other place? If it's placed in .emacs, is there a particular location there? The reason I ask is that I tried placing a defun in .emacs and I couldn't get it to work. Sorry for my ignorance...
Sincerely,
Paul Bowyer
On 06/17/2013 08:03 AM, Max Mikhanosha wrote:
Here is what I been using for a few years, C-c C-k output goes to the same place as asdf. Note I don't remember why it does this through find-symbol, but I it could be that Slime not always had the *FASL-PATHNAME-FUNCTION* thing, and I wanted it to work on both new and old slime.. You can probably convert find-symbol to defvar or such.
;; Make C-c C-k in SLIME also use the correct directory (let (fasl-finder-sym) (when (and (find-package :swank) (setq fasl-finder-sym (find-symbol "*FASL-PATHNAME-FUNCTION*" :swank)) (null (symbol-value fasl-finder-sym))) (set fasl-finder-sym (lambda (path options) (declare (ignore options)) (let ((fasl-path (asdf:apply-output-translations (compile-file-pathname path)))) (when fasl-path (ensure-directories-exist fasl-path) fasl-path))))))
At Sun, 16 Jun 2013 15:39:38 -0700, Paul Bowyer wrote:
Hello Helmut,
I found this link on the slime-developer mailing list and I wondered if it is usable and if so, how would I implement it? I don't have a lot of experience fiddling with slime's internals. http://article.gmane.org/gmane.lisp.slime.devel/8378/match=fasl
Is there some other convenient way to set the location for fasl files from within a slime session so that when I do a compile/load, the fasl goes to the same location as the output from asdf. Currently the output from asdf goes to one place, and the output from compile/load goes to my source directory.
I'm looking for a simple function call that would pass a pathname or would return to the default if no pathname was passed or maybe just a variable that I can set from within a slime session that would do the job. I only want this to to happen for some projects and not happen for others that don't yet use asdf.
Thanks,
Paul Bowyer
Max, nice, thanks! Since I prefer to limit how many files i need to install on each machine I repackaged it to I could put it in my emacs init file: https://gist.github.com/bhyde/5799707
On Jun 17, 2013, at 1:52 PM, Paul Bowyer pbowyer@olynet.com wrote:
Hello Max,
I tried the code in *inferior-lisp* and it produced this function #<FUNCTION (LAMBDA (PATH OPTIONS)) {100657C57B}>
I then tried compiling/loading a file, but the fasl still goes in my source directory.
I tried placing the code in ~/.swank.lisp, started emacs/slime, compiled/loaded a file, and still the fasl ends up in my source directory.
Is there some glue code that connect this function to compile-file in slime that might be missing?
By the way, when you email me, I get two messages per mailing.
Sincerely,
Paul Bowyer
On 06/17/2013 09:20 AM, Max Mikhanosha wrote:
No this is on Common Lisp side, not the Elisp side, it needs to run after SLIME is already loaded. I have it in a ~/.swank.lisp file, which Slime loads on CommonLisp side when its initializing.
I suggest that you test drive the code to verify that it works for you, you can execute it from REPL without making it permanent.
At Mon, 17 Jun 2013 09:15:17 -0700, Paul Bowyer wrote:
Hello Max,
Thanks for the lisp code. Now I would like to know where you place this code. Is it placed in .emacs or some other place? If it's placed in .emacs, is there a particular location there? The reason I ask is that I tried placing a defun in .emacs and I couldn't get it to work. Sorry for my ignorance...
Sincerely,
Paul Bowyer
On 06/17/2013 08:03 AM, Max Mikhanosha wrote:
Here is what I been using for a few years, C-c C-k output goes to the same place as asdf. Note I don't remember why it does this through find-symbol, but I it could be that Slime not always had the *FASL-PATHNAME-FUNCTION* thing, and I wanted it to work on both new and old slime.. You can probably convert find-symbol to defvar or such.
;; Make C-c C-k in SLIME also use the correct directory (let (fasl-finder-sym) (when (and (find-package :swank) (setq fasl-finder-sym (find-symbol "*FASL-PATHNAME-FUNCTION*" :swank)) (null (symbol-value fasl-finder-sym))) (set fasl-finder-sym (lambda (path options) (declare (ignore options)) (let ((fasl-path (asdf:apply-output-translations (compile-file-pathname path)))) (when fasl-path (ensure-directories-exist fasl-path) fasl-path))))))
At Sun, 16 Jun 2013 15:39:38 -0700, Paul Bowyer wrote:
Hello Helmut,
I found this link on the slime-developer mailing list and I wondered if it is usable and if so, how would I implement it? I don't have a lot of experience fiddling with slime's internals. http://article.gmane.org/gmane.lisp.slime.devel/8378/match=fasl
Is there some other convenient way to set the location for fasl files from within a slime session so that when I do a compile/load, the fasl goes to the same location as the output from asdf. Currently the output from asdf goes to one place, and the output from compile/load goes to my source directory.
I'm looking for a simple function call that would pass a pathname or would return to the default if no pathname was passed or maybe just a variable that I can set from within a slime session that would do the job. I only want this to to happen for some projects and not happen for others that don't yet use asdf.
Thanks,
Paul Bowyer
Hello Ben,
At first, I downloaded slime-plz-use-asdf-cache.el and tried to use that in my ~/.emacs file, but that didn't work, so tried following the directions :=) and just used the contents of slime-plz-use-asdf-cache.el in my ~/.emacs file and that worked.
Any lisp file I compile/load is placed in a folder in the asdf fasl location that has the same name as the folder containing the lisp file.
As I've played around with this code, I've come to the realization that Max's code was working also. I just didn't give it enough testing to see.
I have this one lisp file that I use to build the project that I was working on, and the fasl always showed up in my source directory, but that file is the one that calls asdf and it's not in the asdf system file so it never shows up in the asdf fasl location. So I thought Max's code wasn't working, but when I did compile/load with other code, Max's code worked fine.
My apologies Max, for thinking your code wasn't working.
Thanks, Ben, for the code that you put together awhile ago. I find that I have so much to learn that I may never live long enough to learn it.
Sincerely,
Paul Bowyer
On 06/17/2013 12:48 PM, Ben Hyde wrote:
Max, nice, thanks! Since I prefer to limit how many files i need to install on each machine I repackaged it to I could put it in my emacs init file: https://gist.github.com/bhyde/5799707
On Jun 17, 2013, at 1:52 PM, Paul Bowyer <pbowyer@olynet.com mailto:pbowyer@olynet.com> wrote:
Hello Max,
I tried the code in *inferior-lisp* and it produced this function #<FUNCTION (LAMBDA (PATH OPTIONS)) {100657C57B}>
I then tried compiling/loading a file, but the fasl still goes in my source directory.
I tried placing the code in ~/.swank.lisp, started emacs/slime, compiled/loaded a file, and still the fasl ends up in my source directory.
Is there some glue code that connect this function to compile-file in slime that might be missing?
By the way, when you email me, I get two messages per mailing.
Sincerely,
Paul Bowyer
On 06/17/2013 09:20 AM, Max Mikhanosha wrote:
No this is on Common Lisp side, not the Elisp side, it needs to run after SLIME is already loaded. I have it in a ~/.swank.lisp file, which Slime loads on CommonLisp side when its initializing.
I suggest that you test drive the code to verify that it works for you, you can execute it from REPL without making it permanent.
At Mon, 17 Jun 2013 09:15:17 -0700, Paul Bowyer wrote:
Hello Max,
Thanks for the lisp code. Now I would like to know where you place this code. Is it placed in .emacs or some other place? If it's placed in .emacs, is there a particular location there? The reason I ask is that I tried placing a defun in .emacs and I couldn't get it to work. Sorry for my ignorance...
Sincerely,
Paul Bowyer
On 06/17/2013 08:03 AM, Max Mikhanosha wrote:
Here is what I been using for a few years, C-c C-k output goes to the same place as asdf. Note I don't remember why it does this through find-symbol, but I it could be that Slime not always had the *FASL-PATHNAME-FUNCTION* thing, and I wanted it to work on both new and old slime.. You can probably convert find-symbol to defvar or such.
;; Make C-c C-k in SLIME also use the correct directory (let (fasl-finder-sym) (when (and (find-package :swank) (setq fasl-finder-sym (find-symbol "*FASL-PATHNAME-FUNCTION*" :swank)) (null (symbol-value fasl-finder-sym))) (set fasl-finder-sym (lambda (path options) (declare (ignore options)) (let ((fasl-path (asdf:apply-output-translations (compile-file-pathname path)))) (when fasl-path (ensure-directories-exist fasl-path) fasl-path))))))
At Sun, 16 Jun 2013 15:39:38 -0700, Paul Bowyer wrote:
Hello Helmut,
I found this link on the slime-developer mailing list and I wondered if it is usable and if so, how would I implement it? I don't have a lot of experience fiddling with slime's internals. http://article.gmane.org/gmane.lisp.slime.devel/8378/match=fasl
Is there some other convenient way to set the location for fasl files from within a slime session so that when I do a compile/load, the fasl goes to the same location as the output from asdf. Currently the output from asdf goes to one place, and the output from compile/load goes to my source directory.
I'm looking for a simple function call that would pass a pathname or would return to the default if no pathname was passed or maybe just a variable that I can set from within a slime session that would do the job. I only want this to to happen for some projects and not happen for others that don't yet use asdf.
Thanks,
Paul Bowyer
At Mon, 17 Jun 2013 10:52:36 -0700, Paul Bowyer wrote:
Hello Max,
I tried the code in *inferior-lisp* and it produced this function #<FUNCTION (LAMBDA (PATH OPTIONS)) {100657C57B}>
I then tried compiling/loading a file, but the fasl still goes in my source directory.
Well, I have no idea how its possible, how old is your Slime? I suggest trying slime from CVS first.. It seems symbol is there, but its not being called.
If that fails to work, then I'm all out of ideas. It seems to work fine for Ben Hyde.
I tried placing the code in ~/.swank.lisp, started emacs/slime, compiled/loaded a file, and still the fasl ends up in my source directory.
Is there some glue code that connect this function to compile-file in slime that might be missing?
By the way, when you email me, I get two messages per mailing.
My email program automatically does To <person> and Cc: Slime-devel, the usual scenario is that mailing list software is smart enough not to duplicate such emails to the person mentioned in tho To: field, but new common-lisp.net does not seem to do it.
I removed you from To: and this email simply goes to Cc: slime-devel
Regards, Max
Hello Max,
I tried the code than Ben Hyde published and that worked. It took some testing before I discovered that was working though.
As I played around with Ben's code, I came to the realization that your code was working also. I just didn't give it enough testing to see.
I have this one lisp file that I use to build the project that I was working on, and the fasl always showed up in my source directory, but that file is the one that calls asdf and it's not in the asdf system file so it never shows up in the asdf fasl location. So I thought your code wasn't working, but when I did compile/load with other code, your code worked fine.
I've commented out Ben's code in ~/.emacs and I have your code in ~/.slime.lisp and it appears to be working fine.
My apologies Max, for thinking your code wasn't working.
I put much of the above in a message to Ben Hyde, which I CCd you on, so You'll see this again when that mail gets to you.
Sincerely,
Paul Bowyer //
On 06/17/2013 03:57 PM, Max Mikhanosha wrote:
At Mon, 17 Jun 2013 10:52:36 -0700, Paul Bowyer wrote:
Hello Max,
I tried the code in *inferior-lisp* and it produced this function #<FUNCTION (LAMBDA (PATH OPTIONS)) {100657C57B}>
I then tried compiling/loading a file, but the fasl still goes in my source directory.
Well, I have no idea how its possible, how old is your Slime? I suggest trying slime from CVS first.. It seems symbol is there, but its not being called.
If that fails to work, then I'm all out of ideas. It seems to work fine for Ben Hyde.
I tried placing the code in ~/.swank.lisp, started emacs/slime, compiled/loaded a file, and still the fasl ends up in my source directory.
Is there some glue code that connect this function to compile-file in slime that might be missing?
By the way, when you email me, I get two messages per mailing.
My email program automatically does To <person> and Cc: Slime-devel, the usual scenario is that mailing list software is smart enough not to duplicate such emails to the person mentioned in tho To: field, but new common-lisp.net does not seem to do it.
I removed you from To: and this email simply goes to Cc: slime-devel
Regards, Max