a68g-prelude.h

     
   1  //! @file a68g-prelude.h
   2  //! @author J. Marcel van der Veer
   3  
   4  //! @section Copyright
   5  //!
   6  //! This file is part of Algol68G - an Algol 68 compiler-interpreter.
   7  //! Copyright 2001-2025 J. Marcel van der Veer [algol68g@xs4all.nl].
   8  
   9  //! @section License
  10  //!
  11  //! This program is free software; you can redistribute it and/or modify it 
  12  //! under the terms of the GNU General Public License as published by the 
  13  //! Free Software Foundation; either version 3 of the License, or 
  14  //! (at your option) any later version.
  15  //!
  16  //! This program is distributed in the hope that it will be useful, but 
  17  //! WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
  18  //! or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 
  19  //! more details. You should have received a copy of the GNU General Public 
  20  //! License along with this program. If not, see [http://www.gnu.org/licenses/].
  21  
  22  //! @section Synopsis
  23  //!
  24  //! RTS related definitions.
  25  
  26  #if !defined (__A68G_PRELUDE_H__)
  27  #define __A68G_PRELUDE_H__
  28  
  29  #define A68G_STD A68G_TRUE
  30  #define A68G_EXT A68G_FALSE
  31  
  32  // ALGOL68C type procs.
  33  
  34  #define A68C_DEFIO(name, pname, mode) {\
  35    m = a68g_proc (MODE (mode), M_REF_FILE, NO_MOID);\
  36    a68g_idf (A68G_EXT, "get" #name, m, genie_get_##pname);\
  37    m = a68g_proc (M_VOID, M_REF_FILE, MODE (mode), NO_MOID);\
  38    a68g_idf (A68G_EXT, "put" #name, m, genie_put_##pname);\
  39    m = a68g_proc (MODE (mode), NO_MOID);\
  40    a68g_idf (A68G_EXT, "read" #name, m, genie_read_##pname);\
  41    m = a68g_proc (M_VOID, MODE (mode), NO_MOID);\
  42    a68g_idf (A68G_EXT, "print" #name, m, genie_print_##pname);\
  43  }
  44  
  45  #define IS_NL_FF(ch) ((ch) == NEWLINE_CHAR || (ch) == FORMFEED_CHAR)
  46  
  47  #define A68G_MONAD(n, MODE, OP)\
  48  void n (NODE_T * p) {\
  49    MODE *i;\
  50    POP_OPERAND_ADDRESS (p, i, MODE);\
  51    VALUE (i) = OP (VALUE (i));\
  52  }
  53  
  54  #if (A68G_LEVEL >= 3)
  55  GPROC genie_lt_bits;
  56  GPROC genie_gt_bits;
  57  DOUBLE_T mp_to_double (NODE_T *, MP_T *, int);
  58  MP_T *double_to_mp (NODE_T *, MP_T *, DOUBLE_T, int, BOOL_T, int);
  59  MP_T *double_int_to_mp (NODE_T *, MP_T *, DOUBLE_NUM_T, int);
  60  #endif
  61  
  62  MOID_T *a68g_proc (MOID_T *, ...);
  63  void a68g_idf (BOOL_T, char *, MOID_T *, GPROC *);
  64  void a68g_prio (char *, int);
  65  void a68g_op (BOOL_T, char *, MOID_T *, GPROC *);
  66  void a68g_mode (int, char *, MOID_T **);
  67  A68G_REF c_string_to_row_char (NODE_T *, char *, size_t);
  68  A68G_REF c_to_a_string (NODE_T *, char *, size_t);
  69  A68G_REF empty_row (NODE_T *, MOID_T *);
  70  A68G_REF empty_string (NODE_T *);
  71  A68G_REF genie_make_row (NODE_T *, MOID_T *, int, ADDR_T);
  72  A68G_REF genie_store (NODE_T *, MOID_T *, A68G_REF *, A68G_REF *);
  73  A68G_REF heap_generator_2 (NODE_T *, MOID_T *, int, size_t);
  74  A68G_REF heap_generator_3 (NODE_T *, MOID_T *, int, int, size_t);
  75  A68G_REF heap_generator (NODE_T *, MOID_T *, size_t);
  76  A68G_REF tmp_to_a68g_string (NODE_T *, char *);
  77  ADDR_T calculate_internal_index (A68G_TUPLE *, int);
  78  BOOL_T close_device (NODE_T *, A68G_FILE *);
  79  BOOL_T genie_int_case_unit (NODE_T *, int, int *);
  80  BOOL_T increment_internal_index (A68G_TUPLE *, int);
  81  BOOL_T moid_needs_colouring (MOID_T *);
  82  char *a_to_c_string (NODE_T *, char *, A68G_REF);
  83  char *propagator_name (const PROP_PROC * p);
  84  FILE *a68g_fopen (char *, char *, char *);
  85  GPROC get_global_level;
  86  GPROC initialise_frame;
  87  int a68g_finite_real (REAL_T);
  88  int a68g_isinf_real (REAL_T);
  89  int a68g_isnan_real (REAL_T);
  90  int a68g_string_size (NODE_T *, A68G_REF);
  91  int char_value (int);
  92  int grep_in_string (char *, char *, int *, int *);
  93  INT_T a68g_round (REAL_T);
  94  PROP_T genie_generator (NODE_T *);
  95  REAL_T seconds (void);
  96  REAL_T ten_up (int);
  97  REAL_T wall_seconds (void);
  98  ssize_t io_read_conv (FILE_T, void *, size_t);
  99  ssize_t io_read (FILE_T, void *, size_t);
 100  ssize_t io_write_conv (FILE_T, const void *, size_t);
 101  ssize_t io_write (FILE_T, const void *, size_t);
 102  unt heap_available (void);
 103  void a68g_div_complex (A68G_REAL *, A68G_REAL *, A68G_REAL *);
 104  void a68g_exit (int);
 105  void a68g_exp_real_complex (A68G_REAL *, A68G_REAL *);
 106  void change_breakpoints (NODE_T *, unt, int, BOOL_T *, char *);
 107  void change_masks (NODE_T *, unt, BOOL_T);
 108  void colour_object (BYTE_T *, MOID_T *);
 109  void deltagammainc (REAL_T *, REAL_T *, REAL_T, REAL_T, REAL_T, REAL_T);
 110  void exit_genie (NODE_T *, int);
 111  void gc_heap (NODE_T *, ADDR_T);
 112  void genie_call_event_routine (NODE_T *, MOID_T *, A68G_PROCEDURE *, ADDR_T, ADDR_T);
 113  void genie_call_operator (NODE_T *, ADDR_T);
 114  void genie_call_procedure (NODE_T *, MOID_T *, MOID_T *, MOID_T *, A68G_PROCEDURE *, ADDR_T, ADDR_T);
 115  void genie_check_initialisation (NODE_T *, BYTE_T *, MOID_T *);
 116  void genie_f_and_becomes (NODE_T *, MOID_T *, GPROC *);
 117  void genie_find_proc_op (NODE_T *, int *);
 118  void genie_free (NODE_T *);
 119  void genie_generator_internal (NODE_T *, MOID_T *, TAG_T *, LEAP_T, ADDR_T);
 120  void genie_generator_stowed (NODE_T *, BYTE_T *, NODE_T **, ADDR_T *);
 121  void genie_init_rng (void);
 122  void genie_preprocess (NODE_T *, int *, void *);
 123  void genie_push_undefined (NODE_T *, MOID_T *);
 124  void genie_read_standard_format (NODE_T *, MOID_T *, BYTE_T *, A68G_REF, int *);
 125  void genie_read_standard (NODE_T *, MOID_T *, BYTE_T *, A68G_REF);
 126  void genie_serial_clause (NODE_T *, jmp_buf *);
 127  void genie_serial_units (NODE_T *, NODE_T **, jmp_buf *, ADDR_T);
 128  void genie_string_to_value (NODE_T *, MOID_T *, BYTE_T *, A68G_REF);
 129  void genie_subscript (NODE_T *, A68G_TUPLE **, INT_T *, NODE_T **);
 130  void genie_value_to_string (NODE_T *, MOID_T *, BYTE_T *, int);
 131  void genie_variable_dec (NODE_T *, NODE_T **, ADDR_T);
 132  void genie_write_standard_format (NODE_T *, MOID_T *, BYTE_T *, A68G_REF, int *);
 133  void genie_write_standard (NODE_T *, MOID_T *, BYTE_T *, A68G_REF);
 134  void initialise_internal_index (A68G_TUPLE *, int);
 135  void io_close_tty_line (void);
 136  void io_write_string (FILE_T, const char *);
 137  void monitor_error (char *, char *);
 138  void mp_strtou (NODE_T *, MP_T *, char *, MOID_T *);
 139  void open_format_frame (NODE_T *, A68G_REF, A68G_FORMAT *, BOOL_T, BOOL_T);
 140  void print_internal_index (FILE_T, A68G_TUPLE *, int);
 141  void print_item (NODE_T *, FILE_T, BYTE_T *, MOID_T *);
 142  void purge_format_read (NODE_T *, A68G_REF);
 143  void purge_format_write (NODE_T *, A68G_REF);
 144  void single_step (NODE_T *, unt);
 145  void skip_nl_ff (NODE_T *, int *, A68G_REF);
 146  void stack_dump (FILE_T, ADDR_T, int, int *);
 147  void value_sign_error (NODE_T *, MOID_T *, A68G_REF);
 148  void where_in_source (FILE_T, NODE_T *);
 149  
 150  // Standard prelude RTS
 151  
 152  GPROC genie_a68g_argc;
 153  GPROC genie_a68g_argv;
 154  GPROC genie_abend;
 155  GPROC genie_abs_bits;
 156  GPROC genie_abs_bool;
 157  GPROC genie_abs_char;
 158  GPROC genie_abs_complex;
 159  GPROC genie_abs_int;
 160  GPROC genie_abs_real;
 161  GPROC genie_acos_complex;
 162  GPROC genie_acosdg_real;
 163  GPROC genie_acosh_complex;
 164  GPROC genie_acosh_real;
 165  GPROC genie_acos_real;
 166  GPROC genie_acotdg_real;
 167  GPROC genie_acot_real;
 168  GPROC genie_acsc_real;
 169  GPROC genie_acscdg_real;
 170  GPROC genie_add_bits;
 171  GPROC genie_add_bytes;
 172  GPROC genie_add_char;
 173  GPROC genie_add_complex;
 174  GPROC genie_add_int;
 175  GPROC genie_add_long_bytes;
 176  GPROC genie_add_mp_int;
 177  GPROC genie_add_real;
 178  GPROC genie_add_string;
 179  GPROC genie_and_bits;
 180  GPROC genie_and_bool;
 181  GPROC genie_argc;
 182  GPROC genie_arg_complex;
 183  GPROC genie_argv;
 184  GPROC genie_asec_real;
 185  GPROC genie_asecdg_real;
 186  GPROC genie_asin_complex;
 187  GPROC genie_asindg_real;
 188  GPROC genie_asinh_complex;
 189  GPROC genie_asinh_real;
 190  GPROC genie_asin_real;
 191  GPROC genie_associate;
 192  GPROC genie_atan2dg_real;
 193  GPROC genie_atan2_real;
 194  GPROC genie_atan_complex;
 195  GPROC genie_atandg_real;
 196  GPROC genie_atanh_complex;
 197  GPROC genie_atanh_real;
 198  GPROC genie_atan_real;
 199  GPROC genie_backspace;
 200  GPROC genie_backtrace;
 201  GPROC genie_beta_inc_cf_real;
 202  GPROC genie_beta_real;
 203  GPROC genie_bin_int;
 204  GPROC genie_bin_possible;
 205  GPROC genie_bits;
 206  GPROC genie_bits_lengths;
 207  GPROC genie_bits_pack;
 208  GPROC genie_bits_shorths;
 209  GPROC genie_bits_width;
 210  GPROC genie_blank_char;
 211  GPROC genie_block;
 212  GPROC genie_break;
 213  GPROC genie_bytes_lengths;
 214  GPROC genie_bytespack;
 215  GPROC genie_bytes_shorths;
 216  GPROC genie_bytes_width;
 217  GPROC genie_cd;
 218  GPROC genie_char_in_string;
 219  GPROC genie_choose_real;
 220  GPROC genie_clear_bits;
 221  GPROC genie_clear_long_bits;
 222  GPROC genie_close;
 223  GPROC genie_columns;
 224  GPROC genie_complex_lengths;
 225  GPROC genie_complex_shorths;
 226  GPROC genie_compressible;
 227  GPROC genie_conj_complex;
 228  GPROC genie_cas_real;
 229  GPROC genie_cos_complex;
 230  GPROC genie_cosdg_real;
 231  GPROC genie_cosh_complex;
 232  GPROC genie_cosh_real;
 233  GPROC genie_cospi_real;
 234  GPROC genie_cos_real;
 235  GPROC genie_cotdg_real;
 236  GPROC genie_cotpi_real;
 237  GPROC genie_cot_real;
 238  GPROC genie_cputime;
 239  GPROC genie_create;
 240  GPROC genie_create_pipe;
 241  GPROC genie_csc_real;
 242  GPROC genie_cscdg_real;
 243  GPROC genie_curt_real;
 244  GPROC genie_r128mach;
 245  GPROC genie_debug;
 246  GPROC genie_declaration;
 247  GPROC genie_directory;
 248  GPROC genie_divab_complex;
 249  GPROC genie_divab_real;
 250  GPROC genie_div_complex;
 251  GPROC genie_div_int;
 252  GPROC genie_div_real;
 253  GPROC genie_draw_possible;
 254  GPROC genie_dyad_elems;
 255  GPROC genie_dyad_lwb;
 256  GPROC genie_dyad_upb;
 257  GPROC genie_elem_bits;
 258  GPROC genie_elem_bytes;
 259  GPROC genie_elem_long_bits;
 260  GPROC genie_elem_long_bits;
 261  GPROC genie_elem_long_bytes;
 262  GPROC genie_elem_string;
 263  GPROC genie_enquiry_clause;
 264  GPROC genie_entier_real;
 265  GPROC genie_eof;
 266  GPROC genie_eoln;
 267  GPROC genie_eq_bits;
 268  GPROC genie_eq_bool;
 269  GPROC genie_eq_bytes;
 270  GPROC genie_eq_char;
 271  GPROC genie_eq_complex;
 272  GPROC genie_eq_int;
 273  GPROC genie_eq_long_bytes;
 274  GPROC genie_eq_real;
 275  GPROC genie_eq_string;
 276  GPROC genie_erase;
 277  GPROC genie_erfc_real;
 278  GPROC genie_erf_real;
 279  GPROC genie_errno;
 280  GPROC genie_error_char;
 281  GPROC genie_establish;
 282  GPROC genie_evaluate;
 283  GPROC genie_exec;
 284  GPROC genie_exec_sub;
 285  GPROC genie_exec_sub_output;
 286  GPROC genie_exec_sub_pipeline;
 287  GPROC genie_exp_char;
 288  GPROC genie_exp_complex;
 289  GPROC genie_exp_real;
 290  GPROC genie_exp_width;
 291  GPROC genie_fact_real;
 292  GPROC genie_file_is_block_device;
 293  GPROC genie_file_is_char_device;
 294  GPROC genie_file_is_directory;
 295  GPROC genie_file_is_regular;
 296  GPROC genie_file_mode;
 297  GPROC genie_first_random;
 298  GPROC genie_flip_char;
 299  GPROC genie_flop_char;
 300  GPROC genie_fork;
 301  GPROC genie_formfeed_char;
 302  GPROC genie_gamma_inc_f_real;
 303  GPROC genie_gamma_inc_gf_real;
 304  GPROC genie_gamma_inc_g_real;
 305  GPROC genie_gamma_inc_h_real;
 306  GPROC genie_gamma_real;
 307  GPROC genie_garbage_collections;
 308  GPROC genie_garbage_freed;
 309  GPROC genie_garbage_refused;
 310  GPROC genie_garbage_seconds;
 311  GPROC genie_gc_heap;
 312  GPROC genie_ge_bits;
 313  GPROC genie_ge_bytes;
 314  GPROC genie_ge_char;
 315  GPROC genie_ge_int;
 316  GPROC genie_ge_long_bits;
 317  GPROC genie_ge_long_bytes;
 318  GPROC genie_generator_bounds;
 319  GPROC genie_ge_real;
 320  GPROC genie_ge_string;
 321  GPROC genie_get_bits;
 322  GPROC genie_get_bool;
 323  GPROC genie_get_char;
 324  GPROC genie_get_complex;
 325  GPROC genie_getenv;
 326  GPROC genie_get_int;
 327  GPROC genie_get_long_bits;
 328  GPROC genie_get_long_int;
 329  GPROC genie_get_long_real;
 330  GPROC genie_get_possible;
 331  GPROC genie_get_real;
 332  GPROC genie_get_sound;
 333  GPROC genie_get_string;
 334  GPROC genie_get_text;
 335  GPROC genie_getf_text;
 336  GPROC genie_grep_in_string;
 337  GPROC genie_grep_in_substring;
 338  GPROC genie_gt_bytes;
 339  GPROC genie_gt_char;
 340  GPROC genie_gt_int;
 341  GPROC genie_gt_long_bytes;
 342  GPROC genie_gt_real;
 343  GPROC genie_gt_string;
 344  GPROC genie_i32mach;
 345  GPROC genie_i_complex;
 346  GPROC genie_identity_dec;
 347  GPROC genie_idf;
 348  GPROC genie_idle;
 349  GPROC genie_i_int_complex;
 350  GPROC genie_im_complex;
 351  GPROC genie_infinity_real;
 352  GPROC genie_init_heap;
 353  GPROC genie_init_transput;
 354  GPROC genie_int_lengths;
 355  GPROC genie_int_shorths;
 356  GPROC genie_int_width;
 357  GPROC genie_inverfc_real;
 358  GPROC genie_inverf_real;
 359  GPROC genie_is_alnum;
 360  GPROC genie_is_alpha;
 361  GPROC genie_is_cntrl;
 362  GPROC genie_is_digit;
 363  GPROC genie_is_graph;
 364  GPROC genie_is_lower;
 365  GPROC genie_is_print;
 366  GPROC genie_is_punct;
 367  GPROC genie_is_space;
 368  GPROC genie_is_upper;
 369  GPROC genie_is_xdigit;
 370  GPROC genie_last_char_in_string;
 371  GPROC genie_le_bits;
 372  GPROC genie_le_bytes;
 373  GPROC genie_le_char;
 374  GPROC genie_le_int;
 375  GPROC genie_le_long_bits;
 376  GPROC genie_le_long_bytes;
 377  GPROC genie_leng_bytes;
 378  GPROC genie_lengthen_long_bits_to_row_bool;
 379  GPROC genie_le_real;
 380  GPROC genie_le_string;
 381  GPROC genie_lj_e_12_6;
 382  GPROC genie_lj_f_12_6;
 383  GPROC genie_ln1p_real;
 384  GPROC genie_ln_beta_real;
 385  GPROC genie_ln_choose_real;
 386  GPROC genie_ln_complex;
 387  GPROC genie_ln_fact_real;
 388  GPROC genie_ln_gamma_real;
 389  GPROC genie_ln_real;
 390  GPROC genie_localtime;
 391  GPROC genie_lock;
 392  GPROC genie_log_real;
 393  GPROC genie_long_bits_pack;
 394  GPROC genie_long_bits_width;
 395  GPROC genie_long_bytespack;
 396  GPROC genie_long_bytes_width;
 397  GPROC genie_long_exp_width;
 398  GPROC genie_long_int_width;
 399  GPROC genie_long_max_bits;
 400  GPROC genie_long_max_int;
 401  GPROC genie_long_max_real;
 402  GPROC genie_long_min_real;
 403  GPROC genie_long_next_random;
 404  GPROC genie_long_real_width;
 405  GPROC genie_long_small_real;
 406  GPROC genie_lt_bytes;
 407  GPROC genie_lt_char;
 408  GPROC genie_lt_int;
 409  GPROC genie_lt_long_bytes;
 410  GPROC genie_lt_real;
 411  GPROC genie_lt_string;
 412  GPROC genie_make_term;
 413  GPROC genie_max_abs_char;
 414  GPROC genie_max_bits;
 415  GPROC genie_max_int;
 416  GPROC genie_max_real;
 417  GPROC genie_min_real;
 418  GPROC genie_minusab_complex;
 419  GPROC genie_minusab_int;
 420  GPROC genie_minusab_mp_int;
 421  GPROC genie_minusab_real;
 422  GPROC genie_minus_complex;
 423  GPROC genie_minus_infinity_real;
 424  GPROC genie_minus_int;
 425  GPROC genie_minus_real;
 426  GPROC genie_modab_int;
 427  GPROC genie_mod_bits;
 428  GPROC genie_mod_int;
 429  GPROC genie_monad_elems;
 430  GPROC genie_monad_lwb;
 431  GPROC genie_monad_upb;
 432  GPROC genie_mp_radix;
 433  GPROC genie_mul_complex;
 434  GPROC genie_mul_int;
 435  GPROC genie_mul_mp_int;
 436  GPROC genie_mul_real;
 437  GPROC genie_ne_bits;
 438  GPROC genie_ne_bool;
 439  GPROC genie_ne_bytes;
 440  GPROC genie_ne_char;
 441  GPROC genie_ne_complex;
 442  GPROC genie_ne_int;
 443  GPROC genie_ne_long_bytes;
 444  GPROC genie_ne_real;
 445  GPROC genie_ne_string;
 446  GPROC genie_new_line;
 447  GPROC genie_newline_char;
 448  GPROC genie_new_page;
 449  GPROC genie_new_sound;
 450  GPROC genie_next_random;
 451  GPROC genie_next_rnd;
 452  GPROC genie_not_bits;
 453  GPROC genie_not_bool;
 454  GPROC genie_null_char;
 455  GPROC genie_odd_int;
 456  GPROC genie_on_file_end;
 457  GPROC genie_on_format_end;
 458  GPROC genie_on_format_error;
 459  GPROC genie_on_gc_event;
 460  GPROC genie_on_line_end;
 461  GPROC genie_on_open_error;
 462  GPROC genie_on_page_end;
 463  GPROC genie_on_transput_error;
 464  GPROC genie_on_value_error;
 465  GPROC genie_open;
 466  GPROC genie_operator_dec;
 467  GPROC genie_or_bits;
 468  GPROC genie_or_bool;
 469  GPROC genie_overab_int;
 470  GPROC genie_over_bits;
 471  GPROC genie_over_int;
 472  GPROC genie_pi;
 473  GPROC genie_plusab_bytes;
 474  GPROC genie_plusab_complex;
 475  GPROC genie_plusab_int;
 476  GPROC genie_plusab_long_bytes;
 477  GPROC genie_plusab_mp_int;
 478  GPROC genie_plusab_real;
 479  GPROC genie_plusab_string;
 480  GPROC genie_plusto_bytes;
 481  GPROC genie_plusto_long_bytes;
 482  GPROC genie_plusto_string;
 483  GPROC genie_pow_complex_int;
 484  GPROC genie_pow_int;
 485  GPROC genie_pow_real;
 486  GPROC genie_pow_real_int;
 487  GPROC genie_preemptive_gc_heap;
 488  GPROC genie_print_bits;
 489  GPROC genie_print_bool;
 490  GPROC genie_print_char;
 491  GPROC genie_print_complex;
 492  GPROC genie_print_int;
 493  GPROC genie_print_long_bits;
 494  GPROC genie_print_long_int;
 495  GPROC genie_print_long_real;
 496  GPROC genie_print_real;
 497  GPROC genie_print_string;
 498  GPROC genie_print_string;
 499  GPROC genie_proc_variable_dec;
 500  GPROC genie_program_idf;
 501  GPROC genie_put_bits;
 502  GPROC genie_put_bool;
 503  GPROC genie_put_char;
 504  GPROC genie_put_complex;
 505  GPROC genie_put_int;
 506  GPROC genie_put_long_bits;
 507  GPROC genie_put_long_int;
 508  GPROC genie_put_long_real;
 509  GPROC genie_put_possible;
 510  GPROC genie_put_real;
 511  GPROC genie_put_string;
 512  GPROC genie_put_text;
 513  GPROC genie_putf_text;
 514  GPROC genie_pwd;
 515  GPROC genie_read;
 516  GPROC genie_read_bin;
 517  GPROC genie_read_bin_file;
 518  GPROC genie_read_bits;
 519  GPROC genie_read_bool;
 520  GPROC genie_read_char;
 521  GPROC genie_read_complex;
 522  GPROC genie_read_file;
 523  GPROC genie_read_file_format;
 524  GPROC genie_read_format;
 525  GPROC genie_read_int;
 526  GPROC genie_read_line;
 527  GPROC genie_read_long_bits;
 528  GPROC genie_read_long_int;
 529  GPROC genie_read_long_real;
 530  GPROC genie_read_real;
 531  GPROC genie_read_string;
 532  GPROC genie_real_lengths;
 533  GPROC genie_realpath;
 534  GPROC genie_real_shorths;
 535  GPROC genie_real_width;
 536  GPROC genie_re_complex;
 537  GPROC genie_reidf_possible;
 538  GPROC genie_repr_char;
 539  GPROC genie_reset;
 540  GPROC genie_reset_errno;
 541  GPROC genie_reset_possible;
 542  GPROC genie_rol_bits;
 543  GPROC genie_ror_bits;
 544  GPROC genie_round_real;
 545  GPROC genie_rows;
 546  GPROC genie_sec_real;
 547  GPROC genie_secdg_real;
 548  GPROC genie_set;
 549  GPROC genie_set_bits;
 550  GPROC genie_set_long_bits;
 551  GPROC genie_set_possible;
 552  GPROC genie_set_return_code;
 553  GPROC genie_set_sound;
 554  GPROC genie_shl_bits;
 555  GPROC genie_shorten_bytes;
 556  GPROC genie_shr_bits;
 557  GPROC genie_sign_int;
 558  GPROC genie_sign_real;
 559  GPROC genie_sin_complex;
 560  GPROC genie_sindg_real;
 561  GPROC genie_sinh_complex;
 562  GPROC genie_sinh_real;
 563  GPROC genie_sinpi_real;
 564  GPROC genie_sin_real;
 565  GPROC genie_sleep;
 566  GPROC genie_small_real;
 567  GPROC genie_sort_row_string;
 568  GPROC genie_sound_channels;
 569  GPROC genie_sound_rate;
 570  GPROC genie_sound_resolution;
 571  GPROC genie_sound_samples;
 572  GPROC genie_space;
 573  GPROC genie_sqrt_complex;
 574  GPROC genie_sqrt_real;
 575  GPROC genie_stack_pointer;
 576  GPROC genie_stand_back;
 577  GPROC genie_stand_back_channel;
 578  GPROC genie_stand_draw_channel;
 579  GPROC genie_stand_error;
 580  GPROC genie_stand_error_channel;
 581  GPROC genie_stand_in;
 582  GPROC genie_stand_in_channel;
 583  GPROC genie_stand_out;
 584  GPROC genie_stand_out_channel;
 585  GPROC genie_strerror;
 586  GPROC genie_string;
 587  GPROC genie_stringf;
 588  GPROC genie_string_in_string;
 589  GPROC genie_sub_bits;
 590  GPROC genie_sub_complex;
 591  GPROC genie_sub_in_string;
 592  GPROC genie_sub_int;
 593  GPROC genie_sub_mp_int;
 594  GPROC genie_sub_real;
 595  GPROC genie_system;
 596  GPROC genie_system_heap_pointer;
 597  GPROC genie_system_stack_pointer;
 598  GPROC genie_system_stack_size;
 599  GPROC genie_tab_char;
 600  GPROC genie_tan_complex;
 601  GPROC genie_tandg_real;
 602  GPROC genie_tanh_complex;
 603  GPROC genie_tanh_real;
 604  GPROC genie_tanpi_real;
 605  GPROC genie_tan_real;
 606  GPROC genie_term;
 607  GPROC genie_timesab_complex;
 608  GPROC genie_timesab_int;
 609  GPROC genie_timesab_mp_int;
 610  GPROC genie_timesab_real;
 611  GPROC genie_timesab_string;
 612  GPROC genie_times_bits;
 613  GPROC genie_times_char_int;
 614  GPROC genie_times_int_char;
 615  GPROC genie_times_int_string;
 616  GPROC genie_times_string_int;
 617  GPROC genie_to_lower;
 618  GPROC genie_to_upper;
 619  GPROC genie_unimplemented;
 620  GPROC genie_utctime;
 621  GPROC genie_walltime;
 622  GPROC genie_waitpid;
 623  GPROC genie_whole;
 624  GPROC genie_write;
 625  GPROC genie_write_bin;
 626  GPROC genie_write_bin_file;
 627  GPROC genie_write_file;
 628  GPROC genie_write_file_format;
 629  GPROC genie_write_format;
 630  GPROC genie_xor_bits;
 631  GPROC genie_xor_bool;
 632  
 633  #if defined (S_ISFIFO)
 634  GPROC genie_file_is_fifo;
 635  #endif
 636  
 637  #if defined (S_ISLNK)
 638  GPROC genie_file_is_link;
 639  #endif
 640  
 641  #if defined (BUILD_PARALLEL_CLAUSE)
 642  GPROC genie_down_sema;
 643  GPROC genie_level_int_sema;
 644  GPROC genie_level_sema_int;
 645  GPROC genie_up_sema;
 646  #endif
 647  
 648  #if defined (HAVE_CURL)
 649  GPROC genie_http_content;
 650  GPROC genie_https_content;
 651  #endif
 652  
 653  #if defined (HAVE_CURSES)
 654  GPROC genie_curses_clear;
 655  GPROC genie_curses_del_char;
 656  GPROC genie_curses_green;
 657  GPROC genie_curses_cyan;
 658  GPROC genie_curses_white;
 659  GPROC genie_curses_red;
 660  GPROC genie_curses_yellow;
 661  GPROC genie_curses_magenta;
 662  GPROC genie_curses_blue;
 663  GPROC genie_curses_green_inverse;
 664  GPROC genie_curses_cyan_inverse;
 665  GPROC genie_curses_white_inverse;
 666  GPROC genie_curses_red_inverse;
 667  GPROC genie_curses_yellow_inverse;
 668  GPROC genie_curses_magenta_inverse;
 669  GPROC genie_curses_blue_inverse;
 670  GPROC genie_curses_columns;
 671  GPROC genie_curses_end;
 672  GPROC genie_curses_getchar;
 673  GPROC genie_curses_lines;
 674  GPROC genie_curses_move;
 675  GPROC genie_curses_putchar;
 676  GPROC genie_curses_refresh;
 677  GPROC genie_curses_start;
 678  #endif
 679  
 680  #if defined (HAVE_POSTGRESQL)
 681  GPROC genie_pq_backendpid;
 682  GPROC genie_pq_cmdstatus;
 683  GPROC genie_pq_cmdtuples;
 684  GPROC genie_pq_connectdb;
 685  GPROC genie_pq_db;
 686  GPROC genie_pq_errormessage;
 687  GPROC genie_pq_exec;
 688  GPROC genie_pq_fformat;
 689  GPROC genie_pq_finish;
 690  GPROC genie_pq_fname;
 691  GPROC genie_pq_fnumber;
 692  GPROC genie_pq_getisnull;
 693  GPROC genie_pq_getvalue;
 694  GPROC genie_pq_host;
 695  GPROC genie_pq_nfields;
 696  GPROC genie_pq_ntuples;
 697  GPROC genie_pq_options;
 698  GPROC genie_pq_parameterstatus;
 699  GPROC genie_pq_pass;
 700  GPROC genie_pq_port;
 701  GPROC genie_pq_protocolversion;
 702  GPROC genie_pq_reset;
 703  GPROC genie_pq_resulterrormessage;
 704  GPROC genie_pq_serverversion;
 705  GPROC genie_pq_socket;
 706  GPROC genie_pq_tty;
 707  GPROC genie_pq_user;
 708  #endif
 709  
 710  #if defined (HAVE_GNU_PLOTUTILS)
 711  GPROC genie_draw_aspect;
 712  GPROC genie_draw_atom;
 713  GPROC genie_draw_background_colour;
 714  GPROC genie_draw_background_colour_name;
 715  GPROC genie_draw_circle;
 716  GPROC genie_draw_clear;
 717  GPROC genie_draw_colour;
 718  GPROC genie_draw_colour_name;
 719  GPROC genie_draw_fillstyle;
 720  GPROC genie_draw_fontname;
 721  GPROC genie_draw_fontsize;
 722  GPROC genie_draw_get_colour_name;
 723  GPROC genie_draw_line;
 724  GPROC genie_draw_linestyle;
 725  GPROC genie_draw_linewidth;
 726  GPROC genie_draw_move;
 727  GPROC genie_draw_point;
 728  GPROC genie_draw_rect;
 729  GPROC genie_draw_show;
 730  GPROC genie_draw_star;
 731  GPROC genie_draw_text;
 732  GPROC genie_draw_textangle;
 733  GPROC genie_make_device;
 734  #endif
 735  
 736  #if defined (BUILD_PARALLEL_CLAUSE)
 737  PROP_T genie_parallel (NODE_T *);
 738  BOOL_T is_main_thread (void);
 739  void genie_abend_all_threads (NODE_T *, jmp_buf *, NODE_T *);
 740  void genie_set_exit_from_threads (int);
 741  #define SAME_THREAD(p, q) (pthread_equal((p), (q)) != 0)
 742  #define OTHER_THREAD(p, q) (pthread_equal((p), (q)) == 0)
 743  #endif
 744  
 745  #if defined (BUILD_LINUX)
 746  GPROC genie_sigsegv;
 747  #endif
 748  
 749  #endif
     


© 2002-2025 J.M. van der Veer (jmvdveer@xs4all.nl)