Commit graph

35 commits

Author SHA1 Message Date
gambas
e7898916e9 Replace the Array.Sorted property by explicit FindSorted(), ExistSorted()... methods.
[INTERPRETER]
* BUG: Replace the Array.Sorted property by explicit FindSorted(), ExistSorted()... methods.
2021-02-09 23:36:09 +01:00
gambas
991695e493 Array access is now about 15% faster.
[INTERPRETER]
* OPT: Array access is now about 15% faster.
2021-02-08 21:45:29 +01:00
gambas
b092a95132 Fix static array management.
[COMPILER]
* BUG: Allow static arrays to be used with the point operator.

[INTERPRETER]
* BUG: Fix static array management. They are not read-only anymore. Only methods that want to modify the size of the array are forbidden, as well as the ReadOnly property.
2019-11-30 06:29:17 +01:00
gambas
f08ce22cdc Fix support of read-only arrays.
[INTERPRETER]
* BUG: Read-only arrays are now really read-only.

[GB.JIT]
* BUG: Support for read-only arrays.
2019-09-26 14:25:37 +02:00
gambas
a6eb422756 Array.Shuffle() is a new method that randomly shuffles an array using Fisher–Yates algorithm.
[INTERPRETER]
* NEW: Array.Shuffle() is a new method that randomly shuffles an array using Fisher–Yates algorithm.
2019-03-20 15:08:16 +01:00
gambas
d668dadcf5 Array.SortUsing() is a new method that sorts an array according to the sort order defined by another array.
[INTERPRETER]
* NEW: Array.SortUsing() is a new method that sorts an array according to the sort order defined by another array.
2019-03-06 03:55:48 +01:00
gambas
9726b53bb3 Add First and Last read-write properties to arrays.
[INTERPRETER]
* NEW: Add First and Last read-write properties to arrays.
2018-11-09 00:06:20 +01:00
gambas
09a0573e61 Replace my old sourceforge mail address by the new one.
[CONFIGURATION]
Replace my old sourceforge mail address by the new one.
2018-02-12 02:53:46 +01:00
Benoît Minisini
b225eba20f [CONFIGURATION]
* NEW: Update copyright year in all source files.


git-svn-id: svn://localhost/gambas/trunk@8056 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-01-13 03:29:42 +00:00
Benoît Minisini
0c9d0a4585 [INTERPRETER]
* OPT: Array accessors have been optimized. The 'sort' benchmark is now 25% 
  faster.


git-svn-id: svn://localhost/gambas/trunk@6605 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-11-02 23:09:04 +00:00
Benoît Minisini
2daefc5fa0 [INTERPRETER]
* BUG: Fix maximum number of array declaration in the same class.
* NEW: Array and Collection constructor operator [ ... ] now can take any 
  number of arguments. It is only limited by the maximum function size, 
  which leads for example to about 32000 elements for a short array.


git-svn-id: svn://localhost/gambas/trunk@6110 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-01-27 23:46:37 +00:00
Benoît Minisini
c9ca5ab982 [CONFIGURATION]
* NEW: Update copyright year to 2013.

[GB.FORM]
* NEW: ImageView is a new control that allows to view an image inside a 
  scrolled view, at different zoom levels.
* BUG: FileProperties now works correctly if 'gb.desktop' is not used.
* NEW: The FileProperties preview tab now uses an ImageView control and has
  a toolbar to zoom the preview.
* BUG: Add the 'linux' and 'gnu' icon in the stock icon list.


git-svn-id: svn://localhost/gambas/trunk@5770 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2013-08-03 15:38:01 +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
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
e8f2747c1a [DEVELOPMENT ENVIRONMENT]
* BUG: The "Browse again" button in the search list now does nothing if 
  there is no search string defined.

[INTERPRETER]
* NEW: Object[].FindByRef and Object[].ExistByRef are two new methods that
  do not take the _compare special method into account. They compare 
  objects by reference only.

[GB.DB.FORM]
* NEW: DataBrowser.Border is a new property to define if a border should be
  displayed or not.
