Commit graph

1014 commits

Author SHA1 Message Date
Benoît Minisini
96df983246 [INTERPRETER]
* BUG: Do not try to handle signals if there is no more signal handlers.


git-svn-id: svn://localhost/gambas/trunk@4998 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-30 11:46:12 +00:00
Benoît Minisini
daf3a53a4b [INTERPRETER]
* BUG: Fix Error.Propagate().

[GB.EVAL]
* NEW: Highlight TODO/FIXME/NOTE commentaries like help commentaries.


git-svn-id: svn://localhost/gambas/trunk@4997 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-29 15:50:27 +00:00
Benoît Minisini
174c2747f2 [DEVELOPMENT ENVIRONMENT]
* BUG: Fix a circular reference.

[INTERPRETER]
* BUG: Fix error handling when freeing objects.

[GB.FORM]
* BUG: Stock.Themes now correctly checks that ~/.icons exists.


git-svn-id: svn://localhost/gambas/trunk@4996 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-28 12:28:15 +00:00
Benoît Minisini
9fc6b03718 [DEVELOPMENT ENVIRONMENT]
* NEW: Each comment anywhere in the source code beginning with 'TODO:', 
  'FIXME:', or 'NOTE:' is automatically listed in a new tab named 'Tasks' 
  in the bottom debugging panel.

[INTERPRETER]
* BUG: Env[...] does not return a constant string anymore. Anyone can 
  change the environment in the background!


git-svn-id: svn://localhost/gambas/trunk@4989 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-25 19:32:57 +00:00
Benoît Minisini
6516f5670c [INTERPRETER]
* OPT: Optimized GOSUB from an idea of Emil Lenngren.


git-svn-id: svn://localhost/gambas/trunk@4979 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-22 00:04:56 +00:00
Benoît Minisini
eab59c1482 [INTERPRETER]
* BUG: Fix conversion from pointer to structure.


git-svn-id: svn://localhost/gambas/trunk@4978 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-21 22:01:50 +00:00
Benoît Minisini
938458a03e [CONFIGURATION]
* NEW: Switch to 3.2.90 version.

[DEVELOPMENT ENVIRONMENT]
* BUG: Fix automatic completion of project classes that reimplements 
  another class.

[WEB SITE MAKER]
* BUG: Fix scrolling frames on Chrome.

[INTERPRETER]
* NEW: Args and Env classes are now shortcuts for Application.Args and 
  Application.Env properties.


git-svn-id: svn://localhost/gambas/trunk@4977 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-21 20:43:10 +00:00
Benoît Minisini
4f8389e766 [INTERPRETER]
* NEW: You can convert a pointer to a static structure now. It is useful 
  when an extern function has a 'struct XXX **' argument.


git-svn-id: svn://localhost/gambas/trunk@4974 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-21 11:16:57 +00:00
Benoît Minisini
e65f738f54 [INTERPRETER]
* BUG: Really compile when FFI support is disabled!


git-svn-id: svn://localhost/gambas/trunk@4972 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-21 00:27:39 +00:00
Benoît Minisini
186bb8d5e2 [INTERPRETER]
* BUG: Make the interpreter compile when FFI has been disabled.


git-svn-id: svn://localhost/gambas/trunk@4969 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-19 19:27:28 +00:00
Benoît Minisini
db7768aaf6 [INTERPRETER]
* BUG: Fix compilation on 32 bits platforms.


git-svn-id: svn://localhost/gambas/trunk@4962 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-17 19:36:11 +00:00
Benoît Minisini
97718051b1 [DEVELOPMENT ENVIRONMENT]
* OPT: New optimizations in profile file size.
* NEW: PageUp and PageDown keys now work as expected in the project filter 
  box.

[INTERPRETER]
* NEW: Support for new profile file format.

[GB.DEBUG]
* OPT: New profile file format.

[GB.LIBXML]
* NEW: Make this component exclude gb.xml.

[GB.XML]
* NEW: Make this component exclude gb.libxml.


git-svn-id: svn://localhost/gambas/trunk@4961 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-17 16:24:48 +00:00
Benoît Minisini
1d0ebd5999 [DEVELOPMENT ENVIRONMENT]
* NEW: The project tree filter box now tries to keep the focus.
* NEW: Hitting ENTER in the project filter box opens the current selected 
  file.
* NEW: Using arrows keys in the project filter box now moves the project
  tree cursor.
* NEW: CTRL+L now sets the focus back to the project filter box.
* NEW: Hitting ESC in the project filter box now resets the filter.
* NEW: Add support for gb.gsl component in the project creation dialog.

[INTERPRETER]
* NEW: Support for floating-point constants.
* BUG: The equality operators of the _operator interface now can return -1
  when a datatype is not supported.

[GB.COMPLEX]
* NEW: Remove methods that are implemented by the _operator interface.

[GB.QT4]
* OPT: Load clipboard format list only if the clipboard has changed.

