Closer to an evaluator
This commit is contained in:
@@ -66,7 +66,7 @@
|
||||
"__type" : "time",
|
||||
"time" : {
|
||||
"__type" : "dateAndTime",
|
||||
"dateAndTimeString" : "2022-06-11T18:06:06.353672+02:00"
|
||||
"dateAndTimeString" : "2022-06-12T12:51:14.365509+02:00"
|
||||
}
|
||||
},
|
||||
"uid" : {
|
||||
@@ -76,7 +76,7 @@
|
||||
"paragraphStyle" : {
|
||||
"__type" : "textStyle"
|
||||
},
|
||||
"string" : "I too was tempted to go down that route before realizing that that would mean understanding and implementing the LanguageLink protocol, a task I wasn’t particularly interested in. Instead, the Carp LanguageLink server uses the one provided by PythonBridge (which can be found [in the PythonBridge repository TODO: good link](github.com/feenkcom/pythonbridge)). It includes all the infrastructure needed, and the only thing that likely needs to be changed is how `EvalCommand`s are handled: in the case of Carp, a simple subprocess handler that feeds the statements into a Carp REPL and reads the result. You can inspect the custom code I wrote [in the gt4carp repository TODO: good link](https://git.veitheller.de/carpentry/gt4carp)."
|
||||
"string" : "I too was tempted to go down that route before realizing that that would mean understanding and implementing the LanguageLink protocol, a task I wasn’t particularly interested in. Instead, the Carp LanguageLink server uses the one provided by PythonBridge (which can be found [in the PythonBridge repository TODO:](https://github.com/feenkcom/PythonBridge/tree/master/PythonBridgeRuntime)). It includes all the infrastructure needed, and the only thing that likely needs to be changed is how `EvalCommand`s are handled: in the case of Carp, a simple subprocess handler that feeds the statements into a Carp REPL and reads the result. You can inspect the custom code I wrote [in the gt4carp repository TODO: good link](https://git.veitheller.de/carpentry/gt4carp)."
|
||||
},
|
||||
{
|
||||
"__type" : "textSnippet",
|
||||
@@ -103,7 +103,7 @@
|
||||
"__type" : "time",
|
||||
"time" : {
|
||||
"__type" : "dateAndTime",
|
||||
"dateAndTimeString" : "2022-06-11T18:07:19.529977+02:00"
|
||||
"dateAndTimeString" : "2022-06-11T18:07:40.565555+02:00"
|
||||
}
|
||||
},
|
||||
"uid" : {
|
||||
@@ -113,7 +113,7 @@
|
||||
"paragraphStyle" : {
|
||||
"__type" : "textStyle"
|
||||
},
|
||||
"string" : "While I understand that this is a rather terse “figure it out yourself”, I don’t know the ins and outs of the LanguageLink protocol well enough to assist you any more—precisely because I took t"
|
||||
"string" : "While I understand that this is a rather terse “figure it out yourself”, I don’t know the ins and outs of the LanguageLink protocol well enough to assist you any more—precisely because I took the effort of side-stepping the issue entirely. Hopefully you can too!"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@@ -66,7 +66,7 @@
|
||||
"__type" : "time",
|
||||
"time" : {
|
||||
"__type" : "dateAndTime",
|
||||
"dateAndTimeString" : "2022-06-11T18:06:06.353672+02:00"
|
||||
"dateAndTimeString" : "2022-06-12T12:51:15.652112+02:00"
|
||||
}
|
||||
},
|
||||
"uid" : {
|
||||
@@ -76,7 +76,7 @@
|
||||
"paragraphStyle" : {
|
||||
"__type" : "textStyle"
|
||||
},
|
||||
"string" : "I too was tempted to go down that route before realizing that that would mean understanding and implementing the LanguageLink protocol, a task I wasn’t particularly interested in. Instead, the Carp LanguageLink server uses the one provided by PythonBridge (which can be found [in the PythonBridge repository TODO: good link](github.com/feenkcom/pythonbridge)). It includes all the infrastructure needed, and the only thing that likely needs to be changed is how `EvalCommand`s are handled: in the case of Carp, a simple subprocess handler that feeds the statements into a Carp REPL and reads the result. You can inspect the custom code I wrote [in the gt4carp repository TODO: good link](https://git.veitheller.de/carpentry/gt4carp)."
|
||||
"string" : "I too was tempted to go down that route before realizing that that would mean understanding and implementing the LanguageLink protocol, a task I wasn’t particularly interested in. Instead, the Carp LanguageLink server uses the one provided by PythonBridge (which can be found [in the PythonBridge repository](https://github.com/feenkcom/PythonBridge/tree/master/PythonBridgeRuntime)). It includes all the infrastructure needed, and the only thing that likely needs to be changed is how `EvalCommand`s are handled: in the case of Carp, a simple subprocess handler that feeds the statements into a Carp REPL and reads the result. You can inspect the custom code I wrote [in the gt4carp repository TODO: good link](https://git.veitheller.de/carpentry/gt4carp)."
|
||||
},
|
||||
{
|
||||
"__type" : "textSnippet",
|
||||
|
@@ -22,7 +22,7 @@ CarpApplication >> baseApplication [
|
||||
CarpApplication >> debuggerClientFor: anException [
|
||||
"Answer the debugger client to be used by the Gt Post Mortem debugger"
|
||||
|
||||
^ CarpPostMortemDebugger new exception: anException
|
||||
^ GtPythonPostMortemDebugger new exception: anException
|
||||
]
|
||||
|
||||
{ #category : #accessing }
|
||||
|
@@ -7,6 +7,11 @@ Class {
|
||||
#category : #'Carp-Processes'
|
||||
}
|
||||
|
||||
{ #category : #accessing }
|
||||
CarpPlatform class >> uiManagerClass [
|
||||
^ LanguageLinkPharoUiManager
|
||||
]
|
||||
|
||||
{ #category : #hooks }
|
||||
CarpPlatform class >> weakRegistryClass [
|
||||
^ LanguageLinkPharoWeakRegistry
|
||||
|
@@ -9,6 +9,31 @@ CarpPythonProcess class >> program [
|
||||
^ 'python'
|
||||
]
|
||||
|
||||
{ #category : #accessing }
|
||||
CarpPythonProcess >> processArguments [
|
||||
| args |
|
||||
|
||||
args := OrderedCollection new.
|
||||
self settings serverDebugMode ifTrue:
|
||||
[ args addAll: {
|
||||
'-m'.
|
||||
'debugpy'.
|
||||
'--listen'.
|
||||
self settings debugSocketAddress printAddress.
|
||||
'--wait-for-client'. } ].
|
||||
args
|
||||
add: (self workingDirectory / self programFile) resolve fullName;
|
||||
add: '--port';
|
||||
add: self settings serverSocketAddress port asString;
|
||||
add: '--pharo';
|
||||
add: self settings clientSocketAddress port asString;
|
||||
add: '--method';
|
||||
add: 'http'.
|
||||
"self debugMode ifTrue: [ args add: '--log' ]."
|
||||
args add: '--log'.
|
||||
^ args
|
||||
]
|
||||
|
||||
{ #category : #accessing }
|
||||
CarpPythonProcess >> programFile [
|
||||
^ 'src/languagelink.py'
|
||||
|
Reference in New Issue
Block a user