PureBasic 4.00 Beta1 released!

Ankündigungen PureBasic oder die Community betreffend.
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

MVXA hat geschrieben:2. Tun wir mal so als wenn im SourceCode jetzt 5.0 steht. Wird die
Zahl als Float oder als Double angesehen? Kann man das irgendwie
einstellen als was das gesehen werden soll?
Das dürfte die Frage beatworten:

Code: Alles auswählen

Debug 0.2
f.f = 0.2
Debug f
d.d = 0.2
Debug d
Warum sollte man auch floats nehmen, wenn man doubles hat? Der FPU ist das eh egal (soll heißen es ist gleich schnell).
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
strgalt
Beiträge: 63
Registriert: 30.08.2004 23:25

Beitrag von strgalt »

Nabend,

Nu muss ich das leider nochmal einschmeissen - ist wohl bei der Menge untergegangen:

Wann wird die Database- Lib mit GetDatabaseDouble und GetDatabaseQuad aktuallisiert?
Wer lesen kann, ist klar im Vorteil

MfG
strgalt
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag von Andre »

Erstmal finde ich es auch sehr erfreulich, dass die meisten PB-User Gefallen am PB v4 Update finden... :allright:
Didelphodon hat geschrieben:Ich hab mal eben schon angefangen an einem Code-Konverter zu schreiben. Wenns "öffentliches" Interesse daran gibt, dann schreib ich ihn etwas allgemeiner und flexibler in der Konfiguration (ansonsten brauch ich ihn ja nur auf meine Bedürfnisse auslegen.
Wenn Du öffentliches Interesse mit öffentlicher Mitarbeit verbinden willst, kannst Du den Converter-Code auch im PureWiki auf www.PureArea.net einstellen. Einfach eine entsprechende neue Seite aufmachen, danach kann diese samt Code jederzeit online editiert werden. Dann machen vielleicht noch mehr mit :allright:

Würde alternativ sicherlich auch übers Forum gehen (da geht aber eben nur neue Beiträge posten, während es im Wiki immer eine Seite bleibt - samt Versionsgeschichte)

Nachtrag: Ich habe auch ein ganz persönlich großes Interesse an einem Converter (am besten mit Batch-Funktion) - wenn ich da so an das Umwandeln des CodeArchivs denke... :wink:
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Toshy
Beiträge: 713
Registriert: 22.03.2005 00:29
Computerausstattung: Computer und Strom vorhanden
Wohnort: LK Wolfenbüttel

Beitrag von Toshy »

Ohne große Englischkenntnisse ist das zwar schwer zu verstehen, aber ich beiße mich durch. Macht trotzdem Spaß. Ich wollte jetzt mal die Mutex testen, bin aber schon an anderem gescheiter.
Zwar habe ich mitbekommen, da alles erstmal lokal ist (auch arrays) und erst auf global gesetzt werden muß. aber wie läuft das nun?
Ich dachte, sobald ich im "Haupcode" eine variable auf global setzte ich sie überall bekannt, aber das stimmt wohl nur begrenzt.
In Proceduren ist sie bekannt in Proceduren die als Thread ausgeführt werden nicht (jaPBe ohne "Threadsafe genutzt).
Dort geht es erst, wenn ich die Variable mit shared nutze und zwar MIT Variablenbezeichener.

Code: Alles auswählen

Procedure thread()
; ohne shared wird s nicht angezeigt
  ;Shared s hier auch nicht, gibt nen fehler
  ;Shared s.s, hier klappt es wohl
  Debug s
  While 1
    Delay(1)
  Wend
EndProcedure

ThreadID1 = CreateThread(@thread(),1)
  
Global s.s
s = "test"
  
While 1
  Delay(1)
Wend
  
Ich habe das jetzt durch viel testen hinbekommen, da ich wohl was nicht verstanden habe.
Ist dieses Verhalten aber nun Absicht oder ist dies ein fehler?

Global wird in bezug auf die Nutzung bei Thread dann wohl sinnlos, denn man muß shared nehmen und wenn man "global" wegläßt, geht es auch.

[edit] Ach ja, muß ich dann bei jedem Thread für die selbe Variable immer wieder shared nehmen oder nur bei einem bzw. gibt es probleme wenn ich das bei mehr als einem nehme?
Gilt "shared" dann nur für den Thread oder für die eine Procedure (habe damit noch nicht gearbeitet), muß ich also ab pb4 statt einmal "global" zu nehmen für jede Procedure "shared" anlegen?

Gruß
Toshy
Benutzeravatar
Eric
Beiträge: 303
Registriert: 05.09.2004 09:50
Wohnort: Göttingen

Beitrag von Eric »

Das hat nichts mit Threads zu tun und eine Funktion 'weiß' auch nicht,
dass sie ein Thread ist.

Aber du kannst eine Variable erst verwenden, wenn sie definiert ist,
du musst das

Code: Alles auswählen

Global s.s
s = "test"
(das Global s.s sollte allerdings reichen)

über Procedure thread()
setzen.
El_Choni_work: cant't you just spit the binary data to sqlite, as you would spit a hamster into a microwave oven?
* Fangles falls off the chair laughing
Bild
freak
PureBasic Team
Beiträge: 766
Registriert: 29.08.2004 00:20
Wohnort: Stuttgart

Beitrag von freak »

übrigens geht jetzt auch

Code: Alles auswählen

Global s.s = "test"
;)
Toshy
Beiträge: 713
Registriert: 22.03.2005 00:29
Computerausstattung: Computer und Strom vorhanden
Wohnort: LK Wolfenbüttel

Beitrag von Toshy »

Code: Alles auswählen

Procedure Thread1()
  ;Shared s.b
  Debug "als Procedure aufgerufen: " + Str(s)
EndProcedure

Procedure Thread2()
  ;Shared s.b
  While 1
    Debug "als Thread aufgerufen" + Str(s)
    Delay(1000)
  Wend
EndProcedure
  
Global s.b
s = 1

Thread1()
ThreadID1 = CreateThread(@Thread2(),1)
  
While 1
  Delay(1)
Wend
  
Also Global scheint nicht zu funktionieren, ohne Shared klappt da gar nichts mehr. Da "Global" aber noch existiert tippe ich auf einen Fehler.
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Du musst das Global vor die Proceduren schreiben, das war aber vorher auch schon so..
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
MLK
Beiträge: 267
Registriert: 01.11.2004 13:17
Wohnort: Hamburg

Beitrag von MLK »

Deeem2031 hat geschrieben:Du musst das Global vor die Proceduren schreiben, das war aber vorher auch schon so..
ich habe immer noch nicht kapiert warum das so ist. ist das wirklich so gewollt oder einfach das ergebnis der umsetzung? global ist doch global, nicht ForwardGlobal..
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag von freedimension »

MLK hat geschrieben:
Deeem2031 hat geschrieben:Du musst das Global vor die Proceduren schreiben, das war aber vorher auch schon so..
ich habe immer noch nicht kapiert warum das so ist. ist das wirklich so gewollt oder einfach das ergebnis der umsetzung? global ist doch global, nicht ForwardGlobal..
PB ist ein single pass compiler, d.h. er arbeitet den Quelltext nur einmal durch und übersetzt ihn dann direkt. Woher soll der Parser nun wissen, dass eine Variable innerhalb einer Prozedur im nachfolgenden Code einmal als Global definiert sein wird?
Zuletzt geändert von freedimension am 05.02.2006 01:58, insgesamt 1-mal geändert.
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
Antworten