Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2017
507
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 28.94 KB | None | 0 0
  1. From mgryan@cruzio.com Tue Feb 15 08:22:03 2011
  2. Return-path: <mgryan@cruzio.com>
  3. Envelope-to: abu@localhost
  4. Delivery-date: Tue, 15 Feb 2011 08:22:03 +0100
  5. Received: from localhost
  6. ([127.0.0.1] helo=software-lab ident=abu)
  7. by software-lab with esmtp (Exim 4.72)
  8. (envelope-from <mgryan@cruzio.com>)
  9. id 1PpFEZ-0005xB-QY
  10. for abu@localhost; Tue, 15 Feb 2011 08:22:03 +0100
  11. X-Envelope-From: <mgryan@cruzio.com>
  12. X-Envelope-To: <abu@software-lab.de>
  13. X-Delivery-Time: 1297754308
  14. X-UID: 96653
  15. X-RZG-CLASS-ID: mi
  16. Received: from post.strato.de [81.169.145.136]
  17. by software-lab with POP3 (fetchmail-6.3.18)
  18. for <abu@localhost> (single-drop); Tue, 15 Feb 2011 08:22:03 +0100 (CET)
  19. Received: from mail.cruzio.com ([63.249.93.182])
  20. by mailin.webmailer.de (ahmed mi91) (RZmta 25.3)
  21. with ESMTP id z0069bn1F76u5e ; Tue, 15 Feb 2011 08:18:28 +0100 (MET)
  22. Received: from avalon.cruzio.com (66-53-121-133.stkn.mdsg-pacwest.com [66.53.121.133])
  23. by mail.cruzio.com with SMTP id p1F7INdF007684;
  24. Mon, 14 Feb 2011 23:18:24 -0800 (PST)
  25. Message-Id: <201102150718.p1F7INdF007684@mail.cruzio.com>
  26. Subject: PicoLISP portability
  27. To: abu@software-lab.de
  28. Received: by avalon.cruzio.com; Mon, 14 Feb 11 23:24 PST
  29. Date: Mon, 14 Feb 2011 23:24:51 -0800 (PST)
  30. From: "Mark Ryan" <mgryan@cruzio.com>
  31. Cc: Josef.Bartl@2bartl.de
  32. X-Mailer: ELM [version 2.5 PL6]
  33. Mime-Version: 1.0
  34. Content-Type: text/plain; charset=us-ascii
  35. Content-Transfer-Encoding: 7bit
  36. Status: RO
  37. X-Status: A
  38. Content-Length: 1297
  39. Lines: 34
  40.  
  41. Hello, Alexander Burger,
  42.  
  43. Thank you for developing PicoLISP and making it available for download.
  44. Have you given any thought to its portability--including to other C
  45. compilers?
  46.  
  47. For software that is supposed to be "small and lightweight"--I was surprised
  48. to find that PicoLISP includes variables of the 64-bit "long long" type.
  49. Is it possible that you are not aware that many embedded devices do not run
  50. on 64-bit processors, or that this type isn't even part of the latest C++ spec?
  51.  
  52. PicoLISP includes various other GNU-isms that prevent it from compiling on
  53. other compilers--even those that are compliant with the latest ANSI-C spec.
  54. For example:
  55.  
  56. "//" end-of-line comments (which are really not part of the C
  57. language--they are part of C++ -- as any student should know)
  58.  
  59. GNU __attribute__ kludge
  60.  
  61. GNU make (not part of either BSD or System V UNIX releases, and
  62. requires itself and gcc to build).
  63.  
  64. Many experienced software developers with many years in the industry would
  65. consider it *unprofessional* to write C code that isn't portable to other
  66. compilers. Just because you and your little net friends all use gcc and
  67. Linux doesn't mean everybody does.
  68.  
  69. Why make people to waste their time going through your code to fix these
  70. amateurish mistakes?
  71.  
  72. Sincerely,
  73.  
  74. Mark Ryan
  75.  
  76. From abu@software-lab.de Tue Feb 15 08:48:08 2011
  77. Return-path: <abu@software-lab.de>
  78. Envelope-to: abu@localhost
  79. Delivery-date: Tue, 15 Feb 2011 08:48:08 +0100
  80. Received: from localhost
  81. ([127.0.0.1] helo=software-lab ident=abu)
  82. by software-lab with esmtp (Exim 4.72)
  83. (envelope-from <abu@software-lab.de>)
  84. id 1PpFdo-00020Y-KR
  85. for abu@localhost; Tue, 15 Feb 2011 08:48:08 +0100
  86. X-Envelope-From: <abu@software-lab.de>
  87. X-Envelope-To: <abu@software-lab.de>
  88. X-Delivery-Time: 1297755899
  89. X-UID: 96657
  90. X-Authentication-Results: mailin.webmailer.de (ahmed mi118) (RZmta 25.3)
  91. header.From=software-lab.de;
  92. dkim=pass
  93. X-RZG-CLASS-ID: mi
  94. Received: from post.strato.de [81.169.145.136]
  95. by software-lab with POP3 (fetchmail-6.3.18)
  96. for <abu@localhost> (single-drop); Tue, 15 Feb 2011 08:48:08 +0100 (CET)
  97. Received: from mo-p00-ob.rzone.de ([81.169.146.162])
  98. by mailin.webmailer.de (ahmed mi118) (RZmta 25.3)
  99. with ESMTP id Z00ba0n1F7L12L ; Tue, 15 Feb 2011 08:44:59 +0100 (MET)
  100. DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; t=1297755899; l=1898;
  101. s=domk; d=software-lab.de;
  102. h=In-Reply-To:Content-Type:MIME-Version:References:Subject:Cc:To:From:
  103. Date:X-RZG-CLASS-ID:X-RZG-AUTH;
  104. bh=7xF1anlITT91YYCedyxPRZYd/VE=;
  105. b=tR8C/tH3GlXkAHmc9Hoo5OJux/8L23kykyfnvgWGTQTIqQRnSFeBoEWCZ1+wFLPk8rj
  106. QbH2HuZ4o5/Ym8PAxbPZfBlRagenkewqCYvoOc3WertHhOTGOnPeXBdlV1bKsESauF3WW
  107. nkeZW7CmTL5xrngqouIIZ2UBDz54aPhtcj4=
  108. X-RZG-AUTH: :LW4RVVOnfesGyS0uS7OMacuCIvMeOzH1j5m4YTwauIPRpwlvJMbL6kUgW2vl99q4Eg==
  109. X-RZG-CLASS-ID: mo00
  110. Received: from software-lab (pd9568a7a.dip0.t-ipconnect.de [217.86.138.122])
  111. by post.strato.de (klopstock mo47) (RZmta 25.5)
  112. with ESMTPA id K05e67n1F6PoN8 ; Tue, 15 Feb 2011 08:44:59 +0100 (MET)
  113. Received: from abu by software-lab with local (Exim 4.72)
  114. (envelope-from <abu@software-lab.de>)
  115. id 1PpFak-0001TP-Uf; Tue, 15 Feb 2011 08:44:58 +0100
  116. Date: Tue, 15 Feb 2011 08:44:58 +0100
  117. From: Alexander Burger <abu@software-lab.de>
  118. To: Mark Ryan <mgryan@cruzio.com>
  119. Cc: Josef.Bartl@2bartl.de
  120. Subject: Re: PicoLISP portability
  121. Message-ID: <20110215074458.GA29615@software-lab.de>
  122. References: <201102150718.p1F7INdF007684@mail.cruzio.com>
  123. MIME-Version: 1.0
  124. Content-Type: text/plain; charset=utf-8
  125. Content-Disposition: inline
  126. In-Reply-To: <201102150718.p1F7INdF007684@mail.cruzio.com>
  127. User-Agent: Mutt/1.5.20 (2009-06-14)
  128. Status: RO
  129. Content-Length: 1857
  130. Lines: 53
  131.  
  132. Hi Mark,
  133.  
  134. thank you for your nice letter.
  135.  
  136. > Have you given any thought to its portability--including to other C
  137. > compilers?
  138.  
  139. No.
  140.  
  141. Though PicoLisp was originally developed on a Mac II in 1988, and at
  142. that time ran on Mac, SCO Unix and MS-DOS, the current version (since
  143. 1999) was intended for Linux ONLY.
  144.  
  145. Why bother about portability of the Language, when you have an OS that
  146. is extremely portable?
  147.  
  148.  
  149. > For software that is supposed to be "small and lightweight"--I was surprised
  150. > to find that PicoLISP includes variables of the 64-bit "long long" type.
  151. > Is it possible that you are not aware that many embedded devices do not run
  152. > on 64-bit processors, or that this type isn't even part of the latest C++ spec?
  153.  
  154. It seems you have no idea about compiler architectures. The 'long long'
  155. type has nothing to do with the processor's word size. It is needed for
  156. intermediate results of multiplications, for example, and is purely a
  157. software issue. Please get a decent compiler!
  158.  
  159. BTW, the 64-bit version of PicoLisp uses 128-bit intermediate values
  160. (directly supported by the processor's mul/div instructions of course).
  161.  
  162.  
  163. > PicoLISP includes various other GNU-isms that prevent it from compiling on
  164. > other compilers--even those that are compliant with the latest ANSI-C spec.
  165.  
  166. See above. The target is Linux, so GNU is no problem.
  167.  
  168.  
  169. > Many experienced software developers with many years in the industry would
  170. > consider it *unprofessional* to write C code that isn't portable to other
  171. > compilers. Just because you and your little net friends all use gcc and
  172. > Linux doesn't mean everybody does.
  173.  
  174. Take a look at the 64-bit version. It doesn't use 'gcc', and even no
  175. C-compiler at all ;-)
  176.  
  177.  
  178. > Why make people to waste their time going through your code to fix these
  179. > amateurish mistakes?
  180.  
  181. Then please keep your fingers off it.
  182.  
  183. Cheers,
  184. - Alex
  185.  
  186. From mgryan@cruzio.com Tue Feb 15 11:55:55 2011
  187. Return-path: <mgryan@cruzio.com>
  188. Envelope-to: abu@localhost
  189. Delivery-date: Tue, 15 Feb 2011 11:55:55 +0100
  190. Received: from localhost
  191. ([127.0.0.1] helo=software-lab ident=abu)
  192. by software-lab with esmtp (Exim 4.72)
  193. (envelope-from <mgryan@cruzio.com>)
  194. id 1PpIZX-0007ul-2P
  195. for abu@localhost; Tue, 15 Feb 2011 11:55:55 +0100
  196. X-Envelope-From: <mgryan@cruzio.com>
  197. X-Envelope-To: <abu@software-lab.de>
  198. X-Delivery-Time: 1297767059
  199. X-UID: 96670
  200. X-RZG-CLASS-ID: mi
  201. Received: from post.strato.de [81.169.145.136]
  202. by software-lab with POP3 (fetchmail-6.3.18)
  203. for <abu@localhost> (single-drop); Tue, 15 Feb 2011 11:55:55 +0100 (CET)
  204. Received: from mail.cruzio.com ([63.249.93.182])
  205. by mailin.webmailer.de (plinge mi36) (RZmta 25.3)
  206. with ESMTP id A05f44n1FAQgmn for <abu@software-lab.de>;
  207. Tue, 15 Feb 2011 11:50:58 +0100 (MET)
  208. Received: from avalon.cruzio.com (66-53-120-126.stkn.mdsg-pacwest.com [66.53.120.126])
  209. by mail.cruzio.com with SMTP id p1FAospY046230
  210. for <@mail.cruzio.com:abu@software-lab.de>; Tue, 15 Feb 2011 02:50:55 -0800 (PST)
  211. Message-Id: <201102151050.p1FAospY046230@mail.cruzio.com>
  212. Subject: Re: PicoLISP portability
  213. To: abu@software-lab.de (Alexander Burger)
  214. Received: by avalon.cruzio.com; Tue, 15 Feb 11 02:36 PST
  215. Date: Tue, 15 Feb 2011 02:36:42 -0800 (PST)
  216. From: "Mark Ryan" <mgryan@cruzio.com>
  217. In-Reply-To: <20110215074458.GA29615@software-lab.de> from "Alexander Burger" at Feb 15, 2011 08:44:58 AM
  218. X-Mailer: ELM [version 2.5 PL6]
  219. Mime-Version: 1.0
  220. Content-Type: text/plain; charset=us-ascii
  221. Content-Transfer-Encoding: 7bit
  222. Status: RO
  223. X-Status: A
  224. Content-Length: 3624
  225. Lines: 96
  226.  
  227. Thanks for the reply. I enjoyed hearing the history of PicoLISP.
  228. It's nice to know that it once ran on real UNIX before you crippled it.
  229.  
  230. Yes, why bother writing portable code when the GNU tools and Linux are
  231. *perfect* for *every* purpose. Why would anyone use anything else?
  232. (That's the sort of "Linux uber alles!" answer I have come to expect.
  233. It merely means the person has no idea what other operating systems do--
  234. and probably thinks that all computers are PCs, Macs, or virtual
  235. machines.)
  236.  
  237. Maybe you should hold off your statement about Linux's portability
  238. until you have personally ported it to a new platform--especially
  239. a non-Intel platform. How the HAL layer? :-)
  240.  
  241. You do not respond at all to the point that "Pico" LISP is not very
  242. suitable for embedded use. I guess that's because it's isn't the
  243. first time you've heard that complaint.
  244.  
  245. If you know of an *efficient* implementation of 64-bit integer type on
  246. a 32-bit register compiler, I'd love to hear about it (and so would
  247. Donald Knuth). At best, it's clunky. Floating point (double or long
  248. double) would be better, since ia32 and some embedded systems have
  249. floating point instructions (or a co-processor). Or you could rewrite
  250. the order of calculations not to require such big intermediate numbers.
  251. If you cared, that is.
  252.  
  253. Oh but I forget: your play book says "efficiency doesn't matter,
  254. embedded sysetms don't matter, C compilers other than GNU don't matter,
  255. operating systems other than Linux don't matter." What really matters,
  256. apparently, is you -- not other people -- certainly not developers.
  257.  
  258. Fortunately, there are many implementations of LISP to chose from.
  259.  
  260. Mark
  261.  
  262. From abu@software-lab.de Tue Feb 15 12:27:23 2011
  263. Return-path: <abu@software-lab.de>
  264. Envelope-to: abu@localhost
  265. Delivery-date: Tue, 15 Feb 2011 12:27:23 +0100
  266. Received: from localhost
  267. ([127.0.0.1] helo=software-lab ident=abu)
  268. by software-lab with esmtp (Exim 4.72)
  269. (envelope-from <abu@software-lab.de>)
  270. id 1PpJ3z-0004if-Qi
  271. for abu@localhost; Tue, 15 Feb 2011 12:27:23 +0100
  272. X-Envelope-From: <abu@software-lab.de>
  273. X-Envelope-To: <abu@software-lab.de>
  274. X-Delivery-Time: 1297769176
  275. X-UID: 96676
  276. X-Authentication-Results: mailin.webmailer.de (bertie mi50) (RZmta 25.3)
  277. header.From=software-lab.de;
  278. dkim=pass
  279. X-RZG-CLASS-ID: mi
  280. Received: from post.strato.de [81.169.145.136]
  281. by software-lab with POP3 (fetchmail-6.3.18)
  282. for <abu@localhost> (single-drop); Tue, 15 Feb 2011 12:27:23 +0100 (CET)
  283. Received: from mo-p00-ob.rzone.de ([81.169.146.160])
  284. by mailin.webmailer.de (bertie mi50) (RZmta 25.3)
  285. with ESMTP id s0637cn1FBE65f for <abu@software-lab.de>;
  286. Tue, 15 Feb 2011 12:26:16 +0100 (MET)
  287. DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; t=1297769176; l=2334;
  288. s=domk; d=software-lab.de;
  289. h=In-Reply-To:Content-Type:MIME-Version:References:Subject:To:From:
  290. Date:X-RZG-CLASS-ID:X-RZG-AUTH;
  291. bh=sKUzl0+72uV+1eLjgCoutiVsNVA=;
  292. b=Qd2WX5DuWnHP7CmMD45bVtweUuqiK7v2CmQ2VZC/2FWo2eDsbe+2hy7XS878oBA5g1I
  293. LFQFmgx0mhQBOm04ihRFT15cqpU323SO1UjihSC4GZRtsdHNZU+ybBrurFZyx11cfU4+d
  294. 5HEI7irE2T2iCb2zTz//VPCkiKGf9ZOz54g=
  295. X-RZG-AUTH: :LW4RVVOnfesGyS0uS7OMacuCIvMeOzH1j5m4YTwauIPRpwlvJMbL6kUgW2vl99q4Eg==
  296. X-RZG-CLASS-ID: mo00
  297. Received: from software-lab (pd9568a7a.dip0.t-ipconnect.de [217.86.138.122])
  298. by post.strato.de (klopstock mo4) (RZmta 25.5)
  299. with ESMTPA id h05c1an1FADCdd ; Tue, 15 Feb 2011 12:26:16 +0100 (MET)
  300. Received: from abu by software-lab with local (Exim 4.72)
  301. (envelope-from <abu@software-lab.de>)
  302. id 1PpJ2t-0004Wi-M4; Tue, 15 Feb 2011 12:26:15 +0100
  303. Date: Tue, 15 Feb 2011 12:26:15 +0100
  304. From: Alexander Burger <abu@software-lab.de>
  305. To: Mark Ryan <mgryan@cruzio.com>
  306. Subject: Re: PicoLISP portability
  307. Message-ID: <20110215112615.GA3215@software-lab.de>
  308. References: <20110215074458.GA29615@software-lab.de>
  309. <201102151050.p1FAospY046230@mail.cruzio.com>
  310. MIME-Version: 1.0
  311. Content-Type: text/plain; charset=utf-8
  312. Content-Disposition: inline
  313. In-Reply-To: <201102151050.p1FAospY046230@mail.cruzio.com>
  314. User-Agent: Mutt/1.5.20 (2009-06-14)
  315. Status: RO
  316. Content-Length: 2275
  317. Lines: 69
  318.  
  319. Hi Mark,
  320.  
  321. what's your problem?
  322.  
  323. > Thanks for the reply. I enjoyed hearing the history of PicoLISP.
  324. > It's nice to know that it once ran on real UNIX before you crippled it.
  325.  
  326. SCO, 20 years ago? Come on!
  327.  
  328.  
  329. > Yes, why bother writing portable code when the GNU tools and Linux are
  330. > *perfect* for *every* purpose. Why would anyone use anything else?
  331.  
  332. I didn't say "perfect". Just pragmatic.
  333.  
  334. Why don't you just accept that there were reasons to target it for a
  335. single architecture? Simplicity!
  336.  
  337. If you don't like it, YOU are free to change it.
  338.  
  339.  
  340. > It merely means the person has no idea what other operating systems do--
  341. > and probably thinks that all computers are PCs, Macs, or virtual
  342. > machines.)
  343.  
  344. Don't talk about things you don't know. I've wire-wrapped computers on
  345. the TTL level in the past, and wrote my own operating systems on them.
  346.  
  347.  
  348. > You do not respond at all to the point that "Pico" LISP is not very
  349. > suitable for embedded use. I guess that's because it's isn't the
  350. > first time you've heard that complaint.
  351.  
  352. No. You are in fact the first who complains.
  353.  
  354. PicoLisp has been used in embedded systems since many years, under
  355. ucLinux and recently OpenWRT.
  356.  
  357.  
  358. > If you know of an *efficient* implementation of 64-bit integer type on
  359. > a 32-bit register compiler, I'd love to hear about it (and so would
  360.  
  361. You still didn't get the point. There is no intensive processing done in
  362. PicoLisp with the double-length data type. You should switch on your
  363. brain and take a look before you ramble. That's less embarrassing.
  364.  
  365. I told you: These are _intermediate_ results, to avoid loss of precision
  366. for multiplications immediately followed by divisions. Any decent CPU
  367. has a double-precision multiplication result after a (machine-level)
  368. 'mul' instruction. If your compiler doesn't take advantage of it, it is
  369. not my fault.
  370.  
  371. Other usages include values which simply don't fit into 32 bits, as the
  372. number of microseconds, or the IDs of database symbols.
  373.  
  374.  
  375. > floating point instructions (or a co-processor). Or you could rewrite
  376. > the order of calculations not to require such big intermediate numbers.
  377. > If you cared, that is.
  378.  
  379. Again: YOU are free to do it.
  380.  
  381.  
  382. > Fortunately, there are many implementations of LISP to chose from.
  383.  
  384. Indeed! Please do so!
  385.  
  386. Sincerely,
  387. - Alex
  388.  
  389. From mgryan@cruzio.com Tue Feb 15 14:37:54 2011
  390. Return-path: <mgryan@cruzio.com>
  391. Envelope-to: abu@localhost
  392. Delivery-date: Tue, 15 Feb 2011 14:37:54 +0100
  393. Received: from localhost
  394. ([127.0.0.1] helo=software-lab ident=abu)
  395. by software-lab with esmtp (Exim 4.72)
  396. (envelope-from <mgryan@cruzio.com>)
  397. id 1PpL6A-0001Vb-3E
  398. for abu@localhost; Tue, 15 Feb 2011 14:37:46 +0100
  399. X-Envelope-From: <mgryan@cruzio.com>
  400. X-Envelope-To: <abu@software-lab.de>
  401. X-Delivery-Time: 1297776975
  402. X-UID: 96688
  403. X-RZG-CLASS-ID: mi
  404. Received: from post.strato.de [81.169.145.136]
  405. by software-lab with POP3 (fetchmail-6.3.18)
  406. for <abu@localhost> (single-drop); Tue, 15 Feb 2011 14:37:46 +0100 (CET)
  407. Received: from mail.cruzio.com ([63.249.93.182])
  408. by mailin.webmailer.de (ahmed mi51) (RZmta 25.3)
  409. with ESMTP id 104a25n1FDKUc4 for <abu@software-lab.de>;
  410. Tue, 15 Feb 2011 14:36:15 +0100 (MET)
  411. Received: from avalon.cruzio.com (67-150-143-106.stkn.mdsg-pacwest.com [67.150.143.106])
  412. by mail.cruzio.com with SMTP id p1FDa9Q2074053
  413. for <@mail.cruzio.com:abu@software-lab.de>; Tue, 15 Feb 2011 05:36:10 -0800 (PST)
  414. Message-Id: <201102151336.p1FDa9Q2074053@mail.cruzio.com>
  415. Subject: Re: PicoLISP portability
  416. To: abu@software-lab.de (Alexander Burger)
  417. Received: by avalon.cruzio.com; Tue, 15 Feb 11 05:41 PST
  418. Date: Tue, 15 Feb 2011 05:41:16 -0800 (PST)
  419. From: "Mark Ryan" <mgryan@cruzio.com>
  420. In-Reply-To: <20110215112615.GA3215@software-lab.de> from "Alexander Burger" at Feb 15, 2011 12:26:15 PM
  421. X-Mailer: ELM [version 2.5 PL6]
  422. Mime-Version: 1.0
  423. Content-Type: text/plain; charset=us-ascii
  424. Content-Transfer-Encoding: 7bit
  425. Status: RO
  426. X-Status: A
  427. Content-Length: 6056
  428. Lines: 149
  429.  
  430. Hi Alex,
  431.  
  432. To wrap this up, let me try to give non-inflamatory reponses to the
  433. points you raised.
  434.  
  435. > Hi Mark,
  436. >
  437. > what's your problem?
  438. >
  439. > > Thanks for the reply. I enjoyed hearing the history of PicoLISP.
  440. > > It's nice to know that it once ran on real UNIX before you crippled it.
  441. >
  442. > SCO, 20 years ago? Come on!
  443.  
  444. Actually, supporting UNIX meant a lot more than just SCO. If PicoLISP
  445. ran on SCO UNIX (SVR3.2-based), then it would probably build and run on
  446. a huge number of SVR3.2 and SVR4-based UNIXes. It might even have been
  447. an easy port to Sun Solaris, which is still being shipped.
  448.  
  449. In any case, at that point, PicoLISP would have been extremely portable.
  450.  
  451. > > Yes, why bother writing portable code when the GNU tools and Linux are
  452. > > *perfect* for *every* purpose. Why would anyone use anything else?
  453. >
  454. > I didn't say "perfect". Just pragmatic.
  455.  
  456. Only if the target machine has a PC-like architecture. That covers
  457. maybe 10% of the computers in use today.
  458.  
  459. And only if the machine's mission resembles a PC's. If you need say,
  460. fault tolerance, or an A-level trusted system, or software interfaces
  461. that don't change all the time, or device driver support from hardware
  462. manufacturers, then you'll have to use a different OS, because Linux
  463. won't do the job.
  464.  
  465. (BTW, I'm writing this on an Orange Book B-level security UNIX system.)
  466.  
  467. > Why don't you just accept that there were reasons to target it for a
  468. > single architecture? Simplicity!
  469.  
  470. It's also simpler to drive down the center of the road. I can accept
  471. that, I just think it's stupid.
  472.  
  473. Why shouldn't an interpreter be portable? It has no hardware dependencies--
  474. unless the programmer introduces them through carelessness or indifference.
  475.  
  476. > If you don't like it, YOU are free to change it.
  477.  
  478. "Hey, I'm not rsponsible for this code, I just maintain it...."
  479. That's like a chef saying--after you've sat down to dinner--"if you
  480. don't like the food, YOU are free to change it." It's an abdication of
  481. responsibility.
  482.  
  483. It's easier for me to just to find some better code.
  484.  
  485. > > It merely means the person has no idea what other operating systems do--
  486. > > and probably thinks that all computers are PCs, Macs, or virtual
  487. > > machines.)
  488. >
  489. > Don't talk about things you don't know. I've wire-wrapped computers on
  490. > the TTL level in the past, and wrote my own operating systems on them.
  491.  
  492. Ah--a toy OS. I'm talking about porting a modern, grown-up OS: hundreds
  493. of thousands of lines of code. You haven't done that or you wouldn't make
  494. such blythe statements about how easily portable Linux is. No mature OS
  495. is easy to port--though some are easier than others.
  496.  
  497. UNIX has been ported to the most platforms of any OS in history, but it
  498. was NOT a simple matter to port it, at least, not after it became capable
  499. and complex (e.g., SMP support, NUMA support, etc). Take it from me.
  500. Even with the "platform support module" interface that USL added to try
  501. make it easier to port SVR4.2 to PC-like systems, it was not easy.
  502. You had to write all the routines to bring up a CPU on the fly, take down
  503. a CPU on the fly, handled the cross-processor interrupt, etc. There
  504. are dozens of kernel-level spin locks to worry about. Fun, but not easy.
  505.  
  506. On a toy OS, when you get it to boot you are essentially done. On a
  507. real OS, like UNIX or Linux, the work has only started. You got to get
  508. it to run efficiently and reliably with different numbers of CPUs,
  509. different amounts of memory, different of concurrent users, different
  510. network load levels, and even different I/O hardware devices and device
  511. drivers.
  512.  
  513. It took YEARS for Linux just to start fully supporting the Intel PC
  514. architecture. The early releases didn't even prioritize interrupts (!).
  515. "Ladies and Gentlemen, for his next trick, Mr. Torvalds will re-invent
  516. the wheel!" Someday he may even get around to inventing the pneumatic
  517. tire.
  518.  
  519. > > You do not respond at all to the point that "Pico" LISP is not very
  520. > > suitable for embedded use. I guess that's because it's isn't the
  521. > > first time you've heard that complaint.
  522. >
  523. > No. You are in fact the first who complains.
  524. >
  525. > PicoLisp has been used in embedded systems since many years, under
  526. > ucLinux and recently OpenWRT.
  527.  
  528. That must have been before you crippled it and stuck in the huge numbers.
  529.  
  530. >
  531. > > If you know of an *efficient* implementation of 64-bit integer type on
  532. > > a 32-bit register compiler, I'd love to hear about it (and so would
  533. >
  534. > You still didn't get the point. There is no intensive processing done in
  535. > PicoLisp with the double-length data type. You should switch on your
  536. > brain and take a look before you ramble. That's less embarrassing.
  537.  
  538. No, you don't get the point: compilers for embedded 16-bit and 32-bit CPUs
  539. don't support 128-bit numbers. It' insane to suggest that they should.
  540. But they might very well want to run LISP.
  541.  
  542. PicoLISP shouldn't be about gcc or Linux, or about Linux-head politics
  543. and hatred for SCO, it should be about *LISP*.
  544.  
  545. > I told you: These are _intermediate_ results, to avoid loss of precision
  546. > for multiplications immediately followed by divisions. Any decent CPU
  547. > has a double-precision multiplication result after a (machine-level)
  548. > 'mul' instruction. If your compiler doesn't take advantage of it, it is
  549. > not my fault.
  550.  
  551. You are assuming every computer has a 64-bit processor.
  552. So tell me...where are you gonna put the chiptop fan in a
  553. digital camara?
  554.  
  555. > Other usages include values which simply don't fit into 32 bits, as the
  556. > number of microseconds, or the IDs of database symbols.
  557.  
  558. Sounds like a design flaw. Interpreters -- and LISP interpreters
  559. in particular -- existed long before 128-bit C types did.
  560.  
  561. >
  562. > > floating point instructions (or a co-processor). Or you could rewrite
  563. > > the order of calculations not to require such big intermediate numbers.
  564. > > If you cared, that is.
  565. >
  566. > Again: YOU are free to do it.
  567. >
  568. >
  569. > > Fortunately, there are many implementations of LISP to chose from.
  570. >
  571. > Indeed! Please do so!
  572. >
  573. > Sincerely,
  574. > - Alex
  575.  
  576. Better luck next time,
  577.  
  578. Mark
  579.  
  580. From abu@software-lab.de Tue Feb 15 15:40:27 2011
  581. Return-path: <abu@software-lab.de>
  582. Envelope-to: abu@localhost
  583. Delivery-date: Tue, 15 Feb 2011 15:40:27 +0100
  584. Received: from localhost
  585. ([127.0.0.1] helo=software-lab ident=abu)
  586. by software-lab with esmtp (Exim 4.72)
  587. (envelope-from <abu@software-lab.de>)
  588. id 1PpM4p-0004CY-2x
  589. for abu@localhost; Tue, 15 Feb 2011 15:40:27 +0100
  590. X-Envelope-From: <abu@software-lab.de>
  591. X-Envelope-To: <abu@software-lab.de>
  592. X-Delivery-Time: 1297780779
  593. X-UID: 96694
  594. X-Authentication-Results: mailin.webmailer.de (blert mi18) (RZmta 25.3)
  595. header.From=software-lab.de;
  596. dkim=pass
  597. X-RZG-CLASS-ID: mi
  598. Received: from post.strato.de [81.169.145.136]
  599. by software-lab with POP3 (fetchmail-6.3.18)
  600. for <abu@localhost> (single-drop); Tue, 15 Feb 2011 15:40:27 +0100 (CET)
  601. Received: from mo-p00-ob.rzone.de ([81.169.146.161])
  602. by mailin.webmailer.de (blert mi18) (RZmta 25.3)
  603. with ESMTP id I03534n1FEOUrc for <abu@software-lab.de>;
  604. Tue, 15 Feb 2011 15:39:39 +0100 (MET)
  605. DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; t=1297780779; l=3915;
  606. s=domk; d=software-lab.de;
  607. h=In-Reply-To:Content-Type:MIME-Version:References:Subject:To:From:
  608. Date:X-RZG-CLASS-ID:X-RZG-AUTH;
  609. bh=DHjcDeCykHoAAP0NzaL9uyBCTvc=;
  610. b=FNGtBNBWKVcPR/2krYcdYtuRBHiTDE7ja+57m3/aPimdra/A6hzq8X3eQTX8Vc6KIYa
  611. gl6srRFNNGpoakd9UO+FHNgJigzev6s2cg+Q4zR+IcQ6AZkdwhLjgIxQ8jrD2jNh71SFs
  612. Vx1WaYOexObi0twy21KTBMe3tUnOTC6BXQw=
  613. X-RZG-AUTH: :LW4RVVOnfesGyS0uS7OMacuCIvMeOzH1j5m4YTwauIPRpwlvJMbL6kUgW2vl99q4Eg==
  614. X-RZG-CLASS-ID: mo00
  615. Received: from software-lab (pd9568a7a.dip0.t-ipconnect.de [217.86.138.122])
  616. by post.strato.de (mrclete mo19) (RZmta 25.5)
  617. with ESMTPA id C06c4dn1FEW0pQ ; Tue, 15 Feb 2011 15:39:37 +0100 (MET)
  618. Received: from abu by software-lab with local (Exim 4.72)
  619. (envelope-from <abu@software-lab.de>)
  620. id 1PpM41-00043F-O2; Tue, 15 Feb 2011 15:39:37 +0100
  621. Date: Tue, 15 Feb 2011 15:39:37 +0100
  622. From: Alexander Burger <abu@software-lab.de>
  623. To: Mark Ryan <mgryan@cruzio.com>
  624. Subject: Re: PicoLISP portability
  625. Message-ID: <20110215143937.GA16369@software-lab.de>
  626. References: <20110215112615.GA3215@software-lab.de>
  627. <201102151336.p1FDa9Q2074053@mail.cruzio.com>
  628. MIME-Version: 1.0
  629. Content-Type: text/plain; charset=utf-8
  630. Content-Disposition: inline
  631. In-Reply-To: <201102151336.p1FDa9Q2074053@mail.cruzio.com>
  632. User-Agent: Mutt/1.5.20 (2009-06-14)
  633. Status: RO
  634. Content-Length: 3838
  635. Lines: 102
  636.  
  637. Hi Mark,
  638.  
  639. > To wrap this up, let me try to give non-inflamatory reponses to the
  640. > points you raised.
  641.  
  642. No problem. I enjoyed our discussion :)
  643.  
  644.  
  645. > Actually, supporting UNIX meant a lot more than just SCO. If PicoLISP
  646. > ran on SCO UNIX (SVR3.2-based), then it would probably build and run on
  647. > a huge number of SVR3.2 and SVR4-based UNIXes. It might even have been
  648. > an easy port to Sun Solaris, which is still being shipped.
  649.  
  650. And also _is_ no problem, afaik.
  651.  
  652. I used it for 5 years in a project under FreeBSD. Other people provided
  653. Makefile modifications for OpenBSD, Mac OS X (Darwin), NetBSD and
  654. Cygwin. I recomend you take a look into the Makefile.
  655.  
  656. Currently I'm in contact with a person in Russia who ports the 64-bit
  657. version go SunOS (Solaris, SunStudio).
  658.  
  659. I myself don't have the resources (and also not the time) to do such
  660. ports.
  661.  
  662.  
  663. > > If you don't like it, YOU are free to change it.
  664. >
  665. > "Hey, I'm not rsponsible for this code, I just maintain it...."
  666. > That's like a chef saying--after you've sat down to dinner--"if you
  667. > don't like the food, YOU are free to change it." It's an abdication of
  668. > responsibility.
  669.  
  670. Now hold on! I'm free to write PicoLisp the way I am convinced of. YOU
  671. cannot demand ANYTHING. Or are you willing to PAY for it?
  672.  
  673. I wrote PicoLisp for my own company, to increase our own productivity.
  674. For practical purposes, and applications we need for our customers.
  675. Database servers for web applications. That's what it is targeted and
  676. optimized for.
  677.  
  678. I released it into the public for anybody who wants to use it. But if
  679. you have additional requirements, it is your problem.
  680.  
  681.  
  682. > such blythe statements about how easily portable Linux is. No mature OS
  683. > is easy to port--though some are easier than others.
  684.  
  685. Please read what I wrote. I never said it is easy. But you can't deny
  686. that Linux is ported to more architectures than any other OS.
  687.  
  688.  
  689. > > PicoLisp has been used in embedded systems since many years, under
  690. > > ucLinux and recently OpenWRT.
  691. >
  692. > That must have been before you crippled it and stuck in the huge numbers.
  693.  
  694. No. These "huge" numbers (!) were there all the time.
  695.  
  696.  
  697. > > > If you know of an *efficient* implementation of 64-bit integer type on
  698. > > > a 32-bit register compiler, I'd love to hear about it (and so would
  699. > >
  700. > > You still didn't get the point. There is no intensive processing done in
  701. > > PicoLisp with the double-length data type. You should switch on your
  702. > > brain and take a look before you ramble. That's less embarrassing.
  703. >
  704. > No, you don't get the point: compilers for embedded 16-bit and 32-bit CPUs
  705. > don't support 128-bit numbers. It' insane to suggest that they should.
  706.  
  707. I didn't say that. I said that each processor has a double-width
  708. multiplication result. That was 16 bits on the 6809 which had a 8-bit
  709. multiplication, 32 bits on the 8086 for its 16-bit multiplication, and
  710. so on.
  711.  
  712. So, yes, PicoLisp uses an 128-bit result on x86-64.
  713.  
  714.  
  715. > PicoLISP shouldn't be about gcc or Linux, or about Linux-head politics
  716. > and hatred for SCO, it should be about *LISP*.
  717.  
  718. Right. But somebody must do it. Either you do it, or we make a contract,
  719. you pay me 80 EUR per hour, and I do it.
  720.  
  721.  
  722. > > I told you: These are _intermediate_ results, to avoid loss of precision
  723. > > for multiplications immediately followed by divisions. Any decent CPU
  724. > > has a double-precision multiplication result after a (machine-level)
  725. > > 'mul' instruction. If your compiler doesn't take advantage of it, it is
  726. > > not my fault.
  727. >
  728. > You are assuming every computer has a 64-bit processor.
  729.  
  730. Sigh.
  731.  
  732. Before PicoLisp, I wrote a Lisp on the Z80 (you probably don't know that
  733. processor, if I consider what you said so far: It is an 8-bit CPU,
  734. probably the most often built processor in history). Even that Lisp used
  735. numbers with up to 127 bytes (yes, that's 1016 bits).
  736.  
  737. Cheers,
  738. - Alex
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement