-
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