~ubuntu-branches/ubuntu/trusty/librep/trusty

« back to all changes in this revision

Viewing changes to src/rep_subrs.h

  • Committer: Bazaar Package Importer
  • Author(s): Christian Marillat
  • Date: 2001-11-13 15:06:22 UTC
  • Revision ID: james.westby@ubuntu.com-20011113150622-vgmgmk6srj3kldr3
Tags: upstream-0.15.2
ImportĀ upstreamĀ versionĀ 0.15.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* rep_subrs.h -- mostly LISP subr declarations
 
2
   Copyright (C) 1993, 1994 John Harper <john@dcs.warwick.ac.uk>
 
3
   $Id: rep_subrs.h,v 1.72 2001/09/14 14:37:33 jsh Exp $
 
4
 
 
5
   This file is part of Jade.
 
6
 
 
7
   Jade is free software; you can redistribute it and/or modify it
 
8
   under the terms of the GNU General Public License as published by
 
9
   the Free Software Foundation; either version 2, or (at your option)
 
10
   any later version.
 
11
 
 
12
   Jade is distributed in the hope that it will be useful, but
 
13
   WITHOUT ANY WARRANTY; without even the implied warranty of
 
14
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
15
   GNU General Public License for more details.
 
16
 
 
17
   You should have received a copy of the GNU General Public License
 
18
   along with Jade; see the file COPYING.  If not, write to
 
19
   the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
20
 
 
21
#ifndef REP_SUBRS_H
 
22
#define REP_SUBRS_H
 
23
 
 
24
#include <stdarg.h>
 
25
 
 
26
/* from continuations.c */
 
27
extern int rep_thread_lock;
 
28
extern rep_bool rep_pending_thread_yield;
 
29
extern repv rep_call_with_barrier (repv (*callback)(repv), repv arg,
 
30
                                   rep_bool closed, void (*in)(void *),
 
31
                                   void (*out)(void *), void *data);
 
32
extern repv Fcall_cc (repv thunk);
 
33
extern repv Fcontinuation_callable_p (repv cont);
 
34
extern repv Fcall_with_object (repv arg, repv thunk);
 
35
extern repv Fcall_with_dynamic_root (repv thunk);
 
36
extern repv Fcall_with_barrier (repv thunk, repv closed, repv in, repv out);
 
37
extern repv Fmake_thread (repv thunk, repv name);
 
38
extern repv Fthread_yield (void);
 
39
extern repv Fthread_delete (repv thread);
 
40
extern repv Fthread_suspend (repv thread, repv msecs);
 
41
extern repv Fthread_wake (repv thread);
 
42
extern repv Ftheadp (repv arg);
 
43
extern repv Fthread_suspended_p (repv thread);
 
44
extern repv Fthread_exited_p (repv thread);
 
45
extern repv Fcurrent_thread (repv depth);
 
46
extern repv Fall_threads (repv depth);
 
47
extern repv Fthread_forbid (void);
 
48
extern repv Fthread_permit (void);
 
49
extern repv Fthread_name (repv th);
 
50
extern u_long rep_max_sleep_for (void);
 
51
 
 
52
/* from datums.c */
 
53
extern repv Fmake_datum (repv, repv);
 
54
extern repv Fdefine_datum_printer (repv, repv);
 
55
extern repv Fdatum_ref (repv, repv);
 
56
extern repv Fdatum_set (repv, repv, repv);
 
57
extern repv Fhas_type_p (repv, repv);
 
58
 
 
59
/* from debug-buffer.c */
 
60
extern void *rep_db_alloc(char *name, int size);
 
61
extern void rep_db_free(void *db);
 
62
extern void rep_db_vprintf(void *_db, char *fmt, va_list args);
 
63
extern void rep_db_printf(void *db, char *fmt, ...);
 
64
extern void rep_db_print_backtrace(void *_db, char *fun);
 
65
extern void *rep_db_return_address(void);
 
66
extern void rep_db_spew(void *_db);
 
67
extern void rep_db_spew_all(void);
 
68
extern void rep_db_kill(void);
 
69
 
 
70
/* from files.c */
 
71
extern repv Qdefault_directory;
 
72
extern repv Qstart, Qend;
 
73
extern repv Qread, Qwrite, Qappend;
 
74
extern repv rep_fh_env;
 
75
extern int rep_file_type;
 
76
extern int rep_op_write_buffer_contents;
 
77
extern int rep_op_read_file_contents;
 
78
extern int rep_op_insert_file_contents;
 
79
extern repv rep_signal_file_error(repv cdr);
 
80
extern repv rep_unbound_file_error(repv file);
 
81
extern repv rep_get_file_handler(repv file_name, int op);
 
82
extern repv rep_call_file_handler(repv handler, int op,
 
83
                                   repv sym, int nargs, ...);
 
