/[gcl]/gcl/cmpnew/gcl_fasdmacros.lsp
ViewVC logotype

Diff of /gcl/cmpnew/gcl_fasdmacros.lsp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by camm, Sun Sep 14 02:30:34 2003 UTC revision 1.2 by camm, Sun Sep 14 02:43:02 2003 UTC
# Line 0  Line 1 
1    
2    
3    (defstruct (fasd (:type vector))
4      stream
5      table
6      eof
7      direction
8      package
9      index
10      filepos
11      table_length
12      evald_forms ; list of forms eval'd. (load-time-eval)
13      )
14    
15    (defvar *fasd-ops*
16    '(  d_nil         ;/* dnil: nil */
17      d_eval_skip    ;    /* deval o1: evaluate o1 after reading it */
18      d_delimiter    ;/* occurs after d_listd_general and d_new_indexed_items */
19      d_enter_vector ;     /* d_enter_vector o1 o2 .. on d_delimiter  make a cf_data with
20                      ;  this length.   Used internally by gcl.  Just make
21                      ;  an array in other lisps */
22      d_cons        ; /* d_cons o1 o2: (o1 . o2) */
23      d_dot         ;
24      d_list    ;/* list* delimited by d_delimiter d_list,o1,o2, ... ,d_dot,on
25                    ;for (o1 o2       . on)
26                    ;or d_list,o1,o2, ... ,on,d_delimiter  for (o1 o2 ...  on)
27                  ;*/
28      d_list1   ;/* nil terminated length 1  d_list1o1   */
29      d_list2   ; /* nil terminated length 2 */
30      d_list3
31      d_list4
32      d_eval
33      d_short_symbol
34      d_short_string
35      d_short_fixnum
36      d_short_symbol_and_package
37      d_bignum
38      d_fixnum
39      d_string
40      d_objnull
41      d_structure
42      d_package
43      d_symbol
44      d_symbol_and_package
45      d_end_of_file
46      d_standard_character
47      d_vector
48      d_array
49      d_begin_dump
50      d_general_type
51      d_sharp_equals ;              /* define a sharp */
52      d_sharp_value
53      d_sharp_value2
54      d_new_indexed_item
55      d_new_indexed_items
56      d_reset_index
57      d_macro
58      d_reserve1
59      d_reserve2
60      d_reserve3
61      d_reserve4
62      d_indexed_item3 ;      /* d_indexed_item3 followed by 3bytes to give index */
63      d_indexed_item2  ;      /* d_indexed_item2 followed by 2bytes to give index */
64      d_indexed_item1
65      d_indexed_item0    ;  /* This must occur last ! */
66    ))
67    
68    (defmacro put-op (op str)
69      `(write-byte ,(or (position op *fasd-ops*)
70                        (error "illegal op")) ,str))
71    
72    (defmacro put2 (n str)
73      `(progn  (write-bytei ,n 0 ,str)
74               (write-bytei  ,n 1 ,str)))
75      
76    (defmacro write-bytei (n i str)
77      `(write-byte (the fixnum (ash (the fixnum ,n) >> ,(* i 8))) ,str))
78      
79    
80    (provide 'FASDMACROS)
81    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26