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

1267 commits

Author SHA1 Message Date
Matthew Kilgore
b301e2acf5 Fix chmod +x when filename has spaces
We were missing some quotes in the command line strings, so if there
were spaces involved `chmod +x` would not work correctly.
2022-09-04 23:35:14 -04:00
Matthew Kilgore
2b3403745c Add initial MIDI language support
This adds MIDI support to the language as a new unstable feature. There
are two new metacommands that come with this:

$Unstable: Midi
$MidiSoundFont: [Default|"filename"]

The $Unstable command is required to be able to use any of the other
commands, and just signifies that this is not a full part of the
language yet and may change in breaking ways before the API is
finalized.

The $MidiSoundFont command enables MIDI support in the compiled program,
and also specifies what sound font to use to play MIDI files. "Default"
will make use of the soundfont placed at
'./internal/support/default_soundfont.sf2', and otherwise a filename can
be specified to use any soundfont wanted.

In either case, the selected sound font is compiled into the executable
and then loaded at runtime.

Fixes: #115
2022-09-04 23:35:14 -04:00
Matthew Kilgore
fcc1444910 Version v3.1.0 2022-09-03 14:31:30 -04:00
Samuel Gomes
a2cd317d6a Change SHR & SHL to camel case per discussion in https://github.com/QB64-Phoenix-Edition/QB64pe/pull/153 2022-09-01 21:39:30 +05:30
Samuel Gomes
028017b21a Change ROL and ROR names to Camel case per discission in https://github.com/QB64-Phoenix-Edition/QB64pe/pull/153 2022-09-01 21:30:23 +05:30
Samuel Gomes
f99eb27717 Remove all _SHR & _SHL changes 2022-09-01 16:15:42 +05:30
Samuel Gomes
2ed17f6198 Add _ROR & _ROL support. Fix issues with _SHR & _SHL 2022-09-01 06:51:06 +05:30
Matthew Kilgore
333bc6231d Allow selecting audio backend in IDE
This change allows selecting the audio backend to use in your compiler
programs. The selection can be made via the 'Compiler Settings' dialog
in the IDE (renamed from the 'C++ Compiler Settings' dialog).