84
extern repv rep_get_handler_from_file_or_name(repv *filep, int op);
 
85
extern repv rep_expand_and_get_handler(repv *file_namep, int op);
 
86
extern repv rep_localise_and_get_handler(repv *file_namep, int op);
 
87
extern rep_bool rep_file_newer_than(repv name1, repv name2);
 
88
extern repv Ffile_name_absolute_p(repv file);
 
89
extern repv Fexpand_file_name(repv, repv);
 
90
extern repv Flocal_file_name(repv);
 
91
extern repv Fcanonical_file_name(repv);
 
92
extern repv Ffile_name_nondirectory(repv);
 
93
extern repv Ffile_name_directory(repv);
 
94
extern repv Ffile_name_as_directory(repv);
 
95
extern repv Fdirectory_file_name(repv);
 
96
extern repv Ffilep(repv arg);
 
97
extern repv Ffile_binding(repv file);
 
98
extern repv Ffile_bound_stream(repv file);
 
99
extern repv Ffile_handler_data(repv);
 
100
extern repv Fset_file_handler_data(repv, repv);
 
101
extern repv Fopen_file(repv, repv);
 
102
extern repv Fmake_file_from_stream(repv, repv, repv);
 
103
extern repv Fclose_file(repv);
 
104
extern repv Fflush_file(repv file);
 
105
extern repv Fseek_file(repv file, repv offset, repv where);
 
106
extern repv Fdelete_file(repv);
 
107
extern repv Frename_file(repv, repv);
 
108
extern repv Fmake_directory(repv);
 
109
extern repv Fdelete_directory(repv);
 
110
extern repv Fcopy_file(repv, repv);
 
111
extern repv Ffile_readable_p(repv file);
 
112
extern repv Ffile_writable_p(repv file);
 
113
extern repv Ffile_exists_p(repv file);
 
114
extern repv Ffile_regular_p(repv file);
 
115
extern repv Ffile_directory_p(repv file);
 
116
extern repv Ffile_symlink_p(repv file);
 
117
extern repv Ffile_owner_p(repv file);
 
118
extern repv Ffile_nlinks(repv file);
 
119
extern repv Ffile_size(repv file);
 
120
extern repv Ffile_modes(repv file);
 
121
extern repv Fset_file_modes(repv file, repv modes);
 
122
extern repv Ffile_modes_as_string(repv file);
 
123
extern repv Ffile_modtime(repv file);
 
124
extern repv Fdirectory_files(repv dir);
 
125
extern repv Fread_symlink(repv file);
 
126
extern repv Fmake_symlink(repv file, repv contents);
 
127
extern repv Fstdin_file(void);
 
128
extern repv Fstdout_file(void);
 
129
extern repv Fstderr_file(void);
 
130
extern repv Fmake_temp_name(void);
 
131
extern repv rep_file_fdopen (int fd, char *mode);
 
132
 
 
133
/* from find.c */
 
134
extern rep_regexp *rep_compile_regexp(repv re);
 
135
extern void rep_push_regexp_data(struct rep_saved_regexp_data *sd);
 
136
extern void rep_pop_regexp_data(void);
 
137
extern void rep_update_last_match(repv data, rep_regexp *prog);
 
138
extern void rep_set_string_match(repv obj, repv start, repv end);
 
139
extern void (*rep_regsub_fun)(int, rep_regsubs *, char *, char *, void *);
 
140
extern int (*rep_regsublen_fun)(int, rep_regsubs *, char *, void *);
 
141
extern repv Qregexp_error;
 
142
extern repv Fstring_match(repv re, repv str, repv start, repv nocasep);
 
143
extern repv Fstring_looking_at(repv re, repv string,
 
144
                                repv start, repv nocasep);
 
145
extern repv Fexpand_last_match(repv template_);
 
146
extern repv Fmatch_start(repv exp);
 
147
extern repv Fmatch_end(repv exp);
 
148
extern repv Fquote_regexp(repv str);
 
149
extern repv Fregexp_cache_control(repv limit);
 
150
extern void rep_regerror(char *err);
 
151
 
 
152
/* from fluids.c */
 
153
extern repv Fmake_fluid (repv);
 
154
extern repv Ffluid_ref (repv);
 
155
extern repv Ffluid_set (repv, repv);
 
156
extern repv Fwith_fluids (repv, repv, repv);
 
157
 
 
158
/* from lisp.c */
 
159
extern repv rep_load_autoload(repv);
 
160
extern repv rep_funcall(repv fun, repv arglist, rep_bool eval_args);
 
161
extern repv rep_apply (repv, repv);
 
162
extern repv rep_call_lisp0(repv);
 
163
extern repv rep_call_lisp1(repv, repv);
 
164
extern repv rep_call_lisp2(repv, repv, repv);
 
