1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-07-13 02:15:13 +00:00
Commit graph

3301 commits

Author SHA1 Message Date
Roland Heyder 7038e2527d Fix Wiki downloads (Update all pages)
Better detect deleted/new pages and prevent the problem discussed here: https://qb64phoenix.com/forum/showthread.php?tid=1521
2023-03-19 12:33:24 +01:00
Roland Heyder c52d3bcd28 Add code export abilities
Use File menu > Export As... to export current code as HTML, Rich Text or Wiki example.
2023-03-19 12:27:54 +01:00
github-actions[bot] fd9bd4f3b6 Automatic update of ./internal/source 2023-03-19 05:29:23 +00:00
Samuel Gomes dc4b7d27aa
Merge pull request #317 from a740g/main
Replace zlib with miniz
2023-03-19 10:41:12 +05:30
Samuel Gomes 13a6e209d5
Merge branch 'main' into main 2023-03-19 08:57:53 +05:30
Samuel Gomes 889408acb9 Remove DEPENDENCY_ZLIB related stuff from Makefile 2023-03-19 08:55:02 +05:30
Samuel Gomes 7af6c710cb
Merge pull request #318 from a740g/stb_image_update
Update stb_image.h to v2.28
2023-03-19 08:44:41 +05:30
Samuel Gomes 0581d8dabc Update stb_image.h to v2.28 2023-03-19 07:21:20 +05:30
Samuel Gomes bb74db418e Minor edits to directory names mentioned in license/README.md 2023-03-19 04:27:42 +05:30
Samuel Gomes 71c9155962 Merge branch 'main' of https://github.com/a740g/QB64pe 2023-03-19 04:12:53 +05:30
Samuel Gomes f72aaa7c3c Update tests 2023-03-19 04:12:46 +05:30
Samuel Gomes 5c3fe449e6 Update miniz license 2023-03-19 03:05:29 +05:30
Samuel Gomes 6dd651f7cd Replace MinGW intrinsic zlib with miniz 2023-03-19 02:28:05 +05:30
Samuel Gomes 22c2482826
Merge pull request #314 from a740g/llvm-mingw-windows-aarch64-support
Tiny fixes that allow the IDE to be compiled with LLVM MinGW
2023-03-16 06:11:34 +05:30
Samuel Gomes 097395959c Update Makefile to correctly set BITS when on WoA64 2023-03-04 11:24:44 +05:30
Samuel Gomes 9a48df5842 Remove dummy files from internal/c/parts/network 2023-03-04 09:39:09 +05:30
Samuel Gomes 4dcefd103e Satisfy -Wc++11-narrowing 2023-03-04 07:50:46 +05:30
github-actions[bot] 2cb0db1e28 Automatic update of ./internal/source 2023-02-19 15:11:28 +00:00
Matt Kilgore 51471e6a97
Merge pull request #310 from mkilgore/release-3.6.0
Version 3.6.0
2023-02-19 09:52:09 -05:00
Matthew Kilgore 07822586e8 Version 3.6.0 2023-02-19 03:40:00 -05:00
github-actions[bot] 8d64ca7a04 Automatic update of ./internal/source 2023-02-19 08:27:35 +00:00
Matt Kilgore 0dcce35923
Merge pull request #307 from mkilgore/fix-symbol-dynamic
Fix DECLARE LIBRARY against stripped .so file
2023-02-19 03:08:17 -05:00
Matthew Kilgore fac5375ea6 Fix DECLARE LIBRARY against stripped .so file
.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
2023-02-19 02:10:51 -05:00
github-actions[bot] 7cd5da3d41 Automatic update of ./internal/source 2023-02-18 20:56:37 +00:00
Matt Kilgore 2fe0dd3328
Merge pull request #306 from mkilgore/fix-o-flag-strip-extension
The -o flag should not strip extensions except for .exe
2023-02-18 15:34:51 -05:00
Matthew Kilgore 596a8d6092 Fix formatting 2023-02-18 14:50:31 -05:00
Matthew Kilgore df70f7e708 The -o flag should not strip extensions except for .exe
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
2023-02-18 14:50:31 -05:00
github-actions[bot] 09e854390d Automatic update of ./internal/source 2023-02-13 17:35:30 +00:00
Samuel Gomes fde4d195d7
Merge pull request #286 from a740g/image-load-from-memory-support
Image load from memory support
2023-02-13 22:48:31 +05:30
Samuel Gomes e1e6203db9
Merge branch 'QB64-Phoenix-Edition:main' into image-load-from-memory-support 2023-02-13 19:05:48 +05:30
github-actions[bot] 08e152635b Automatic update of ./internal/source 2023-02-13 12:57:38 +00:00
Matt Kilgore 87de12b43c
Merge pull request #309 from mkilgore/fix-rgb32-opt-args
Fix _RGB32() optional arguments
2023-02-13 07:35:47 -05:00
Samuel Gomes e79537e624
Merge branch 'main' into image-load-from-memory-support 2023-02-13 16:24:36 +05:30
Samuel Gomes 009eb67ac7 Update comments 2023-02-13 16:24:11 +05:30
Matthew Kilgore 3f0c4d9f9c Revert "Automatic update of ./internal/source"
This reverts commit a7ab521c91.
2023-02-13 00:50:00 -05:00
Matthew Kilgore e810229d11 Fix _RGB32() optional arguments
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.
2023-02-13 00:25:51 -05:00
github-actions[bot] a7ab521c91 Automatic update of ./internal/source 2023-02-13 04:39:51 +00:00
Matt Kilgore f2171ccf34
Merge pull request #305 from mkilgore/allow-optional-arg-funcs
Add support for optional function arguments
2023-02-12 23:21:32 -05:00
Matthew Kilgore 0836cf31eb Format source, apply Option _Explicit in tests 2023-02-12 22:38:50 -05:00
Matthew Kilgore 83533dc319 Add support for optional function arguments
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
2023-02-12 22:38:50 -05:00
Matt Kilgore 47639507ff
Merge pull request #295 from mkilgore/fix-timer-first-run
Fix timers at program start, TIMER STOP, and Sleep with console
2023-02-12 22:08:55 -05:00
Matthew Kilgore d4ed371681 Stopped timers don't trigger on TIMER ON
If a timer expires while stopped, it should trigger when TIMER ON is
run. Instead, on QB64 it triggers randomly after the TIMER ON happens.

