Porting alien software to Plan 9
D1272014875
Auriel
#Plan 9's C dialect (for the most part) consists of a less
#sophisticated pre-processor and a few extensions to the language
#proper. The extensions are described briefly on the 2c(1) man page
#and in more detail in the paper "[How to Use the Plan 9 C Compiler |
#http://doc.cat-v.org/plan_9/4th_edition/papers/comp]"
#(/sys/doc/comp.ps).
#
#Plan 9 also includes a compatibility subsystem called APE, the
#ANSI/POSIX Environment, which includes a complete ANSI
#pre-preprocessor.
#
#The biggest differences you're likely to run into on this level are
#the libraries. Plan 9 provides different libraries for many of the
#standard functions. And obviously many things - such as networking -
#are done completely differently. Again, APE provides the ANSI/POSIX
#libraries and many common extensions.
#
#As suggested here a few times before, APE may actually be a more
#exactly conforming ANSI/POSIX environment than many Unix systems.
#But the preferred development environment is still Plan 9's native
#environment, which provides access to the native libraries, compiles
#faster, and results in faster executables. Nearly all the C code in
#the system as distributed (gs and troff are the only exceptions I
#can think of) are written in Plan 9's C dialect.
#
#As far as other languages, people have ported Perl, Python, and
#MosML with some success. They are not distributed with the system,
#but see the links at the bottom of this page for pointers. There was
#a C++ compiler in the 2nd edition, but not in the 3rd edition.
#rc(1), the shell, is excellent, with many improvements over the
#Bourne shell that make it well-suited to scripting. If you _need_
#it, APE provides a mostly-ksh shell (minus the editing modes and
#history). There's also awk(1).
#
#If you're doing applications-level work, and you're willing to learn
#something new, it'd be worth your time to learn Limbo, the
#programming language in Inferno. Inferno runs on Plan 9, and lots of
#other platforms too (various Unixes, Win-32, raw hardware). Limbo is
#a new language in the C lineage, with great facilities for
#inter-process communication, multi-threaded, multi-process
#development, and a very nice syntax. Definitely worth your
#investigation.
#
#mk(1) is used extensively in Plan 9 for keeping binaries up to date
#from source. Mk is described in more detail in the paper
#"Maintaining Files on Plan 9 with Mk" (/sys/doc/mk.ps). Its function
#is similar to make (which, again, APE provides), but it's simpler
#and, consequently, more powerful. The paper "Plan 9 Mkfiles" gives
#some examples of how mk and mkfiles are used in the system. For an
#example of using mk outside of its normal role of building binaries,
#see /sys/doc/mkfile.
#
#The common development environment (in the IDE sense of the term) is
#acme, a sort of combination shell, windowing system, and development
#environment. It's described in the acme(1) man page, and in the
#paper "Acme: A User Interface for Programmers"
#(/sys/doc/acme/acme.ps). Acme is available in both the Plan 9 and
#Inferno distributions. The name of the paper is somewhat misleading
#- it's quite useful for lots of non-programming tasks, as well. For
#example, my preferred email client runs in Acme, and I use Acme as
#my text editor.
#
#Andrew Pochinsky partially ported SXM to Plan 9, take a look at
#[http://www.malgil.com/sxm/] There are still missing things in the
#Plan 9 version, the most conspicuous being the lack of Unicode
#support. It could probably be fixed without changing the SXM
#character model, though.
#
#David Gordon Hogan made the Plan 9 port of GCC 3.0(and related
#utilities) available to the public. There are three gzipped tar
#files:
#
# * /n/sources/extra/gcc/gnubin.tgz
# * /n/sources/extra/gcc/ape.tgz
# * /n/sources/extra/gcc/gnusrc.tgz
#
#The first one should be unpacked in the root of your Plan 9 system
#in order to install the various binaries, libraries etc in the
#required system locations. It's 386 only, that's all that works at
#this stage.
#
#The second contains the sources of a port of the APE libraries which
#works with GCC. APE is distributed under the terms of the Plan 9
#License. It should be unpacked into /sys/src/gnu/ape.
#
#The third archive is a snapshot of the sources used to build GCC et
#al. It's in a slightly unkempt state. Consult the README file for
#more details. It should be unpacked into /sys/src/gnu. GCC,
#Binutils, and the other files in the third archive are distributed
#in accordance with the GPL.
#
#The two archives are also linked from
#[http://plan9.bell-labs.com/plan9/addons.html].
#
#! From: Latchesar Ionkov (lucho@gmx.net)
#! Subject: Re: [9fans] Java for Plan 9?
#! Newsgroups: comp.os.plan9 Date: 2001-10-24 07:19:08 PST
#!
#! On Wed, Oct 24, 2001 at 08:44:28AM +0000, Matt Senecal said:
#! > Not to raise the spectre of Java over Plan 9, but has there been any attempt
#! > to create a Plan 9 JVM that adheres to the Java specs 100%?
#!
#! I am porting CVM virtual machine
#[http://java.sun.com/products/cdc/cvm |
#http://java.sun.com/products/cdc/cvm]
#! to Plan9. CVM is J2EE compliant
#! and its source looks much better than the JVM one. I don't have much
#! free time and my interest on the port is not consistent, so there is
#! nothing to show. So far I ported the most difficult parts of the HPI
#! (threads, locks and JNI). My current excuse are the restrictions of
#! the filenames. I am waiting for 9P2000 :)
#!
#! Lucho
#
#The [Kaffe | http://www.kaffe.org/] Java implementation has now been
#ported to Plan 9. Kaffe for Plan 9 was originally created by the
#Bela Lugosi team as part of their undergraduate studies at the
#Helsinki University of Technology. In addition to the java
#interpreter, Kaffe distribution package contains a just-in-time
#compiler implementation. But it is incomplete and not fully
#functional. This port is for Intel 386 compliant platforms only.
#
#LINKS
#
# * [Hugs | http://pages.cpsc.ucalgary.ca/~mirtchov/p9/hugs/], an
# interpreter for the [Haskell | http://www.haskell.org] functional
# language.
# * Ocaml another functional programming language whose interpreter
# has been ported to Plan 9
# * Russ Cox has ported MosML. Now on /n/sources.
# * [SXM | http://www.malgil.com/sxm/], a portable implementation of
# the Scheme Programming language.
# * There's a Python 2.2+ port at /n/sources.
# * Perl on Plan9
# [http://www.perldoc.com/perl5.8.0/README.plan9.html]. Now Perl
# 5.8.0 on /n/sources.
# * There's also a GCC 3.0 port at /n/sources.
# * [Kaffe distribution package |
# http://www.hut.fi/~tikonen/plan9/kaffe-plan9.tar.Z] includes the
# source, binary and more detailed information.
#
|