Commit Graph

74 Commits (master)

Author SHA1 Message Date
Doug Coleman 0cfc48479e macos32: Lock to 10.11 for build machine.
32bit macos has been deprectated and 10.13 does not seem have i386 libraries anymore.
2019-05-22 11:02:20 -05:00
Doug Coleman 5609370be6 make: Allow overriding macosx sdk
MACOSX_SDK=MacOSX10.11.sdk ./build.sh update macosx-x86-32
2019-03-22 01:32:28 -05:00
Doug Coleman 60c80e4b78 make: Use the MacOSX 10.13 SDK for x86 support.
Bugfix - CFLAGS += instead of CFLAGS = because it would get overwritten otherwise.

Also allow overwriting of XCODE_PATH for non-standard path.

Download the 10.13 SDK from
https://github.com/phracker/MacOSX-SDKs/releases

```bash
wget https://github.com/phracker/MacOSX-SDKs/releases/download/10.13/MacOSX10.13.sdk.tar.xz
xz --uncompress MacOSX10.13.sdk.tar.xz
tar xvf MacOSX10.13.sdk.tar
mv MacOSX10.13.sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/
```
2019-03-22 00:09:06 -05:00
Doug Coleman d6c3cff581 debian: Don't install gcc g++ on debian.
gmake assumes default CC is cc, CXX is g++ (not c++).
In order to make this sane (c++), we check if the shell variable CXX was set
and if so we honor it, else we set CXX to c++.
2019-03-08 21:19:33 -06:00
Doug Coleman d70148e365 make: We don't need the flag. 2019-02-23 17:46:28 -06:00
Doug Coleman a9871b39aa vm: Fix DEBUG flag, make REPRODUCIBLE work like debug, minor fixes to build.sh
- ``make DEBUG=0`` caused debug mode because the check was ``ifdef DEBUG`` which is true even if DEBUG=0
- no need to ``#pragma message`` that we are doing a reproducible build imo
- clang warns about redefining builtin macros, turn the warning off for reproducible builds
- add ``./build.sh info`` as an alias for ``./build.sh report``
- show if we a reproducible in report/info
2019-02-23 16:23:33 -06:00
Cat Stevens 044f7bbe11 vm/master.hpp: optional reproducible VM compilation
The old behaviour of building with `__DATE__` and
    `__TIME__` is still the default, but now it's
    possible to use `-DREPRODUCIBLE=1` and the
    `REPRODUCIBLE=1` parameter to `make` and `nmake`.

Specifically, this replaces the value of
    `FACTOR_COMPILE_TIME` with the string constant
    `"[reproducible]"`. This is purely a cosmetic
    change.
2019-02-20 15:50:06 -05:00
Doug Coleman 205018869b vm: Add freebsd32 support for completeness.
We need gmake on freebsd.
2019-02-09 19:40:54 +00:00
Jack Lucas 3154242a3a Re-add Freebsd Support 2019-02-08 19:17:30 -05:00
John Benediktsson a463214d10 Version bump to 0.99 (-dev). 2018-07-31 12:40:12 -07:00
Björn Lindqvist e27bd4020d Build: let's remove the NO_UI variable
That option has no effect on the build just confuses people because they
think Factor can be built with/without the UI. The runtime never depends
on any ui libraries.
2017-06-30 00:24:24 +02:00
Björn Lindqvist c2f4fdb172 VM: merge of the free_list and free_list_allocator classes
Seem simpler to have all the free list stuff in one class rather than
split it over two classes.
2016-10-08 07:04:28 +02:00
Björn Lindqvist c02d913579 VM: big refactoring removing the gc_workhorse
Each collector were a slot_visitor containing a gc_workhorse containing
a policy class. This commit removes the gc_workhorse and the policies
and instead "inlines" the common code in the collector bodies. So there
is more code duplication, but the control flow doesn't "jump around" so
much so it is easier to understand. It also makes the nursery gc faster
because its collection code can be optimized better without the
workhorse/policy system.
2016-09-22 13:12:59 +02:00
Björn Lindqvist bc8525eb02 VM: the small return_address_index function can be implemented in the header 2016-09-10 03:18:18 +02:00
Björn Lindqvist b5c6658ae5 VM: removing the safepoint_state class
The code reads better if the safepoint_state methods and
attributes (sample_counts and safepoint_fep_p) are moved to the vm
class.
2016-08-15 15:16:41 +02:00
Björn Lindqvist b87f129914 Build: adding c99 flag, in case compiler doesn't enable it by default 2016-08-05 01:50:54 +02:00
Björn Lindqvist 0107595639 Build: drops debugging symbols, fixes #1634 2016-05-26 00:28:10 +02:00
Doug Coleman bbb3582d9d GNUMakefile: The previous patch doesn't work with g++.
https://stackoverflow.com/questions/19774778/when-is-it-necessary-to-use-use-the-flag-stdlib-libstdc
2016-05-05 16:55:28 -07:00
Doug Coleman 10164b6af8 GNUMakefile: Explicitly ask for stdlib=libc++ because clang downgrades the version silently if you use backward compatibility mode with OSX 10.5 and then shrink_to_fit() doesn't work.
Config.macosx: Support for shrink_to_fit() is claimed to be in 10.7 and later, but 10.7 and 10.8 both throw this huge error:
https://paste.factorcode.org/paste?id=3872

