summaryrefslogtreecommitdiffstats
path: root/assembler.py
blob: e65d11ec708d0344be63ef09f1879c206c494cf2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import sys, zlib

z = zlib.decompressobj()
mainmod = sys.modules[__name__]
while 1:
    name = sys.stdin.readline().strip()
    if name:
        nbytes = int(sys.stdin.readline())
        if verbosity >= 2:
            sys.stderr.write('server: assembling %r (%d bytes)\n'
                             % (name, nbytes))
        content = z.decompress(sys.stdin.read(nbytes))
        exec compile(content, name, "exec")

        # FIXME: this crushes everything into a single module namespace,
        # then makes each of the module names point at this one. Gross.
        assert(name.endswith('.py'))
        modname = name[:-3]
        mainmod.__dict__[modname] = mainmod
    else:
        break

verbose = verbosity
no_fullness = no_fullness0
sys.stderr.flush()
sys.stdout.flush()
main()