MCL V1.3 To V2.0 Comparison Slides
MCL V1.3 To V2.0 Comparison Slides
Game Manuals · PDF
| Filename | MCL_v1.3_to_v2.0_comparison_slides.pdf |
|---|---|
| Size | 0.05 MB |
| Subsection | MCL V1.3 To V2.0 Comparison Slides |
| Downloads | 1 |
Enjoying MacTrove?
Anonymous downloads are free and unlimited.
Create a free account to track favorites,
contribute metadata corrections, and join the
community chat.
Reader
Loading…
OCR / Text contents
®
Laura Clark
Development Tools Product Marketing
Lisp Product Marketing Manager
®
Macintosh Allegro
Common Lisp Update
Overview
What You Expect in a Powerful
Lisp Environment . . .
• Full Common Lisp
• EMACS-style editor
• Inspector
• Debugging tools
• Lisp Listener
What You Want in a Macintosh
Development Environment . . .
• Fast, compact compiler
• High-level access to the toolbox
• Object library defines windows,
dialogs, and menus
• Interactive interface designer
Why Lisp?
• Interactive
• Dynamic
• Memory management
• Run-time error handling
• Object technology
Macintosh Allegro CL v.1.3.2
• Released in April 1990
• Interface designer with source
• Programmable grapher with source
• Windoids
• FFI support MPW 3.0 object files
• Color dialogs and menus
In the Future
• System 7.0 support
– Virtual Memory
– AppleEvents
• Ephemeral GC
• CLOS
• Steele second edition compatibility
• Small applications
®
Bill St. Clair
Macintosh Allegro Common Lisp
Lisp Hacker - ATG Cambridge
®
Macintosh Allegro
Common Lisp Update
What’s new in MACL 2.0
Technical Details
MACL 2.0–New Features
• CLtL2 compatible (186 cleanup issues)
• CLOS replaces Object-Lisp
• New representation
– 32-bit clean, VM, dynamic-extent
• Views replace Dialogs
• New inspector and debugger
Common
Lisp
Object
System
Slide: CBC Text 1
Common Lisp
• CLOS is the standard
• Seamlessly integrated
– Generic functions behave just like
regular functions
– Classes are part of the type system
• Featureful (and then some)
Object System
• Class/Instance paradigm
• Instance “slots” for local state
• Class “slots” for shared state
• Methods provide specialized
behavior for generic functions
• Multiple inheritance
Object-Lisp
• Prototype/Instance paradigm
• Local variables for local state
• Inherited variables for shared state
• Object functions provide
specialized behavior
• Multiple inheritance
• Object-Lisp is dead. Long live CLOS.
Object-Lisp => CLOS
• defobject + exist =>
defclass + initialize-instance
• defobfun => defmethod (automatic)
• object-var => (slot-value ...)
• (ask instance (f x y)) => (f instance x y)
• usual-xxx => call-next-method
Statistics
1.3 2.0 2.0
OL CLOS PCL 1.3 2.0
Function-call 8 3 9 2 1
Slot-value 21 11 41 1 1
Accessor 21 18 23 1 1
Make-instance 1.6 1 8-50
Instance size 4N+8 N+3 N+6
System size 16K 200K 1M
New Representation
• BBOP => low-bits tag
• Stack-consed (downward) closures
• Dynamic-extent
• Ephemeral gc
• Virtual memory: copying gc
BBOP (Big Bag of Pages)
F Page Offset
Type
Memory
Page Table
Low-Bits Tag
Pointer Tag
000 Fixnum
001 Vector
010 Symbol
011 Float
100 Cons
101 Reserved Memory
110 Lfun
111 Immediate…
Showing first 3,000 characters of 4,659 total. Open the full document →