enough-analyst-54434
04/02/2018, 7:25 PMwitty-crayon-22786
04/02/2018, 7:28 PMwitty-crayon-22786
04/02/2018, 7:29 PMresult = yield rust(value)
"looks" like calling back to rust and then yielding the return value of thatenough-analyst-54434
04/02/2018, 7:29 PMand then the python code yields a request to the rust codeI'm hung up on why that python code must be user-written rule code and not a wrapper to hide the coroutine stuff
witty-crayon-22786
04/02/2018, 7:29 PMwitty-crayon-22786
04/02/2018, 7:33 PMwitty-crayon-22786
04/02/2018, 7:34 PM@rule
cannot "be yielded" by something it calls into... into needs to call yield directlywitty-crayon-22786
04/02/2018, 7:38 PMRule.map
as a method would allow for an equivalent amount of parallelism/concurrency in practice. and if calling back into rust releases the GIL, then coroutine vs synchronous would be more of a style choice rather than an efficiency choicewitty-crayon-22786
04/02/2018, 11:25 PMwitty-crayon-22786
04/02/2018, 11:26 PMenough-analyst-54434
04/03/2018, 2:17 PMwitty-crayon-22786
04/03/2018, 3:35 PMenough-analyst-54434
04/03/2018, 3:49 PMenough-analyst-54434
04/03/2018, 3:49 PMwitty-crayon-22786
04/03/2018, 3:50 PMenough-analyst-54434
04/03/2018, 3:50 PMwitty-crayon-22786
04/04/2018, 5:55 PMTypeType
wasn't equal to itself...? >>> <class 'pants.backend.graph_info.tasks.listtargets.ListTargets_list'> == <class 'pants.backend.graph_info.tasks.listtargets.ListTargets_list'> ??: False
>>> <class 'pants.backend.graph_info.tasks.listtargets.ListTargets_list'> issubclass <class 'pants.backend.graph_info.tasks.listtargets.ListTargets_list'> ??: False
>>> <class 'pants.backend.graph_info.tasks.listtargets.ListTargets_list'> issubclass <class 'pants.backend.graph_info.tasks.listtargets.ListTargets_list'> ??: False
witty-crayon-22786
04/04/2018, 5:55 PMrough-minister-58256
04/04/2018, 5:55 PMa is b
say?witty-crayon-22786
04/04/2018, 5:56 PMrough-minister-58256
04/04/2018, 5:56 PMid(a), id(b)
rough-minister-58256
04/04/2018, 5:56 PMwitty-crayon-22786
04/04/2018, 5:57 PMprint('>>> {} == {} ??: {}'.format(task, task_cls, task == task_cls))
print('>>> {} issubclass {} ??: {}'.format(task, task_cls, issubclass(task, task_cls)))
print('>>> {} issubclass {} ??: {}'.format(task_cls, task, issubclass(task_cls, task)))
print('>>> {} is {} ??: {}'.format(task_cls, task, task_cls is task))
print('>>> {} id(x) {} ??: {} {}'.format(task_cls, task, id(task_cls), id(task)))
witty-crayon-22786
04/04/2018, 5:57 PM>>> <class 'pants.backend.graph_info.tasks.listtargets.ListTargets_list'> == <class 'pants.backend.graph_info.tasks.listtargets.ListTargets_list'> ??: False
>>> <class 'pants.backend.graph_info.tasks.listtargets.ListTargets_list'> issubclass <class 'pants.backend.graph_info.tasks.listtargets.ListTargets_list'> ??: False
>>> <class 'pants.backend.graph_info.tasks.listtargets.ListTargets_list'> issubclass <class 'pants.backend.graph_info.tasks.listtargets.ListTargets_list'> ??: False
>>> <class 'pants.backend.graph_info.tasks.listtargets.ListTargets_list'> is <class 'pants.backend.graph_info.tasks.listtargets.ListTargets_list'> ??: False
>>> <class 'pants.backend.graph_info.tasks.listtargets.ListTargets_list'> id(x) <class 'pants.backend.graph_info.tasks.listtargets.ListTargets_list'> ??: 140293868914912 140293866774624
witty-crayon-22786
04/04/2018, 5:57 PMwitty-crayon-22786
04/04/2018, 5:57 PMrough-minister-58256
04/04/2018, 5:58 PMwitty-crayon-22786
04/04/2018, 5:59 PMrough-minister-58256
04/04/2018, 5:59 PMrough-minister-58256
04/04/2018, 5:59 PM