NameDateSize

..16-Mar-201612 KiB

.gitignore06-Oct-201411.2 KiB

.travis.yml14-Dec-20152.7 KiB

api.yaml19-Oct-201524.8 KiB

appveyor.yml14-Dec-2015999

ChangeLog14-Dec-2015420.2 KiB

compilers/29-Dec-20124 KiB

config/29-Dec-20124 KiB

Configure.pl05-Jan-201517 KiB

CREDITS30-Nov-201522.1 KiB

DEVELOPING29-Dec-2012171

docs/15-Dec-20154 KiB

DONORS.pod17-Oct-2014890

editor/29-Dec-20124 KiB

examples/29-Dec-20124 KiB

ext/24-May-20134 KiB

frontend/29-Dec-20124 KiB

include/29-Dec-20124 KiB

lib/16-Dec-20144 KiB

LICENSE29-Dec-20128.7 KiB

MANIFEST14-Dec-2015148.1 KiB

MANIFEST.SKIP06-Oct-201425.9 KiB

parrotbug29-Dec-201219.1 KiB

PBC_COMPAT29-Dec-20122.1 KiB

PLATFORMS17-Jun-20153.1 KiB

ports/29-Dec-20124 KiB

README.pod06-Mar-20145.7 KiB

README_cygwin.pod05-Jan-20135.5 KiB

README_win32.pod10-Sep-20146.9 KiB

RESPONSIBLE_PARTIES12-Aug-20153.8 KiB

runtime/29-Dec-20124 KiB

src/17-Jun-20154 KiB

t/07-Nov-20144 KiB

TODO29-Dec-2012213

tools/29-Dec-20124 KiB

VERSION30-Nov-20157

README.pod

