-
Notifications
You must be signed in to change notification settings - Fork 1
not-in-progress compiler for Windows/Linux/macOS
License
srh/kit
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Kit v0.00.2C.x
Current status: "This is a test! Ignore!!!"
1. BUILD INSTRUCTIONS
(From a Visual Studio command line:)
mk\build_windows.bat
or (on 32-bit Linux, or 64-bit with gcc-multilib)
./mk/build_linux.sh
or (on OS X, with XCode tools (i.e. clang) installed)
./mk/build_osx.sh
2. RUN INSTRUCTIONS
# Run tests.
s6
# Run tests more verbosely.
s6 --build
# Run tests verbosely, without the codegen phase.
s6 --no-build
# Build modulename.ki and its imports for Windows, => modulename.obj
s6 <modulename>
# Build modulename.ki and its imports, => modulename.o
s6 --linux <modulename>
s6 --osx <modulename>
3. FOR FREEBSD USERS
FreeBSD works out of the box with "--linux" -- you'll probably
need to tweak the mk/linux scripts to use clang.
4. PREREQUISITES
-. An x86 CPU.
-. One of:
a. Windows (MSVC 2013 or 2015)
b. Linux (gcc with 32-bit support, i.e. gcc-multilib)
c. OS X (with clang, i.e. XCode's command line tools, or maybe some GCC)
c. FreeBSD (using the "--linux" option, it makes an ELF .o file)
5. DIRECTORY STRUCTURE
The current directory structure is:
phase1 - s1, implemented in C. Compiles s2.
phase2 - s2, implemented in proto-Kit. Compiles s2 and s3.
phase3 - s3, implemented in proto-Kit. Compiles s3 and s4.
phase4 - s4, implemented in proto-Kit. Compiles s4 and s5.
phase5 - s5, implemented in proto-Kit. Compiles s5 and s6.
src - s6, implemented in proto-Kit. Compiles s6.
examples - examples to run, disorganized junk
ABOUT THE VERSIONS
- s1's language is merely "C, with templates, constructors and
destructors, elementary encapsulation, tagged enum types, no
implicit conversions."
- s2's is very similar to s1's, but with some worthwhile
enhancements that s1 does not support.
- s3 uses s2's quick-return expressions.
- s4 uses s3's generalized indexing expressions.
- s5 uses s4's foreach loops. It defines the same language as s4.
- s6 should be compilable via s4 and s5. s1 will someday be
capable of compiling s6 directly (once quick-return, generalized
indexing, and foreach loops get added).
At some point, the highest-numbered version will use features that
s1 will never support. See FEATURES for more information.
ABOUT THE IMPLEMENTATIONS
s1 can target x86 and, on Linux, amd64. Use --linux64 to target
amd64.
s2, s3, s4, and s5 can only target x86.
These only compile object files. Try `gcc -no-pie` when linking,
which is (for now) necessary on amd64.
About
not-in-progress compiler for Windows/Linux/macOS
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published