165
extern repv rep_call_lisp3(repv, repv, repv, repv);
 
166
extern repv rep_call_lisp4(repv, repv, repv, repv, repv);
 
167
extern repv rep_call_lispn (repv fun, int argc, repv *argv);
 
168
extern repv rep_handle_var_int(repv, int *);
 
169
extern repv rep_handle_var_long_int(repv, long *);
 
170
extern void rep_handle_error(repv, repv);
 
171
extern repv rep_signal_arg_error(repv, int);
 
172
extern repv rep_signal_missing_arg(int argnum);
 
173
extern repv rep_mem_error(void);
 
174
extern repv Qdebug_entry, Qdebug_exit, Qdebug_error_entry;
 
175
extern repv Qquote, Qlambda, Qmacro, Qautoload, Qfunction;
 
176
extern repv Qstandard_input, Qstandard_output;
 
177
extern repv Qamp_optional, Qamp_rest, Qamp_aux;
 
178
extern volatile repv rep_throw_value;
 
179
extern repv rep_int_cell, rep_term_cell;
 
180
extern repv Qerror, Qerror_message, Qinvalid_function;
 
181
extern repv Qvoid_value, Qbad_arg, Qinvalid_read_syntax;
 
182
extern repv Qend_of_stream, Qinvalid_lambda_list, Qmissing_arg;
 
183
extern repv Qinvalid_macro, Qinvalid_autoload, Qno_catcher;
 
184
extern repv Qfile_error;
 
185
extern repv Qinvalid_stream, Qsetting_constant, Qprocess_error;
 
186
extern repv Qno_memory, Quser_interrupt, Qarith_error;
 
187
extern repv Qterm_interrupt;
 
188
extern repv Qstack_error;
 
189
extern repv Qprint_escape, Qprint_length, Qprint_level, Qnewlines;
 
190
extern repv rep_env, rep_fenv, rep_special_bindings;
 
191
extern struct rep_Call *rep_call_stack;
 
192
extern int rep_lisp_depth, rep_max_lisp_depth;
 
193
extern int rep_test_int_counter;
 
194
extern int rep_test_int_period;
 
195
extern void (*rep_test_int_fun)(void);
 
196
extern repv Ffuncall(repv);
 
197
extern repv Feval(repv);
 
198
extern repv Fprogn(repv, repv);
 
199
extern repv Fbreak(void);
 
200
extern repv Fstep(repv);
 
201
extern repv Fsignal(repv error, repv data);
 
202
extern repv Fbacktrace(repv strm);
 
203
extern repv Vmax_lisp_depth(repv val);
 
204
extern int rep_list_length(repv);
 
205
extern rep_bool rep_assign_args (repv list, int required, int total, ...);
 
206
 
 
207
/* from lispcmds.c */
 
208
extern repv Qor, Qand;
 
209
extern repv Qload_path, Qafter_load_alist, Qlisp_lib_directory;
 
210
extern repv Qdl_load_path, Qdl_load_reloc_now, Qprovide, Qfeatures;
 
211
extern repv Qsite_lisp_directory, Qdocumentation_file, Qdocumentation_files;
 
212
extern repv Fquote(repv, repv);
 
213
extern repv Fcar(repv);
 
214
extern repv Fcdr(repv);
 
215
extern repv Flist(repv);
 
216
extern repv Flist_star(repv);
 
217
extern repv Fmake_list(repv, repv);
 
218
extern repv Fappend(repv);
 
219
extern repv Fnconc(repv);
 
220
extern repv Frplaca(repv, repv);
 
221
extern repv Frplacd(repv, repv);
 
222
extern repv Freverse(repv);
 
223
extern repv Fnreverse(repv);
 
224
extern repv Fassoc(repv, repv);
 
225
extern repv Fassq(repv, repv);
 
226
extern repv Frassoc(repv, repv);
 
227
extern repv Frassq(repv, repv);
 
228
extern repv Fnth(repv, repv);
 
229
extern repv Fnthcdr(repv index, repv list);
 
230
extern repv Flast(repv);
 
231
extern repv Fmapcar(repv, repv);
 
232
extern repv Fmapc(repv, repv);
 
233
extern repv Ffilter(repv pred, repv list);
 
234
extern repv Fmember(repv, repv);
 
235
extern repv Fmemq(repv, repv);
 
236
extern repv Fmemql(repv, repv);
 
237
extern repv Fdelete(repv, repv);
 
238
extern repv Fdelq(repv, repv);
 
239
extern repv Fdelete_if(repv, repv);
 
240
extern repv Fdelete_if_not(repv, repv);
 
241
extern repv Fvector(repv);
 
242
extern repv Fmake_vector(repv, repv);
 
243
extern repv Farrayp(repv);
 
244
extern repv Faset(repv, repv, repv);
 
245
extern repv Faref(repv, repv);
 