The new miniaudio backend is the default, a checkbox for "Use old audio
backend" exists in the IDE for switching back to the old backend (in the
event someone runs into compatibility issues or etc.). Eventually we'll
drop the old one.
2022-08-27 14:27:55 -04:00
Roland Heyder
2b967dc124 Update version.bas 2022-08-26 15:05:07 +02:00
Roland Heyder
b7f2bb7199 Fixing sizing logic
- unveiled by MacOSX (Actions failure)
2022-08-25 02:58:50 +02:00
Roland Heyder
51667125c9 Avoid excessive disk access while typing
- No longer constantly (over)writes files in the `internal\temp` folder while typing in the IDE, as the generated C/C++ code is buffered internally now.
- Buffers are automatically written out to disk on a `Make` request (F5/F11).
2022-08-25 01:14:29 +02:00
Roland Heyder
46790c420f Step 22: There's always something else
- also removed changelog.md from make_dist.sh
- make `curl` really quiet with >NUL, --silent does suppress the progress display only
2022-08-19 00:26:13 +02:00
Roland Heyder
b63478b602 Step 21: Finalize this PR for merge
- reset .gitignore to disallow any internal\help uploads again (folder is created during build now)
- get rid of old changelog (changes can better be summarized at release pages)
- added a change by @dkearns from the old QB64Team repository (comment highlighting after `REM`)
2022-08-18 23:41:13 +02:00
Roland Heyder
9c5664e788 Step 18: I'll KILL that damn Cat !! 2022-08-14 18:25:02 +02:00
Roland Heyder
312a24fea2 Step 17: All done !!!
Final adjustments in Wiki stuff.
2022-08-14 15:54:55 +02:00
Roland Heyder
bee9f10bfd Step 16: More fixes
- the pure fact we're running the qb64pe executable causes creation of file tempfoldersearch.bin on LNX/OSX only, which must be deleted after run (this caused LNX/OSX checks to fail)
- Wiki parser: added $ to the list of critical file name chars (LNX/OSX doesn't like those)
2022-08-13 10:54:32 +02:00
Roland Heyder
a402ae4429 Step 14: So all good things are three
- also switched curl to silent mode to shorten build logs
2022-08-13 02:44:11 +02:00
Roland Heyder
14f2cd29e0 Step 13: Fixing build errors 2022-08-13 01:58:16 +02:00
Roland Heyder
756eb6ac68 Step 12: Implement automatic help file update
- changes to update code (ignore static _GL pages as mentioned at Discord https://discord.com/channels/975381912350752819/975389657212805160/1007683254792507412 )
- dist script changes
- update internal/help to contain static _GL pages only
2022-08-12 22:54:59 +02:00
Roland Heyder
2ec897b75d Step 10: Update remaining stuff
- checks all remaining occurrences of the term 'qb64', some remain untouched, some are renamed according to context
- also added new logo for README.md
- this step does finalize the 'Phoenix Edition' re-branding
2022-08-12 02:54:12 +02:00
Roland Heyder
db6081b1ae Step 8: Rename other involved file extensions
- qb64*.bat, .sh, .command, .desktop, .sym to qb64pe*.* respectively
- Excludes mentions in the help (*.txt) files
2022-08-11 22:53:01 +02:00
Roland Heyder
e68582b6f2 Step 7: Rename qb64.exe to qb64pe.exe
- Includes related LNX/OSX files
- Excludes mentions in the help (*.txt) files
2022-08-11 18:07:57 +02:00
Roland Heyder
0bd6afd389 Step 6: Rename qb64.bas to qb64pe.bas
Mentions in the help (*.txt) files are excluded.
2022-08-11 02:11:35 +02:00
Roland Heyder
4dd8d8f5ec Step 4: Update Windows icon & resource file
- int/src/icon.ico (replaced image but same name, dynamically created from given $EXEICON)
- int/src/icon.rc (updated but same name, dynamically created from given $VERSIONINFO)
- int/src/qb64.ico and src/icon.rc removed (not used anymore since dynamic creation was implemented)
- src/qb64.bas updated (rename comes in a later step)
- src/qb64.ico replaced and renamed
2022-08-10 02:03:12 +02:00
Roland Heyder
9b4b7992d4 Step 2: Update Linux icon file
Replaced and renamed icon file and moved it into the regular source folder, adjusted references in setup_lnx.sh
2022-08-10 00:48:56 +02:00
Roland Heyder
c9e709bc68 Adjust blockquote color
Will use the "Comment color" of the current color scheme.
2022-08-02 14:49:11 +02:00
Roland Heyder
73debad50e Add plugin exchange for tables
If a template plugin is available for a table, then use it in the IDE help.
2022-08-02 13:36:10 +02:00
Roland Heyder
b25c8b55a9 Improved help rendering
Headings enforce a blank line before it as separation to the previous section. Definition lists are rendered in blockquote style as in the Wiki, also enforce blank line separation.
2022-07-31 23:31:42 +02:00
Roland Heyder
decdde5cdc Some more tweaks
Beside local #toc links also ignore #top links (top of page).
2022-07-20 16:23:18 +02:00
Roland Heyder
5a4687f1b4 Added some comments 2022-07-17 18:59:27 +02:00
Roland Heyder
4aff0cc49c Update plugins recursively
Update current page must include all used plugin templates, hence ignoring the cache for the whole process.
2022-07-17 00:34:51 +02:00
Roland Heyder
d6d9c15a14 Added plugin templates
Works like $INCLUDE, but for help text. Meant to outsource recurring text into a template and plug it in where needed.
2022-07-16 23:42:05 +02:00
Roland Heyder
11dae1ccbf Fixed headings
Makes headings detection more reliable, also revised syntax notes.
2022-07-16 23:34:26 +02:00
github-actions[bot]
72d801e0cd Fix linking static libraries on Windows
In QB64, when linking with an external static library `nm.exe` is used
to determine whether the symbol being used is either a C or C++ symbol,
which determines how the function should be declared in the C++ code.

Unfortunately on Windows the `SHELL` command for `nm.exe` is missing the
`cmd /c`, which means the redirection does not work and consequently
we're unable to find the function declaration via `nm.exe`, which causes
the compilation to fail.

In addition to fixing this, I added tests for `DECLARE STATIC LIBRARY`
for all supported platforms.

Fixes: #112
2022-07-09 14:59:33 -04:00
github-actions[bot]
863029ddfd Math evaluator: values that round to zero can crash QB64pe
The math evaluator already contains a few checks for zero when we're
executing operations that could cause a `Divide By Zero` error, but the
actual value input is floating point and can get rounded to zero when
the operation happens. This effectively allows zero values to bypass the
checks to prevent them from being evaluated.

To avoid the error completely we need to check that the rounded value is
not zero, rather than the initial value. FIX() is used to make sure
values such a `-.1` round to zero and are avoided. I also applied FIX()
when we actually execute the operation, just to ensure the same
behavior.
2022-07-09 03:23:20 -04:00
Roland Heyder
04b3d5e42a Semi-support local links
Rather than declining page local links completely, simply link to the top of the respective page, except if it's on the currently displayed page.
2022-07-06 16:13:02 +02:00
Roland Heyder
c20d80235f Improves table info box with direct link 2022-06-23 23:50:56 +02:00
Roland Heyder
5f039415bf Add plus (+) to the list of critical chars 2022-06-15 11:19:26 +02:00
Roland Heyder
e539497126 Fix command templates
This does fix the human readable syntax entries according to wiki issues #79 and #91.
2022-06-13 02:15:25 +02:00
Roland Heyder
bfd12fc44f Add missing CRLF substitution 2022-06-12 17:06:13 +02:00
Roland Heyder
63c523ba38 Fix URLs containing ampersands
Escapes & in Wiki page URLs (eg. &B, &H, &O) and in external links (eg. many MSDN links)
2022-06-12 17:05:18 +02:00
Roland Heyder
e01b29c9a2 Merge branch 'main' into wiki-dev 2022-06-11 23:27:25 +02:00
Roland Heyder
74ca4c9da6 Add apostrophe HTML entity 2022-06-11 17:52:18 +02:00
Roland Heyder
6efdd43a2a Avoid additional new line at EOF 2022-06-11 17:50:14 +02:00
Matthew Kilgore
58cccc19fa Update version to v0.8.2 2022-06-10 22:35:38 -04:00
Matthew Kilgore
931a9dd272 Fix C++ Compiler Settings menu 2022-06-10 22:31:56 -04:00
Matthew Kilgore
5bb2c7017c Update version to v0.8.1 2022-06-10 16:53:12 -04:00
Matthew Kilgore
f7b1427a89 The C++ settings menu reuses existing shortcut key
The C++ compiler Settings menu uses the shortcut key 'o', but that's
actually already in use and thus creates a conflict. We're switching it
to use the option 'm', which does not conflict.

Fixes: #105
2022-06-10 12:51:35 -04:00
Matthew Kilgore
d36edad30c Fix compilation of files with $ in the name
This is a bit of an odd one, but files with $ in the name don't compile
correctly due to expansion being done on the $.

The culprit here is `make`, as the syntax '$x' is interpreted to mean to
insert the expansion of the variable 'x'. To avoid this behavior we have
to replace every single $ with $$. Make will interpret the $$ to mean it
should insert a single $ and not do any expansion, which is what we
want.

Fixes: #96
2022-06-10 10:42:49 -04:00
Prajwal Borkar
23f45ea5cf
Fixed Typo 2022-06-08 12:25:31 +05:30
Matthew Kilgore
734f653ce8 Update version to 0.8.0 2022-06-07 16:57:33 -04:00
Roland Heyder
f6d4e27b54 Different colors for bold/italic styles 2022-06-07 13:24:11 +02:00
Roland Heyder
8d8fc3b7fb Implement handling for 'Parameter' template 2022-06-07 00:50:13 +02:00
Roland Heyder
a4ffe65525 Reset text styles on block entry
Avoid leaking of unclosed text styles from regular text into any block.
2022-06-07 00:46:43 +02:00
Roland Heyder
97c04c5552 Fixes to blank line checks. 2022-06-03 16:53:30 +02:00
Roland Heyder
021d8068c1 Merge branch 'main' into wiki-dev 2022-05-31 17:53:05 +02:00
Matthew Kilgore
738aed5fd1 Combined Advanced C++ with C++ Compiler settings
The "Advanced (C++)" dialog was removed, putting the single setting into
the new C++ Compiler Settings dialog.
2022-05-30 23:15:04 -04:00
Matthew Kilgore
2d919768ac Add C++ compiler settings dialog
The new dialogs includes 5 settings:

1. Flag to turn on Optimization (off by default)
2. Flag to strip symbols (On by default)
3. String for extra compiler flags
4. String for extra linker flags
5. Setting for max compiler processes (default of 3)

Fixes: #65
Fixes: #40
2022-05-30 23:15:04 -04:00
Roland Heyder
a4d0347ce8 Add support for number (ordered) lists
The respective wiki tokens are recognized, but will be handled as simple dot list.
2022-05-31 01:31:01 +02:00
Roland Heyder
7b91fdc592 Add -u command line switch
- `qb64 -u` can be used during build to populate internal/help, it basically invokes the "Update all pages" action from the IDE's Help menu
- switch is not listed in -? usage help, as I consider it a hidden build-only option
2022-05-31 00:56:32 +02:00
Roland Heyder
24250e4ce2 Addressed issue #76
- Update loop is aborted on error.
- Instead of the error popup, a dynamically generated error page is shown with a link to the `curl` download page and some simple instructions.
2022-05-30 03:15:36 +02:00
Roland Heyder
7f66c30bb4 Do CRLF substitution once in download stage. 2022-05-28 10:26:49 +02:00
Matthew Kilgore
182a48db95 Bump version to v0.7.1 2022-05-22 23:59:16 -04:00
Matthew Kilgore
9e2177deff Allow EXE name to have spaces in it
Makefile's generally hate spaces in filenames, and it's largely
impossible to make them work. Due to that, with the change to use a
`Makefile` the `EXE=` parameter did not work with spaces, and programs
such as "foo bar.bas" would not compile because it produces "foo
bar.exe" which has a space in the name.

There were options here, but in this very specific case it is actually
possible to allow the Makefile to work with spaces. `EXE` is only a
single filename, so as long as we always quote it correctly and the
provided `EXE=` parameter escapes the spaces with `\` then it will work.

Thus, we modified the Makefile to always do the quoting, and modified
QB64 to automatically escape the spaces in the executable name provided
to the Makefile.

I also modified the `compile_tests` to test that spaces in filenames and
paths of the executable correctly compile.

Fixes: #80
2022-05-22 23:59:06 -04:00
Roland Heyder
77642ba91b Merge branch 'main' into wiki-dev 2022-05-22 01:04:02 +02:00
Roland Heyder
3304aab884 Fixes to pending PR issues
3. Fixed click sensibility, external links are not triggered randomly.
2022-05-22 00:40:03 +02:00
Roland Heyder
c0a7ea1d85 Fixes to pending PR issues
1. Fix missing links.bin issue (pop up to request user choice).
2. Fix increasing number of files when selecting "Update all pages" multiple times.
2022-05-21 19:53:54 +02:00
SteveMcNeill
c1d12259cb Added to win setup to clean up the mingw compiler after installation.
Fixed the issue where some Linux distros won't clean up the exe when Run Only is selected in the menu bar.

Fixes: #16
Fixes: #54
2022-05-21 12:25:41 -04:00
Roland Heyder
bec7e9cdf4 Merge branch 'main' into wiki-dev 2022-05-21 00:23:32 +02:00
Roland Heyder
78a04387b3 New Wiki parser finished 2022-05-20 23:44:55 +02:00
Matthew Kilgore
95c57c182c Supply a default version label when no version has been calculated
When building directly from the repo (either from a git clone or a
download of the zip of the repository) the version reported is very
misleading because it will not have a version label, suggesting it is
actually a 'release' version when in fact it could be anything.

The ./.ci/calculate-version.sh logic is already setup to delete an
existing ./internal/version.txt during a detected release build, so we
can just place one in the repositroy and it won't impact the versioning
of CI and release builds, but will show up when building locally.

Fixes: #63
2022-05-20 16:57:45 -04:00
Roland Heyder
f5dbe9bc17 Improved cache filename handling and external links
Cached wiki file names get a spelling label for case insensitive systems. External links are working (clickable) now and open in the standard application.
2022-05-20 01:41:05 +02:00
Roland Heyder
27a59e5b5e Useless style removal in blocks 2022-05-19 01:45:25 +02:00
Roland Heyder
4af4db7584 Merge branch 'main' into wiki-dev 2022-05-19 01:40:16 +02:00
Steve McNeill
da1978915a
Merge branch 'main' into main 2022-05-18 12:14:17 -04:00
SteveMcNeill
459c8a216d Update ide_methods.bas 2022-05-18 11:12:49 -04:00
Matthew Kilgore
4a8a7ce594 Redirect stderr to compilelog rather than errorcompilelog
Having two separate files for the compile output is just too confusing,
and it adds an extra file users need to look at and give us when there
are issues. This change simply makes qb64.bas send both the stdout and
stderr output to compilelog.txt.

Fixes: #61
2022-05-18 09:20:30 -04:00
SteveMcNeill
bd3b673996 test change to IdeAddSearched 2022-05-18 07:10:59 -04:00
Roland Heyder
3391b83682 Improve underline and list appearance
Also added a page header with title and last update.
2022-05-18 02:15:36 +02:00
SteveMcNeill
7420504f42 reorder ubound check 2022-05-17 09:25:21 -04:00
SteveMcNeill
ef875607ff Fix to endless loop in retrieving search History
Replaced both instances with one single sub to reduce code and make things easier to maintain and upkeep.  It's always easier to work in one spot than it is in multiple.
2022-05-17 07:50:18 -04:00
Roland Heyder
acf9e0ff02 Fixes to Blocks and centered text 2022-05-16 01:35:22 +02:00
Roland Heyder
a62e74ae31 Merge branch 'main' into wiki-dev 2022-05-15 11:28:35 +02:00
Roland Heyder
40937c906d Tidy up wiki stuff
Moved code blocks into more logic order, added comments, almost done now
2022-05-15 02:45:45 +02:00
Matthew Kilgore
73c1c7245d Turn off optimization for now
We'll turn this on later when we have it better sorted out.
2022-05-14 12:15:35 -04:00
Roland Heyder
eab0e4cd45 Add handling of InlineCode template 2022-05-13 22:49:53 +02:00
Roland Heyder
6266fab2bd Improves 'small' template handling
Also <span... inline elements got fixed + some minor code optimization
2022-05-13 13:53:58 +02:00
Roland Heyder
64fa73aab7 Improved wiki page/file name validation 2022-05-13 13:49:19 +02:00
Matthew Kilgore
4d61ff7995 Fix quoting on Windows Resource files 2022-05-12 00:53:24 -04:00
Matthew Kilgore
794f76a534 Provide CFLAGS_EXTRA 2022-05-12 00:21:02 -04:00
Matthew Kilgore
11ec9237a3 Add support for mylib$ and mylibopt$ 2022-05-12 00:21:02 -04:00
Matthew Kilgore
23ef0aeca8 Add more tests and dynamic library support 2022-05-12 00:21:02 -04:00
Matthew Kilgore
d18fc78fcd Formatting 2022-05-12 00:21:02 -04:00
Matthew Kilgore
2a4b637412 Separate _ICON usage from icon.rc
The Makefile was incorrectly tying together _ICON and icon.rc, making it
impossible to use one without the other. To fix this we introduce a new
DEP_ICON_RC flag, which indicates we need to use the icon.rc file (in
addition to regular icon support). DEP_ICON now only indicates we need
to support _ICON, and does not attempt to build the resource
information.
2022-05-12 00:21:02 -04:00
Matthew Kilgore
cfb86d2c8f Stop running windres from qb64.bas
Makefile does this
2022-05-12 00:21:02 -04:00
Matthew Kilgore
30c620cfda Initial qb64.bas changes 2022-05-12 00:21:02 -04:00
Roland Heyder
da02b2aa61 Ignore custom TOC tables
No info box is generated for manual "TOC only" tables.
2022-05-11 15:49:00 +02:00
Roland Heyder
1babd153ef Fix template handling
Avoid optional template parameters (usually color specs) leaking into the help text.
2022-05-11 02:01:22 +02:00
Roland Heyder
1db84177f6 Add more UTF-8 replacements 2022-05-10 18:32:33 +02:00
Roland Heyder
965cb4de79 Wiki parser overhaul
Turned almost every stone, work still in progress.
2022-05-10 14:43:53 +02:00