Skip to content

Commit

Permalink
Renamed directories 'developer' to 'dev' and 'specification' to 'vmsp…
Browse files Browse the repository at this point in the history
…ec'.
  • Loading branch information
ayardley committed Dec 11, 2011
1 parent c456225 commit 726de08
Show file tree
Hide file tree
Showing 23 changed files with 160 additions and 0 deletions.
1 change: 1 addition & 0 deletions docs/revisions/docs/mans/dev/.gitignore
@@ -0,0 +1 @@
# Temporary placeholder
1 change: 1 addition & 0 deletions docs/revisions/docs/mans/vmspec/.gitignore
@@ -0,0 +1 @@
# Temporary placeholder
1 change: 1 addition & 0 deletions docs/revisions/docs/mans/vmspec/README.pod
@@ -0,0 +1 @@
# Copyright (C) 2011-2012, Parrot Foundation
1 change: 1 addition & 0 deletions docs/revisions/docs/mans/vmspec/acknowledgments.pod
@@ -0,0 +1 @@
# Copyright (C) 2011-2012, Parrot Foundation
1 change: 1 addition & 0 deletions docs/revisions/docs/mans/vmspec/appa_PIR_language.pod
@@ -0,0 +1 @@
# Copyright (C) 2011-2012, Parrot Foundation
@@ -0,0 +1 @@
# Copyright (C) 2011-2012, Parrot Foundation
1 change: 1 addition & 0 deletions docs/revisions/docs/mans/vmspec/bibliography.pod
@@ -0,0 +1 @@
# Copyright (C) 2011-2012, Parrot Foundation
1 change: 1 addition & 0 deletions docs/revisions/docs/mans/vmspec/ch01_introduction.pod
@@ -0,0 +1 @@
# Copyright (C) 2011-2012, Parrot Foundation
@@ -0,0 +1 @@
# Copyright (C) 2011-2012, Parrot Foundation
1 change: 1 addition & 0 deletions docs/revisions/docs/mans/vmspec/ch03_structure_of_PVM.pod
@@ -0,0 +1 @@
# Copyright (C) 2011-2012, Parrot Foundation
@@ -0,0 +1 @@
# Copyright (C) 2011-2012, Parrot Foundation
@@ -0,0 +1 @@
# Copyright (C) 2011-2012, Parrot Foundation
@@ -0,0 +1 @@
# Copyright (C) 2011-2012, Parrot Foundation
1 change: 1 addition & 0 deletions docs/revisions/docs/mans/vmspec/ch07_compiling_for_PVM.pod
@@ -0,0 +1 @@
# Copyright (C) 2011-2012, Parrot Foundation
1 change: 1 addition & 0 deletions docs/revisions/docs/mans/vmspec/ch08_memory_internals.pod
@@ -0,0 +1 @@
# Copyright (C) 2011-2012, Parrot Foundation
1 change: 1 addition & 0 deletions docs/revisions/docs/mans/vmspec/ch09_thread_system.pod
@@ -0,0 +1 @@
# Copyright (C) 2011-2012, Parrot Foundation
@@ -0,0 +1 @@
# Copyright (C) 2011-2012, Parrot Foundation
1 change: 1 addition & 0 deletions docs/revisions/docs/mans/vmspec/glossary.pod
@@ -0,0 +1 @@
# Copyright (C) 2011-2012, Parrot Foundation
1 change: 1 addition & 0 deletions docs/revisions/docs/mans/vmspec/index.pod
@@ -0,0 +1 @@
# Copyright (C) 2011-2012, Parrot Foundation
48 changes: 48 additions & 0 deletions docs/revisions/docs/mans/vmspec/preface.pod
@@ -0,0 +1,48 @@
# Copyright (C) 2011, Parrot Foundation

=pod

=head1 NAME

docs/manuals/specification/preface.pod - Preface to the Parrot Virtual Machine Specification and Implementation Reference document.

=head1 DESCRIPTION