246
extern repv Fmake_string(repv, repv);
 
247
extern repv Fsubstring(repv string, repv start, repv end);
 
248
extern repv Fconcat(repv);
 
249
extern repv Flength(repv);
 
250
extern repv Fcopy_sequence(repv);
 
251
extern repv Felt(repv, repv);
 
252
extern repv Fcond(repv, repv);
 
253
extern repv Fapply(repv);
 
254
extern repv Fload(repv file, repv noerr_p, repv nopath_p,
 
255
                  repv nosuf_p, repv in_env);
 
256
extern repv Fequal(repv, repv);
 
257
extern repv Feq(repv, repv);
 
258
extern repv Fstring_head_eq(repv, repv);
 
259
extern repv Fnum_eq(repv args);
 
260
extern repv Fnum_noteq(repv args);
 
261
extern repv Fgtthan(repv);
 
262
extern repv Fgethan(repv);
 
263
extern repv Fltthan(repv);
 
264
extern repv Flethan(repv);
 
265
extern repv Fmax(repv);
 
266
extern repv Fmin(repv);
 
267
extern repv Fnull(repv);
 
268
extern repv Fatom(repv);
 
269
extern repv Fconsp(repv);
 
270
extern repv Flistp(repv);
 
271
extern repv Fstringp(repv);
 
272
extern repv Fvectorp(repv);
 
273
extern repv Fbytecodep(repv);
 
274
extern repv Ffunctionp(repv);
 
275
extern repv Fmacrop(repv);
 
276
extern repv Fspecial_form_p(repv);
 
277
extern repv Fsubrp(repv arg);
 
278
extern repv Fsequencep(repv arg);
 
279
extern repv FSdocumentation(repv subr, repv useVar);
 
280
extern repv FSname(repv subr, repv useVar);
 
281
extern repv Fcall_hook(repv hook, repv arg_list, repv type);
 
282
extern repv Fthrow(repv, repv);
 
283
 
 
284
/* from lispmach.c */
 
285
extern repv Qbytecode_error;
 
286
extern repv Fvalidate_byte_code(repv bc_major, repv bc_minor);
 
287
extern repv Fmake_byte_code_subr(repv args);
 
288
 
 
289
/* from macros.c */
 
290
extern repv Fmacroexpand(repv, repv);
 
291
 
 
292
/* from main.c */
 
293
extern void rep_init(char *prog_name, int *argc, char ***argv,
 
294
                     void (*sys_symbols)(void), void (*sys_usage)(void));
 
295
extern void rep_init_from_dump(char *prog_name, int *argc, char ***argv,
 
296
                               void (*sys_symbols)(void),
 
297
                               void (*sys_usage)(void),
 
298
                               char *dump_file);
 
299
extern repv rep_load_environment (repv file);
 
300
extern void rep_kill(void);
 
301
extern rep_bool rep_get_option (char *option, repv *argp);
 
302
extern rep_bool rep_on_idle(long since_last_event);
 
303
extern rep_bool rep_handle_input_exception(repv *result_p);
 
304
extern int rep_top_level_exit (void);
 
305
extern void *rep_common_db;
 
306
extern int rep_recurse_depth;
 
307
extern rep_bool (*rep_on_idle_fun)(int since_last);
 
308
extern repv (*rep_event_loop_fun)(void);
 
309
extern repv Qidle_hook;
 
310
extern void (*rep_on_termination_fun)(void);
 
311
extern repv Qexit, Qquit, Qtop_level, Qcommand_line_args;
 
312
extern repv Qbatch_mode, Qinterpreted_mode, Qprogram_name;
 
313
extern repv Qerror_mode, Qinterrupt_mode;
 
314
extern repv Frecursive_edit(void);
 
315
extern repv rep_top_level_recursive_edit (void);
 
316
extern repv Frecursion_depth(void);
 
317
extern repv Fget_command_line_option (repv, repv);
 
318
 
 
319
/* from message.c */
 
320
enum rep_message {
 
321
    rep_messagen = 0,
 
322
    rep_message,
 
323
    rep_messagef,
 
324
    rep_save_message,
 
325
    rep_append_message,
 
326
    rep_reset_message,
 
327
    rep_restore_message,
 
328
    rep_redisplay_message
 
329
};
 
330
extern void (*rep_message_fun)(enum rep_message fn, ...);
 
331
 
 
332
/* from misc.c */
 
333
extern u_char *rep_str_dupn(const u_char *old, int len);
 
334
extern void (*rep_beep_fun)(void);
 
335
extern repv Qoperating_system, Qwindow_system, Qprocess_environment;
 
336
extern repv Qbuild_id_string;
 
337
extern repv Qupcase_table, Qdowncase_table, Qflatten_table;
 
338
extern repv Fbeep(void);
 
