Commit graph

77 commits

Author SHA1 Message Date
gambas
5fea1897fb Url$() does not encode spaces with the '+' character anymore, as this is deprecated, and works only inside query part of the URL.
[INTERPRETER]
* BUG: Url$() does not encode spaces with the '+' character anymore, as this is deprecated, and works only inside query part of the URL.
2021-04-09 03:41:02 +02:00
gambas
0e4f68da94 Really really fix '&=' operator optimization.
[INTERPRETER]
* BUG: Really really fix '&=' operator optimization.
2020-07-27 20:39:21 +02:00
gambas
95ea5cd72c Better fix for '&=' operator optimization.
[INTERPRETER]
* BUG: Better fix for '&=' operator optimization.
2020-07-13 16:00:17 +02:00
gambas
b0eb952028 '&=' on variants is not incorrectly optimized anymore.
[INTERPRETER]
* BUG: '&=' on variants is not incorrectly optimized anymore.

[GB.JIT]
* BUG: '&=' on variants is not incorrectly optimized anymore.
2020-04-16 09:47:59 +02:00
gambas
2165ececd5 JIT optimization of '&=' has been implemented.
[INTERPRETER]
* NEW: Support for JIT '&=' optimization.
* BUG: Fix '&=' optimization on argument variables.
* OPT: Strings greater than 4096 bytes are allocated by 4096 bytes steps.

[GB.JIT]
* NEW: JIT optimization of '&=' has been implemented.
2020-04-06 04:43:12 +02:00
gambas
08c5fc95c7 '&=' operator optimization.
[COMPILER]
* OPT: Support for '&=' operator optimization.

[INTERPRETER]
* OPT: '&=' operator optimization.
2020-04-04 16:18:10 +02:00
gambas
2cd257be5b PEEK is a new instruction that peek some bytes from a stream without removing them.
[COMPILER]
* NEW: Support for the new PEEK instruction.

[INTERPRETER]
* NEW: PEEK is a new instruction that peek some bytes from a stream without removing them, so that they are available to the next READ instruction.
* OPT: IsAscii(), IsLower(), IsPunct()... instructions are now a bit faster.
2020-02-11 01:45:10 +01:00
gambas
51e271f107 Fix '&/' operator.
[INTERPRETER]
* BUG: Fix '&/' operator.
2019-08-22 12:36:52 +02:00
gambas
7b74fec6cc '&/' operator now automatically converts its arguments to strings.
[INTERPRETER]
* NEW: '&/' operator now automatically converts its arguments to strings.
2019-08-21 22:36:54 +02:00
gambas
f23228638b Fix Url$() escaping characters.
[INTERPRETER]
* BUG: Fix Url$() escaping characters.
2019-04-04 23:12:07 +02:00
gambas
706a605cc3 Correctly restore the stack after calling a method through the interpreter, and handle null values as object values having a null address automatically.
[INTERPRETER]
* NEW: Creating a NULL value now clears the object address field so that it can be freely interpreted as a Object value with a null address by the JIT compiled code.

[GB.JIT]
* BUG: Correctly restore stack after calling a method through the interpreter.
2018-08-22 09:30:27 +02:00
gambas
431be5bcea Fix string search routine optimization and thousand separator.
[INTERPRETER]
* BUG: Fix string search routine optimization.
* BUG: Fix thousand separator.
2018-06-12 16:30:11 +02:00
gambas
c671adfd6b Work continues on new JIT system.
[INTERPRETER]
* OPT: String searching (Instr, RInstr and Replace) has been made about 4x faster by searching the first occurence with memchr() and memrchr().

[GB.FORM.TERMINAL]
* BUG: Fix warning messages.

[GB.JIT]
* BUG: Fix byte, short and boolean pushing and popping routines.
* BUG: Fix string values referencing.
* BUG: Fix optional argument management.
* NEW: Optimization of bits management subroutines.

[GB.QT4]
* BUG: Delay hooks initialization, because now socket notifiers must not be used before creating the event loop.

