Commit graph

33 commits

Author SHA1 Message Date
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
5b75185c3a [COMPILER]
* OPT: Compile is now compiled with -O3 optimizations.
* OPT: Reserved words built-in symbol table is faster now.
* NEW: Initial support for expression datatype analyze. Some new errors are raised at compilation time, like using a string with the AND operator for example. The datatype analyzer is rougher than the IDE one because it is local to the compile class.
* OPT: Symbol table search is a bit faster.


git-svn-id: svn://localhost/gambas/trunk@7632 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-14 01:40:50 +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
4c739969ef [COMPILER]
* NEW: IsMissing() is a new function that returns if an optional argument 
  is missing. It always returns FALSE on a non-optional argument.

[INTERPRETER]
* NEW: Support for IsMissing().


git-svn-id: svn://localhost/gambas/trunk@6258 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-05-08 15:10:21 +00:00
Benoît Minisini
0d183b038d [INTERPRETER]
* NEW: Remove as much "packed" structure declaration as possible, to 
  prevent possible bugs on ARM architecture.


git-svn-id: svn://localhost/gambas/trunk@5860 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2013-09-29 16:56:12 +00:00
Benoît Minisini
0c8cd47114 [INTERPRETER]
* BUG: Fix a structure alignment bug for ARM.


git-svn-id: svn://localhost/gambas/trunk@5857 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2013-09-28 21:21:40 +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
70afe05d8d [DEVELOPMENT ENVIRONMENT]
* NEW: Handle new format of profile files.

[INTERPRETER]
* NEW: ON ... GOTO and ON ... GOSUB instructions.

[WEBSITE MAKER]
* NEW: An explicit link button that displays the 'news' page.

[COMPILER]
* NEW: ON ... GOTO and ON ... GOSUB instructions.

[GB.DEBUG]
* NEW: New format for profile, more compact and faster to read.


git-svn-id: svn://localhost/gambas/trunk@4748 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-05-21 01:09:35 +00:00
Benoît Minisini
9e259995ea [INTERPRETER]
* OPT: Use mmap() to allocated the stack, not malloc(). Consequently, 
  calling functions recursively are now very fast.

[COMPILER]
* NEW: New FAST keyword.


git-svn-id: svn://localhost/gambas/trunk@4536 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-03-06 01:50:41 +00:00
Benoît Minisini
1fc5a474de [INTERPRETER]
* NEW: New GOSUB instruction. You return from a GOSUB with the RETURN 
  instruction alone. Consequently, you cannot exit from a 'SUB' with it if
  there is a pending GOSUB. The GOSUB stack is only limited by the
  available memory.

[COMPILER]
* NEW: New GOSUB instruction.


git-svn-id: svn://localhost/gambas/trunk@4530 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-03-03 23:57:36 +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
f5682bf3b4 [DEVELOPMENT ENVIRONMENT]
* BUG: Do not try to handle Home and End keys in editors.
* BUG: Fix the translation of error messages made by the debugger.
* NEW: Update error message list.

[INTERPRETER]
* NEW: Chmod, Chown and Chgrp were implemented.
* NEW: Stat.Auth is a new property that returns the file mode as a string,
  using the format of the 'chmod' shell command.
* NEW: Rmdir raises a specific 'Directory is not empty' error now, when 
  trying to remove a non-empty directory.

[COMPILER]
* NEW: Chmod <path> To <mode> was implemented. <mode> is a string having 
  the same format as the 'chmod' shell command.
* NEW: Chown <path> To <user> was implemented. <user> is the name of the 
  user as defined in the /etc/passwd file.
* NEW: Chgrp <path> To <group> was implemented. <user> is the name of the 
  group as defined in the /etc/group file.


git-svn-id: svn://localhost/gambas/trunk@4400 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-01-15 08:54:57 +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
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
c4e08d4574 [DEVELOPMENT ENVIRONMENT]
* NEW: Use small font in editor toolbars.

[COMPILER]
* NEW: Compile form code before class code, so that error messages always 
  occur inside class code.
* BUG: Correctly handle errors when loading source files.

[GB.QT4.EXT]
* BUG: The cursor position is now correctly drawn with proportional fonts.


git-svn-id: svn://localhost/gambas/trunk@3771 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2011-04-16 13:25:46 +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
47bec5f339 [DEVELOPMENT ENVIRONMENT]
* NEW: Enhance the import wizard. The list of conversions that are 
  automatically handled is in the wiki.

[WIKI CGI SCRIPT]
* BUG: Do allow '{' and '}' between '=='. But then allow lines to begin 
  with a slash, to escape those characters.
* BUG: Display correctly titles with a '#' inside.

[COMPILER]
* NEW: DownTo is a new keyword for decrementing For...Next loops. You can
  save some "Step -1" with it.

