* 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
* 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
* 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
* BUG: Don't optimize the "_operators" interface when using anonymous
objects!
git-svn-id: svn://localhost/gambas/trunk@4944 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: When parsing data, extra white-spaces at the beginning and the end of text nodes are correctly ignored.
* BUG: When they are null, reading TagName and Prefix properties from XmlElement does not crash anymore.
git-svn-id: svn://localhost/gambas/trunk@4943 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* 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
* OPT: Use the Gambas stack to store GoSub data instead of allocating
new arrays all the time. Up to 10 times faster!
git-svn-id: svn://localhost/gambas/trunk@4937 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Remove the FloatVector and ComplexVector classes. Now the Vector
class handle vector of Float or Complex transparently.
git-svn-id: svn://localhost/gambas/trunk@4936 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* 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
* 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
* NEW: Added a new XmlElement.ClearChildren method, that removes all the children of an element.
* BUG: Setting the XmlElment.TextContent property now correctly remove all children of an element.
* BUG: Setting the XmlElment.TextContent with a null string has now no effect, as mentioned in the W3C specifications.
git-svn-id: svn://localhost/gambas/trunk@4930 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* 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
* BUG: The TextContent property now correctly ignores the contents of comment nodes, as mentioned in the W3C specifications.
git-svn-id: svn://localhost/gambas/trunk@4928 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Getting an attribute that doesn't exist doesn't crashes anymore, it returns a null string instead.
* BUG: The string comparison mode argument is now correctly handled by XmlElement.GetAttribute().
git-svn-id: svn://localhost/gambas/trunk@4927 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* 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
* 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
* NEW: Add Complex.Neg() to return the negative of a complex number.
* NEW: Add Complex.Inv() to return the inverse of a complex number.
git-svn-id: svn://localhost/gambas/trunk@4923 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Add a Complex.Conj() method to return the conjugate of a complex number.
git-svn-id: svn://localhost/gambas/trunk@4922 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* 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
* BUG: The GetAttribute() method now correctly returns the attribute value.
git-svn-id: svn://localhost/gambas/trunk@4917 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* 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
* BUG: The encoding is now correctly specified in the document header.
git-svn-id: svn://localhost/gambas/trunk@4915 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* 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
* 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
* NEW: Complex class has been cleaned up.
* BUG: Fix array creation in CComplexPolynomial.ComplexSolve().
git-svn-id: svn://localhost/gambas/trunk@4911 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* OPT: Do not use the UTF-8 string methods anymore when parsing text opened with the XmlReader.FromString() method, they are too slow. This also may solve UTF-8 chars reading problems.
git-svn-id: svn://localhost/gambas/trunk@4910 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* 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
* BUG: Do not display spurious 'missing component' messages in the project
property dialog.
git-svn-id: svn://localhost/gambas/trunk@4905 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* 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
* BUG: Do not crash when a component required by a library is missing.
git-svn-id: svn://localhost/gambas/trunk@4901 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* 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
* NEW: Request.Debug is a new property to activate the debugging mode of
the Request class.
* NEW: Request.Post.Contents returns the contents of the last POST request,
provided that the debugging mode has been activated.
git-svn-id: svn://localhost/gambas/trunk@4899 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: ScrollView internal visible flag is correctly set, and so the
Hovered property returns the right value.
git-svn-id: svn://localhost/gambas/trunk@4898 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* 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
* 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