[GB.QT5]
* BUG: Delay hooks initialization, because now socket notifiers must not be used before creating the event loop.
2018-06-11 18:56:39 +02: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
gambas
9519c3dc52 Implement string comparison based on MATCH operator with the gb.Match constant.
[INTERPRETER]
* NEW: gb.Match is a new constant that indicates a string comparison using the PCRE MATCH operator.
* BUG: The gb.Descent flag could be erased when sorting objects implementing the '_compare' special method.
2017-10-21 01:19:27 +02:00
gambas
6018b475b6 Oct$() is a new functions that converts an integer to its octal representation.
[COMPILER]
* NEW: Oct$() is a new functions that converts an integer to its octal representation.

[INTERPRETER]
* NEW: Oct$() is a new functions that converts an integer to its octal representation.
2017-10-05 04:11:00 +02: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
66f5c498d2 [INTERPRETER]
* BUG: Shell$() does not try to convert into current locale anymore.


git-svn-id: svn://localhost/gambas/trunk@7542 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-01-02 11:11:52 +00:00
Benoît Minisini
6db6ea879a [INTERPRETER]
* BUG: Shell$() now quotes quotes correctly.


git-svn-id: svn://localhost/gambas/trunk@6997 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-03-22 12:12:23 +00:00
Benoît Minisini
5b930daea7 [INTERPRETER]
* NEW: Support for the new USE instruction.

[COMPILER]
* NEW: A class header now can include USE "xxxx" declarations, where "xxxx"
  is a component name. It means that the specified component will be loaded
  when the class is initialized, the first time it is loaded.


git-svn-id: svn://localhost/gambas/trunk@6648 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-11-12 22:25:37 +00:00
Benoît Minisini
0c2a60085c [WIKI CGI SCRIPT]
* NEW: Help comments of component classes and symbols are now automatically 
  used for creating non-existing documentation pages.
* NEW: Images are clickable in editing mode. They point at the image wiki 
  page.

[INTERPRETER]
* NEW: Url$() is a new function to encode an URL.
* NEW: FromUrl$() is a new function to decode an URL.
* NEW: FromBase64$() is now a synonymous for UnBase64$().

[GB.MEDIA]
* BUG: MediaPipeline.Pause() does nothing if the media is not playing. That
  avoid some GStreamer bad behaviour.

[GB.MEDIA.FORM]
* NEW: MediaView: Remove the ShowVideo property, it is useless.
* NEW: MediaView: The URL property can receive a true URL or a file path.
  The conversion is automatically done.
* BUG: MediaView: Do pause or stop the media file only if it has sense.
* NEW: MediaView: Hide the video part if the control height is too low.


git-svn-id: svn://localhost/gambas/trunk@6617 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-11-09 15:25:46 +00:00
Benoît Minisini
065e2c48b7 [DEVELOPMENT ENVIRONMENT]
* BUG: Clicking on the paste button correctly set the focus back to the 
  editor.

[WEBSITE MAKER]
* BUG: Fix pages not located in the wiki.

[EXAMPLES]
* BUG: PhotoTouch: Fix the example.

[COMPILER]
* NEW: Remove the Js$() function. Maybe it's not where it should be.

[INTERPRETER]
* NEW: Remove the Js$() function. Maybe it's not where it should be.
* BUG: Displaying a Result object in the debugger does not crash anymore.
* NEW: The GB.Realloc() API now calls GB.Alloc() if the pointer to 
  reallocate is null.

[GB.FORM]
* NEW: DateChooser: Make the time font size a little bit smaller.


git-svn-id: svn://localhost/gambas/trunk@6512 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-09-26 21:52:42 +00:00
Benoît Minisini
a3c59253f6 [INTERPRETER]
* BUG: The PUSH CHAR byte code now works correctly with ASCII code greater 
  than 127.


git-svn-id: svn://localhost/gambas/trunk@6481 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-09-16 01:10:58 +00:00
Benoît Minisini
7962dad8e5 [DEVELOPMENT ENVIRONMENT]
* NEW: Use the new WebSettings.Cache.Clear() method.
* BUG: Fix project lists layout when they are filtered.

[WIKI CGI SCRIPT]
* BUG: Workaround the thttpd cgi interface bug.

[INTERPRETER]
* NEW: A new API for browsing a directory recursively.
* NEW: Js$() is a new function that quotes javascript strings.