[GB.QT4]
* BUG: Fix a reference leak with DnD operations started outside of then
  application.


git-svn-id: svn://localhost/gambas/trunk@3402 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-12-28 02:24:20 +00:00
Benoît Minisini
3cf59d321a [DEVELOPMENT ENVIRONMENT]
* NEW: Files can be dropped from files managers to the project treeview.
  They are automatically inserted into the project then.

[WIKI CGI SCRIPT]
* BUG: '{' and '}' are not interpreted anymore between '=='.

[BENCHMARKS]
* NEW: Add Gambas/Perl/Python benchmarks to the repository.

[INTERPRETER]
* NEW: A Stop instruction encountered inside a component is not ignored
  anymore and stops the program.
* BUG: Fix the File.SetName, File.SetExt and File.SetBaseName methods.

[COMPILER]
* NEW: The preprocessor now undestands the False and True constants.

[GB.FORM]
* NEW: Clean up the Stock class icon loading algorithm.
* BUG: Fix the Gnome icon map.

[GB.FORM.STOCK]
* NEW: Support for svg stock icons.

[GB.QT4]
* BUG: Drag.Show() now works for DnD operations started outside of the 
  application.

[GB.GTK]
* BUG: Drag.Show() now works for DnD operations started outside of the 
  application.


git-svn-id: svn://localhost/gambas/trunk@3400 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-12-27 14:28:59 +00:00
Benoît Minisini
b38df04095 [DEVELOPMENT ENVIRONMENT]
* NEW: In icon editor, the width of the selection frame now follows the 
  zoom level.
* NEW: Support for preprocessor highlighting.

[COMPILER]
* NEW: Integrated preprocessor. The following commands are supported:
  #If <expr>, #Else If <expr>, #Else and #Endif. <expr> can be a 
  combination of constants (OS_LINUX, OS_FREEBSD, ARCH_X86, ARCH_X86...),
  parenthesis, 'And' & 'Or' operators, version test (VERSION >= "3.0").
  This is work in progress.

[GB.EVAL]
* NEW: A new highlighting color for the preprocessor.

[GB.QT4.EXT]
* NEW: A new highlighting color for the preprocessor in Editor control.


git-svn-id: svn://localhost/gambas/trunk@3374 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-12-18 04:27:59 +00:00
Benoît Minisini
c5a29da470 [COMPILER]
* NEW: '%' is a new operator that is a synonymous for 'MOD'. It has its
  assignment operator shortcut '%=' too.


git-svn-id: svn://localhost/gambas/trunk@3362 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-12-13 23:46:01 +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
117f2ac635 [INTERPRETER]
* NEW: New GB.NewZeroString() API to create a Gambas string from a 
  null-terminated string. Components were modified to use it.
* OPT: Many optimizations everywhere.

[COMPILER]
* OPT: Many optimizations. The compiler should be noticeably faster.


git-svn-id: svn://localhost/gambas/trunk@2953 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-22 18:02:34 +00:00
Benoît Minisini
6d3201bc1f [WIKI CGI SCRIPT]
* BUG: Linkification does not erase symbols references anymore.

[INTERPRETER]
* BUG: Use the system maximum path length constant, not ours.

[COMPILER]
* BUG: Allow Inherits to be followed by any indentifier.


git-svn-id: svn://localhost/gambas/trunk@2647 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-01-28 10:55:24 +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
26ab06c228 [DEVELOPMENT ENVIRONMENT]
* NEW: Use the new Read/Write syntax.

[INTERPRETER]
* NEW: New Read/Write syntax.
* NEW: IsVariant() returns if its argument is a Variant.

[COMPILER]
* NEW: New Read/Write syntax.
* NEW: Support for the old read syntax.

[WIKI CGI SCRIPT]
* NEW: Allow query arguments ("?v3" for example) inside wiki links.
* NEW: New look for the table of contents.
* BUG: Non-translated pages display again.

[GB.WEB]
* NEW: Use the new Read/Write syntax.


git-svn-id: svn://localhost/gambas/trunk@2344 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2009-09-20 17:32:12 +00:00
Benoît Minisini
e91a676559 [INTERPRETER]
* NEW: VarPtr() now works on a string variable. It returns the address of 
  the string.
* NEW: TypeOf("") now returns gb.String. "" is equal to NULL yet, but now its 
  string datatype is kept.
* NEW: Memory is new instruction like Open that opens a memory stream from 
  a Pointer.
* NEW: A Pointer can not be used as a stream directly. You must use the new
  Memory instruction for that.
* NEW: The [...] array constructor now checks the datatype of all its 
  argument to decide the type of the new array.
* BUG: The ["key":value] collection constructor now does not leak memory 
  anymore if it fails.
