// // Copyright (c) 2006, Brian Frank and Andy Frank // Licensed under the Academic Free License version 3.0 // // History: // 20 Aug 06 Brian Frank Creation // ** ** LoadPod is used to immediately load the pod which has ** just been successfully compiled into Compiler.fpod. This ** step is only used with script compiles. ** class LoadPod : CompilerStep { ////////////////////////////////////////////////////////////////////////// // Construction ////////////////////////////////////////////////////////////////////////// ** ** Constructor takes the associated Compiler ** new make(Compiler compiler) : super(compiler) { } ////////////////////////////////////////////////////////////////////////// // Methods ////////////////////////////////////////////////////////////////////////// ** ** Not used, use load instead ** override Void run() { throw UnsupportedErr.make } ** ** Run the step and return loaded Pod instance ** Pod load() { // create memory buffer to store pod zip buf := Buf.make(4096) // write the fpod to memory buf fpod := compiler.fpod fpod.zip = Zip.write(buf.out) fpod.write fpod.zip.close // have Sys load it up return Pod.load(buf.flip.in) } }