Re: autowrap v0.0.1 - Automatically wrap existing D code for use in Python and Excel

2018-08-05 Thread Nikos via Digitalmars-d-announce

On Tuesday, 31 July 2018 at 09:09:11 UTC, Nicholas Wilson wrote:

On Sunday, 29 July 2018 at 18:14:31 UTC, Nikos wrote:

But when I try to export the whole dmdEngine


export:

   auto engine(char[] txt) {
   return interpreter(dmdEngine());
   }





Can you export an instance of `interpreter(dmdEngine())`?

e.g.

__gshared auto dmdi = interpreter(dmdEngine());

export ref dmd()
{
return dmdi;
}

or if that doesn't work, proxy it

__gshared auto dmdi = interpreter(dmdEngine());

struct Dmd
{
mixin Proxy!dmdi;
}
export auto dmd()
{
Dmd d;
return d;
}

That is pretty much required if you want to maintain state 
across.


Also I'm working on a D kernel for Jupyter notebook which 
should be done soon.



Thank you very much for your feedback. Unfortunately, none of the 
above worked.
By the way, the reason I'm trying all this is to create a Jupyter 
notebook. I've already made a simple version of it some time ago 
(https://github.com/nikoskaragiannakis/d-jupyter-kernel). Since 
you are also working on a D kernel, maybe we could work together?


Re: autowrap v0.0.1 - Automatically wrap existing D code for use in Python and Excel

2018-07-29 Thread Nikos via Digitalmars-d-announce


Eg turn this into a function and try wrapping this instead:

auto intp = interpreter(dmdEngine());


Actually, I manage to export the `interpret` method


export:
auto intp(char[] txt) {
return interpreter(dmdEngine()).interpret(txt);
}


and tested it in ipython successfully.

But when I try to export the whole dmdEngine


export:

   auto engine(char[] txt) {
   return interpreter(dmdEngine());
   }


it complains about copying Interpreter!(DMDEngine).Interpreter


../../../.dub/packages/pyd-master/pyd/infrastructure/pyd/make_object.d(249,30): 
Error: struct drepl.interpreter.Interpreter!(DMDEngine).Interpreter is not 
copyable because it is annotated with @disable


I removed @disable, but then complained about accessing the 
members `_engine` and `_incomplete` in Interpreter 
(https://github.com/dlang-community/drepl/blob/master/src/drepl/interpreter.d#L147-L148)



../../../.dub/packages/pyd-master/pyd/infrastructure/pyd/struct_wrap.d-mixin-56(56,15):
 Deprecation: std.array.Appender!(char[]).Appender._data is not visible from 
module 
../../../.dub/packages/pyd-master/pyd/infrastructure/pyd/struct_wrap.d-mixin-56(56,15):
 Error: struct std.array.Appender!(char[]).Appender member _data is not 
accessible


After I made those public, it complained about `Appender`


../../../.dub/packages/pyd-master/pyd/infrastructure/pyd/struct_wrap.d-mixin-56(56,15):
 Deprecation: std.array.Appender!(char[]).Appender._data is not visible from 
module
../../../.dub/packages/pyd-master/pyd/infrastructure/pyd/struct_wrap.d-mixin-56(56,15):
 Error: struct std.array.Appender!(char[]).Appender member _data is not 
accessible


Is there something I can do here or would it better to talk to 
the Drepl guys?


Thank you


Re: autowrap v0.0.1 - Automatically wrap existing D code for use in Python and Excel

2018-07-29 Thread Nikos via Digitalmars-d-announce

Ok, I made a stupid mistake. It works now. Thanks a lot!


Re: autowrap v0.0.1 - Automatically wrap existing D code for use in Python and Excel

2018-06-24 Thread Nikos via Digitalmars-d-announce


Eg turn this into a function and try wrapping this instead:

auto intp = interpreter(dmdEngine());


Thanks for your help. I'm doing this in my spare time which is, 
unfortunately, not much.

I did what you said


export {
auto intp = interpreter(echoEngine);
}



but when I import drepl from python idle I still can access intp.




Re: autowrap v0.0.1 - Automatically wrap existing D code for use in Python and Excel

2018-05-13 Thread Nikos via Digitalmars-d-announce
I'm trying to wrap drepl 
(https://github.com/dlang-community/drepl)


My dub.sdl files is


import autowrap.python;
mixin(
   wrapAll(
   LibraryName("drepl"),
   Modules("drepl.interpreter"),
   )
);


I also flagged `export` the interpreter function

export Interpreter!Engine interpreter(Engine)(return scope 
Engine e) if (isEngine!Engine)

{
   // workaround Issue 18540
   return Interpreter!Engine(() @trusted { return move(e); }());
}


I build the library with python35, but when I import it from 
python idle, I cannot access the `interpreter` function at all.
I have the feeling I miss something essential here, but I don't 
know what it is.

Any ideas?


Re: autowrap v0.0.1 - Automatically wrap existing D code for use in Python and Excel

2018-05-12 Thread Nikos via Digitalmars-d-announce

On Friday, 11 May 2018 at 14:16:15 UTC, Atila Neves wrote:

On Thursday, 10 May 2018 at 19:50:40 UTC, Nikos wrote:

In my dub.sdl file I have


configuration "python35" {
 subConfiguration "autowrap" "python35"
}


and I run


dub build --config=python35


which still tries to find python36. Why doesn't it look for 
3.5?


Copy + paste error, sorry. Fixed now.

Atila


That worked like a charm! Thanks man!


Re: autowrap v0.0.1 - Automatically wrap existing D code for use in Python and Excel

2018-05-10 Thread Nikos via Digitalmars-d-announce

In my dub.sdl file I have


configuration "python35" {
 subConfiguration "autowrap" "python35"
}


and I run


dub build --config=python35


which still tries to find python36. Why doesn't it look for 3.5?



Re: autowrap v0.0.1 - Automatically wrap existing D code for use in Python and Excel

2018-05-10 Thread Nikos via Digitalmars-d-announce

Interesting stuff.

In http://code.dlang.org/packages/autowrap it says:

"""
 Python versions

Since autowrap depends on PyD, the python version must be 
explicitly stated as a dub configuration and defaults to 3.6. To 
use another version, pass -c $CONFIG to dub where $CONFIG is one 
of:


python27
python34
python35
python36
"""

Could you please provide an example of how can I do this?

Thanks