1# Copyright (C) 2001-2014, Parrot Foundation.
2
3=pod
4
5=head1 NAME
6
7README.pod - Parrot Virtual Machine
8
9=head1 DESCRIPTION
10
11Parrot is a virtual machine designed to efficiently compile and execute
12bytecode for dynamic languages.
13
14=head1 LICENSE
15
16This code is distributed under the terms of the Artistic License 2.0.
17For more details, see the full text of the license in the file 'LICENSE'.
18
19=head1 PREREQUISITES
20
21You need a C compiler, a linker, and a 'make' program.
22
23If you plan to link Parrot with the ICU library, you must download and install
24it I<before> configuring Parrot. You may obtain the ICU library at
25http://site.icu-project.org/download.
26
27You will also need Perl 5.8.4 or newer and Storable 2.12 or newer in order to
28run various configure and build scripts.
29
30For most of the platforms we support, Parrot should build out-of-the-box.
31'docs/parrot.pod' lists the core platforms, and 'PLATFORMS' provides reports
32on the platforms on which Parrot has been built and tested.
33
34=head1 HOW TO GET PARROT FROM GITHUB
35
36=head2 I.  Install Git.
37
38Linux:
39The method depends on your distribution. To install you should execute (as
40root or sudo <cmd>):
41
42On Ubuntu/Debian (apt-based):
43
44    apt-get install git-core
45
46On Red Hat, Fedora (rpm-based):
47
48    yum install git
49
50on Gentoo (portage):
51
52    emerge -av dev-vcs/git
53
54Windows:
55There are 2 Git ports on Windows:
56
57    msysgit          http://code.google.com/p/msysgit/downloads/list
58    TortoiseGit  http://code.google.com/p/tortoisegit/downloads/list
59
60Macintosh OS X:
61An Internet search will locate a variety of git installers for Mac OS X, for
62example,
63
64    http://help.github.com/mac-git-installation/
65
66=head2 II.  Obtaining Parrot from github.com
67
68To obtain a copy of the Parrot Git repository:
69
70    git clone git://github.com/parrot/parrot.git
71
72This will checkout the master branch by default. To create a local branch
73which tracks the branch "some_branch":
74
75    git checkout -b --track some_branch origin/some_branch
76
77
78For reference, --track is now redundant as it is now the default behavior.
79
80All the above URLs are read-only. If you are a Parrot core developer, then
81use the read-write URL:
82
83    git clone git@github.com:parrot/parrot.git
84
85You can view the list of branches at http://github.com/parrot/parrot
86
87=head1 INSTRUCTIONS
88
89For now, unpack your Parrot tarball, (if you're reading this, you've probably
90already done that) and type
91
92    perl Configure.pl
93
94OR
95    perl Configure.pl --optimize
96
97to run the Configure script. For packagers or if you want your Parrot to run
98about 2x faster, use --optimize. If you want to improve your chances in debugging
99programs and stacktraces, omit --optimize and add --debugging instead.
100
101The 'Configure.pl' script extracts configuration information from the running
102perl5 program.  You  need to explicitly tell 'Configure.pl' which compiler
103and linker to use.  For example:
104
105    perl Configure.pl --cc=cc --link=$CC --ld=$CC
106
107I<See> 'perl Configure.pl --help' for more options and 'docs/configuration.pod'
108for more details.
109
110For systems like HPUX that don't have inet_pton please run
111
112    perl Configure.pl --define=inet_aton
113
114Running 'Configure.pl' will generate a 'config.h' header, a 'Parrot::Config'
115module, platform files, and many Makefiles.
116
117The file 'myconfig' has an overview of configure settings.
118
119Next, run 'make' or 'gmake'. ('Configure.pl' will tell you which version of
120'make' it recommends for your system.)
121
122If you are building the ICU library (this is the default on most systems), you
123need to use 'GNU make' instead (or something compatible with it).
124
125You can test Parrot by running 'make test'. You can run the tests in parallel
126with 'make TEST_JOBS=3 test'.
127
128You can run the full test suite with
129
130    make fulltest
131
132NOTE: PLATFORMS contains notes about whether test failures are expected on
133your system.
134
135You can install Parrot with,
136
137    make install
138
139By default, this installs in '/usr/local', with the Parrot executable in
140'/usr/local/bin'. If you want to install Parrot into another location use the
141following:
142
143    perl Configure.pl --prefix=/dir/to/install/
144    make install
145
146But please note, the dynamic libs will not be found for non-standard locations
147unless you set the environment variable 'LD_LIBRARY_PATH' or something similar.
148
149For where to go from here, I<see> F<docs/parrot.pod> and I<see>
150F<docs/intro.pod>.  If you experience problems, please I<see> the section
151"How To Submit A Bug Report" in F<docs/submissions.pod>.  These documents are
152in POD format, and you can view them with the command,
153
154    perldoc -F docs/intro.pod
155
156In addition, you may obtain an html-ized version of our docs -- which, in 
157some respects, are more extensive than our POD documents -- with the following
158command:
159
160    cpan JSON       # Needed by the next command
161    make html
162
163You may then view a local copy of the html documentation by navigating your
164favorite browser to the index page of the 'docs/html/' directory, I<i.e.,>
165'docs/html/index.html'.  
166
167=head1 CHANGES
168
169For documentation on the user-visible changes between this and previous
170versions of Parrot, I<see> 'ChangeLog'.
171
172=head1 MAILING LISTS
173
174The Parrot user mailing list is 'parrot-users@lists.parrot.org'. You may
175subscribe to the mailing list by filling out the form at
176http://lists.parrot.org/mailman/listinfo/parrot-users.  There is an archive
177of the mailing list at http://lists.parrot.org/pipermail/parrot-users/.
178
179For development discussions, I<see> the information in
180F<docs/gettingstarted.pod>.
181
182=head1 FEEDBACK, PATCHES, etc.
183
184For more information on how to report bugs and to submit patches, I<see>
185F<docs/submissions.pod>.
186
187=head1 WEB SITES
188
189For more information on Parrot, I<see>
190
191    http://www.parrot.org/
192    http://docs.parrot.org/
193    http://parrot.github.com/
194
195Have fun,
196   The Parrot Team.
197
198=head1 COPYRIGHT
199
200Copyright (C) 2001-2014, Parrot Foundation.
201
202=cut
203

