Slashdot Mirror


LispM Source Released Under 'BSD Like' License

mschaef writes "Announced on Bill Clementson's Blog, Brad Parker has stated that he has 'permission from MIT to release all the LISPM source code with a "BSD like" source license.'" Zach Beane has also set up a torrent for easy download.

33 of 336 comments (clear)

  1. BSD like license? by Anonymous Coward · · Score: 5, Funny

    Is that anything like a death certificate?

  2. Lisp? by cdn2k1 · · Score: 5, Funny

    Does that mean we have to pronounce it as

    Bee - Ethh - Dee?

  3. Let's be orderly now by Minwee · · Score: 4, Funny
    Okay, you know the drill. A new story has been released and you're all aching to comment on it without reading the article, so let's get going.

    All "What is LISPM?" comments over on the right.

    "This proves BSD is dying" comments on the left.

    Wordplay that desperately wants to be clever, like "I guess that makes it a 'Bee Eth Dee Licenth'" comments go there by the door.

    If you have read the article, know the history of Brad Parker, LISPM and their involvement in the Church of the Flying Spaghetti Monster, and have something intelligent to say, then we don't want your kind around here. Slashdot has standards to maintain, you know.

  4. Re:This is News? by Gordonjcp · · Score: 5, Funny

    The permissioned release of 25 year old code is /. news now? This code is worthless IMO

    Just like your opinion. Now get back to work, those burgers won't flip themselves!

  5. Argh! by Brent+Spiner · · Score: 5, Funny

    I don't know, does anyone still program in LISP (I'm sure some people do (personally I could never get used to its syntax (although I never really tried that hard (I did use it with Autocad (one of the really old DOS versions) for a while))))?

    --
    Reality test... am I dreaming?
    1. Re:Argh! by Just+Some+Guy · · Score: 3, Informative
      I don't know, does anyone still program in LISP

      Naughty Dog used a variant to write "Jak and Daxter", an extremely popular game for Playstation 2. Many more people use spiritual descendents like Python.

      --
      Dewey, what part of this looks like authorities should be involved?
    2. Re:Argh! by DeafByBeheading · · Score: 5, Informative

      Does this count? Or this? Lisp is a very powerful language. Paren matching is rendered trivial with any decent editor. The syntax is actually quite nice and clean once you get used to it. I wouldn't use it for everything, and it does have some core ugliness (hey, so does C++), but it has an undeservedly bad reputation.

      --
      Telltale Games: Bone, Sam and Max
    3. Re:Argh! by Bastian · · Score: 3, Insightful

      Methinks a lot of folks would argue that Python isn't a spiritual descendant so much as a wannabe. My understanding (I haven't programmed in Python much) is that it lacks a lot of the features that make lisp So. Damn. Cool., such as macros, and its closures are broken in the eyes of a lot of lispers. To me, the real kicker is that there is still a strong division between data and code in Python.

    4. Re:Argh! by sickofthisshit · · Score: 4, Informative

      However, [Python] does have a lot of the features that many of us liked about Lisp,

      The comparison is a bit complicated.

      From the starting point of, say, C++, Python has a lot of the same kind of appeal that Common Lisp does, and for many of the same reasons. In philosophy, however, the Pythonistas and the Lispniks seem to have much to disagree about.

      For instance, it seems (from the noises I hear over in Lisp forums), that Guido actively works to eliminate Lisp-isms in favor of his own "clearer" syntax. Whereas the Common Lisp folks tend to keep stuff around *forever*, and if someone invents a clearer replacement, they migrate to it, but nobody cares much that the old stuff is left behind. However, Schemers like the "one elegant way instead of three different ways". Whether you consider Scheme to be a Lisp or not is a great way to start a flame war.

      Where this matters most is in Lisp macros. (For the nth time, these have nothing to do with C preprocessor macros, rather, they let you implement language extensions using the full power of the language, and with seamless integration to the original language and other extensions). Lispniks would never give those up. Pythonistas seem to not understand what the big deal about macros is. Schemers don't like macros because it is possible to write buggy macros, and want their own elegant, bulletproof mechanisms to define language extensions. This is yet another great way to start flame wars.

    5. Re:Argh! by pnatural · · Score: 3, Informative

      Pythonistas seem to not understand what the big deal about macros is.

      Actually, the python community in general and Guido in particular understand very well what the big deal is. They've looked at macros and said, "yeah, that would be nice, but we don't want to allow the language to be rewritten on a user-by-user basis."

      In other words, "readability counts", and that goes out the door with macros. Maybe not for disciplined programmers, but we all know the world is full of the other kind.

    6. Re:Argh! by sickofthisshit · · Score: 3, Insightful

      Well, I can't argue with your phrasing.

      Yet, the Common Lisper's perspective is that the power to reshape the language to suit the problem (not to suit the individual user per se) is such a useful and time-saving innovation that no one should deprive the programmers of it. After all, people can write unreadable code in Fortran or C, but we don't take those languages away.

      Crippling everybody because bad programmers would write bad code seems like winning the wrong battle. Which pretty much shows what side of the fence I live on.

      To polarize it, "readability" doesn't count for much if we have to stick at the level of Dick-and-Jane. Faulkner and Joyce might be "unreadable" compared to Basic English, but you can't translate it back.

    7. Re:Argh! by be-fan · · Score: 4, Insightful

      The whole point of macro is readability! Reading Lisp code with a well-chosen set of macros is like reading code written in a language precisely-designed for the problem you're trying to solve. It keeps the boiler-plate and the implementation details from interfering with the expression of the core algorithms.

      --
      A deep unwavering belief is a sure sign you're missing something...
  6. Great News! by RAMMS+EIN · · Score: 3, Interesting

    Let me be the first to say...Great News!!

    This has long been the dream of those yearning for the revival of Lisp machines and their allegedly superior programming environment.

    --
    Please correct me if I got my facts wrong.
    1. Re:Great News! by Abcd1234 · · Score: 4, Interesting

      Sounds like Squeak to me.

  7. SCO needs to be all over this... by bani · · Score: 3, Funny

    ...this is obviously stolen SCO intellectual property.

    I mean if SCO can claim all your ELF are belong to SCO, why stop there?

    SCO needs to start up a Lisp licensing program, it can be as wildly successful as their Linux licensing program.

  8. But I thought... by pmike_bauer · · Score: 5, Interesting
    • Tar file of the tape images, extracted files and extract software, 71Mbytes

    This software was written in the 80s. Back then, all the programmers were supposed to have supernatural abilities and could, like, fit an entire operating system in 640K! What is this??!!! A modern JVM download is only 15MB.
    --
    I read /. for the (Score:-1, Conservative) comments.
    1. Re:But I thought... by Anonymous Coward · · Score: 5, Funny

      This distro is JPEGs of the 80-column cards.

    2. Re:But I thought... by melonman · · Score: 3, Informative

      For a start, it's source code. It compiled for a processor designed specifically to run Lisp (36-bits anyone?), so the object code was quite compact.

      Second, it did stuff in the 80s that are still hard to do today. For example, how many development systems allow you to locate a piece of windowing behaviour that you like, anywhere in the OS, and import that behaviour to your own code with a few mouse clicks? Or drop into microcode when necessary? The JVM is smaller because it does a whole lot less.

      Third, the machine I used cost £1M at the time, so I don't think they were worried about the odd extra RAM chip. Lisp uses lots of RAM when it runs, no matter how compact the code.

      They were fantastic machines - in the year Apple released their first laser printer and IBM were talking seriously about a windowing environment, these guys were using a 68000 just to bootstrap the main processor, and there weren't a lot of other 24-bit displays around, let alone full-blown rendering packages to take advantage of them.

      --
      Virtually serving coffee
  9. Nice... by lpangelrob · · Score: 4, Interesting
    ...they found it on 9-track tapes in the basement. Excellent.

    Does that make this the oldest software to be released under an "open-sourceish" license?

    1. Re:Nice... by mccalli · · Score: 4, Funny
      ...they found it on 9-track tapes in the basement.

      ....with a sign on the door saying "Beware of the Leopard".

      Cheers,
      Ian

  10. Somebody had to say it... by Anonymous Coward · · Score: 4, Funny

    (This(truly(is(great news))))

  11. Re:cdr cdr car? by RAMMS+EIN · · Score: 4, Funny

    Yeah! This clearly shows that C is superior! At least in C you have superfluous parentheses, semicolons, commas, ...

    --
    Please correct me if I got my facts wrong.
  12. There's some duplication. by CyricZ · · Score: 4, Informative

    There are the original TPC tape images included, and then those same images in SIMH format. Then there's an archive of the extracted files, and the archive is also extracted.

    --
    Cyric Zndovzny at your service.
    1. Re:There's some duplication. by pmike_bauer · · Score: 3, Insightful

      I was going for funny, but the slashdot mods found me insightful. Amazing!

      --
      I read /. for the (Score:-1, Conservative) comments.
  13. Richard Stallman and the Lisp Machine by mschaef · · Score: 4, Interesting

    This was in the body of the story, but maybe it's more appropriate elsewhere. One of the more interesting links in the blog posts about this source code release was a transcript of a speech by RMS on how the Lisp Machine influenced his decision to start the free software movement. Interesting reading.

  14. Obligatory by Acey · · Score: 3, Funny

    In Thoviet Rutha, LITHP lithenthes you!

    Sorry, it needed to be done. That and a co-worker suggested I post it.

  15. Re:cdr cdr car? by be-fan · · Score: 4, Informative

    Here here! I find it incredible to see that C/Java people bitch about "superflous" punctuation. Compare this:

    (defun square (x) (* x x))    ; 6 punctuation marks

    To C:

    double square(double x) {return x * x;}    // 5 punctuation marks

    To C++:

    template <typename T>
    T square(T x) {return x * x;}    // 7 punctuation marks

    To Java:

    public class Square
    {
        public double operate(double x) {return x * x;}
    };        // 7 punctuation marks

    Compare this:

    (if (something)           ; 8 punctuation marks
        (do-this)
        (do-that))

    To C/C++/Java:

    if(something())            // 10 punctuation marks (11 if you count the 'else')
        do_this();
    else
        do_that();

    Compare this:

    (do-something to-this with-that in-there)       ; 2 punctuation marks

    To C/C++/Java:

    do_something(to-this, with-that, in-there)      // 4 punctuation marks

    The only reason it seems like there are so many parentheses in Lisp is because of LET and because Lisp uses just a single type of punctuation while C/C++/Java use all sorts of different punctuation. With a good editor, the parentheses don't even matter, all you see is the indented structure!

    --
    A deep unwavering belief is a sure sign you're missing something...
  16. Thank Goodness! by leighklotz · · Score: 3, Funny

    Now I can fix that annoying bug that Symbolics introduced when they changed Zwei to say "is not a defined key" instead of "undefined", so when I press Meta-Symbol-B it will say "Meta-Beta Undefined (doo-dah, doo-dah)" again.

  17. Re:cdr cdr car? by Anonymous Coward · · Score: 3, Funny

    That's all well and fine, but let's look at a more common example:

    Common Lisp: 12 punctuation marks

    (tagbody
        10 (print "hello")
        20 (print "world")
        30 (go 10))

    BASIC: 4 punctuation marks

    10 PRINT "hello"
    20 PRINT "world"
    30 GOTO 10

    C: 24 punctuation marks, but you don't even have real line numbers

    #include
    main() {
            ten: printf("hello\n");
            twenty: printf("world\n");
            thirty: goto ten;
    }

    Java: 22 punctuation marks, but you don't even have GOTO!

    public class HelloWorld {
            public static void main(String args[]) {
                    System.out.println("hello");
                    System.out.println("world"); // crap!
            }
    }

  18. LispM had a superiour hardware model by Anonymous Coward · · Score: 4, Insightful
    The Lisp Machine, as well as Burroughs Algol hardware, embodies some computer engineering principles that address fundamental failures in the current computing environment:

    1. Memory bounds checking in hardware.

    2. Hardware typed memory.

    3. Hardware designed for specific language implementation.

    The current problems that plague the software industry are unreliable code, vulnerabilities to malicious software and poor programmer productivity. It's embarrassing that architectures that were abandoned 20 years ago had features that address these issues.

    Memory bound checking is a complete no-brainer. When you declare a data structure you know the size. If you try to go outside that size, then something is wrong. It might be a run time bug, it might be a malicious attack. Who cares? If an exception occurs, you're going to be safer.

    Hardware typing in memory is more of the same. If you add a floating point value to an address you are in trouble, and an exception should be the result. In the Lisp world, type bits support arithmetic between various numerical representations, so there is added value beyond error checking.

    Hardware/software co-design is not quite as obvious, but it can have big payoffs. Both the Lisp machines and the Burroughs machines were incredibly reliable. They also ran very fast, as least on the tasks that fit the architecture. (Although Symbolics had a great graphics setup, they were not the fastest rendering engines.) Some of this was due to memory bounds checking and some because of typed memory, but much was because the software was designed to match the hardware and hardware was targeted as software. There are currently many examples of hardware designers building computers that are no good for software and software systems that have to make up for gaps in the hardware. Can you say Itanium?

    I know I'm really going to get flamed for this, but I think it's true: RISC is to blame for a lot of these problems. RISC attempts to optimize one thing, the instruction execution pipeline. This was fine when speed was the bottleneck, but we are now at a point where the problems are not if we can run fast enough, but can we run reliably enough?

    1. Re:LispM had a superiour hardware model by be-fan · · Score: 3, Insightful

      BS. Take a look at the die of something like an Athlon 64. Large portions of it are dedicated to C support. For example, the entire MMU. If C programs (more appropriately, the C memory model) didn't allow programs to write willy-nilly all over memory, you'd save enough die space to put a couple of more execution units on there. Consider also the massive amounts of out-of-order execution hardware. If C wasn't built on the model of a unit-width instruct stream, a lot of that hardware could be dispensed with.

      Programmers seem to have this idea that "C works the way CPUs work". Nothing could be farther from the truth. Modern CPUs are out-of-order, parallel vector machines. The C machine model assumes in-order, single-pipeline scaler machines. C assumes a linear memory space, while modern machines have complex cache hierarchies and often have non-uniform main memories. There are a lot of elements of functional languages that map better to modern hardware than does C. For example, in (strict) functional languages, the following two statements can be executed in parallel:

      a = makea()
      b = makeb()

      A compiler for such a language can map these statements directly to two commmand streams issued to seperate execution units. A C compiler can do something similar, but has to go through massive dataflow analysis to ensure that makea() doesn't modify anything used in makeb(). In another example, functional languages tend to encourage the use of lots of small, transient objects, while C encourages accessing large, long-lived global data structures. Guess which one is more suited to modern machines, with small-fast caches, and large-slow main memories?

      And that's just how hostile C is to modern hardware. Don't even get me started on how hostile its "every pointer can overwrite every object" model is hostile to mdoern compilers!

      --
      A deep unwavering belief is a sure sign you're missing something...
  19. Re:Why design a new language? by sickofthisshit · · Score: 4, Interesting

    I didn't miss your point.

    Passing around functions is something Lisp is perfectly capable of doing. (And without any performance hit, because our anonymous functions are compiled to machine code just like our named functions.) But--guess what?--we don't use it to implement control structures, even though we could. One quickly finds that the function-passing style is LESS readable and LESS convenient than real Lisp macros.

    You plainly misrepresent Lisp macros if you claim they are about moving basic operations to read-time instead of run-time. They implement program *transformations* that BY DEFINITION must occur at code-reading time (but before compile-time). By the time the program actually runs, it is too late to rewrite it, after all.

  20. Comment removed by account_deleted · · Score: 4, Interesting

    Comment removed based on user account deletion