Emerald Editor Discussion
April 23, 2017, 08:56:49 am *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News:
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: Overall Design - non-programmer looking for assistance  (Read 5018 times)
0 Members and 1 Guest are viewing this topic.
Zhrakkan
Official Mascot!
Beta Testers
Gem Cutter
***
Posts: 177



WWW
« on: May 16, 2006, 09:12:00 pm »

Greetings all.

I wanted to try to understand a little more as to what is being decided..
Remember, I am not a programmer, and some of the topics are simply put, a little outa my scope.

What are we trying to design EE with?
I have seen Scintilla and a few others....

Can someone take a few seconds to clear up the purpose ect for each application and how it fits in the scope of EE?

I would appreciate it.

Zak
Logged

News Manager and Unofficial Mascot
Join the Emerald Editor Project - Message Me!
Emerald Editor - "A Jewel of an Editor"
-----by the way, that name is pronounced "Za-Rack-In"
Arantor
Site Administrator
Administrator
Master Jeweller
*****
Posts: 618



« Reply #1 on: May 16, 2006, 10:17:26 pm »

OK, looking at what we have in the source repository and how it all fits together...

Subversion: a storage system for the source of Emerald Editor, which allows us to revisit previous versions of the code and helps prevent edits being done by many people which would ultimately otherwise disintegrate EE.

wxWidgets: a toolkit responsible for building the graphical user interface. Basically, EE calls wxWidgets, wxWidgets calls whatever it appropriate for the operating system, be it Windows, Mac OS X, Linux or whatever. The result is that EE only has 1 set of code and this is applicable for each operating system.

Scintilla: a library which provides an "editing control", much like the editing section (only) of Crimson Editor. EE will use most of the features of Scintilla to do the actual editing. Scintilla itself also provides many of the features required for syntax highlighting, although we will have to rewrite the backend of that (Scintilla currently has its languages prebuilt into it, while we want to add customisable syntax files)

wxStEdit: rarely mentioned, but important to point out. Basically, wxStEdit is a functional text editor in its own right, using wxWidgets and Scintilla. Most of the EE code as it stands right now is a functional, buildable copy of wxStEdit. We are using this as a base since it already builds, is functional and we can remove and add features as we see fit. Within 3 days of the basic build being provided, the community was able to build what we have with minor work and alterations, on Windows, Linux and Mac OS X. This will become more important as time goes on if we hope to drive EE as the premier editing solution.

Everything else is done by MinGW/MSYS/MsysDTK (for Windows). Basically, EE is being written in C++ and those tools are part of what turns the code into a final usable program. Essentially we are using a package called GCC, the GNU Compiler Collection, which includes C and C++, but GCC is predominantly aimed at Linux/Unix (and Mac OS X) users.

The GCC tools, and "make" which binds it all together, are bundled up nicely into a single package for Windows, called MinGW (Minimalist GNU for Windows). However, some of the results of make and scripts that work with it don't always fit well into the Windows ideal, so a minimal system was put together, mirroring Linux/Unix-like behaviour on Windows - this is MSYS. Other packages which are useful but not critical to development are also available with MsysDTK, although this is a bonus rather than a dependence. You don't need MinGW, MSYS or MsysDTK to use EE, only to build new versions from the code we have.

The other tool which has been mentioned is bakefile. When building a large program, using hundreds of files of code (sometimes thousands), it is tedious to write a list of instructions to GCC on how to build it, including where to find libraries and resources, so all of these instructions are bundled up into a makefile, which is a set of instructions for "make" on how to build the program.

bakefile is a tool which helps construction of the makefile, and can simplify it in such a way that future makefiles don't rely on specific Windows, Linux, Mac OS X etc. behaviours in order to work.

I hope that's helped clear everything up - if not, please ask!
Logged

"Cleverly disguised as a responsible adult!"
Zhrakkan
Official Mascot!
Beta Testers
Gem Cutter
***
Posts: 177



WWW
« Reply #2 on: May 16, 2006, 10:20:55 pm »

No you pretty much answered my question!

Wow...nice post, I am keeping this one around so I can understand the code talk.
(I am technical being an Admin, just not a programmer)

Kudos to you Arantor
Logged

News Manager and Unofficial Mascot
Join the Emerald Editor Project - Message Me!
Emerald Editor - "A Jewel of an Editor"
-----by the way, that name is pronounced "Za-Rack-In"
BlackTea
Miner
**
Posts: 12


WWW
« Reply #3 on: June 02, 2006, 05:05:01 am »

Great summary of the tools needed for the build- from Arantor.
Logged
awmyhr
Senior Miner
***
Posts: 95

Maintainer of Obscure and Unused Ports


WWW
« Reply #4 on: June 02, 2006, 10:04:20 pm »

Overall, it's a very great basic summary, but I really have an issue with this part:

<Lots of great stuff>

but GCC is predominantly aimed at Linux/Unix (and Mac OS X) users.

<lots more great stuff>

Sorry, but even in a simple bird's eye view summary, this just doesn't sound right.  Maybe read through the GNU Compiler Collections Mission Statement http://gcc.gnu.org/gccmission.html and re-work it?  It's entirely possible that I'm the only one this just does not resonate well with...

[edit - i kan't spel]
Logged

-->>  This Space 4 Rent  <<--
Arantor
Site Administrator
Administrator
Master Jeweller
*****
Posts: 618



« Reply #5 on: June 02, 2006, 10:08:49 pm »

Fair point. I was just writing it whilst on lunch break from work, and my comments regarding GCC were not meant in any negative way. I was referring there to the fact that GCC adoption seems to be less predominant on Windows platforms than on Linux/Unix and Mac OS X, especially the former.
Logged

"Cleverly disguised as a responsible adult!"
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!
Page created in 0.125 seconds with 18 queries.