Commit graph

36 commits

Author SHA1 Message Date
Benoît Minisini
e531a4e05f [CONFIGURATION]
* BUG: Fix many gcc 4.6.1 warnings.
* NEW: Update the depcomp sript with a more recent version.

[GB.DB.POSTGRESQL]
* BUG: Fix primary index retrieving for tables inside a schema.


git-svn-id: svn://localhost/gambas/trunk@4203 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2011-10-16 19:24:01 +00:00
Benoît Minisini
990180be34 [INTERPRETER]
* OPT: Internal conversions between unicode and utf-8 have been optimized.
* OPT: String.UCase(), String.LCase() and String.Chr() have been optimized.
* BUG: Arrays of classes exported from a component or a library are now
  automatically exported too.
* NEW: Param.All is a new property that returns all extra arguments as an
  array.


git-svn-id: svn://localhost/gambas/trunk@4143 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2011-09-21 09:42:19 +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
bf1c0c2cda [INTERPRETER]
* BUG: Really fix the way Trim() handle null strings. Now there is no 
  memory leaks anymore.


git-svn-id: svn://localhost/gambas/trunk@4100 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2011-09-06 20:47:26 +00:00
Benoît Minisini
37894ac0db [INTERPRETER]
* BUG: Fix a bug in type transitivity in Trim().


git-svn-id: svn://localhost/gambas/trunk@4095 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2011-09-06 02:32:34 +00:00
Benoît Minisini
5b853ba5f3 [INTERPRETER]
* NEW: Quote comma in Html$().

[GB.WEB]
* NEW: Response.SetCookie() has a new optional argument to set if the 
  cookie is "HttpOnly".
* NEW: Session cookies are now automatically "HttpOnly".


git-svn-id: svn://localhost/gambas/trunk@4079 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2011-09-03 09:52:28 +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
adf553d56b [INTERPRETER]
* NEW: Support for NOT LIKE, NOT BEGINS, NOT ENDS and NOT IS.

[COMPILER]
* NEW: New operators: NOT LIKE, NOT BEGINS, NOT ENDS and NOT IS.

[GB.EVAL]
* NEW: New operators: NOT LIKE, NOT BEGINS, NOT ENDS and NOT IS.


git-svn-id: svn://localhost/gambas/trunk@3407 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-12-29 08:21:51 +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
030523326f [INTERPRETER]
* NEW: Mem$() is a new function that returns a string from the internal 
  memory representation of a value.
* NEW: BoolPtr() has been replaced by Bool@(), BytePtr() has been replaced 
  by Byte@(), and so on...
* NEW: StrPtr() has been replaced by String@().

[EXAMPLES]
* NEW: Search support in the WebBrowser example.


git-svn-id: svn://localhost/gambas/trunk@3318 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-11-24 01:30:36 +00:00
Benoît Minisini
210a396888 [DEVELOPMENT ENVIRONMENT]
* NEW: Do not store the svn revision in the .project file.
* NEW: Create a clever menu hierarchy when sorting recent files by path.

[INTERPRETER]
* BUG: Replace() correctly returns its first argument when its second
  argument is a void string.

[COMPILER]
* BUG: Remove a useless test.

[GB.FORM]
* NEW: Add a svg version of the GNU logo.
* BUG: Fix some stock icons in the Gnome map.

[GB.GTK]
* BUG: Fix possible crashes in three utility routines.
* BUG: Fix a crash in GridView.Rows[].Text property.

[GB.NET.SMTP]
* BUG: Fix an always true test.


git-svn-id: svn://localhost/gambas/trunk@3206 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-09-11 10:23:36 +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
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
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
f306c0a5fb [DEVELOPMENT ENVIRONMENT]
* NEW: Sort project tree view with natural sort.
* NEW: Sort procedure combo-box with natural sort.

[GB.DB.FORM]
* BUG: Setting a "SELECT" request to the DataSource.Table property should 
  work in all cases now.

[GB.FORM.MDI]
* NEW: Vertical toolbar layout is more clever.

[GB.GTK]
* BUG: Modal windows are really modal.
* BUG: Try to prevent a possible crash in event management.

[GB.GTK.EXT]
* NEW: This component has been removed.


