Permalink
Browse files

Misc fixes to make -p work again; bootstrap improvements

  • Loading branch information...
1 parent ffe8cda commit 90ae4dfa7617518f75e70828b46f8a0746626056 @sorear committed Oct 30, 2011
Showing with 32 additions and 4 deletions.
  1. +1 −1 Makefile
  2. +9 −3 Newmakefile
  3. +22 −0 src/niecza
View
@@ -87,7 +87,7 @@ mknext: run/Niecza.exe obj/Run.Kernel.dll obj/Kernel.dll
rm -rf next/
mkdir -p next next/boot next/obj next/run next/boot next/boot/obj/
touch next/FETCH_URL next/.fetch-stamp
- cp -a src/ lib/ Newmakefile next/
+ cp -a src/ lib/ docs/ README.pod LICENSE Newmakefile next/
cp Newmakefile next/Makefile
cp -a run/ lib/ next/boot/
cp obj/Run.Kernel.dll obj/Kernel.dll next/boot/obj/
View
@@ -69,9 +69,6 @@ test: all
spectest: all
@t/run_spectests
-p6eval: all
- $(RUN_CLR) run/Niecza.exe -C CORE Test JSYNC
-
clean:
@rm -f obj/*.dll obj/*.exe obj/*.nam obj/*.so
@rm -f run/Niecza.exe
@@ -87,6 +84,15 @@ mknext: run/Niecza.exe obj/Run.Kernel.dll
cp -a src/ lib/ Makefile next/
cp -a run/ lib/ next/boot/
+mkpackage:
+ rm -rf package/
+ mkdir package/ package/run/ package/lib/ package/obj/
+ cp -a docs/ README.pod LICENSE package/
+ cp -a run/Niecza.exe run/Niecza.ser run/Kernel.dll \
+ run/CompilerBlob.dll package/run/
+ cp lib/*.pm6 lib/*.setting package/lib/
+ cp obj/Run.Kernel.dll package/obj/
+
half_reboot: all
# setup a clean build area
rm -rf stage2/ stage3/
View
@@ -81,6 +81,28 @@ augment class RxOp::Sym {
}
augment class NieczaActions {
+method blockoid($/) {
+ # XXX horrible cheat, but my data structures aren't up to the task of
+ # $::UNIT being a class body &c.
+ if $/ eq '{YOU_ARE_HERE}' {
+ $*unit.set_bottom($*CURLEX<!sub>);
+ $*CURLEX<!sub>.create_static_pad;
+ $*CURLEX<!sub>.noninlinable;
+
+ loop (my $l = $*CURLEX<!sub>; $l; $l.=outer) {
+ # this isn't *quite* right, as it will cause declaring
+ # anything more in the same scope to fail.
+ # ... and we have to be careful not to mark anon_0 used
+ # or installing this very block will fail!
+ substr($_,0,4) ne 'anon' and $/.CURSOR.mark_used($_)
+ for $l.lex_names;
+ }
+
+ make ::Op::YouAreHere.new(|node($/), unitname => $*UNITNAME);
+ } else {
+ make $<statementlist>.ast;
+ }
+}
method type_declarator:subset ($/) {
my ($basetype) = self.process_name($*OFTYPE<longname>);
$basetype //= $*CURLEX<!sub>.compile_get_pkg('CORE', 'Any');

0 comments on commit 90ae4df

Please sign in to comment.