From ... Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!news.algonet.se!algonet!news.tele.dk!news.tele.dk!small.news.tele.dk!newsfeed1.bredband.com!bredband!uio.no!nntp.uio.no!ifi.uio.no!not-for-mail From: Erik Naggum Newsgroups: comp.lang.lisp Subject: Re: Using Lisp to Call another program in linux? Date: 11 Nov 2002 04:44:33 +0000 Organization: Naggum Software, Oslo, Norway Lines: 45 Message-ID: <3245978673578055@naggum.no> References: <376b0355.0211071729.3278c1da@posting.google.com> <87r8dvutaj.fsf@lackawana.kippona.com> <8gsmya4251.fsf@galapagos.cse.psu.edu> <3245884607279821@naggum.no> <8gpttd4xc8.fsf@galapagos.cse.psu.edu> <20021110111338.C28154@lain.cheme.cmu.edu> <8gfzu93z4j.fsf@galapagos.cse.psu.edu> <20021110192918.G28154@lain.cheme.cmu.edu> <8gk7jk3hau.fsf@galapagos.cse.psu.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: maud.ifi.uio.no 1036989874 3855 129.240.65.203 (11 Nov 2002 04:44:34 GMT) X-Complaints-To: abuse@ifi.uio.no NNTP-Posting-Date: 11 Nov 2002 04:44:34 GMT Mail-Copies-To: never User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 Xref: archiver1.google.com comp.lang.lisp:46269 * Scott Schwartz | They call the real system's library functions "foreign", because they | want to demote and discourage them. Wrong. | In contrast Java implementors call the same functions "native", because | they *are*, and getting access to them is necessary and desirable. But interestingly, what is "native" is a subset of what is "foreign". | Lisp as a language has a lot of nice features. I want those features | without the "lisp is a shell and holds the whole world" baggage. You may be surprised by this, but many of us in the Common Lisp community have been there. I have, for instance, bemoaned the lack of ability to use the entire machine word for integer arithmetic. When I implement various things that need to talk to C or other foreign languages (grin), I am constantly reminded of this very painful difference. I want to write code for algorithms that have been optimized for (expt 2 n) architectures, and I am usually quite unwilling to settle for (1- n), but the performance of most Common Lisp code that works with integers that can be larger than fixnums yet within the machine word range can range from good to abysmal depending on the bignum performance and the randomness of boxing them. I have also found the moronic system call interface in C to be a pain in entire intestine because of the incredible braindamage in the use of small integers for everything. Designing a sensible interface to Unix is not an easy task. The fact that a preprocessor had to be invented to make the code look half decent with those "macros" that turn into magic numbers is quite the extraordinary defeat in language design in my view. If one were to design a Common Lisp look-alike for this interface style, a large number of symbols would have to be made visible to the programmer, not just the compiler, as in C. | After reading lots of Erik Naggum's postings I was inspired to try a full | featured system like common lisp, on the theory that a bigger and more | serious community would translate to better engineering. But alas, not. Well, I take that as a compliment. -- Erik Naggum, Oslo, Norway Act from reason, and failure makes you rethink and study harder. Act from faith, and failure makes you blame someone and push harder.