git-svn-id: svn://localhost/gambas/trunk@2669 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-02-07 23:10:41 +00:00
Benoît Minisini
c17951fcd3 [DEVELOPMENT ENVIRONMENT]
* BUG: Use the new Begins and Ends operators instead of Like where it was 
  necessary or faster.

[INTERPRETER]
* BUG: The &/ operator keeps only one slash if both the last character of 
  the left string and the first character of the right string is a slash.
* NEW: 'Begins' is a new string operator that checks if the beginning of a 
  string is equal to another string.
* NEW: 'Ends' is a new string operator that checks if the end of a string 
  is equal to another string.
* BUG: Errors raised by Eval() are correctly displayed again.
* NEW: The 'Like' operator has a new pattern: '{x,y,...}' tests if a 
  string matches one of the strings between square brackets, each one being
  separated by a comma.

[GB.DB.FORM]
* BUG: Use the new Begins and Ends operators instead of Like where it was 
  necessary or faster.

[GB.DESKTOP]
* BUG: Use the new Begins and Ends operators instead of Like where it was 
  necessary or faster.

[GB.GTK]
* BUG: Modal windows do not block mouse, keyboard, enter and leave events 
  anymore.

[GB.FORM]
* BUG: Use the new Begins and Ends operators instead of Like where it was 
  necessary or faster.

[GB.FORM.MDI]
* BUG: Use the new Begins and Ends operators instead of Like where it was 
  necessary or faster.

[GB.WEB]
* BUG: Use the new Begins and Ends operators instead of Like where it was 
  necessary or faster.


git-svn-id: svn://localhost/gambas/trunk@2365 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2009-09-27 09:28:52 +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
a3d6ba73e5 [INTERPRETER]
* NEW: Do not use "boolean" anymore. Use "bool" instead.

[COMPILER]
* NEW: Do not use "boolean" anymore. Use "bool" instead.



git-svn-id: svn://localhost/gambas/trunk@2091 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2009-07-08 19:57:50 +00:00
Benoît Minisini
ed62e2dc78 [DEVELOPMENT ENVIRONMENT]
* BUG: Store autoconf extra tests in the .project file, not in its own 
  hidden file anymore.
* NEW: Add KDE4 as possible icon theme.
* BUG: The packager wizard logic has been fixed.

[INTERPRETER]
* NEW: The Array class has now almost all standard array methods. They all 
  use Variant as array contents datatype, internally converting values to
  the real array datatype.
* NEW: Quote$() now keeps characters whose code is greater as 126 unquoted.

[COMPILER]
* NEW: '\b' and '\f' are two new escaped sequences in strings.
* BUG: Move some debugging breakpoint instructions so that the debugger 
  breaks at the right line when there is an error during an IF or a CASE 
  instruction.

[GB.EVAL]
* NEW: '\b' and '\f' are two new escaped sequences in strings.

[GB.FORM]
* NEW: Some new stock icons.

[GB.QT.EXT]
* NEW: Editor.Lines[].GetInitialState() fills the Highlight properties
  (State, Tag and AlternateState) with the initial state of a line.

[GB.WEB]
* NEW: JSON is a new class that can encode and decode the JSON format.


git-svn-id: svn://localhost/gambas/trunk@1925 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2009-04-08 10:11:16 +00:00
Benoît Minisini
f106372a34 [INTERPRETER]
* BUG: Really converts the argument to a string in Html$(), Quote$(), 
  Shell$() and Unquote$().


git-svn-id: svn://localhost/gambas/trunk@1786 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2009-01-05 10:31:11 +00:00
Benoît Minisini
a0ec1ab2d6 [INTERPRETER]
* BUG: Html$() now automatically converts its argument to a string.


git-svn-id: svn://localhost/gambas/trunk@1785 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2009-01-05 10:25:50 +00:00
Benoît Minisini
802a28b2d6 [CONFIGURATION]
* NEW: Bytecode version has been incremented again. All projects must be 
  recompiled!

[INTERPRETER]
* NEW: The Quote and UnQuote class were removed, and replaced by three new 
  functions: Quote$(), Shell$() and Unquote$().