* NEW: A new error, "void key", whose code is 64.
* NEW: TypeOf(Null) now returns gb.Null and not gb.Object anymore.
* BUG: IIf() now returns a Variant only if needed. It uses the same 
  algorithm as the array constructor.

[COMPILER]
* NEW: Memory is new instruction like Open that opens a memory stream from 
  a Pointer. The syntax is: hStream = Memory pPonter For Read | Write.
* NEW: Support for form controls being individually public.
* BUG: VarPtr() is compiled correctly again.


git-svn-id: svn://localhost/gambas/trunk@2339 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2009-09-17 20:58:27 +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
4d36d22784 [CONFIGURATION]
* NEW: Increment bytecode version.

[INTERPRETER]
* NEW: New routine to deal with the new immediate collection operator. The
  bytecode has changed consequently.

[COMPILER]
* NEW: A new syntax to the array operator to create collections:
  [ <key>:<value>, <key>:<value> ... ]

[GB.EVAL]
* NEW: Implement the new syntax for creating collections.


git-svn-id: svn://localhost/gambas/trunk@1699 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-11-11 17:22:38 +00:00
Benoît Minisini
9ccbaac697 [INTERPRETER]
* NEW: New API for returning the parent (event observer) of an object.

[COMPILER]
* BUG: Setting a property without having to use ME is possible now, if the
  property is defined in the same file of course.
* NEW: Mid$() can be used on the left side of an assignment.

[GB.FORM]
* BUG: ValueBox now reformats its contents after its Value property has 
  been set.

[GB.GTK]
* BUG: Composed keys are correctly handled again by KeyPress events, but
  the SCIM input method does not work yet.
* BUG: Form are their own event observer only if no event observer is 
  defined at form instanciation.
* BUG: The default tray icon is the same as gb.qt now.

[GB.QT]
* BUG: TrayIcon objects are correctly destroyed at program exit.
* BUG: Form are their own event observer only if no event observer is 
  defined at form instanciation.
* BUG: TrayIcon Width, Height, ScreenX and ScreenY properties do not crash
  anymore when the tray icon is hidden. They return zero instead.
  

git-svn-id: svn://localhost/gambas/trunk@1187 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-03-17 14:54:17 +00:00
Benoît Minisini
bd322efa9c [DEVELOPMENT ENVIRONMENT]
* BUG: Use TextEdit.RichText insted of TextEdit.Text.
* BUG: END SUB can be the end of a method. The class analyze now takes 
  that into account.

[HELP]
* BUG: Fixed the generated treeview.

[COMPILER]
* OPT: The NOT operator used just at the beginning of a conditional 
  expression is optimized. Consequently, an expression like 'IF NOT 2' is 
  now equivalent to 'IF 2 = 0' and not to 'IF (NOT 2) <> 0' as before. In
  other words, the boolean conversion is now done before the NOT, and not 
  after. The following instructions are concerned: IF, WHILE, UNTIL.
* NEW: BYREF is new keyword that is a more readable synonymous of '@'.

[GB.DB.FORM]
* BUG: Correctly manage data controls inside TabStrip-like containers.
* BUG: Setting the focus on a non-initialized DataControl does not raise 
  an error anymore.

[GB.GTK]
* BUG: HSplitter.Layout and VSplitter.Layout now work correctly. It is a 
  list of children widths, hidden children having a zero width.
* BUG: Window arrangement is done before the Open event is raised, as in 
  gb.qt.
* BUG: Keyboard, focus and mouse events now work correctly on Window and 
  DrawingArea controls.

[GB.QT]
* BUG: HSplitter.Layout and VSplitter.Layout now work correctly. It is a 
  list of children widths, hidden children having a zero width.
* BUG: Many warning fixes.
* BUG: Now the Control.Visible property works like in gb.gtk, i.e. it 
  returns if the control was not explicitely hidden.


git-svn-id: svn://localhost/gambas/trunk@1060 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-02-06 00:25:48 +00:00
Benoît Minisini
530c729927 [CONFIGURATION]
* NEW: Bytecode version is now 2.99.0.

[EXAMPLES]
* BUG: Fixed the TextEdit example according to the new TextEdit properties.

[INTERPRETER]
* NEW: VarPtr() is a function that returns a pointer to the contents of a
  variable. Only numeric variable that are local, dynamic or static can be 
  used.
* BUG: Fixed the loading of classes whose some variables are Pointer.
  
[COMPILER]
* NEW: VarPtr() is a function that returns a pointer to the contents of a
  variable. Only numeric variable that are local, dynamic or static can be 
  used.

[GB.EVAL]
* NEW: VarPtr() cannot be used with Eval().

git-svn-id: svn://localhost/gambas/trunk@1014 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-01-19 01:36:38 +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