Commit graph

30 commits

Author SHA1 Message Date
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
Benoît Minisini
dd3b512daf [CONFIGURATION]
* NEW: Update copyrights.


git-svn-id: svn://localhost/gambas/trunk@4384 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2011-12-31 02:39:20 +00:00
Benoît Minisini
470807e659 [INTERPRETER]
* BUG: Fix Single constants when directly read, not through an object 
  reference.


git-svn-id: svn://localhost/gambas/trunk@4373 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2011-12-30 21:41:29 +00:00
Benoît Minisini
0ab71b28bf [INTERPRETER]
* OPT: Don't use glibc memcmp() to compare strings. My own routine is a 
  little faster according to valgrind.
* OPT: The UTF-8 String class routines Left(), Mid() and Right() have been 
  optimized. The positions of the first 256 characters of the last string 
  processed by the String class are cached.
* OPT: Some native methods can be called like any other native subroutines.
  But that can be used only inside the interpreter, not in a component.
* OPT: The '&' operator is faster now when it takes two arguments only (the
  most frequent case).


git-svn-id: svn://localhost/gambas/trunk@4106 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2011-09-08 16:01:36 +00:00
Benoît Minisini
2fbf67cb29 [CONFIGURATION]
* NEW: Update FSF address in every source file.


git-svn-id: svn://localhost/gambas/trunk@3870 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2011-06-03 00:51:09 +00:00
Benoît Minisini
b936c83f0d [CONFIGURATION]
* NEW: Update copyright strings.

[DEVELOPMENT ENVIRONMENT]
* NEW: Display menu shortcuts inside the form editor.


git-svn-id: svn://localhost/gambas/trunk@3670 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2011-03-21 00:04:10 +00:00
Benoît Minisini
224775b68e [INTERPRETER]
* NEW: Support for Pointer arithmetic (addition and substraction).


git-svn-id: svn://localhost/gambas/trunk@3452 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2011-01-10 22:56:30 +00:00
Benoît Minisini
8873a0e1cc [DEVELOPMENT ENVIRONMENT]
* BUG: Correctly handle all compiler error messages.

[INTERPRETER]
* NEW: Full management of the Single datatype.
* BUG: VarPtr() now works on Single local variables.
* BUG: Remove useless Tag property. It is defined in the Stream class now.
* BUG: Correctly free the Tag property in the Stream class.

[GB.GTK]
* BUG: Rich-text string management has been fixed. The ampersand character, 
  the "&", ">" and "<" entites are correctly interpreted now.

[GB.NET.CURL]
* BUG: Remove useless Tag property. It is defined in the Stream class now.

[EXAMPLES]
* NEW: The WebBrowser example has a download manager now.


git-svn-id: svn://localhost/gambas/trunk@3296 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-11-16 01:49:18 +00:00
Benoît Minisini
32f6172c89 [DEVELOPMENT ENVIRONMENT]
* BUG: Fix a crash is structure declaration analyze.

[INTERPRETER]
* NEW: Support for static array of structures. A static array of structure 
  'MyStruct' will create a temporary object whose class is '$MyStruct[]'. 
  That class does not inherit 'Array', and has only a few methods of the 
  Array class.
* NEW: Byte[].ToString() is a new method to convert a byte array to a 
  string. If no length is specified, ToString() assumes that the byte array
  is a zero-terminated string.
* NEW: Byte[].FromString() is a new method that fills a byte array with the
  contents of a string.

[COMPILER]
* NEW: Declaration of static arrays of structures is allowed.


git-svn-id: svn://localhost/gambas/trunk@3031 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-07-07 22:06:05 +00:00
Benoît Minisini
727701cdeb [CONFIGURATION]
* NEW: Bytecode version has been incremented, so all projects need to be 
  recompiled!

[INTERPRETER]
* OPT: Many little optimizations.
* OPT: Avoid calls to setjmp() when it is possible.
* OPT: Do not encode the stack drop inside the CALL instruction. 
  Executables are a bit larger, but a little speed is gained.

[COMPILER]
* OPT: Do not encode the stack drop inside the CALL instruction. 
  Executables are a bit larger, but a little speed is gained.