This README sets out some general guidelines on how to convert the various 'README' files in the Parrot distribution into 'README.pod' files. One of main reasons for this effort is to provide a uniform presentation throughout the distribution, and I<your> hard work will go a long-way towards helping us to achieve this aim. So, first, please let us take a moment to say, "Thank you," both for your time and for your effort.

The "basic" idea here is to retain the text, along with the relevant headings, already present in the 'README', but to wrap it all in the POD. To accomplish this, please use the 'README_template.pod', included in this directory, as a guide. For a specific example of a "properly" formatted 'README.pod' file, please I<see> the 'README.pod' in the 'docs/readmes/parrot/' directory. To learn more about POD, please I<see> 'perlpod' (I<i.e.,> issue the command, C<perldoc perlpod> in your favorite shell or commandline program, assuming, of course, you already have Perl installed on your system) or, alternatively, you can read about POD in "Chapter 26: Plain Old Documentation" of "Programming Perl".

=head2 General Guidelines

=over 4

=item *




The Java virtual machine specification has been written to fully document the design of the Java virtual machine. It is essential for compiler writers who wish to target the Java virtual machine and for programmers who want to implement a compatible Java virtual machine. It is also a definitive source for anyone who wants to know exactly how the Java programming language is implemented.

The Java virtual machine is an abstract machine. References to the Java virtual machine throughout this specification refer to this abstract machine rather than to Sun's or any other specific implementation. This book serves as documentation for a concrete implementation of the Java virtual machine only as a blueprint documents a house. An implementation of the Java virtual machine (known as a runtime interpreter) must embody this specification, but is constrained by it only where absolutely necessary.

The Java virtual machine specified here will support the Java programming language specified in The JavaTM Language Specification (Addison-Wesley, 1996). It is compatible with the Java platform implemented by Sun's JDK releases 1.0.2 and 1.1 and the JavaTM 2 platform implemented by Sun's JavaTM 2 SDK, Standard Edition, v1.2 (formerly known as JDK release 1.2).

We intend that this specification should sufficiently document the Java virtual machine to make possible compatible clean-room implementations. If you are considering constructing your own Java virtual machine implementation, feel free to contact us to obtain assistance to ensure the 100% compatibility of your implementation.

Send comments on this specification or questions about implementing the Java virtual machine to our electronic feedback form. To learn the latest about the Java 2 platform, or to download the latest Java 2 SDK release, visit our World Wide Web site at http://java.sun.com. For updated information about the Java Series, including errata for The JavaTM Virtual Machine Specification, and previews of forthcoming books, visit http://java.sun.com/Series.

The virtual machine that evolved into the Java virtual machine was originally designed by James Gosling in 1992 to support the Oak programming language. The evolution into its present form occurred through the direct and indirect efforts of many people and spanned Sun's Green project, FirstPerson, Inc., the LiveOak project, the Java Products Group, JavaSoft, and today, Sun's Java Software. The authors are grateful to the many contributors and supporters.

This book began as internal project documentation. Kathy Walrath edited that early draft, helping to give the world its first look at the internals of the Java programming language. It was then converted to HTML by Mary Campione and was made available on our Web site before being expanded into book form.

The creation of The JavaTM Virtual Machine Specification owes much to the support of the Java Products Group led by General Manager Ruth Hennigar, to the efforts of series editor Lisa Friendly, and to editor Mike Hendrickson and his group at Addison-Wesley. The many criticisms and suggestions received from reviewers of early online drafts, as well as drafts of the printed book, improved its quality immensely. We owe special thanks to Richard Tuck for his careful review of the manuscript and to the authors of The JavaTM Language Specification, Addison-Wesley, 1996, for allowing us to quote extensively from that book. Particular thanks to Bill Joy whose comments, reviews, and guidance have contributed greatly to the completeness and accuracy of this book.

=head1 NOTES

[Notes! Notes! Notes!]

=head1 COPYRIGHT

Copyright (C) 2001-2011, Parrot Foundation.

