1 # Buildsheet autogenerated by ravenadm tool -- Do not edit.
7 SDESC[standard]= Codemist Std Lisp general-purpose computer system
8 HOMEPAGE= http://www.reduce-algebra.com/
12 SITES[main]= SF/reduce-algebra/snapshot_2023-03-08
13 DISTFILE[1]= Reduce-svn6547-src.tar.gz:main
15 SPKGS[standard]= complete
19 OPTIONS_AVAILABLE= none
20 OPTIONS_STANDARD= none
22 BUILD_DEPENDS= libtool:single:standard
23 autoconf:single:standard
24 automake:single:standard
25 RUN_DEPENDS= gnuplot:complete:standard
27 USES= gmake jpeg png tiff ncurses shebangfix zstd:build
28 zlib:build fontconfig:build
29 XORG_COMPONENTS= x11 xext xft xrender
31 DISTNAME= Reduce-svn6547-src
33 LICENSE= BSD2CLAUSE:primary
34 LICENSE_FILE= BSD2CLAUSE:{{WRKSRC}}/csl/reduce.doc/BSD-LICENSE.txt
37 FPC_EQUIVALENT= math/reduce
38 SHEBANG_ADD_SH= scripts/here.sh
41 CONFIGURE_TARGET= {{VAR1}}
42 CONFIGURE_ARGS= --with-csl
45 am__fastdepCC_TRUE="\#"
46 am__fastdepCXX_TRUE="\#"
53 CPPFLAGS= `freetype-config
57 LDFLAGS= `freetype-config
60 VAR_OPSYS[freebsd]= VAR1={{ARCH_STANDARD}}-raven-freebsd{{MAJOR}}
61 VAR_OPSYS[sunos]= VAR1={{ARCH_STANDARD}}-raven-solaris2.10
62 VAR_OPSYS[linux]= VAR1={{ARCH_STANDARD}}-raven-linux-gnu{{MAJOR}}
63 VAR_OPSYS[netbsd]= VAR1={{ARCH_STANDARD}}-raven-netbsd{{MAJOR}}
64 VAR_OPSYS[dragonfly]= VAR1={{ARCH_STANDARD}}-raven-dragonfly{{MAJOR}}
65 VAR_OPSYS[midnightbsd]= VAR1=x86_64-raven-freebsd12.3
68 ${REINPLACE_CMD} -e 's|/usr/pkg/|${LOCALBASE}/|' \
69 -e 's|`./config.guess`|${CONFIGURE_TARGET}|' \
70 ${WRKSRC}/scripts/make.sh
71 ${REINPLACE_CMD} -e '/AC_CONFIG_MACRO_DIR(/d' \
72 ${WRKSRC}/configure.ac \
73 ${WRKSRC}/generic/newfront/configure.ac \
74 ${WRKSRC}/csl/cslbase/configure.ac \
75 ${WRKSRC}/psl/configure.ac
76 ${REINPLACE_CMD} -e "s|am__api_version='1.15'|am__api_version='1.16'|" \
77 ${WRKSRC}/csl/cslbase/aclocal.m4 \
78 ${WRKSRC}/psl/aclocal.m4
81 (cd ${WRKSRC} && ./autogen.sh --sequential --with-csl)
84 ${MKDIR} ${STAGEDIR}${PREFIX}/share/reduce ${STAGEDIR}${STD_DOCDIR}
85 ${INSTALL_DATA} ${WRKSRC}/cslbuild/${CONFIGURE_TARGET}/csl/reduce.img \
86 ${STAGEDIR}${PREFIX}/share/reduce
87 ${INSTALL_PROGRAM} ${WRKSRC}/cslbuild/${CONFIGURE_TARGET}/csl/reduce \
88 ${STAGEDIR}${PREFIX}/share/reduce
89 ${INSTALL_SCRIPT} ${WRKDIR}/redcsl ${STAGEDIR}${PREFIX}/bin/
90 ${INSTALL_MAN} ${FILESDIR}/redcsl.1 ${STAGEDIR}${MANPREFIX}/man/man1/
91 (cd ${WRKSRC}/cslbuild/${CONFIGURE_TARGET}/csl/reduce.doc && \
92 ${COPYTREE_SHARE} . ${STAGEDIR}${STD_DOCDIR})
93 ${RM} ${STAGEDIR}${STD_DOCDIR}/*-LICENSE.txt
94 ${RM} ${STAGEDIR}${STD_DOCDIR}/LGPL-2.1.txt
95 (cd ${WRKSRC}/cslbuild/${CONFIGURE_TARGET}/csl/reduce.fonts && \
96 ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/share/reduce/reduce.fonts)
97 ${INSTALL_DATA} ${WRKSRC}/doc/manual/manual.pdf \
98 ${STAGEDIR}${STD_DOCDIR}
99 ${INSTALL_DATA} ${WRKSRC}/doc/primers/*.pdf \
100 ${STAGEDIR}${STD_DOCDIR}
102 [FILE:1067:descriptions/desc.primary]
103 REDUCE Codemist Standard Lisp, (CSL) version
105 REDUCE is an interactive system for general algebraic computations of
106 interest to mathematicians, scientists and engineers.
108 CSL is a newer Lisp system that continues to evolve and is now written
109 completely in C++, which makes it very easy to port to a new machine.
110 Like PSL, it is a faithful implementation of Standard Lisp and has been
111 optimized for running REDUCE. It requires a very small memory partition
112 for its Lisp support. Furthermore, most of the REDUCE facilities are
113 supported as machine independent pseudocode, which is quite compact. In
114 the worst case, the performance of this system is about a factor of two
115 slower than PSL, though in many cases it matches PSL performance.
116 However, the memory use is smaller. All CSL versions are distributed with
117 sufficient CSL support to run on the given computing system. This is also
118 an ideal system for those wishing to embed algebraic calculations in a C
119 or C++ programming environment. The developer of CSL before it became
120 Open Source was Codemist Ltd.
124 2890beac30d8c497c58bd7c73f6c507ecabe318ace28e85d9c5a15e7884ea5a8 242413830 Reduce-svn6547-src.tar.gz
127 [FILE:730:manifests/plist.primary]
129 share/man/man1/redcsl.1.gz
133 share/reduce/reduce.fonts/
174 share/reduce/reduce.fonts/pfmfiles/
179 share/reduce/reduce.fonts/src/
186 [FILE:741:manifests/plist.docs]
247 [FILE:1478:patches/patch-csl_cslbase_arith08.cpp]
248 --- csl/cslbase/arith08.cpp.orig 2023-01-02 21:45:46 UTC
249 +++ csl/cslbase/arith08.cpp
250 @@ -880,13 +880,13 @@ inline int nlz(uint64_t x)
251 #ifndef POPCOUNT_DEFINED
254 -inline int popcount(uint64_t x)
255 +inline int my_popcount(uint64_t x)
256 { return __builtin_popcountll(x);
261 -inline int popcount(uint64_t x)
262 +inline int my_popcount(uint64_t x)
263 { x = (x & 0x5555555555555555U) + (x >> 1 & 0x5555555555555555U);
264 x = (x & 0x3333333333333333U) + (x >> 2 & 0x3333333333333333U);
265 x = x + (x >> 4) & 0x0f0f0f0f0f0f0f0fU;
266 @@ -902,19 +902,19 @@ static LispObject Llogcount(LispObject e
269 { intptr_t n = int_of_fixnum(a);
270 - if (a >= 0) return fixnum_of_int(popcount(n));
271 - else return fixnum_of_int(popcount(~n));
272 + if (a >= 0) return fixnum_of_int(my_popcount(n));
273 + else return fixnum_of_int(my_popcount(~n));
275 else if (is_bignum(a))
276 { size_t len = (length_of_header(numhdr(a)) - CELL)/4;
278 if ((int32_t)bignum_digits(a)[len-1] < 0)
279 { for (size_t i=0; i<len; i++)
280 - n += popcount(~bignum_digits(a)[i]);
281 + n += my_popcount(~bignum_digits(a)[i]);
284 { for (size_t i=0; i<len; i++)
285 - n += popcount(bignum_digits(a)[i]);
286 + n += my_popcount(bignum_digits(a)[i]);
288 return fixnum_of_int(n);
292 [FILE:7925:files/redcsl.1]
293 .TH REDCSL 1 "2010 October 10" "redcsl"
297 redcsl \- Run REDUCE under CSL
303 .I command-line switches
311 runs REDUCE based on the
319 read input from file.
321 After all other options have been processed, the files given on the rest of
322 the command line are read in and processed. A filename of
324 can be used to designate standard input.
327 tells the system to avoid any attempt to recolour prompts and input text.
328 It will mainly be needed on X terminals that have been set up so that they
329 use colours that make the defaults here unhelpful, like white-on-black.
331 This option can be followed by colour specifications to make things yet
332 more specific. It is supposed to be the idea that three colours can be
333 specified after it for output, input and prompts, with the letters KRGYbMCW
334 standing for blacK, Red, Green, Yellow, blue, Magenta, Cyan and White.
336 This may not fully work yet!
338 .BI -d " symbol[=value]"
341 at system start, with value
346 enables debugging mode. It sets a lisp variable
348 and arranges that all backtraces are displayed notwithstanding use of
351 .BI \-i " imagefile\fR,\fP " \-i-
352 CSL and Reduce use image files to keep both initial heap images and
354 loadable modules. By default if the executable launched has some name,
355 say xxx, then an image file xxx.img is used. But to support greater
358 introduces a new image,
360 indicates the default one and a sequence of such directives list
361 image files that are searched in the order given. These are read-only.
364 equally introduces image files that are scanned for input, but that
365 can also be used for output. Normally there would only be one
370 dumps a record of all the files read during the Lisp run into
372 with a view that it can be included in a Makefile to document dependencies.
375 sets the size of the heap to be used. If
377 is given then that much
378 memory will be allocated and the heap will never expand. Without this
379 option a default amount is used, and (on many machines) it will grow
380 if space seems tight.
382 If this options is given as
385 then ss is the number of CSL pages to be allocated to the Lisp stack.
386 The default value (which is 1) should suffice for almost all users, and
387 it should be noted that the C stack is separate from and independent of
388 this one and it too could overflow.
390 A suffix K, M or G on the number indicates units of kilobytes,
391 megabytes or gigabytes, with megabytes being the default. so
393 might represent typical usage.
396 sends a copy of the standard output to
398 It is very much as if the Lisp function
400 had been invoked at the start of the run.
403 ignore startup function.
405 Normally when the system is started it will run a
407 as indicated in its heap image. There can be cases where a heap image has
408 been created in a bad way such that the saved restart function always fails
409 abruptly, and hence working out what was wrong becomes hard. In such cases
410 it may be useful to give the
412 options that forces CSL to ignore any startup function and merely begin
413 in a minimal Lisp-style read-eval-print loop.
424 and switches off garbage collector messages.
427 seed random number generator.
429 The random-number generator in CSL is normally initialised to a value
430 based on the time of day and is hence not reproducible from run to run.
431 In many cases that behavious is desirable, but for debugging it can be useful
432 to force a seed. The directive
435 sets the seed to up to 64 bits taken from the values
439 THe second value is optional, and specifying
441 explicitly asks for the non-reproducible behaviour (I hope). Note that
442 the main Reduce-level random number source is coded at a higher level
443 and does not get reset this way - this is the lower level CSL
447 sets the Lisp variable
449 and hence the compiler generates an assembly listing.
452 reports the time-stamp on the named module, and then exits. This is
453 for use in perl scripts and the like, and is needed because the stamps
454 on modules within an image or library file are not otherwise instantly
457 Note that especially on windowed systems it may be necessary to use
460 since the information generated here goes to the default output, which
461 in some cases is just the screen.
464 forcibly undefine a Lisp symbol. There are probably very very few
465 cases where it is useful since I do not have a large number of
466 system-specific predefined names.
469 An option to make things mildly more verbose. It displays more of a
470 banner at startup and switches garbage collection messages on.
475 On a typical system if the system is launched it creates a new window and uses
476 its own windowed intarface in that. If it is run such that at startup the
477 standard input or output are associated with a file or pipe, or under X the
480 is not set it will try to start up in console
483 indicates that the system should run in console
484 more regadless, while
486 attempts a window even if that seems doomed to failure. When running
487 the system to obey a script it will often make sense to use the
489 option. Note that on Windows the system is provided as
490 two separate (but almost identical) binaries. For example the file
492 is linked in windows mode. A result is that if launched from the
493 command line it detaches from its console, and if launched by
494 double-clicking it does not create a console. It is in fact very ugly
495 when double clicking on an application causes an unwanted console
496 window to appear. In contrast
498 is a console mode version of just the same program, so when launched
499 from a command line it can communicate with the console in the
500 ordinary expected manner.
505 When bootstrapping it is necessary to start up the system for one initial time
506 without the benefit of any image file at all. This option makes
507 this happen, so when it is specified the system starts up with a minimal
508 environment and only those capabilities that are present in the CSL
509 kernel. It will normally make sense to start loading some basic Lisp
510 definitions rather rapidly. The files
516 have Lisp source for the main things I use, and once they are loaded
517 the Lisp compiler can be used to compile itself.
520 It is probably obvious what this option does! But in particular it
521 displays an explanation of the
523 option, and hence should count as a prominent and easy-to-find way of
524 alerting people to their rights and obligations. Note that on Windows
525 of the application was linked as a windows binary it carefully creates
526 a console to display the help text in, and organizes a delay to give
527 people a chance to read it.
530 If the application is run in console mode then its standard output could
531 be redirected to a file using shell facilities. But the
533 directive (followed by a file name) redirects output within the Lisp
534 rather than outside it. If this is done a very limited capability for
535 sending progress or status reports to stderr (or the title-bar when
536 running in windowed mode) remains via the
542 option may frequently make sense in such cases, but if that
543 is not used and the system tries to run in a window it will create it
544 starting off minimised.
548 [FILE:50:files/redcsl.in]
551 exec %%PREFIX%%/share/reduce/reduce $*