1. What is the status of Euphoria V4.10?

Did I read that there is a bug in the switch statement which prevents V4.10 from being rolled out as the current version?

Since it appears that we have a lack of developers: 1) is the development language C or C+ + or what? 2) is it possible to develop Euphoria in Euphoria? This would be, as the Tiki Wiki people like to say, "... eating our own dog food!"

new topic     » topic index » view message » categorize

2. Re: What is the status of Euphoria V4.10?

lgregg said...

Did I read that there is a bug in the switch statement which prevents V4.10 from being rolled out as the current version?

That is correct. The bug consists of a failure when a function (builtin functions only, AFAIK) is used in the switch statement, for example:

switch sin(x) do 
   case... 

In my opinion, that is unlikely to be used much, but it is a bug, and may be difficult to exterminate. As for other uses of the switch statement, all I can say is EuGTK uses hundreds of switch statements, and I've not had a problem.

said...

Since it appears that we have a lack of developers: 1) is the development language C or C+ + or what? 2) is it possible to develop Euphoria in Euphoria? This would be, as the Tiki Wiki people like to say, "... eating our own dog food!"

C, and yes, Euphoria-in-Euphoria has been done. I can't remember exactly where that can be found, someone else will know. For speed, however, some of the language just needs to be written in hand-optimized C.

If you'd like to read the whole thread about this: https://openeuphoria.org/forum/131762.wc#131762

If you are familiar with C, then perhaps you could help here.

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

3. Re: What is the status of Euphoria V4.10?

irv said...
lgregg said...

Did I read that there is a bug in the switch statement which prevents V4.10 from being rolled out as the current version?

That is correct. The bug consists of a failure when a function (builtin functions only, AFAIK) is used in the switch statement

AFAIK that's the only blocker we might have, bug-wise. The other issue is that the build system (basically Makefile.gnu) is still somewhat broken.

I'm not sure how it ended up that way and I've made quite a few changes to fix it, but it's very complicated. It could do with a simplification and organization.

irv said...
lgregg said...

Since it appears that we have a lack of developers: 1) is the development language C or C+ + or what? 2) is it possible to develop Euphoria in Euphoria? This would be, as the Tiki Wiki people like to say, "... eating our own dog food!"

C, and yes, Euphoria-in-Euphoria has been done. I can't remember exactly where that can be found, someone else will know. For speed, however, some of the language just needs to be written in hand-optimized C.

Here's the quick-and-dirty rundown.

There are two major parts of Euphoria:

  • The backend is written in C and all of its source files start with be_ for backend.
  • The frontend is written in Euphoria, then translated to C and linked with the C backend.

The frontend is pretty much one codebase but it has flags to build itself as several different components:

  • The interpreter (eui, euiw) parses Euphoria code and executes it immediately.
  • The translator (euc) converts Euphoria to optimized C code and (optionally) invokes the compiler.
  • The shrouder (eushroud) parses Euphoria code and stores it in an immediate language (.il) file.
  • The backend (backend) executable is a stripped-down interpreter for running .il files.
  • The binder (eubind) shrouds Euphoria code and attaches to backend to create a new executable.

Unfortunately, most of this documented in several places, or maybe not at all. I encourage you to read through the manual and ask as many questions as you may have. Euphoria has grown quite organically over the years. Keep in mind it's twenty five years old and most of its life was under one developer (Rob Craig) and the past decade it's been the ward of the OpenEuphoria Group (hint: that's all of us) and we have, admittedly, done a poor job recently of keeping the project moving at the same rate Rob did.

irv said...

If you are familiar with C, then perhaps you could help here.

Agreed. If there's one thing we need right now, it's this. There are just too many open tasks for the very few of us who are still active.

There are plenty of non-C related and even non-programming tasks as well. If anyone reading this is serious about helping, please speak up.

-Greg

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

4. Re: What is the status of Euphoria V4.10?

It would be nice if there was someone running 'make test' in the source directory and putting links to the results somewhere. It would be interesting to know how my changes are changing EUPHORIA on other platforms and architectures.

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

5. Re: What is the status of Euphoria V4.10?

ghaberek said...

Agreed. If there's one thing we need right now, it's this. There are just too many open tasks for the very few of us who are still active.

There are plenty of non-C related and even non-programming tasks as well. If anyone reading this is serious about helping, please speak up.

-Greg

Is there a list of these other tasks, somewhere, to prompt us to consider what skills we can offer apart from programming?

-Arch

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

6. Re: What is the status of Euphoria V4.10?

archeopteryx_08 said...

Is there a list of these other tasks, somewhere, to prompt us to consider what skills we can offer apart from programming?

-Arch

Making a list of tasks would be one such task.

Start with an itch, a small itch. Just to identify the itch and mention it on the forum would be progress.

A puzzle I am currently trying to solve is how to explain "splice", "insert", "replace", ..., in a unified and lucid way. You could help by teaching me so I can explain to the next guy.

_tom

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

7. Re: What is the status of Euphoria V4.10?

_tom said...
archeopteryx_08 said...

Is there a list of these other tasks, somewhere, to prompt us to consider what skills we can offer apart from programming?

-Arch

Start with an itch, a small itch. Just to identify the itch and mention it on the forum would be progress.

_tom

Well, now that you mention an itch, I've always wanted to know how to create a cross-platform program. I've only ever written programs for Windows - and console ones at that. Suppose i write something that gets user input (eg their height in feet/inches) and displays the result of some processing (eg their height in cm). How do i make it work on a Linux and a Mac console? Do i need to add some extra code and, if so, can i see some minimalist source to see what i need to do? Do i need to have a Linux and a Mac computer and bind, shroud, or compile the original program on all three machines separately and then supply the executable that's relevant to them? That would be my itch...

_Arch

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

8. Re: What is the status of Euphoria V4.10?

archeopteryx_08 said...

Well, now that you mention an itch, I've always wanted to know how to create a cross-platform program. I've only ever written programs for Windows - and console ones at that. Suppose i write something that gets user input (eg their height in feet/inches) and displays the result of some processing (eg their height in cm). How do i make it work on a Linux and a Mac console? Do i need to add some extra code and, if so, can i see some minimalist source to see what i need to do? Do i need to have a Linux and a Mac computer and bind, shroud, or compile the original program on all three machines separately and then supply the executable that's relevant to them? That would be my itch...

_Arch

Cross-platform programs are pretty easy with EuGTK. If you're reading or writing files, the file paths have to be different, but it's easy to work around that. Otherwise, the rest of the code is the same.

Writing a console program can actually be more difficult, due to the different console control characters, different consoles, etc. on Win/Linux/OS-X. I'd stick with a GUI.

Now, if you're going to bind or compile the program, obviously they must be compiled for each platform, and perhaps a 32-bit and a 64-bit version of each as well.

It is possible to cross-compile, but I have never done that, except to compile EuGTK programs on my Linux machine to be run on my Raspberry Pi. Since the RPi has only a small amount of memory, compiling tends to be slow. It's a bit tedious, and since you've got to run your program on the various platforms anyway to be sure things work correctly, it's usually easier to just compile or bind on those platforms directly.

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

9. Re: What is the status of Euphoria V4.10?

irv said...

...compile EuGTK programs on my Linux machine to be run on my Raspberry Pi.

Irv, what are some of the projects you've done that you run on the RPi? I've always wanted to experiment and tinker, but I was never sure how to get started.

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

10. Re: What is the status of Euphoria V4.10?

euphoric said...
irv said...

...compile EuGTK programs on my Linux machine to be run on my Raspberry Pi.

Irv, what are some of the projects you've done that you run on the RPi? I've always wanted to experiment and tinker, but I was never sure how to get started.

Thanks for asking - I was going to point you to some code on my EuGTK page in the wiki, but it seems to have disappeared Anyway, EuGTK works on the RPi, so you can build most any program you want. Binding is quick, and works just about as well as compiling (which takes a loong time).

So far, I've written a little CPU and GPU temperature monitor that stays on screen and notifies if things get too hot. That's a real consideration with a RPi that's running 24/7. I use that Raspberry Pi with flightaware to monitor aircraft traffic.

Other things I've tinkered with include controlling security cameras. The RPi can use cheap webcams and servos to move them. Somewhere I also have a couple of programs with nice user interfaces that let me read and write ports on Arduinos - would have to search for those.

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

11. Re: What is the status of Euphoria V4.10?

irv said...

Anyway, EuGTK works on the RPi, so you can build most any program you want. Binding is quick, and works just about as well as compiling (which takes a loong time).

Wait... So RPi has a GUI? I really need to up my RPi knowledge! grin

I always thought they were just console interfaces.

I'm guessing, then, you could hook one up to a touch screen and build a kiosk-type thing...?

irv said...

Other things I've tinkered with include controlling security cameras. The RPi can use cheap webcams and servos to move them. Somewhere I also have a couple of programs with nice user interfaces that let me read and write ports on Arduinos - would have to search for those.

Whoa, that's cool! So, EuGTK can handle input from multiple cameras?

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

12. Re: What is the status of Euphoria V4.10?

The Raspberry Pi 3 runs either Ubuntu or Raspbian or Windows 10-IOT, among other things. That's pretty good for a $35 computer. (Actually more like $50, once you add a memory chip and a power supply). Raspbian is recommended.

They work about like a 10-year-old laptop, as far as speed is concerned. Just OK for web browsing, better for email and other programming tasks. It does work with touch screens with a bit of work.

You can stick one on the back of most any modern TV with HDMI connections, and have a usable computer. WiFi is built in.

RPi has 4 usb connectors. You'll need a couple for keyboard and mouse, leaving 2 for cameras - or use a hub. (There's also a camera that connects directly to the RPi motherboard, but it's more expensive and a bit of a hassle to use, since it connects with a ribbon cable instead of usb).

Euphoria (and EuGTK) don't have much to do with the cameras (only moving them). The video is managed by motion

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

13. Re: What is the status of Euphoria V4.10?

I would be willing to help when/if I can. I can't commit to large, time intensive projects, but I can whittle away at some small things. Not the greatest programmer, but I've mucked around with Euphoria since somewhere around 2000, before the open-source revolution. Problem is that I don't know what needs to be done that I could do.

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

14. Re: What is the status of Euphoria V4.10?

evanmars said...

I would be willing to help when/if I can. I can't commit to large, time intensive projects, but I can whittle away at some small things. Not the greatest programmer, but I've mucked around with Euphoria since somewhere around 2000, before the open-source revolution. Problem is that I don't know what needs to be done that I could do.

I, too, would like to help, but am not a C/C programmer. Be glad to help in other ways. I can program fairly well in Euphoria, and know a bit of scripting.

Larry

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

15. Re: What is the status of Euphoria V4.10?

Immediate Solution

We declare the existing binaries suitable for use.

  • euGTK works on 4.1
  • switch bug is very specialized
  • no complaints about oE 4.1 exist
  • Windows, Linux, and Mac binaries are working

Needed Skills

  • freshly compile oE
  • Windows installer
  • Linux .deb
  • Apple archive of files
  • RPi users can donate some advice...examples...

Is there someone with a Mac out there?

Retro Computing

  • Eu3 could be released with Duro's library

Nice to have

  • adapt Pete's Rosetta examples to oE
  • find interesting things in the Archive and convert to oE
  • any demos are welcome

Tutorials

  • any length, any perspective

Help Phix

  • try Phix and give Pete some feedback
  • we can learn from Phix

Use VirtualBox

  • to explore the OS you are not currently using
  • to get some cross-platform skills

My slowly evolving goals

  • re-write the manual
  • improve the examples in the standard libarary
  • write a tutorial

My Crazy Idea

  • make a Linux iso with oE|Phix included
  • Porteus and Refracta are possible starting distributions
  • I am close to a Porteus solution

My Most Wanted

  • something like Windows chm documentation format
  • chm is not Linux friendly, an alternative is needed

New Logo

  • fresh logo, fresh look?
  • but, keep the Mongoose

Pick something small and give it a try.

_tom

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

16. Re: What is the status of Euphoria V4.10?

I agree that we should make Eu 4.1 the default. Any bug(s) remaining are only going to be found by users who create unusual code combinations, such as the "switch with a function" bug. A caveat in the docs will take care of that - I'm pretty sure other programming languages have similar "gotcha's".

Creating an official .deb for Linux and a Windows installer would be at the top of my list of things to do.

I'm not sure a single-platform help file is the best solution. Html is more versatile, and we have that already. I recently added Eu4 context sensitive help to the EuGTK sourceview editor, it's a relatively minor task to call the appropriate web page(s).

https://sites.google.com/site/euphoriagtk/Screenshotfrom2018-12-2821-03-04.png?attredirects=0

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

17. Re: What is the status of Euphoria V4.10?

Here are my idea:

  • First, fix all errors indicated by the failing unit tests!

In particular with respect to std/net/http.e:

  • Adapt the std/net/http.e routines to use the CURL library so that the other http tests actually pass. See https://github.com/shawnpringle/euphoria/tree/http-curl for an implementation of this.
  • Fix the OpenEuphoria.org web server to provide the resources that the above tests rely on.
  • The curl branch needs documentation that EUPHORIA requires CURL, curl needs to be a requirement in the install and deb file creation.

Numeric limits:

Unit tests that deal with literal numbers that are too small to be put into a Euphoria atom, and should report an error rather than being read as zero or worse a huge number, are failing on my machine and probably most machines because these limits are different depending on the processor capabilities. The path of least resistance is to create an alternative set of control files for machines that have this capability and possibly adapt the testing program to use those.

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

18. Re: What is the status of Euphoria V4.10?

SDPringle said...

First, fix all errors indicated by the failing unit tests!

AGREED! A lot of the tests seem broken, so they're false failures.

SDPringle said...

In particular with respect to std/net/http.e:

  • Adapt the std/net/http.e routines to use the CURL library so that the other http tests actually pass. See https://github.com/shawnpringle/euphoria/tree/http-curl for an implementation of this.
  • Fix the [[OpenEuphoria.org]] web server to provide the resources that the above tests rely on.
  • The curl branch needs documentation that EUPHORIA requires CURL, curl needs to be a requirement in the install and deb file creation.

You're using WinInet on Windows, correct? We should assume that library is always available since it was added in Windows 2000.

When using CURL on Linux (or OS X) I recommend we fall back to the existing routines if we can't find CURL, and issue a warning like "CURL not found. HTTPS will not be available."

Also, since the existing HTTP routines support tasking, let's make sure to include task_yield() in the WinInet/CURL call backs, assuming it's safe to do so.

SDPringle said...

Unit tests that deal with literal numbers that are too small to be put into a Euphoria atom, and should report an error rather than being read as zero or worse a huge number, are failing on my machine and probably most machines because these limits are different depending on the processor capabilities. The path of least resistance is to create an alternative set of control files for machines that have this capability and possibly adapt the testing program to use those.

I'm not sure I follow. Can you provide an example?

-Greg

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

19. Re: What is the status of Euphoria V4.10?

ghaberek said...
SDPringle said...

First, fix all errors indicated by the failing unit tests!

AGREED! A lot of the tests seem broken, so they're false failures.

I argue that many of them are false failures but not all. I have been working on t_callc.e errors and they are very real. I made a branch of that off of my forked copy. If you want to work on it you can put a similar branch in original openeuphoria/euphoria repo and I can start pulling from there. The HTTP is failing because the example sites are using HTTPS. Others fail because differing numerical limits between distinct machines.

ghaberek said...
SDPringle said...

In particular with respect to std/net/http.e:

  • Adapt the std/net/http.e routines to use the CURL library so that the other http tests actually pass. See https://github.com/shawnpringle/euphoria/tree/http-curl for an implementation of this.
  • Fix the [[OpenEuphoria.org]] web server to provide the resources that the above tests rely on.
  • The curl branch needs documentation that EUPHORIA requires CURL, curl needs to be a requirement in the install and deb file creation.

You're using WinInet on Windows, correct? We should assume that library is always available since it was added in Windows 2000.

When using CURL on Linux (or OS X) I recommend we fall back to the existing routines if we can't find CURL, and issue a warning like "CURL not found. HTTPS will not be available."

Also, since the existing HTTP routines support tasking, let's make sure to include task_yield() in the WinInet/CURL call backs, assuming it's safe to do so.

SDPringle said...

Unit tests that deal with literal numbers that are too small to be put into a Euphoria atom, and should report an error rather than being read as zero or worse a huge number, are failing on my machine and probably most machines because these limits are different depending on the processor capabilities. The path of least resistance is to create an alternative set of control files for machines that have this capability and possibly adapt the testing program to use those.

I'm not sure I follow. Can you provide an example?

-Greg

On the topic of http.e, I am treating both platforms as if they are one here. Let the Windows users get CURL as far as I am concerned. Although, someone could do all of the porting work for a Windows special case as well, I guess. If we cannot even get all the unit-tests passing on Linux, we should just deprecate http_get and http_post and tell the users they should implement their own in the docs.

On the subject of these other tests that are false failures: Run eutest on the file t_c_underflow_sci.e. If you do so on a machine that uses 64-bit atoms, it will create an accepted error message according to the control file, but if your machine uses 80-bit atoms, it will create a different error message.

I wanted to use the biggest positive number that [Edit:] was too small to be represented as a 64-bit atom for this test. It is important that this value and smaller values will throw an error and this border-case is what needs to be tested. The biggest positive number that is too small to be represented as an 80-bit double is of course much smaller, so the literal gets assigned. I worked out what the biggest positive number which was too small for an 80-bit double would be back then but I didn't have a processor that I could test with at the time.

I made a test report and dropped it here http://openeuphoria.steemfiles.com/c8c0000000358383c30cdf8ea64de9b4a2536fec.html#summary.

For that issue we need to create control files for 80-bit doubles

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

20. Re: What is the status of Euphoria V4.10?

Please read my last post again, I rewrote some sentences and I was simply using the wrong phrases. The advantage of being obscure: only a 42 have read it.

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

Search



Quick Links

User menu

Not signed in.

Misc Menu