Fixes #1624.
2016-05-05 16:48:40 -07:00
Björn Lindqvist bcc32291e8 VM: merge of free_list_allocator.hpp into free_list.hpp
It's better if all the free list stuff is in a single header.
2016-04-22 12:01:26 +02:00
Doug Coleman 2adec21174 GNUmakefile: add -pedantic now that there are no warnings. 2016-03-30 15:39:42 -07:00
Björn Lindqvist 4d2afed06d Build: fix makefile to work with new script path 2016-03-16 14:28:09 +01:00
Doug Coleman cf80135ffa GNUMakefile: Save entire git id. 2015-08-04 16:28:41 -07:00
Björn Lindqvist beb71ce49b VM: merge full_collector.hpp into full_collector.cpp 2015-08-04 16:02:10 +02:00
Björn Lindqvist ae725b737a VM: lets merge entry_points.hpp with vm.hpp, so you have one less header
file to worry about
2015-08-04 16:02:09 +02:00
Björn Lindqvist 46423dfebf VM: merge strings.hpp and tuples.hpp into layouts.hpp, because those
header files were so tiny
2015-07-06 22:49:38 +02:00
Doug Coleman 64ccac3572 Revert "GNUmakefile: Don't compile.gch with -std=c++11"
This wasn't the problem.

This reverts commit e97e74b682.
2015-06-05 10:52:48 -07:00
Doug Coleman e97e74b682 GNUmakefile: Don't compile.gch with -std=c++11 2015-06-05 10:35:03 -07:00
Doug Coleman ad2c2c36bb GNUmakefile: add -std=c++11 to CXXFLAGS 2015-06-05 10:31:49 -07:00
Björn Lindqvist 0a6486ef78 VM: the aging_policy and nursery_policy classes are so small that they
can be in the same cpp file with the methods that use them
2015-05-09 20:04:21 -07:00
Björn Lindqvist e4bb3058e0 VM: the copying_collector only contained one method, so it can easily be
merged with its base class
2015-05-09 20:04:21 -07:00
Björn Lindqvist 9bfc43144e VM: debug macros FACTOR_PRINT and FACTOR_PRINT_MARK to make better debug
printing messages than just using std::cout
2015-05-09 20:04:21 -07:00
Björn Lindqvist 4d7bc4c169 VM: merge of slot_visitor and code_block_visitor
Looks like there is no reason for them to be separate classes and by
merging them you can simplify lots of code.
2015-01-15 09:29:14 +00:00
Björn Lindqvist 885b5c7043 VM: no need for a nursery_space class, it's just a bump_allocator 2014-12-04 10:23:33 -08:00
Doug Coleman a6dd9a025c Revert "version number: 0.98 -> 0.98-git. @bjourne suggested, some python projects do this too."
This reverts commit 599c2cdba2.

XXX: Mac fails with this error:

c++ -Wall -DFACTOR_VERSION="0.98-git" -DFACTOR_GIT_LABEL="heads/master-0-g599c2cd" -fomit-frame-pointer -mmacosx-version-min=10.5 -m64 -O3 -g -dynamiclib -single_module -current_version 0.98-git -compatibility_version 0.98-git -fvisibility=hidden -lm -framework Cocoa -framework AppKit -o libfactor.dylib vm/os-unix.o vm/os-macosx.o vm/mach_signal.o vm/mvm-unix.o vm/cpu-x86.o vm/aging_collector.o vm/alien.o vm/arrays.o vm/bignum.o vm/byte_arrays.o vm/callbacks.o vm/callstack.o vm/code_blocks.o vm/code_heap.o vm/compaction.o vm/contexts.o vm/data_heap.o vm/data_heap_checker.o vm/debug.o vm/dispatch.o vm/entry_points.o vm/errors.o vm/factor.o vm/free_list.o vm/full_collector.o vm/gc.o vm/gc_info.o vm/image.o vm/inline_cache.o vm/instruction_operands.o vm/io.o vm/jit.o vm/math.o vm/mvm.o vm/nursery_collector.o vm/object_start_map.o vm/objects.o vm/primitives.o vm/quotations.o vm/run.o vm/safepoints.o vm/sampling_profiler.o vm/strings.o vm/to_tenured_collector.o vm/tuples.o vm/utilities.o vm/vm.o vm/words.o
ld: malformed 32-bit x.y.z version number: 0.98-git
clang: error: linker command failed with exit code 1 (use -v to see invocation)
2014-11-11 00:16:00 -08:00
Doug Coleman 599c2cdba2 version number: 0.98 -> 0.98-git. @bjourne suggested, some python projects do this too. 2014-11-11 00:13:23 -08:00
Doug Coleman 11be8734cb GNUmakefile: Remove LIBPATH from the build system since nothing needs it. Fixes #1192. 2014-11-11 00:05:52 -08:00
Doug Coleman d9271046be GNUmakefile, factor.cmd: Update versions to 0.98 2014-11-10 23:08:49 -08:00
Björn Lindqvist 090f4fddd5 VM: Three new special objects added to keep track of the builds version number, git label and compilation time respectively. The info is exposed in the system:version-info word and also shown in the banner during startup.
Conflicts:
	Nmakefile
	basis/ui/tools/listener/listener.factor
	core/alien/strings/strings.factor
2014-11-10 23:01:52 -08:00
Benjamin Pollack 2c3dd8c3c8 Remove executable bit from tons of files that aren't 2014-11-05 20:40:42 -08:00
John Benediktsson 56a3a3cd62 build-support: allow CC and CXX to be overridden. 2014-06-06 15:06:48 -07:00
Doug Coleman e7f64b8c4d GNUMakefile: Use -g for symbols. 2014-05-07 13:29:05 -07:00
Erik Charlebois a42ba561d2 VM: Remove empty source files 2013-05-12 13:24:40 -04:00
John Benediktsson 23b3bcc313 Update version in GNUmakefile. 2013-04-24 07:44:06 -07:00
Doug Coleman 81aec8be21 GNUmakefile: Version was still .94, bump it to .96 2013-03-29 10:25:14 -07:00
Felix Kaiser 5ed361552a fix build for linux (issue #480). thanks, jcollado! 2012-03-25 14:45:17 -07:00
Joe Groff 0a1a252cdb vm: replace assert with FACTOR_ASSERT
Factor is finally a real C++ project and has a custom assert macro. Assertion failures were still getting caught as exceptions and causing failure loops. Write our own macro that calls factor::abort on failure.
2011-11-23 11:11:26 -08:00
Joe Groff c31530caec vm: strip out call-counting profiler
This makes the separate "code" and "entry_point" fields in word and quotation redundant, so also remove them to reclaim an additional cell per word and quotation object, which should help with #318.
2011-11-10 16:01:07 -08:00
Joe Groff b46fd5e655 GNUmakefile: use PCH so compiler goes faster
Also add more accurate dependencies on headers so "make" works right when headers change
2011-11-08 08:42:46 -08:00
Joe Groff 72d335f2b5 vm: write async signals to pipe for multiplexer
also factor out safepoint logic into its own file
2011-11-08 08:42:46 -08:00