git-svn-id: svn://localhost/gambas/trunk@3013 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-06-18 00:14:53 +00:00
Benoît Minisini
a32166b185 [INTERPRETER]
* OPT: Many optimizations again.
* BUG: Fix an unitialized variable in string to float conversion routine.
* BUG: Handle extern functions that return a pointer.


git-svn-id: svn://localhost/gambas/trunk@3003 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-06-13 12:03:29 +00:00
Benoît Minisini
405f8f89fe [INTERPRETER]
* OPT: Some optimizations again in memory allocator, object releasing 
  routine, arithmetic operators, class variable reader, line-by-line stream
  reader, class symbol sort routine.
* BUG: Using constant strings inside variant, like database drivers, works
  correctly again and does not crash the interpreter anymore.


git-svn-id: svn://localhost/gambas/trunk@2996 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-06-08 23:08:04 +00:00
Benoît Minisini
b3db598050 [DEVELOPMENT ENVIRONMENT]
* BUG: Breakpoints are correctly reset when opening a new project.

[INTERPRETER]
* BUG: The GB.NewString(), GB.NewZeroString() and GB.TempString() API 
  signature has changed. All components have been updated accordingly.
* OPT: Many optimizations to speed up the interpreter.

[GB.EVAL]
* NEW: During syntax highlighting, the first character of class names is
  automatically converted to uppercase.


git-svn-id: svn://localhost/gambas/trunk@2992 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-06-04 23:48:53 +00:00
Benoît Minisini
2c2ad90faf [INTERPRETER]
* OPT: Start some optimizations in conversion routines.


git-svn-id: svn://localhost/gambas/trunk@2989 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-06-02 23:23:50 +00:00
Benoît Minisini
74e8fc7fed [INTERPRETER]
* OPT: Many branch prediction optimizations.


git-svn-id: svn://localhost/gambas/trunk@2951 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-19 20:18:23 +00:00
Benoît Minisini
a2850ebc91 [CONFIGURATION]
* BUG: Do not compile database manager anymore, it has been deprecated.
* BUG: Compile the gb.dbus component.

[INTERPRETER]
* NEW: Pointer is a real datatype now.
* NEW: Static arrays came back. They are now like real array classes, 
  except that they are not resizable.
* NEW: IsPointer() is a new function that tells if an expression is a 
  pointer.
* NEW: All XXXX?() function synonymous were removed. Use the IsXXXX() 
  version instead.
* NEW: Remove now useless source files.

[COMPILER]
* NEW: Static arrays came back, with actually the same syntax as before.

[EXAMPLES]
* BUG: Fix the examples according to the new array syntax.



git-svn-id: svn://localhost/gambas/trunk@2949 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-19 12:43:57 +00:00
Benoît Minisini
47d0aa711c [CONFIGURATION]
* NEW: Architecture detection.
* NEW: Updated libtool macros.

[DEVELOPMENT ENVIRONMENT]
* NEW: Highlight the current procedure in the editor procedure popup.

[INTERPRETER]
* BUG: Alignment fixes for the ARM architecture.

[GB.DRAW]
* NEW: Start implementing the new Paint interface.

[GB.GTK]
* BUG: GridView.Clear is now correctly implemented.


git-svn-id: svn://localhost/gambas/trunk@2505 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2009-12-24 02:02:05 +00:00
Benoît Minisini
83d84d7ee5 [DEVELOPMENT ENVIRONMENT]
* NEW: Support for the Index class interface changes.
* BUG: CSV import does not crash anymore when the imported file size is 
  lower than 64K.
* BUG: Do not crash if a component is not installed.

[INTERPRETER]
* BUG: Error.Text does not split the error message and its argument in 
  debug mode.
* BUG: Fix many breaks in strict aliasing rules.

[SCRIPTER]
* BUG: Do not crash if a component is not installed.

[GB.DB]
* NEW: Better support for postgresql schemas.
* NEW: Connection.Quote() takes one more optional boolean argument that 
  tells if we want to quote a table name. In that case, schemas are taken 
  into account.
* NEW: Connection.FormatBlob() is a new function that returns a string that 
  can be used as a blob contents in a SQL expression.