[GB.GSL]
* NEW: Matrix can be compared with real or complex numbers. The number is
  then multiplied by the identity matrix before doing the comparison.


git-svn-id: svn://localhost/gambas/trunk@4958 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-16 16:30:55 +00:00
Benoît Minisini
7c9f99fef6 [INTERPRETER]
* NEW: Add a GB.FreeStringLater() API to allow components to create a new
  string with GB.NewString(), and let the interpreter frees it later.

[GB.GSL]
* NEW: Add a ToString() method to all classes. That method takes two 
  arguments: the first one tells if number must be localized. The second 
  one tells if complex numbers and polynomials are converted to a string
  that can be sent to Eval().
* BUG: Adding a number N to a Matrix A is equivalent to adding N times the
  identity matrix.
* NEW: The '^' operator has been implemented in the Matrix class. Only A^N
  where N is an integer is valid.


git-svn-id: svn://localhost/gambas/trunk@4955 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-15 13:07:57 +00:00
Benoît Minisini
a5c174d248 [INTERPRETER]
* NEW: Any operators of the _operator interface can be optional now. But
  consequently, division by zero must be raised by the implementation.
* NEW: Implement Vector arithmetic operators.
* NEW: Rename some Matrix methods.
* NEW: Implement Polynomial arithmetic addition and substraction.
* BUG: Fix Polynomial to string conversion.
* NEW: Complex.Handle is a new property that returns the memory address of
  the underlying complex number in memory.


git-svn-id: svn://localhost/gambas/trunk@4947 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-14 15:18:22 +00:00
Benoît Minisini
df89e09b2e [INTERPRETER]
* NEW: '_operators' interface has been renamed as '_operator'.
* NEW: Arithmetic operators now can be applied on two objects with
  different classes. One at least must implement the '_operator' interface.
* NEW: Each class that implements the '_operator' interface has now an 
  automatic priority that follows the load order. When a binary operator 
  has two objects that implement two different '_operator' interface, the
  one having the highest priority is used.
* NEW: Implementing all methods in the '_operators' interface is not 
  mandatory anymore. If one method is not implemented, then it is replaced
  by a function that raises a 'Type mismatch' error.

[GB.GSL]
* NEW: Matrix arithmetic has been implemented.
* NEW: Matrix.Determinant() method.
* NEW: Matrix.Invert() method.
* NEW: Matrix.Transpose() method.
* NEW: Matrix _call special method multiplies a matrix by a vector.
* NEW: Vector <-> Array conversion.


git-svn-id: svn://localhost/gambas/trunk@4946 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-14 02:49:57 +00:00
Benoît Minisini
89d42c3d40 [INTERPRETER]
* NEW: Add a new API to create an object without calling the constructors.

[GB.CRYPT]
* BUG: Fix bad casting of strcmp() return value to boolean. The same 
  security flaw has been found in MySQL recently. See 
  http://seclists.org/oss-sec/2012/q2/493

[GB.GTK]
* BUG: Fix bad casting of strcmp() return value to boolean in the Font 
  management.

[GB.GSL]
* NEW: Matrix class built the same way as the Vector class, i.e. with the 
  ability to switch transparently between Float or Complex elements.


git-svn-id: svn://localhost/gambas/trunk@4945 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-12 23:34:14 +00:00
Benoît Minisini
6d6034e845 [INTERPRETER]
* BUG: Don't optimize the "_operators" interface when using anonymous 
  objects!


git-svn-id: svn://localhost/gambas/trunk@4944 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-11 22:03:54 +00:00
Emil Lenngren
139884adb6 [GB.JIT]
* BUG: Properly check stack overflow for GoSubs.


git-svn-id: svn://localhost/gambas/trunk@4942 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-10 23:10:13 +00:00
Benoît Minisini
6931d13491 [GB.GSL]
* OPT: Optimize Complex arithmetic by avoiding unneeded object creations.


git-svn-id: svn://localhost/gambas/trunk@4940 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-10 20:33:26 +00:00
Benoît Minisini
c1212ac95e [INTERPRETER]
* OPT: Remove a useless test in the macro that returns the class of an 
  object.
* OPT: Some little optimization in some type checks.


git-svn-id: svn://localhost/gambas/trunk@4939 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-10 19:57:43 +00:00
Benoît Minisini
1d86ebecb1 [INTERPRETER]
* BUG: Fix '_operators' interface negation handling.


git-svn-id: svn://localhost/gambas/trunk@4935 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-10 15:20:46 +00:00
Benoît Minisini
55e313b8f5 [INTERPRETER]
* NEW: Put every '_operators' interface related methods in the same source 
  file.

[GB.GSL]
* NEW: Polynomial _call() special method now is a synonymous of its Eval() 
  method. That way, you can write 'P(X)' to get the value of P(X).


