Fix to CONST with the math evaluator to toss a message and error with values out of acceptable range for ARCSEC and ARCCSC.
Tweak to _PI to add constexpr for speedier execution.
Fix to the math tests for the new (and unbuggy) values for ARCSEC and ARCCSC.
As per #362, this raises the limit in increments from 1,000 to a maximum of 25,000 subs and functions for a single QB64PE program. If that number is exceeded, the IDE will give an error message. reporting the issue for the user.
As per the sample code below:
Const a = 5 Mod 2.8
Const b = 5 \ 2.8
Print a; "="; 5 Mod 2.8
Print b; "="; 5 \ 2.8
Old output was wrong. Patch should make the CONST values the same as what QB64 normally generates for us.
- added ability to export as new [qb=export] Forum codebox
- Forum/Wiki exports now go to the clipboard and can directly be pasted into the Forum post or Wiki page
.so files can be stripped such that they contain no "regular" symbol
table but do still contain the "dynamic" symbol table, this is pretty
typical for .so files. QB64-PE is supposed to check both tables when
linking against a .so file, but a bug in ab0c2b18 meant that the second
run of nm with the -D flag to check the dynamic symbol table no longer
happens. The fix is to introduce a new output file for the dynamic run
so that they are handled separately in terms of caching the result.
A new test .so file that only contains a dynamic symbol table was added
to avoid this in the future.
Fixes: #301
Current the -o flag will strip any "extension" on the provided filename,
which is fairly problimatic on Linux and Mac OS since those executes do
not have other extensions and names like "foobar.v1" will get the ".v1"
stripped off. This can happen on Windows as well if you leave off the
.exe (QB64-PE will add it for you, but also strip off the existing
extension).
QB64-PE stripping off the ".exe" when provided that on Linux and Mac OS
might actually be useful behavior people are relying on (so that they
don't need to provide different names when compiling on Linux/Mac OS) so
we are preserving that and still removing the extension if it is exactly
"EXE", otherwise we now leave it in place.
Fixes: #297
The new optional arguments for functions broke _RGB32() because it uses
some custom flags ('overloaded' and 'minargs' on the id Type) to control
its parameter passing. You are allowed passing any number from 1 to 4 args
to `func__rgb32` and there are 4 overloaded C++ functions that will get
picked from. This is different from how this typically would work, with
all 4 parameters always passed and an extra argument to specify the
parameters that were passed.
Rather than change `func__rgb32` I simply adjusted the optional argument
logic to account for the flags used by `_RGB32()` - if the `overloaded`
flag is set, then we don't need to add extra `NULL` parameters for any
parameter that wasn't specified in the argument list. Instead we simply
don't emit anything for those.
Currently functions only have very limited optional argument support,
this expands it so that we can have more complex sets of optional
arguments for functions, such as multiple arguments where not all need
to be provided. This will be used in the future for some upcoming
functionality.
Note that this does not support any generic optional argument format,
the commas always have to be provided unless an optional argument is at
the end of the parameter list. Thus, if you have a format with two
optional arguments and you want to omit the second, then you need to call
it as 'foo(2, , 3)`, rather than `foo(2, 3)`. This is important for
avoiding ambiguous situations, and is how many SUBs currently function.
The two functions that violate that requirement are INSTR() and
_INSTRREV(), which use the format `[?],?,?` and allow omitting the comma
for the first argument. This format is simply handled as a special case.
Fixes: #303
- unused (commented) code
- no longer needed HTML tag handling (eliminated from Wiki pages)
- #toc/#top link filters removed (those links are supported now)
- designate the help page header as target for #toc/#top links (Return to Top, Return to Table of Contents in the Wiki)
- include bottom {{PageNavigation}} links
- implement <h4> headings (==== in the Wiki), used as letter anchors in the alphabetic index
- UTF-8 handling changed to signal missing/unknown chars
- old entity handling (see 1st commit) removed and replaced by a similar method as UTF-8 handling incl. signalling missing/unknown entities
- added dynamic warnings at the top of pages which are using missing/unknown entities or UTF-8
- wikipedia pages can be linked simply as Winkipedia:page instead of the full URL
- advantage: the new syntax can be used in internal links as well and will automatically expanded into external links when clicked
- removed the old (commented out) curl stuff
- add another note to the error message
- simplified the libcurl download loop to use only EOF and not LOF anymore
- add a hidden external curl fallback option, read comments from line 1140 for more info
- former versions did simply link to the top of the referenced page, ignoring the link anchor value (#)
- now links can point to any page section heading and the section (if found) is placed in the visible area
- to try use the links in the bottom nav section on the alphabetical index