[GB.FORM]
* BUG: ColorChooser: Don't memorize custom colors spuriously.

[GB.GUI.BASE]
* BUG: GridView: Don't take hidden columns into account when layouting 
  expanded columns.


git-svn-id: svn://localhost/gambas/trunk@6447 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-09-03 14:33:18 +00:00
Benoît Minisini
c3609f3de3 [INTERPRETER]
* BUG: Fix Swap$() function.


git-svn-id: svn://localhost/gambas/trunk@6426 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-08-23 15:10:11 +00:00
Benoît Minisini
6b89a4fb69 [CONFIGURATION]
* NEW: Add an gambas appdata file and install it in /usr/share/appdata.

[DEVELOPMENT ENVIRONMENT]
* BUG: ImageEditor: Fix a possible crash when pasting an image.
* BUG: Correctly detect if a project is handled by subversion or not.

[INTERPRETER]
* NEW: Replace the internal `class->state` variable by two boolean flags:
  `class->loaded` and `class->ready`.
* NEW: Overriding a class that is the parent of other classes is possible
  again. I don't remember what prevented that to work, so I want to see.

[GB.DEBUG]
* NEW: Propagate the changes in the interpreter class structure.

[GB.EVAL]
* NEW: Propagate the changes in the interpreter class structure.

[GB.GUI.AREA]
* BUG: GridView: Setting the background color correctly refreshes the 
  control.

[GB.JIT]
* NEW: Propagate the changes in the interpreter class structure.

[GB.NET.SMTP]
* NEW: Replace the old gb.net.smtp component written in C and Gambas by a
  new component with the same name entirely written in Gambas.
* BUG: Fix the authentication process.
* BUG: Fix how the result of the EHLO command is read.

[GB.QT4.EXT]
* NEW: LCDNumber control is now put in a "Deprecated" tab in the IDE 
  control toolbar.


git-svn-id: svn://localhost/gambas/trunk@6403 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-07-28 05:35:58 +00:00
Benoît Minisini
7abbd5e799 [DEVELOPMENT ENVIRONMENT]
* BUG: Don't check conflict on project configuration file if that files 
  does not exist.

[INTERPRETER]
* OPT: Move the string splitting routine in its own file and optimize it.

[INFORMER]
* BUG: Remove unneeded parenthesis on a test.

[GB.CLIPPER]
* BUG: Remove an unused variable.

[GB.DESKTOP]
* BUG: Fix error message in DesktopMime.

[GB.FORM]
* BUG: MaskBox: Raise the Change event after moving the cursor, so that it 
  behaves exactly like a TextBox.

[GB.FORM.MDI]
* NEW: Workspace: Count the number of detached windows so that the "detach 
  current tab" menu entry is disabled when needed.

[GB.GTK]
* BUG: Window.Utility should work even if the window is mapped now.

[GB.GTK3]
* BUG: Window.Utility should work even if the window is mapped now.

[GB.NET.PO3]
* NEW: Add a void constructor to the Pop3Client class for the 
  documentation.


git-svn-id: svn://localhost/gambas/trunk@6285 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-05-23 11:52:04 +00:00
Benoît Minisini
9cf45fc40d [INTERPRETER]
* BUG: Fix memory leak with Lower$() and Upper$() on some null strings.


git-svn-id: svn://localhost/gambas/trunk@6241 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-04-10 21:56:07 +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
edd3bf6024 [INTERPRETER]
* BUG: UnBase64() works correctly now. It does not add extra null bytes 
  anymore.


git-svn-id: svn://localhost/gambas/trunk@5752 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2013-07-21 10:15:54 +00:00
Benoît Minisini
0139ee4b99 [INTERPRETER]
* NEW: MATCH is a new operator that automatically load the gb.pcre 
  component to implement PCRE pattern matching. The syntax is the same as
  the LIKE operator.

[COMPILER]
* NEW: Add a new MATCH operator.

[GB.FORM]
* BUG: The directory contents size task does not abort anymore when 
  accessing an unreadable files or directory. It now ignore them.
* NEW: When errors are raised while browsing the contents of a directory,
  the file properties dialog display them is a new tab.

[GB.PCRE]
* NEW: Create an API interface for allowing other components to use PCRE
  regular expressions.


