* Re: member returns list [not found] <mailman.719.1441763081.19560.help-gnu-emacs@gnu.org> @ 2015-09-09 15:03 ` Barry Margolin 2015-09-09 19:44 ` Ted Zlatanov 0 siblings, 1 reply; 76+ messages in thread From: Barry Margolin @ 2015-09-09 15:03 UTC (permalink / raw) To: help-gnu-emacs In article <mailman.719.1441763081.19560.help-gnu-emacs@gnu.org>, Robert Thorpe <rt@robertthorpeconsulting.com> wrote: > "Pascal J. Bourguignon" <pjb@informatimago.com> writes: > > > "Pascal J. Bourguignon" <pjb@informatimago.com> writes: > > > >> Emanuel Berg <embe8573@student.uu.se> writes: > >> > >>> "Pascal J. Bourguignon" <pjb@informatimago.com> > >>> writes: > >>> > >>>> Because each implementation worked on a different > >>>> machine with a different OS (if an OS was available > >>>> at all). > >>> > >>> Yeah, but there were many machines at the time of the > >>> "crazy language" C as well, still, there aren't > >>> a plethora of C dialects. (If you don't count all the > >>> epigone languages that borrowed heavily the syntax > >>> of C.) > >>> > >>> But C is famous for its portability (which also > >>> proliferated Unix) - perhaps the exception that > >>> confirms the rule, that Lisp is cooler than C? > >> > >> It's not exactly the same time period, and not the same kind of > >> machines. > >> > >> Basically, C was running on small machines, that were all the same. > >> After C the micro-processors appeared, and since they were so bad, they > >> soon were optimized to run C code efficiently. > > I don't really agree with Pascal's view. > > Anyway, there were some other reasons why Lisp implementations differed > between machines. As Pascal said, the early Lisp implementations were > on mainframes. Later on people tried to port Lisp to minicomputers and > microcomputers. But, Lisp was already quite complex and it wasn't > possible to fit all the features. So, some of the features got > excluded, and which were excluded varied. This doesn't explain why there were such drastic differences between the mainframe Lisps. Remember that in the 70's, when much of the Lisp evolution was happening, we didn't have the Internet (Arpanet was still in its early days, but there was no WWW yet). The folks at the Stanford, CMU, and MIT AI Laboratories couldn't easily collaborate on a daily basis like they can now. So each group developed their own Lisp dialects, based on the preferences of their developers. It's not really much different from why we now have a profusion of languages for writing web server-side applications: Perl, PHP, Python, Ruby. Different people have different style preferences. -- Barry Margolin, barmar@alum.mit.edu Arlington, MA *** PLEASE post questions in newsgroups, not directly to me *** ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-09 15:03 ` member returns list Barry Margolin @ 2015-09-09 19:44 ` Ted Zlatanov 0 siblings, 0 replies; 76+ messages in thread From: Ted Zlatanov @ 2015-09-09 19:44 UTC (permalink / raw) To: help-gnu-emacs On Wed, 09 Sep 2015 11:03:24 -0400 Barry Margolin <barmar@alum.mit.edu> wrote: BM> It's not really much different from why we now have a profusion of BM> languages for writing web server-side applications: Perl, PHP, Python, BM> Ruby. Different people have different style preferences. (or lack thereof) Ted ^ permalink raw reply [flat|nested] 76+ messages in thread
* To `boundp' or not to `boundp'? @ 2015-09-01 15:50 Alexander Shukaev 2015-09-01 15:51 ` Dmitry Gutov 0 siblings, 1 reply; 76+ messages in thread From: Alexander Shukaev @ 2015-09-01 15:50 UTC (permalink / raw) To: help-gnu-emacs Hello, I often see code like this (when (and (boundp 'xxx-mode) xxx-mode) ...) I personally prefer to do it shorter (when (ignore-errors xxx-mode) ...) Are those equivalent? Are there any pitfalls associated with my approach? Regards, Alexander ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: To `boundp' or not to `boundp'? 2015-09-01 15:50 To `boundp' or not to `boundp'? Alexander Shukaev @ 2015-09-01 15:51 ` Dmitry Gutov [not found] ` <mailman.331.1441125765.19560.help-gnu-emacs@gnu.org> 0 siblings, 1 reply; 76+ messages in thread From: Dmitry Gutov @ 2015-09-01 15:51 UTC (permalink / raw) To: Alexander Shukaev, help-gnu-emacs On 09/01/2015 06:50 PM, Alexander Shukaev wrote: > I often see code like this > > (when (and (boundp 'xxx-mode) xxx-mode) > ...) The "proper" way to do that is to use bound-and-true-p. ^ permalink raw reply [flat|nested] 76+ messages in thread
[parent not found: <mailman.331.1441125765.19560.help-gnu-emacs@gnu.org>]
* Re: To `boundp' or not to `boundp'? [not found] ` <mailman.331.1441125765.19560.help-gnu-emacs@gnu.org> @ 2015-09-01 20:20 ` Barry Margolin 2015-09-01 23:37 ` member returns list (was: Re: To `boundp' or not to `boundp'?) Emanuel Berg 0 siblings, 1 reply; 76+ messages in thread From: Barry Margolin @ 2015-09-01 20:20 UTC (permalink / raw) To: help-gnu-emacs In article <mailman.331.1441125765.19560.help-gnu-emacs@gnu.org>, Drew Adams <drew.adams@oracle.com> wrote: > > > I often see code like this > > > (when (and (boundp 'xxx-mode) xxx-mode) ...) > > > > The "proper" way to do that is to use bound-and-true-p. > > That certainly is *not* proper for the more general case > (and (boundp 'xxx) xxx), where the value of `xxx' is > not necessarily Boolean or is not used only as a Boolean. > > Well, it works the same, but the _name misleads_ terribly > in this case, even if the doc does let you know that the > variable value (not t or nil) is returned, when bound. The name isn't misleading if you use it in a boolean context, like the WHEN call in the OP. It's no more misleading than MEMBER, which intuitively seems like it would just return a boolean, but actually returns the tail of the list where the element was found. -- Barry Margolin, barmar@alum.mit.edu Arlington, MA *** PLEASE post questions in newsgroups, not directly to me *** ^ permalink raw reply [flat|nested] 76+ messages in thread
* member returns list (was: Re: To `boundp' or not to `boundp'?) 2015-09-01 20:20 ` Barry Margolin @ 2015-09-01 23:37 ` Emanuel Berg 2015-09-02 0:10 ` Drew Adams 2015-09-02 16:45 ` Michael Heerdegen 0 siblings, 2 replies; 76+ messages in thread From: Emanuel Berg @ 2015-09-01 23:37 UTC (permalink / raw) To: help-gnu-emacs Barry Margolin <barmar@alum.mit.edu> writes: > ... MEMBER, which intuitively seems like it would > just return a boolean, but actually returns the tail > of the list where the element was found. Yes, and I have wondered about that. Is it useful, perhaps with the use of `car' (?) as in: (car (member 2 '(1 2 3))) ; 2 (car (member 0 '(1 2 3))) ; nil Or is it some "leftover optimization" thing where `cdr' is faster than returning `t', and can be used the same way? Or is it something else? -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
* RE: member returns list (was: Re: To `boundp' or not to `boundp'?) 2015-09-01 23:37 ` member returns list (was: Re: To `boundp' or not to `boundp'?) Emanuel Berg @ 2015-09-02 0:10 ` Drew Adams 2015-09-02 0:27 ` Emanuel Berg 2015-09-02 16:45 ` Michael Heerdegen 1 sibling, 1 reply; 76+ messages in thread From: Drew Adams @ 2015-09-02 0:10 UTC (permalink / raw) To: Emanuel Berg, help-gnu-emacs > Yes, and I have wondered about that. Is it useful, > perhaps with the use of `car' (?) as in: > (car (member 2 '(1 2 3))) ; 2 > (car (member 0 '(1 2 3))) ; nil Yes, extremely useful. > Or is it some "leftover optimization" thing where > `cdr' is faster than returning `t', and can be used > the same way? Or is it something else? No and no. It's an access function, like `assoc' or `elt'. If no such member can be found then it returns nil, which means that it can also function as a simple membership test. ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list (was: Re: To `boundp' or not to `boundp'?) 2015-09-02 0:10 ` Drew Adams @ 2015-09-02 0:27 ` Emanuel Berg 2015-09-02 0:38 ` Drew Adams 0 siblings, 1 reply; 76+ messages in thread From: Emanuel Berg @ 2015-09-02 0:27 UTC (permalink / raw) To: help-gnu-emacs Drew Adams <drew.adams@oracle.com> writes: > If no such member can be found then it returns nil, > which means that it can also function as a simple > membership test. OK then, what does it do when it doesn't function like that? -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
* RE: member returns list (was: Re: To `boundp' or not to `boundp'?) 2015-09-02 0:27 ` Emanuel Berg @ 2015-09-02 0:38 ` Drew Adams [not found] ` <mailman.370.1441156160.19560.help-gnu-emacs@gnu.org> 0 siblings, 1 reply; 76+ messages in thread From: Drew Adams @ 2015-09-02 0:38 UTC (permalink / raw) To: Emanuel Berg, help-gnu-emacs > > If no such member can be found then it returns nil, > > which means that it can also function as a simple > > membership test. > > OK then, what does it do when it doesn't function > like that? I don't understand the question. It always functions the same way. Whether code uses it only to test membership or to access the first tail that corresponds is up to that code. But `member' behaves ("functions") the same. ^ permalink raw reply [flat|nested] 76+ messages in thread
[parent not found: <mailman.370.1441156160.19560.help-gnu-emacs@gnu.org>]
* Re: member returns list [not found] ` <mailman.370.1441156160.19560.help-gnu-emacs@gnu.org> @ 2015-09-03 5:17 ` Pascal J. Bourguignon 2015-09-04 0:26 ` Emanuel Berg 0 siblings, 1 reply; 76+ messages in thread From: Pascal J. Bourguignon @ 2015-09-03 5:17 UTC (permalink / raw) To: help-gnu-emacs Emanuel Berg <embe8573@student.uu.se> writes: > Drew Adams <drew.adams@oracle.com> writes: > >> I don't understand the question. It always functions >> the same way. Whether code uses it only to test >> membership or to access the first tail that >> corresponds is up to that code. But `member' behaves >> ("functions") the same. > > It looks like this: > > (member ELT LIST) > > When is it beneficial to, instead of just getting > a `t' on a hit, to get a list that consists of ELT and > everything eastward of ELT, in LIST? > > The `car' example I provided may look cool (?) but it > isn't anything that cannot be done with "memberp", > because obviously the car is known, otherwise one > wouldn't be able to search for it. But member* is like CL:MEMBER, and take :KEY and :TEST arguments that could make the matched element quite different from the target. (member* 1 '(2 4 6 5 7 9) :test (lambda (a b) (evenp (- a b)))) --> (5 7 9) (member* 3 '(1 4 9 16 25) :key (function sqrt) :test (function =)) --> (9 16 25) An other example: ;; define an order on colors: (defvar *order* '(red orange yellow green blue indigo violet)) (defun le (a b) (member b (member a *order*))) (le 'orange 'blue) --> (blue indigo violet) (le 'orange 'orange) --> (orange yellow green blue indigo violet) (le 'blue 'orange) --> nil Yet another example, not using car, but second: (defun rps-wins-over (a b) (eql b (second (member a '(paper rock scissors paper))))) (rps-wins-over 'scissors 'paper) --> t (rps-wins-over 'paper 'scissors) --> nil Another example: (let ((list '(1 2 3 4 5 6)) (terminator 4)) (ldiff list (member terminator list))) --> (1 2 3) Another example: in the algorith to process include CPP directories, I have a use of member value such as: (let ((include-directories (include-directories kind))) (when (eq directive :include-next) (setf include-directories (cdr (member (context-directory context) include-directories :test (function equal))))) (multiple-value-bind (path directory) (search-file-in-directories include-file include-directories kind directive) (cond ((eq t path) #|done|#) (path (include path directory)) (t (cpp-error …))))) Another example: since member returns the cons cell where the target object is stored, we can update it. For example, when implementing a cache, I used something like: (defun update-cache (name) (let ((sl (member* name *cache* :key 'object-name :test 'string-equal))) (if sl (setf (car sl) new-data) (push new-data *cache*)))) In CL, there's another predicate that returns a very useful value: digit-char-p is specified to return the integer value of the digit character: (digit-char-p #\4) --> 4 (digit-char-p #\!) --> nil In general, in CL, predicates are specified to return _generalized_ booleans, so implementation may return useful values for them too (but it would be non-conforming to take advantage of those "useful" values). -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-03 5:17 ` member returns list Pascal J. Bourguignon @ 2015-09-04 0:26 ` Emanuel Berg 0 siblings, 0 replies; 76+ messages in thread From: Emanuel Berg @ 2015-09-04 0:26 UTC (permalink / raw) To: help-gnu-emacs "Pascal J. Bourguignon" <pjb@informatimago.com> writes: > (defun rps-wins-over (a b) (eql b (second (member > a '(paper rock scissors paper))))) > > (rps-wins-over 'scissors 'paper) --> > t (rps-wins-over 'paper 'scissors) --> nil Good example! -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-01 23:37 ` member returns list (was: Re: To `boundp' or not to `boundp'?) Emanuel Berg 2015-09-02 0:10 ` Drew Adams @ 2015-09-02 16:45 ` Michael Heerdegen 2015-09-02 21:47 ` Emanuel Berg 1 sibling, 1 reply; 76+ messages in thread From: Michael Heerdegen @ 2015-09-02 16:45 UTC (permalink / raw) To: help-gnu-emacs Emanuel Berg <embe8573@student.uu.se> writes: > Or is it something else? The `car' of the result of `member' is the actual element you were searching. Since `member' tests with `equal', that can be a different object. So it can be useful to have access to it. But `member' returns a whole sublist. This gives you also a simple mean to modify a list, like in this example: (let ((list '(1 2 3 4 5))) (let ((list1 (member 3 list))) (when list1 (setcar list1 -3)) list)) ==> (1 2 -3 4 5) Michael. ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-02 16:45 ` Michael Heerdegen @ 2015-09-02 21:47 ` Emanuel Berg 2015-09-02 22:09 ` Michael Heerdegen ` (2 more replies) 0 siblings, 3 replies; 76+ messages in thread From: Emanuel Berg @ 2015-09-02 21:47 UTC (permalink / raw) To: help-gnu-emacs Michael Heerdegen <michael_heerdegen@web.de> writes: > The `car' of the result of `member' is the actual > element you were searching. Since `member' tests > with `equal', that can be a different object. OK, so the `car' is the object, however ELT is searched for with `equal', which compares objects' "structure and contents". An object obviously have the same structure and contents when compared to itself, but nonetheless two objects can have the same structure and contents in what case the `car' and ELT are identical but still two objects. Ha! I'm smart... So then, is there a "member-whatever" that doesn't use `equal' but one of the many other functions available to compare items? Is there a "member" to which you can provide this function yourself? > But `member' returns a whole sublist. This gives you > also a simple mean to modify a list, like in this > example: > > (let ((list '(1 2 3 4 5))) (let ((list1 (member 3 > list))) (when list1 (setcar list1 -3)) list)) > > ==> (1 2 -3 4 5) Yes, already mentioned but true nonetheless. It would be interesting to see what programs you guys write because I never did stuff like that. Perhaps in HPC with tons of data, or old-school batch "data processing", this type of stuff is/was legio? -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-02 21:47 ` Emanuel Berg @ 2015-09-02 22:09 ` Michael Heerdegen 2015-09-02 22:11 ` Drew Adams 2015-09-02 22:13 ` Marcin Borkowski 2 siblings, 0 replies; 76+ messages in thread From: Michael Heerdegen @ 2015-09-02 22:09 UTC (permalink / raw) To: help-gnu-emacs Emanuel Berg <embe8573@student.uu.se> writes: > So then, is there a "member-whatever" that doesn't use > `equal' but one of the many other functions available > to compare items? Is there a "member" to which you can > provide this function yourself? Yes, `cl-member' from "cl-lib" allows to provide arbitrary test predicates via the :test key. Regards, Michael. ^ permalink raw reply [flat|nested] 76+ messages in thread
* RE: member returns list 2015-09-02 21:47 ` Emanuel Berg 2015-09-02 22:09 ` Michael Heerdegen @ 2015-09-02 22:11 ` Drew Adams 2015-09-02 22:13 ` Marcin Borkowski 2 siblings, 0 replies; 76+ messages in thread From: Drew Adams @ 2015-09-02 22:11 UTC (permalink / raw) To: Emanuel Berg, help-gnu-emacs > So then, is there a "member-whatever" that doesn't use > `equal' but one of the many other functions available > to compare items? Is there a "member" to which you can > provide this function yourself? Not sure what you are asking, but: 1. `memq' is the same as `member', but it compares using `eq' instead of `equal'. 2. Common Lisp `member' takes keyword :test, which lets you compare using any comparison predicate you like. The default for :test is `eql'. In Emacs you can get more or less the behavior of Common Lisp `meember' using `cl-member'. So (member x xs) == (cl-member x xs :test #'equal) (memq x xs) == (cl-member x xs :test #'eq) ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-02 21:47 ` Emanuel Berg 2015-09-02 22:09 ` Michael Heerdegen 2015-09-02 22:11 ` Drew Adams @ 2015-09-02 22:13 ` Marcin Borkowski 2015-09-04 1:03 ` Emanuel Berg 2 siblings, 1 reply; 76+ messages in thread From: Marcin Borkowski @ 2015-09-02 22:13 UTC (permalink / raw) To: help-gnu-emacs On 2015-09-02, at 23:47, Emanuel Berg <embe8573@student.uu.se> wrote: > So then, is there a "member-whatever" that doesn't use > `equal' but one of the many other functions available > to compare items? Is there a "member" to which you can > provide this function yourself? memq cl-member Also related: cl-member-if cl-member-if-not Best, -- Marcin Borkowski http://octd.wmi.amu.edu.pl/en/Marcin_Borkowski Faculty of Mathematics and Computer Science Adam Mickiewicz University ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-02 22:13 ` Marcin Borkowski @ 2015-09-04 1:03 ` Emanuel Berg 2015-09-04 6:50 ` Marcin Borkowski [not found] ` <mailman.502.1441349470.19560.help-gnu-emacs@gnu.org> 0 siblings, 2 replies; 76+ messages in thread From: Emanuel Berg @ 2015-09-04 1:03 UTC (permalink / raw) To: help-gnu-emacs Marcin Borkowski <mbork@mbork.pl> writes: > memq Hot! Love Emacs and Lisp inconsistency! -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-04 1:03 ` Emanuel Berg @ 2015-09-04 6:50 ` Marcin Borkowski 2015-09-05 17:35 ` Emanuel Berg [not found] ` <mailman.502.1441349470.19560.help-gnu-emacs@gnu.org> 1 sibling, 1 reply; 76+ messages in thread From: Marcin Borkowski @ 2015-09-04 6:50 UTC (permalink / raw) To: help-gnu-emacs On 2015-09-04, at 03:03, Emanuel Berg <embe8573@student.uu.se> wrote: > Marcin Borkowski <mbork@mbork.pl> writes: > >> memq > > Hot! > > Love Emacs and Lisp inconsistency! assq delq memq rassq remq ...inconsistency? -- Marcin Borkowski http://octd.wmi.amu.edu.pl/en/Marcin_Borkowski Faculty of Mathematics and Computer Science Adam Mickiewicz University ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-04 6:50 ` Marcin Borkowski @ 2015-09-05 17:35 ` Emanuel Berg 2015-09-05 17:55 ` Random832 [not found] ` <mailman.552.1441475739.19560.help-gnu-emacs@gnu.org> 0 siblings, 2 replies; 76+ messages in thread From: Emanuel Berg @ 2015-09-05 17:35 UTC (permalink / raw) To: help-gnu-emacs Marcin Borkowski <mbork@mbork.pl> writes: >> Hot! >> >> Love Emacs and Lisp inconsistency! > > assq delq memq rassq remq > > ...inconsistency? Of course, inconsistency in one direction can be consistent in another. Then those directions are collectively inconsistent with each other, one could say. "Orthogonal" perhaps, in the world of mathematics? If we stick to `member' (using `equal') vs. `memq' (using `eq'), this renaming of those: member-equal member-eq would be seen by some people as more consistent than the actual member memq however such inconsistency is *beneficial* because it makes things stick out more when you read the code, and it is also less error prone as, if you type "member-equal" two times, and then you are to type "member-eq", sometimes you will type "member-equal" just by the motion of it! That would sure be a difficult bug to spot because, again, it looks too much like what it in this case should be, but isn't. This is parallel to one aspect of interface programming. For example an interface presenting physical data. What some people would do is they would arrange the data display logically. The direction and strength of the wind in one corner and the temperature in fahrenheit, celsius, and kelvin in another corner. This is consistent, no doubt, but is it efficient? Not necessarily! If this should be used every day, the most important stuff should be in the middle. We assume this is in the land of honor and heroes, i.e., Northen Europe. Then the celsius should be put in the middle, and the fahrenheit and kelvin can be put wherever, right next to the wind data, for example. But how will then people find it in this inconsistent mess? Because as they use it every day, they will not navigate it by thinking logically. They will quickly learn, and thereafter know, where to look! In a program like Emacs with I don't know how many (?) functions, variables, etc., "learning and navigating" is more difficult than finding data on a display. With completion, it would have been easier for me to find "member-eq" if `memq' was named like that. So there are many aspects of this. As for me, I still prefer the inconsistency for the reasons stated. I'm not in a rush learning and navigating Emacs. Everything, and always, in time! -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-05 17:35 ` Emanuel Berg @ 2015-09-05 17:55 ` Random832 2015-09-05 18:09 ` Emanuel Berg [not found] ` <mailman.552.1441475739.19560.help-gnu-emacs@gnu.org> 1 sibling, 1 reply; 76+ messages in thread From: Random832 @ 2015-09-05 17:55 UTC (permalink / raw) To: help-gnu-emacs Emanuel Berg <embe8573@student.uu.se> writes: > If we stick to `member' (using `equal') vs. `memq' > (using `eq'), this renaming of those: > > member-equal > member-eq > > would be seen by some people as more consistent than > the actual > > member > memq Why not simply eliminate both and have something like (member-test #'eq object list) Or (member-if (lambda (x) (eq object x)) list)? ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-05 17:55 ` Random832 @ 2015-09-05 18:09 ` Emanuel Berg 2015-09-05 21:04 ` Random832 0 siblings, 1 reply; 76+ messages in thread From: Emanuel Berg @ 2015-09-05 18:09 UTC (permalink / raw) To: help-gnu-emacs Random832 <random832@fastmail.com> writes: > Why not simply eliminate both and have something > like > > (member-test #'eq object list) Because that is not more simple but on the contrary more complicated, and it would imply the same data (#'eq) appearing repeatedly in code blocks that qualitatively do the same thing. -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-05 18:09 ` Emanuel Berg @ 2015-09-05 21:04 ` Random832 2015-09-06 2:57 ` Emanuel Berg 0 siblings, 1 reply; 76+ messages in thread From: Random832 @ 2015-09-05 21:04 UTC (permalink / raw) To: help-gnu-emacs Emanuel Berg <embe8573@student.uu.se> writes: > Because that is not more simple but on the contrary > more complicated, and it would imply the same data > (#'eq) appearing repeatedly in code blocks that > qualitatively do the same thing. How is this different from memq itself appearing repeatedly? Or the substring -eq appearing repeatedly in your version in symbols like member-eq and assoc-eq? (Or, for that matter, the letter "q" in the actual ones) - common data to describe common behavior is a feature, not a bug. It's just like using a naming convention, only it makes it possible (and obvious that it is possible) to substitute the comparison function with your own function. It's simpler because instead of having two functions to do two things with no obvious way to do the same thing with anything else, you have one function that can easily discoverably do anything. This would enforce being explicit about what comparison function is used by naming the comparison function no matter what function you are using it in, and not privilege eq and equal over other comparison functions. We have memql but not assql; my version would let you pass eql to anything. CL allows a keyword-argument :test to accomplish this. ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-05 21:04 ` Random832 @ 2015-09-06 2:57 ` Emanuel Berg 0 siblings, 0 replies; 76+ messages in thread From: Emanuel Berg @ 2015-09-06 2:57 UTC (permalink / raw) To: help-gnu-emacs Random832 <random832@fastmail.com> writes: > How is this different from memq itself > appearing repeatedly? `memq' is a function. What should not be repeated is data (in your case the a function passed as an argument). > Or the substring -eq appearing repeatedly in your > version in symbols like member-eq and assoc-eq? Those are not my versions. I made the examples to show how it could look. It doesn't, which is good. > It's just like using a naming convention, only it > makes it possible (and obvious that it is possible) > to substitute the comparison function with your own > function. It's simpler because instead of having two > functions to do two things with no obvious way to do > the same thing with anything else, you have one > function that can easily discoverably do anything. There should be one function that can do everything but common patterns should be factored out into interfaces and/or optimizations. Code shouldn't look like this: (do-this 1 2 3) (do-this 1 2 3) (do-this 1 2 3) But like this: (defun do-the-one-two-three-thing () (do-this 1 2 3) ) (loop repeat 3 do (do-the-one-two-three-thing)) -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
[parent not found: <mailman.552.1441475739.19560.help-gnu-emacs@gnu.org>]
* Re: member returns list [not found] ` <mailman.552.1441475739.19560.help-gnu-emacs@gnu.org> @ 2015-09-05 23:39 ` Pascal J. Bourguignon 2015-09-06 2:46 ` Emanuel Berg [not found] ` <mailman.557.1441507097.19560.help-gnu-emacs@gnu.org> 0 siblings, 2 replies; 76+ messages in thread From: Pascal J. Bourguignon @ 2015-09-05 23:39 UTC (permalink / raw) To: help-gnu-emacs Random832 <random832@fastmail.com> writes: > Emanuel Berg <embe8573@student.uu.se> writes: > >> If we stick to `member' (using `equal') vs. `memq' >> (using `eq'), this renaming of those: >> >> member-equal >> member-eq >> >> would be seen by some people as more consistent than >> the actual >> >> member >> memq > > Why not simply eliminate both and have something like > (member-test #'eq object list) > > Or > (member-if (lambda (x) (eq object x)) list)? There were a lot of variants and propositions, amongst all the lisp dialects. Then starting from 1984, some interested corporations and institutes invested a lot of money (in form of salaries to detached employees), to form a standardization commitee and decide on this all all similar kinds of discrepancies that made porting lisp programs from one lisp to the other a PITA. They worked hard, for ten years. Then money was exhausted, so they finalized an ANSI Common Lisp standard in 1994. Therefore nowadays, you write: (member element list :test (function eql)) (member element list :test (function equal)) (member element list :test (function equalp)) (member element list :test (function your-own-equivalence-relationship)) or member* in emacs lisp since RMS doesn't want to rejoin the common community of lispers… -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-05 23:39 ` Pascal J. Bourguignon @ 2015-09-06 2:46 ` Emanuel Berg 2015-09-09 1:48 ` Robert Thorpe [not found] ` <mailman.557.1441507097.19560.help-gnu-emacs@gnu.org> 1 sibling, 1 reply; 76+ messages in thread From: Emanuel Berg @ 2015-09-06 2:46 UTC (permalink / raw) To: help-gnu-emacs "Pascal J. Bourguignon" <pjb@informatimago.com> writes: > There were a lot of variants and propositions, > amongst all the lisp dialects. What was the reason (were the reasons) for this proliferation of different Lisps, the "Lisp wars"? > Then starting from 1984, some interested > corporations and institutes invested a lot of money > (in form of salaries to detached employees), to form > a standardization commitee and decide on this all > all similar kinds of discrepancies that made porting > lisp programs from one lisp to the other a PITA. > They worked hard, for ten years. Then money was > exhausted, so they finalized an ANSI Common Lisp > standard in 1994. And somewhere around then, the by far best language in the world started to be completely marginalized so that now, when I say it is the language I like the most without competition, either people (now I talk computer people) don't know it or are eyes wide mouth open. > or member* in emacs lisp since RMS doesn't want to > rejoin the common community of lispers What is the story about that? -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-06 2:46 ` Emanuel Berg @ 2015-09-09 1:48 ` Robert Thorpe 2015-09-09 2:44 ` Pascal J. Bourguignon 2015-09-10 0:25 ` Emanuel Berg 0 siblings, 2 replies; 76+ messages in thread From: Robert Thorpe @ 2015-09-09 1:48 UTC (permalink / raw) To: Emanuel Berg; +Cc: help-gnu-emacs Emanuel Berg <embe8573@student.uu.se> writes: >> or member* in emacs lisp since RMS doesn't want to >> rejoin the common community of lispers > > What is the story about that? I think the Common Lisp vs Emacs Lisp debate is fighting the last war. In the past Common Lisp was the only major lisp. Lispers had to use that and learn it. Using Emacs was natural and if a Lisper did then that meant learning Emacs Lisp too. An obvious solution to this was to standardize on Common Lisp for Emacs too. Now though there's Clojure. By the looks of things most new Lisp development is going to be done with Clojure not Common Lisp. There's also Racket, and I expect quite a bit will be done with that. So, switching Emacs to Common Lisp won't help much. BR, Robert Thorpe ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-09 1:48 ` Robert Thorpe @ 2015-09-09 2:44 ` Pascal J. Bourguignon 2015-09-09 3:19 ` John Mastro 2015-09-10 0:25 ` Emanuel Berg 1 sibling, 1 reply; 76+ messages in thread From: Pascal J. Bourguignon @ 2015-09-09 2:44 UTC (permalink / raw) To: help-gnu-emacs Robert Thorpe <rt@robertthorpeconsulting.com> writes: > Emanuel Berg <embe8573@student.uu.se> writes: >>> or member* in emacs lisp since RMS doesn't want to >>> rejoin the common community of lispers >> >> What is the story about that? > > I think the Common Lisp vs Emacs Lisp debate is fighting the last war. > > In the past Common Lisp was the only major lisp. Lispers had to use > that and learn it. Using Emacs was natural and if a Lisper did then > that meant learning Emacs Lisp too. An obvious solution to this was to > standardize on Common Lisp for Emacs too. > > Now though there's Clojure. By the looks of things most new Lisp > development is going to be done with Clojure not Common Lisp. There's > also Racket, and I expect quite a bit will be done with that. So, > switching Emacs to Common Lisp won't help much. I wouldn't bet on it. Clojure is not standardized, it is a proprietary programming language. It would be foolish and irresponsible for a corporation to use it, instead of Common Lisp. -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-09 2:44 ` Pascal J. Bourguignon @ 2015-09-09 3:19 ` John Mastro 0 siblings, 0 replies; 76+ messages in thread From: John Mastro @ 2015-09-09 3:19 UTC (permalink / raw) To: Pascal J. Bourguignon; +Cc: help-gnu-emacs@gnu.org > Clojure is not standardized, it is a proprietary programming language. Clojure is not standardized, true, but it is free software. -- john ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-09 1:48 ` Robert Thorpe 2015-09-09 2:44 ` Pascal J. Bourguignon @ 2015-09-10 0:25 ` Emanuel Berg 1 sibling, 0 replies; 76+ messages in thread From: Emanuel Berg @ 2015-09-10 0:25 UTC (permalink / raw) To: help-gnu-emacs Robert Thorpe <rt@robertthorpeconsulting.com> writes: > I think the Common Lisp vs Emacs Lisp debate is > fighting the last war. > > In the past Common Lisp was the only major lisp. > Lispers had to use that and learn it. Using Emacs > was natural and if a Lisper did then that meant > learning Emacs Lisp too. An obvious solution to this > was to standardize on Common Lisp for Emacs too. > > Now though there's Clojure. By the looks of things > most new Lisp development is going to be done with > Clojure not Common Lisp. There's also Racket, and > I expect quite a bit will be done with that. So, > switching Emacs to Common Lisp won't help much. There is a lot of Lisps going on. Just browse comp.lang.lisp and see. -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
[parent not found: <mailman.557.1441507097.19560.help-gnu-emacs@gnu.org>]
* Re: member returns list [not found] ` <mailman.557.1441507097.19560.help-gnu-emacs@gnu.org> @ 2015-09-06 21:20 ` Pascal J. Bourguignon 2015-09-06 23:33 ` Emanuel Berg ` (2 more replies) 0 siblings, 3 replies; 76+ messages in thread From: Pascal J. Bourguignon @ 2015-09-06 21:20 UTC (permalink / raw) To: help-gnu-emacs Emanuel Berg <embe8573@student.uu.se> writes: > "Pascal J. Bourguignon" <pjb@informatimago.com> > writes: > >> There were a lot of variants and propositions, >> amongst all the lisp dialects. > > What was the reason (were the reasons) for this > proliferation of different Lisps, the "Lisp wars"? Because each implementation worked on a different machine with a different OS (if an OS was available at all). >> Then starting from 1984, some interested >> corporations and institutes invested a lot of money >> (in form of salaries to detached employees), to form >> a standardization commitee and decide on this all >> all similar kinds of discrepancies that made porting >> lisp programs from one lisp to the other a PITA. >> They worked hard, for ten years. Then money was >> exhausted, so they finalized an ANSI Common Lisp >> standard in 1994. > > And somewhere around then, the by far best language in > the world started to be completely marginalized so > that now, when I say it is the language I like the > most without competition, either people (now I talk > computer people) don't know it or are eyes wide > mouth open. > >> or member* in emacs lisp since RMS doesn't want to >> rejoin the common community of lispers > > What is the story about that? Ask him. But basically, he started GNU emacs and designing emacs lisp slightly beforem the CL standardization process started, and it was far from obviouos that it would succeed (it took ten years!). For example, Franz, Inc. switched over to CL only after 1985 and had CL available only in 1986. http://franz.com/about/company.history.lhtml http://emacswiki.org/emacs/EmacsHistory -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-06 21:20 ` Pascal J. Bourguignon @ 2015-09-06 23:33 ` Emanuel Berg [not found] ` <mailman.598.1441581917.19560.help-gnu-emacs@gnu.org> 2015-09-07 2:37 ` Drew Adams 2 siblings, 0 replies; 76+ messages in thread From: Emanuel Berg @ 2015-09-06 23:33 UTC (permalink / raw) To: help-gnu-emacs "Pascal J. Bourguignon" <pjb@informatimago.com> writes: > Because each implementation worked on a different > machine with a different OS (if an OS was available > at all). Yeah, but there were many machines at the time of the "crazy language" C as well, still, there aren't a plethora of C dialects. (If you don't count all the epigone languages that borrowed heavily the syntax of C.) But C is famous for its portability (which also proliferated Unix) - perhaps the exception that confirms the rule, that Lisp is cooler than C? > But basically, he started GNU emacs and designing > emacs lisp slightly beforem the CL standardization > process started, and it was far from obviouos that > it would succeed (it took ten years!). OK, but when it did "succeed", why not then? And, cannot CL be used from Elisp, with explicit notation (actually naming), but nonetheless? I can't say I have a problem with this. As for me, I wouldn't mind one big Lisp which included everything from all sound Lisp dialects. In time, people would still use virtually the same stuff. It would be a de facto standardization. And whenever it wouldn't happen, oh my, people just had to learn more. But one Lisp, one Unix, one Linux distro, etc., It sure has its appeal. In practice I think the diversity/divergence is a strength. Only personally I would never do a new language, a new media player, or a new <something that already exists>. It is just the way of the street. Different people are different, in different ways. -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
[parent not found: <mailman.598.1441581917.19560.help-gnu-emacs@gnu.org>]
* Re: member returns list [not found] ` <mailman.598.1441581917.19560.help-gnu-emacs@gnu.org> @ 2015-09-06 23:47 ` Pascal J. Bourguignon 2015-09-07 1:29 ` Pascal J. Bourguignon 2015-09-07 2:38 ` Drew Adams 0 siblings, 2 replies; 76+ messages in thread From: Pascal J. Bourguignon @ 2015-09-06 23:47 UTC (permalink / raw) To: help-gnu-emacs Emanuel Berg <embe8573@student.uu.se> writes: > "Pascal J. Bourguignon" <pjb@informatimago.com> > writes: > >> Because each implementation worked on a different >> machine with a different OS (if an OS was available >> at all). > > Yeah, but there were many machines at the time of the > "crazy language" C as well, still, there aren't > a plethora of C dialects. (If you don't count all the > epigone languages that borrowed heavily the syntax > of C.) > > But C is famous for its portability (which also > proliferated Unix) - perhaps the exception that > confirms the rule, that Lisp is cooler than C? It's not exactly the same time period, and not the same kind of machines. Basically, C was running on small machines, that were all the same. After C the micro-processors appeared, and since they were so bad, they soon were optimized to run C code efficiently. On the other hand, Lisp was running on mainframes, each with a different kind of processor. Those were machines that could get new instructions each week! Granted, the CADR was a prototype: https://c1.staticflickr.com/5/4040/4456481460_e7ef34f49e_b.jpg so it wouldn't be surprising if it got new instructions hardwired often. But it was also the case on other mainframe, commercially installed. They got upgrades that changed the instructions. Also, a variant of what has already been discussed to death, C syntax is so horrible than you don't dare implement a new parser: you get the grammar from some previous compiler, and you use a parser generator to parse the same. On the other hand, there's no parser in lisp, and you can implement a lisp reader in half a hour. You can implement a running lisp system in an afternoon (remember, EVAL is one page in AIM-8). Basically, you can implement a lisp without having access to an old lisp system, just by hearing about it and having a little light bulb going tilt in your head. Not so with C. >> But basically, he started GNU emacs and designing >> emacs lisp slightly beforem the CL standardization >> process started, and it was far from obviouos that >> it would succeed (it took ten years!). > > OK, but when it did "succeed", why not then? It would have been too much work for a single programmer, and he probably already had a lot of users writing emacs lisp code like crazy demons. > And, cannot CL be used from Elisp, with explicit > notation (actually naming), but nonetheless? Yes. There's emacs-cl. But it bit-rotted on the passage from emacs 23 to 24 with lexical binding. -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-06 23:47 ` Pascal J. Bourguignon @ 2015-09-07 1:29 ` Pascal J. Bourguignon 2015-09-07 2:25 ` Emanuel Berg 2015-09-09 1:44 ` Robert Thorpe 2015-09-07 2:38 ` Drew Adams 1 sibling, 2 replies; 76+ messages in thread From: Pascal J. Bourguignon @ 2015-09-07 1:29 UTC (permalink / raw) To: help-gnu-emacs "Pascal J. Bourguignon" <pjb@informatimago.com> writes: > Emanuel Berg <embe8573@student.uu.se> writes: > >> "Pascal J. Bourguignon" <pjb@informatimago.com> >> writes: >> >>> Because each implementation worked on a different >>> machine with a different OS (if an OS was available >>> at all). >> >> Yeah, but there were many machines at the time of the >> "crazy language" C as well, still, there aren't >> a plethora of C dialects. (If you don't count all the >> epigone languages that borrowed heavily the syntax >> of C.) >> >> But C is famous for its portability (which also >> proliferated Unix) - perhaps the exception that >> confirms the rule, that Lisp is cooler than C? > > It's not exactly the same time period, and not the same kind of > machines. > > Basically, C was running on small machines, that were all the same. > After C the micro-processors appeared, and since they were so bad, they > soon were optimized to run C code efficiently. > > On the other hand, Lisp was running on mainframes, each with a different > kind of processor. Those were machines that could get new instructions > each week! > > Granted, the CADR was a prototype: > https://c1.staticflickr.com/5/4040/4456481460_e7ef34f49e_b.jpg > so it wouldn't be surprising if it got new instructions hardwired often. > But it was also the case on other mainframe, commercially > installed. They got upgrades that changed the instructions. > > > Also, a variant of what has already been discussed to death, C syntax is > so horrible than you don't dare implement a new parser: you get the > grammar from some previous compiler, and you use a parser generator to > parse the same. On the other hand, there's no parser in lisp, and you > can implement a lisp reader in half a hour. You can implement a running > lisp system in an afternoon (remember, EVAL is one page in AIM-8). > > Basically, you can implement a lisp without having access to an old lisp > system, just by hearing about it and having a little light bulb going > tilt in your head. > > Not so with C. Also, an important part was that C is such a bad language, that the only reason to implement it, is not to write new programs, but to run old programs like the unix system, so there's an insentive to make compilers that implement the same language over and over. On the other hand, the reason to use lisp was to invent new kinds of programs that have never been done so far, so there were less a reason why to keep the same language. Nowadays the situation is a little different. While it's still possible to invent new kinds of programs (and programming paradygms), with Common Lisp, people also want to be able to use libraries and reuse old code. Hence the standardization. -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-07 1:29 ` Pascal J. Bourguignon @ 2015-09-07 2:25 ` Emanuel Berg 2015-09-09 1:44 ` Robert Thorpe 1 sibling, 0 replies; 76+ messages in thread From: Emanuel Berg @ 2015-09-07 2:25 UTC (permalink / raw) To: help-gnu-emacs "Pascal J. Bourguignon" <pjb@informatimago.com> writes: > On the other hand, the reason to use lisp was to > invent new kinds of programs that have never been > done so far, so there were less a reason why to keep > the same language. With the dialects, I don't see new things, I see basically the same thing over and over with some small differences that do not motivate redoing it each time. But, if it is as simple as you say, they activity itself may be the reward for doing it, so do it, by all means. > Nowadays the situation is a little different. > While it's still possible to invent new kinds of > programs (and programming paradygms), with Common > Lisp, people also want to be able to use libraries > and reuse old code. Hence the standardization. What I can see, programming is dead. There are a bunch of computer people that have everything they need. Nothing new to do there. Then there are the masses which must be fooled to consume inferior things which they actually are not benefited from at all. If you don't want to do that there really is nothing to do. This is why I abandoned it. The reason I'm still here to some extent is I still want to learn more and perhaps someday the state will change tho I'm not positive it will happen... -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-07 1:29 ` Pascal J. Bourguignon 2015-09-07 2:25 ` Emanuel Berg @ 2015-09-09 1:44 ` Robert Thorpe 2015-09-10 0:23 ` Emanuel Berg [not found] ` <mailman.793.1441844665.19560.help-gnu-emacs@gnu.org> 1 sibling, 2 replies; 76+ messages in thread From: Robert Thorpe @ 2015-09-09 1:44 UTC (permalink / raw) To: Pascal J. Bourguignon; +Cc: help-gnu-emacs "Pascal J. Bourguignon" <pjb@informatimago.com> writes: > "Pascal J. Bourguignon" <pjb@informatimago.com> writes: > >> Emanuel Berg <embe8573@student.uu.se> writes: >> >>> "Pascal J. Bourguignon" <pjb@informatimago.com> >>> writes: >>> >>>> Because each implementation worked on a different >>>> machine with a different OS (if an OS was available >>>> at all). >>> >>> Yeah, but there were many machines at the time of the >>> "crazy language" C as well, still, there aren't >>> a plethora of C dialects. (If you don't count all the >>> epigone languages that borrowed heavily the syntax >>> of C.) >>> >>> But C is famous for its portability (which also >>> proliferated Unix) - perhaps the exception that >>> confirms the rule, that Lisp is cooler than C? >> >> It's not exactly the same time period, and not the same kind of >> machines. >> >> Basically, C was running on small machines, that were all the same. >> After C the micro-processors appeared, and since they were so bad, they >> soon were optimized to run C code efficiently. I don't really agree with Pascal's view. Anyway, there were some other reasons why Lisp implementations differed between machines. As Pascal said, the early Lisp implementations were on mainframes. Later on people tried to port Lisp to minicomputers and microcomputers. But, Lisp was already quite complex and it wasn't possible to fit all the features. So, some of the features got excluded, and which were excluded varied. Pascal criticizes early micro-processors for being bad. But, to those who used them it was often a choice of micro-processor or no processors at all. In that situation compile-only languages with a strong emphasis on efficiency (such as C) were the natural choice. We're all in a different situation now. BR, Robert Thorpe ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-09 1:44 ` Robert Thorpe @ 2015-09-10 0:23 ` Emanuel Berg [not found] ` <mailman.793.1441844665.19560.help-gnu-emacs@gnu.org> 1 sibling, 0 replies; 76+ messages in thread From: Emanuel Berg @ 2015-09-10 0:23 UTC (permalink / raw) To: help-gnu-emacs Robert Thorpe <rt@robertthorpeconsulting.com> writes: > Pascal criticizes early micro-processors for being > bad. But, to those who used them it was often > a choice of micro-processor or no processors at all. > In that situation compile-only languages with > a strong emphasis on efficiency (such as C) were the > natural choice. We're all in a different > situation now. I'm on Linux which is a C implementation of the UNIX C. I use the GNU implementation of the UNIX toolchain - all C (almost). Emacs is C (with Lisp on top of it). Apart from that I use zsh - C. And so on! Feel free to verify this with your most basic tools (e.g., ls(1)) - and up and until the superstar applications: Emacs, the shell, and so on! Try the command "get-command-source" from http://user.it.uu.se/~embe8573/conf/.zsh/apt to get the source just by feeding command names (e.g., 'get-command-source ls' for ls). I prefer Lisp for several reasons: it is more advanced, no (re)compilation while debugging, no or much less bulky type work, the code gets more modular, no bulky header file work, much less error prone (no pointers and stuff like that), etc. etc. But that doesn't mean C is as bad as described. If I would use a compiled language for an application that needed it, I would use either C or C++. Those are just different mindsets than Lisp. I know from experience that Lisp, C++, and shell programming can be a killer combo in one and the same project. It all matters how you use them. If you do crazy OO inheritance stuff etc. in C++ then of course "C++" sucks. Stupid is as stupid does. It is not about that. -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
[parent not found: <mailman.793.1441844665.19560.help-gnu-emacs@gnu.org>]
* Re: member returns list [not found] ` <mailman.793.1441844665.19560.help-gnu-emacs@gnu.org> @ 2015-09-10 2:01 ` Pascal J. Bourguignon 2015-09-10 2:32 ` Emanuel Berg [not found] ` <mailman.797.1441852386.19560.help-gnu-emacs@gnu.org> 0 siblings, 2 replies; 76+ messages in thread From: Pascal J. Bourguignon @ 2015-09-10 2:01 UTC (permalink / raw) To: help-gnu-emacs Emanuel Berg <embe8573@student.uu.se> writes: > I prefer Lisp for several reasons > But that doesn't mean C is as bad as described. Somebody is in need of reading the Unix Hater Handbook. http://web.mit.edu/simsong/www/ugh.pdf -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-10 2:01 ` Pascal J. Bourguignon @ 2015-09-10 2:32 ` Emanuel Berg [not found] ` <ECCA0E56-A051-4D38-8CBB-6CE9208BB047@openmailbox.org> [not found] ` <mailman.797.1441852386.19560.help-gnu-emacs@gnu.org> 1 sibling, 1 reply; 76+ messages in thread From: Emanuel Berg @ 2015-09-10 2:32 UTC (permalink / raw) To: help-gnu-emacs "Pascal J. Bourguignon" <pjb@informatimago.com> writes: >> I prefer Lisp for several reasons ... But that >> doesn't mean C is as bad as described. > > Somebody is in need of reading the Unix Hater > Handbook. http://web.mit.edu/simsong/www/ugh.pdf Ha ha, curse me for a servo-droid! Actually I love when you suggest books, especially when they are self-contained PDFs which can be printed free of charge. (Thanks to Drew for the history book while I'm at it.) Why don't you do a Lisp OS with Lisp-only software? Are there any particularly impressive Lisp programs I can try? A window manager, for example? -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
[parent not found: <ECCA0E56-A051-4D38-8CBB-6CE9208BB047@openmailbox.org>]
* Re: member returns list [not found] ` <ECCA0E56-A051-4D38-8CBB-6CE9208BB047@openmailbox.org> @ 2015-09-11 1:32 ` Emanuel Berg 2015-09-11 1:46 ` Emanuel Berg 0 siblings, 1 reply; 76+ messages in thread From: Emanuel Berg @ 2015-09-11 1:32 UTC (permalink / raw) To: help-gnu-emacs Valentijn <valentijn@openmailbox.org> writes: > I know of four Window Managers made in Lisp and all > of them are super interesting. You've Common Lisp > FullScreen Window Manager, Sawfish, Stumpwm, and > exwm sawfish and stumpwm has been mentioned. exwm isn't in my repos. There is one "clfswm" which I'll try next. -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-11 1:32 ` Emanuel Berg @ 2015-09-11 1:46 ` Emanuel Berg 0 siblings, 0 replies; 76+ messages in thread From: Emanuel Berg @ 2015-09-11 1:46 UTC (permalink / raw) To: help-gnu-emacs Emanuel Berg <embe8573@student.uu.se> writes: >> I know of four Window Managers made in Lisp and all >> of them are super interesting. You've Common Lisp >> FullScreen Window Manager, Sawfish, Stumpwm, and >> exwm > > sawfish and stumpwm has been mentioned. exwm isn't > in my repos. There is one "clfswm" which I'll > try next. clfswm has the same issues I saw with stumpwm (except for the error messages). So much for the "fullscreen" stuff, eh? -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
[parent not found: <mailman.797.1441852386.19560.help-gnu-emacs@gnu.org>]
* Re: member returns list [not found] ` <mailman.797.1441852386.19560.help-gnu-emacs@gnu.org> @ 2015-09-10 4:21 ` Pascal J. Bourguignon 2015-09-10 18:09 ` Alex Kost ` (2 more replies) 0 siblings, 3 replies; 76+ messages in thread From: Pascal J. Bourguignon @ 2015-09-10 4:21 UTC (permalink / raw) To: help-gnu-emacs Emanuel Berg <embe8573@student.uu.se> writes: > Why don't you do a Lisp OS with Lisp-only software? Time. Money. > Are there any particularly impressive Lisp programs > I can try? A window manager, for example? Indeed, there is stumpwm. There are a lot of CL servers and applications, it would only take time to integrate them into a system with some kind of kernel (eg. a Linux kernel, for the drivers), writing a init(1) in lisp. But I would expect that it would take more time to polish the result into a really usable system. I'd bet on having the first integration done would motivate people to polish it. On the other hand, there's also Mezzano if you want to try a recent LispOS written in CL. -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-10 4:21 ` Pascal J. Bourguignon @ 2015-09-10 18:09 ` Alex Kost 2015-09-11 1:01 ` Random832 2015-09-11 1:03 ` Emanuel Berg 2015-09-11 0:57 ` Emanuel Berg [not found] ` <mailman.884.1441933051.19560.help-gnu-emacs@gnu.org> 2 siblings, 2 replies; 76+ messages in thread From: Alex Kost @ 2015-09-10 18:09 UTC (permalink / raw) To: help-gnu-emacs Pascal J. Bourguignon (2015-09-10 07:21 +0300) wrote: > Emanuel Berg <embe8573@student.uu.se> writes: > >> Why don't you do a Lisp OS with Lisp-only software? > > Time. Money. > >> Are there any particularly impressive Lisp programs >> I can try? A window manager, for example? > > Indeed, there is stumpwm. If Scheme is Lispy enough for you, then there is also guile-wm [1]. > There are a lot of CL servers and applications, it would only take time > to integrate them into a system with some kind of kernel (eg. a Linux > kernel, for the drivers), writing a init(1) in lisp. > > But I would expect that it would take more time to polish the result > into a really usable system. I'd bet on having the first integration > done would motivate people to polish it. > > On the other hand, there's also Mezzano if you want to try a recent > LispOS written in CL. As for the operating system, there is "Guix System Distribution" [2] which is based on Guile. It uses dmd as its init system (also written in Guile). You can also try Guix package manager on your current system; it will not interfere with the package manager of your system. I would say it's a very "impressive Lisp program". [1] https://github.com/mwitmer/guile-wm [2] https://www.gnu.org/software/guix -- Alex ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-10 18:09 ` Alex Kost @ 2015-09-11 1:01 ` Random832 2015-09-11 1:28 ` Emanuel Berg 2015-09-11 1:03 ` Emanuel Berg 1 sibling, 1 reply; 76+ messages in thread From: Random832 @ 2015-09-11 1:01 UTC (permalink / raw) To: help-gnu-emacs Alex Kost <alezost@gmail.com> writes: > Pascal J. Bourguignon (2015-09-10 07:21 +0300) wrote: >> Emanuel Berg <embe8573@student.uu.se> writes: >> Indeed, there is stumpwm. > > If Scheme is Lispy enough for you, then there is also guile-wm [1]. And a discussion of Lisp-dialect-based window managers isn't complete without mentioning Sawfish, which was briefly the default GNOME window manager. It is built on something called "Librep", which is described as a cross between elisp and scheme. ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-11 1:01 ` Random832 @ 2015-09-11 1:28 ` Emanuel Berg 2015-09-11 2:01 ` Emanuel Berg ` (2 more replies) 0 siblings, 3 replies; 76+ messages in thread From: Emanuel Berg @ 2015-09-11 1:28 UTC (permalink / raw) To: help-gnu-emacs Random832 <random832@fastmail.com> writes: > And a discussion of Lisp-dialect-based window > managers isn't complete without mentioning Sawfish, > which was briefly the default GNOME window manager. > It is built on something called "Librep", which is > described as a cross between elisp and scheme. Both stumpwm and sawfish install with no problems and executes fine by just putting either of stumpwm & sawfish & in ~/.xinitrc - however stumpwm doesn't come with the familiar M-TAB application menu by default. sawfish does, tho the menu doesn't look as nice as with openbox (which is in C, by the way). But sawfish in one way does this better than openbox, as it doesn't highlight the to-be-focused window when you iterate the menu with an annoying border. If I can find a better looking theme for sawfish, or edit it by hand, I'll take it. stumpwm also outputs lots of error messages. stumpwm also doesn't give focus to the one fullscreened window unless the mouse pointer is over it; this can be solved by DISPLAY=:0 xdotool mousemove 0 0 tho then you have to live with the annoying pointer being visible until you start typing. -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-11 1:28 ` Emanuel Berg @ 2015-09-11 2:01 ` Emanuel Berg 2015-09-11 2:52 ` Random832 [not found] ` <mailman.890.1441936900.19560.help-gnu-emacs@gnu.org> 2015-09-11 2:37 ` Ian Zimmerman 2 siblings, 1 reply; 76+ messages in thread From: Emanuel Berg @ 2015-09-11 2:01 UTC (permalink / raw) To: help-gnu-emacs Emanuel Berg <embe8573@student.uu.se> writes: > stumpwm doesn't come with the familiar M-TAB > application menu by default. > > sawfish does, tho the menu doesn't look as nice as > with openbox (which is in C, by the way). I take that back. sawfish doesn't have a menu - one can only switch from one window to the next with M-TAB. Also, with several windows doing mplayer, this implies a graphic bug when you switch. So far the Lisp WM experience has left me unimpressed. -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-11 2:01 ` Emanuel Berg @ 2015-09-11 2:52 ` Random832 0 siblings, 0 replies; 76+ messages in thread From: Random832 @ 2015-09-11 2:52 UTC (permalink / raw) To: help-gnu-emacs Emanuel Berg <embe8573@student.uu.se> writes: > I take that back. sawfish doesn't have a menu I can't test it now, but it looks like Super-Tab and C-Tab are mapped by default to something called "cabinet-switch" that looks promising. ^ permalink raw reply [flat|nested] 76+ messages in thread
[parent not found: <mailman.890.1441936900.19560.help-gnu-emacs@gnu.org>]
* Re: member returns list [not found] ` <mailman.890.1441936900.19560.help-gnu-emacs@gnu.org> @ 2015-09-11 2:27 ` Pascal J. Bourguignon 2015-09-12 0:10 ` Emanuel Berg 0 siblings, 1 reply; 76+ messages in thread From: Pascal J. Bourguignon @ 2015-09-11 2:27 UTC (permalink / raw) To: help-gnu-emacs Emanuel Berg <embe8573@student.uu.se> writes: > Emanuel Berg <embe8573@student.uu.se> writes: > >> stumpwm doesn't come with the familiar M-TAB >> application menu by default. >> >> sawfish does, tho the menu doesn't look as nice as >> with openbox (which is in C, by the way). > > I take that back. sawfish doesn't have a menu - one > can only switch from one window to the next with > M-TAB. Also, with several windows doing mplayer, this > implies a graphic bug when you switch. > > So far the Lisp WM experience has left me unimpressed. Then you are unimpressed by yourself. The point of those, of course, is to let the user (ie. yourself) be programming in Common Lisp the window manager to suit your taste, just like you do in GNU emacs. -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-11 2:27 ` Pascal J. Bourguignon @ 2015-09-12 0:10 ` Emanuel Berg 0 siblings, 0 replies; 76+ messages in thread From: Emanuel Berg @ 2015-09-12 0:10 UTC (permalink / raw) To: help-gnu-emacs "Pascal J. Bourguignon" <pjb@informatimago.com> writes: > Then you are unimpressed by yourself. The point of > those, of course, is to let the user (ie. yourself) > be programming in Common Lisp the window manager to > suit your taste, just like you do in GNU emacs. Not exactly like I do in GNU Emacs! Here, the application is a hybrid between general things that are the same everywhere and specific things (the modes) that relate to a certain task. Even so, stuff you set up for a specific mode are easily transferred to another mode, if that should be called for, as configuration is done the same way everywhere. So the reward and result from configuration can be big, while the effort doing it is small and enjoyable, because of the Elisp familiarity and the "Emacs to improve Emacs" method. Because them WMs are in Lisp with a Lisp dynamic interpreter, I'd say they are much better off with respect to this than say a WM in C which would have to be recompiled for each change. Still, I don't use a WM that much to make it worthwhile, so I might as well use the WM which is to the best of my liking the first time I start it, and that is currently Openbox which, again, is in C, and there is nothing wrong with that. This whole discussion tho showed to anyone who didn't know that yes, there are WMs in Lisp. -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-11 1:28 ` Emanuel Berg 2015-09-11 2:01 ` Emanuel Berg [not found] ` <mailman.890.1441936900.19560.help-gnu-emacs@gnu.org> @ 2015-09-11 2:37 ` Ian Zimmerman 2 siblings, 0 replies; 76+ messages in thread From: Ian Zimmerman @ 2015-09-11 2:37 UTC (permalink / raw) To: help-gnu-emacs On 2015-09-11 03:28 +0200, Emanuel Berg wrote: > But sawfish in one way does this better than openbox, > as it doesn't highlight the to-be-focused window when > you iterate the menu with an annoying border. This is totally configurable. Just read the example commented config file for openbox. I used sawfish before I switched to openbox, btw. Then I was torn between the two for a while until I stole the sawfish new window placement algorithm and ported it to openbox [1]. Then the maintainers made the mistake of making it the default, causing every Tom, Dick & Harry to request the old broken behavior, but that's another story. [1] https://github.com/danakj/openbox/commits/master/openbox/place_overlap.c -- Please *no* private copies of mailing list or newsgroup messages. Rule 420: All persons more than eight miles high to leave the court. ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-10 18:09 ` Alex Kost 2015-09-11 1:01 ` Random832 @ 2015-09-11 1:03 ` Emanuel Berg 1 sibling, 0 replies; 76+ messages in thread From: Emanuel Berg @ 2015-09-11 1:03 UTC (permalink / raw) To: help-gnu-emacs Alex Kost <alezost@gmail.com> writes: > As for the operating system, there is "Guix System > Distribution" [2] which is based on Guile. It uses > dmd as its init system (also written in Guile). > You can also try Guix package manager on your > current system; it will not interfere with the > package manager of your system. I would say it's > a very "impressive Lisp program". Neither guile-wm nor guix are in my Debian repos. But, stumpwm is. The reason I asked for a WM isn't that I use such extensively. Actually, I use openbox(1), but only so I can switch between mplayer and xterm with M-TAB (in Emacs' notation). The reason is instead that it is easy to see and experience the functionality and the degree of polishness. I don't think a package manager can do the same. Give me demo party material! -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-10 4:21 ` Pascal J. Bourguignon 2015-09-10 18:09 ` Alex Kost @ 2015-09-11 0:57 ` Emanuel Berg 2015-09-11 5:42 ` tomas [not found] ` <mailman.897.1441950163.19560.help-gnu-emacs@gnu.org> [not found] ` <mailman.884.1441933051.19560.help-gnu-emacs@gnu.org> 2 siblings, 2 replies; 76+ messages in thread From: Emanuel Berg @ 2015-09-11 0:57 UTC (permalink / raw) To: help-gnu-emacs "Pascal J. Bourguignon" <pjb@informatimago.com> writes: >> Why don't you do a Lisp OS with Lisp-only software? > > Time. Money. OK, what I meant was actually again why Lisp is so marginalized. Not only in "industry" (yuk, that is a stupid word) but also in the systems we use every day. Every program I ever use is written in C (except for Emacs which is C and Lisp). Do you think the association between C and Unix, strong as it may, is enough to explain this? The only big program which I use that I can think of which is Lisp-only is Gnus which is a part of Emacs. >> Are there any particularly impressive Lisp programs >> I can try? A window manager, for example? > > Indeed, there is stumpwm. OK, I'll try it tonight. > There are a lot of CL servers and applications, it > would only take time to integrate them into a system > with some kind of kernel (eg. a Linux kernel, for > the drivers), writing a init(1) in lisp. init! It is systemd(1) now: lrwxrwxrwx 1 root 20 Sep 28 2014 /sbin/init -> /lib/systemd/systemd But: Keeping the Linux kernel (which is in C) and then starting to replace the typical components in a Unix or Linux system (which are all in C) with ditto in Lisp, I don't see the purpose of that. What would be interesting is a system that is Lispic, not just another Unix only written in Lisp, which would be stupid at best. > On the other hand, there's also Mezzano if you want > to try a recent LispOS written in CL. Do you have hyperlinks to a bootable DVD or USB? -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-11 0:57 ` Emanuel Berg @ 2015-09-11 5:42 ` tomas 2015-09-12 0:18 ` Emanuel Berg [not found] ` <mailman.897.1441950163.19560.help-gnu-emacs@gnu.org> 1 sibling, 1 reply; 76+ messages in thread From: tomas @ 2015-09-11 5:42 UTC (permalink / raw) To: help-gnu-emacs -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Fri, Sep 11, 2015 at 02:57:06AM +0200, Emanuel Berg wrote: > "Pascal J. Bourguignon" <pjb@informatimago.com> > writes: > > >> Why don't you do a Lisp OS with Lisp-only software? > > > > Time. Money. > > OK, what I meant was actually again why Lisp is so > marginalized. Not only in "industry" (yuk, that is > a stupid word) but also in the systems we use every > day [...] See [1] for the historical perspective. Without Lisp machines there'd be no Smalltalk (and most of the OO craze these days). Emacs itself is an echo of those Lisp machines. Java owes a lot to Lisp. Just go digging and you''ll find Lisp roots everywhere. The fact is that Market Forces and the Invisible Hand always chooses wisely the best altenative (excuse my snark, had a bad day yesterday ;-) [1] <https://en.wikipedia.org/wiki/Lisp_machine> Regards - -- tomás -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iEYEARECAAYFAlXyackACgkQBcgs9XrR2kb2GwCfZSj4tWEb7bMr+BeVY+kg3Imv RiUAnR8GcUhMmJCS/BC8i5ucFtDVJULT =QG3u -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-11 5:42 ` tomas @ 2015-09-12 0:18 ` Emanuel Berg 2015-09-13 8:12 ` tomas 0 siblings, 1 reply; 76+ messages in thread From: Emanuel Berg @ 2015-09-12 0:18 UTC (permalink / raw) To: help-gnu-emacs <tomas@tuxteam.de> writes: > See [1] for the historical perspective. Without Lisp > machines there'd be no Smalltalk (and most of the OO > craze these days). The 90s rather. > Java owes a lot to Lisp. That doesn't show :) -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-12 0:18 ` Emanuel Berg @ 2015-09-13 8:12 ` tomas 0 siblings, 0 replies; 76+ messages in thread From: tomas @ 2015-09-13 8:12 UTC (permalink / raw) To: help-gnu-emacs -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Sat, Sep 12, 2015 at 02:18:07AM +0200, Emanuel Berg wrote: > <tomas@tuxteam.de> writes: > > > See [1] for the historical perspective. Without Lisp > > machines there'd be no Smalltalk (and most of the OO > > craze these days). > > The 90s rather. > > > Java owes a lot to Lisp. > > That doesn't show :) I wasn't thinking about the "taste" department [1]. They have accumulated quite a bit of interesting stuff in terms of JIT, optimization and so on -- but definitely the Big Enterprise Way, usually by throwing tons of (mostly fungible) developers and money at it. Have a look at Mike Pall's LuaJIT to see that this can be done differently. OTOH I'm sure Mike Pall's path would have been more dangerous and difficult had it not ben blazed earlier (bulldozed?) by the Java JIT people. But the pioneers on this path? Self & al. Again Lisp. [1] I don't want to discuss taste & Java in one context. I've just had breakfast. - -- t -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iEYEARECAAYFAlX1MAkACgkQBcgs9XrR2kZMmACfZmVkl/5aXEmyby6n4EOYmVvV vOcAn1/rDnWynyG51kGe+vnyeUzdHffC =yQa7 -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 76+ messages in thread
[parent not found: <mailman.897.1441950163.19560.help-gnu-emacs@gnu.org>]
* Re: member returns list [not found] ` <mailman.897.1441950163.19560.help-gnu-emacs@gnu.org> @ 2015-09-11 23:29 ` Pascal J. Bourguignon 2015-09-12 0:20 ` Emanuel Berg ` (2 more replies) 0 siblings, 3 replies; 76+ messages in thread From: Pascal J. Bourguignon @ 2015-09-11 23:29 UTC (permalink / raw) To: help-gnu-emacs <tomas@tuxteam.de> writes: > On Fri, Sep 11, 2015 at 02:57:06AM +0200, Emanuel Berg wrote: >> "Pascal J. Bourguignon" <pjb@informatimago.com> >> writes: >> >> >> Why don't you do a Lisp OS with Lisp-only software? >> > >> > Time. Money. >> >> OK, what I meant was actually again why Lisp is so >> marginalized. Not only in "industry" (yuk, that is >> a stupid word) but also in the systems we use every >> day [...] > > See [1] for the historical perspective. Without Lisp machines > there'd be no Smalltalk (and most of the OO craze these days). No Smalltalk -> no lisa -> no Macintosh -> no MS-Windows and no NeXTSTEP (Apple would be dead by now) -> MacOSX -> no iPad/iPhone. No Java -> no Android. Imagine if the bitmap displays were only used on high end workstations for scientific data representation, and in low-end PC for games. Most PC would still work with text screens. > Emacs itself is an echo of those Lisp machines. Java owes a > lot to Lisp. Just go digging and you''ll find Lisp roots > everywhere. > > The fact is that Market Forces and the Invisible Hand always > chooses wisely the best altenative (excuse my snark, had a > bad day yesterday ;-) > > [1] <https://en.wikipedia.org/wiki/Lisp_machine> > > Regards > -- tomás -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-11 23:29 ` Pascal J. Bourguignon @ 2015-09-12 0:20 ` Emanuel Berg [not found] ` <mailman.966.1442016910.19560.help-gnu-emacs@gnu.org> 2015-09-12 7:40 ` Eli Zaretskii 2 siblings, 0 replies; 76+ messages in thread From: Emanuel Berg @ 2015-09-12 0:20 UTC (permalink / raw) To: help-gnu-emacs "Pascal J. Bourguignon" <pjb@informatimago.com> writes: > No Smalltalk -> no lisa -> no Macintosh -> no > MS-Windows and no NeXTSTEP (Apple would be dead by > now) -> MacOSX -> no iPad/iPhone. > > No Java -> no Android. > > Imagine if the bitmap displays were only used on > high end workstations for scientific data > representation, and in low-end PC for games. > > Most PC would still work with text screens. Did Smalltalk have any positive consequences as well? -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
[parent not found: <mailman.966.1442016910.19560.help-gnu-emacs@gnu.org>]
* Re: member returns list [not found] ` <mailman.966.1442016910.19560.help-gnu-emacs@gnu.org> @ 2015-09-12 2:01 ` Pascal J. Bourguignon 2015-09-12 3:26 ` Emanuel Berg 2015-09-13 7:50 ` tomas 2015-09-12 2:03 ` Pascal J. Bourguignon 2015-09-12 2:04 ` Pascal J. Bourguignon 2 siblings, 2 replies; 76+ messages in thread From: Pascal J. Bourguignon @ 2015-09-12 2:01 UTC (permalink / raw) To: help-gnu-emacs Emanuel Berg <embe8573@student.uu.se> writes: > "Pascal J. Bourguignon" <pjb@informatimago.com> > writes: > >> No Smalltalk -> no lisa -> no Macintosh -> no >> MS-Windows and no NeXTSTEP (Apple would be dead by >> now) -> MacOSX -> no iPad/iPhone. >> >> No Java -> no Android. >> >> Imagine if the bitmap displays were only used on >> high end workstations for scientific data >> representation, and in low-end PC for games. >> >> Most PC would still work with text screens. > > Did Smalltalk have any positive consequences as well? No Smalltalk -> no Lisa. -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-12 2:01 ` Pascal J. Bourguignon @ 2015-09-12 3:26 ` Emanuel Berg 2015-09-13 7:50 ` tomas 1 sibling, 0 replies; 76+ messages in thread From: Emanuel Berg @ 2015-09-12 3:26 UTC (permalink / raw) To: help-gnu-emacs "Pascal J. Bourguignon" <pjb@informatimago.com> writes: > No Smalltalk -> no Lisa. LISA: the "LISA invented silly acronym" computer that Steve Jobs named after his daughter, which he didn't recognize at this moment of strange and misguided affection. LISA was the computer in-between the hackish and social Apple 2 (which Steve Wozniak built), and the posh, pre-chewed, and all-Jobish Macintosh which was supposedly stylish and minimalist (that was true at least with respect to software as there were only MacPaint, MacWord, HyperCard and [Beyond] Dark Caste and a few more programs to run). LISA was much more powerful than the Mac but failed miserably which is why the Apple people put into the LISAs a Mac emulator which made it possible to run Mac software. Then they rebranded LISA "The Mac XL" which in some ways was correct. -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-12 2:01 ` Pascal J. Bourguignon 2015-09-12 3:26 ` Emanuel Berg @ 2015-09-13 7:50 ` tomas 1 sibling, 0 replies; 76+ messages in thread From: tomas @ 2015-09-13 7:50 UTC (permalink / raw) To: Pascal J. Bourguignon; +Cc: help-gnu-emacs -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Sat, Sep 12, 2015 at 04:01:46AM +0200, Pascal J. Bourguignon wrote: > Emanuel Berg <embe8573@student.uu.se> writes: > > > "Pascal J. Bourguignon" <pjb@informatimago.com> > > writes: > > > >> No Smalltalk -> no lisa -> no Macintosh -> no > >> MS-Windows and no NeXTSTEP (Apple would be dead by > >> now) -> MacOSX -> no iPad/iPhone. > >> > >> No Java -> no Android. > >> > >> Imagine if the bitmap displays were only used on > >> high end workstations for scientific data > >> representation, and in low-end PC for games. > >> > >> Most PC would still work with text screens. > > > > Did Smalltalk have any positive consequences as well? > > No Smalltalk -> no Lisa. Modula-2. Oberon. (Niklaus Wirth acknowledges the inspiration to his stay at PARC). Whatever. Much fun in computing anyway (anyone remember the Byte Magazine cover to Smalltalk, with the colorful balloon? Sigh. That old) - -- t -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iEYEARECAAYFAlX1KtkACgkQBcgs9XrR2kbzsQCeMnsV4gJx/dCabFbZZwfqWZqO b/gAn17Kq+ORflMmJB/TWllp9Q4DlXJR =1igD -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list [not found] ` <mailman.966.1442016910.19560.help-gnu-emacs@gnu.org> 2015-09-12 2:01 ` Pascal J. Bourguignon @ 2015-09-12 2:03 ` Pascal J. Bourguignon 2015-09-12 2:45 ` Stefan Monnier ` (3 more replies) 2015-09-12 2:04 ` Pascal J. Bourguignon 2 siblings, 4 replies; 76+ messages in thread From: Pascal J. Bourguignon @ 2015-09-12 2:03 UTC (permalink / raw) To: help-gnu-emacs Emanuel Berg <embe8573@student.uu.se> writes: > "Pascal J. Bourguignon" <pjb@informatimago.com> > writes: > >> No Smalltalk -> no lisa -> no Macintosh -> no >> MS-Windows and no NeXTSTEP (Apple would be dead by >> now) -> MacOSX -> no iPad/iPhone. >> >> No Java -> no Android. >> >> Imagine if the bitmap displays were only used on >> high end workstations for scientific data >> representation, and in low-end PC for games. >> >> Most PC would still work with text screens. > > Did Smalltalk have any positive consequences as well? Also, I didn't show the transitivities, but: No Smalltalk -> no Objective-C -> no NeXTSTEP No Lisp -> no Interface Builder -> no NeXTSTEP No NeXTSTEP -> no MacOSX -> no iOS -> no iPad/iPhone. -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-12 2:03 ` Pascal J. Bourguignon @ 2015-09-12 2:45 ` Stefan Monnier 2015-09-12 3:12 ` Emanuel Berg 2015-09-12 3:31 ` Emanuel Berg ` (2 subsequent siblings) 3 siblings, 1 reply; 76+ messages in thread From: Stefan Monnier @ 2015-09-12 2:45 UTC (permalink / raw) To: help-gnu-emacs > Also, I didn't show the transitivities, but: > No Smalltalk -> no Objective-C -> no NeXTSTEP > No Lisp -> no Interface Builder -> no NeXTSTEP > No NeXTSTEP -> no MacOSX -> no iOS -> no iPad/iPhone. FWIW, history usually shows that most inventions don't depend on one particular person inventing that thing, but rather on a particular context making that thing desirable/reachable/useful, at which point some (set of) people usually invent similar things around the same time. So while the world might look a bit different if Smalltalk/Lisp/younameit hadn't been invented, it probably wouldn't be all that different since someone else would have invented something similar anyway. Stefan ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-12 2:45 ` Stefan Monnier @ 2015-09-12 3:12 ` Emanuel Berg 0 siblings, 0 replies; 76+ messages in thread From: Emanuel Berg @ 2015-09-12 3:12 UTC (permalink / raw) To: help-gnu-emacs Stefan Monnier <monnier@iro.umontreal.ca> writes: > FWIW, history usually shows that most inventions > don't depend on one particular person inventing that > thing, but rather on a particular context making > that thing desirable/reachable/useful, at which > point some (set of) people usually invent similar > things around the same time. > > So while the world might look a bit different if > Smalltalk/Lisp/younameit hadn't been invented, it > probably wouldn't be all that different since > someone else would have invented something > similar anyway. There is even a science fiction short story about a guy with a time machine thinking he can go back in time and make a fortune by inventing all sort of things that he knows of from the future, only one day or so before they were actually "invented". And he fails miserably each time, just because he is so out of context and his knowledge is only on-the-surface scholasticism. Just think: everyone knows how a light bulb works, but everyone doesn't feel as confident going back to the 1870 to beat Edison to the punch! Also, this word "invention" is misleading in many cases. Often it is more about construction. They add one bolt here and one screw here. With patience, luck, and skills, in time, someone will stumble in the last correct screw that will make the construction something unique. Just like boiling water, the quantitative difference between say 66 and 67 degrees Celsius won't matter in isolation, but the same change - only from 99 to 100 degrees - will make the water boil - a qualitative difference, in state. Here, we see that 67-66 = 100-99 = 1, but also that, to get from 99 to 100 with water of say ~37 degrees, you must first get up to, and past "66 to 67" before you are even close to "99 to 100"... -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-12 2:03 ` Pascal J. Bourguignon 2015-09-12 2:45 ` Stefan Monnier @ 2015-09-12 3:31 ` Emanuel Berg [not found] ` <mailman.972.1442025961.19560.help-gnu-emacs@gnu.org> [not found] ` <mailman.978.1442028310.19560.help-gnu-emacs@gnu.org> 3 siblings, 0 replies; 76+ messages in thread From: Emanuel Berg @ 2015-09-12 3:31 UTC (permalink / raw) To: help-gnu-emacs "Pascal J. Bourguignon" <pjb@informatimago.com> writes: > Also, I didn't show the transitivities, but: No > Smalltalk -> no Objective-C -> no NeXTSTEP No Lisp > -> no Interface Builder -> no NeXTSTEP No NeXTSTEP > -> no MacOSX -> no iOS -> no iPad/iPhone. If I ever get my time machine going, first thing after spending a decade in the 90s' Ibiza listening to eurodisco and dropping E, remind me to go back to 1969 and terminate Alan Kay. Or better yet, I can just bring an iPhone and he'll probably grab for the revolver himself! -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
[parent not found: <mailman.972.1442025961.19560.help-gnu-emacs@gnu.org>]
* Re: member returns list [not found] ` <mailman.972.1442025961.19560.help-gnu-emacs@gnu.org> @ 2015-09-12 6:16 ` Pascal J. Bourguignon 2015-09-12 23:38 ` Emanuel Berg [not found] ` <mailman.1016.1442100597.19560.help-gnu-emacs@gnu.org> 0 siblings, 2 replies; 76+ messages in thread From: Pascal J. Bourguignon @ 2015-09-12 6:16 UTC (permalink / raw) To: help-gnu-emacs Stefan Monnier <monnier@iro.umontreal.ca> writes: >> Also, I didn't show the transitivities, but: >> No Smalltalk -> no Objective-C -> no NeXTSTEP >> No Lisp -> no Interface Builder -> no NeXTSTEP >> No NeXTSTEP -> no MacOSX -> no iOS -> no iPad/iPhone. > > FWIW, history usually shows that most inventions don't depend on one > particular person inventing that thing, but rather on a particular > context making that thing desirable/reachable/useful, at which point > some (set of) people usually invent similar things around the same time. > > So while the world might look a bit different if > Smalltalk/Lisp/younameit hadn't been invented, it probably wouldn't be > all that different since someone else would have invented something > similar anyway. You bet! Given how accepted and mainstream lisp is, I can perfectly imagine a universe where it would be totally ignored and where we'd lose all its offsprings. For example, Backus, of BNF and Fortran frame, wrote a paper about functional programming in 1959! You can bet it would still be ignored if lisp hadn't shown the path with a garbage collector and high order functions, and if it hadn't existed to develop ML and from this all the functional programming language to Haskell nowadays. If you want to argue that lisp wasn't essential, then explain the delay between 1959 and ML which has been developed only in 1970! Similarly for the web. Without lisp and the interface builder (a macintosh program written in lisp originally, and therefore doubly dependent on lisp (from the lisp->smalltalk->parc->apple->lisa->mac and from the lisp->dynamic-programming->UI paths), you wouldn't have had nextstep where it was easy, obvious and trivial even, to develop html and WWW server/browser, given the building blocks available. The alternative at the time was Xanadu on the hypertext side, SGML on the document side, and gopher on the client/server side. They could have spend tens of years trying to mix two or three of those into something vaguely ressembling the www, without lisp and NeXTSTEP. -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-12 6:16 ` Pascal J. Bourguignon @ 2015-09-12 23:38 ` Emanuel Berg 2015-09-13 8:03 ` tomas [not found] ` <mailman.1016.1442100597.19560.help-gnu-emacs@gnu.org> 1 sibling, 1 reply; 76+ messages in thread From: Emanuel Berg @ 2015-09-12 23:38 UTC (permalink / raw) To: help-gnu-emacs "Pascal J. Bourguignon" <pjb@informatimago.com> writes: > Given how accepted and mainstream lisp is, I can > perfectly imagine a universe where it would be > totally ignored and where we'd lose all > its offsprings. Some of the novelties that were introduced and/or refined in Lisp are perhaps mainstream today, in other languages and systems, but Lisp is not. Actually it is totally marginalized. I know this from reading job ads for one. Out of a hundred ads, there is tons of Java, a lot C#, some web programming in different languages, some SQL, and one or two oddball projects and leftovers in C, C++ or even older languages. But there isn't *a single* ad for a Lisp programmer! Even in the non-commercial world, very, very few young programmers turn to Lisp. Even the "functional programming" goofballs at the universities most often do Haskell and not Lisp (or ML). > For example, Backus, of BNF and Fortran frame, wrote > a paper about functional programming in 1959! > You can bet it would still be ignored if lisp hadn't > shown the path with a garbage collector and high > order functions, and if it hadn't existed to develop > ML and from this all the functional programming > language to Haskell nowadays. We can bet all we want but never know for sure. Even the premise "no Lisp" is dubious. Because, why was there a Lisp? Say, there was a Lisp because of factors A, B, and C. Now, if we are to remove Lisp from history and then figure out what the world of today would have looked like, should we not only remove Lisp, but also A, B, and C? But if we do that, how do we know they didn't create something else, in parallel with Lisp? Should we remove that as well? It is like a dough, or a tree, rather than the linear chain of events as you put it. Nothing can ever be removed or inserted that is there or isn't there. > Similarly for the web. Without lisp and the > interface builder (a macintosh program written in > lisp originally, and therefore doubly dependent on > lisp (from the > lisp->smalltalk->parc->apple->lisa->mac and from the > lisp->dynamic-programming->UI paths), you wouldn't > have had nextstep where it was easy, obvious and > trivial even, to develop html and WWW > server/browser, given the building blocks available. > The alternative at the time was Xanadu on the > hypertext side, SGML on the document side, and > gopher on the client/server side. They could have > spend tens of years trying to mix two or three of > those into something vaguely ressembling the www, > without lisp and NeXTSTEP. I'm surprised you haven't mentioned XML. No Lisp, no XML, right? -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-12 23:38 ` Emanuel Berg @ 2015-09-13 8:03 ` tomas 2015-09-14 1:31 ` Emanuel Berg 0 siblings, 1 reply; 76+ messages in thread From: tomas @ 2015-09-13 8:03 UTC (permalink / raw) To: help-gnu-emacs -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Sun, Sep 13, 2015 at 01:38:08AM +0200, Emanuel Berg wrote: [...] > Actually it is totally marginalized. I know this from > reading job ads for one. Out of a hundred ads, there > is tons of Java, a lot C# [...] That's because of The Pyramids [1] > I'm surprised you haven't mentioned XML. No Lisp, no > XML, right? DSSL. XSLT. Right. [1] The original quote (by Alan Perlis) goes about Pascal, but I think we can confidently substitute Java as a worthi (if uglier) successor: "[Scheme and Pascal] It would be difficult to find two languages that are the communicating coin of two more different cultures than those gathered around these two languages. Pascal is for building pyramids -- imposing, breathtaking, static structures built by armies pushing heavy blocks into place. Lisp is for building organisms [...]" You need a lot of slaves to build pyramids (yeah, I know: strictly speaking, the pyramid builders weren't slaves, but hey). - -- t -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iEYEARECAAYFAlX1LbkACgkQBcgs9XrR2kZGfwCfVCOxVaYPCKbZqmdy9VURyRS3 POUAn1Z10OPXj3BLuaxCQdkDQPGP2hO+ =Jij+ -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-13 8:03 ` tomas @ 2015-09-14 1:31 ` Emanuel Berg 0 siblings, 0 replies; 76+ messages in thread From: Emanuel Berg @ 2015-09-14 1:31 UTC (permalink / raw) To: help-gnu-emacs <tomas@tuxteam.de> writes: > You need a lot of slaves to build pyramids (yeah, > I know: strictly speaking, the pyramid builders > weren't slaves, but hey). You need long-ears to build pyramids, or actually to build or achieve anything, long-ears that work 24/7/365 for generations, perfecting the craft, and not be disturbed by short-ears all the time with their wars and destructiveness. -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
[parent not found: <mailman.1016.1442100597.19560.help-gnu-emacs@gnu.org>]
* Re: member returns list [not found] ` <mailman.1016.1442100597.19560.help-gnu-emacs@gnu.org> @ 2015-09-13 0:09 ` Pascal J. Bourguignon 2015-09-13 0:24 ` John Mastro [not found] ` <mailman.1019.1442103883.19560.help-gnu-emacs@gnu.org> 0 siblings, 2 replies; 76+ messages in thread From: Pascal J. Bourguignon @ 2015-09-13 0:09 UTC (permalink / raw) To: help-gnu-emacs Emanuel Berg <embe8573@student.uu.se> writes: > We can bet all we want but never know for sure. > Even the premise "no Lisp" is dubious. Because, why > was there a Lisp? Say, there was a Lisp because of > factors A, B, and C. Now, if we are to remove Lisp > from history and then figure out what the world of > today would have looked like, should we not only > remove Lisp, but also A, B, and C? But if we do that, > how do we know they didn't create something else, in > parallel with Lisp? Should we remove that as well? > It is like a dough, or a tree, rather than the linear > chain of events as you put it. Nothing can ever be > removed or inserted that is there or isn't there. The only reason there's LISP was John McCarthy. He started to work on LISP because Fortran and Algol designers didn't want to include language features John McCarthy deemed useful, like ternary IF and COND, or recursivity. It was plain out of Fortran scope (and remained so for a long time) and was only included into Algol by ruse. https://vanemden.wordpress.com/2014/06/18/how-recursion-got-into-programming-a-comedy-of-errors-3/ Notice that list processing (with XCARF and XCDRF) already existed in Fortran as FLPL (it was invented by Newell, Shaw, and Simon, not by John McCarthy). http://www.informatimago.com/articles/flpl/ And I won't say anything about the stress given to Turing Machines over Lambda Calculus, my bet again is that without John McCarthy, nobody would know about Church's work anymore. >> Similarly for the web. Without lisp and the >> interface builder (a macintosh program written in >> lisp originally, and therefore doubly dependent on >> lisp (from the >> lisp->smalltalk->parc->apple->lisa->mac and from the >> lisp->dynamic-programming->UI paths), you wouldn't >> have had nextstep where it was easy, obvious and >> trivial even, to develop html and WWW >> server/browser, given the building blocks available. >> The alternative at the time was Xanadu on the >> hypertext side, SGML on the document side, and >> gopher on the client/server side. They could have >> spend tens of years trying to mix two or three of >> those into something vaguely ressembling the www, >> without lisp and NeXTSTEP. > > I'm surprised you haven't mentioned XML. No Lisp, no > XML, right? Nope. XML comes from SGML -> HTML (dead-end), therefore SGML -> XML. Only good things can derive from Lisp. -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-13 0:09 ` Pascal J. Bourguignon @ 2015-09-13 0:24 ` John Mastro [not found] ` <mailman.1019.1442103883.19560.help-gnu-emacs@gnu.org> 1 sibling, 0 replies; 76+ messages in thread From: John Mastro @ 2015-09-13 0:24 UTC (permalink / raw) To: help-gnu-emacs@gnu.org > The only reason there's LISP was John McCarthy. This is a little like saying that without Sir Isaac Newton there would be no gravity ;-) -- john ^ permalink raw reply [flat|nested] 76+ messages in thread
[parent not found: <mailman.1019.1442103883.19560.help-gnu-emacs@gnu.org>]
* Re: member returns list [not found] ` <mailman.1019.1442103883.19560.help-gnu-emacs@gnu.org> @ 2015-09-13 4:29 ` Pascal J. Bourguignon 0 siblings, 0 replies; 76+ messages in thread From: Pascal J. Bourguignon @ 2015-09-13 4:29 UTC (permalink / raw) To: help-gnu-emacs John Mastro <john.b.mastro@gmail.com> writes: >> The only reason there's LISP was John McCarthy. > > This is a little like saying that without Sir Isaac Newton there would > be no gravity ;-) Not at all, but since you didn't read the explainations, you sure still don't know why. -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk ^ permalink raw reply [flat|nested] 76+ messages in thread
[parent not found: <mailman.978.1442028310.19560.help-gnu-emacs@gnu.org>]
* Re: member returns list [not found] ` <mailman.978.1442028310.19560.help-gnu-emacs@gnu.org> @ 2015-09-12 6:18 ` Pascal J. Bourguignon 2015-09-12 23:56 ` Emanuel Berg [not found] ` <mailman.1018.1442101697.19560.help-gnu-emacs@gnu.org> 0 siblings, 2 replies; 76+ messages in thread From: Pascal J. Bourguignon @ 2015-09-12 6:18 UTC (permalink / raw) To: help-gnu-emacs Emanuel Berg <embe8573@student.uu.se> writes: > "Pascal J. Bourguignon" <pjb@informatimago.com> > writes: > >> Also, I didn't show the transitivities, but: No >> Smalltalk -> no Objective-C -> no NeXTSTEP No Lisp >> -> no Interface Builder -> no NeXTSTEP No NeXTSTEP >> -> no MacOSX -> no iOS -> no iPad/iPhone. > > If I ever get my time machine going, first thing after > spending a decade in the 90s' Ibiza listening to > eurodisco and dropping E, remind me to go back to 1969 > and terminate Alan Kay. Or better yet, I can just > bring an iPhone and he'll probably grab for the > revolver himself! You are definitely crazy. -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-12 6:18 ` Pascal J. Bourguignon @ 2015-09-12 23:56 ` Emanuel Berg [not found] ` <mailman.1018.1442101697.19560.help-gnu-emacs@gnu.org> 1 sibling, 0 replies; 76+ messages in thread From: Emanuel Berg @ 2015-09-12 23:56 UTC (permalink / raw) To: help-gnu-emacs "Pascal J. Bourguignon" <pjb@informatimago.com> writes: >>> Also, I didn't show the transitivities, but: No >>> Smalltalk -> no Objective-C -> no NeXTSTEP No Lisp >>> -> no Interface Builder -> no NeXTSTEP No NeXTSTEP >>> -> no MacOSX -> no iOS -> no iPad/iPhone. >>> >> If I ever get my time machine going, first thing >> after spending a decade in the 90s' Ibiza listening >> to eurodisco and dropping E, remind me to go back >> to 1969 and terminate Alan Kay. Or better yet, >> I can just bring an iPhone and he'll probably grab >> for the revolver himself! > > You are definitely crazy. My people were once travellers and warriors. In yet another era, we had an industrial capacity in parity with the superpowers, and a super-educated workforce. Now, people don't know jack about anything and they don't even know what goes on half a meter to their sides as they are enslaved by those one million times accursed iThings. Physically and mentally those have been a disaster to millions all over the world. What Lisp has to do with them is beyond me as Lisp is the most advanced programming language which implies limitless creativity, whereas the iThings are very dangerous toys that have already enslaved millions of supposedly "adults" as well. Whenever I encounter old people I see this very clearly - the difference in posture, knowledge, skill, literacy, awareness, self-confidence - it is just huge. Of course, there were no iThings in their youths and adult lives so they hade to take part in real activity, solve real problems, communicate with real people, develop real skills, and so on - every day. The people today who never did any of that - well, it shows! -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
[parent not found: <mailman.1018.1442101697.19560.help-gnu-emacs@gnu.org>]
* Re: member returns list [not found] ` <mailman.1018.1442101697.19560.help-gnu-emacs@gnu.org> @ 2015-09-13 0:20 ` Pascal J. Bourguignon 2015-09-14 1:24 ` Emanuel Berg 0 siblings, 1 reply; 76+ messages in thread From: Pascal J. Bourguignon @ 2015-09-13 0:20 UTC (permalink / raw) To: help-gnu-emacs Emanuel Berg <embe8573@student.uu.se> writes: > "Pascal J. Bourguignon" <pjb@informatimago.com> > writes: > >>>> Also, I didn't show the transitivities, but: No >>>> Smalltalk -> no Objective-C -> no NeXTSTEP No Lisp >>>> -> no Interface Builder -> no NeXTSTEP No NeXTSTEP >>>> -> no MacOSX -> no iOS -> no iPad/iPhone. >>>> >>> If I ever get my time machine going, first thing >>> after spending a decade in the 90s' Ibiza listening >>> to eurodisco and dropping E, remind me to go back >>> to 1969 and terminate Alan Kay. Or better yet, >>> I can just bring an iPhone and he'll probably grab >>> for the revolver himself! >> >> You are definitely crazy. > > My people were once travellers and warriors. In yet > another era, we had an industrial capacity in parity > with the superpowers, and a super-educated workforce. > Now, people don't know jack about anything and they > don't even know what goes on half a meter to their > sides as they are enslaved by those one million times > accursed iThings. Physically and mentally those have > been a disaster to millions all over the world. > What Lisp has to do with them is beyond me as Lisp is > the most advanced programming language which implies > limitless creativity, whereas the iThings are very > dangerous toys that have already enslaved millions of > supposedly "adults" as well. Whenever I encounter old > people I see this very clearly - the difference in > posture, knowledge, skill, literacy, awareness, > self-confidence - it is just huge. Of course, there > were no iThings in their youths and adult lives so > they hade to take part in real activity, solve real > problems, communicate with real people, develop real > skills, and so on - every day. The people today who > never did any of that - well, it shows! You are very ill-informed, you don't know what Alan Kay thinks of iPads and iPhones. I can't find the exact quote, so I can only advise you to watch all these videos: https://www.youtube.com/playlist?list=PLKuVC3Lrr0b8k5UY402FfM2LuZ8Ecti96 -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-13 0:20 ` Pascal J. Bourguignon @ 2015-09-14 1:24 ` Emanuel Berg 0 siblings, 0 replies; 76+ messages in thread From: Emanuel Berg @ 2015-09-14 1:24 UTC (permalink / raw) To: help-gnu-emacs "Pascal J. Bourguignon" <pjb@informatimago.com> writes: > You are very ill-informed, you don't know what Alan > Kay thinks of iPads and iPhones. I can't find the > exact quote I just Googled Alan Kay iPad iPhone and found a link [1] with the title Computing pioneer Alan Kay calls Apple's iPad user interface 'poor' I'm not surprised he thinks so. That is what I meant he would grab for the revolver himself if I showed him in 1969 what his work with Smalltalk eventually brought to humanity. You might have seen the second Terminator movie in which a android is sent back in time to kill the engineer who did "Skynet", which eventually enslaved humanity. But this is in line with your kind of thinking. Tho they killed the guy in that movie, that didn't change anything - just as killing Kay in 1969 wouldn't turn the iThings slaves of today into techno-warriors. [The reason I don't like those products isn't the interface in particular, tho that is one reason I don't use them. With a computer-like interface, i.e. a shell and a keyboard, they could be used for good. But most people still wouldn't.] [1] http://appleinsider.com/articles/13/04/03/computing-pioneer-alan-kay-calls-apples-ipad-user-interface-poor -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list [not found] ` <mailman.966.1442016910.19560.help-gnu-emacs@gnu.org> 2015-09-12 2:01 ` Pascal J. Bourguignon 2015-09-12 2:03 ` Pascal J. Bourguignon @ 2015-09-12 2:04 ` Pascal J. Bourguignon 2015-09-12 3:15 ` Emanuel Berg 2 siblings, 1 reply; 76+ messages in thread From: Pascal J. Bourguignon @ 2015-09-12 2:04 UTC (permalink / raw) To: help-gnu-emacs Emanuel Berg <embe8573@student.uu.se> writes: > "Pascal J. Bourguignon" <pjb@informatimago.com> > writes: > >> No Smalltalk -> no lisa -> no Macintosh -> no >> MS-Windows and no NeXTSTEP (Apple would be dead by >> now) -> MacOSX -> no iPad/iPhone. >> >> No Java -> no Android. >> >> Imagine if the bitmap displays were only used on >> high end workstations for scientific data >> representation, and in low-end PC for games. >> >> Most PC would still work with text screens. > > Did Smalltalk have any positive consequences as well? And: No NeXTSTEP -> no HTTP/www -> no facebook, no tweeter, no google, no nothing! -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-12 2:04 ` Pascal J. Bourguignon @ 2015-09-12 3:15 ` Emanuel Berg 0 siblings, 0 replies; 76+ messages in thread From: Emanuel Berg @ 2015-09-12 3:15 UTC (permalink / raw) To: help-gnu-emacs "Pascal J. Bourguignon" <pjb@informatimago.com> writes: > No NeXTSTEP -> no HTTP/www -> no facebook, no > tweeter, no google, no nothing! OK, HTTP/www and Google we do want. (Only half a point for Google.) -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-11 23:29 ` Pascal J. Bourguignon 2015-09-12 0:20 ` Emanuel Berg [not found] ` <mailman.966.1442016910.19560.help-gnu-emacs@gnu.org> @ 2015-09-12 7:40 ` Eli Zaretskii 2 siblings, 0 replies; 76+ messages in thread From: Eli Zaretskii @ 2015-09-12 7:40 UTC (permalink / raw) To: help-gnu-emacs > From: "Pascal J. Bourguignon" <pjb@informatimago.com> > Date: Sat, 12 Sep 2015 01:29:43 +0200 > > Imagine if the bitmap displays were only used on high end workstations > for scientific data representation, and in low-end PC for games. > > Most PC would still work with text screens. Which would be a Good Thing, IMO, since what we have now is beyond ridiculous: 99.99% of our CPU power is engaged in moving pixels on the screen from here to there. That's why we have generations of programmers who are blissfully unaware of the tremendous power of the current CPUs: all they have before their eyes is how long it takes MS Word to redraw its screen. On my daytime job I bump into those guys every day: they are unable to imagine how much processing could be done in 1 sec, and therefore vastly underestimate the performance of data processing software they need to design and implement. Ask them how did people fly to the Moon with a 1 MIPS CPU, and they will tell you it's impossible. ^ permalink raw reply [flat|nested] 76+ messages in thread
[parent not found: <mailman.884.1441933051.19560.help-gnu-emacs@gnu.org>]
* Re: member returns list [not found] ` <mailman.884.1441933051.19560.help-gnu-emacs@gnu.org> @ 2015-09-11 2:26 ` Pascal J. Bourguignon 2015-09-12 0:16 ` Emanuel Berg 0 siblings, 1 reply; 76+ messages in thread From: Pascal J. Bourguignon @ 2015-09-11 2:26 UTC (permalink / raw) To: help-gnu-emacs Emanuel Berg <embe8573@student.uu.se> writes: > "Pascal J. Bourguignon" <pjb@informatimago.com> > writes: > >>> Why don't you do a Lisp OS with Lisp-only software? >> >> Time. Money. > > OK, what I meant was actually again why Lisp is so > marginalized. Not only in "industry" (yuk, that is > a stupid word) but also in the systems we use every > day. Every program I ever use is written in C (except > for Emacs which is C and Lisp). It's up to you to choose programs written in lisp instead. For example, instead of GNU emacs you could use Hemlock (notably in Clozure CL.app on MacOSX, it's nicely integrated). Of course, it doesn't benefit of all the GNU emacs third-party packages, but you have an emacs with the same basic editing features, all written in Common Lisp from the bottom up (well, apart from a small kernel in ccl written in C, and from UI stuff in Hemlock written in CL but calling out to the Objective-C cocoa framework). > Do you think the association between C and Unix, strong as it may, is > enough to explain this? Historically, definitively. But for a long time now, availability of implementations and computing power and memory size of unix machines has not justified the use of C (or C++) at all for applications. And people also realize that when they created the P languages, perl, php, python and rupy^W ruby. I would use C only to write a device driver. > The only big program which I use that I can think of which is > Lisp-only is Gnus which is a part of Emacs. > But: Keeping the Linux kernel (which is in C) and then > starting to replace the typical components in a Unix > or Linux system (which are all in C) with ditto in > Lisp, I don't see the purpose of that. This is however the approach taken by Android, and they obtain a system that is quite different from a unix system. The only thing unix in Android, is the use of the linux kernel for the drivers, and for the implementation of sandboxes. Android "user accounts" whatever that means, are not unix account (unix account on Android actually correspond more to Android applications, than to human users). > What would be interesting is a system that is Lispic, not just another > Unix only written in Lisp, which would be stupid at best. I already mentionned Mezzano. If you want to write your own, you can use Movitz CL, or of course, build on Mezzano. > Do you have hyperlinks to a bootable DVD or USB? No, it's no batteries included. You get the sources from the github and do it yourself. https://github.com/froggey/Mezzano https://common-lisp.net/project/movitz/ https://github.com/PuercoPop/Movitz -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-11 2:26 ` Pascal J. Bourguignon @ 2015-09-12 0:16 ` Emanuel Berg 0 siblings, 0 replies; 76+ messages in thread From: Emanuel Berg @ 2015-09-12 0:16 UTC (permalink / raw) To: help-gnu-emacs "Pascal J. Bourguignon" <pjb@informatimago.com> writes: > But for a long time now, availability of > implementations and computing power and memory size > of unix machines has not justified the use of C (or > C++) at all for applications. And people also > realize that when they created the P languages, > perl, php, python ... I don't like Python (the forced indentation, for example), "Personal Home Page" (PHP) is a toy for kids, Perl is sort of cool but I prefer C except for web programming which I never did much. Perl is also very much shelly Unix with awk and sed-ish syntax and attitude, so compared to the "Unix C", Perl is Unix 2.0 or whatever.) > No, it's no batteries included. You get the sources > from the github and do it yourself. > > https://github.com/froggey/Mezzano > https://common-lisp.net/project/movitz/ > https://github.com/PuercoPop/Movitz They should put it in the Debian repos because it is a quality stamp and also a practical way to distribute and retrieve it. -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
* RE: member returns list 2015-09-06 23:47 ` Pascal J. Bourguignon 2015-09-07 1:29 ` Pascal J. Bourguignon @ 2015-09-07 2:38 ` Drew Adams 1 sibling, 0 replies; 76+ messages in thread From: Drew Adams @ 2015-09-07 2:38 UTC (permalink / raw) To: Pascal J. Bourguignon, help-gnu-emacs > Basically, you can implement a lisp without having access > to an old lisp system, just by hearing about it and having > a little light bulb going tilt in your head. Hear, hear! ^ permalink raw reply [flat|nested] 76+ messages in thread
* RE: member returns list 2015-09-06 21:20 ` Pascal J. Bourguignon 2015-09-06 23:33 ` Emanuel Berg [not found] ` <mailman.598.1441581917.19560.help-gnu-emacs@gnu.org> @ 2015-09-07 2:37 ` Drew Adams 2 siblings, 0 replies; 76+ messages in thread From: Drew Adams @ 2015-09-07 2:37 UTC (permalink / raw) To: Pascal J. Bourguignon, help-gnu-emacs > But basically, he started GNU emacs and designing emacs lisp slightly > beforem the CL standardization process started, and it was far from > obviouos that it would succeed (it took ten years!). Hm... Dunno when you want to say that RMS "started" designing Emacs Lisp. But I think I disagree with what I think you are saying about when "the CL standardization process started". The first public release of GNU Emacs was in 1985. Common Lisp was designed over a period of years prior to that, and RMS was at least somewhat involved with that design process (he was well aware of it, to say the least). Common Lisp was defined by 1984. The book that specified its definition, Common Lisp the Language, was published in 1984 (I'm looking at my 1984 copy now), and it is quite clear from that book that the language design that it presents (specifies, in detail) was agreed upon by all of the design participants. It is a thoroughgoing specification of the language, and as such it was used as the guide when implementing CL here and there. Was that a "standard". I would say so. It was a full definition, and it thus allowed people to go out and develop implementations. Whether it was a "standard" blessed by this or that standards body is a moot point, IMO. And there were already working implementations of Common Lisp in 1984. It was being used by programmers in various labs in 1984. And new Common Lisp implementations were fast underway in 1984 (e.g. for new Lisp machines). I was using Kyoto Common Lisp in 1984, for instance. It was not a great implementation at that point, but it was usable. It was developed just on the basis of studying the spec (CLtL). https://en.wikipedia.org/wiki/Kyoto_Common_Lisp Not only was Common Lisp defined by 1984, it was even already criticized in a paper in the 1984 Symposium on Lisp and Functional Programming, "Critique of Common Lisp". See The Evolution of Lisp, http://www.dreamsongs.com/Files/Hopl2.pdf From another recent thread here ("print out all members of a list"): >>>> How is that possible, since Emacs Lisp came out AFTER Scheme and Common >>>> Lisp? CLtL was published in 1984, the same year Stallman started >>>> writing GNU Emacs? And Scheme is older, since CL took a number of ideas >>>> from it (most notably lexical scoping). >>> >>> At the same time as CL. >>> The CL standard was completed in 1994. 1984 only marks the beginning >>> of the standardization effort. I disagree with that characterization. The fact that Common Lisp continued to be refined as a standard, and the fact that CLOS and ANSI Common Lisp came later, does not mean that CL had not already been defined by 1984. > For example, Franz, Inc. switched over to CL only after 1985 > and had CL available only in 1986. Franz Lisp was widely distributed and mature, while CL had few implementations at that point. Eventually Franz Inc. was formed and it produced its own implementation of Common Lisp. But the fact that Franz Inc. did not have a CL in 1984 does not mean that CL had not been designed by then, let alone that it was not defined until 1994! Other CL implementations existed in 1984, and still others were in the process of development. This development was all happening (rapidly) because CL had already been designed, as a standard. The mere fact that Franz Inc. could and would set out to implement its own CL after 1984 underlines the fact that CL had already been defined by then. > http://franz.com/about/company.history.lhtml > http://emacswiki.org/emacs/EmacsHistory ^ permalink raw reply [flat|nested] 76+ messages in thread
[parent not found: <mailman.502.1441349470.19560.help-gnu-emacs@gnu.org>]
* Re: member returns list [not found] ` <mailman.502.1441349470.19560.help-gnu-emacs@gnu.org> @ 2015-09-04 17:26 ` Barry Margolin 2015-09-05 17:40 ` Emanuel Berg 0 siblings, 1 reply; 76+ messages in thread From: Barry Margolin @ 2015-09-04 17:26 UTC (permalink / raw) To: help-gnu-emacs In article <mailman.502.1441349470.19560.help-gnu-emacs@gnu.org>, Marcin Borkowski <mbork@mbork.pl> wrote: > On 2015-09-04, at 03:03, Emanuel Berg <embe8573@student.uu.se> wrote: > > > Marcin Borkowski <mbork@mbork.pl> writes: > > > >> memq > > > > Hot! > > > > Love Emacs and Lisp inconsistency! > > assq > delq > memq > rassq > remq > > ...inconsistency? FYI, all those names were inherited from Maclisp. The q at the end of the names reflects that they use eq as the comparison function. Conversely, the functions that use equal have long names like delete, member, remove. The consistency is that the fully-spelled-out list functions use the fully-spelled-out comparison. -- Barry Margolin, barmar@alum.mit.edu Arlington, MA *** PLEASE post questions in newsgroups, not directly to me *** ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: member returns list 2015-09-04 17:26 ` Barry Margolin @ 2015-09-05 17:40 ` Emanuel Berg 0 siblings, 0 replies; 76+ messages in thread From: Emanuel Berg @ 2015-09-05 17:40 UTC (permalink / raw) To: help-gnu-emacs Barry Margolin <barmar@alum.mit.edu> writes: > FYI, all those names were inherited from Maclisp. > The q at the end of the names reflects that they use > eq as the comparison function. Ha ha, cool! > Conversely, the functions that use equal have long > names like delete, member, remove. The consistency > is that the fully-spelled-out list functions use the > fully-spelled-out comparison. What?! :O Or did you make that up just now? If not, do you have more such Lisp secrets to share? -- underground experts united http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 76+ messages in thread
end of thread, other threads:[~2015-09-14 1:31 UTC | newest] Thread overview: 76+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <mailman.719.1441763081.19560.help-gnu-emacs@gnu.org> 2015-09-09 15:03 ` member returns list Barry Margolin 2015-09-09 19:44 ` Ted Zlatanov 2015-09-01 15:50 To `boundp' or not to `boundp'? Alexander Shukaev 2015-09-01 15:51 ` Dmitry Gutov [not found] ` <mailman.331.1441125765.19560.help-gnu-emacs@gnu.org> 2015-09-01 20:20 ` Barry Margolin 2015-09-01 23:37 ` member returns list (was: Re: To `boundp' or not to `boundp'?) Emanuel Berg 2015-09-02 0:10 ` Drew Adams 2015-09-02 0:27 ` Emanuel Berg 2015-09-02 0:38 ` Drew Adams [not found] ` <mailman.370.1441156160.19560.help-gnu-emacs@gnu.org> 2015-09-03 5:17 ` member returns list Pascal J. Bourguignon 2015-09-04 0:26 ` Emanuel Berg 2015-09-02 16:45 ` Michael Heerdegen 2015-09-02 21:47 ` Emanuel Berg 2015-09-02 22:09 ` Michael Heerdegen 2015-09-02 22:11 ` Drew Adams 2015-09-02 22:13 ` Marcin Borkowski 2015-09-04 1:03 ` Emanuel Berg 2015-09-04 6:50 ` Marcin Borkowski 2015-09-05 17:35 ` Emanuel Berg 2015-09-05 17:55 ` Random832 2015-09-05 18:09 ` Emanuel Berg 2015-09-05 21:04 ` Random832 2015-09-06 2:57 ` Emanuel Berg [not found] ` <mailman.552.1441475739.19560.help-gnu-emacs@gnu.org> 2015-09-05 23:39 ` Pascal J. Bourguignon 2015-09-06 2:46 ` Emanuel Berg 2015-09-09 1:48 ` Robert Thorpe 2015-09-09 2:44 ` Pascal J. Bourguignon 2015-09-09 3:19 ` John Mastro 2015-09-10 0:25 ` Emanuel Berg [not found] ` <mailman.557.1441507097.19560.help-gnu-emacs@gnu.org> 2015-09-06 21:20 ` Pascal J. Bourguignon 2015-09-06 23:33 ` Emanuel Berg [not found] ` <mailman.598.1441581917.19560.help-gnu-emacs@gnu.org> 2015-09-06 23:47 ` Pascal J. Bourguignon 2015-09-07 1:29 ` Pascal J. Bourguignon 2015-09-07 2:25 ` Emanuel Berg 2015-09-09 1:44 ` Robert Thorpe 2015-09-10 0:23 ` Emanuel Berg [not found] ` <mailman.793.1441844665.19560.help-gnu-emacs@gnu.org> 2015-09-10 2:01 ` Pascal J. Bourguignon 2015-09-10 2:32 ` Emanuel Berg [not found] ` <ECCA0E56-A051-4D38-8CBB-6CE9208BB047@openmailbox.org> 2015-09-11 1:32 ` Emanuel Berg 2015-09-11 1:46 ` Emanuel Berg [not found] ` <mailman.797.1441852386.19560.help-gnu-emacs@gnu.org> 2015-09-10 4:21 ` Pascal J. Bourguignon 2015-09-10 18:09 ` Alex Kost 2015-09-11 1:01 ` Random832 2015-09-11 1:28 ` Emanuel Berg 2015-09-11 2:01 ` Emanuel Berg 2015-09-11 2:52 ` Random832 [not found] ` <mailman.890.1441936900.19560.help-gnu-emacs@gnu.org> 2015-09-11 2:27 ` Pascal J. Bourguignon 2015-09-12 0:10 ` Emanuel Berg 2015-09-11 2:37 ` Ian Zimmerman 2015-09-11 1:03 ` Emanuel Berg 2015-09-11 0:57 ` Emanuel Berg 2015-09-11 5:42 ` tomas 2015-09-12 0:18 ` Emanuel Berg 2015-09-13 8:12 ` tomas [not found] ` <mailman.897.1441950163.19560.help-gnu-emacs@gnu.org> 2015-09-11 23:29 ` Pascal J. Bourguignon 2015-09-12 0:20 ` Emanuel Berg [not found] ` <mailman.966.1442016910.19560.help-gnu-emacs@gnu.org> 2015-09-12 2:01 ` Pascal J. Bourguignon 2015-09-12 3:26 ` Emanuel Berg 2015-09-13 7:50 ` tomas 2015-09-12 2:03 ` Pascal J. Bourguignon 2015-09-12 2:45 ` Stefan Monnier 2015-09-12 3:12 ` Emanuel Berg 2015-09-12 3:31 ` Emanuel Berg [not found] ` <mailman.972.1442025961.19560.help-gnu-emacs@gnu.org> 2015-09-12 6:16 ` Pascal J. Bourguignon 2015-09-12 23:38 ` Emanuel Berg 2015-09-13 8:03 ` tomas 2015-09-14 1:31 ` Emanuel Berg [not found] ` <mailman.1016.1442100597.19560.help-gnu-emacs@gnu.org> 2015-09-13 0:09 ` Pascal J. Bourguignon 2015-09-13 0:24 ` John Mastro [not found] ` <mailman.1019.1442103883.19560.help-gnu-emacs@gnu.org> 2015-09-13 4:29 ` Pascal J. Bourguignon [not found] ` <mailman.978.1442028310.19560.help-gnu-emacs@gnu.org> 2015-09-12 6:18 ` Pascal J. Bourguignon 2015-09-12 23:56 ` Emanuel Berg [not found] ` <mailman.1018.1442101697.19560.help-gnu-emacs@gnu.org> 2015-09-13 0:20 ` Pascal J. Bourguignon 2015-09-14 1:24 ` Emanuel Berg 2015-09-12 2:04 ` Pascal J. Bourguignon 2015-09-12 3:15 ` Emanuel Berg 2015-09-12 7:40 ` Eli Zaretskii [not found] ` <mailman.884.1441933051.19560.help-gnu-emacs@gnu.org> 2015-09-11 2:26 ` Pascal J. Bourguignon 2015-09-12 0:16 ` Emanuel Berg 2015-09-07 2:38 ` Drew Adams 2015-09-07 2:37 ` Drew Adams [not found] ` <mailman.502.1441349470.19560.help-gnu-emacs@gnu.org> 2015-09-04 17:26 ` Barry Margolin 2015-09-05 17:40 ` Emanuel Berg
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).