git-svn-id: svn://localhost/gambas/trunk@4933 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-10 14:35:17 +00:00
Benoît Minisini
a9fbd40cd8 [INTERPRETER]
* NEW: Implement the ^ operator in the '_operators' interface.

[GB.COMPLEX]
* NEW: Implement the ^ operator.

[GB.GSL]
* NEW: Implement the ^ operator in the Complex class.


git-svn-id: svn://localhost/gambas/trunk@4931 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-10 02:37:39 +00:00
Benoît Minisini
a3966cf195 [DEVELOPMENT ENVIRONMENT]
* BUG: Array of classes exported by a component are now correctly handled
  by the component interface analyzer.

[INTERPRETER]
* BUG: The _operators interface now correctly takes into account the
  "Float - Object" case.

[GB.GSL]
* NEW: Redesign of the Polynomial class. Now it implements a polynomial 
  that can switch between real and complex coefficients transparently.
* NEW: The ComplexPolynomial class has been removed.


git-svn-id: svn://localhost/gambas/trunk@4929 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-10 00:13:00 +00:00
Benoît Minisini
9a46cc0486 [INTERPRETER]
* NEW: Temporary hack in the GB.New() API so that we can pass a number of 
  arguments in some cases.

[GB.COMPLEX]
* OPT: Do not create complex objects during arithmetic operations when we 
  are sure that we can reuse a temporary one. That trick can be used in any
  '_operators' interface.


git-svn-id: svn://localhost/gambas/trunk@4925 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-09 17:10:21 +00:00
Benoît Minisini
fa552f69c1 [DEVELOPMENT ENVIRONMENT]
* NEW: New gb.complex component

[INTERPRETER]
* BUG: Automatic array conversion now works with not yet loaded array 
  classes.

[GB.COMPLEX]
* NEW: New component that implements a rudimentary management of complex 
  numbers. This component is automatically loaded if a complex number
  constant is encountered and no loaded component can already handle 
  complex numbers.


git-svn-id: svn://localhost/gambas/trunk@4924 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-09 15:37:42 +00:00
Benoît Minisini
2402db91f0 [INTERPRETER]
* NEW: Support for imaginary number syntax. For example, using "3i" will 
  automatically load the gb.gsl component, create the corresponding complex 
  number and return it.

[COMPILER]
* NEW: Support for imaginary number syntax.

[GB.EVAL]
* NEW: Support for imaginary number syntax.

[GB.GSL]
* NEW: Support for imaginary number syntax.
* NEW: Vector class is now generic, and has two child classes: FloatVector 
  and ComplexVector, depending on the type of its elements.
* BUG: Support for arithmetic operators on Vector class has been removed. 
  It had too many problems.


git-svn-id: svn://localhost/gambas/trunk@4918 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-08 23:23:24 +00:00
Benoît Minisini
fc1c1e5531 [INTERPRETER]
* NEW: When converting an instance of A to the class B, try the conversion 
  interface of A first. If A has no conversion interface, or if it cannot 
  handle the B class, then try the conversion interface of B if any.

[GB.GSL]
* NEW: Vector class has been implemented.

[GB.JIT]
* NEW: SPEC_CONVERT constant has been replaced by a field in the CLASS 
  structure.


git-svn-id: svn://localhost/gambas/trunk@4916 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-08 20:08:43 +00:00
Emil Lenngren
ad81cf629a [GB.JIT]
* NEW: Use VALUE_convert instead of VALUE_convert_object.


git-svn-id: svn://localhost/gambas/trunk@4914 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-08 18:59:10 +00:00
Benoît Minisini
ef37065297 [INTERPRETER]
* BUG: Correctly raise an error when trying to use NULL on classes 
  implementing the _operators interface.
* NEW: The _convert interface now must handle conversions from any 
  datatype.

[GB.GSL]
* NEW: Automatic conversion from numbers to Complex.
* NEW: Start implementating the Vector class.


git-svn-id: svn://localhost/gambas/trunk@4913 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-08 16:55:35 +00:00
Benoît Minisini
64505bbb0b [INTERPRETER]
* BUG: Abs() and the negation operator on a null object implementing the 
  '_operators' interface does not crash anymore, and correctly raises an 
  error now.


git-svn-id: svn://localhost/gambas/trunk@4912 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-08 16:23:40 +00:00
Emil Lenngren
393decb5e1 [GB.JIT]
* NEW: Implement _unknown.
* BUG: Remove some warnings.

[INTERPRETER]
* BUG: Fix exception handling for JIT functions.


git-svn-id: svn://localhost/gambas/trunk@4909 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-08 14:53:23 +00:00
Benoît Minisini
7bd330aa00 [INTERPRETER]
* NEW: "_operators" is a new interface that allows any native class to be
  used with most of arithmetic operators: +, -, *, /, Abs, =, <> at the 
  moment.
* NEW: The "_convert" interface now allows a class to be converted to any
  datatype, not just other classes.
