Skip to content

Instantly share code, notes, and snippets.

View cotto's full-sized avatar

Charis Otto cotto

  • Seattle
  • 10:29 (UTC -08:00)
View GitHub Profile
proposed Lorito roadmap
This roadmap proposes that Lorito be planned and implemented over the course of four stages. The tasks within a
stage should be more of less independent of each other, making division of labor easier for interested developers.
stage 0: prep
* get an nqp-rx-based ops compiler ("opsc") generating similar C code to ops2c
* check in generated C code for ops and PMCs for bootstrapping
* define Lorito ops and semantics (ffi, arg format, binary format, registers, ops, syscalls, text format, etc)
* implement some PMCs, ops and library bindings/PMCs in Lorito to demonstrate that Lorito is sufficiently powerful
New in 2.2.0
- Core changes
- API Changes
- Platforms
+ ICC and Sun cc support have been restored
- Tools
+ Makefiles now invoke the compiler directly rather than going through a Perl script
+ NCI thunks are now generated by PIR code
#Note: none of the classes are implemented. This is just to figure out what kind of interface will be reasonable.
my $pir_code :=
'.sub main
say "what"
.end';
my $prof := ProfTest;PirProfile.new($pir);
#Does the profile have a version string?
Index: compilers/opsc/src/Ops/Trans.pm
===================================================================
--- compilers/opsc/src/Ops/Trans.pm (revision 46944)
+++ compilers/opsc/src/Ops/Trans.pm (working copy)
@@ -44,7 +44,7 @@
our %arg_maps := {};
-method access_arg($type, $num) { die('...'); }
+method access_arg($type, $dir, $num) { die('...'); }
Index: src/pmc/task.pmc
===================================================================
--- src/pmc/task.pmc (revision 48096)
+++ src/pmc/task.pmc (working copy)
@@ -110,6 +110,10 @@
An interpreter in which to execute this task.
+=item C<data>
+
cotto@feather:/usr/src/partcl-old\ 0 $ cat proftest
#!/bin/bash
echo "building..."
/usr/local/parrot-svn/bin/parrot --output=runtime/tcllib.pbc runtime/tcllib.pir
let tclconst_start=`pbc_dump runtime/tcllib.pbc |grep tclconst.pir -B1|grep OFFSET|sed -e 's/.*=> //' -e 's/,.*//'`
let tclconst_end="`pbc_dump runtime/tcllib.pbc |grep tclconst.pir -A4|grep OFFSET|sed -e 's/.*=> //' -e 's/,.*//'`-1"
let tclconst_class_init=`pbc_dump runtime/tcllib.pbc |grep "namespace => 'TclConst'" -B6|grep class_init -B 3|head -n1|sed -e 's/.*start_offs => //' -e 's/,.*//g'`
echo "tclconst range (debug segment): $tclconst_start -> $tclconst_end"
echo "TclConst;class_init starts at $tclconst_class_init"
This is a rough draft proposal for a timeline to migrate Parrot from our current svn repository over to parrot/parrot github.
Prereqs:
* nobody is strongly opposed to using github
* github plugin is complete and well tested
* workflow and branching/merging docs are updated
* make sure everyone who has committed anything recently has a commit bit on github
approximate timeline:
@cotto
cotto / lorito braindump
Created December 14, 2010 18:45
lorito braindump
lorito braindump
MOP topics:
What is a MOP?
- a MOP is a programmatic interface for creating classes.
- in our case, it's split into REPR (low-level representation) and HOW (other)
-
What is our MOP?
- It's based on jnthn's 6model work. Go read up on that now.
- his timeline is uncertain, but this is worth getting right
- Rakudo needs it and he's capable. We'll wait.
./parrot -o runtime/parrot/library/nqp-rx.pbc ext/nqp-rx/src/stage0/NQP-s0.pir
./parrot -o compilers/pct/src/PCT/Node.pbc compilers/pct/src/PCT/Node.pir
./parrot -o compilers/pct/src/PAST/Node.pbc compilers/pct/src/PAST/Node.pir
./parrot -o compilers/pct/src/PAST/Compiler.pbc compilers/pct/src/PAST/Compiler.pir
./parrot -o compilers/pct/src/POST/Node.pbc compilers/pct/src/POST/Node.pir
./parrot -o compilers/pct/src/POST/Compiler.pbc compilers/pct/src/POST/Compiler.pir
./parrot -o runtime/parrot/library/CGI/QueryHash.pbc runtime/parrot/library/CGI/QueryHash.pir
./parrot -o runtime/parrot/library/Crow.pbc runtime/parrot/library/Crow.pir
./parrot -o runtime/parrot/library/config.pbc runtime/parrot/library/config.pir
./parrot -o runtime/parrot/library/Data/Dumper/Base.pbc runtime/parrot/library/Data/Dumper/Base.pir
@cotto
cotto / gist:761425
Created December 31, 2010 23:31
fix for missing uid functions
diff --git a/config/gen/platform.pm b/config/gen/platform.pm
index d43a2b0..0b85d21 100644
--- a/config/gen/platform.pm
+++ b/config/gen/platform.pm
@@ -198,6 +198,7 @@ sub _set_implementations {
hires_timer.c
pid.c
sysmem.c
+ uid.c
/;