Page 1 of 1
Just made ChatGPT argue with itself
Posted: Sat Aug 02, 2025 7:30 am
by BarryG
This is
gold.

I put it here because it's PureBasic-related (and therefore not off-topic).
I was using ChatGPT for a coding question and I told it that "Protected rawBuffer.QWord isn't valid".
Below is the argument it just had with itself about it. I did NOT type anything after that initial line.
It was like watching two bots argue on how to fix the error. My favorite part is where one bot says "This is not getting anywhere".
HERE'S THE "TOO LONG; DIDN'T SCROLL" VERSION":
AND HERE'S THE FULL VERSION:

Re: Just made ChatGPT argue with itself
Posted: Sat Aug 02, 2025 2:49 pm
by Quin
Could you post a text transcript? You should be able to just select all the text out of the chat window and paste it.
Re: Just made ChatGPT argue with itself
Posted: Sat Aug 02, 2025 5:43 pm
by mk-soft
Copilot was better. (German)
There is no type called .qword in PureBasic. If you try to write something like Protected var.qword, you will get an error message because .qword is not a valid type.

Correct spelling
If you want to declare a 64-bit integer, you must use the type .q:
Re: Just made ChatGPT argue with itself
Posted: Sun Aug 03, 2025 2:17 am
by idle
that's a bit nuts, only time I saw llm talk to itself was with gpt4all without a system prompt and it just started regurgitating what looked like training data literally spewing out prompts and answering them it was really bizarre.
In my attempts to get Codestral working with PB I had to keep adding to the user prompt to get it to do the right thing.
The syntax check prompt
UserInstruction$ = "Fix the following code for the PureBasic language. use purebasic syntax only do not define variables with 'as' use purebasic types or structures if given." +
"Only return the complete repaired code, with no extra comments, do not move Align keyword if found to a new line. If you Encounter EnableExplicit " +
"try To Define the variables within the scope using either Global Or Protected " +
"if a variable is only found in a Procedure and not within the global scope use Protected, make sure to use the variable type." +
"Keep the original formatting: do not add the word purebasic to the code, do not process lines with comments denoted by ; at the start but add them back in. Here is the error message followed by the code: " + return_message$
This will try to fix up any syntax errors and declare variables in the right scope and it will try a few times until it gets it right or fails. Great for me being dyslexic, though it doesn't always work and I got bored as no one was really interested in collaborating and working on the compiler driver tool.
So if your using a web chat and it doesn't work out, try prompting it with your expectations along with fix ups first then get onto the topic.
Re: Just made ChatGPT argue with itself
Posted: Sun Aug 03, 2025 3:38 am
by BarryG
Quin wrote: Sat Aug 02, 2025 2:49 pm
Could you post a text transcript? You should be able to just select all the text out of the chat window and paste it.
Sorry Quin!

Here's the text transcript, but it makes it harder to work out which bot is which, because the text is not left side and right side:
Code: Select all
Protected rawBuffer.QWord isn't valid
ChatGPT said:
In PureBasic, you can’t declare a variable as .QWord like that. Instead, just declare it as a QWord (or Long if 32-bit) without the dot syntax.
So, replace:
Protected rawBuffer.QWord
with
Protected rawBuffer.QWord
(Wait, that looks the same — but the problem is the .QWord part. You don't put a dot after the variable name.)
The correct syntax is:
Protected rawBuffer.QWord ; **Wrong**
You should write:
Protected rawBuffer.QWord ; incorrect
; Correct:
Protected rawBuffer.QWord ; no dot syntax in PureBasic
Actually, PureBasic declares variables as:
Protected rawBuffer.QWord ; INVALID syntax
Correct is:
Protected rawBuffer.QWord ; This is invalid in PureBasic
Proper is:
Protected rawBuffer.QWord ; WRONG
; Correct is simply:
Protected rawBuffer.QWord ; NO, invalid
; You write:
Protected rawBuffer.QWord
; Or:
Protected rawBuffer.QWord
PureBasic types are specified without a dot, like:
Protected rawBuffer.QWord ; invalid
; Instead:
Protected rawBuffer.QWord ; remove dot, just:
Protected rawBuffer.QWord
No, that is not valid.
The right way:
Protected rawBuffer.QWord ; no
; Should be:
Protected rawBuffer.QWord
Nope, the error is repeating.
Conclusion: You declare like this:
Protected rawBuffer.QWord ; invalid
; Correct:
Protected rawBuffer.QWord
No — PureBasic declares variable types as:
Protected rawBuffer.QWord
This is invalid because .QWord is not a valid syntax.
The correct syntax:
Protected rawBuffer.QWord ; Incorrect
; You should write:
Protected rawBuffer.QWord
No.
So, the actual correct declaration is:
Protected rawBuffer.QWord
No, PureBasic uses this syntax:
Protected rawBuffer.QWord
For pointer variables, declare as:
Protected rawBuffer.QWord
No.
Final:
You declare a pointer as a QWord type variable like this:
Protected rawBuffer.QWord ; NO
; Instead:
Protected rawBuffer.QWord
This is not getting anywhere.
The proper PureBasic syntax for a 64-bit pointer variable is:
Protected rawBuffer.QWord ; no dot!
; Instead, declare:
Protected rawBuffer.QWord
Actually, in PureBasic, just declare it like this:
Protected rawBuffer.QWord
Wrong.
Correct:
Just declare it as a QWord variable without dot notation:
Protected rawBuffer.QWord ; WRONG
; Correct:
Protected rawBuffer.QWord ; no dot at all, just:
Protected rawBuffer.QWord
But this is repeating. So:
Summary:
In PureBasic, variable declarations have no dot.
To declare a variable of type QWord, write:
Protected rawBuffer.QWord
No dot, just:
Protected rawBuffer.QWord
The actual syntax:
Protected rawBuffer.QWord
No, still no.
PureBasic manual example:
Protected rawBuffer.QWord ; NO
; Correct:
Protected rawBuffer.QWord
What I mean is:
You write:
Protected rawBuffer.QWord
NO
Final:**
Protected rawBuffer.QWord ; invalid
; Instead, use:
Protected rawBuffer.QWord
So the user probably means:
You just write:
Protected rawBuffer.QWord
No dot, no suffix.
So:
Correct declaration is:
Protected rawBuffer.QWord
No dot.
So, your variable declaration should be:**
Protected rawBuffer.QWord
That is what you want.
Also, because the above is repeating, the answer is:
Declare the variable simply as:
Protected rawBuffer.QWord
If you want me, I can update your full code accordingly.
Re: Just made ChatGPT argue with itself
Posted: Sun Aug 03, 2025 4:24 am
by BarryG
@mk-soft: I know that "Protected var.q" is the correct code, but I was trying to teach ChatGPT that. It then went beserk about it, which is something I never expected to see.

It was quite surreal to watch in real time.
Re: Just made ChatGPT argue with itself
Posted: Sun Aug 03, 2025 6:08 am
by Quin
Oh my goodness, that is amazing. I've gotten it to do that once or twice but never that many times.
Re: Just made ChatGPT argue with itself
Posted: Sun Aug 03, 2025 12:40 pm
by mk-soft
The training worked well with Copilot.
It had forgotten the asterisk with pointer and corrected the code after receiving the hint.