339
extern repv Fcomplete_string(repv existing, repv arg_list, repv fold);
 
340
extern repv Fcurrent_time(void);
 
341
extern repv Ffix_time(repv time);
 
342
extern repv Fcurrent_time_string(repv time, repv format);
 
343
extern repv Ftime_later_p(repv t1, repv t2);
 
344
extern repv Fsleep_for(repv secs, repv msecs);
 
345
extern repv Fsit_for(repv secs, repv msecs);
 
346
extern repv Fuser_login_name(void);
 
347
extern repv Fuser_full_name(repv arg);
 
348
extern repv Fuser_home_directory(repv user);
 
349
extern repv Fsystem_name(void);
 
350
extern repv Fmessage(repv string, repv now);
 
351
extern repv Frandom(repv arg);
 
352
extern repv Ftranslate_string(repv string, repv table);
 
353
extern repv Falpha_char_p(repv);
 
354
extern repv Fupper_case_p(repv);
 
355
extern repv Flower_case_p(repv);
 
356
extern repv Fdigit_char_p(repv);
 
357
extern repv Falphanumericp(repv);
 
358
extern repv Fspace_char_p(repv);
 
359
extern repv Fchar_upcase(repv);
 
360
extern repv Fchar_downcase(repv);
 
361
 
 
362
/* from numbers.c */
 
363
extern repv rep_make_long_uint (u_long in);
 
364
extern repv rep_make_long_int (long in);
 
365
extern u_long rep_get_long_uint (repv in);
 
366
extern long rep_get_long_int (repv in);
 
367
extern repv rep_make_longlong_int (rep_long_long in);
 
368
extern rep_long_long rep_get_longlong_int (repv in);
 
369
extern repv rep_make_float (double in, rep_bool force);
 
370
extern double rep_get_float (repv in);
 
371
extern int rep_compare_numbers (repv n1, repv n2);
 
372
extern char *rep_print_number_to_string (repv obj, int radix, int prec);
 
373
extern repv rep_number_foldl (repv args, repv (*op)(repv, repv));
 
374
extern repv rep_integer_foldl (repv args, repv (*op)(repv, repv));
 
375
extern repv rep_foldl (repv args, repv (*op)(repv, repv));
 
376
extern repv rep_number_add (repv x, repv y);
 
377
extern repv rep_number_neg (repv x);
 
378
extern repv rep_number_sub (repv x, repv y);
 
379
extern repv rep_number_mul (repv x, repv y);
 
380
extern repv rep_number_div (repv x, repv y);
 
381
extern repv rep_number_lognot (repv x);
 
382
extern repv rep_number_logior (repv x, repv y);
 
383
extern repv rep_number_logxor (repv x, repv y);
 
384
extern repv rep_number_logand (repv x, repv y);
 
385
extern repv rep_number_max (repv x, repv y);
 
386
extern repv rep_number_min (repv x, repv y);
 
387
extern repv rep_integer_gcd (repv x, repv y);
 
388
extern repv Feql(repv arg1, repv arg2);
 
389
extern repv Fplus(repv);
 
390
extern repv Fminus(repv);
 
391
extern repv Fproduct(repv);
 
392
extern repv Fdivide(repv);
 
393
extern repv Fremainder(repv n1, repv n2);
 
394
extern repv Fmod(repv n1, repv n2);
 
395
extern repv Fquotient(repv n1, repv n2);
 
396
extern repv Flognot(repv);
 
397
extern repv Fnot(repv);
 
398
extern repv Flogior(repv);
 
399
extern repv Flogxor(repv);
 
400
extern repv Flogand(repv);
 
401
extern repv Fplus1(repv);
 
402
extern repv Fsub1(repv);
 
403
extern repv Fash(repv, repv);
 
404
extern repv Ffloor (repv);
 
405
extern repv Fceiling (repv);
 
406
extern repv Ftruncate (repv);
 
407
extern repv Fround (repv);
 
408
extern repv Fexp (repv);
 
409
extern repv Flog (repv);
 
410
extern repv Fsin (repv);
 
411
extern repv Fcos (repv);
 
412
extern repv Ftan (repv);
 
413
extern repv Fasin (repv);
 
414
extern repv Facos (repv);
 
415
extern repv Fatan (repv, repv);
 
416
extern repv Fsqrt (repv);
 
417
extern repv Fexpt (repv, repv);
 
418
extern repv Fgcd (repv);
 
419
extern repv Fzerop(repv);
 
420
extern repv Fnumberp(repv);
 
421
extern repv Fintegerp(repv);
 
422
extern repv Frationalp(repv);
 
423
extern repv Frealp(repv);
 
424
extern repv Fexactp(repv);
 
425
extern repv Finexactp(repv);
 
426
extern repv Fexact_to_inexact(repv);
 
427
extern repv Finexact_to_exact(repv);
 