git-svn-id: svn://localhost/gambas/trunk@5730 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2013-07-12 23:57:53 +00:00
Benoît Minisini
0f985417cf [DEVELOPMENT ENVIRONMENT]
* NEW: Use Terminus as default fixed font if it is installed on the system.
* BUG: Don't load a component description if that component has the same 
  name as the current project. This is a temporary incorrect fix!

[INTERPRETER]
* BUG: Fix Classes enumeration.

[GB.DESKTOP]
* BUG: Fix X11 client message sending routine on 64 bits OS.
* BUG: Fix all DesktopWindow properties that read or change the state of 
  the window.

[GB.GTK]
* NEW: Fonts.Exist() is a new method that returns if a specific font family 
  exists.

[GB.QT4]
* NEW: Fonts.Exist() is a new method that returns if a specific font family 
  exists.


git-svn-id: svn://localhost/gambas/trunk@5171 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-09-17 11:13:32 +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
5917f3b3fe [INTERPRETER]
* BUG: Fix a crash in the &/ operator.


git-svn-id: svn://localhost/gambas/trunk@4725 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-12 23:49:07 +00:00
Benoît Minisini
09f700e22b [INTERPRETER]
* BUG: LINE INPUT does not try to incorrectly release its stream argument
  anymore when there is no stream argument.
* OPT: A little optimization in Space$(), Upper$() and Lower$().
* OPT: EXEC / SHELL ... TO does not return the process output through a 
  temporary string that will be freed later. If the string is big, then
  the memory is retained longer than necessary.


git-svn-id: svn://localhost/gambas/trunk@4509 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-02-26 23:07:14 +00:00
Benoît Minisini
f5472efbbe [DEVELOPMENT ENVIRONMENT]
* BUG: Fix the form editor grid horizontal position.

[INTERPRETER]
* NEW: IsNan() is a new function that returns if a floating point value is
  not a number.
* NEW: IsInf() is a new function that returns +1 if a floating point value 
  is +Inf, -1 if it is -Inf, and 0 if it is a normal number.
* NEW: Swap$() is a new function that swaps a string.
* NEW: The MkBool$(), MkShort$(), MkInt$()... functions come back!

[COMPILER]
* NEW: +Inf and -Inf are two new keywords for representing the 
  corresponding special floating values.


git-svn-id: svn://localhost/gambas/trunk@4435 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-01-31 02:33:01 +00:00
Benoît Minisini
96c50f1600 [DEVELOPMENT ENVIRONMENT]
* BUG: Fix some crash in database manager when removing fields or index.
* BUG: Fix position history.
* NEW: Add a history popup menu.

[INTERPRETER]
* NEW: The Html$() function now converts unicode non-breaking space (code 
  160) in a " " entity.

[GB.GTK]
* BUG: Now raise an error when using text-box methods on read-only 
  combo-boxes.
* NEW: GTK+ 2.16 is now required.


git-svn-id: svn://localhost/gambas/trunk@4415 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-01-22 13:13:25 +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
200a429afc [DEVELOPMENT ENVIRONMENT]
* NEW: New "Gamabs" highlight theme.
* BUG: When showing the search dialog, the search text is correctly 
  selected in all cases now.
* BUG: Importing a report (or any form that is not a GUI form) now 
  correctly imports the class file.

[EXAMPLES]
* NEW: Add a text clipping example in the 'Painting' example.

[INTERPRETER]
* OPT: Replace() is now faster when the search string and the replace
  string are both one character length strings.

[COMPILER]
* NEW: The string escape character '\v' was added.

[GB.GTK]
* BUG: Paint.Text() now works correctly when the alignment is not 
  specified.

[GB.NET]
* BUG: Correctly check system errors when using a asynchronous DnsClient.

[GB.QT4]
* BUG: Paint.Save() and Paint.Restore() take the clipping path into account 
  now.

[GB.SETTINGS]
* NEW: Use a temporary file when saving a settings file, and always make a
  backup.

[GB.WEB]
* NEW: The Session.Modify() method was replaced by a read/write Modified 
  property.


git-svn-id: svn://localhost/gambas/trunk@4273 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2011-12-11 19:14:04 +00:00
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