* NEW: Index.Fields now returns a string array of index fields.
* NEW: Index.Add() second argument is now a string array of index fields.


git-svn-id: svn://localhost/gambas/trunk@2442 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2009-11-28 01:22:00 +00:00
Benoît Minisini
f65184802d [CONFIGURATION]
* NEW: Update copyright and license string in all source files.


git-svn-id: svn://localhost/gambas/trunk@2241 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2009-08-17 10:41:51 +00:00
Benoît Minisini
85246fbaaa [CONFIGURATION]
* NEW: Upgrade libtool autoconf macros and libltdl sources to the 1.5.26 
  version.

[DEVELOPMENT ENVIRONMENT]
* BUG: Control and window dimensions can go up to 4096x4096 pixels.
* BUG: When unchecking GUI components in a project, the edited forms are 
  automatically closed.
* BUG: Do not use the form icon on form class editors when refreshing the 
  project.
* BUG: In the icon editor, filling with a transparent color won't enter an 
  infinite loop anymore.
* BUG: Selecting the "Collection" word while debugging does not crash the 
  IDE anymore.
* NEW: Pressing Escape now closes a debugging window.
* BUG: The 'Minimize on run' option works correctly now.

[INTERPRETER]
* BUG: SUPER now works inside overriden static methods.

[GB.DB.ODBC]
* BUG: Handle ODBC drivers that can return the number of records in a 
  query better.

[GB.DEBUG]
* BUG: If there is an I/O error between a debugged process and the IDE, the
  process is aborted.
* BUG: Evaluating a class name returns better information now.

[GB.EVAL]
* BUG: Highlight.Analyze correctly handle code lines having non ASCII 
  characters inside.

[GB.FORM]
* BUG: The Balloon does not take the focus anymore.

[GB.FORM.MDI]
* NEW: Starting to enhance the Action class to provide shortcuts and 
  toolbar configuration dialog. Does nothing at the moment!

[GB.GTK]
* BUG: Fix a leak in font objects management.
* BUG: Picture.Load() yet loads an image, but internally converts it to 
  a pixmap. It speeds up following draws based on this picture.
* BUG: Startup forms hidden at design time are not shown automatically 
  anymore.
* NEW: The Action class is now shared with gb.qt by using a symbolic link.

[GB.IMAGE.INFO]
* NEW: New component to get information about an image file without having 
  to fully load it.

[GB.QT]
* BUG: Disable automatic extra indent of Labels.
* BUG: Startup forms hidden at design time are not shown automatically 
  anymore.
* BUG: Don't allow widgets to be destroyed while processing non-input 
  events.


git-svn-id: svn://localhost/gambas/trunk@1747 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-12-28 19:01:39 +00:00
Benoît Minisini
c47cb3d8e4 [DEVELOPMENT ENVIRONMENT]
* BUG: Fix some use of boolean value incrementing.

[INTERPRETER]
* BUG: Class declared with the 'Class' keyword are alwyas global.
* BUG: A stupid hack in gb.db requires that the value is always stored 
  just after the datatype in the VALUE and GB_VALUE structures.

[COMPILER]
* BUG: Class declared with the 'Class' keyword are alwyas global.

[GB.DESKTOP]
* NEW: Desktop.Passwords is a new property that allows to store and 
  retrieve passwords in the KDE wallet or the GNOME keyring, according to 
  the running desktop. Only KDE and GNOME are supported. I don't know if
  XFCE has something equivalent...
  
[GB.DESKTOP.GNOME]
* NEW: This new component is automatically loaded by gb.desktop when the
  GNOME keyring is requested.

[GB.FORM]
* BUG: Fix some use of boolean value incrementing.

[GB.FORM.MDI]
* NEW: The Workspace popup menu now sort the windows by title.

[GB.QT]
* NEW: XEMBED support was upgraded to the 1.3 version of QtXEmbed classes.
* BUG: Fix some use of boolean value incrementing.


git-svn-id: svn://localhost/gambas/trunk@1373 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-05-13 12:52:06 +00:00
Benoît Minisini
32ae591a4c [INTERPRETER]
* BUG: Some values structures padding.