428
extern repv Fnumerator(repv);
 
429
extern repv Fdenominator(repv);
 
430
 
 
431
/* from streams.c */
 
432
extern repv Qformat_hooks_alist;
 
433
extern int rep_stream_getc(repv);
 
434
extern int rep_stream_ungetc(repv, int);
 
435
extern int rep_stream_putc(repv, int);
 
436
extern int rep_stream_puts(repv, void *, int, rep_bool);
 
437
extern int rep_stream_read_esc(repv, int *);
 
438
extern repv Fwrite(repv stream, repv data, repv len);
 
439
extern repv Fread_char(repv stream);
 
440
extern repv Fpeek_char(repv stream);
 
441
extern repv Fread_chars(repv stream, repv count);
 
442
extern repv Fread_line(repv stream);
 
443
extern repv Fcopy_stream(repv source, repv dest);
 
444
extern repv Fread(repv);
 
445
extern repv Fprint(repv, repv);
 
446
extern repv Fprin1(repv, repv);
 
447
extern repv Fprinc(repv, repv);
 
448
extern repv Fformat(repv);
 
449
extern repv Fmake_string_input_stream(repv string, repv start);
 
450
extern repv Fmake_string_output_stream(void);
 
451
extern repv Fget_output_stream_string(repv strm);
 
452
extern repv Finput_stream_p(repv arg);
 
453
extern repv Foutput_stream_p(repv arg);
 
454
 
 
455
/* from symbols.c */
 
456
extern repv rep_undefined_value;
 
457
extern repv (*rep_deref_local_symbol_fun)(repv sym);
 
458
extern repv (*rep_set_local_symbol_fun)(repv sym, repv val);
 
459
extern void rep_intern_static(repv *, repv);
 
460
extern repv rep_call_with_closure (repv closure,
 
461
                                   repv (*fun)(repv arg), repv arg);
 
462
extern repv rep_bind_symbol(repv, repv, repv);
 
463
extern int rep_unbind_symbols(repv);
 
464
extern repv rep_add_binding_to_env (repv env, repv sym, repv value);
 
465
extern repv rep_obarray;
 
466
extern repv Qt;
 
467
extern repv Qvariable_documentation, Qpermanent_local;
 
468
extern repv rep_void_value;
 
469
extern rep_bool rep_warn_shadowing;
 
470
extern repv Fmake_symbol(repv);
 
471
extern repv Fmake_obarray(repv);
 
472
extern repv Ffind_symbol(repv, repv);
 
473
extern repv Fintern_symbol(repv, repv);
 
474
extern repv Fintern(repv, repv);
 
475
extern repv Funintern(repv, repv);
 
476
extern repv Fmake_closure (repv function, repv name);
 
477
extern repv Fclosure_function (repv funarg);
 
478
extern repv Fset_closure_function (repv funarg, repv fun);
 
479
extern repv Fclosurep (repv arg);
 
480
extern repv Fsymbol_value(repv, repv);
 
481
extern repv Fdefvar(repv, repv);
 
482
extern repv Fset(repv, repv);
 
483
extern repv Fsetplist(repv, repv);
 
484
extern repv Fsymbol_name(repv);
 
485
extern repv Fdefault_value(repv, repv);
 
486
extern repv Fdefault_boundp(repv);
 
487
extern repv Fset_default(repv, repv);
 
488
extern repv Fboundp(repv);
 
489
extern repv Fsymbol_plist(repv);
 
490
extern repv Fgensym(void);
 
491
extern repv Fsymbolp(repv);
 
492
extern repv Fsetq(repv, repv);
 
493
extern repv Fmakunbound(repv);
 
494
extern repv Fget(repv, repv);
 
495
extern repv Fput(repv, repv, repv);
 
496
extern repv Fapropos(repv, repv, repv);
 
497
extern repv Fmake_variable_special (repv sym);
 
498
extern repv Fspecial_variable_p(repv sym);
 
499
extern repv Ftrace(repv sym);
 
500
extern repv Funtrace(repv sym);
 
501
extern repv Vobarray(repv val);
 
502
extern repv Fmake_keyword (repv in);
 
503
extern repv Fkeywordp (repv arg);
 
504
 
 
505
/* from structures.c */
 
506
extern repv rep_structure;
 
507
extern repv Fmake_binding_immutable (repv);
 
508
extern repv Fbinding_immutable_p (repv, repv);
 
509
extern repv Fexport_bindings (repv list);
 
510
extern repv Ffeaturep(repv);
 
511
extern repv Fprovide(repv);
 
512
extern repv Frequire(repv);
 
513
extern repv rep_push_structure_name (repv name);
 
514
extern repv rep_push_structure (const char *name);
 
515
extern repv rep_pop_structure (repv old);
 
516
extern void rep_alias_structure (const char *name);
 
