equal
deleted
inserted
replaced
94 |
94 |
95 |
95 |
96 (* streams *) |
96 (* streams *) |
97 |
97 |
98 val (in_stream, out_stream) = Socket_IO.open_streams address; |
98 val (in_stream, out_stream) = Socket_IO.open_streams address; |
99 val _ = Byte_Message.write_line out_stream password; |
99 val _ = Byte_Message.write_line out_stream (Bytes.string password); |
100 |
100 |
101 val _ = TextIO.StreamIO.setBufferMode (TextIO.getOutstream TextIO.stdOut, IO.LINE_BUF); |
101 val _ = TextIO.StreamIO.setBufferMode (TextIO.getOutstream TextIO.stdOut, IO.LINE_BUF); |
102 val _ = TextIO.StreamIO.setBufferMode (TextIO.getOutstream TextIO.stdErr, IO.LINE_BUF); |
102 val _ = TextIO.StreamIO.setBufferMode (TextIO.getOutstream TextIO.stdErr, IO.LINE_BUF); |
103 val _ = BinIO.StreamIO.setBufferMode (BinIO.getOutstream out_stream, IO.BLOCK_BUF); |
103 val _ = BinIO.StreamIO.setBufferMode (BinIO.getOutstream out_stream, IO.BLOCK_BUF); |
104 |
104 |
156 let |
156 let |
157 val _ = |
157 val _ = |
158 (case Byte_Message.read_message in_stream of |
158 (case Byte_Message.read_message in_stream of |
159 NONE => raise Protocol_Command.STOP 0 |
159 NONE => raise Protocol_Command.STOP 0 |
160 | SOME [] => Output.system_message "Isabelle process: no input" |
160 | SOME [] => Output.system_message "Isabelle process: no input" |
161 | SOME (name :: args) => Protocol_Command.run name args) |
161 | SOME (name :: args) => Protocol_Command.run (Bytes.content name) args) |
162 handle exn => |
162 handle exn => |
163 if Protocol_Command.is_protocol_exn exn then Exn.reraise exn |
163 if Protocol_Command.is_protocol_exn exn then Exn.reraise exn |
164 else (Runtime.exn_system_message exn handle crash => recover crash); |
164 else (Runtime.exn_system_message exn handle crash => recover crash); |
165 in protocol_loop () end; |
165 in protocol_loop () end; |
166 |
166 |