The basic issue is that `qbevent` needs to be set to trigger the timer,
but TIMER ON doesn't do that. The regular timer logic that does that
already set it when the timer expired while sleeping, so it won't set it
again. The simplest solution is to just alway set qbevent = 1 when TIMER
ON is done. It's slightly less efficent but doesn't hurt to set it even
when there are no timers that expired.

Fixes: #293
2023-02-12 21:27:25 -05:00
Matthew Kilgore f995f38e38 Using Sleep with Console programs does not trigger timers
The command Sleep is supposed to allow timers to trigger while the
program is sleeping on the delay. This is achieved in QB64 by having
commands that do delays manually call evnt() to trigger events if they
come up (of which timers are one).

Sleep has a custom implementation for console programs on Windows which
doesn't do this, so I redid the logic so that it calls evnt() at regular
intervals while waiting for input. Additionally, due to now calling
evnt() we also need to check if we should exit sleep early due to an
evnt() firing.

Fixes: #294
2023-02-12 21:27:25 -05:00
Matthew Kilgore 924472f5d6 Fix timers not firing at the start of the program
Timer's were not firing at the right time if they were started shortly
after the program started, instead they would fire at twice the interval
time (and then work correctly after that).

The issue was a mistaken assumption about `time_now`, with the idea that
if `last_time == 0` then `time_now` will be large enough such that the
interval check will pass. This is wrong because in most cases `time_now`
starts at zero at program start, so when `last_time == 0` it will take
one full interval of the timer before `time_now` is large enough for the
interval check to pass (at which point the timer is initialized and runs
normally).

This simply refactors the timer logic so that `last_time == 0` is
checked first, rather than if the interval has expired. This doesn't
change how the normal logic works, but ensures that the value of
`time_now` does not matter for initializing a timer.

Fixes: #273
2023-02-12 21:27:25 -05:00
github-actions[bot] a3ccfbc6db Automatic update of ./internal/source 2023-02-12 23:39:33 +00:00
Roland Heyder 0568d73fd8
Merge pull request #308 from QB64-Phoenix-Edition/wiki-dev 2023-02-13 00:21:15 +01:00
Samuel Gomes f86d566d7a Merge branch 'image-load-from-memory-support' of https://github.com/a740g/QB64pe into image-load-from-memory-support 2023-02-13 03:52:28 +05:30
Samuel Gomes 52d168ff00 Update to use #305 2023-02-13 03:52:16 +05:30
Roland Heyder 275ca24c9a General refactoring
- things not fitting into the previous commits
2023-02-12 19:47:01 +01:00
Roland Heyder b1c9733420 Removes old code
- unused (commented) code
- no longer needed HTML tag handling (eliminated from Wiki pages)
- #toc/#top link filters removed (those links are supported now)
2023-02-12 19:41:25 +01:00