* NEW: Str() and Print uses the "_convert" interface to print a localized
  string conversion of any object.

[GB.GSL]
* NEW: Use the new "_operators" interface so that complex numbers can be 
  handled by standard arithmetic operators.
* NEW: The Complex class now implements the "_convert" interface.


git-svn-id: svn://localhost/gambas/trunk@4908 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-08 14:35:58 +00:00
Benoît Minisini
2c631a0874 [INTERPRETER]
* BUG: Do not leak memory if the _unknown method raised an error.


git-svn-id: svn://localhost/gambas/trunk@4907 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-08 14:29:44 +00:00
Benoît Minisini
a903da98f2 [INTERPRETER]
* BUG: Correctly read unknown properties.


git-svn-id: svn://localhost/gambas/trunk@4906 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-08 13:27:56 +00:00
Benoît Minisini
bbe3baa41e [GB.SIGNAL]
* BUG: Remove an apparently useless type definition, and fix compilation on 
  recent Linux kernels.


git-svn-id: svn://localhost/gambas/trunk@4902 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-07 22:18:14 +00:00
Benoît Minisini
1b28a5f062 [COMPILER]
* BUG: Like can be used in a Case expression just after the Case keyword
  only.



git-svn-id: svn://localhost/gambas/trunk@4900 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-06 21:50:15 +00:00
Benoît Minisini
fa67280e7a [INTERPRETER]
* NEW: Static unknown properties can be used in a dynamic context now.


git-svn-id: svn://localhost/gambas/trunk@4897 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-04 22:06:19 +00:00
Benoît Minisini
6fd31cfe59 [INTERPRETER]
* BUG: Now the _property special method can be static even if _unknown is 
  dynamic. Anyway, if _unknown is static then all unknown properties and 
  methods must be static, and if _unknown is dynamic, they all must be 
  dynamic.


git-svn-id: svn://localhost/gambas/trunk@4896 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-04 21:59:16 +00:00
Benoît Minisini
6b6ca7654d [INTERPRETER]
* BUG: Allows the _unknown method to be static.


git-svn-id: svn://localhost/gambas/trunk@4894 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-03 23:45:09 +00:00
Benoît Minisini
307e7d396f [INTERPRETER]
* BUG: Raise the Kill event of a Process after having closed its I/O 
  streams.

[GB.DEBUG]
* NEW: Debug.GetSignal() is a new method that returns the description of a 
  signal from its numeric value.


git-svn-id: svn://localhost/gambas/trunk@4892 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-03 18:21:54 +00:00
Benoît Minisini
02eb02cd4f [INTERPRETER]
* BUG: Reading an unknown property does not crash anymore if _unknown is 
  defined but not _property.


git-svn-id: svn://localhost/gambas/trunk@4891 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-03 17:41:36 +00:00
Benoît Minisini
ddff42d95b [GB.OPTION]
* BUG: The component is now compatible with the new way of arguments 
  handling, and does not crash anymore.


git-svn-id: svn://localhost/gambas/trunk@4890 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-03 17:32:39 +00:00
Emil Lenngren
76e3dee4d0 [GB.JIT]
* NEW: Can now profile each line of code, but beware: profiling makes the program much much slower.

[GB.DEBUG]
* OPT: Now DEBUG_calc_line_from_position has logaritmic time complexity instead of linear. That makes profiling each line much faster for large functions!


git-svn-id: svn://localhost/gambas/trunk@4886 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-02 22:38:29 +00:00
Benoît Minisini
7a126b76e3 [INTERPRETER]
* NEW: Always put a space between international currency symbol and amount
  when formatting a currency.


git-svn-id: svn://localhost/gambas/trunk@4871 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-28 23:38:26 +00:00
Benoît Minisini
50681dead1 [INTERPRETER]
* BUG: Fix Format$() when using "AM/PM" just after a date formatting 
  character.


git-svn-id: svn://localhost/gambas/trunk@4870 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-28 23:09:10 +00:00
Benoît Minisini
f9d8a9c990 [GB.COMPRESS]
* BUG: Fix internal structure of Uncompress object.


git-svn-id: svn://localhost/gambas/trunk@4867 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-28 18:06:05 +00:00
Benoît Minisini
7cab7622bf [GB.DRAW]
* BUG: Fix Draw.Picture() when using the transformation matrix and not 
  specifying height or width.


git-svn-id: svn://localhost/gambas/trunk@4866 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-27 18:06:10 +00:00
Benoît Minisini
6c54a66760 [INTERPRETER]
* BUG: Correctly release or keep the return value of a function when 
  destructors are called during epilogue.


git-svn-id: svn://localhost/gambas/trunk@4863 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-27 01:14:05 +00:00
Benoît Minisini
be77f4a2fa [INTERPRETER]
* BUG: Add a check to not create array classes when reimplementing or 
  inheriting native array classes. Hope that check is not wrong...