517
extern repv rep_bootstrap_structure (const char *s);
 
518
extern repv rep_add_subr(rep_xsubr *, rep_bool);
 
519
extern void rep_structure_exports_all (repv s, rep_bool status);
 
520
extern void rep_structure_set_binds (repv s, rep_bool status);
 
521
 
 
522
/* from tuples.c */
 
523
extern repv rep_make_tuple (repv car, repv a, repv b);
 
524
extern void rep_mark_tuple (repv t);
 
525
 
 
526
/* from values.c */
 
527
extern repv Qafter_gc_hook;
 
528
extern rep_cons *rep_dumped_cons_start, *rep_dumped_cons_end;
 
529
extern rep_symbol *rep_dumped_symbols_start, *rep_dumped_symbols_end;
 
530
extern repv rep_dumped_non_constants;
 
531
extern int rep_guardian_type;
 
532
extern repv rep_box_pointer (void *p);
 
533
void *rep_unbox_pointer (repv v);
 
534
extern void rep_register_type(u_int code, char *name,
 
535
                              int (*compare)(repv, repv),
 
536
                              void (*princ)(repv, repv),
 
537
                              void (*print)(repv, repv),
 
538
                              void (*sweep)(void),
 
539
                              void (*mark)(repv),
 
540
                              void (*mark_type)(void),
 
541
                              int (*getc)(repv), int (*ungetc)(repv, int),
 
542
                              int (*putc)(repv, int),
 
543
                              int (*puts)(repv, void *, int, rep_bool),
 
544
                              repv (*bind)(repv), void (*unbind)(repv));
 
545
extern u_int rep_register_new_type(char *name,
 
546
                                   int (*compare)(repv, repv),
 
547
                                   void (*princ)(repv, repv),
 
548
                                   void (*print)(repv, repv),
 
549
                                   void (*sweep)(void),
 
550
                                   void (*mark)(repv),
 
551
                                   void (*mark_type)(void),
 
552
                                   int (*getc)(repv),
 
553
                                   int (*ungetc)(repv, int),
 
554
                                   int (*putc)(repv, int),
 
555
                                   int (*puts)(repv, void *, int, rep_bool),
 
556
                                   repv (*bind)(repv),
 
557
                                   void (*unbind)(repv));
 
558
extern rep_type *rep_get_data_type(u_int code);
 
559
extern int rep_value_cmp(repv, repv);
 
560
extern void rep_princ_val(repv, repv);
 
561
extern void rep_print_val(repv, repv);
 
562
extern repv rep_null_string(void);
 
563
extern repv rep_box_string (char *ptr, long len);
 
564
extern repv rep_make_string(long);
 
565
extern repv rep_string_dupn(const u_char *, long);
 
566
extern repv rep_string_dup(const u_char *);
 
567
extern repv rep_concat2(u_char *, u_char *);
 
568
extern repv rep_concat3(u_char *, u_char *, u_char *);
 
569
extern repv rep_concat4(u_char *s1, u_char *s2, u_char *s3, u_char *s4);
 
570
extern rep_bool rep_set_string_len(repv, long);
 
571
extern repv rep_list_1(repv);
 
572
extern repv rep_list_2(repv, repv);
 
573
extern repv rep_list_3(repv, repv, repv);
 
574
extern repv rep_list_4(repv, repv, repv, repv);
 
575
extern repv rep_list_5(repv, repv, repv, repv, repv);
 
576
extern repv rep_make_vector(int);
 
577
extern repv Fmake_primitive_guardian (void);
 
578
extern repv Fprimitive_guardian_push (repv g, repv obj);
 
579
extern repv Fprimitive_guardian_pop (repv g);
 
580
extern void rep_mark_static(repv *);
 
581
extern void rep_mark_value(repv);
 
582
extern repv Fcons(repv, repv);
 
583
extern rep_GC_root *rep_gc_root_stack;
 
584
extern rep_GC_n_roots *rep_gc_n_roots_stack;
 
585
extern repv Vgarbage_threshold(repv val);
 
586
extern repv Vidle_garbage_threshold(repv val);
 
587
extern repv Fgarbage_collect(repv noStats);
 
588
extern int rep_data_after_gc, rep_gc_threshold, rep_idle_gc_threshold;
 
589
extern rep_bool rep_in_gc;
 
590
 
 
591
#ifdef rep_HAVE_UNIX
 
592
 
 
593
/* from unix_dl.c */
 
594
extern rep_bool rep_find_c_symbol(void *, char **, void **);
 
595
extern void *rep_find_dl_symbol (repv feature, char *symbol);
 
596
 
 
597
/* from unix_files.c */
 
598
extern repv rep_lookup_errno(void);
 
599
extern u_long rep_file_length(repv file);
 
600
 
 
601
/* from unix_main.c */
 
