Need beta testers and/or ASM Gurus (no more subsystems)

TailBite specific forum

Moderators: gnozal, ABBKlaus, lexvictory

ABBKlaus
Addict
Addict
Posts: 1143
Joined: Sat Apr 10, 2004 1:20 pm
Location: Germany

Post by ABBKlaus »

lexvictory wrote:ok, have tested - excellent work, especially the changing of the status test :)
Droopy's Lib compiles fine
Thanks :D
lexvictory wrote:But in TBManager.pb, can #PB_CheckBox_Right be removed from line 416?
It creates an annoying little space between the checkbox and the text.
Never noticed this myself :shock: its ok now.
lexvictory wrote:Just noticed: doesn't the /MULT make TB not check that it is already running?
line 43 of inc_parameter.pb
Right, i removed this check.
lexvictory wrote:Also, in the TB manager code, it checks and disables unicode and threadsafe checkboxes, but I can't seem to find a similar safeguard in the Tailbite.exe code. Did I miss it?
A check is added.

lexvictory wrote:Been doing some research, and Google Code is an SVN alternative to Sourceforge (possibly easier if you already have a google account).
But I don't have any experience with Google Code.
Thanks for investigation, i setup a project on sourceforge. In a few days (1-3) it will be available. The project name is tailbite.
mistrel wrote:I'm very interested in testing this with all of the PureGDK's user libraries. Are there plans to integrate this functionality into Tailbite?
How is your testing going on mistrel ?

PS : heres the download link to the current beta :
http://www.tailbite.com/downloads/TailB ... R1.880.zip

Image
Mistrel
Addict
Addict
Posts: 3415
Joined: Sat Jun 30, 2007 8:04 pm

Post by Mistrel »

How is your testing going on mistrel?
I haven't had an opportunity to test it yet. I'll let you know when I do.
lexvictory
Addict
Addict
Posts: 1027
Joined: Sun May 15, 2005 5:15 am
Location: Australia
Contact:

Post by lexvictory »

Very nice, as always :)
Although I'm worried I'm getting too demanding/annoying :lol:

Do you still have a copy of Inc_OS_Linux.pb?
I think it used to be there, and I was going to do some linux work today, but I can't find the include.
Or was there never one, and I've just modified the windows one in the past?
EDIT: Never mind, I've made quite a few alterations to your latest source, and tailbite.pb runs on linux (alterations such as changing things to constants defined in Inc_OS_* and making paths lowercase) :D

Oh, and nice test file in the screenshot :wink:
hehe, just kidding - it's a lot easier for you to test it yourself while developing, I know :)

I'm guessing you understood it, but i meant "status text" not "status test"
Not sure how that one slipped through :shock: lol
Last edited by lexvictory on Sat Feb 07, 2009 1:00 am, edited 1 time in total.
Demonio Ardente

Currently managing Linux & OS X Tailbite
OS X TailBite now up to date with Windows!
User avatar
mback2k
Enthusiast
Enthusiast
Posts: 257
Joined: Sun Dec 02, 2007 12:11 pm
Location: Germany

Post by mback2k »

Thanks for the new features and all the work, guys. It works very well. :)

I just have one problem: As soon as I use the .p-bstr pseudotype I get the following error, because it does put the "extrn" declaration into the EndProcedure code again.

Code: Select all

---------------------------
TailBite Error
---------------------------
FAsm: HelloWorld.asm

flat assembler  version 1.67.26  (1558888 kilobytes memory)

Functions\HelloWorld.asm [28]:

extrn test__SysFreeString@4

error: symbol already defined.
---------------------------
OK   
---------------------------

Code: Select all

Prototype Test_(String.p-bstr)
Procedure Test__(*String)
  ProcedureReturn *String
EndProcedure

ProcedureDLL HelloWorld()
  Test.Test_ = @Test__()
  ProcedureReturn Test("Hello World")
EndProcedure
lexvictory
Addict
Addict
Posts: 1027
Joined: Sun May 15, 2005 5:15 am
Location: Australia
Contact:

Post by lexvictory »

It appears there because that's where it is in purebasic.asm that gets generated by pbcompiler

pb commented asm output:

Code: Select all

; ProcedureDLL HelloWorld()
macro MP4{
_Procedure4:
  PS4=8
  XOR    eax,eax
  PUSH   eax
  CALL  _SYS_CheckStringBuffer@0                                                                                                                                                                                              
; Test.Test_ = @Test__()
  LEA    eax,[_Procedure2]
  MOV    dword [esp],eax
; ProcedureReturn Test("Hello World")
  PUSH   dword _S1
  CALL  _SYS_ToBSTR@4
  PUSH   eax
  CALL   dword [esp+4]
  SUB    esp,4
extrn _SysFreeString@4 <-- TB Sees it here and copies/renames it since it's not expecting it.
  CALL  _SysFreeString@4
  JMP   _EndProcedure5
; EndProcedure
  XOR    eax,eax
_EndProcedure5:
  ADD    esp,4
  RET
}