git-svn-id: svn://localhost/gambas/trunk@4856 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-24 18:41:57 +00:00
Emil Lenngren
1ee80f7683 [INTERPRETER]
* BUG: Correctly load the "npvar" field for Gambas functions.



git-svn-id: svn://localhost/gambas/trunk@4852 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-20 17:12:58 +00:00
Emil Lenngren
856af1cd45 [GB.JIT]
* NEW: Partially support callbacks for extern functions. You can only convert functions in the current class to pointers 
currently, i.e. functions that are referenced directly by their name.



git-svn-id: svn://localhost/gambas/trunk@4851 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-19 22:08:59 +00:00
Emil Lenngren
dba2bf91ac [GB.JIT]
* BUG: Fix extern function overriding.

[COMPILER]
* BUG: Write correct disassembly for PUSH INTEGER.



git-svn-id: svn://localhost/gambas/trunk@4850 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-19 21:23:49 +00:00
Benoît Minisini
a97ea1d599 [COMPILER]
* BUG: Make the internal "$load" form method private. Why was it public?


git-svn-id: svn://localhost/gambas/trunk@4846 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-18 11:13:29 +00:00
Benoît Minisini
02d1089079 [GB.EVAL]
* BUG: Highlight.TextAfter returns the code as it should be displayed, even
  if the Rewrite argument of Highlight.Analyze() is FALSE.


git-svn-id: svn://localhost/gambas/trunk@4844 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-17 17:56:45 +00:00
Benoît Minisini
b98a33c671 [INTERPRETER]
* BUG: If there is an error, wake up the debugger on the current stack 
  position. Return to the last encountered line break after, not before.


git-svn-id: svn://localhost/gambas/trunk@4841 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-17 09:12:31 +00:00
Emil Lenngren
c59b33e1bb [GB.JIT]
* BUG: Fixed some bugs.

[INTERPRETER]
* BUG: "Read ... As String"  now correctly returns a void string instead of null, if it read an empty string.



git-svn-id: svn://localhost/gambas/trunk@4839 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-16 23:45:57 +00:00
Emil Lenngren
56807e5b52 [GB.JIT]
* NEW: "Extern" functions should now work hopefully, but callbacks are still not yet implemented.
* BUG: Fix conversion Class -> Variant for non-virtual classes.
* BUG: Some minor bug fixes.

[INTERPRETER]
* BUG: Load classes from JIT should work better now.



git-svn-id: svn://localhost/gambas/trunk@4831 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-15 01:27:31 +00:00
Benoît Minisini
64fef6f598 [DEVELOPMENT ENVIRONMENT]
* BUG: If the project is read-only, the profile file is stored in the 
  process temporary directory in /tmp instead of the project directory.
* NEW: The name of profile files now follows this scheme: '.N.prof', where
  'N' is an index incremented each time the project is run.
* BUG: Toolbars and popup-menus are correctly updated at first load form
  text, source and form editors.
* BUG: Do not show or hide toolbars buttons outside of the toolbar 
  'Configure' event.

[INTERPRETER]
* NEW: The '-p' option now takes the profile file path as argument.

[GB.DEBUG]
* NEW: The profile file path can be specified on the command line.

[GB.FORM.MDI]
* NEW: Configured toolbars are drawn with a red frame.

[GB.GTK]
* BUG: Remove warnings displayed by the Control Raise() and Lower() 
  methods.
* BUG: Draw.Style methods now are correctly clipped.


git-svn-id: svn://localhost/gambas/trunk@4820 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-10 14:58:45 +00:00
Benoît Minisini
c47cd00a15 [INTERPRETER]
* BUG: libffi is correctly detected again.


git-svn-id: svn://localhost/gambas/trunk@4817 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-09 14:03:58 +00:00
Benoît Minisini
835dd33dcf [GB.DEBUG]
* NEW: GB_PROFILE_MAX environment variable now can take the maximum size of 
  a profile file in megabytes. The default value is 512 Mb. The minimum
  value is 128 Mb, and the maximum value is 4096 Mb.


git-svn-id: svn://localhost/gambas/trunk@4816 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-09 13:39:47 +00:00
Benoît Minisini
442f8ce70e [CONFIGURATION]
* NEW: Switch version to 3.2.0.

[GB.XML]
* BUG: Fix a 64-bits compilation warning.



git-svn-id: svn://localhost/gambas/trunk@4815 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-09 02:44:17 +00:00
Benoît Minisini
7e3570bfc9 [DEVELOPMENT ENVIRONMENT]
* OPT: Use Application.Busy earlier when opening a project.

[WIKI CGI SCRIPT]
* BUG: Fix links with explicit version.

[INTERPRETER]
* BUG: Setting System.Profile does not crash the interpreter anymore when
  profiling has not been activated by the '-p' command-line flag.

