Igor I see that you are trying to call into jBASE functions directly from Python, correct? Based on what you are trying to do and required performance jBASE does now offer a Rest Interface which allows you to expose jBASE business rules to any language. If are you trying to build a full wrapper for Python to allow you to code directly in Python vs Pick Basic then you will need Peter. Keep in mind jBASE now offers direct inline C inside Pick Code which allows the opposite where you can directly call Python functions from jBASE by using the Python/C integration examples.
Jim, from docker do docker pull zumasys/jbase_base docker run -it zumasys/jbase_base jb Enjoy =) On Wednesday, March 4, 2020 at 10:25:40 PM UTC-8, Jim Idle wrote: > > > I think then that the thing to do is ask Greg Cooper. @Bruce Decker - > maybe you can facilitate this? > > As I use OSX, I don’t have jBASE available without some messing around > Hunt Hint. OSX port would be easy. As would a docket image of jBASE :) > > Jim > > On Wed, Mar 4, 2020 at 23:05 Igor Osmolovskiy <[email protected] > <javascript:>> wrote: > >> Hello Jim, >> >> Thanks for your participation in the discussion :) >> >> > Are writing a pure C program and wish to call in to subroutines etc? >> Yes, that's the idea. Actually the final goal is wider, namely to write a >> Python extension in C that would call JBC functions. Basically I managed to >> do it but this excessive session is something would be good to get rid of. >> >> I've applied jbc -S myrtn.b for a simple code already which results in >> producing 2 files: myrtn.c and the myrtn.j, the latter one being included >> into the .c one via #include "myrtn.j". >> But in the .j file already we can see the lines like >> #define DEF_SEL_VAR JLibReturnDefaultSelect(dp) /* Default select >> list for this program */ >> #define DEF_FILE_VAR JLibReturnDefaultFile(dp) /* Default file >> descriptor for this program */ >> >> i.e. dp is supposed to be initialized already by the moment myrtn is >> called. >> >> I've managed to find the next dp related functions mentioned in some >> libraries >> jbase_getdp() - this works, i.e. initializes dp, but creates a new session >> jbase_getdp_nocreate() - not working if called alone. but it works and >> returns the dp1 value when called after jbase_getdp(), and dp1 = dp in >> this case >> jbase_getdpEX() - not sure what it should do >> jbase_setdpEX() - not sure what it should do >> >> >> Please see the sample piece of code >> >> #include <jsystem.h> >> extern "C" DPSTRUCT *jbase_getdp(); >> >> ... >> >> PyMODINIT_FUNC >> jbc_oconv(PyObject*, PyObject* _args) >> { >> ... >> DPSTRUCT *dp = jbase_getdp(); >> OCONV_BBBBB(result, tmp, VarHelper(arg1), VarHelper(arg2)); // this if >> defined in jsystem.h as #define OCONV_BBBBB(Target, ConvReg, Source, >> Conversion) JLibGConvRun(*dp*, ConvReg, Target, Source, Conversion, 1) >> ... >> } >> >> >> >> I've tried to read the jmainfunction.obj as well where some other jbase >> related functions are mentioned but could not figure out any useful one... >> >> Maybe there is something I am missing or some non-documented function? >> >> Would appreciate any hints! :) >> Thanks >> Igor >> >> среда, 4 марта 2020 г., 8:11:30 UTC+1 пользователь Jim Idle написал: >>> >>> Wow - it has been a long time since that code ;) However, what you ask >>> is possible I believe. It depends on your context. Are writing a pure C >>> program and wish to call in to subroutines etc? >>> >>> Probably the best place to start is to generate the C code for a very >>> small jBC program: >>> >>> lufc.b >>> CRT "Leeds United are Magic!" >>> >>> jbc -S lufc.b >>> >>> Then you will see the startup sequence for a standard executable and can >>> copy the code. >>> >>> However, my memory is vague, but I think that we had a C function you >>> can call to do what you are doing and that will return the dp for reuse. It >>> get's passed to subroutines for instance. >>> >>> Perhaps you can post the code you currently have. >>> >>> Jim >>> >>> On Wed, Mar 4, 2020 at 3:19 AM Igor Osmolovskiy <[email protected]> >>> wrote: >>> >>>> Dear all >>>> >>>> I need the jBase DP (data pointer) to be initialized. I've actually >>>> managed to initialize it by calling the jbase_getdp(). But in both cases >>>> the new child session is created in jshell (and gets removed automatically >>>> after the code has been executed). >>>> >>>> So I am wondering: is there a possibility to retrieve and use the >>>> current session DP somehow? So that no child session would get created >>>> >>>> Any advice would be highly appreciated >>>> >>>> Thanks in advance >>>> >>>> >>>> PS: to the admin, it is actually a jBase related question rather than >>>> TAFC. Thanks >>>> >>>> >>>> Kind regards, >>>> Igor >>>> >>>> -- >>>> -- >>>> IMPORTANT: T24/Globus posts are no longer accepted on this forum. >>>> >>>> To post, send email to [email protected] >>>> To unsubscribe, send email to [email protected] >>>> For more options, visit this group at >>>> http://groups.google.com/group/jBASE?hl=en >>>> >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "jBASE" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/jbase/73153581-25ae-493a-95f6-8afc5cdf7813%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/jbase/73153581-25ae-493a-95f6-8afc5cdf7813%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>> >>> >>>> -- >> -- >> IMPORTANT: T24/Globus posts are no longer accepted on this forum. >> >> To post, send email to [email protected] <javascript:> >> To unsubscribe, send email to [email protected] <javascript:> >> For more options, visit this group at >> http://groups.google.com/group/jBASE?hl=en >> >> --- >> You received this message because you are subscribed to the Google Groups >> "jBASE" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/jbase/c010b5b5-199a-42b8-a7fa-2b351052c29f%40googlegroups.com >> >> <https://groups.google.com/d/msgid/jbase/c010b5b5-199a-42b8-a7fa-2b351052c29f%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- -- IMPORTANT: T24/Globus posts are no longer accepted on this forum. To post, send email to [email protected] To unsubscribe, send email to [email protected] For more options, visit this group at http://groups.google.com/group/jBASE?hl=en --- You received this message because you are subscribed to the Google Groups "jBASE" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jbase/850ec48f-fc0d-4f14-89ad-ede5fe0c6de2%40googlegroups.com.
