I spent a few minutes today seeing if I could narrow down a sequence that will recreate the ocassional crashes.
Using the released version (15.08.8) I got 4 crashes out of 5 attempts.
I then switched to the development environment running 16.05.dev0 and I got 1 crash out of 1 attempt.
Since the development environment doesn't seem to be intimately involved in obvious permission issues in Windows 7, it may lower the probability of that hypothesis. Let me know if you would like me to get more information in the development environment.
I've documented all my attempts in the attached PDF file.
Some of the details of the crash on 16.05.dev0 are below via cut and paste.
DEV-A:16.05.dev0 Attempt 1.5 : Crash
Started
Moved screen to left screen
Load “evronnunc.bas”
File not found
Files [copied BAS programs to directory]
Files
Load “evronuc.bas”
Run [Enter][Enter]
screen 0,0,0
Screen 0
Screen 1
Screen 0
load “evronwrd.bas”
Run
CRASH
Python.exe has stopped working
A problem caused the program to stop working correctly.
Windows will close the program and notify you if a solution is available.
EVRONWRD.BAS
Oops, I forgot this was a "binary" file. But it's the one I used, so here it is.
10 REM Ever Onward
20 '
30 ' The following was taken from the inside cover of the sheet music for
40 ' Ever Onward, The IBM Rally Song.
50 '
60 ' "The IBM rally song, Ever Onward, was written in 1931 by IBMer Fred
70 ' Tappe. This rousing number was only one of many songs written and sung
80 ' by the company's marketing representatives, students, managers and
90 ' employees whenever they gatehered for group meetings.
100 '
110 ' "During the 50's and 60's, changing social emphasis precipitated a
120 ' decline in group singing. The lyrics were rewritten in 1958 and sung
130 ' mainly by marketing students in IBM schools. But the company sing-along
140 ' has continued its steady decline; today the strains of Ever Onward
150 ' echo only on old film soundtracks in the company's archives and in the
160 ' memories of longtime IBMers."
170 '
180 ' This arrangement for IBM PC was done by W. E. Schmitt, IBM Charlotte 1982; tie 8-474-3511.
190 '
200 CLS
210 KEY OFF
220 PRINT SPC(25);
230 COLOR 16,7
240 PRINT "EVER ONWARD"
250 COLOR 7,7
260 PRINT
270 PRINT SPC(10);"The IBM Rally song, written by Fred Tappe"
280 PRINT SPC(10);"Arranged for IBM PC by W. E. Schmitt"
290 PRINT SPC(29);" IBM Charlotte"
300 PRINT
310 WORDS1$="There's a feeling ev'ry where of bigger things in store --"
320 WORDS2$="Of new horizons coming into view."
330 LINE1$="o3mnt160l4bb8o4dd8o3gg8bb8ee8ee8mle."
340 LINE2$="mnee8f#e8de8f#g8aa#8mlb.b.mnb."
350 WORDS3$="Our aim is clear To make each year exceed the one before"
360 WORDS4$="Staying in the lead in ev'rything we do."
370 LINE3$="d.bb8o4dd8o3gg8bb8ee8ee8mle."
380 LINE4$="mnef8f#e8de8f#g8ab8mlg.g.g.mng"
390 WORDS5$="The will to win is built right in It will not be denied."
400 WORDS6$="And we will go ahead we know by working side by side."
410 LINE5$="g8f#f#8aa8o4dd8o3aa8f#f#8aa8o4mld.mnd"
420 LINE6$="o4d8dd8dd8dd8dd8dc8o3af#8d2."
430 WORDS7$="Ever Onward, Ever Onward"
440 LINE7$="o3mnt160l4d.e.f#.g.f#.g.g#.a."
450 WORDS8$="That's the spirit that has brought us fame -------"
460 LINE8$="ga8bg8ab8ag8e.mle.mne"
470 WORDS9$="We're big but bigger we will be"
480 LINE9$="e8d#e8gf#8f#f8f#."
490 WORDSA$="We can't fail for all can see"
500 LINEA$="ff#8ag8gf#8g."
510 WORDSB$="That to serve humanity has been our aim -----"
520 LINEB$="f#g8ba8ag#8ae8f#g8a.mla.mna"
530 WORDSC$="Our products now are known ----- in ev'ry zone ----"
540 LINEC$="d8c#d8g.g.mlg.mngd8e.f.mlg.mng"
550 WORDSD$="Our reputation sparkles like a gem -------"
560 LINED$="g#8aa8ab8o4c#c#8o3ba8o4d1"
570 WORDSE$="We've fought our way thru and new "
580 LINEE$="c8o3af#8d.e.f#.g."
590 WORDSF$="Fields we're sure to conquer too"
600 LINEF$="f#f#8gg8g#g#8a8"
610 WORDSG$="For the Ever Onward I B M --------"
620 LINEG$="g#8a8bo4c8de8o3b.a.g1p2"
630 PRINT WORDS1$: PRINT LINE1$
640 PRINT WORDS2$: PRINT LINE2$
650 PRINT WORDS3$: PRINT LINE3$
660 PRINT WORDS4$: PRINT LINE4$
670 PRINT WORDS5$: PRINT LINE5$
680 PRINT WORDS6$: PRINT LINE6$
690 PRINT WORDS7$: PRINT LINE7$
700 PRINT WORDS8$: PRINT LINE8$
710 PRINT WORDS9$: PRINT LINE9$
720 PRINT WORDSA$: PRINT LINEA$
730 PRINT WORDSB$: PRINT LINEB$
740 PRINT WORDSC$: PRINT LINEC$
750 PRINT WORDSD$: PRINT LINED$
760 PRINT WORDSE$: PRINT LINEE$
770 PRINT WORDSF$: PRINT LINEF$
780 PRINT WORDSG$: PRINT LINEG$
790 END
I'm going to try to see if I can recreate the crash on a Win64 VM with these precise instructions - if yes, then I can also investigate on my end - if not, perhaps it has something to do with different drivers, making things more difficult.
If you have time, one thing that would also be very useful to find out is whether the issue arises with the SDL2 interface in the development branch. To use this you need to put the SDL2 binary from https://www.libsdl.org/download-2.0.php somewhere on your drive and set the environment variable PYSDL2_DLL_PATH to that location (sorry, more pain). You can then start PC-BASIC with the option --interface=sdl2.
I'm hoping that the sound crash issue is limited to Pygame/SDL1.2 and that the SDL2 library doesn't have the problem, as I intend to replace the Pygame interface with SDL2 (or at least make SDL2 the default) after ironing out a few more issues with it.
Thanks again for your work, do keep me updated!
Rob
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I made another couple of attempts today. 2 Crashes in the development environment. One unsuccessful attempt with SDL2 where I couldn't get it to run in a LiClipse environment with the --interface=sdl2 option. I may have to go solve the mysteries around when things work and don't work with ansipipe in the mix. That may prevent progress here unless there is an equivalent .INI setting? Let me know.
At any rate, there was a slightly different result with Attempt 2.1 in the development environment, but the screen disappeared and a message was left behind in the LiClipse console:
Fatal Python error: (pygame parachute) Segmentation Fault
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
I also tried less steps in Attempt 3.1 and got a crash with the fewest commands so far.
I've attached the latest PC-BASIC Crash Notes document.
Ken
Hi Ken, thanks for this - my compliments on the excellent detail in your logs!
The segmentation fault indicates there is a crash occurring in Pygame (or its underlying SDL1.2). That means it's a bug in that library or in SDL1.2. The best we can hope is to find workaround to avoid triggering it - for which what you're doing now could prove very useful, if we manage to narrow down the conditions when it happens. If we manage to reliably reproduce it and narrow it down we can send a bug report to the Pygame project.
There is a possibility they have already found this bug and solved it in their development code. Unfortunately Pygame has not seen a new release for a long time... It would be useful to know which version of Pygame you're using though. The quickest way to find out is to run pcbasic -v --debug which should output (among other things) a list of Python modules and their versions. I think the newest released version for Windows is 1.9.2a0, but 1.9.1 is also common.
SDL2 also appears to crash through a problem in the library. I may be able to reprouce this one on my Win64 VM - it doesn't seem to happen on Win32. Here we have a better chance of it being fixed by the project itself since SDL2 is seeing more active development. I have also found forum posts on the internet describing a crash in SDL2 happening on Win64 which went away upon recompiling the binary either with another compiler or on a Win64 rather than a Win32 machine, I'm not sure.
I'll try to reproduce the crash and see if recompiling fixes the issue, in which case I can simply supply my own compoiled SDL binary with the PC-BASIC package.
Rob
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi, apologies, it appears thet the last relese version did not include ansipipe - as a consequence you won't be able to see output on the ocmmand line. It should work with the development version if you're suing ansipipe-launcher, but perhaps LiClipse gets in the way somehow.
Could you try with the following options: pcbasic -v --debug --logfile=debugout.txt
Thast should ensure the command-line output ends up on debugout.txt.
Thanks!
Rob
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi Ken, on emore thing regarding SDL2: I noticed from your notes that you're using the x64 version. I just set up a dev environment on a 64-bit Windows 7 VM and I noticed that, counter-intuitively, I needed to use th x32 version of the SDL2 DLL. The x64 version leads to an immediate error (which would look much like a crash of PC-BASIC). I don't know why this is but presumably Python is a 32-bit executable, so it needs to link to the 32-bit library. Could you try with the 32-bit SDL2 DLL as well?
Thanks again for your help - I really have a sense that we may be able to pin down and solve the 64-bit crashes this way!
Rob
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I downloaded and tried... however, I don't actually think I'm successfully running with the --interface=sdl2 in the development environment. See Recreate Sessions 3.2, 4.1 and 4.2 which all didn't seem to successfully launch PC-BASIC at all.
Does the --interface=sdl2 option work for the Release 15.08.8 version? If so, I could try from a command line with that version, although I had ansipipe problems... I'll have to probably clarify what works and doesn't work for me regarding starting the release version from the command line.
Bottom line: I don't think I'm successfully getting the %PSYDL2_DLL_PATH% variable set when running from the development versions due to what I'm seeing with attempts 3.2, 4.1 and 4.2.
Regarding SDL2: in your notes you refer to %PSYDL2_DLL_PATH%. Note that there is a typo in this, the variable should be %PYSDL2_DLL_PATH% (i.e. with the S and Y the other way around). Not sure if that's just a typo in the notes, but if you set the variable with the former name then it will not work.
Maybe it's best if we check first what happens if you try to load the sdl2 module in Python. In other words, no PC-BASIC and no ansipipe, just run Python from the Windows C:\> prompt. First set the environment variable to the directory where you've put the 32-bit SDL2:
You should see Python's version string and a >>> prompt at which you type import sdl2. If this works correctly, there should be no output at all. You can exit Python with quit():
>>>importsdl2>>>quit()
If there is a problem with the DLL or the environment variable, you should get an error message here, which could point us to how to solve this issue.
In other news, I have followed your steps with the Ever Onward programs in my Win64 VM but I do not get any crash - for me it works correctly both with pygame and with sdl2. I'll push it around a bit more to see if any crash happens but it looks like (unfortunately) I still can't reproduce the issue - suggesting it only shows up with certain hardware or certain drivers. I'm still hoping SDL2 (once it works) won't crash on your machine either...
Cheers
Rob
Last edit: Rob Hagemans 2016-06-12
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
To answer your other question, the --interface=sdl2 option does not work with the release version. The command line output issues with that version are because I forgot to include ansipipe in the package (will do better next release :)
There are a few more things we can try with the 15.08 release version though. Pygame/SDL1.2 responds to a number of environment variables (see http://sdl.beuc.net/sdl.wiki/SDL_envvars for more info). In particular, the following would be good to try to set before starting the release version and seeing if it crashes:
Apparently the disk audio driver should send the output to a raw audio file called sdlaudio.raw. You can change name/location of that file by setting another environment variable SDL_DISKAUDIOFILE.
Rob
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi Ken, I've packaged the SDL-based version as a pre-release, which you can install alongside the 15.08 version. You can get it from GitHub. Let's hope it finally releases us from those crashes!
Rob
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks Rob. I'm "still on" regarding investigating this, so will try it out
as soon as I can. I got sidetracked with some work items and a wedding of a
daughter at our house In a couple of weeks. My wife is insisting her
projects have higher priority! :)
Sorry for the delay, but I Hope to finish answers to previous questions and
try your new version soon.
Hi Ken, I've packaged the SDL-based version as a pre-release, which you
can install alongside the 15.08 version. You can get it from GitHub https://github.com/robhagemans/pcbasic/releases/tag/16.06.0rc0. Let's
hope it finally releases us from those crashes!
Hi Rob, I got around to looking at this again.
I confirmed I could still recreate the original symptoms at the 15.08.8 level. (2 crashes in 3 attempts.)
Then I installed 16.06.0rc0 and tried another 3 recreate attempts.
The good news: there were no outright "crashes."
The bad news: I had 3 hangs in either attempting to play the music, or in entering commands after the music successfully finished.
I'm attaching an updated "PC-BASIC Crash Notes.pdf"
The notes on the 6 attempts (3 at 15.x and 3 at 16.x) are in the section "2016-07-23 Recreate Session 5 (RS5)" on page 7.
I didn't get around to resolving the issues with the command line python environment and typos in my envioronment variables. I recorded the Action Item in the "Pending Actions" section AI-01:Open on page 22. I was hoping the new development release would resolve the issues.
It could be that these Windows 7 environments are getting too old. I'm migrating to a new Dell XPS 13 running Microsoft Windows 10 Home Edition. But I'll be keeping the X220 with Windows 7 around as long as it keeps running.
<TANGENT>
As a side note on the Dell XPS 13. I got this XPS 13 system from CostCo, and it seems to be pretty good deal. $1,400 for 16GB / 512GB SSD. But I found it odd that it came with Windows 10 Home Edition rather than Windows 10 Pro as listed on the Dell website. As I had toyed with the idea of running Hiper-V, I searched for information on this XPS 13 model to see if it supported Hiper-V. It turns out there were a bunch of problems with video and the XPS 13. See here for a movie one user gave of the poblem. I'm conjecturing that there are problems with the XPS 13, Skylake, and Hiper-V... and Dell loaded Windows 10 Home (which does not support Hiper-V) on the problematic systems and dumped the product on the discounted market. Video is apparently a pain! :)
</TANGENT>
Thanks for the new test results! It's a good sign that the crashes don't occur with the rc0 version, which suggests the switch from Pygame to SDL2 avoids that issue.
I'll see if I can reproduce the unresponsive screen issue. There was an additional issue in rc0 with a memory leak in the code interfacing with SDL2 that someone reported on GitHub; this has now been fixed and will be in rc1 once that's released. I don't know if that issue is related to the hangs you see, but it might be consistent with your report - the rc0 version slowly eats up memory at every screen refresh and becomes unresponsive once the memory is full. It would also occur after a few minutes if PC-BASIC is simply left on its start screen with a blinking cursor.
There are a few more issues to solve before I can package rc1 and I am quite busy at the moment so this will probably take a few weeks to appear.
Note that the program EVRONWRD.BAS which you use for testing is designed to run on a monochrome setup; you'll get much better results if you run with the option preset=mda. This will produce green letters on black rather than the white on white, so it'll be easier to see what's going on!
Thanks
Rob
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi Ken,
Thanks for the new test results! It's a good sign that the crashes don't occur with the rc0 version, which suggests the switch from Pygame to SDL2 avoids that issue.
I'll see if I can reproduce the unresponsive screen issue. There was an additional issue in rc0 with a memory leak in the code interfacing with SDL2 that someone reported on GitHub; this has now been fixed and will be in rc1 once that's released. I don't know if that issue is related to the hangs you see, but it might be consistent with your report - the rc0 version slowly eats up memory at every screen refresh and becomes unresponsive once the memory is full. It would also occur after a few minutes if PC-BASIC is simply left on its start screen with a blinking cursor.
There are a few more issues to solve before I can package rc1 and I am quite busy at the moment so this will probably take a few weeks to appear.
Note that the program EVRONWRD.BAS which you use for testing is designed to run on a monochrome setup; you'll get much better results if you run with the option preset=mda. This will produce green letters on black rather than the white on white, so it'll be easier to see what's going on!
ThanksRob
On Sunday, 24 July 2016, 5:50, Kenneth Wayne Boyd <kenwboyd@users.sf.net> wrote:
Hi Rob, I got around to looking at this again.
I confirmed I could still recreate the original symptoms at the 15.08.8 level. (2 crashes in 3 attempts.)
Then I installed 16.06.0rc0 and tried another 3 recreate attempts.
The good news: there were no outright "crashes."
The bad news: I had 3 hangs in either attempting to play the music, or in entering commands after the music successfully finished.
I'm attaching an updated "PC-BASIC Crash Notes.pdf"
The notes on the 6 attempts (3 at 15.x and 3 at 16.x) are in the section "2016-07-23 Recreate Session 5 (RS5)" on page 7.
I didn't get around to resolving the issues with the command line python environment and typos in my envioronment variables. I recorded the Action Item in the "Pending Actions" section AI-01:Open on page 22. I was hoping the new development release would resolve the issues.
It could be that these Windows 7 environments are getting too old. I'm migrating to a new Dell XPS 13 running Microsoft Windows 10 Home Edition. But I'll be keeping the X220 with Windows 7 around as long as it keeps running.
<TANGENT>
As a side note on the Dell XPS 13. I got this XPS 13 system from CostCo, and it seems to be pretty good deal. $1,400 for 16GB / 512GB SSD. But I found it odd that it came with Windows 10 Home Edition rather than Windows 10 Pro as listed on the Dell website. As I had toyed with the idea of running Hiper-V, I searched for information on this XPS 13 model to see if it supported Hiper-V. It turns out there were a bunch of problems with video and the XPS 13. See here for a movie one user gave of the poblem. I'm conjecturing that there are problems with the XPS 13, Skylake, and Hiper-V... and Dell loaded Windows 10 Home (which does not support Hiper-V) on the problematic systems and dumped the product on the discounted market. Video is apparently a pain! :)
</TANGENT>
I spent a few minutes today seeing if I could narrow down a sequence that will recreate the ocassional crashes.
Using the released version (15.08.8) I got 4 crashes out of 5 attempts.
I then switched to the development environment running 16.05.dev0 and I got 1 crash out of 1 attempt.
Since the development environment doesn't seem to be intimately involved in obvious permission issues in Windows 7, it may lower the probability of that hypothesis. Let me know if you would like me to get more information in the development environment.
I've documented all my attempts in the attached PDF file.
Some of the details of the crash on 16.05.dev0 are below via cut and paste.
DEV-A:16.05.dev0 Attempt 1.5 : Crash
Started
Moved screen to left screen
Load “evronnunc.bas”
File not found
Files
[copied BAS programs to directory]
Files
Load “evronuc.bas”
Run
[Enter][Enter]
screen 0,0,0
Screen 0
Screen 1
Screen 0
load “evronwrd.bas”
Run
CRASH
Python.exe has stopped working
A problem caused the program to stop working correctly.
Windows will close the program and notify you if a solution is available.
EVRONWRD.BAS
Oops, I forgot this was a "binary" file. But it's the one I used, so here it is.
ffe8 0d0a 008f 2020 2020 2020 2020 2020
2020 2020 2020 2020 2020 2020 2020 2045
7665 7220 4f6e 7761 7264 00f0 0d14 003a
8fd9 003f 0e1e 003a 8fd9 2020 2054 6865
2066 6f6c 6c6f 7769 6e67 2077 6173 2074
616b 656e 2066 726f 6d20 7468 6520 696e
7369 6465 2063 6f76 6572 206f 6620 7468
6520 7368 6565 7420 6d75 7369 6320 666f
7200 6a0e 2800 3a8f d920 2020 4576 6572
204f 6e77 6172 642c 2054 6865 2049 424d
2052 616c 6c79 2053 6f6e 672e 0072 0e32
003a 8fd9 00bf 0e3c 003a 8fd9 2020 2254
6865 2049 424d 2072 616c 6c79 2073 6f6e
672c 2045 7665 7220 4f6e 7761 7264 2c20
7761 7320 7772 6974 7465 6e20 696e 2031
3933 3120 6279 2049 424d 6572 2046 7265
6400 110f 4600 3a8f d920 2020 5461 7070
652e 2020 5468 6973 2072 6f75 7369 6e67
206e 756d 6265 7220 7761 7320 6f6e 6c79
206f 6e65 206f 6620 6d61 6e79 2073 6f6e
6773 2077 7269 7474 656e 2061 6e64 2073
756e 6700 5e0f 5000 3a8f d920 2020 6279
2074 6865 2063 6f6d 7061 6e79 2773 206d
6172 6b65 7469 6e67 2072 6570 7265 7365
6e74 6174 6976 6573 2c20 7374 7564 656e
7473 2c20 6d61 6e61 6765 7273 2061 6e64
009e 0f5a 003a 8fd9 2020 2065 6d70 6c6f
7965 6573 2077 6865 6e65 7665 7220 7468
6579 2067 6174 6568 6572 6564 2066 6f72
2067 726f 7570 206d 6565 7469 6e67 732e
00a6 0f64 003a 8fd9 00f2 0f6e 003a 8fd9
2020 2244 7572 696e 6720 7468 6520 3530
2773 2061 6e64 2036 3027 732c 2063 6861
6e67 696e 6720 736f 6369 616c 2065 6d70
6861 7369 7320 7072 6563 6970 6974 6174
6564 2061 0042 1078 003a 8fd9 2020 2064
6563 6c69 6e65 2069 6e20 6772 6f75 7020
7369 6e67 696e 672e 2020 5468 6520 6c79
7269 6373 2077 6572 6520 7265 7772 6974
7465 6e20 696e 2031 3935 3820 616e 6420
7375 6e67 0095 1082 003a 8fd9 2020 206d
6169 6e6c 7920 6279 206d 6172 6b65 7469
6e67 2073 7475 6465 6e74 7320 696e 2049
424d 2073 6368 6f6f 6c73 2e20 2042 7574
2074 6865 2063 6f6d 7061 6e79 2073 696e
672d 616c 6f6e 6700 e310 8c00 3a8f d920
2020 6861 7320 636f 6e74 696e 7565 6420
6974 7320 7374 6561 6479 2064 6563 6c69
6e65 3b20 2074 6f64 6179 2074 6865 2073
7472 6169 6e73 206f 6620 4576 6572 204f
6e77 6172 6400 3411 9600 3a8f d920 2020
6563 686f 206f 6e6c 7920 6f6e 206f 6c64
2066 696c 6d20 736f 756e 6474 7261 636b
7320 696e 2074 6865 2063 6f6d 7061 6e79
2773 2061 7263 6869 7665 7320 616e 6420
696e 2074 6865 005c 11a0 003a 8fd9 2020
206d 656d 6f72 6965 7320 6f66 206c 6f6e
6774 696d 6520 4942 4d65 7273 2e22 0064
11aa 003a 8fd9 00c9 11b4 003a 8fd9 2020
2054 6869 7320 6172 7261 6e67 656d 656e
7420 666f 7220 4942 4d20 5043 2077 6173
2064 6f6e 6520 6279 2057 2e20 452e 2053
6368 6d69 7474 2c20 4942 4d20 4368 6172
6c6f 7474 6520 3139 3832 3b20 7469 6520
382d 3437 342d 3335 3131 2e00 d111 be00
3a8f d900 d711 c800 c000 df11 d200 c920
dd00 eb11 dc00 9120 d20f 1929 3b00 f611
e600 bf20 0f10 2c18 000a 12f0 0091 2022
4556 4552 204f 4e57 4152 4422 0014 12fa
00bf 2018 2c18 001a 1204 0191 0051 120e
0191 20d2 0f0a 293b 2254 6865 2049 424d
2052 616c 6c79 2073 6f6e 672c 2077 7269
7474 656e 2062 7920 4672 6564 2054 6170
7065 2200 8312 1801 9120 d20f 0a29 3b22
4172 7261 6e67 6564 2066 6f72 2049 424d
2050 4320 6279 2057 2e20 452e 2053 6368
6d69 7474 2200 a212 2201 9120 d20f 1d29
3b22 2020 2020 4942 4d20 4368 6172 6c6f
7474 6522 00a8 122c 0191 00f1 1236 0157
4f52 4453 3124 e722 5468 6572 6527 7320
6120 6665 656c 696e 6720 6576 2772 7920
7768 6572 6520 6f66 2062 6967 6765 7220
7468 696e 6773 2069 6e20 7374 6f72 6520
2d2d 2200 2113 4001 574f 5244 5332 24e7
224f 6620 6e65 7720 686f 7269 7a6f 6e73
2063 6f6d 696e 6720 696e 746f 2076 6965
772e 2200 5313 4a01 4c49 4e45 3124 e722
6f33 6d6e 7431 3630 6c34 6262 386f 3464
6438 6f33 6767 3862 6238 6565 3865 6538
6d6c 652e 2200 7f13 5401 4c49 4e45 3224
e722 6d6e 6565 3866 2365 3864 6538 6623
6738 6161 2338 6d6c 622e 622e 6d6e 622e
2200 c613 5e01 574f 5244 5333 24e7 224f
7572 2061 696d 2069 7320 636c 6561 7220
546f 206d 616b 6520 6561 6368 2079 6561
7220 6578 6365 6564 2074 6865 206f 6e65
2062 6566 6f72 6522 00fd 1368 0157 4f52
4453 3424 e722 5374 6179 696e 6720 696e
2074 6865 206c 6561 6420 696e 2065 7627
7279 7468 696e 6720 7765 2064 6f2e 2200
2714 7201 4c49 4e45 3324 e722 642e 6262
386f 3464 6438 6f33 6767 3862 6238 6565
3865 6538 6d6c 652e 2200 5314 7c01 4c49
4e45 3424 e722 6d6e 6566 3866 2365 3864
6538 6623 6738 6162 386d 6c67 2e67 2e67
2e6d 6e67 2200 9a14 8601 574f 5244 5335
24e7 2254 6865 2077 696c 6c20 746f 2077
696e 2069 7320 6275 696c 7420 7269 6768
7420 696e 2049 7420 7769 6c6c 206e 6f74
2062 6520 6465 6e69 6564 2e22 00de 1490
0157 4f52 4453 3624 e722 416e 6420 7765
2077 696c 6c20 676f 2061 6865 6164 2077
6520 6b6e 6f77 2062 7920 776f 726b 696e
6720 7369 6465 2062 7920 7369 6465 2e22
0011 159a 014c 494e 4535 24e7 2267 3866
2366 2338 6161 386f 3464 6438 6f33 6161
3866 2366 2338 6161 386f 346d 6c64 2e6d
6e64 2200 3b15 a401 4c49 4e45 3624 e722
6f34 6438 6464 3864 6438 6464 3864 6438
6463 386f 3361 6623 3864 322e 2200 6215
ae01 574f 5244 5337 24e7 2245 7665 7220
4f6e 7761 7264 2c20 4576 6572 204f 6e77
6172 6422 008d 15b8 014c 494e 4537 24e7
226f 336d 6e74 3136 306c 3464 2e65 2e66
232e 672e 6623 2e67 2e67 232e 612e 2200
ce15 c201 574f 5244 5338 24e7 2254 6861
7427 7320 7468 6520 7370 6972 6974 2074
6861 7420 6861 7320 6272 6f75 6768 7420
7573 2066 616d 6520 2d2d 2d2d 2d2d 2d22
00f1 15cc 014c 494e 4538 24e7 2267 6138
6267 3861 6238 6167 3865 2e6d 6c65 2e6d
6e65 2200 1f16 d601 574f 5244 5339 24e7
2257 6527 7265 2062 6967 2062 7574 2062
6967 6765 7220 7765 2077 696c 6c20 6265
2200 3e16 e001 4c49 4e45 3924 e722 6538
6423 6538 6766 2338 6623 6638 6623 2e22
006a 16ea 0157 4f52 4453 4124 e722 5765
2063 616e 2774 2066 6169 6c20 666f 7220
616c 6c20 6361 6e20 7365 6522 0085 16f4
014c 494e 4541 24e7 2266 6623 3861 6738
6766 2338 672e 2200 c116 fe01 574f 5244
5342 24e7 2254 6861 7420 746f 2073 6572
7665 2068 756d 616e 6974 7920 6861 7320
6265 656e 206f 7572 2061 696d 202d 2d2d
2d2d 2200 ea16 0802 4c49 4e45 4224 e722
6623 6738 6261 3861 6723 3861 6538 6623
6738 612e 6d6c 612e 6d6e 6122 002c 1712
0257 4f52 4453 4324 e722 4f75 7220 7072
6f64 7563 7473 206e 6f77 2061 7265 206b
6e6f 776e 202d 2d2d 2d2d 2069 6e20 6576
2772 7920 7a6f 6e65 202d 2d2d 2d22 0058
171c 024c 494e 4543 24e7 2264 3863 2364
3867 2e67 2e6d 6c67 2e6d 6e67 6438 652e
662e 6d6c 672e 6d6e 6722 0091 1726 0257
4f52 4453 4424 e722 4f75 7220 7265 7075
7461 7469 6f6e 2073 7061 726b 6c65 7320
6c69 6b65 2061 2067 656d 202d 2d2d 2d2d
2d2d 2200 b817 3002 4c49 4e45 4424 e722
6723 3861 6138 6162 386f 3463 2363 2338
6f33 6261 386f 3464 3122 00e9 173a 0257
4f52 4453 4524 e722 5765 2776 6520 666f
7567 6874 206f 7572 2077 6179 2074 6872
7520 616e 6420 6e65 7720 2200 0818 4402
4c49 4e45 4524 e722 6338 6f33 6166 2338
642e 652e 6623 2e67 2e22 0037 184e 0257
4f52 4453 4624 e722 4669 656c 6473 2077
6527 7265 2073 7572 6520 746f 2063 6f6e
7175 6572 2074 6f6f 2200 5418 5802 4c49
4e45 4624 e722 6623 6623 3867 6738 6723
6723 3861 3822 0088 1862 0257 4f52 4453
4724 e722 466f 7220 7468 6520 4576 6572
204f 6e77 6172 6420 2049 2020 4220 204d
202d 2d2d 2d2d 2d2d 2d22 00ad 186c 024c
494e 4547 24e7 2267 2338 6138 626f 3463
3864 6538 6f33 622e 612e 6731 7032 2200
c718 7602 9120 574f 5244 5331 243a 2020
fe93 204c 494e 4531 2400 e118 8002 9120
574f 5244 5332 243a 2020 fe93 204c 494e
4532 2400 fb18 8a02 9120 574f 5244 5333
243a 2020 fe93 204c 494e 4533 2400 1519
9402 9120 574f 5244 5334 243a 2020 fe93
204c 494e 4534 2400 2f19 9e02 9120 574f
5244 5335 243a 2020 fe93 204c 494e 4535
2400 4919 a802 9120 574f 5244 5336 243a
2020 fe93 204c 494e 4536 2400 6319 b202
9120 574f 5244 5337 243a 2020 fe93 204c
494e 4537 2400 7d19 bc02 9120 574f 5244
5338 243a 2020 fe93 204c 494e 4538 2400
9719 c602 9120 574f 5244 5339 243a 2020
fe93 204c 494e 4539 2400 b119 d002 9120
574f 5244 5341 243a 2020 fe93 204c 494e
4541 2400 cb19 da02 9120 574f 5244 5342
243a 2020 fe93 204c 494e 4542 2400 e519
e402 9120 574f 5244 5343 243a 2020 fe93
204c 494e 4543 2400 ff19 ee02 9120 574f
5244 5344 243a 2020 fe93 204c 494e 4544
2400 191a f802 9120 574f 5244 5345 243a
2020 fe93 204c 494e 4545 2400 331a 0203
9120 574f 5244 5346 243a 2020 fe93 204c
494e 4546 2400 4d1a 0c03 9120 574f 5244
5347 243a 2020 fe93 204c 494e 4547 2400
531a 1603 8100 0000 1a1a 243a 2020 fe93
204c 494e 4543 2400 ff19 ee02 9120 574f
5244 5344 243a 2020 fe93 204c 494e 4544
2400 191a f802 9120 574f 5244 5345 243a
2020 fe93 204c 494e 4545 2400 331a 0203
9120 574f 5244 5346 243a 2020 fe93 204c
494e 4546 2400 4d1a 0c03 9120 574f 5244
EVRONUNC.BAS
10 REM Ever Onward
20 '
30 ' The following was taken from the inside cover of the sheet music for
40 ' Ever Onward, The IBM Rally Song.
50 '
60 ' "The IBM rally song, Ever Onward, was written in 1931 by IBMer Fred
70 ' Tappe. This rousing number was only one of many songs written and sung
80 ' by the company's marketing representatives, students, managers and
90 ' employees whenever they gatehered for group meetings.
100 '
110 ' "During the 50's and 60's, changing social emphasis precipitated a
120 ' decline in group singing. The lyrics were rewritten in 1958 and sung
130 ' mainly by marketing students in IBM schools. But the company sing-along
140 ' has continued its steady decline; today the strains of Ever Onward
150 ' echo only on old film soundtracks in the company's archives and in the
160 ' memories of longtime IBMers."
170 '
180 ' This arrangement for IBM PC was done by W. E. Schmitt, IBM Charlotte 1982; tie 8-474-3511.
190 '
200 CLS
210 KEY OFF
220 PRINT SPC(25);
230 COLOR 16,7
240 PRINT "EVER ONWARD"
250 COLOR 7,7
260 PRINT
270 PRINT SPC(10);"The IBM Rally song, written by Fred Tappe"
280 PRINT SPC(10);"Arranged for IBM PC by W. E. Schmitt"
290 PRINT SPC(29);" IBM Charlotte"
300 PRINT
310 WORDS1$="There's a feeling ev'ry where of bigger things in store --"
320 WORDS2$="Of new horizons coming into view."
330 LINE1$="o3mnt160l4bb8o4dd8o3gg8bb8ee8ee8mle."
340 LINE2$="mnee8f#e8de8f#g8aa#8mlb.b.mnb."
350 WORDS3$="Our aim is clear To make each year exceed the one before"
360 WORDS4$="Staying in the lead in ev'rything we do."
370 LINE3$="d.bb8o4dd8o3gg8bb8ee8ee8mle."
380 LINE4$="mnef8f#e8de8f#g8ab8mlg.g.g.mng"
390 WORDS5$="The will to win is built right in It will not be denied."
400 WORDS6$="And we will go ahead we know by working side by side."
410 LINE5$="g8f#f#8aa8o4dd8o3aa8f#f#8aa8o4mld.mnd"
420 LINE6$="o4d8dd8dd8dd8dd8dc8o3af#8d2."
430 WORDS7$="Ever Onward, Ever Onward"
440 LINE7$="o3mnt160l4d.e.f#.g.f#.g.g#.a."
450 WORDS8$="That's the spirit that has brought us fame -------"
460 LINE8$="ga8bg8ab8ag8e.mle.mne"
470 WORDS9$="We're big but bigger we will be"
480 LINE9$="e8d#e8gf#8f#f8f#."
490 WORDSA$="We can't fail for all can see"
500 LINEA$="ff#8ag8gf#8g."
510 WORDSB$="That to serve humanity has been our aim -----"
520 LINEB$="f#g8ba8ag#8ae8f#g8a.mla.mna"
530 WORDSC$="Our products now are known ----- in ev'ry zone ----"
540 LINEC$="d8c#d8g.g.mlg.mngd8e.f.mlg.mng"
550 WORDSD$="Our reputation sparkles like a gem -------"
560 LINED$="g#8aa8ab8o4c#c#8o3ba8o4d1"
570 WORDSE$="We've fought our way thru and new "
580 LINEE$="c8o3af#8d.e.f#.g."
590 WORDSF$="Fields we're sure to conquer too"
600 LINEF$="f#f#8gg8g#g#8a8"
610 WORDSG$="For the Ever Onward I B M --------"
620 LINEG$="g#8a8bo4c8de8o3b.a.g1p2"
630 PRINT WORDS1$: PRINT LINE1$
640 PRINT WORDS2$: PRINT LINE2$
650 PRINT WORDS3$: PRINT LINE3$
660 PRINT WORDS4$: PRINT LINE4$
670 PRINT WORDS5$: PRINT LINE5$
680 PRINT WORDS6$: PRINT LINE6$
690 PRINT WORDS7$: PRINT LINE7$
700 PRINT WORDS8$: PRINT LINE8$
710 PRINT WORDS9$: PRINT LINE9$
720 PRINT WORDSA$: PRINT LINEA$
730 PRINT WORDSB$: PRINT LINEB$
740 PRINT WORDSC$: PRINT LINEC$
750 PRINT WORDSD$: PRINT LINED$
760 PRINT WORDSE$: PRINT LINEE$
770 PRINT WORDSF$: PRINT LINEF$
780 PRINT WORDSG$: PRINT LINEG$
790 END
Last edit: Kenneth Wayne Boyd 2016-06-07
Excellent stuff, thanks Ken!
I'm going to try to see if I can recreate the crash on a Win64 VM with these precise instructions - if yes, then I can also investigate on my end - if not, perhaps it has something to do with different drivers, making things more difficult.
If you have time, one thing that would also be very useful to find out is whether the issue arises with the SDL2 interface in the development branch. To use this you need to put the SDL2 binary from https://www.libsdl.org/download-2.0.php somewhere on your drive and set the environment variable
PYSDL2_DLL_PATH
to that location (sorry, more pain). You can then start PC-BASIC with the option--interface=sdl2
.I'm hoping that the sound crash issue is limited to Pygame/SDL1.2 and that the SDL2 library doesn't have the problem, as I intend to replace the Pygame interface with SDL2 (or at least make SDL2 the default) after ironing out a few more issues with it.
Thanks again for your work, do keep me updated!
Rob
I made another couple of attempts today. 2 Crashes in the development environment. One unsuccessful attempt with SDL2 where I couldn't get it to run in a LiClipse environment with the --interface=sdl2 option. I may have to go solve the mysteries around when things work and don't work with ansipipe in the mix. That may prevent progress here unless there is an equivalent .INI setting? Let me know.
At any rate, there was a slightly different result with Attempt 2.1 in the development environment, but the screen disappeared and a message was left behind in the LiClipse console:
Fatal Python error: (pygame parachute) Segmentation Fault
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
I also tried less steps in Attempt 3.1 and got a crash with the fewest commands so far.
I've attached the latest PC-BASIC Crash Notes document.
Ken
Last edit: Kenneth Wayne Boyd 2016-06-10
Hi Ken, thanks for this - my compliments on the excellent detail in your logs!
The segmentation fault indicates there is a crash occurring in Pygame (or its underlying SDL1.2). That means it's a bug in that library or in SDL1.2. The best we can hope is to find workaround to avoid triggering it - for which what you're doing now could prove very useful, if we manage to narrow down the conditions when it happens. If we manage to reliably reproduce it and narrow it down we can send a bug report to the Pygame project.
There is a possibility they have already found this bug and solved it in their development code. Unfortunately Pygame has not seen a new release for a long time... It would be useful to know which version of Pygame you're using though. The quickest way to find out is to run
pcbasic -v --debug
which should output (among other things) a list of Python modules and their versions. I think the newest released version for Windows is 1.9.2a0, but 1.9.1 is also common.SDL2 also appears to crash through a problem in the library. I may be able to reprouce this one on my Win64 VM - it doesn't seem to happen on Win32. Here we have a better chance of it being fixed by the project itself since SDL2 is seeing more active development. I have also found forum posts on the internet describing a crash in SDL2 happening on Win64 which went away upon recompiling the binary either with another compiler or on a Win64 rather than a Win32 machine, I'm not sure.
I'll try to reproduce the crash and see if recompiling fixes the issue, in which case I can simply supply my own compoiled SDL binary with the PC-BASIC package.
Rob
Perhaps I'm doing something wrong.
From the release version I get the following behaviours:
ADMINISTRATOR COMMAND PROMPT
C:\PROGRA~2\PCBASIC\pcbasic -v -- debug ->nothing happens
C:\PROGRA~2\PCBASIC\pcbasic -v ->nothing happens
C:\PROGRA~2\PCBASIC\pcbasic --debug ->screen: PCBASIC 15.08.8 [DEBUG mode]
C:\PROGRA~2\PCBASIC\pcbasic -v --debug >>debugout.txt ->debugout.txt contents = "15.08.8"
LiClipse Environment:
Location:C:\Python27\ansipipe-launcher.exe
Arguments:"python.exe C:\Users\Ken\DOCUME~1\LICLIP~1\PC-BASIC\PCBASI~1\pcbasic.py -v --debug"
->Nothing happens; console status:<terminated> ansipipe-launcher -v --debug [Program] C:\Python27\ansipipe-launcher.exe
Location:C:\Python27\ansipipe-launcher.exe
Arguments:"python.exe C:\Users\Ken\DOCUME~1\LICLIP~1\PC-BASIC\PCBASI~1\pcbasic.py --debug"
PC-BASIC screen: PCBASIC 16.05.dev0
I'm not sure about what I'm looking for regarding "should output (among other things) a list of Python modules and their versions."
Thanks,
Ken
Hi, apologies, it appears thet the last relese version did not include ansipipe - as a consequence you won't be able to see output on the ocmmand line. It should work with the development version if you're suing ansipipe-launcher, but perhaps LiClipse gets in the way somehow.
Could you try with the following options:
pcbasic -v --debug --logfile=debugout.txt
Thast should ensure the command-line output ends up on debugout.txt.
Thanks!
Rob
Here are the debugout.txt files for both the installed environment and the develoment environment that I can get to run.
Environmental logs - other
Pcbasic -v --debug --logfile=debugout.ext
2016-06-11
From installed environment REL-15.08.8
Administrator Command Prompt
C:\PROGRA~2\PC-BASIC>pcbasic.exe -v --debug --logfile=debugout.txt
Resulting debugout.txt
PLATFORM
os: Windows Intel64 Family 6 Model 42 Stepping 7, GenuineIntel 6.1.7601
python: 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)] 32bit WindowsPE
MODULES
numpy: 1.8.0
available
pygame: 1.9.2pre
curses: --
pexpect: 2.3
serial: 2.7
parallel: --
From installed environment DEV-A:16.05dev0
Location: C:\Python27\ansipipe-launcher.exe
Working Directory: C:\Users\Ken\Documents\LiClipse Workspace\PC-BASIC\pcbasic-master
Argumens:"python.exe C:\Users\Ken\DOCUME~1\LICLIP~1\PC-BASIC\PCBASI~1\pcbasic.py -v --debug --logfile=debugout.txt"
Resulting debugout.txt
PLATFORM
os: Windows Intel64 Family 6 Model 42 Stepping 7, GenuineIntel 6.1.7601
python: 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] 32bit WindowsPE
MODULES
numpy: 1.10.4
available
sdl2: --
pygame: 1.9.1release
curses: --
pexpect: --
serial: --
parallel: --
Hi Ken, on emore thing regarding SDL2: I noticed from your notes that you're using the x64 version. I just set up a dev environment on a 64-bit Windows 7 VM and I noticed that, counter-intuitively, I needed to use th x32 version of the SDL2 DLL. The x64 version leads to an immediate error (which would look much like a crash of PC-BASIC). I don't know why this is but presumably Python is a 32-bit executable, so it needs to link to the 32-bit library. Could you try with the 32-bit SDL2 DLL as well?
Thanks again for your help - I really have a sense that we may be able to pin down and solve the 64-bit crashes this way!
Rob
I downloaded and tried... however, I don't actually think I'm successfully running with the --interface=sdl2 in the development environment. See Recreate Sessions 3.2, 4.1 and 4.2 which all didn't seem to successfully launch PC-BASIC at all.
Does the --interface=sdl2 option work for the Release 15.08.8 version? If so, I could try from a command line with that version, although I had ansipipe problems... I'll have to probably clarify what works and doesn't work for me regarding starting the release version from the command line.
Bottom line: I don't think I'm successfully getting the %PSYDL2_DLL_PATH% variable set when running from the development versions due to what I'm seeing with attempts 3.2, 4.1 and 4.2.
Thanks,
Ken
Hi Ken, thanks for trying this!
Regarding SDL2: in your notes you refer to
%PSYDL2_DLL_PATH%
. Note that there is a typo in this, the variable should be%PYSDL2_DLL_PATH%
(i.e. with theS
andY
the other way around). Not sure if that's just a typo in the notes, but if you set the variable with the former name then it will not work.Maybe it's best if we check first what happens if you try to load the sdl2 module in Python. In other words, no PC-BASIC and no ansipipe, just run Python from the Windows
C:\>
prompt. First set the environment variable to the directory where you've put the 32-bit SDL2:You should see Python's version string and a
>>>
prompt at which you typeimport sdl2
. If this works correctly, there should be no output at all. You can exit Python withquit()
:If there is a problem with the DLL or the environment variable, you should get an error message here, which could point us to how to solve this issue.
In other news, I have followed your steps with the Ever Onward programs in my Win64 VM but I do not get any crash - for me it works correctly both with pygame and with sdl2. I'll push it around a bit more to see if any crash happens but it looks like (unfortunately) I still can't reproduce the issue - suggesting it only shows up with certain hardware or certain drivers. I'm still hoping SDL2 (once it works) won't crash on your machine either...
Cheers
Rob
Last edit: Rob Hagemans 2016-06-12
To answer your other question, the
--interface=sdl2
option does not work with the release version. The command line output issues with that version are because I forgot to include ansipipe in the package (will do better next release :)There are a few more things we can try with the 15.08 release version though. Pygame/SDL1.2 responds to a number of environment variables (see http://sdl.beuc.net/sdl.wiki/SDL_envvars for more info). In particular, the following would be good to try to set before starting the release version and seeing if it crashes:
Apparently the
disk
audio driver should send the output to a raw audio file calledsdlaudio.raw
. You can change name/location of that file by setting another environment variableSDL_DISKAUDIOFILE
.Rob
Hi Ken, I've packaged the SDL-based version as a pre-release, which you can install alongside the 15.08 version. You can get it from GitHub. Let's hope it finally releases us from those crashes!
Rob
View and moderate all "[CLOSED] Bug reports" comments posted by this user
Mark all as spam, and block user from posting to "Discussion"
Thanks Rob. I'm "still on" regarding investigating this, so will try it out
as soon as I can. I got sidetracked with some work items and a wedding of a
daughter at our house In a couple of weeks. My wife is insisting her
projects have higher priority! :)
Sorry for the delay, but I Hope to finish answers to previous questions and
try your new version soon.
Ken
On Saturday, June 18, 2016, Rob Hagemans robhagemans@users.sf.net wrote:
--
Ken Boyd
520-344-2720
Cheers and congratulations on your daughter's wedding! Such things do have priority :)
Rob
Hi Rob, I got around to looking at this again.
I confirmed I could still recreate the original symptoms at the 15.08.8 level. (2 crashes in 3 attempts.)
Then I installed 16.06.0rc0 and tried another 3 recreate attempts.
The good news: there were no outright "crashes."
The bad news: I had 3 hangs in either attempting to play the music, or in entering commands after the music successfully finished.
I'm attaching an updated "PC-BASIC Crash Notes.pdf"
The notes on the 6 attempts (3 at 15.x and 3 at 16.x) are in the section "2016-07-23 Recreate Session 5 (RS5)" on page 7.
I didn't get around to resolving the issues with the command line python environment and typos in my envioronment variables. I recorded the Action Item in the "Pending Actions" section AI-01:Open on page 22. I was hoping the new development release would resolve the issues.
It could be that these Windows 7 environments are getting too old. I'm migrating to a new Dell XPS 13 running Microsoft Windows 10 Home Edition. But I'll be keeping the X220 with Windows 7 around as long as it keeps running.
<TANGENT>
As a side note on the Dell XPS 13. I got this XPS 13 system from CostCo, and it seems to be pretty good deal. $1,400 for 16GB / 512GB SSD. But I found it odd that it came with Windows 10 Home Edition rather than Windows 10 Pro as listed on the Dell website. As I had toyed with the idea of running Hiper-V, I searched for information on this XPS 13 model to see if it supported Hiper-V. It turns out there were a bunch of problems with video and the XPS 13. See here for a movie one user gave of the poblem. I'm conjecturing that there are problems with the XPS 13, Skylake, and Hiper-V... and Dell loaded Windows 10 Home (which does not support Hiper-V) on the problematic systems and dumped the product on the discounted market. Video is apparently a pain! :)
</TANGENT>
Ken
Hi Ken,
Thanks for the new test results! It's a good sign that the crashes don't occur with the rc0 version, which suggests the switch from Pygame to SDL2 avoids that issue.
I'll see if I can reproduce the unresponsive screen issue. There was an additional issue in rc0 with a memory leak in the code interfacing with SDL2 that someone reported on GitHub; this has now been fixed and will be in rc1 once that's released. I don't know if that issue is related to the hangs you see, but it might be consistent with your report - the rc0 version slowly eats up memory at every screen refresh and becomes unresponsive once the memory is full. It would also occur after a few minutes if PC-BASIC is simply left on its start screen with a blinking cursor.
There are a few more issues to solve before I can package rc1 and I am quite busy at the moment so this will probably take a few weeks to appear.
Note that the program
EVRONWRD.BAS
which you use for testing is designed to run on a monochrome setup; you'll get much better results if you run with the optionpreset=mda
. This will produce green letters on black rather than the white on white, so it'll be easier to see what's going on!Thanks
Rob
Hi Ken,
Thanks for the new test results! It's a good sign that the crashes don't occur with the rc0 version, which suggests the switch from Pygame to SDL2 avoids that issue.
I'll see if I can reproduce the unresponsive screen issue. There was an additional issue in rc0 with a memory leak in the code interfacing with SDL2 that someone reported on GitHub; this has now been fixed and will be in rc1 once that's released. I don't know if that issue is related to the hangs you see, but it might be consistent with your report - the rc0 version slowly eats up memory at every screen refresh and becomes unresponsive once the memory is full. It would also occur after a few minutes if PC-BASIC is simply left on its start screen with a blinking cursor.
There are a few more issues to solve before I can package rc1 and I am quite busy at the moment so this will probably take a few weeks to appear.
Note that the program
EVRONWRD.BAS
which you use for testing is designed to run on a monochrome setup; you'll get much better results if you run with the optionpreset=mda
. This will produce green letters on black rather than the white on white, so it'll be easier to see what's going on!ThanksRob
Hi Rob, I got around to looking at this again.
I confirmed I could still recreate the original symptoms at the 15.08.8 level. (2 crashes in 3 attempts.)
Then I installed 16.06.0rc0 and tried another 3 recreate attempts.
The good news: there were no outright "crashes."
The bad news: I had 3 hangs in either attempting to play the music, or in entering commands after the music successfully finished.
I'm attaching an updated "PC-BASIC Crash Notes.pdf"
The notes on the 6 attempts (3 at 15.x and 3 at 16.x) are in the section "2016-07-23 Recreate Session 5 (RS5)" on page 7.
I didn't get around to resolving the issues with the command line python environment and typos in my envioronment variables. I recorded the Action Item in the "Pending Actions" section AI-01:Open on page 22. I was hoping the new development release would resolve the issues.
It could be that these Windows 7 environments are getting too old. I'm migrating to a new Dell XPS 13 running Microsoft Windows 10 Home Edition. But I'll be keeping the X220 with Windows 7 around as long as it keeps running.
<TANGENT>
As a side note on the Dell XPS 13. I got this XPS 13 system from CostCo, and it seems to be pretty good deal. $1,400 for 16GB / 512GB SSD. But I found it odd that it came with Windows 10 Home Edition rather than Windows 10 Pro as listed on the Dell website. As I had toyed with the idea of running Hiper-V, I searched for information on this XPS 13 model to see if it supported Hiper-V. It turns out there were a bunch of problems with video and the XPS 13. See here for a movie one user gave of the poblem. I'm conjecturing that there are problems with the XPS 13, Skylake, and Hiper-V... and Dell loaded Windows 10 Home (which does not support Hiper-V) on the problematic systems and dumped the product on the discounted market. Video is apparently a pain! :)
</TANGENT>
Ken
Attachments:
Recreate attempts of Windows 7 Intermittent Crashes
Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/pcbasic/discussion/bugs/
To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/