It looks like it should be a fairly easy fix, but I'm a bit concerned that its there in pbcompilers output...

By the way: it works in x64 (no stray Extrn)

However, as this isn't specific to the new MultiLib feature, I think you should have started another topic.
Demonio Ardente

Currently managing Linux & OS X Tailbite
OS X TailBite now up to date with Windows!
lexvictory
Addict
Addict
Posts: 1027
Joined: Sun May 15, 2005 5:15 am
Location: Australia
Contact:

Post by lexvictory »

@mback2k: fixed it here - the part of TB that filters it out was commented.

@ABBKlaus: Are you able to explain why it was commented?
The section:

Code: Select all

If LCase(LTrim(Left(ThisLine$, 6)))="extrn "
  ; !Extrn bugfix found by mpz
  ; ABBKlaus 14.10.2008 21:45 
  
  ThisLine$ = "; "+ThisLine$
EndIf
The ThisLine$ = was the commented line.
Demonio Ardente

Currently managing Linux & OS X Tailbite
OS X TailBite now up to date with Windows!
User avatar
mback2k
Enthusiast
Enthusiast
Posts: 257
Joined: Sun Dec 02, 2007 12:11 pm
Location: Germany

Post by mback2k »

The problem is, if I comment those lines out from the ASM output and rebuild the userlib with the batch file, pbcompiler won't let me compile something that uses the userlib and claims that this export is missing.

There seems to be a reason why it is there.
lexvictory
Addict
Addict
Posts: 1027
Joined: Sun May 15, 2005 5:15 am
Location: Australia
Contact:

Post by lexvictory »

the only line that should need to be commented in the ASM is the extrn in the procedure part, it should work then.

The HelloWorld.asm should look like this when the line is commented: (This is what is generated with the fixed TB)

Code: Select all

format MS COFF

Public PB_HelloWorld


Extrn _SYS_ToBSTR@4
Extrn _SysFreeString@4
Extrn mback2k_Testproc
Extrn mback2k__S1


section '.text' code readable executable

PB_HelloWorld:
PS4=8
XOR    eax,eax
PUSH   eax
; Test.Testproto = @Testproc()
LEA    eax,[mback2k_Testproc]
MOV    dword [esp],eax
; ProcedureReturn Test("Hello World")
PUSH   dword mback2k__S1
CALL  _SYS_ToBSTR@4
PUSH   eax
CALL   dword [esp+4]
SUB    esp,4
; extrn mback2k__SysFreeString@4
CALL  _SysFreeString@4
JMP   _EndProcedure5
; EndProcedure
XOR    eax,eax
_EndProcedure5:
ADD    esp,4
RET
Demonio Ardente

Currently managing Linux & OS X Tailbite
OS X TailBite now up to date with Windows!
User avatar
mback2k
Enthusiast
Enthusiast
Posts: 257
Joined: Sun Dec 02, 2007 12:11 pm
Location: Germany

Post by mback2k »

Yep, thats what I did yesterday. Can you test if you are able to compile something that uses the generated procedure from the userlib?
lexvictory
Addict
Addict
Posts: 1027
Joined: Sun May 15, 2005 5:15 am
Location: Australia
Contact:

Post by lexvictory »

Yep, works fine here - I always test after a successful TB compile.
I just did

Code: Select all

Debug HelloWorld()
If I recall correctly
Demonio Ardente

Currently managing Linux & OS X Tailbite
OS X TailBite now up to date with Windows!
ABBKlaus
Addict
Addict
Posts: 1143
Joined: Sat Apr 10, 2004 1:20 pm
Location: Germany

Post by ABBKlaus »

lexvictory wrote:Do you still have a copy of Inc_OS_Linux.pb?
I dont think there was one.
lexvictory wrote:I'm guessing you understood it, but i meant "status text" not "status test"
Not sure how that one slipped through lol
Don´t worry just enable enableexplicit for teXt writing ;-)
mback2k wrote:I just have one problem: As soon as I use the .p-bstr pseudotype I get the following error, because it does put the "extrn" declaration into the EndProcedure code again.
I already made a fix for this, please redownload the current beta build here : http://www.tailbite.com/downloads/TailB ... R1.880.zip
lexvictory wrote:@ABBKlaus: Are you able to explain why it was commented?
it was commented because of this problem by mpz : http://www.purebasic.fr/english/viewtop ... 222#263222
just uncommenting isnt a solution, a decision must be made to include it or not.
In this case i decided to comment all "extrn _sys*" :
Line 944 of Inc_TailBite.pb:

Code: Select all

                          If ch$=" " Or ch$="," Or ch$="[" Or ch$="+" Or ch$="-"
                            If LTrim(LCase(Left(ThisLine$,6)))="extrn " And FindString(LCase(ThisLine$),"_sys",7)
                              ;do not rename PB functions like _sys* ABBKlaus 8.2.2008 16:50
                            Else
                              rem=FindString(ThisLine$,";",1)
                              If rem=0
                                rem=Len(ThisLine$)+1
                              EndIf
                              THS$ = Left(ThisLine$, vPos-1)
                              ;-* decoration (symbols)
                              THS$+LibName$+decoration+"_"+Right(ThisLine$, Len(ThisLine$)-vPos+1)
                              ThisLine$ = THS$
                              vPos+Len(LibName$+decoration+"_")
                            EndIf
                          EndIf
Line 989 of Inc_TailBite.pb:

Code: Select all

          If LCase(LTrim(Left(ThisLine$, 6)))="extrn "
            ; !Extrn bugfix found by mpz
            ; http://www.purebasic.fr/english/viewtopic.php?p=263222#263222
            ; ABBKlaus 14.10.2008 21:45 
            If FindString(LCase(ThisLine$),"_sys",7)
              ThisLine$ = "; "+ThisLine$
            EndIf
          EndIf
lexvictory
Addict
Addict
Posts: 1027
Joined: Sun May 15, 2005 5:15 am
Location: Australia
Contact:

Post by lexvictory »

ABBKlaus wrote:I dont think there was one.
I made one ;) and made some changes to Inc_OS_Win.pb
ABBKlaus wrote:Don´t worry just enable enableexplicit for teXt writing ;-)
:lol:
ABBKlaus wrote:it was commented because of this problem by mpz : http://www.purebasic.fr/english/viewtop ... 222#263222
I see, I had a feeling it would be something like that.

I had to use diff to make those changes to my sources - as I've changed an awful lot to enable cross compatibility. :twisted:
Examples:

Code: Select all

;Inc_OS_Win.pb
#DirSeparator = ""
#SystemExeExt = ".exe"
#SystemEOL = #CRLF$
#SystemHelpExt = ".chm"
#SystemBatchExt = ".bat"

#Switch_Commented = "/COMMENTED"
#Switch_Unicode = "/UNICODE"
#Switch_ThreadSafe = "/THREAD"
#Switch_InlineASM = "/INLINEASM"
#Switch_Executable = "/EXE"
#Switch_StandBy = "/STANDBY"
#Switch_SubSystem = "/SUBSYSTEM"
#Switch_Version = "/VERSION"
#Switch_Resident = "/RESIDENT"
#Switch_Debugger = "/DEBUGGER"

#Asm_Format = "MS COFF"
#Asm_Formatx64 = "MS64 COFF"
#Asm_TextSection = "section '.text' code readable executable"
Has SourceForge notified you that the project is approved and ready? Because the project page exists already...
Btw: I remember offering a while ago to make the website multilingual, I made an example here: http://demonioardente.users.sourceforge ... plate.html (I copied the existing template layout/colours and stretched it out, as it leaves a lot of empty space on my monitor without)
Demonio Ardente

Currently managing Linux & OS X Tailbite
OS X TailBite now up to date with Windows!
ABBKlaus
Addict
Addict
Posts: 1143
Joined: Sat Apr 10, 2004 1:20 pm
Location: Germany

Post by ABBKlaus »

lexvictory wrote:Has SourceForge notified you that the project is approved and ready? Because the project page exists already...
The project is up and runnning, i already added you as member.
lexvictory wrote:Btw: I remember offering a while ago to make the website multilingual
The problem is i´m using CMSimple and that restricts me in doing such changes.
lexvictory
Addict
Addict
Posts: 1027
Joined: Sun May 15, 2005 5:15 am
Location: Australia
Contact:

Post by lexvictory »

ABBKlaus wrote:The project is up and runnning, i already added you as member.
Thanks, but you didn't need to set me as an admin - but naturally your choice.
And sorry if I seemed nagging/impatient - I have too much free time at the moment, as Uni doesn't start until later this month.
Shall I merge in the linux/cross-compatible code? (I ask because quite a few things have been changed to constants (see my last post), nothing else really major - but I still think you should be aware of it :))
It still compiles windows libs like normal. All it means is that you need to (try) use the new constants instead of #crlf$ for example, and preferably lowercase for paths - as linux is case sensitive where windows is not
But if you don't end up using them, I'll change them before compiling a linux version :wink:
The only other real change I made was to add another testmode constant, because I needed the /DONT parameter on linux to begin with.
ABBKlaus wrote:The problem is i´m using CMSimple and that restricts me in doing such changes.
Ok, I'll drop it, it's not really important - although I use the cheater's way with the droopy site, the whole page content is just one block of text in the translator interface lol
Demonio Ardente

Currently managing Linux & OS X Tailbite
OS X TailBite now up to date with Windows!
ABBKlaus
Addict
Addict
Posts: 1143
Joined: Sat Apr 10, 2004 1:20 pm
Location: Germany

Post by ABBKlaus »

lexvictory wrote:Shall I merge in the linux/cross-compatible code?
Yes, please :mrgreen:
Post Reply