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:387:patches/patch-scripts_make.sh]
293 --- scripts/make.sh.orig 2023-08-17 22:59:10 UTC
295 @@ -127,11 +127,6 @@ then
296 *cygwin* | *windows*)
297 list="cslbuild/*-cygwin*/csl cslbuild/*-windows*/csl"
300 - host1=${host/aarch64/universal}
301 - host1=${host1/x86_64/universal}
302 - list="cslbuild/*${host}*/csl cslbuild/*${host1}*/csl"
305 list="cslbuild/*${host}*/csl"
309 [FILE:7925:files/redcsl.1]
310 .TH REDCSL 1 "2010 October 10" "redcsl"
314 redcsl \- Run REDUCE under CSL
320 .I command-line switches
328 runs REDUCE based on the
336 read input from file.
338 After all other options have been processed, the files given on the rest of
339 the command line are read in and processed. A filename of
341 can be used to designate standard input.
344 tells the system to avoid any attempt to recolour prompts and input text.
345 It will mainly be needed on X terminals that have been set up so that they
346 use colours that make the defaults here unhelpful, like white-on-black.
348 This option can be followed by colour specifications to make things yet
349 more specific. It is supposed to be the idea that three colours can be
350 specified after it for output, input and prompts, with the letters KRGYbMCW
351 standing for blacK, Red, Green, Yellow, blue, Magenta, Cyan and White.
353 This may not fully work yet!
355 .BI -d " symbol[=value]"
358 at system start, with value
363 enables debugging mode. It sets a lisp variable
365 and arranges that all backtraces are displayed notwithstanding use of
368 .BI \-i " imagefile\fR,\fP " \-i-
369 CSL and Reduce use image files to keep both initial heap images and
371 loadable modules. By default if the executable launched has some name,
372 say xxx, then an image file xxx.img is used. But to support greater
375 introduces a new image,
377 indicates the default one and a sequence of such directives list
378 image files that are searched in the order given. These are read-only.
381 equally introduces image files that are scanned for input, but that
382 can also be used for output. Normally there would only be one
387 dumps a record of all the files read during the Lisp run into
389 with a view that it can be included in a Makefile to document dependencies.
392 sets the size of the heap to be used. If
394 is given then that much
395 memory will be allocated and the heap will never expand. Without this
396 option a default amount is used, and (on many machines) it will grow
397 if space seems tight.
399 If this options is given as
402 then ss is the number of CSL pages to be allocated to the Lisp stack.
403 The default value (which is 1) should suffice for almost all users, and
404 it should be noted that the C stack is separate from and independent of
405 this one and it too could overflow.
407 A suffix K, M or G on the number indicates units of kilobytes,
408 megabytes or gigabytes, with megabytes being the default. so
410 might represent typical usage.
413 sends a copy of the standard output to
415 It is very much as if the Lisp function
417 had been invoked at the start of the run.
420 ignore startup function.
422 Normally when the system is started it will run a
424 as indicated in its heap image. There can be cases where a heap image has
425 been created in a bad way such that the saved restart function always fails
426 abruptly, and hence working out what was wrong becomes hard. In such cases
427 it may be useful to give the
429 options that forces CSL to ignore any startup function and merely begin
430 in a minimal Lisp-style read-eval-print loop.
441 and switches off garbage collector messages.
444 seed random number generator.
446 The random-number generator in CSL is normally initialised to a value
447 based on the time of day and is hence not reproducible from run to run.
448 In many cases that behavious is desirable, but for debugging it can be useful
449 to force a seed. The directive
452 sets the seed to up to 64 bits taken from the values
456 THe second value is optional, and specifying
458 explicitly asks for the non-reproducible behaviour (I hope). Note that
459 the main Reduce-level random number source is coded at a higher level
460 and does not get reset this way - this is the lower level CSL
464 sets the Lisp variable
466 and hence the compiler generates an assembly listing.
469 reports the time-stamp on the named module, and then exits. This is
470 for use in perl scripts and the like, and is needed because the stamps
471 on modules within an image or library file are not otherwise instantly
474 Note that especially on windowed systems it may be necessary to use
477 since the information generated here goes to the default output, which
478 in some cases is just the screen.
481 forcibly undefine a Lisp symbol. There are probably very very few
482 cases where it is useful since I do not have a large number of
483 system-specific predefined names.
486 An option to make things mildly more verbose. It displays more of a
487 banner at startup and switches garbage collection messages on.
492 On a typical system if the system is launched it creates a new window and uses
493 its own windowed intarface in that. If it is run such that at startup the
494 standard input or output are associated with a file or pipe, or under X the
497 is not set it will try to start up in console
500 indicates that the system should run in console
501 more regadless, while
503 attempts a window even if that seems doomed to failure. When running
504 the system to obey a script it will often make sense to use the
506 option. Note that on Windows the system is provided as
507 two separate (but almost identical) binaries. For example the file
509 is linked in windows mode. A result is that if launched from the
510 command line it detaches from its console, and if launched by
511 double-clicking it does not create a console. It is in fact very ugly
512 when double clicking on an application causes an unwanted console
513 window to appear. In contrast
515 is a console mode version of just the same program, so when launched
516 from a command line it can communicate with the console in the
517 ordinary expected manner.
522 When bootstrapping it is necessary to start up the system for one initial time
523 without the benefit of any image file at all. This option makes
524 this happen, so when it is specified the system starts up with a minimal
525 environment and only those capabilities that are present in the CSL
526 kernel. It will normally make sense to start loading some basic Lisp
527 definitions rather rapidly. The files
533 have Lisp source for the main things I use, and once they are loaded
534 the Lisp compiler can be used to compile itself.
537 It is probably obvious what this option does! But in particular it
538 displays an explanation of the
540 option, and hence should count as a prominent and easy-to-find way of
541 alerting people to their rights and obligations. Note that on Windows
542 of the application was linked as a windows binary it carefully creates
543 a console to display the help text in, and organizes a delay to give
544 people a chance to read it.
547 If the application is run in console mode then its standard output could
548 be redirected to a file using shell facilities. But the
550 directive (followed by a file name) redirects output within the Lisp
551 rather than outside it. If this is done a very limited capability for
552 sending progress or status reports to stderr (or the title-bar when
553 running in windowed mode) remains via the
559 option may frequently make sense in such cases, but if that
560 is not used and the system tries to run in a window it will create it
561 starting off minimised.
565 [FILE:50:files/redcsl.in]
568 exec %%PREFIX%%/share/reduce/reduce $*