:(before "End Primitive Recipe Declarations")
REAL_RANDOM,
:(before "End Primitive Recipe Numbers")
put(Recipe_ordinal, "real-random", REAL_RANDOM);
:(before "End Primitive Recipe Checks")
case REAL_RANDOM: {
break;
}
:(before "End Primitive Recipe Implementations")
case REAL_RANDOM: {
// todo: limited range of numbers, might be imperfectly random
// todo: thread state in extra ingredients and products
products.resize(1);
products.at(0).push_back(rand());
break;
}
:(before "End Primitive Recipe Declarations")
MAKE_RANDOM_NONDETERMINISTIC,
:(before "End Primitive Recipe Numbers")
put(Recipe_ordinal, "make-random-nondeterministic", MAKE_RANDOM_NONDETERMINISTICpre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888888 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #333333 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #666666 } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008800 } /* Keyword.Pseudo */
.highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */
.highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */
.highlight .na { color: #336699 } /* Name.Attribute */
.highlight .nb { color: #003388 } /* Name.Builtin */
.highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */
.highlight .no { color: #003366; font-weight: bold } /* Name.Constant */
.highlight .nd { color: #555555 } /* Name.Decorator */
.highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */
.highlight .nl { color: #336699; font-style: italic } /* Name.Label */
.highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */
.highlight .py { color: #336699; font-weight: bold } /* Name.Property */
.highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #336699 } /* Name.Variable */
.highlight .ow { color: #008800 } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */
.highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */
.highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */
.highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */
.highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */
.highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */
.highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */
.highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */
.highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */
.highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */
.highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */
.highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */
.highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */
.highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */
.highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */
.highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */
.highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */
.highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */
.highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */
.highlight .vc { color: #336699 } /* Name.Variable.Class */
.highlight .vg { color: #dd7700 } /* Name.Variable.Global */
.highlight .vi { color: #3333bb } /* Name.Variable.Instance */
.highlight .vm { color: #336699 } /* Name.Variable.Magic */
.highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */Lynx PROBLEMS file.
Ideally you would never have to read this, but inevitably problems
do arise. As implementation and installation problems become known
they will be outlined in this file.
---------
The install script will attempt to preserve your current settings in the
lynx.cfg file. You should review these (at the end of lynx.cfg) after
install. For instance references to lynx.browser.org for a startfile can
be removed, since that site is no longer maintained.
---------
Some customized installs of OpenSSL are not detected by the configure
script. For example, with Redhat9, we did this to work around:
#!/bin/sh
KRB=/usr/kerberos
export LIBS="-L$KRB/lib -lssl -lcrypto -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err"
export CPPFLAGS="-I$KRB/include -I/usr/include/openssl"
export CFLAGS="-O -g $CPPFLAGS"
./configure --with-ssl $*
---------
The configure script check for IPv6 (--enable-ipv6) assumes that your build
machine can listen for IPv6 connections. It cannot determine if you want
to use it only for outgoing connections. If the configure script is
otherwise successful, it will warn about a nonfunctioning getaddrinfo()
function, and does not define these symbols needed to successfully compile
IPv6 support. You can work around this by by editing lynx_cfg.h:
HAVE_GAI_STRERROR
HAVE_GETADDRINFO
---------
Control-Z on Unix can cause aberrant behavior. If you encounter
problems, use -restrictions=suspend to disable it, and only '!'
for escapes to shell (on VMS control-Z is unconditional 'Q'uit,
with no attempt to suspend the Lynx process only temporarily).
Control-Z on Unix often works better with slang.
---------
Screen resizing can be a bit funny. If you resize the screen,
documents that have been cached will be out of whack. Any further
documents will look fine. You can reload documents to the current
window size with CTRL-R
---------
If the configure script dies when it discovers that gcc is broken,
despite the fact there is a perfectly good ANSI cc in the PATH,
try setting the CC environment variable to your working cc compiler
before running configure: e.g.
setenv CC cc (or set CC=cc; export CC , depending on the shell)
./configure
---------
If you run into a problem compiling GridText.c, try omitting -O from the
compiler flags; it is a very big file and may not compile successfully
if you include optimization.
---------
On a Sun system, the message:
"Alert!: Unable to connect to remote host"
will be displayed every time an attempt is made to access a host
other than localhost if Lynx has been built without the resolv
library and needed it, or with it and shouldn't have been.
Unfortunately, there's no way to check in the Makefile whether
-lresolv should be included in the LIBS="" list. What's necessary
depends on how that Sun is configured. To get the build right for
your SUN 3 or 4 OS, if you didn't have RESOLVLIB defined in the
Makefile define it and build Lynx again, or vice versa. Also, if
you have upgraded to the bind-8.1 or later library, you should try
changing -lresolv to -lbind.
---------
On Sun systems when accessing sites that use multiple IPs for one URL,
you may experience a core dump. It's a bug in the resolver library,
which can be fixed by downloading & installing Sun's jumbo patch:
search Sun support information, e.g., Solaris newsgroups,
or see the following Lynx Archive items:
http://www.flora.org/lynx-dev/lynx-dev/9606/0422.html
http://www.flora.org/lynx-dev/html/month0497/msg01018.html
http://www.flora.org/lynx-dev/html/month0497/msg01064.html
The Sun `shelltool' and `cmdtool' terminals are stupid by default.
In order to get bold text to appear differently than inverse video,
the user should put this line in ~/.Xdefaults:
Term*boldStyle: Offset_X
From the `shelltool' man page, it seems that an analogous line
in ~/.defaults
/Tty/Bold_style "Offset_X"
ought to work just as well, but you may not get the desired
behavior until you modify your .Xdefaults file (and run `xrdb
~/.Xdefaults'). Note also that there are other supported values
for the boldStyle resource/Bold_style default, all of which begin
with "Offset_". (helpful hint from kevin@traffic.den.mmc.com)
---------
Directory browsing has been implemented for VMS, but there are no
plans to port additional DIRED support, because Lynx must handle files
as streams, and this precludes "serious" Directory/File Management on
VMS. Use a jumps file link to CSwing (sources or executables are
available from ftp://narnia.memst.edu), or define CSWING_PATH in
userdefs.h or lynx.cfg to invoke CSwing via the DIRED_MENU command.
---------
If one switches between K)eypad "Numbers act as arrows" versus "Links
are numbered" in the 'o'ptions menu when the current document is a
DIRED menu in which links have been tagged, the tagging can be trashed
(so don't switch at such times 8-).
---------
When "Links are numbered" is on, if a line is split on an anchor (to
obey right margin restrictions), and there is no space in the bolded
string such that the entire "[#]string" must be moved down, the "[#]"
becomes bolded, instead on only "string".
---------
The Mosaic v2.5 hostlist uses HTML similar to that of Lynx's bookmark
file, but with </UL></HTML> at the bottom, such that it is not fully
compatible with Lynx's file. If you try to use the Mosaic file as if
it were a Lynx bookmark file, the </UL></HTML> will not be taken into
account and new links will be added below rather than above those end
tags. Instead, add a link to the Mosaic file in your Lynx file, and
to the Lynx file in your Mosaic file, so that you can access both files
with both clients.
---------
SOCKSification and the -socks switch have not yet been integrated with
the slang library support.
---------
There is an apparently broken version of select() in libcurses.a
of HP/UX 10.10. It also breaks tn3270, ncftp, emacs, and xemacs.
Using:
LIBS="-lc -lcurses -ltermcap \
^^^
(i.e, adding -lc *before* the -lcurses) in the snake3 and snake3-slang
targets of the top level Makefile yields a usable image, but with
inappropriate video attributes on the Lynx displays (reverse video and
underscores on everything). Using "-lc -lHcurses" instead fixes the
^^^^^^^^^
video attributes but then the arrow keys are messed up. - Donald S.
Teiser (dsteis01@homer.louisville.edu)
NOTE: If HP fixes the problem or you come up with a better workaround,
notify the lynx-dev@nongnu.org list.
Updated NOTE (1996-09-02): A patch reportedly is available from HP to
fix the select() problem, so that "-lc" is no longer needed, but
the curses glitch is not yet fixed, and you should still include
"-lHcurses".
Updated NOTE (1997-02-03): The problems reportedly are fixed with
patches PHCO_8086 and PHCO_8947 from HP.
Updated NOTE (1997-12-15): PHCO_8086 & PHCO_8947 are very old and are
no longer available. The current patch to install if running
under HP-UX 10.20 is PHCO_11342.
---------
Lynx juggles variable abilities of curses packages or emulations to
display bolding and underlining simultaneously. This may fail if
Lynx thinks that your terminal, in connection with the curses package,
supports a capability which the terminal hardware or emulation does not
in fact support. Setting the right TERM environment variable, tweaking
terminfo or termcap files, or compiling with a newer version of ncurses
or slang may solve problems with missing highlighting or strange
characters appearing on the screen. Also, for a mono terminal,
make sure "show color" is not set to ON in the Options Menu.
The Wyse 50 and older TeleVideo terminals, among others, are
"magic cookie" terminals. This means that display attributes like
reverse, blink, underline, etc. work in a bizarre way that makes them
difficult to program. You may see extra spaces scattered around your
screen (separating different sorts of highlight); or sections of the
screen may be unexpectedly highlighted.
There is a workaround which works by restricting the terminal to a
single standout attribute (e.g., normal and reverse, but no others).
Implementing the workaround is specific to your curses implementation.
Most versions of curses use one of two terminal databases, called
"termcap" and "terminfo". Updating these databases is system-specific.
New databases should be available from the vendor or other sources.
For the Wyse 50, try
<URL: http://www.wyse.com/text/custserv/faq/wy50faq.htm>;
extract the "wy50" (NOT "wy50-mc") entry and use that in place of the
existing one. See `terminfo', `infocmp', `tic' etc. man pages if
necessary.
Alternatively, compiling Lynx with the slang library may avoid problems
with theses terminals.
The Sun console driver (aka wscons(7)) implements "reverse" and "bold"
as "reverse", causing confusion where Lynx uses the distinction between
the two to convey information. Lynx tries to detect this automatically,
but if it fails (for instance, you are running under "screen"), try
setting the -noreverse commandline option.
---------
On VMS, Lynx, and other TCP-IP software, have been experiencing chronic
problems of incompatibilities between DECC and MultiNet headers whenever
new versions of either DECC or MultiNet are released. The Lynx build
procedure for VMS and a maze of spaghetti #ifdef-ing in tcp.h of the
libwww-FM had previously been successful in dealing with this problem
across all versions of MultiNet and of DECC, VAXC, and Pat Rankin's
VMS port of GNUC, but are now not 100% successful. If you get compiler
messages about "struct timeval timeout" having no linkage, add that
declaration immediately below the inclusion of ioctl.h for MultiNet in
tcp.h (by deleting the "#ifdef NOT_DEFINED" and "#endif /* NOT_DEFINED */"
lines):
[...]
#include "multinet_root:[multinet.include.sys]ioctl.h"
struct timeval {
long tv_sec; /* seconds since Jan. 1, 1970 */
long tv_usec; /* microseconds */
};
[...]
If you get compiler warnings about incompatible multinet_foo()
declarations, delete those where indicated in tcp.h. For the most
current versions of MultiNet, you can modify tcp.h to use the DECC
socket and related headers.
On VMS, the ftp function does not work with SOCKETSHR 0.9D and NETLIB
2 (NETLIB 1 may work). This is because the functions getsockname()
and getpeername() within SOCKETSHR make incorrect calls to the NETLIB
functions. This results in zeroes being returned for part of the local
IP address. Since ftp sends this IP address to the remote end, the
remote server ends up sending a file back to a non-existent address.
Andy Harper (A.HARPER@kcl.ac.uk) has fixed these problems in the
SOCKETSHR 0.9D sources and offers the fixes as:
http://alder.cc.kcl.ac.uk/fileserv/zip/socketshr_src_09d-2.zip
ftp://ftp2.kcl.ac.uk/zip/socketshr_src_09d-2.zip
---------
On VMS, to build an SSL-capable version, lynx and the ssl library
e.g., OpenSSL, must be built using the same network library. If you
build OpenSSL without specifying the network library (the 5th parameter
of the makevms.com script), it will guess, possibly not the one you
intended. We have tested only the UCX configuration -TD (2002/9/15).