Commit graph

20 commits

Author SHA1 Message Date
Douglas Katzman e47ab64eb9 Cease using ASDF to build contribs
Our contrib build graph was already expressed in contrib/Makefile,
so ASDF wasn't doing anything to determine an execution schedule.
The new make-contrib.lisp script can parse '.asd' files more-or-less as-is,
removing ASDF from the critical path. With blocklist=sb-simd, this change
decreased the time in parallelized make-target-contrib to under 5 seconds
for me (down from >10) when run on as many cores as there are contrib dirs.
All defsystems are treated as if containing ":serial t", and there are
two invented keywords to bind/assign special variables around compilation.

We still install '.asd' files in $SBCL_HOME/contrib, and build uiop and asdf
so there should be no observable difference to users.
2022-09-30 11:54:53 -04:00
Douglas Katzman bf54ddf643 Remove unnecessary :perform lines for no-op tests 2022-09-21 18:27:12 -04:00
Douglas Katzman 5383f0e6f7 Reduce exposed surface area of SB-UNIX
Shake out the internal symbols. I'm sure there will be complaints,
but it's essential to find out what people are (inadvisably) using.

The comment about what is used "only in this file" was not quite true.
Inlining requires saving source code, and the theoretical possibility
exists of some other system file needing the INT-SYSCALL macro (etc)
if deciding to inline UNIX-READ or similar.
2020-10-02 00:02:01 -04:00
Stas Boukarev eeb3b1edc1 Disallow compiling contribs outside of make-target-contrib. 2020-05-09 03:09:45 +03:00
Douglas Katzman 0726ac95e2 Set SYSTEM-PACKAGE-P bit for contrib modules 2020-02-25 17:03:10 -05:00
Jan Moringen acecc7dab5 sb-executable: Fix win32 reader conditional 2017-11-08 14:15:00 +01:00
Jan Moringen 854ba237a3 sb-executable: Convert to ASDF 2017-10-22 15:32:24 +02:00
Jan Moringen 3e02f51b9a Remove .cvsignore files 2016-11-30 16:50:45 +01:00
Jan Moringen e0721f45d2 Add ENSURE-LIST, use where appropriate 2015-07-04 03:19:28 +02:00
Nikodemus Siivola f0da2f63aa redesign exiting SBCL
Deprecate QUIT. It occupies an uncomfortable niche between processes
 and threads, and doesn't actually do what it says on the tin unless
 you call it from the main thread.

 SIGTERM now uses EXIT, and doesn't depend on sessions.

 WITH-DEADLINE (:SECONDS NIL :OVERRIDE T) can now be used to ignore
 deadlines.

 JOIN-THREAD on the main thread now blocks indefinitely instead of
 claiming the thread did not exit normally.

 New functions:

  * SB-EXT:EXIT. Always exits the process. Takes keywords :CODE,
    :ABORT, and :TIMEOUT. Code is the exit status. Abort controls if
    the exit is clean (unwind, exit-hooks, terminate other threads) or
    dirty. Timeout controls how long to wait for other threads to
    finish.

  * SB-THREAD:RETURN-FROM-THREAD. Normal termination for current
    thread -- equivalent to return from the thread function with the
    specified values. Takes keyword :ALLOW-EXIT, which determines if
    returning from the main thread is an error, or equivalent to
    calling EXIT :CODE 0.

  * SB-THREAD:ABORT-THREAD. Abnormal termination for current thread --
    equivalent to invoking the initial ABORT restart estabilished by
    MAKE-THREAD (previously known as TERMINATE-THREAD, but ANSI
    recommends there to always be an ABORT restart.) Takes keyword
    :ALLOW-EXIT, which determines if aborting the main thread is an
    error, or equivalent to calling EXIT :CODE 1.

  * SB-THREAD:MAIN-THREAD-P. Let's you determine if a given thread is
    the main thread of the process. This is important for some
    functions on some operating systems -- and RETURN-FROM-THREAD and
    ABORT-THREAD also need it.

  * SB-THREAD:MAIN-THREAD. Returns the main thread object. Convenient
    for when you need to eg. load a foreign library in the main
    thread.
2012-04-29 21:18:53 +03:00
Juho Snellman 762cc09a6f 0.9.18.24:
Fix SB-EXECUTABLE on win32. (Patch by Marko Kocic, sbcl-devel
        "sb-executable mingw patch" on 2006-08-29).

        * Yes, SB-EXECUTABLE is mostly useless, since nobody uses it
          for making "executables". But there are libraries that load
          SB-EXECUTABLE for the unfortunately exported COPY-STREAM
          function.
        * Oops, whitespace damage from 0.9.18.23.
2006-11-02 12:55:51 +00:00
Andreas Fuchs d8ff33b902 0.9.7.37:
Make asdf-install use bivalent streams

        * Fix warnings and style-warnings when compiling a-i/installer.lisp:
          remove undefined variables / exported symbols *verify-gpg-signatures*
          and *safe-url-prefixes*, add a few ignored declarations.
        * Add :element-type :default to stream opening forms that need it
        * Allow sb-executable's copy-stream to deal with bivalent streams:
          Add an element-type &key argument that should be passed when copying
          bivalent streams