=cut
91 changes: 91 additions & 0 deletions docs/revisions/docs/mans/vmspec/proposal.txt
@@ -0,0 +1,91 @@
A Proposal:
The Parrot Virtual Machine Specification
and
Implementation Reference

by

Alvis Yardley


Abstract: This brief document sets out a proposal for the Parrot Developer
Team's adoption of a Parrot Virtual Machine Specification and an Implementation
Reference. ....

The purpose of a virtual machine specification [hereinafter VM Spec] is to
document, clearly, the design of a virtual machine. The goal of a VM Spec is to
serve as a reference document for compiler writers, who desire to target the
virtual machine, and as a definitive source of information on the implementation
of a virtual machine [hereinafer VM].


It is an essential
reference document for compiler writers who want to target the virtual machine,
and it constitutes the definitive source of information on the implementation of
a virtual machine [hereinafter VM]. In short, the aim of a specification is to
bring clariy to Here, of course, the Parrot Virtual Machine
[hereinafter PVM].

Specifications, however, often tend towards the abstract,[1] lacking both
sufficient detail or concrete examples to enable compiler writers in their
efforts. This proposal offers to correct this limitation with the inclusion of
an Implementation Reference [hereinafter IR] of the PVM. Specifically, this
proposal takes the position that an essential aspect of understanding the
implementation of the PVM requires the inclusion of specific details and
concrete examples.

As examples, where the PVM Spec addresses the structure of the PVM, it will
also include snippets of 'C' code with which to ellucidate the point, and, where
it covers how to load parrot bytecode, it will contain specific code examples in
the Winxed Programming Language on how to accomplish this feat.[2]

A tentative orgainzation of the PVM Specification and Implementation
Reference is as follows:

Preface
Table of Contents
Chapter 1: Introduction
Chapter 2: The Winxed Programming Language Concepts
Chapter 3: The Structure of the Parrot Virtual Machine
Chapter 4: The bytecode File Format
Chapter 5: Loading, Linking, and Intializing
Chapter 6: The Parrot Virtual Machine Instruction Set
Chapter 7: Compiling for the Parrot Virtual Machine
Chapter 8: The Memory Internals
Chapter 9: The Parrot Virtual Machine Threading System
Chapter 10: Opcode Mnemonics by Opcode
Appendix A: The Parrot Intermediate Representation Language
Appendix B: The NQP (Not Quite Perl) Programming Language
Glossary
Bibliography
Index

As anyone familiar with the Java Virtual Machine Specification [hereinafter
JVM Spec] will readily see, the above outline closely resembles the JVM Spec.
It does so, not because the PVM closely resembles the JVM, but because the JVM
Spec has a proven track record of serving its community of developers and
compiler writers, and I would like the PVM Spec and IR to serve Parrot's
community of developers and compiler writeres equally well.[3]

At this point, I should point out two, rather significant, objections to the
adoption of a PVM Spec and IR: (1) The PVM's relative instability and (2) the
existence of the Parrot's Design Documents [hereinafter PDD].






---------------
[1] See, e.g., the Java Virtual Machine Specification (2d ed.), http://java.sun.com/docs/books/jvms/second_edition/html/VMSpecTOC.doc.html

[2] One point of clarification may, at this point, be necessary: Neither the
PVM Spec nor the IR shall serve to, in any way, "drive" the development of
Parrot or the implementation decisions of core developers. Rather, it will
serve only to document the existing implementation and, when and where changes
occur, to document the changes of the "core" development team.

[3] This said, I am decidely NOT wedded to this organization. And I am very
interested in hearing (or, rather, reading) other's suggestions about how to
better organize the material in the PVM Spec and IR.

1 change: 1 addition & 0 deletions docs/revisions/docs/mans/vmspec/proposal.txt~
@@ -0,0 +1 @@
Proposal
1 change: 1 addition & 0 deletions docs/revisions/docs/mans/vmspec/toc.pod
@@ -0,0 +1 @@
# Copyright (C) 2011-2012, Parrot Foundation

0 comments on commit 726de08

Please sign in to comment.