* BUG: Fix DataBrowser layout for all orientations.

[GB.DB.MYSQL]
* BUG: Try to make connection timeout work as expected, without success.
  It seems sticked to be at least one minute. :-(

[GB.FORM]
* BUG: IconView now behaves correctly when an item has no text. It uses there
  new array methods that search items by reference only.
* NEW: TabPanel.Highlight is a new property that highlight the current 
  selected tab button.
* NEW: TabPanel.Closable is a new property that works exactly like 
  TabStrip.Closable.
* BUG: TabPanel.Remove() now works correctly.
* NEW: ScrollArea is more clever with mouse wheel events.

[GB.FORM.MDI]
* NEW: Workspace now uses a TabPanel instead of a TabStrip.


git-svn-id: svn://localhost/gambas/trunk@4342 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2011-12-27 13:39:23 +00:00
Benoît Minisini
19b6e1c34d [INTERPRETER]
* BUG: Array Reverse() method now returns the reversed array.


git-svn-id: svn://localhost/gambas/trunk@4255 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2011-11-24 21:45:21 +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
dc5f2a344b [DEVELOPMENT ENVIRONMENT]
* BUG: Support for multi-dimensional arrays in the debugger.

[INTERPRETER]
* BUG: Support for multi-dimensional arrays in the debugger.

[GB.DEBUG]
* BUG: Support for structures.
* BUG: Support for multi-dimensional arrays in the debugger.


git-svn-id: svn://localhost/gambas/trunk@3654 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2011-03-16 22:16:19 +00:00
Benoît Minisini
7998ec6dc3 [INTERPRETER]
* BUG: Support for MkPointer$().
* NEW: Embedded arrays of structures array write accessor has been 
  implemented.


git-svn-id: svn://localhost/gambas/trunk@3453 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2011-01-13 18:56:52 +00:00
Benoît Minisini
662e4282bf [INTERPRETER]
* NEW: The argument of Byte@(), Short@()... functions now can be a string.
  Then the address of the string in memory is used.
* BUG: Structures allocated with the NEW operator are correctly freed now.
* NEW: READ and WRITE now can deal with structures and embedded arrays.
* NEW: Dir?() synonymous has been removed.


git-svn-id: svn://localhost/gambas/trunk@3322 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-11-26 20:30:58 +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
a8f12f8e54 [GB.FORM]
* BUG: Use a default question icon for Message.Question icon.


git-svn-id: svn://localhost/gambas/trunk@2987 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-30 19:37:40 +00:00
Benoît Minisini
1f592094a6 [CONFIGURATION]
* NEW: Bytecode version has been increased, and so all projects must be 
  recompiled.

[INTERPRETER]
* OPT: Objects that do not raise events do not allocate the event 
  management structure anymore. That save four pointers by object.
* NEW: Structure management is done, and embedded (static) structures are
  handled too.
* BUG: Static array management was fixed.
* NEW: All functions synonymous whose name ends with a question mark have 
  been removed.

[COMPILER]
* OPT: Some optimization again.
* BUG: EXTERN declarations compile again.

[GB.DB.SQLITE2]
* BUG: Fix a misuse of GB.NewString().


git-svn-id: svn://localhost/gambas/trunk@2970 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-26 22:01:28 +00:00
Benoît Minisini
b0a0c52af0 [INTERPRETER]
* NEW: More work on structure support.
* BUG: Fix optimization in error management.

[COMPILER]
* OPT: More optimizations. The Gambas 3 compiler is faster to compile the 
  Gambas 3 IDE than the Gambas 2 compiler to compile the Gambas 2 IDE, 
  which is smaller!
* NEW: Do not compute variable position and size, as it is done by the 
  interpreter anyway.

[GB.EVAL]
* NEW: Use the same optimizations as the compiler in the parser.

[GB.XML.RPC]
* BUG: The component compiles again.



git-svn-id: svn://localhost/gambas/trunk@2964 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-25 11:19:00 +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
11906ba89a [DEVELOPMENT ENVIRONMENT]
* NEW: Renaming a control now automatically renames the identifier in the 
  source code.

[INTERPRETER]
* NEW: Split() now takes a 5th optional argument that tells if escape 
  characters should be kept in the returned strings.
* NEW: CVariant() is a new function that converts its argument into a 
  Variant.

[COMPILER]
* NEW: CVariant() is a new function that converts its argument into a 
  Variant.

[GB.FORM]
* NEW: SidePanel, DirChooser, FileChooser and FileView Settings property
  now use the new Settings storage facilities and return a Variant[].

[GB.GTK]
* NEW: The Settings and Layout properties of HSplit and VSplit now return 
  an Integer[] instead of a String.
* BUG: The name property of newly created menus is correctly initialized
  now.

[GB.QT4]
* NEW: The Settings and Layout properties of HSplit and VSplit now return 
  an Integer[] instead of a String.

[GB.SETTINGS]
* NEW: The settings file format has changed. Now collections and arrays can
  be stored and retrieved.


git-svn-id: svn://localhost/gambas/trunk@2329 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2009-09-10 19:30:41 +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
7f12844128 [DEVELOPMENT ENVIRONMENT]
* NEW: Support for template array classes in automatic completion.

[INTERPRETER]
* BUG: LIE INPUT and INPUT work correctly on tty streams.

[GB.DB]
* NEW: Add an API that allows a driver function to get the current 
  database when it does not get it from its arguments.

[GB.DB.POSTGRESQL]
* BUG: Fix blob support for some encodings, and when PostgreSQL version is
  greater or equal than 8.2.

[GB.DB.SQLITE3]
* BUG: Field values are not truncated anymore.

[GB.FORM]
* NEW: MessageLabel is a new control made by David Villalobos Cambronero.
  It is a TextLabel that changes its background color for indicating a 
  warning, an error, and so on.

[GB.FORM.MDI]
* NEW: Workspace.ButtonPosition is a new property that allows to put the 
  tab close button on the left or on the right.

[GB.GTK]
* BUG: Speeds up the combo-box control as much as I can. Slowness seems to 
  be a GTK+ feature. :-/

[GB.QT]
* BUG: Fix crash when setting a shortcut on a top-level menu.


git-svn-id: svn://localhost/gambas/trunk@1548 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-09-09 11:03:47 +00:00
Benoît Minisini
50e6bd3583 [CONFIGURATION]
* NEW: Some clean-up in the acinclude.m4 file.

[DEVELOPMENT ENVIRONMENT]
* NEW: Small changes in the project property dialog layout.
* BUG: When opening a project, the packager information is correctly reset.

[WIKI CGI SCRIPT]
* NEW: Simplified chinese translation updated.
* NEW: Support for albanian language.
* NEW: New web site look.

[INTERPRETER]
* BUG: Really really fix the bit manipulation functions.
* NEW: Support for types object arrays. For example: Label[] for an array 
  of Labels.

[COMPILER]
* NEW: Support for types object arrays.
* BUG: Do not store the source file full path into object files, so that 
  rmplint does not cry.

[GB.GTK]
* BUG: Fix the tray icon management. Now GTK+ icons work on Gnome and KDE, 
  and are fully transparent!
* BUG: Tray icons are correctly refreshed when the icon is changed.

[GB.QT]
* BUG: Fix the menu shortcut management.
* BUG: Tray icons are correctly refreshed when the icon is changed.


git-svn-id: svn://localhost/gambas/trunk@1529 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-08-31 00:32:21 +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
7cc9986bda [INTERPRETER]
* OPT: Native array optimizations are better. For arrays with one 
  dimension, reading is about 70% faster than gambas2, and writing 40% 
  faster.
* OPT: Collection array accessors were optimized too. Reading is about 50%
  faster and writing 60% faster. Be careful: only the array accessors were
  optimized, not the full hash table access, which is the slower part of 
  the process.


git-svn-id: svn://localhost/gambas/trunk@1036 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-01-24 10:42:42 +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