[GB.FORM]
* NEW: FileChooser and DirChooser: It is now possible to move up one 
  directory even if we are on the root of the current bookmark.

[GB.JIT]
* BUG: Fix some warnings.

[GB.XML.RPC]
* BUG: Fix component requirements.


git-svn-id: svn://localhost/gambas/trunk@4806 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-03 22:21:24 +00:00
Benoît Minisini
ff93548e41 [DEVELOPMENT ENVIRONMENT]
* BUG: Profile windows correctly display line numbers now.

[GB.FORM]
* NEW: Hidden transparent SidePanel controls now have a large handle.

[GB.QT4.EXT]
* NEW: Editor: Line numbers are not drawn behind a procedure separator.
* NEW: Editor.NoFolding is a new flag to disable procedure folding support.
* NEW: Editor.LineOffset is a new property to define the line number just
  before the first displayed line (zero by default).


git-svn-id: svn://localhost/gambas/trunk@4803 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-02 14:44:00 +00:00
Benoît Minisini
2170ea1471 [INTERPRETER]
* BUG: Really fix use of static classes as extern function argument.


git-svn-id: svn://localhost/gambas/trunk@4801 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-01 16:41:45 +00:00
Benoît Minisini
46e0ab1dd3 [INTERPRETER]
* BUG: Better class loading fix.


git-svn-id: svn://localhost/gambas/trunk@4799 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-01 10:02:47 +00:00
Benoît Minisini
636387d335 [INTERPRETER]
* BUG: Fix class loading so that circular dependencies between class 
  initialization is possible.
* NEW: Exported classes are now completely initiliazed at startup. It may
  break some things...


git-svn-id: svn://localhost/gambas/trunk@4798 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-01 10:00:35 +00:00
Benoît Minisini
620770ed20 [COMPILER]
* BUG: ByRef keyword is now correctly forbidden in extern functions now.
* BUG: '...' syntax is now correctly forbidden in event description.


git-svn-id: svn://localhost/gambas/trunk@4797 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-01 00:25:45 +00:00
Benoît Minisini
a865d9e227 [INTERPRETER]
* NEW: Support for variable number of arguments in extern functions.
* BUG: Fix use of static classes as extern function argument.

[COMPILER]
* NEW: Support for variable number of arguments in extern functions.

[GB.JIT]
* BUG: The GB_JIT environment variable has really no effect if it is 
  defined but a null string.


git-svn-id: svn://localhost/gambas/trunk@4796 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-06-01 00:18:38 +00:00
Benoît Minisini
c1decfddfd [INTERPRETER]
* BUG: Enumerating the Param class does not leak memory in some cases 
  anymore.


git-svn-id: svn://localhost/gambas/trunk@4788 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-28 08:08:36 +00:00
Benoît Minisini
8fff3e69bd [GB.JIT]
* NEW: Debugging information is printed as soon as the GB_JIT environmental 
  variable is not null.
* NEW: If LLVM version is lesser than 3.1, a warning message is printed. 
  Normally, a crash should occur just after. :-)


git-svn-id: svn://localhost/gambas/trunk@4779 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-25 22:24:13 +00:00
Emil Lenngren
b12caea4f6 [INTERPRETER]
* BUG: Fix IIf() function when its arguments have different types.


git-svn-id: svn://localhost/gambas/trunk@4773 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-24 19:01:04 +00:00
Benoît Minisini
b3eba7f652 [INTERPRETER]
* NEW: You can free a null pointer.


git-svn-id: svn://localhost/gambas/trunk@4772 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-24 12:45:21 +00:00
Emil Lenngren
073a6d9e90 [INTERPRETER]
* OPT: Don't allocate array for jit functions if not necessary.



git-svn-id: svn://localhost/gambas/trunk@4770 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-24 12:27:16 +00:00
Benoît Minisini
326c380ff6 [DEVELOPMENT ENVIRONMENT]
* NEW: Handle the FAST keyword in function declaration.

[COMPILER]
* NEW: Each function can be declared individually FAST. The keyword must be
  the first one on the line.

[GB.EVAL]
* NEW: Handle the FAST keyword in function declaration.


git-svn-id: svn://localhost/gambas/trunk@4769 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-24 12:05:21 +00:00
Benoît Minisini
76f3885a08 [SCRIPTER]
* BUG: Do not crash when compiling a program again.

[INTERPRETER]
* OPT: Make API arrays constant.
* OPT: Comparison methods return back to gbx_exec_loop.c


git-svn-id: svn://localhost/gambas/trunk@4768 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-24 00:31:57 +00:00
Emil Lenngren
406d250935 [GB.JIT]
* NEW: Use special add, sub, mul, compi for JIT Compiler Runtime.



git-svn-id: svn://localhost/gambas/trunk@4766 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-23 23:49:16 +00:00
Benoît Minisini
8056acb60d [GB.DEBUG]
* BUG: gb.debug must not be hidden, stupid!


