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_2022-06-17
13 DISTFILE[1]= Reduce-svn6339-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
28 XORG_COMPONENTS= x11 xext xft
30 DISTNAME= Reduce-svn6339-src
32 LICENSE= BSD2CLAUSE:primary
33 LICENSE_FILE= BSD2CLAUSE:{{WRKSRC}}/csl/reduce.doc/BSD-LICENSE.txt
36 FPC_EQUIVALENT= math/reduce
37 SHEBANG_ADD_SH= scripts/here.sh
40 CONFIGURE_TARGET= {{VAR1}}
41 CONFIGURE_ARGS= --with-csl
44 am__fastdepCC_TRUE="\#"
45 am__fastdepCXX_TRUE="\#"
52 CPPFLAGS= `freetype-config
56 LDFLAGS= `freetype-config
59 VAR_OPSYS[freebsd]= VAR1={{ARCH_STANDARD}}-raven-freebsd{{MAJOR}}
60 VAR_OPSYS[sunos]= VAR1={{ARCH_STANDARD}}-raven-solaris2.10
61 VAR_OPSYS[linux]= VAR1={{ARCH_STANDARD}}-raven-linux-gnu{{MAJOR}}
62 VAR_OPSYS[netbsd]= VAR1={{ARCH_STANDARD}}-raven-netbsd{{MAJOR}}
63 VAR_OPSYS[dragonfly]= VAR1={{ARCH_STANDARD}}-raven-dragonfly{{MAJOR}}
66 ${REINPLACE_CMD} -e 's|/usr/pkg/|${LOCALBASE}/|' \
67 -e 's|`./config.guess`|${CONFIGURE_TARGET}|' \
68 ${WRKSRC}/scripts/make.sh
69 ${REINPLACE_CMD} -e '/AC_CONFIG_MACRO_DIR(/d' \
70 ${WRKSRC}/configure.ac \
71 ${WRKSRC}/generic/newfront/configure.ac \
72 ${WRKSRC}/csl/cslbase/configure.ac \
73 ${WRKSRC}/psl/configure.ac
74 ${REINPLACE_CMD} -e "s|am__api_version='1.15'|am__api_version='1.16'|" \
75 ${WRKSRC}/csl/cslbase/aclocal.m4 \
76 ${WRKSRC}/psl/aclocal.m4
79 (cd ${WRKSRC} && ./autogen.sh --sequential --with-csl)
82 ${MKDIR} ${STAGEDIR}${PREFIX}/share/reduce ${STAGEDIR}${STD_DOCDIR}
83 ${INSTALL_DATA} ${WRKSRC}/cslbuild/${CONFIGURE_TARGET}/csl/reduce.img \
84 ${STAGEDIR}${PREFIX}/share/reduce
85 ${INSTALL_PROGRAM} ${WRKSRC}/cslbuild/${CONFIGURE_TARGET}/csl/reduce \
86 ${STAGEDIR}${PREFIX}/share/reduce
87 ${INSTALL_SCRIPT} ${WRKDIR}/redcsl ${STAGEDIR}${PREFIX}/bin/
88 ${INSTALL_MAN} ${FILESDIR}/redcsl.1 ${STAGEDIR}${MANPREFIX}/man/man1/
89 (cd ${WRKSRC}/cslbuild/${CONFIGURE_TARGET}/csl/reduce.doc && \
90 ${COPYTREE_SHARE} . ${STAGEDIR}${STD_DOCDIR})
91 ${RM} ${STAGEDIR}${STD_DOCDIR}/*-LICENSE.txt
92 ${RM} ${STAGEDIR}${STD_DOCDIR}/LGPL-2.1.txt
93 (cd ${WRKSRC}/cslbuild/${CONFIGURE_TARGET}/csl/reduce.fonts && \
94 ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/share/reduce/reduce.fonts)
95 ${INSTALL_DATA} ${WRKSRC}/doc/manual/manual.pdf \
96 ${STAGEDIR}${STD_DOCDIR}
97 ${INSTALL_DATA} ${WRKSRC}/doc/primers/*.pdf \
98 ${STAGEDIR}${STD_DOCDIR}
100 [FILE:1067:descriptions/desc.primary]
101 REDUCE Codemist Standard Lisp, (CSL) version
103 REDUCE is an interactive system for general algebraic computations of
104 interest to mathematicians, scientists and engineers.
106 CSL is a newer Lisp system that continues to evolve and is now written
107 completely in C++, which makes it very easy to port to a new machine.
108 Like PSL, it is a faithful implementation of Standard Lisp and has been
109 optimized for running REDUCE. It requires a very small memory partition
110 for its Lisp support. Furthermore, most of the REDUCE facilities are
111 supported as machine independent pseudocode, which is quite compact. In
112 the worst case, the performance of this system is about a factor of two
113 slower than PSL, though in many cases it matches PSL performance.
114 However, the memory use is smaller. All CSL versions are distributed with
115 sufficient CSL support to run on the given computing system. This is also
116 an ideal system for those wishing to embed algebraic calculations in a C
117 or C++ programming environment. The developer of CSL before it became
118 Open Source was Codemist Ltd.
122 fba8567372126431bd60a14d780dc584e4677eb3275af351a5109552e7a62d4a 242370067 Reduce-svn6339-src.tar.gz
125 [FILE:730:manifests/plist.primary]
127 share/man/man1/redcsl.1.gz
131 share/reduce/reduce.fonts/
172 share/reduce/reduce.fonts/pfmfiles/
177 share/reduce/reduce.fonts/src/
184 [FILE:741:manifests/plist.docs]
245 [FILE:1556:patches/patch-csl_cslbase_arith08.cpp]
246 --- csl/cslbase/arith08.cpp.orig 2022-01-20 22:10:59 UTC
247 +++ csl/cslbase/arith08.cpp
248 @@ -847,13 +847,13 @@ inline int nlz(uint64_t x)
249 #ifndef POPCOUNT_DEFINED
252 -inline int popcount(uint64_t x)
253 +inline int my_popcount(uint64_t x)
254 { return __builtin_popcountll(x);
259 -inline int popcount(uint64_t x)
260 +inline int my_popcount(uint64_t x)
261 { x = (x & 0x5555555555555555U) + (x >> 1 & 0x5555555555555555U);
262 x = (x & 0x3333333333333333U) + (x >> 2 & 0x3333333333333333U);
263 x = x + (x >> 4) & 0x0f0f0f0f0f0f0f0fU;
264 @@ -868,19 +868,19 @@ inline int popcount(uint64_t x)
265 static LispObject Llogcount(LispObject env, LispObject a)
267 { intptr_t n = int_of_fixnum(a);
268 - if (a >= 0) return onevalue(fixnum_of_int(popcount(n)));
269 - else return onevalue(fixnum_of_int(popcount(~n)));
270 + if (a >= 0) return onevalue(fixnum_of_int(my_popcount(n)));
271 + else return onevalue(fixnum_of_int(my_popcount(~n)));
273 else if (is_bignum(a))
274 { size_t len = (length_of_header(numhdr(a)) - CELL)/4;
276 if ((int32_t)bignum_digits(a)[len-1] < 0)
277 { for (size_t i=0; i<len; i++)
278 - n += popcount(~bignum_digits(a)[i]);
279 + n += my_popcount(~bignum_digits(a)[i]);
282 { for (size_t i=0; i<len; i++)
283 - n += popcount(bignum_digits(a)[i]);
284 + n += my_popcount(bignum_digits(a)[i]);
286 return onevalue(fixnum_of_int(n));
290 [FILE:386:patches/patch-scripts_make.sh]
291 --- scripts/make.sh.orig 2023-01-06 03:01:26 UTC
293 @@ -127,11 +127,6 @@ then
294 *cygwin* | *windows*)
295 list="cslbuild/*-cygwin*/csl cslbuild/*-windows*/csl"
298 - host1=${host/aarch64/universal}
299 - host1=${host1/x86_64/universa}
300 - list="cslbuild/*${host}*/csl cslbuild/*${host1}*/csl"
303 list="cslbuild/*${host}*/csl"
307 [FILE:7925:files/redcsl.1]
308 .TH REDCSL 1 "2010 October 10" "redcsl"
312 redcsl \- Run REDUCE under CSL
318 .I command-line switches
326 runs REDUCE based on the
334 read input from file.
336 After all other options have been processed, the files given on the rest of
337 the command line are read in and processed. A filename of
339 can be used to designate standard input.
342 tells the system to avoid any attempt to recolour prompts and input text.
343 It will mainly be needed on X terminals that have been set up so that they
344 use colours that make the defaults here unhelpful, like white-on-black.
346 This option can be followed by colour specifications to make things yet
347 more specific. It is supposed to be the idea that three colours can be
348 specified after it for output, input and prompts, with the letters KRGYbMCW
349 standing for blacK, Red, Green, Yellow, blue, Magenta, Cyan and White.
351 This may not fully work yet!
353 .BI -d " symbol[=value]"
356 at system start, with value
361 enables debugging mode. It sets a lisp variable
363 and arranges that all backtraces are displayed notwithstanding use of
366 .BI \-i " imagefile\fR,\fP " \-i-
367 CSL and Reduce use image files to keep both initial heap images and
369 loadable modules. By default if the executable launched has some name,
370 say xxx, then an image file xxx.img is used. But to support greater
373 introduces a new image,
375 indicates the default one and a sequence of such directives list
376 image files that are searched in the order given. These are read-only.
379 equally introduces image files that are scanned for input, but that
380 can also be used for output. Normally there would only be one
385 dumps a record of all the files read during the Lisp run into
387 with a view that it can be included in a Makefile to document dependencies.
390 sets the size of the heap to be used. If
392 is given then that much
393 memory will be allocated and the heap will never expand. Without this
394 option a default amount is used, and (on many machines) it will grow
395 if space seems tight.
397 If this options is given as
400 then ss is the number of CSL pages to be allocated to the Lisp stack.
401 The default value (which is 1) should suffice for almost all users, and
402 it should be noted that the C stack is separate from and independent of
403 this one and it too could overflow.
405 A suffix K, M or G on the number indicates units of kilobytes,
406 megabytes or gigabytes, with megabytes being the default. so
408 might represent typical usage.
411 sends a copy of the standard output to
413 It is very much as if the Lisp function
415 had been invoked at the start of the run.
418 ignore startup function.
420 Normally when the system is started it will run a
422 as indicated in its heap image. There can be cases where a heap image has
423 been created in a bad way such that the saved restart function always fails
424 abruptly, and hence working out what was wrong becomes hard. In such cases
425 it may be useful to give the
427 options that forces CSL to ignore any startup function and merely begin
428 in a minimal Lisp-style read-eval-print loop.
439 and switches off garbage collector messages.
442 seed random number generator.
444 The random-number generator in CSL is normally initialised to a value
445 based on the time of day and is hence not reproducible from run to run.
446 In many cases that behavious is desirable, but for debugging it can be useful
447 to force a seed. The directive
450 sets the seed to up to 64 bits taken from the values
454 THe second value is optional, and specifying
456 explicitly asks for the non-reproducible behaviour (I hope). Note that
457 the main Reduce-level random number source is coded at a higher level
458 and does not get reset this way - this is the lower level CSL
462 sets the Lisp variable
464 and hence the compiler generates an assembly listing.
467 reports the time-stamp on the named module, and then exits. This is
468 for use in perl scripts and the like, and is needed because the stamps
469 on modules within an image or library file are not otherwise instantly
472 Note that especially on windowed systems it may be necessary to use
475 since the information generated here goes to the default output, which
476 in some cases is just the screen.
479 forcibly undefine a Lisp symbol. There are probably very very few
480 cases where it is useful since I do not have a large number of
481 system-specific predefined names.
484 An option to make things mildly more verbose. It displays more of a
485 banner at startup and switches garbage collection messages on.
490 On a typical system if the system is launched it creates a new window and uses
491 its own windowed intarface in that. If it is run such that at startup the
492 standard input or output are associated with a file or pipe, or under X the
495 is not set it will try to start up in console
498 indicates that the system should run in console
499 more regadless, while
501 attempts a window even if that seems doomed to failure. When running
502 the system to obey a script it will often make sense to use the
504 option. Note that on Windows the system is provided as
505 two separate (but almost identical) binaries. For example the file
507 is linked in windows mode. A result is that if launched from the
508 command line it detaches from its console, and if launched by
509 double-clicking it does not create a console. It is in fact very ugly
510 when double clicking on an application causes an unwanted console
511 window to appear. In contrast
513 is a console mode version of just the same program, so when launched
514 from a command line it can communicate with the console in the
515 ordinary expected manner.
520 When bootstrapping it is necessary to start up the system for one initial time
521 without the benefit of any image file at all. This option makes
522 this happen, so when it is specified the system starts up with a minimal
523 environment and only those capabilities that are present in the CSL
524 kernel. It will normally make sense to start loading some basic Lisp
525 definitions rather rapidly. The files
531 have Lisp source for the main things I use, and once they are loaded
532 the Lisp compiler can be used to compile itself.
535 It is probably obvious what this option does! But in particular it
536 displays an explanation of the
538 option, and hence should count as a prominent and easy-to-find way of
539 alerting people to their rights and obligations. Note that on Windows
540 of the application was linked as a windows binary it carefully creates
541 a console to display the help text in, and organizes a delay to give
542 people a chance to read it.
545 If the application is run in console mode then its standard output could
546 be redirected to a file using shell facilities. But the
548 directive (followed by a file name) redirects output within the Lisp
549 rather than outside it. If this is done a very limited capability for
550 sending progress or status reports to stderr (or the title-bar when
551 running in windowed mode) remains via the
557 option may frequently make sense in such cases, but if that
558 is not used and the system tries to run in a window it will create it
559 starting off minimised.
563 [FILE:50:files/redcsl.in]
566 exec %%PREFIX%%/share/reduce/reduce $*