Skip site navigation (1)Skip section navigation (2)
Date:      Wed,  5 Nov 2008 11:07:15 +0100 (CET)
From:      Olaf Seibert <olafs@cs.ru.nl>
To:        FreeBSD-gnats-submit@FreeBSD.org
Cc:        Olaf Seibert <olafs@cs.ru.nl>
Subject:   ports/128603: textproc/flex has too small capacity
Message-ID:  <20081105100715.DB6422E056@twoquid.cs.ru.nl>
Resent-Message-ID: <200811051040.mA5Ae6Y6025065@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         128603
>Category:       ports
>Synopsis:       textproc/flex has too small capacity
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Nov 05 10:40:06 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Olaf Seibert
>Release:        FreeBSD 6.1-RELEASE amd64
>Organization:
>Environment:
System: FreeBSD twoquid.cs.ru.nl 6.1-RELEASE FreeBSD 6.1-RELEASE #2: Mon Mar 19 15:05:26 CET 2007 root@twoquid.cs.ru.nl:/usr/src/sys/amd64/compile/TWOQUID amd64


	
>Description:
	Something from the ports installed textproc/flex but no
	dependency is recorded so I don't know what it was.

	Flex version 2.5.35 has a smaller capacity than the base system
	version 2.5.4, or it is less efficient in processing input rules.

	I have a flex input file that is handled fine by version 2.5.4
	but suddenly failed mysteriously when I upgraded my ports,
	which installed the later and more limited flex.

	Also, the Texinfo documentation isn't installed, so I can't look
	in it to see if there might be some workaround.

>How-To-Repeat:

The vesion from ports fails:

$ /usr/local/bin/flex -pv -i -t morph.l > morph.c
flex: input rules are too complicated (>= 32000 NFA states)
flex version 2.5.35 usage statistics:
  scanner options: -iptvI8 -Cem
  31000/32000 NFA states
  0/1000 DFA states (0 words)
  949 rules
  No backing up
  7/40 start conditions
  16901 epsilon states, 8918 double epsilon states
  no character classes
  0 state/nextstate pairs created
  0/0 unique/duplicate transitions
  0/1000 base-def entries created
  0/2000 (peak 0) nxt-chk entries created
  0/2500 (peak 0) template nxt-chk entries created
  0 empty table entries
  0 protos created
  0 templates created, 0 uses
  0/256 equivalence classes created
  0/256 meta-equivalence classes created
  0 (0 saved) hash collisions, 0 DFAs equal
  38 sets of reallocations needed
  256 total table entries needed

The vesion from the base system works:

$ /usr/bin/flex -pv -i -t morph.l > morph.c
/usr/bin/flex version 2.5.4 usage statistics:
  scanner options: -iptvI8 -Cem
  28641/29000 NFA states
  21996/23000 DFA states (5032166 words)
  1567 rules
  Compressed tables always back-up
  Beginning-of-line patterns used
  7/40 start conditions
  8886 epsilon states, 4488 double epsilon states
  22/100 character classes needed 157/500 words of storage, 145 reused
  614918 state/nextstate pairs created
  510844/104074 unique/duplicate transitions
  22017/23000 base-def entries created
  73510/74000 (peak 73731) nxt-chk entries created
  84/2500 (peak 819) template nxt-chk entries created
  3 empty table entries
  750 protos created
  21 templates created, 31 uses
  39/256 equivalence classes created
  4/256 meta-equivalence classes created
  98 (55 saved) hash collisions, 488863 DFAs equal
  110 sets of reallocations needed
  191349 total table entries needed

>Fix:

	I don't know a fix, I can only deinstall the textproc/flex
	and hope nothing brings it back next time I upgrade any ports.


-Olaf.
-- 
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20081105100715.DB6422E056>