git-svn-id: svn://localhost/gambas/trunk@4765 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-23 23:40:26 +00:00
Benoît Minisini
8e6dbfa273 [INTERPRETER]
* OPT: Rebirth of _SUBR_add, _SUBR_sub and _SUBR_mul in 'gbx_exec_loop.c'.
* NEW: The code of these functions is now in a shared header named '
  gbx_subr_common.h'.


git-svn-id: svn://localhost/gambas/trunk@4764 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-23 23:39:02 +00:00
Benoît Minisini
327add9439 [GB.DEBUG]
* NEW: The component is hidden now.
* BUG: Do not crash anymore when profiling Eval().

[GB.JIT]
* NEW: The component is hidden now.


git-svn-id: svn://localhost/gambas/trunk@4763 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-23 23:23:00 +00:00
Benoît Minisini
6b2e5d0776 [CONFIGURATION]
* BUG: Add gb.jit directory in the top Makefile.am so that it is compiled.

[INTERPRETER]
* NEW: System.Profile now only deactivate the instruction profiling. 
  Function calls keep being profiled. That way the IDE can read the profiled
  output without crashing!


git-svn-id: svn://localhost/gambas/trunk@4762 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-23 21:35:58 +00:00
Benoît Minisini
947e201117 [INTERPRETER]
* BUG: Now System.Profile has no effect if the project has not been started 
  in profiling mode from the IDE.


git-svn-id: svn://localhost/gambas/trunk@4761 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-23 20:15:32 +00:00
Emil Lenngren
3c912da3db [INTERPRETER]
* NEW: Switch to JIT compiler if available, and make it able to talk to gb.jit.
* BUG: GP must be NULL for new void stack frames.

[COMPILER]
* NEW: 'Fast' keyword means the class should be JIT-compiled.

[GB.JIT]
* NEW: JIT Compiler.



git-svn-id: svn://localhost/gambas/trunk@4759 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-23 19:26:15 +00:00
Benoît Minisini
1b33c5dc1a [DEVELOPMENT ENVIRONMENT]
* BUG: CFlt() is now replaced by CFloat() when converting a Gambas 2 project.

[COMPILER]
* BUG: The token following a CONST keyword is now assumed to always be an 
  identifier.


git-svn-id: svn://localhost/gambas/trunk@4758 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-23 18:59:30 +00:00
Benoît Minisini
658b01475f [DEVELOPMENT ENVIRONMENT]
* OPT: Use Stream.Lines enumeration instead of LINE INPUT. It is a little bit 
  faster.

[COMPILER]
* BUG: Fix CASE LIKE syntax. Now all CASE LIKE arguments are compared with 
  the LIKE operator. Not just the first one.

[GB.FORM]
* NEW: FileChooser now can handle *.tgz archives.
* NEW: GridView: If the Grid property is FALSE, do not draw row and column
  separators.

[GB.GTK]
* BUG: Fix cached drawing areas.
* BUG: Fix mouse event management for controls having scrollbars.
* BUG: Fix cursor management for DrawingArea.


git-svn-id: svn://localhost/gambas/trunk@4755 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-22 23:32:38 +00:00
Benoît Minisini
d356f49366 [DEVELOPMENT ENVIRONMENT]
* NEW: Some little redesign of the profiling GUI.

[EXAMPLES]
* OPT: Little optimization in GameOfLife example.

[INTERPRETER]
* NEW: System.Profile is a new property to disable or enable the
  profiling at run time. Profiling can only be enabled if debugging
  information are available.

[GB.DEBUG]
* NEW: Abort the program if the profile file is bigger than 512M.


git-svn-id: svn://localhost/gambas/trunk@4753 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-21 22:13:58 +00:00
Benoît Minisini
9fa35120a4 [DEVELOPMENT ENVIRONMENT]
* BUG: Profiling: The total function duration is now the same as the sum of 
  each line of code duration.

[WEBSITE MAKER]
* NEW: Add a "Release Notes" link in the menu panel.

[GB.DEBUG]
* NEW: Optimize the profile file format a bit.


git-svn-id: svn://localhost/gambas/trunk@4751 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-21 11:35:13 +00:00
Benoît Minisini
70afe05d8d [DEVELOPMENT ENVIRONMENT]
* NEW: Handle new format of profile files.

[INTERPRETER]
* NEW: ON ... GOTO and ON ... GOSUB instructions.

[WEBSITE MAKER]
* NEW: An explicit link button that displays the 'news' page.

[COMPILER]
* NEW: ON ... GOTO and ON ... GOSUB instructions.

[GB.DEBUG]
* NEW: New format for profile, more compact and faster to read.


git-svn-id: svn://localhost/gambas/trunk@4748 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-21 01:09:35 +00:00
Benoît Minisini
b5c6820986 [INTERPRETER]
* NEW: Allow to profile time spent waiting for events.

