Page 2 of 3
Posted: Thu Feb 05, 2009 8:18 pm
by ABBKlaus
lexvictory wrote:ok, have tested - excellent work, especially the changing of the status test

Droopy's Lib compiles fine
Thanks
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

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

Posted: Thu Feb 05, 2009 9:11 pm
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.
Posted: Fri Feb 06, 2009 1:25 am
by lexvictory
Very nice, as always

Although I'm worried I'm getting too demanding/annoying
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)
Oh, and nice test file in the screenshot
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 te
xt" not "status test"
Not sure how that one slipped through

lol
Posted: Fri Feb 06, 2009 10:00 pm
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
Posted: Sat Feb 07, 2009 12:53 am
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.
Posted: Sat Feb 07, 2009 5:54 am
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.
Posted: Sat Feb 07, 2009 9:14 am
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.
Posted: Sat Feb 07, 2009 11:19 am
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
Posted: Sat Feb 07, 2009 11:20 am
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?
Posted: Sat Feb 07, 2009 11:22 am
by lexvictory
Yep, works fine here - I always test after a successful TB compile.
I just did
If I recall correctly
Posted: Sun Feb 08, 2009 9:18 pm
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
Posted: Mon Feb 09, 2009 12:24 am
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

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.

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)
Posted: Mon Feb 09, 2009 9:07 pm
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.
Posted: Tue Feb 10, 2009 1:32 am
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

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
Posted: Wed Feb 11, 2009 8:48 am
by ABBKlaus
lexvictory wrote:Shall I merge in the linux/cross-compatible code?
Yes, please
