1. Complete Guide to Using DLLs in OpenEuphoria

I've been working on a new guide. It's Still a little raw. Feedback is welcome.

new topic     » topic index » view message » categorize

2. Re: Complete Guide to Using DLLs in OpenEuphoria

xecronix said...

I've been working on a new guide. It's Still a little raw. Feedback is welcome.

xecronix, thanks for working on documentation! We need more people getting involved like you. smile

P.S. Ewww, i hate C syntax.

new topic     » goto parent     » topic index » view message » categorize

3. Re: Complete Guide to Using DLLs in OpenEuphoria

I've been wrapping C libraries for a long time now. Do you mind if I have a crack at updating your article?

I might end up making a lot of changes due to my style of wrapping, so I wanted to ask before I went around hacking it all to pieces.

-Greg

new topic     » goto parent     » topic index » view message » categorize

4. Re: Complete Guide to Using DLLs in OpenEuphoria

ghaberek said...

I've been wrapping C libraries for a long time now. Do you mind if I have a crack at updating your article?

That would be Awesome! Thanks in advance for the help. I would just like to make 2 requests:

  • If you feel like the "ext" directory should be removed for some reason, that we have a dialog about that please.
  • The project is hosted on github and if possible I'd like help keep the project and the guide in sync. Do you have a github login?
new topic     » goto parent     » topic index » view message » categorize

5. Re: Complete Guide to Using DLLs in OpenEuphoria

ryanj said...

xecronix, thanks for working on documentation! We need more people getting involved like you. smile

Thanks, I enjoy writing them as I learn a lot in the process. I hope they're helpful to others. I'm already working on Part 2 of this series. The next guide is going to freshen up and repackage someone else's wrapper. (with permission of course) The new guide will:

  • Have a look at wrapping up callbacks
  • We'll be exploring much more of the poke and peek functions
  • Data size discussion
  • libhelper.e will be expanded on a bit more.
  • Whatever else pops up during the effort. smile

In part 3 I plan to wrap up an open source sound lib from scratch.

I'm debating as to whether or not I'm going to write a part 4. But whatever I do after Part 3 will likely continue to build on the previous tools and guides.

new topic     » goto parent     » topic index » view message » categorize

6. Re: Complete Guide to Using DLLs in OpenEuphoria

xecronix said...

If you feel like the "ext" directory should be removed for some reason, that we have a dialog about that please.

I do, at least, feel it should be renamed. So we'll need to discuss that. The name "ext" seems ambiguous to me.

Here is my typical project structure. It's a little more complicated but these parts can mixed in and out as necessary.

bin/ - compiled binaries (*.dll, .exe, *.so)
build/ - translated files (*.c, *.h, *.mak)
demo/ - demos/examples (*.ex)
dist/ - distribution files (*.zip)
docs/ - documentation (*.html, etc.)
include/ - include files (*.e)
resources/ - static resources (*.png, etc.)
src/ - project source files (*.ex)
test/ - unit testing files (t_*.e)
Makefile - the Makefile to translate and build the application

Lately I have been using Makefiles with TDM-GCC mingw32-make to build, test, and package Euphoria projects in one go.

I've had it in my head for a while to write an article titled "Using Makefiles for fun and profit!" so maybe this is a good opportunity to expand on that.

xecronix said...

The project is hosted on github and if possible I'd like help keep the project and the guide in sync. Do you have a github login?

I do! Same username as on here: ghaberek. I already found you and started looking at your project for this.

-Greg

new topic     » goto parent     » topic index » view message » categorize

7. Re: Complete Guide to Using DLLs in OpenEuphoria

ghaberek said...

Here is my typical project structure. It's a little more complicated but these parts can mixed in and out as necessary.

bin/ - compiled binaries (*.dll, .exe, *.so)
build/ - translated files (*.c, *.h, *.mak)
demo/ - demos/examples (*.ex)
dist/ - distribution files (*.zip)
docs/ - documentation (*.html, etc.)
include/ - include files (*.e)
resources/ - static resources (*.png, etc.)
src/ - project source files (*.ex)
test/ - unit testing files (t_*.e)
Makefile - the Makefile to translate and build the application

