Skip to content
This repository has been archived by the owner on Jun 16, 2021. It is now read-only.

spiralofhope/mythryl

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

README for Mythryl

Installing Mythryl
==================

Mythryl is currently developed on 32-bit x86 Debian Linux. ("stable".)
The distribution provided should build on most (all?) x86 Linux
platforms, and perhaps some x86 BSDs, maybe even Intel Mac OS X.
It definitely will NOT install on non-x86 platforms as distributed.

(Since Mythryl is a self-compiling system, this source distribution
necessarily also includes a set of seed binary files for bootstrap
purposes, hence the comparatively large size of the tarball.)

You may unpack it on most platforms by doing

    tar -xjf mythryl.110.58*tar.bz2

cd into the directory thus created.

Before compiling, make sure you have the standard C and Gtk
development libraries and header files installed.
On Debian or Ubuntu this will include

    libc6-dev
    libgtkglext1-dev
    libgtk2.0-0
    libgtk2.0-bin
    libgtk2.0-common
    libgtk2.0-dev

# To play with the (currently nonfunctional) Mythryl OpenCV
# library bindings, you'd also need the OpenCV development
# libraries and header files:
#    libcv1
#    libcv-dev
#    libcvaux1
#    libcvaux-dev
#    libhighgui1
#    libhighgui-dev
# NB:  The "make check" code exercising these is currently
# commented out in   src/lib/test/unit-tests.make7
# and                src/lib/test/all-unit-tests.pkg 

Do
    make compiler

As root do

    make install

This will install the following executables:

    /usr/bin/mythryl               # The wrapper C program which makes script-style Mythryl shebang invocation work.
    /usr/bin/mythryl-runtime-ia32  # The C-coded runtime which actually executes the above heap image.
    /usr/bin/mythryld              # The compiler proper, with all major libraries preloaded, as an "executable" heap image.
    /usr/bin/my                    # Symlink to the above, for brevity and interaction. 
    /usr/bin/mythryl-gtk-slave     # Mythryl Gtk library support.

With that done, you should be able to execute
the provided

    try/hello

Mythryl script.  At that point I suggest
consulting the tutorial pages at

    http://mythryl.org

If you find Mythryl interesting, you may wish to
subscribe to the mailing list to get announcements
of new releases:

    http://mythryl.org/mailman/listinfo/mythryl

This is a low-traffic list.

Happy hacking! :)

 -- Cynbe


Mythryl Development Cycle
=========================

For what it is worth, the compiler development cycle I use is:

    loop {

	edit madly              # In xemacs, of course! :)

	make compiler		# Build the compiler and core libraries.
	make rest		# Build the rest of the distribution -- x-kit &tc.

        sudo make install	# Install executables in /usr/bin

	make check	        # Verify that nothing obvious is broken.
                                # These checks run the /usr/bin copies
                                # of the executables, so if you skip the
                                # above install, you're testing the wrong
                                # version.

        make tar                # Save a known-good copy of the codebase.
    }

I usually run the above cycle roughly once an hour
during development.

If something breaks, I rarely debug.  Instead I go back
to the most recent known-good tarball and set forth
again from it, only more carefully this time.

Once a day or so, I make a remote backup of a known-good
tarball.

Once a week or so, I prune my collection of old tarballs
down to one per day.

When I wake up with my finger on the 'j' key and a screenful
of 'j's, I go to bed. :)


Additional Resources
====================

For emacs users Phil Rand maintains a mythryl-mode.el at:

    http://github.com/phr/mythryl-mode/

The latest development snapshots of Mythryl may be found at:

    http://github.com/Mythryl/
  


Releases

No releases published

Packages

No packages published

Languages

  • C 71.9%
  • Standard ML 11.6%
  • Shell 10.5%
  • Assembly 3.3%
  • Perl 2.5%
  • Vim Script 0.2%