README_cygwin.pod

1# Copyright (C) 2008-2012, Parrot Foundation.
2# This file is best viewed with "perldoc README.cygwin".
3
4=pod
5
6=head1 NAME
7
8README.cygwin - Parrot under Cygwin
9
10=head1 DESCRIPTION
11
12Parrot builds out of the box under Cygwin, when no other parrot is installed.
13I<See> PROBLEMS below.
14
15There are official cygwin parrot packages available via
16L<http://cygwin.com/setup.exe>.
17
18  parrot libparrot0 libparrot-devel parrot-perl6 parrot-languages
19
20Some tweaks are needed for different names for the ffi to some dll's.
21See L</loadlib DLL versioning>.
22
23
24=head1 Packages
25
26You'll need the following Cygwin packages to run and build Parrot
27by your own.
28
29Runtime requirements:
30
31  libreadline6 ncurses libintl8 libgmp3
32
33Optional requirements:
34
35  libicu38 libpq5
36
37  for opengl: w32api opengl or libglut3 xorg-x11-base xorg-x11-bin-dlls
38
39Build requirements:
40
41  gcc make perl parrot readline libncurses-devel libgmp-devel
42  pcre-devel
43
44Optional build requirements:
45
46  libicu-devel
47
48  for Cygwin/X opengl: freeglut libglut-devel xorg-x11-devel
49
50Optional perl packages for testing:
51
52  L<Test::TAP::HTMLMatrix> if you want to run the smoke tests
53  with C<make smoke>.
54
55  perl L<Test::Perl::Critic> and L<Perl::Critic>
56
57=over 4
58
59=item Cygwin subversion and perl
60
61If you use SVN to get a copy of Parrot, you should use the Cygwin SVN
62and not the TortoiseSVN client to avoid build errors.  Similarly you will
63need Cygwin Perl rather than ActiveState or Strawberry Perl.
64
65=item icu
66
67Note that ICU is now optional, you can build Parrot without it,
68by not installing it or asking Parrot to ignore it (C<--without-icu>).
69
70=item opengl
71
72Building is tricky:
73
74If the freeglut package for the X Server is installed, this
75is used, otherwise the w32api and opengl packages for native
76Windows opengl support are tried.
77
78In order to use the w32api native GLUT there must be no
79F</usr/include/GL> directory.
80
81The problem is that the L<NCI|pdds/draft/pdd16_native_call.pod>
82tries the header files to create the imports and not the
83libraries, and if the /usr/include/GL headers are found
84these are used, despite the w32api GLUT libraries are
85defined.
86
87  Determining if your platform supports OpenGL.............yes, freeglut 3.4.
88  Determining if your platform supports OpenGL...................yes, GLUT 3.
89  Determining if your platform supports OpenGL............................no.
90
91Required packages:
92
93  libglut-devel libGL-devel libGLU-devel libglut3 ...
94
95or if C<libglut-devel> and C<libGL-devel> is not installed:
96
97  w32api opengl
98
99=item SDL
100
101SDL references F<cygSDL-1-2-0.dll>, which is only in cygports
102L<http://news.gmane.org/gmane.os.cygwin.ports.announce>
103
104=item aio
105
106libaio-devel "Linux-native asynchronous I/O access" is not available
107for cygwin, and as the name says it will never be :)
108
109=back
110
111=head1 BUILD
112
113  perl Configure.pl
114  make
115  make test
116  make install
117
118=head1 PROBLEMS
119
120=over
121
122=item perl fatal error - unable to remap Glob.dll
123
124Something like:
125  F<perl.exe>: *** fatal error - unable to remap
126  F<C:\cygwin\lib\perl5\5.10\i686-cygwin\auto\File\Glob\Glob.dll>
127  to same address as parent(C<0x860000>) != C<0x14D0000>
128
129This is a known cygwin problem with dll's, esp. perl on non-XP 32bit platforms.
130You need to install the C<rebase> package and run C<rebaseall> from an C<ash>
131shell.
132
133For more information regarding this problem, I<see>
134http://www.cygwin.com/ml/cygwin/2009-05/msg00413.html;
135http://www.heikkitoivonen.net/blog/2008/11/26/cygwin-upgrades-and-rebaseall/;
136I<and see> http://code.google.com/p/chromium/wiki/CygwinDllRemappingFailure.
137
138=item Crash at miniparrot.exe config_lib.pasm
139
140Invoking Parrot to generate runtime/parrot/include/config.fpmc --cross your
141fingers
142
143  F<./miniparrot.exe config_lib.pasm > runtime/parrot/include/config.fpmc>
144crashes
145
146See below.
147
148=item Spurious stackdumps while building
149
150Be sure that there's no other libparrot.dll.a or libparrot.a
151in the linker libpath.
152
153F</usr/lib/libparrot.dll.a>, F</usr/local/lib/libparrot.dll.a>
154
155=item os hardlink test fail
156
157  t/pmc/os....................................
158  #   Failed test 'hard link was really created'
159  #   at t/pmc/os.t line 312.
160
161This is a known Windows limitation with NTFS junctions on files.
162
163=item Exception: STATUS_ACCESS_VIOLATION ....
164
165If this exception results, ensure there is only one version of the
166C<cygwin1.dll> present on your system or, alternatively, ensure no other
167application interferes with Cygwin. For more information on this problem,
168I<see> the Cygwin/X FAQ at
169http://x.cygwin.com/docs/faq/cygwin-x-faq.html#q-status-access-violation
170I<and see> the main Cygwin FAQ at
171http://cygwin.com/faq-nochunks.html#faq.using.bloda
172
173=item build aborts
174
175If the build aborts, it may be necessary to include already built DLLs in the
176rebase. For instructions on how to accomplish this, I<see> the "PROBLEMS"
177section at http://cpansearch.perl.org/src/BFREE/OpenGL-0.57/README.cygwin
178
179=back
180
181=head1 TODO
182
183=over
184
185=item loadlib DLL versioning
186
187Use cyg*-1.1.dll naming conventions instead of lib*.so.1.1 names for
188loadlib, the FFI.
189
190Thanks to the C<Windows DLL Hell> and the impossibility of
191file hardlinks, windows dll names are versioned, so the loadlib
192function or the various pir's needs more logic.
193
194Either add the version to each loadlib call, and stem the version from
195POSIX versions within get_path(), or add an optional version argument
196to loadlib for win32. Or just fix all the pir's, which will be easier
197when exceptions work again.
198
199=item Features
200
201Threads, Events, and Signals are missing.
202
203=back
204
205=head1 AUTHORS
206
207=over
208
209=item Reini Urban E<lt>rurban@x-ray.atE<gt>
210
211=back
212
213=head1 SEE ALSO
214
215    L<parrot>
216
217=head1 HISTORY
218
219Last updated: 23 January 2009
220
221=cut
222