602
extern u_long rep_time(void);
 
603
extern rep_long_long rep_utime (void);
 
604
extern void (*rep_register_input_fd_fun)(int fd, void (*callback)(int fd));
 
605
extern void (*rep_deregister_input_fd_fun)(int fd);
 
606
extern void rep_add_event_loop_callback (rep_bool (*callback)(void));
 
607
extern void rep_sleep_for(long secs, long msecs);
 
608
extern void rep_register_input_fd(int fd, void (*callback)(int fd));
 
609
extern void rep_deregister_input_fd(int fd);
 
610
extern void rep_map_inputs (void (*fun)(int fd, void (*callback)(int)));
 
611
extern void rep_mark_input_pending(int fd);
 
612
extern void rep_unix_set_fd_nonblocking(int fd);
 
613
extern void rep_unix_set_fd_blocking(int fd);
 
614
extern void rep_unix_set_fd_cloexec(int fd);
 
615
extern void rep_sig_restart(int sig, rep_bool flag);
 
616
extern repv rep_event_loop(void);
 
617
extern repv rep_sit_for(u_long timeout_msecs);
 
618
extern repv rep_accept_input_for_callbacks (u_long timeout_msecs,
 
619
                                            int ncallbacks,
 
620
                                            void (**callbacks)(int));
 
621
extern repv rep_accept_input_for_fds (u_long timeout_msecs,
 
622
                                      int nfds, int *fds);
 
623
extern repv rep_accept_input(u_long timeout_msecs, void (*callback)(int));
 
624
extern rep_bool rep_poll_input(int fd);
 
625
 
 
626
#ifdef DEBUG_SYS_ALLOC
 
627
extern void *rep_alloc(u_int length);
 
628
extern void *rep_realloc(void *ptr, u_int length);
 
629
extern void rep_free(void *ptr);
 
630
extern void rep_print_allocations(void);
 
631
#else
 
632
# include <stdlib.h>
 
633
# define rep_alloc(n) malloc(n)
 
634
# define rep_realloc(p,n) realloc(p,n)
 
635
# define rep_free(p) free(p)
 
636
#endif
 
637
 
 
638
extern void (*rep_redisplay_fun)(void);
 
639
extern int rep_input_timeout_secs;
 
640
extern repv Funix_print_allocations(void);
 
641
 
 
642
/* from unix_processes.c */
 
643
extern repv Qpipe, Qpty;
 
644
extern void (*rep_sigchld_fun) (void);
 
645
extern rep_bool rep_proc_periodically(void);
 
646
extern repv Fmake_process(repv stream, repv fun, repv dir,
 
647
                           repv prog, repv args);
 
648
extern repv Fstart_process(repv arg_list);
 
649
extern repv Fcall_process(repv arg_list);
 
650
extern repv Finterrupt_process(repv proc, repv grp);
 
651
extern repv Fkill_process(repv proc, repv grp);
 
652
extern repv Fstop_process(repv proc, repv grp);
 
653
extern repv Fcontinue_process(repv proc, repv grp);
 
654
extern repv Fprocess_exit_status(repv proc);
 
655
extern repv Fprocess_exit_value(repv proc);
 
656
extern repv Fprocess_id(repv proc);
 
657
extern repv Fprocess_running_p(repv proc);
 
658
extern repv Fprocess_stopped_p(repv proc);
 
659
extern repv Fprocess_in_use_p(repv proc);
 
660
extern repv Fprocessp(repv arg);
 
661
extern repv Fprocess_prog(repv proc);
 
662
extern repv Fset_process_prog(repv proc, repv prog);
 
663
extern repv Fprocess_args(repv proc);
 
664
extern repv Fset_process_args(repv proc, repv args);
 
665
extern repv Fprocess_output_stream(repv proc);
 
666
extern repv Fset_process_output_stream(repv proc, repv stream);
 
667
extern repv Fprocess_error_stream(repv proc);
 
668
extern repv Fset_process_error_stream(repv proc, repv stream);
 
669
extern repv Fprocess_function(repv proc);
 
670
extern repv Fset_process_function(repv proc, repv fn);
 
671
extern repv Fprocess_dir(repv proc);
 
672
extern repv Fset_process_dir(repv proc, repv dir);
 
673
extern repv Fprocess_connection_type(repv proc);
 
674
extern repv Fset_process_connection_type(repv proc, repv type);
 
675
extern repv Factive_processes(void);
 
676
extern repv Faccept_process_output(repv secs, repv msecs);
 
677
void rep_register_process_input_handler (void (*handler)(int));
 
678
 
 
679
#endif /* rep_HAVE_UNIX */
 
680
 
 
681
/* in plugins */
 
682
extern repv rep_dl_init (void);
 
683
extern void rep_dl_kill (void);
 
684
 
 
685
#endif /* REP_SUBRS_H */