2006-01-12 13:26:41 +00:00
William Harold Newman 4898ef32c6 0.9.2.43:
another slice of whitespace canonicalization
	(Anyone who ends up here with "cvs annotate" probably
		wants to look at the "tabby" tagged version.)
2005-07-14 16:30:05 +00:00
Christophe Rhodes 696e38f721 0.8.7.22:
RIP (physical) PATHNAME-VERSION significance
	... remove all internal discrimination based on the version
		field if the pathname involved has the Unix host.
	... parsing of a physical pathname namestring (i.e. again either
		explicitly or implicitly on the Unix host) never produces
		a version from the namestring.
	... make :if-exists :new-version behave like :if-exists :error,
		because despite weasel-words in CLHS someone might
		legitimately expect :if-exists :new-version not to
		clobber the old version.
	... (this latter needs to be revisited, when OPEN is made aware
		of logical pathnames and the wacky logic they impose; we
		can support :new-version with LPNs, but only if OPEN is
		clever).
	... make pathnames more likely to be read/print consistent, by
		throwing errors in more cases (we now pass PFD's test for
		that, not that it's that stringent).
	... throw errors on use of (:absolute :up) and friends in CL
		operators, but...
	... don't throw error on creation, and in fact test in sb-posix
		that we can use #p"/../" for what it means.
2004-01-27 10:34:54 +00:00
Christophe Rhodes 6ffb09605d 0.8.5.26:
Record filesystem information during the build in debug information
	relative to SYS, not to /home/kevin/sbcl or equivalent.
	... change to core code: tiny if ugly;
	... change to warm load: only to refer to files as lpns rather
		than physical namestrings;
	... change to vanilla-modules: tiny;
	... change to asdf modules: well, erm, less tiny.  I'm not pleased
		by the need to duplicate similar logic in every .asd, but
		I think it's a similar symptom to the duplication of the
		TEST-OP logic in many of them: the coupling between asdf
		and the rest of the system is slightly wrong.

	(At startup, SYS by default has translations that refer back to
	the build-time values; distributors may wish to alter this for
	their binaries, for instance by setting translations to
	distribution-known values when dumping any final image)
2003-11-08 15:04:45 +00:00
Christophe Rhodes 6387a29a5c 0.8.4.27:
OK, here's the deal.
	... *MODULE-PROVIDER-FUNCTIONS* no longer call PROVIDE.  It's
		now the job of user code to do that (as it probably
		should always have been.
	... OK, so as a result, our one-file contribs now need to
		PROVIDE themselves.  Make it so.
	... fix asdf-install/asdf autorequiration; an installed sbcl
		can now require asdf-install (as well as all the other
		asdfized contribs) as the first command in a clean core
	... update contrib/{README,STANDARDS} to match what we currently
		do.
2003-10-17 14:27:44 +00:00
Daniel Barlow 08e218c9bd 0.8.2.23
A full and final answer[*] to all the people who keep asking
	for slightly tangential software to be added to contrib: to
	wit, a contrib module to automate the downloading and
	installing of packages that are _not_ part of contrib.

	* (require 'asdf-install)
	* (asdf-install:install 'xlunit)

	or
	$ sbcl-asdf-install xlunit

	See contrib/asdf-install/README for more details and scary
	security-related muttering.

	Also added a :INITIAL-FUNCTION to SB-EXECUTABLE:MAKE-EXECUTABLE
	so that files don't have to be written such that the
	application starts as soon as they're loaded

	[*] Ha!
2003-08-10 19:25:02 +00:00
Daniel Barlow f4b9ac56f1 0.8.2.22
Timezone/DST fixes for years after 2038.  I hope.  This stuff
	is, I can't help feeling, needlessly confusing.

	* (multiple-value-list
           (decode-universal-time (encode-universal-time 0 0 12 28 7  2040)))
        (0 0 12 28 7 2040 5 T 0)

	* (multiple-value-list
           (decode-universal-time (encode-universal-time 0 0 12 29 2  3040)))
	(0 0 12 29 2 3040 5 NIL 0)

	Someone decided that READ-LINE ought not to work for binary
	streams, so fix up SB-EXECUTABLE not to cheat in this way.
2003-08-08 19:11:08 +00:00
William Harold Newman a0a4134994 0.8.0.12:
added .cvsignore files in contrib/, and made corresponding
		changes in clean.sh (didn't clean up foo.c in clean.sh)
		(Maybe if we called it grovel-tmp.c or something I'd
		be more comfortable with its treewide autodeletion.)
	fixed #(1.2.3.4) thinko in sb-bsd-sockets docs (pointed out
		by Zachary Beane on sbcl-devel 2003-05-27)
2003-05-28 14:26:48 +00:00
Daniel Barlow 5ced9991d8 0.7.12.52
contrib support for "standalone executables" using shell script
	magic.   See sb-executable:make-executable docstring for usage

	contrib/scriptoids was a three year old mail message describing
	a similar but slightly less cool way to do the same thing
2003-02-21 19:52:43 +00:00