README_win32.pod

1# Copyright (C) 2007-2014, Parrot Foundation.
2# This file is best viewed with "perldoc README_win32".
3=encoding utf8
4
5=head1 NAME
6
7README.win32 - Parrot under Windows
8
9=head1 SYNOPSIS
10
11These are instructions for building the "native" port of Parrot under
12Windows 2000/XP on the Intel x86 architecture.
13
14=head1 DESCRIPTION
15
16Win32 "native" ports require no additional software to run but the
17operating system.  There should be other READMEs for (emulation)
18systems that run on Win32, eg Cygwin.
19
20Native compilers include:
21
22       Borland C++ (bcc)                version xxx or later
23       Microsoft Visual C++ (cl)        version 13.10.3077 or later
24       MinGW32 with GCC (gcc)           version 3.4.2 or later
25       Intel C++ (icl)                  version 8.0.48 works
26
27=head2 Setting Up Parrot
28
29=over
30
31=item Make
32
33You need "nmake" to build Parrot under Windows with Microsoft compilers.  It
34should be available via Microsoft Visual Studio .NET 2003 or the Microsoft .NET
35Framework SDK 1.1.  Download the latter from the Microsoft .NET Framework
36Homepage L<http://msdn.microsoft.com/netframework/>.
37
38Note: Parrot will not build using nmake v1.5 from the MS web site.  Download
39one of the above toolkits to obtain a later version, either v7 or v8.
40
41MinGW works with its GNU "make" (v 3.81) port and its name is
42'mingw32-make.exe'.  If you also have the Minimal SYStem (MSYS) installed,
43you will need to remove the Msys/bin folder from your PATH environment
44variable before calling "perl Configure.pl" and mingw32-make.  Perl detects
45and calls /bin/sh.exe, if found, whenever shelling a new process.  sh.exe
46causes problems for mingw32-make.exe because of its inability to handle
47Windows pathnames with backslashes.  You must run "perl Configure.pl" and
48mingw32-make from a dosbox; running those commands from an MSYS shell window
49will experience the same backslash path problems.
50
51=item Command Shell
52
53The surest way to build it is on Windows NT/2000/XP, using the cmd shell.
54
55=item ICU
56
57Parrot no longer comes with its own ICU, thus you need to install it on your
58system if you want to use it.  Note that ICU is now optional, you can
59build Parrot without it, by not installing it or asking Parrot to
60ignore it (C<--without-icu>).
61
62If you want to use ICU, download it from
63L<http://site.icu-project.org/download>.
64
65If you want to use precompiled binaries, do the following.
66Download the package matching your compiler, unpack it (say, into
67C:\usr\lib), add the F<bin> directory to C<PATH>, and tell
68Configure.pl to use it.
69
70    mkdir C:\usr\lib
71    unzip icu4c-4_2_1-Win32-msvc9.zip -d C:\usr\lib
72    mkdir C:\usr\lib\data
73    set PATH=%PATH%;C:\usr\lib\icu\bin
74    cd <parrot directory>
75    perl Configure.pl
76        --icushared="C:\usr\lib\icu\lib\icudt.lib C:\usr\lib\icu\lib\icuuc.lib"
77        --icuheaders="C:\usr\lib\icu\include"
78
79Note the step of creating the F<C:\usr\lib\data> directory, as Parrot
80really wants it and the binary packages don't contain it.  It doesn't
81need to contain anything though, as the data is pulled in from
82F<lib/icudt.lib>, which contains the standard data in binary form.
83
84=item Optional libraries
85
86The availability of these libraries is checked by Configure.pl.
87
88B<gettext> - library and tools for native language support
89L<http://gnuwin32.sourceforge.net/>
90
91B<GMP> - GNU multiple precision arithmetic library
92L<http://developer.berlios.de/projects/win32gmp/>
93
94B<OpenGL> / B<GLUT> - Open Graphics Library
95L<http://www.xmission.com/~nate/glut.html> or
96L<http://www.transmissionzero.co.uk/computing/using-glut-with-mingw/>
97
98B<pcre> - Perl-Compatible Regular Expression library
99L<http://gnuwin32.sourceforge.net/>
100
101B<readline> - edit command lines
102L<http://gnuwin32.sourceforge.net/>
103
104=item Optional utilities
105
106The availability of these utilities is checked by Configure.pl
107or by some test.
108
109B<antlr> - ANother Tool for Language Recognition
110L<http://www.antlr.org/>
111
112B<ctags> - Exuberant Ctags
113L<http://ctags.sourceforge.net/>
114
115=item Inno Setup
116
117Inno Setup is a I<free> installer for Windows programs.
118
119The latest release of Inno Setup at the time of writing is 5.3.7.
120
121The HomePage is on L<http://www.jrsoftware.org/>.
122
123Add the directory to PATH.
124
125    set PATH=%PATH%;C:\Program Files\Inno Setup 5
126
127=item Borland C++
128
129XXX
130
131=item Microsoft Visual C++
132
133Since mid April 2004, Visual C++ comes in two flavors.  Microsoft
134Visual Studio .NET 2003 (L<http://msdn.microsoft.com/visualc/>), which
135includes the full blown IDE, and Microsoft Visual C++ Toolkit 2003
136(L<http://msdn.microsoft.com/visualc/vctoolkit2003/>), which is a free
137(but unsupported) package, containing only the basic compiler and
138linker stuff.
139
140If you use the Toolkit, be sure to follow the directions for setting up
141your build environment that come with the perl distributions. (README.win32
142in the latest perl distribution.) You may have to substitute "Microsoft
143Platform SDK" wherever "Microsoft SDK" is listed, depending on the your
144install. You can ignore the entries regarding "win32/config.vc", but be sure
145to create the "link.bat" batch file. Copy the missing files mentioned,
146run the Toolkit Command Prompt, set the appropriate env vars, and you
147should be fine. (For env vars, you can update them under My Computer->
148properties so they are available whenever you open a shell.)
149
150Note: It is possible to use ActiveState Perl with the Toolkit: you don't
151have to compile your own perl.
152
153=item Strawberry Perl
154
155With the Strawberry perl distro from
156L<http://strawberryperl.com/>, gcc is included. To build parrot,
157use the strawberry perl binary to run Configure.pl, and then
158follow the directions.
159
160=item MinGW32 with GCC
161
162The latest release of MinGW package at the time of writing is 5.1.6,
163which contains gcc-3.4.5 as current release.
164It can be downloaded here:
165L<http://sourceforge.net/projects/mingw/files/>
166
167The HomePage is on L<http://www.mingw.org/>.
168
169With the ActiveState Perl distribution, tell Configure.pl to use gcc :
170
171    perl Configure.pl
172         --cc=gcc
173         --icushared="C:\usr\lib\icu\lib\icudt.lib C:\usr\lib\icu\lib\icuuc.lib"
174         --icuheaders="C:\usr\lib\icu\include"
175or
176    perl Configure.pl --cc=gcc --without-icu
177
178=item Intel C++
179
180XXX
181
182=back
183
184=head2 Building
185
186    $MAKE
187
188=head2 Testing
189
190    $MAKE test
191
192=head2 Installation
193
194    $MAKE install
195
196=head2 Installer
197
198    $MAKE win32-inno-installer
199
200This command creates a setup-parrot-x.y.z.exe that contains all parrot install
201directories.
202
203=head2 Usage Hints
204
205    XXX
206
207=head1 BUGS AND CAVEATS
208
209=over
210
211=item Features
212
213Signals are missing.
214
215=back
216
217=head1 ACKNOWLEDGEMENTS
218
219Stefan "nine" Seifert implemented threads.
220
221=head1 AUTHORS
222
223=over
224
225=item Ron Blaschke E<lt>ron@rblasch.orgE<gt>
226
227=item Fran�ois Perrad  E<lt>francois.perrad@gadz.orgE<gt>
228
229=back
230
231This document is maintained by The Parrot Developers
232(E<lt>parrot-dev@lists.parrot.orgE<gt>).
233
234=head1 SEE ALSO
235
236    L<parrot>
237
238=head1 HISTORY
239
240This document borrows heavily from Perl's README.win32.
241
242GCC/mingw32 support was added in 0.1.2 (Fran�ois Perrad).
243
244Last updated: 28 Dec 2012
245
246=cut
247