This directory is PERFECT for building an application of almost any type. So, let's say you were building a program like Mysql Workbench except that it was for EDS. This is exactly how I'd hope the directory structure would be laid out. The only thing missing is in your example is the eu.cfg.

I would propose that if you are building a wrapper then your target "audience" is different and they have a different set of concerns. In this case I'm speaking of the difference between writing an application vs writing a library. The problem domain is similar, but not necessarily identical.

ghaberek said...

Lately I have been using Makefiles with TDM-GCC mingw32-make to build, test, and package Euphoria projects in one go.

I've had it in my head for a while to write an article titled "Using Makefiles for fun and profit!" so maybe this is a good opportunity to expand on that.

I for one would be super excited to see this article. I'm in the process of integrating make into an automated test suite and perhaps a package manager and would love to see your thoughts on using make.

ghaberek said...

I do! Same username as on here: ghaberek. I already found you and started looking at your project for this.

Awesome. When I published the guide, I didn't think that someone else might want to be involved. So I didn't publish the creole doc that is the actual article. I corrected that earlier today when I added guide_part1.creole to the project. Please git pull if you don't have that file.

new topic     » goto parent     » topic index » view message » categorize

8. Re: Complete Guide to Using DLLs in OpenEuphoria

xecronix said...

The only thing missing is in your example is the eu.cfg.

I guess that sort of went without saying. I use eu.cfg a lot. You'd actually need several files, one in each of demo, src, and test to point them all back to include.

xecronix said...

I would propose that if you are building a wrapper then your target "audience" is different and they have a different set of concerns. In this case I'm speaking of the difference between writing an application vs writing a library. The problem domain is similar, but not necessarily identical.

Yes and no, I suppose. I look at everything as a project. A library wrapper project should have include (obviously) and probably test for sanity checking. But it might also contain bin for the compiled binaries and maybe src for the original source of the C library. And you'll probably have demos in there, too. So you can see how it all starts to come together. That's what I just did for libxlsxwriter.

xecronix said...

I for one would be super excited to see this article. I'm in the process of integrating make into an automated test suite and perhaps a package manager and would love to see your thoughts on using make.

Okay, I will start working on that soon. I already have a lot of notes on the subject but I also have to go through a lot of trial-and-error to get things distilled down for the end-programmer who's not already familiar with make. It's a very dynamic system with rarely a single "right" way to do things.

To be honest, what I'm really doing here is building the basic foundation for the way an IDE or any other build system would manage a project structure. I've taken a lot of cues from other languages and IDEs and I am hopeful that this can become and integral part of the way Euphoria programmers design their applications.

-Greg

new topic     » goto parent     » topic index » view message » categorize

9. Re: Complete Guide to Using DLLs in OpenEuphoria

ghaberek said...

To be honest, what I'm really doing here is building the basic foundation for the way an IDE or any other build system would manage a project structure. I've taken a lot of cues from other languages and IDEs and I am hopeful that this can become and integral part of the way Euphoria programmers design their applications.

That is actually one of the stated goals of the EuDrop Project. I hope we end up collaborating.

EuDrop Project said...

Once command line tools are proven, the next step would be to use the lib to create project plugins for popular IDEs like WEE for example.

new topic     » goto parent     » topic index » view message » categorize

10. Re: Complete Guide to Using DLLs in OpenEuphoria

xecronix said...

That is actually one of the stated goals of the EuDrop Project. I hope we end up collaborating.

EuDrop Project said...

Once command line tools are proven, the next step would be to use the lib to create project plugins for popular IDEs like WEE for example.

Speaking of package mangers for Euphoria. I have like the name euget better. Maybe we should have a vote or a naming contest.

I also think this package manager should include all of the functionality described by EuAnyRepo. Why would these be two separate projects?

-Greg

new topic     » goto parent     » topic index » view message » categorize

11. Re: Complete Guide to Using DLLs in OpenEuphoria

This discussion has been forked. The new topic subject is "EuAnyRepo vs EuDrop... what's the difference?"

new topic     » goto parent     » topic index » view message » categorize

12. Re: Complete Guide to Using DLLs in OpenEuphoria

Looks great. This will be a great guide. Hopefully this will help to get more libraries wrapped in Euphoria.

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu