Coder Social home page Coder Social logo

eiffelsoftware / eiffelstudio Goto Github PK

View Code? Open in Web Editor NEW
49.0 16.0 25.0 654 MB

Public mirror of https://svn.eiffel.com/eiffelstudio-public/trunk with 12 months delay, see https://github.com/EiffelSoftware/libraries for the latest libraries

Batchfile 0.18% Shell 1.78% Objective-C 0.05% C 57.34% CSS 0.26% XSLT 0.17% C++ 21.11% Makefile 1.07% M4 0.61% HTML 11.65% PHP 0.01% Awk 0.05% DIGITAL Command Language 0.26% Perl 4.98% Module Management System 0.01% Assembly 0.32% eC 0.01% SAS 0.01% Ada 0.09% Pascal 0.07%

eiffelstudio's Introduction

EiffelStudio

Build Status

Introduction

EiffelStudio is the IDE for the Eiffel programming language.

The main public repository for the source code of EiffelStudio is a subversion repository located at:

https://svn.eiffel.com/eiffelstudio-public

In addition, there is a mirror hosted on GitHub that only contains the development branch (i.e. trunk subdirectory of the above subversion repository) at:

https://github.com/EiffelSoftware/EiffelStudio

The source code is licensed under the GPL v2.0 license, see gpl.txt for a copy of the license.

Chat Room

Want to chat with other members of the EiffelStudio developer community?

Join the chat at https://gitter.im/EiffelSoftware/EiffelStudio

eiffelstudio's People

Contributors

ebezault avatar eiffeldev avatar halw avatar jocelyn avatar jvelilla avatar kwaxer avatar manuseiffel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eiffelstudio's Issues

Error occurred when opening the project (report attached)

******************************** Thread exception *****************************
In thread Root thread 0x0 (thread id)



Class / Object Routine Nature of exception Effect

ISE_EXCEPTION_MANAGER
raise @9 Mapping ID(1) to precompilation ID(1) not found.:
<0000000005C381F8> Developer exception. Fail

ISE_EXCEPTION_MANAGER
raise @9
<0000000005C381F8> Routine failure. Fail

DEVELOPER_EXCEPTION raise @1
<0000000005C37D68> (From EXCEPTION) Routine failure. Fail

SERVER_FILE directory_path @9
<0000000010B01FB8> Routine failure. Fail

SERVER_FILE update_path @4
<0000000010B01FB8> Routine failure. Fail

SERVER_CONTROL init @3
<0000000010B382E8> Routine failure. Fail

E_PROJECT retrieve @27
<0000000008C88758> Routine failure. Fail

E_PROJECT make @4
<0000000008C88758> Routine failure. Fail

EB_GRAPHICAL_PROJECT_LOADER
retrieve_or_create_project @4
<000000000D627DF8> (From PROJECT_LOADER) Routine failure. Fail

EB_GRAPHICAL_PROJECT_LOADER
retrieve_or_create_project @4
<000000000D627DF8> Routine failure. Fail

EB_GRAPHICAL_PROJECT_LOADER
open_project_file @37
<000000000D627DF8> (From PROJECT_LOADER) Routine failure. Fail

EB_OPEN_PROJECT_WIDGET
open_project @11
<000000001247F318> Routine failure. Fail

EB_STARTING_DIALOG on_ok @6
<000000001246D9B8> Routine failure. Fail

EV_NOTIFY_ACTION_SEQUENCE
call @21
<000000001249E338> (From ACTION_SEQUENCE) Routine failure. Fail

EV_NOTIFY_ACTION_SEQUENCE
call @3
<000000001249E338> (From EV_LITE_ACTION_SEQUENCE)
Routine failure. Fail

EV_BUTTON_IMP on_bn_clicked @2
<000000000C011A58> Routine failure. Fail

EV_BUTTON_IMP process_notification @2
<000000000C011A58> (From WEL_BUTTON) Routine failure. Fail

EV_HORIZONTAL_BOX_IMP
on_wm_command @13
<000000000C1F4138> (From WEL_COMPOSITE_WINDOW)
Routine failure. Fail

EV_HORIZONTAL_BOX_IMP
process_message @8
<000000000C1F4138> (From WEL_COMPOSITE_WINDOW)
Routine failure. Fail

WEL_DISPATCHER window_procedure @7
<0000000006BE3EA8> (From WEL_ABSTRACT_DISPATCHER)
Routine failure. Fail

WEL_DISPATCHER window_procedure @12
<0000000006BE3EA8> (From WEL_ABSTRACT_DISPATCHER)
Routine failure. Fail

EV_DIALOG_IMP_MODAL internal_dialog_make @4
<000000000C1F48C8> Routine failure. Fail

EV_DIALOG_IMP_MODAL show_modal_to_window @5
<000000000C1F48C8> Routine failure. Fail

EV_DIALOG_IMP show_modal_to_window @4
<000000000C010F88> Routine failure. Fail

EB_STARTING_DIALOG show_modal_to_window @1
<000000001246D9B8> (From EV_DIALOG) Routine failure. Fail

EB_STARTING_DIALOG show_modal_to_window @2
<000000001246D9B8> Routine failure. Fail

ES_GRAPHIC display_starting_dialog @3
<0000000006BE33E8> (From ES_ABSTRACT_GRAPHIC)
Routine failure. Fail

ES_GRAPHIC prepare @37
<0000000006BE33E8> (From ES_ABSTRACT_GRAPHIC)
Routine failure. Fail

EV_NOTIFY_ACTION_SEQUENCE
call @21
<0000000006BE3278> (From ACTION_SEQUENCE) Routine failure. Fail

EV_NOTIFY_ACTION_SEQUENCE
call @3
<0000000006BE3278> (From EV_LITE_ACTION_SEQUENCE)
Routine failure. Fail

EV_APPLICATION_IMP call_post_launch_actions @2
<0000000006BE30A8> (From EV_APPLICATION_I)
Routine failure. Fail

EV_APPLICATION internal_launch_application @2
<0000000006BE3408> Routine failure. Fail

EV_APPLICATION launch @2
<0000000006BE3408> Routine failure. Fail

ES_GRAPHIC make @4
<0000000006BE33E8> Routine failure. Fail

EB_KERNEL make @4
<0000000006A94798> Routine failure. Fail

EB_KERNEL root's creation
<0000000006A94798> Routine failure. Exit

Support Pelles C as C compiler

Pelles C is Windows only. Able to generate both 32 bit and 64 bit binaries. Why Pelles C? Pelles C is small and lightweight. MSVC and mingw64 are beasts, eating gigabytes of precious disk space. Pelles C is widely used to other project. e.g: OpenDylan use Pelles C as C compiler on Windows.

https://opendylan.org/download/#installation-on-windows

Oh almost forgot, this is Pelles C: http://www.smorgasbordet.com/pellesc/

As I found EiffelStudio included the very outdated gcc 4.4.4 as it's the last GPL2 version of gcc. Switching to Pelles C is much better.

A better {UUID}.out

I would like to suggest changing {UUID}.out to the following more efficient code (tested). This code requires only 1 special array to be GC'd instead of 6 strings. Also suggest adding convenience routine to_delimited.

Ideally code for out should be in to_delimited, but then you would also need to change post-condition routine is_valid_uuid.

Code can be copied from source file EL_UUID.

feature -- Access

   to_delimited (c: CHARACTER): STRING
      local
         i: INTEGER
      do
         Result := out
         from i := 1 until i > Result.count loop
            inspect i
               when 9, 14, 19, 24 then
                  Result.put (c, i)
            else
            end
            i := i + 1
         end
      end

   out: STRING
      local
         start_index, end_index, i, j: INTEGER
         n, digit: NATURAL_64; array: SPECIAL [NATURAL_64]
      do
         create Result.make_filled (Separator_char_8, 36)
         create array.make_filled (data_5, 5)
         array [0] := data_1; array [1] := data_2; array [2] := data_3; array [3] := data_4

         from j := 0 until j = 5 loop
            n := array [j]
            inspect j + 1
               when 1 then
                  start_index := 1; end_index := 8
               when 2 then
                  start_index := 10; end_index := 13
               when 3 then
                  start_index := 15; end_index := 18
               when 4 then
                  start_index := 20; end_index := 23
               when 5 then
                  start_index := 25; end_index := 36
            else
            end
            from i := end_index until i < start_index loop
               digit := n & Nibble_15_mask
               Result.put (digit.to_hex_character, i)
               n := n |>> 4
               i := i - 1
            end
            j := j + 1
         end
      ensure then
         result_is_valid_uuid: is_valid_uuid (Result)
      end

feature -- Constants

   Nibble_15_mask: NATURAL_64 = 0xF

end

C compilation {EV_MODEL_MATH}.distance_from_line and related functions

(Assuming x^2 results in a call to pow ())
ChatGTP
In most cases, x * x would evaluate more quickly than pow(x, 2) for several reasons:

  1. Function Call Overhead: The pow() function typically involves a function call overhead, which includes setting up the function call, passing arguments, and returning values. In contrast, x * x is a simple arithmetic operation that doesn't require function calls.
  2. Special Cases Handling: The pow() function is designed to handle more general cases, such as non-integer exponents and handling special cases like NaN (Not a Number) and infinity. This generality may introduce additional overhead compared to the specialized case of squaring with x * x.
  3. Optimization: Compilers can often optimize x * x more effectively than pow(x, 2) because the former is a simpler operation. Compilers may apply specific optimizations like loop unrolling or instruction pipelining to speed up the multiplication operation.

Therefore, x * x is likely to be faster than pow(x, 2) for squaring x in most scenarios.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.