view etc/ORDERS.EUROPE @ 28062:26edef632c89

This is a big redesign of failure-stack and register handling, prompted by bugs revealed when trying to add shy-groups. Overall, what happened is that loops are now structured a little differently, groups can be shy and the code is a little simpler. (enum re_opcode_t): Remove jump_past_alt, maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add on_failure_jump_(exclusive, loop and smart). Also fix the comment for (start|stop)_memory since they now only take one argument (the second has becomes unnecessary). (print_partial_compiled_pattern): Adjust for changes in re_opcode_t. (print_compiled_pattern): Use %ld to printf long ints and flush to make debugging a little easier. (union fail_stack_elt): Make the integer unsigned. (struct fail_stack_type): Add a `frame' element. (INIT_FAIL_STACK): Init `frame' as well. (POP_PATTERN_OP): New macro for re_compile_fastmap. (DEBUG_PUSH, DEBUG_POP): Remove. (NUM_REG_ITEMS): Remove. (NUM_NONREG_ITEMS): Adjust. (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE, TOP_FAILURE_HANDLE): New macros for the cycle detection. (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT). (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New macros. (PUSH_FAILURE_POINT): Don't push registers any more. The pattern address pushed is not the destination of the jump but the source of it instead. (NUM_FAILURE_ITEMS): Remove. (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop registers before the actual failure point). Don't hardcode any meaning for str==NULL anymore. (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE) (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED): Remove. (REG_UNSET_VALUE): Use NULL (why not?). (compile_range): Remove declaration since it doesn't exist. (struct compile_stack_elt_t): Remove inner_group_offset. (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove. (regex_grow_registers): Remove dead code. (FIXUP_ALT_JUMP): New macro. (regex_compile): Add shy-groups Change loops to use on_failure_jump_smart&jump instead of on_failure_jump&maybe_pop_jump. Change + loops to eliminate the initial (dummy_failure_)jump. Remove c1_base (looks like unused variable to me). Use `jump' instead of `jump_past_alt' and don't bother with push_dummy_failure in alternatives since it is now unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef emacs' for (re)allocating the stack. (re_compile_fastmap): Remove dead variables i and num_regs. Exit from loop when bufp->can_be_null rather than jumping to `done'. Avoid jumping backwards so as to ensure termination. Use PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of backreferences. Remove dead code in handling of `anychar'. (skip_noops, mutually_exclusive_p): New functions taken from the handling of `maybe_pop_jump' in re_match_2_internal. Slightly improve mutually_exclusive_p to handle ".+\n". ((lowest|highest)_active_reg, NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove. (re_match_2_internal): Use %p instead of 0x%x when printf'ing ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead variables. Push register (in `start_memory') on the stack rather than storing it in old_reg(start|end). Remove the cycle detection from `stop_memory', replaced by the use of on_failure_jump_loop for greedy loops. Add code for the new on_failure_jump_<foo>. Remove ad-hoc code in `on_failure_jump' to push more registers in the case of a loop. Take out code from `maybe_pop_jump' into separate functions and adapt it to the semantics of `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump and push_dummy_failure. Remove dummy_failure handling and handling of `failures to jump to on_failure_jump' (this last one was already dead code, it seems). ((group|alt|common_op)_match_null_string_p): Remove.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 08 Mar 2000 23:25:41 +0000
parents 6b5aacec5ace
children 23a1cea22d13
line wrap: on
line source

Order form for GNU Distribution Europe, Belgium.
Prices as of July 1998, and may change without notice.


Sportstraat 28					          Fax   : +32-9-2224976
9000 Gent					          Phone : +32-9-2227542
Belgium
europe-order@gnu.org

GNU Distribution Europe, Belgium sells GNU CD-ROMs, manuals and
t-shirts in Europe on behalf of the Free Software Foundation.
Ordering from GNU Distribution Europe, Belgium supports the GNU
project just like ordering from the Free Software Foundation, but
offers people in Europe additional convenient payment methods and a
lower overall price.

To order a Deluxe Distribution, please contact the FSF directly.


CD-ROMs, in ISO 9660 format

GNU Source Code CD-ROMs, Version 11 (March 1998) with X11R6.3:

____ @  9750 BEF = ______ BEF  for corporations and other organizations.

____ @  2550 BEF = ______ BEF  for individuals.

GNU Compiler Tools Binaries CD-ROM, Version 5 (March 1998) Edition:

____ @  8950 BEF = ______ BEF  for corporations and other organizations.

____ @  2350 BEF = ______ BEF  for individuals.


Manuals

____ @   950 BEF = ______ BEF  Programming in Emacs Lisp: An Introduction.

____ @   950 BEF = ______ BEF  Debugging with GDB, with a reference card.

____ @  1150 BEF = ______ BEF  GAWK: GNU Awk User's Guide.

____ @   950 BEF = ______ BEF  Make manual.

____ @   950 BEF = ______ BEF  Bison manual, with a reference card.

____ @   950 BEF = ______ BEF  Flex manual, with a reference card.

____ @  1150 BEF = ______ BEF  Texinfo manual.

____ @   750 BEF = ______ BEF  Termcap manual.

____ @  1400 BEF = ______ BEF  GNU Emacs manual, with a reference card.

____ @  2650 BEF = ______ BEF  GNU Emacs Lisp Reference manual.

____ @  2250 BEF = ______ BEF  Using and Porting GNU CC.

____ @  2250 BEF = ______ BEF  GNU C Library Reference Manual.

____ @  2300 BEF = ______ BEF  GNU Emacs Calc manual, with a reference card.


Reference Cards

The following reference cards, in packets of ten.  For single copies please
contact us.

____ @   500 BEF = ______ BEF  GNU Emacs version 20 reference cards.

____ @   500 BEF = ______ BEF  GNU Emacs Calc reference cards.

____ @   500 BEF = ______ BEF  GDB reference cards.

____ @   500 BEF = ______ BEF  Bison reference cards.

____ @   500 BEF = ______ BEF  Flex reference cards.


T-shirts

We have made new T-shirts for 1998.  The front contains the typing gnu
from our first T-shirt; the back has the preamble to the GNU General
Public License.

GNU/FSF T-shirts are thick 100% cotton in sizes: L, XL, XXL (they run
small) in colors: black, burgundy, blue-green, natural (off-white).
The sizes S and M are available in black and natural (off-white).
Size XXXL is avaiable in black only.  Please list 1st, 2nd, and 3rd
choice of color.

____ @   800 BEF = ______ BEF  Size _____

                              Color choice: 1st _______ 2nd _______ 3rd _______

____ @   800 BEF = ______ BEF  Size _____

                              Color choice: 1st _______ 2nd _______ 3rd _______

____ @   800 BEF = ______ BEF  Size  _____

                              Color choice: 1st _______ 2nd _______ 3rd _______

____ @   800 BEF = ______ BEF  Size _____

                              Color choice: 1st _______ 2nd _______ 3rd _______

                   ======
         Subtotal  ______ BEF

Tax and Shipping Costs

                + ______ BEF   For addresses in Belgium: add 21% sales tax
                               or give tax exempt number.  
                + ______ BEF   Shipping fee for other E.U. countries:
  			       150 BEF extra for addresses outside Belgium.
                               For shipments to Italy, please add an
                               additional 200 BEF (350 BEF total).
                + ______ BEF   C.O.D. fee (if you want C.O.D. shipping),
  			       500 BEF.
                + ______ BEF   Donation to Free Software Foundation

	          ======	
            TOTAL ______ BEF    


Note: The shipping fee for foreign destinations covers registered
mail.  Registered mail normally takes 4 to 5 days to arrive.  If you
would like shipping via air mail, or via courier, please contact GNU
Distribution Europe, Belgium for a price quote.

These prices are subject to change without notice. In particular, they
will very likely change if the exchange rate from USD to BEF changes
significantly.


Shipping Information

Name: ________________________________________________________________________

Mail Stop/Dept. Name: ________________________________________________________

Organization: ________________________________________________________________

Street Address: ______________________________________________________________

City, State/Province: ________________________________________________________

Zip Code/Postal Code Country: ________________________________________________

Telephone number in case of a problem with your order. _______________________

Fax number. __________________________________________________________________

E-mail Address: ______________________________________________________________

Payment can be made by Euro-cheque, credit card, bank transfer, or
wire-transfer in Belgian Francs. Credit card transactions will be run
by the Free Software Foundation at their office in the United States.
If you wish to pay by wire transfer, please contact us.
Please do not send cash through the mail; neither GNU Distribution
Europe -- Belgium nor the post office is responsible if the cash is
lost or stolen.
     ________________________________________________________________

For Credit Card Orders Only :

   The Free Software Foundation takes these credit cards: Carte Blanche,
   Diner's Club, Discover, JCB, MasterCard, Visa, and American Express.
   Please note that we are charged about 5% of an order's total amount
   in credit card processing fees. Please consider paying by check
   instead, or adding on a 5% donation to make up the difference. To
   place a credit card order, please give us this information:

Card type: ____________________________________________________

Account Number: _______________________________________________

Expiration Date: ______________________________________________

Cardholder's Signature: _______________________________________

Cardholder's Name: ____________________________________________

   Do not send your credit card number in email! It might be intercepted
   and used by someone else. Please use telephone, fax, or snail mail to
   send credit card orders.
     ________________________________________________________________


We do not have the staff to handle the billing of unpaid orders, so
please include your payment with your order.  If your order arrives
without payment, we will return it to you.

If you are a retail store, and want a retailer's discount, please
contact the FSF.

For orders from outside Belgium:

You are responsible for paying all taxes.  If you refuse to pay the     
applicable taxes of your country, the shipper will return the order.    

Bank P.C. : 000-1699992-67     V.A.T. : B.E-586.981.246       HRG : 181.641