Dear ABCL developers,
did you ever get to look at the make-pathname bug? for i in sbcl ccl clisp scl allegro ecl gclcvs abcl xcl ; do cl-launch -l $i -iw '(make-pathname :directory nil :defaults #p"/home/fare/")' ; done
Also, I'd like to support ABCL in XCVB, and for that I need something more powerful than run-shell-command, since I need to be able to grab the output. I support I could write to a temporary file with a shell redirect, but it's dirty and racy and requires figuring out where the temporary files are to be located.
Could you implement a variant of run-program? It might require some trickery to support both Unix and Windows, but it would be very useful, probably beyond just XCVB.
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] You may easily play a joke on a man who likes to argue — agree with him. — Edgar Waston Howe
On 11 April 2011 16:16, Faré fahree@gmail.com wrote:
Dear ABCL developers, did you ever get to look at the make-pathname bug? for i in sbcl ccl clisp scl allegro ecl gclcvs abcl xcl ; do cl-launch -l $i -iw '(make-pathname :directory nil :defaults #p"/home/fare/")' ; done
Not yet, sorry, I've been extremely busy with off-abcl tasks. I intend to take a look at that problem, as it's related to some pathname matching problems that are on my list.
Could you implement a variant of run-program? It might require some trickery to support both Unix and Windows, but it would be very useful, probably beyond just XCVB.
Seems something worth considering.
On Mon, Apr 11, 2011 at 3:19 PM, Ville Voutilainen ville.voutilainen@gmail.com wrote:
Could you implement a variant of run-program? It might require some trickery to support both Unix and Windows, but it would be very useful, probably beyond just XCVB.
Seems something worth considering.
I can work on it. It should be rather easy using the JVM APIs. Faré, do you have an example of a good Lisp API for this feature?
Peace, Alessio
On 11 April 2011 10:07, Alessio Stalla alessiostalla@gmail.com wrote:
On Mon, Apr 11, 2011 at 3:19 PM, Ville Voutilainen ville.voutilainen@gmail.com wrote:
Could you implement a variant of run-program? It might require some trickery to support both Unix and Windows, but it would be very useful, probably beyond just XCVB.
Seems something worth considering.
I can work on it. It should be rather easy using the JVM APIs. Faré, do you have an example of a good Lisp API for this feature?
I suppose you could copy the API from CCL or SBCL, both of which are reasonably complete, and IIUC, portably implemented on both Windows and Unix at least for CCL. CMUCL and SCL have something similar, too - for good historical reasons. If it makes sense, I'd like also a :directory argument, but that's relatively secondary.
I don't know if it makes sense wrt the underlying JVM API, but another different approach would be to expose posix_spawn - except that its libc implementation seems somewhat broken, so obviously no one is using it too seriously. Libfixposix reimplements it and iolib uses it to build its create-process abstraction that I'm working on refining. I don't know how much sense this makes on Windows or on the JVM API, though. But if you're interested, you should discuss with me and/or Stelian as we're trying to settle on an API for IOLib.
I disrecommend the APIs from Allegro, CLISP, ECL, GCL, Lispworks, XCL.
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] The naturalistic fallacy: "if it's natural, it's good." The anti-naturalistic fallacy: "if it's natural, it's bad." The a-naturalistic fallacy: "nature has no relationship to good and bad."
On 4/11/11 16:19 , Faré wrote:
On 11 April 2011 10:07, Alessio Stallaalessiostalla@gmail.com wrote:
On Mon, Apr 11, 2011 at 3:19 PM, Ville Voutilainen ville.voutilainen@gmail.com wrote:
Could you implement a variant of run-program? It might require some trickery to support both Unix and Windows, but it would be very useful, probably beyond just XCVB.
Seems something worth considering.
I can work on it. It should be rather easy using the JVM APIs. Faré, do you have an example of a good Lisp API for this feature?
I suppose you could copy the API from CCL or SBCL, both of which are reasonably complete, and IIUC, portably implemented on both Windows and Unix at least for CCL. CMUCL and SCL have something similar, too - for good historical reasons. If it makes sense, I'd like also a :directory argument, but that's relatively secondary.
The JVM has reasonably a reasonably complete abstraction in [ProcessBuilder][1] that would be a fairly easy starting point.
[1]: http://download.oracle.com/javase/6/docs/api/java/lang/ProcessBuilder.html
A couple questions after a quick glance through the SBCL documentation for RUN-PROGRAM:
1) How important is the PROCESS structure returned? We can copy that, but don't totally have mappings for all its possible contents (like CORE-DUMP).
2) Can we skip the PTY part? This certainly doesn't have an analog under Windows, and I'm not sure how we would implement "the subprocess is established under a PTY" anyways.
3) Is it ok if STATUS-HOOK is only invoked when the process exits? I can't think of any other meaning for the abstractions available under the PTY.
I don't know if it makes sense wrt the underlying JVM API, but another different approach would be to expose posix_spawn - except that its libc implementation seems somewhat broken, so obviously no one is using it too seriously. Libfixposix reimplements it and iolib uses it to build its create-process abstraction that I'm working on refining. I don't know how much sense this makes on Windows or on the JVM API, though. But if you're interested, you should discuss with me and/or Stelian as we're trying to settle on an API for IOLib.
In the current ABCL implementation, exposing something like posix_spawn is really not the direction we want to go, as there are many different types of JVMs out there, and I would be hard put to see how we could implement this without heavy dependencies on the underlying JVM.
armedbear-devel@common-lisp.net