git-svn-id: svn://localhost/gambas/trunk@1229 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-03-22 23:52:49 +00:00
Benoît Minisini
fb43110a10 [INTERPRETER]
* BUG: NEW Observer(NULL) now raises an error, and does not crash anymore.
* BUG: Padding of values structures.


git-svn-id: svn://localhost/gambas/trunk@1228 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-03-22 21:34:50 +00:00
Benoît Minisini
a4707d329f [DEVELOPMENT ENVIRONMENT]
* BUG: Importing a form now correctly associates the imported pictures.

[INTERPRETER]
* BUG: Fixed some structure alignment issues.


git-svn-id: svn://localhost/gambas/trunk@1226 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-03-21 15:39:46 +00:00
Benoît Minisini
c9dd8bcefe [INTERPRETER]
* BUG: Fixes the string management optimizations.
* OPT: Optimization of the string search function (InStr, RInstr).
* OPT: Optimization of the Split() function.
* OPT: Optimization of local variables initialization when entering a
  method.

[GB.NET.SMTP]
* BUG: Fixes the Makefile.am file so that the component compiles if the 
  glib library is installed in a non-standard directory.

[GB.QTE.EXT]
* BUG: Fixes the gb.qte.ext.component file.



git-svn-id: svn://localhost/gambas/trunk@1203 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-03-19 23:50:34 +00:00
Benoît Minisini
3d80d44a4a [WIKI CGI SCRIPT]
* BUG: Some little layout fixes.

[INTERPRETER]
* OPT: Read the user home directory only if the current uid has changed. 
  Otherwise, cache it into memory.
* OPT: String memory management has been optimized.
* OPT: Some little optimizations there and there.
* NEW: A new interpreter option, "-k", that prevents shared library to be
  unloaded until the process terminates. That can be useful when 
  debugging with valgrind.
* OPT: System.Language property was optimized.
* OPT: The gb_error.c file is now compiled with -O3.

[GB.GTK]
* BUG: Disable the management of input methods in TextBox and TextArea
  controls, so that the input methods are not disturbed. Consequently;
  SCIM and Bridged SCIM work again.
* BUG: You can read keyboard events properties in a Form KeyPress or 
  KeyRelease event handler correctly now.



git-svn-id: svn://localhost/gambas/trunk@1199 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-03-19 14:32:30 +00:00
Benoît Minisini
5f900c0b68 [DEVELOPMENT ENVIRONMENT]
* NEW: English and french tips were updated. A new tip was added.
* NEW: Files that were opened at project close are automatically reopened
  when the project is loaded again.
* NEW: A warning message is displayed when the GNU translation tools are
  not installed.
* BUG: The code editor method combo-box is correctly updated now.
* BUG: Some fixes in the automatic completion.
* BUG: Replace points by dash in the name of packages generated by the IDE
  packager.
* NEW: Updated russian translation
* NEW: Updated french translation

[DATABASE MANAGER]
* NEW: Updated russian translation

[EXAMPLES]
* BUG: Fixed the Gravity and the GameOfLife examples so that they do not
  use public form controls anymore.

[INTERPRETER]
* OPT: Many optimizations in the string substitution routines, the 
  internal datatype conversions, the INPUT and LINE INPUT instructions, the 
  error messages generation, the object and string reference counting, and
  the memory allocation routines.
* NEW: Opening a device file in direct mode (FOR READ/WRITE) is now 
  automatically non blocking.
* OPT: Lof() now only tries its different methods (ioctl and lseek) once.
* BUG: Val() now ignores thousand separators characters at the end of the 
  number.
* NEW: A new flag for enabling the stack trace generation at each error.

[GB.DEBUG]
* BUG: The gb.debug component interface declaration was not 64-bits aware.

[GB.EVAL]
* BUG: The Highlight.Purge() method now correctly deals with non-ASCII 
 characters.

[GB.FORM]
* BUG: TableView.Edit() does not raise a "read-only combo-box" error 
  anymore.
  
[GB.FORM.DIALOG]
* BUG: Dialog buttons now are never cut.