[GB.DEBUG]
* BUG: New profile file format that allows to profile lines of code that
  are function calls.

[GB.GTK]
* NEW: Profile time spent waiting for events.

[GB.QT4]
* NEW: Profile time spent waiting for events.


git-svn-id: svn://localhost/gambas/trunk@4747 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-20 17:58:34 +00:00
Benoît Minisini
f93affd8e9 [DEVELOPMENT ENVIRONMENT]
* NEW: Display callees and callers in the profile window.
* NEW: Display profiling of each line of code.

[INTERPRETER]
* NEW: Activate profiling at the line of code level. Beware, things become
  slower!

[GB.DEBUG]
* NEW: Fix profiling at the line of code level.

[GB.FORM]
* NEW: GridView: Add a Scroll() method.

[GB.QT4.EXT]
* NEW: Editor: Add a ScrollBar property.
* NEW: Editor: Add ScrollX and ScrollY properties.
* NEW: Editor: Add a Scroll method.


git-svn-id: svn://localhost/gambas/trunk@4745 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-20 02:21:43 +00:00
Benoît Minisini
be04525e53 [INTERPRETER]
* BUG: Html$() works correctly again.


git-svn-id: svn://localhost/gambas/trunk@4744 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-19 23:10:12 +00:00
Benoît Minisini
e95ebcae24 [INTERPRETER]
* NEW: Base64() is a new function to encode a string in Base64.
* NEW: UnBase64() is a new function to decode a Base64 string.
* BUG: Eval() is correctly profiled now.

[COMPILER]
* NEW: Base64() is a new function to encode a string in Base64.
* NEW: UnBase64() is a new function to decode a Base64 string.


git-svn-id: svn://localhost/gambas/trunk@4743 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-19 21:35:26 +00:00
Benoît Minisini
8b6cf089ae [INTERPRETER]
* NEW: gb.ShortDate and gb.MediumDate predefined date formats now always 
  display years with four digits.


git-svn-id: svn://localhost/gambas/trunk@4741 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-19 12:15:51 +00:00
Benoît Minisini
07387ff660 [DEVELOPMENT ENVIRONMENT]
* NEW: Add some debugging options directly in the 'Debug' menu.
* NEW: A new option to activate the profiling of the debugged project.
* NEW: Profiling windows. Not finished yet.

[INTERPRETER]
* BUG: Fix a crash that could occur if a error is raised inside an event 
  handler.
* NEW: Support for profiling.
* BUG: Fix a crash that could occur if a error is raised inside a signal
  callback.

[GB.DEBUG]
* NEW: Support for profiling.

[GB.FORM]
* NEW: GridView now raises a Sort event when the sort properties are 
  changed.
* BUG: Fix a crash when changing the IconPanel Count property.

[GB.GTK]
* BUG: Fix the Font.Copy() method.


git-svn-id: svn://localhost/gambas/trunk@4740 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-19 02:55:05 +00:00
Benoît Minisini
8ad1afe673 [CONFIGURATION]
* NEW: Print disabled components individually.

[GB.QT4]
* BUG: ComboBox background color is correctly handled now.


git-svn-id: svn://localhost/gambas/trunk@4739 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-18 01:19:15 +00:00
Benoît Minisini
3f26a4e538 [INTERPRETER]
* BUG: Disable debugging messages in signals management routines.


git-svn-id: svn://localhost/gambas/trunk@4736 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-16 22:47:16 +00:00
Benoît Minisini
217c3d9f94 [INTERPRETER]
* BUG: Activate debugging messages in signal management routines.

[GB.GTK]
* NEW: Implement the _NET_MOVERESIZE_WINDOW way of moving windows.
* BUG: Window state (Minimized, Maximized and FullScreen properties) is now 
  accurately returned.


git-svn-id: svn://localhost/gambas/trunk@4735 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-16 21:42:28 +00:00
Benoît Minisini
4a52486b1d [INTEPRETER]
* BUG: Fix race conditions in signals management routines.


git-svn-id: svn://localhost/gambas/trunk@4734 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-16 18:05:57 +00:00
Benoît Minisini
c095cd3f98 [EXAMPLES]
* NEW: PhotoTouch and MediaPlayer examples now use the gb.gui component.

[GB.GTK]
* NEW: Make GTK+ controls borderless, so that they are "transparent" like 
  gb.qt4 controls. This is work in progress! The PhotoTouch example now 
  works correctly with gb.gtk, the brightness dialog excepted.
* BUG: ScrollBars are correctly initalized now.
* BUG: Container.Find() does not take hidden controls into account anymore.

[GB.IMAGE]
* BUG: Image.Opacity() can handle images with premultiplied alpha correctly 
  now.

[GB.FORM]
* BUG: IconView: Item text is ellipsized without printing GTK+ warnings 
  anymore.


git-svn-id: svn://localhost/gambas/trunk@4729 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-15 01:22:45 +00:00