Procházet zdrojové kódy

Added portability notes

Mark VandenBrink před 12 roky
rodič
revize
67497140da
1 změnil soubory, kde provedl 11 přidání a 3 odebrání
  1. 11 3
      README.md

+ 11 - 3
README.md

@@ -6,7 +6,9 @@ A pure Lisp implementation for reading audio tags and audio information.
 
 Currently reads MP3/MP4/FLAC audio files.
 
-**Mostly complete.  Your mileage may vary. Most definitely, NOT portable.  Heavily dependent on Clozure CCL.**
+**Mostly complete.  Your mileage may vary.
+**Runs (in single-thread mode) under CCL, SBCL, ECL, CLISP, and ABCL
+  Note: CCL works well.  I'm still in progress of making the others work well. YMMV.
 
 # Dependencies
 
@@ -108,7 +110,9 @@ Header: version/revision: 3/0, flags: 0x00: 0/0/0/0, size = 11,899 bytes; No ext
 ## The Files
 
 * __audio-streams.lisp:__ creates a STREAM-like interface to audio files and vectors, thus read/seek devolve into
-  simple array-references.  For files, it uses CCL's MAP-FILE-TO-OCTET-VECTOR function to mmap the file.
+  simple array-references.  Under CCL, uses MAP-FILE-TO-OCTET-VECTOR function to mmap the file. Other Lisps just
+  slurp in the whole file (probably should revisit this, but since we use displaced arrays for dissecting the file,
+  this would require a rewrite.
 * __flac-frame.lisp:__ Parses FLAC files.
 * __id3-frame.lisp:__ Parses the ID3 frames in an MP3 file.
    For each frame type we are interested in, DEFCLASS a class with
@@ -177,7 +181,7 @@ walker (main thread) walks the requested directory, adding each filename to an u
 from \*dead-channel\* until it has done \*MAX-THREADS\* recv's.
 
 The worker threads parse the filename they retrieve from \*channel\* until they get the \*END-THREAD\* symbol, whereupon they write their thread
-id to \*dead-channel\* and return (ie exit). Here are some timings:
+id to \*dead-channel\* and return (ie exit). Here are some preliminary timings:
 
 | # Threads   | Time (seconds) |
 | ----------- | -------------- |
@@ -185,3 +189,7 @@ id to \*dead-channel\* and return (ie exit). Here are some timings:
 |           5 |            ~18 |
 |           2 |            ~17 |
 |           1 |            ~25 |
+
+Note: threading does NOT currently work on ECL (missing support in bordeaux threads)
+or on my custom built CLISP with POSIX-THREADS turned on (fails with RECURSIVE MUTEX error).
+ABCL kinda/sorta works (seems to be a problem with ATOM-TYPE being unbound