[GB.GTK]
* BUG: Cached drawing areas are correctly redrawn now.
* BUG: Loading big images now works correctly. There is apparently a bug 
  in the GTK+ image loader, and I found a workaround.
* BUG: Message boxes correctly display the text of their buttons now.

[GB.QT]
* BUG: The Open, and initial Move and Resize event of embedded forms are 
  now always raised when you call the Show method or if you set the Visible
  property. Before, it was raised when the embedded form was actually 
  shown.

[GB.SETTINGS]
* NEW: Settings are now stored in ~/.config/gambasX, where X is the 
  gambas version number.
* BUG: Strings are correctly quoted inside the settings file now.

[GB.WEB]
* NEW: Application.Protocol is a new property that allows to tell the 
  component that the protocol is not necessarily "http".


git-svn-id: svn://localhost/gambas/trunk@1153 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-03-11 13:29:47 +00:00
Benoît Minisini
ec7ab0c811 [CONFIGURATION]
* NEW: Support for installing control icons in native components.

[64 BITS]
* BUG: Fixed some uses of long datatype in the gb.qt.ext component, the 
  Splitter and the Container class of gb.qt.
* BUG: Fixed some declarations in the gb.net.curl component.
* NEW: Pointer[] is a new class that represents an array of Pointer values.
* BUG: All gb.qt, gb.gtk and gb.desktop methods that deal with X11 Window 
  identifiers now use Pointer and Pointer[] datatypes instead of Integer 
  and Integer[].
* BUG: The Embedder example was updated according to the change above.

[INTERPRETER]
* BUG: Fixed the static array management that was broken by the 64 bits
  changes.

[GB.DEBUG]
* BUG: Debug.Write now does nothing if Debug.Start has not been called.

[GB.GTK]
* BUG: Fixed the implementation of the Message class that was broken.
* BUG: Fixed a crash in the Watcher class.
* BUG: Fixed the Image.Flip() and Image.Mirror() methods.
* BUG: Fixed a potential crash in timer management.
* NEW: The GridView Select event was implemented.


git-svn-id: svn://localhost/gambas/trunk@1033 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-01-23 19:56:18 +00:00
Benoît Minisini
4c02c6d338 ******** Merged /branches/64bits r918:1003 into /trunk
[CONFIGURATION]
* NEW: 64 bits port.

[EXAMPLES]
* BUG: Fixed the AnalogWatch example.

[WIKI CGI SCRIPT]
* NEW: Some little cosmetic changes.

[INTERPRETER]
* NEW: The extern function implementation has been redesigned and is now
  based on libffi, so that it works on 64 bits system. Because of a flaw in
  the compiler design, projects that use the Pointer datatype must be
  recompiled to be used on a 64 bits system. This flaw will be fixed in
  Gambas 3.
* OPT: Put some tables into read-only memory. About 1000 bytes are saved
  for each running interpreter, except the first one.
* BUG: Does not crash anymore if a component cannot be loaded.
* NEW: Spanish translation updated.
* NEW: A new interpreter API for returning a pointer.

[COMPILER]
* BUG: Correctly compiles LONG constants inside code.

[GB.DEBUG]
* BUG: Compiles and links the gb.debug components with the thread
  libraries.

[GB.DB.SQLITE3]
* BUG: Getting the primary index of a table without primary index is safe
  now.

[GB.GTK]
* BUG: Modified the GLib priority of watched descriptors, as the main loop 
  could enter in a loop in which user interface events were not managed.
* BUG: Message boxes use application title without crashing now.

[GB.OPENGL]
* BUG: Disable dead code.

[GB.QT.EXT]
* BUG: TextEdit.TextWidth and TextEdit.TextHeight were not declared as
  read-only properties.

[GB.XML.XSLT]
* BUG: XSLT class is now declared as being not creatable.


git-svn-id: svn://localhost/gambas/trunk@1006 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-01-17 21:39:26 +00:00
Benoît Minisini
ba19f3c1dd * Copy https://gambas.svn.sourceforge.net/svnroot/gambas/2.0 to https://gambas.svn.sourceforge.net/svnroot/gambas/gambas
git-svn-id: svn://localhost/gambas/trunk@893 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2007-12-30 16:41:49 +00:00