* NEW: Html$() is a new function that does HTML quoting.

[GB.QT]
* NEW: The space between a gridview cell picture and its text is now 
  defined by the padding property.

[GB.WEB]
* NEW: The HTML class has been removed. Use the new Html$() subroutine 
  instead.

git-svn-id: svn://localhost/gambas/trunk@1763 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2009-01-02 00:05:38 +00:00
Benoît Minisini
f7889c1147 [CONFIGURATION]
* NEW: Bytecode version has been incremented. All projects must be 
  recompiled!

[DEVELOPMENT ENVIRONMENT]
* BUG: Rewrite code that used badly overridden symbols.

[INTERPRETER]
* BUG: Check that the overridding symbol is compatible with the overridden 
  one. For example, a static method can be overridden by a static method 
  only, a constant can be overriden by a static property, and so on.
* NEW: A new error message for badly overridden symbols.
* NEW: Tr$() is a new function that translates its argument and returns it.

[GB.GTK]
* BUG: Rewrite code that used badly overridden symbols. Affected classes 
  are: Window, TabStrip, 

[GB.FORM.MDI]
* BUG: Translate action descriptions in the action configuration dialog.
* NEW: Sort actions by description in the action configuration dialog.
* NEW: Automatically remember action configuration dialog size.
* BUG: Fix authorized shortcuts in the shortcut edit dialog.
* BUG: Rewrite code that used badly overridden symbols. Workspace is the
  only affected class.

[GB.SETTINGS]
* NEW: LoadWindow() and SaveWindow() are two new public methods to load
  and save window position by specifying the settings key.

[GB.QT]
* BUG: Rewrite code that used badly overridden symbols. Affected classes 
  are: Window, TabStrip, 


git-svn-id: svn://localhost/gambas/trunk@1759 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2009-01-01 13:42:17 +00:00
Benoît Minisini
c91850d055 [INTERPRETER]
* OPT: Optimizations in string allocation.

[GB.DB]
* OPT: Optimization in query making. Storing big blobs inside a field in 
  now about twice faster.

[GB.DB.POSTGRESQL]
* BUG: Fix string quoting for postgresql >= 8.2.


git-svn-id: svn://localhost/gambas/trunk@1687 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-11-10 00:18:00 +00:00
Benoît Minisini
db6b81aa59 [INTERPRETER]
* OPT: Optimization in Replace() when the replace string is longer than 
  the search string. String[].Join() becomes faster too.


git-svn-id: svn://localhost/gambas/trunk@1683 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-11-08 23:42:08 +00:00
Benoît Minisini
f8c4ccc0c5 [INTERPRETER]
* OPT: String[].Join() was optimized when there is no escape character 
  specified.
* OPT: Optimize Replace() when the replace string is shorter than the 
  pattern string.


git-svn-id: svn://localhost/gambas/trunk@1679 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-11-08 14:55:03 +00:00
Benoît Minisini
1082987744 [INTERPRETER]
* BUG: Fix the previous Replace() optimization.


git-svn-id: svn://localhost/gambas/trunk@1677 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-11-07 01:37:45 +00:00
Benoît Minisini
13082f47d7 [INTERPRETER]
* OPT: Replace() was optimized when the search pattern and the replace 
  pattern have the same length.


git-svn-id: svn://localhost/gambas/trunk@1675 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-11-07 01:16:13 +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
7b01d12f31 [INTERPRETER]
* OPT: Optimizations in string comparison operators.
* OPT: Optimizations in string allocations.
* OPT: Optimizations in Left$(), Mid$(), Right$() and Len().
* OPT: Optimizations of calls to native methods when the number of 
  arguments is fixed, and when no argument conversion is needed.
* OPT: Optimizations of INPUT and LINE INPUT, by using an internal buffer
  instead of reading the stream one byte at a time.
* BUG: Fixed the new error management.
* BUG: Fixed a possible spurious error when reading a file from an archive.

[GB.EVAL]
* BUG: Use the same new error management than the interpreter.

[GB.QT]
* BUG: The DrawingArea control now should draw its border correctly without
  erasing its contents.


git-svn-id: svn://localhost/gambas/trunk@1041 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-01-27 14:00:04 +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