[Gd-chatter] r11498 - trunk/fundev

agent at gwydiondylan.org agent at gwydiondylan.org
Sun Nov 25 02:38:34 CET 2007


Author: agent
Date: Sun Nov 25 02:38:34 2007
New Revision: 11498

Added:
   trunk/fundev/OVERVIEW.txt   (contents, props changed)
Log:
Job: minor
Added overview of Open Dylan directories, conventions, etc.


Added: trunk/fundev/OVERVIEW.txt
==============================================================================
--- (empty file)
+++ trunk/fundev/OVERVIEW.txt	Sun Nov 25 02:38:34 2007
@@ -0,0 +1,304 @@
+                         ============================
+                            OPEN DYLAN SOURCE CODE
+                         CONVENTIONS AND ORGANIZATION
+                         ============================
+
+========================
+Acronyms and Definitions
+========================
+
+CG   - 
+MPS  - A memory management system. When using a HARP back-end, MPS manages
+       garbage collection. When using a C back-end, the Boehm GC library
+       manages garbage collection.
+DFM  - Data flow model.
+DFMC - 
+HARP - An artificial assembly language. HARP code is transformed into the
+       target processor's actual assembly language. The other back-ends are
+       Java byte-code and C.
+RTG  - 
+DOOD - File-based object-oriented database.
+DOSS - Dylan object serialization format.
+
+
+========================
+Platforms and Registries
+========================
+
+A platform is a combination of CPU and OS. Dylan-only code is platform
+independent, but calling specific OS functions or specifying a library for the
+linker introduces a platform dependency.
+
+A platform-specific Dylan library is created through a platform-specific LID
+file. The association between LID file and platform is created through files
+in "sources/registry" directory. The files will contain a single line that
+indicates the LID file for that library on that platform. The location of the
+LID file is given relative to the "sources" directory.
+
+The LID file will be in the source-code directory corresponding to that
+library. There will be several LID files in that directory, with names that
+indicate what platforms each applies to.
+
+
+==================
+Naming Conventions
+==================
+
+OD uses the following special character prefixes to indicate different things:
+
+%name - An internal name.
+&name - A model class. It models a run-time value at compile time.
+^name - A compile-time computation on run-time values via a model class.
+
+
+======================
+Commenting Conventions
+======================
+
+"///"    - Documentation of a function, macro, etc.
+"---"    - Interim solution or questionable code.
+"---***" - Serious concerns or bug work-arounds.
+
+===========
+Directories
+===========
+
+The directory structure doesn't provide enough context to say which file is
+used where, so I've attempted to catalog each directory's purpose myself.
+
+---------------
+Compiler System
+---------------
+                        
+sources
+  dfmc
+    core                - Module imports and re-exports.
+    java-backend        - Java back-end.
+    java-linker         - Java back-end.
+    linker              - Linker generics. Makefile prototype.
+    management          - Safeguards and progress of compilation.
+    mangling            - Mangle Dylan names into [a-zA-Z0-9_] names.
+    namespace           - Bindings, libraries, modules, lib structure.
+    optimization        - Analyzes and performs optimizations.
+    reader              - Lexer and parser. Also, formatted output.
+    typist              - Type inferencing engine.
+  lib
+    build-system        - Jam-based build system.
+    jam                 - Jam script interpreter.
+    java                - Java back-end.
+    java-parser         - Java back-end.
+    parser-run-time     - Support for parsers.
+    source-records      - Reads source files and tracks location.
+    walker              - Build has-a tree.
+
+------------------------
+IDE and Tool Source Code
+------------------------
+  
+sources
+  environment           - Main code for IDE and tools.
+    commands            - Defines various shell commands.
+    console             - Console IDE declarations.
+    core                - Module imports and re-exports.
+    debugger            - Debugger GUI.
+    deuce               - Deuce customizations for IDE.
+    dfmc                - Introspection and IDE interactor.
+    dummy               - Interactor environment.
+    editor              - External editor support.
+    framework           - Generic GUI elements.
+    manager             - Client/server communication.
+    profiler            - Profiler GUI.
+    protocols           - Models of various project elements for display and
+                          introspection.
+    source-control      - External source control system interface.
+    target-application  - Access control to application being debugged.
+    tools               - Miscellaneous, mostly GUI-related.
+  lib
+    command-shell       - Compiler/debugger/interactor shell. Command-line arg
+                          and "help" handling.
+    debug-dispatch      - Something for the debugger.
+    disasm              - x86 disassembler for debugger.
+    grammar-compiler    - Used by parser-generator.
+    motley              - OLE stub generator.
+    parser-generator    - Generates Dylan code that can parse a grammar.
+    ppml                - Pretty-printer formatting and markup.
+    release-info        - Copyrights, banners, and setting retrieval. Also
+                          includes a simple XML parser.
+  tools/map-statistics  - Win32 MAP files.
+
+----------
+Registries
+----------
+
+These files are installed as part of an Open Dylan release, and indicate what
+libraries go together and how a library should be built for a specific
+platform.
+
+sources
+  Library-Packs
+  registry
+    generic             - This code is platform-independent.
+    ...                 - Each platform gets its own directory. Platforms are
+                          named for their processor and operating system.
+
+--------------------------------------------
+Dylan Language, Extensions, Run-Time Support
+--------------------------------------------
+
+By "extension," I mean a library that extends built-in definitions and class
+hierarchies.
+
+sources
+  collections           - Collection extensions.
+  common-dylan          - Common language extensions shared by Open Dylan and
+                          Gwydion Dylan.
+  dylan                 - Dylan Reference Manual implementation.
+  functional-dylan      - Open Dylan-specific language extensions.
+  lib                   
+    big-integers        - Mathematical library for big integers (> 28 bits).
+    generic-arithmetic  - Arithmetic prototypes for all numeric libraries.
+    memory-manager      - Abstraction layer for memory manager (MPS or Boehm).
+    ratio               - Mathematical ratio library.
+    run-time            - Memory management and threading.
+
+---------------------------------
+Main Libraries Used by Open Dylan
+---------------------------------
+  
+sources
+  deuce                 - OD advanced text editor.
+  duim                  - Platform-independent GUI wrapper.
+  io                    - I/O library.
+  lib                  
+    bulk-io             - Bulk I/O library for <byte>s. Used by DOOD.
+    c-ffi               - General C API wrapper.
+    channels            - Intra-application messaging.
+    dood                - File database library.
+    doss                - Object serialization library.
+    variable-search     - Locate a binding in DLLs or libs.
+  system                - OS-specific code for file system, environment
+                          variables, Windows registry, dates and times.
+                          Architecture definitions.
+                        
+---------------
+Other Libraries
+---------------
+
+These libraries aren't used by Open Dylan, or are only used in a minor
+capacity, but they do have use.
+
+sources
+  corba                 - CORBA library.
+  databases             - SQL and ODBC library.
+  gnu                   - GNU and GTK API wrappers.
+  gtk-2                 - GTK-2 API wrappers.
+  lib                   
+    cgi                 - CGI library.
+    cl                  - Common Lisp plists, sequences, and strings.
+    c-lexer             - C lexer.
+    commands            - Win32 inter-process communication helper, intended
+                          for things like DDE via command shell.
+    complex             - Complex number support.
+    collection-extensions - Extensions from Gwydion Dylan.
+    dylan-script        - Network management scripting.
+    http-streams        - I/O wrapper for HTTP.
+    lotus-notes         - Lotus Notes interface.               
+    midi                - MIDI library.
+    regular-expressions - Regex library.
+    string-extensions   - Add'l string methods.
+    timers              - For profiling blocks of code.
+    t-list              - A variation of a <dequeue>. Don't know its purpose.
+    union-collection    - Iterate several collections sequentially.
+    unix-portability    - Wrappers for errno and lseek.
+  macos                 - Mac OS Carbon API wrappers.
+  network               - Socket and protocol libraries.
+  ole                   - COM and OLE libraries.
+  web                   - HTML and XML libraries.
+  win32                 - Win32 API wrappers.
+  x11                   - Motif and X11 libraries.
+                        
+-----------
+Sample Code
+-----------
+  
+sources
+  app                   - Sample applications.
+  examples              - Sample applications.
+
+--------
+Not Used
+--------
+
+This code isn't used by Open Dylan, and isn't likely to be useful for any
+other purpose.
+
+experimental
+old  
+sources
+  dfmc
+    flow-typist
+    webster
+  lib    
+    stack-walker
+
+------------
+Unclassified
+------------
+
+These may or may not be used or useful, but either I haven't look at them,
+or I don't know what they do, or I don't know how to properly describe them.
+
+admin                   
+install                 
+packages                
+project                 
+releases                
+Samples
+sources
+  benchmarks
+  bootstrap1-registry
+  dfmc
+    back-end
+    back-end-protocol
+    browser-support
+    c-back-end
+    c-compiler
+    c-ffi
+    c-linker
+    c-run-time
+    common
+    conditions
+    conversion
+    debug-back-end
+    definitions
+    dylan
+    execution
+    file-compiler
+    flow-graph
+    harp-browser-support
+    harp-cg
+    harp-cg-linker
+    macro-expander
+    modeling
+    native-harp-cg
+    pentium-harp-cg
+    powerpc-harp-cg
+    shell
+    testing
+  environment
+    emulator
+    gtk
+    project-wizard
+    property-pages
+    reports
+    server
+    splash-screen
+    tests
+  harp
+  lib
+    dispatch-profiler
+    metering      
+  project-manager
+  qa
+  runtime-manager 
+tools



More information about the chatter mailing list