Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
helpy
Anmeldungsdatum: 22.03.2005 Beiträge: 17
|
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 24.07.2005, 00:05 Titel: |
|
|
ich hatte die grade mal installiert, danach konnt ich nix mehr compilen weil zwei funktionen in irgendwelchen libs doppelt definiert waren...
Muss man da irgendwas anderes machen als das Zeugs über die alten sachen drüberzuschmeißen und dann die install.bat auszuführen? _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
|
Stormy
Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
|
Nach oben |
|
|
Devilkevin aka Kerstin
Anmeldungsdatum: 11.11.2004 Beiträge: 2532 Wohnort: nähe Mannheim
|
Verfasst am: 24.07.2005, 09:44 Titel: |
|
|
Hmm, gestern hat im IRC auch scon jemand gesagt das die neue Version unter Windows nicht funzt. _________________ www.piratenpartei.de |
|
Nach oben |
|
|
helpy
Anmeldungsdatum: 22.03.2005 Beiträge: 17
|
Verfasst am: 24.07.2005, 12:59 Titel: |
|
|
victor schrieb: Zitat: | Note: Do not install the Windows version over the old versions, unless the whole /lib/win32 directory is deleted first. |
also nicht einfach über die alte drüber installieren ... wenn schon drüber installieren, dann zuerst alle libs in /lib/win32 löschen und dann install.bat |
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 24.07.2005, 13:49 Titel: |
|
|
changelog hat Folgendes geschrieben: | [added]
function overloading, the return type is not taken into account, only the arguments (as in Java) | => Code: | declare function bla(foo as integer) as integer
declare function bla(foo as integer, bar as integer) as integer
function bla(foo as integer) as integer
bla=10*foo
end function
function bla(foo as integer, bar as integer) as integer
bla=foo*10+bar
end function | => compiler hat Folgendes geschrieben: | Line 2: Duplicated Definition | => _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
|
jb
Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 24.07.2005, 18:17 Titel: |
|
|
Dann lass doch mal die declare's weg, dann könnte es klappen
jb |
|
Nach oben |
|
|
helpy
Anmeldungsdatum: 22.03.2005 Beiträge: 17
|
Verfasst am: 24.07.2005, 20:57 Titel: |
|
|
Probier mal das:
Code: | declare function bla overload (foo as integer) as integer
declare function bla(foo as integer, bar as integer) as integer
function bla(foo as integer) as integer
bla=10*foo
end function
function bla(foo as integer, bar as integer) as integer
bla=foo*10+bar
end function |
Im examples Verzeichnis gibt es ein Beispiel (overload.bas).
cu, helpy |
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 24.07.2005, 22:29 Titel: |
|
|
das funktioniert
Aber ist das nicht irgendwie total bescheuert, bei jeder Funktion, die überladen wird ein overload dazuzuschreiben? _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
|
d.j.peters Gast
|
Verfasst am: 25.07.2005, 01:56 Titel: |
|
|
MisterD hat Folgendes geschrieben: | das funktioniert
Aber ist das nicht irgendwie total bescheuert, bei jeder Funktion, die überladen wird ein overload dazuzuschreiben? |
Hi MisterD,
die erste function/sub und nur diese muss mit overload gekennzeichnet sein.
Das macht allein schon wegen der QB Kompatiblietät Sinn und sonnst "wüste" auch der Linker nicht ob es Absicht ist oder nur ein Tippfehler wenn zwei Funktionen den selben Namen haben.
Noch eine schöne Zeit.
Joshy |
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 25.07.2005, 11:40 Titel: |
|
|
hä? Also wenns ein Tippfehler ist bekäme man vom Compiler irgendwo im Programm die Fehlermeldung "Undeclared array" oder sowas oder man hat die Funktion umsonst gebastelt. Seit wann nehmen Linker oder Compiler rücksicht auf Tippfehler?
Also ich halte es für schwachsinn, einer Funktion die überladen wird ein overload anzuhängen.. Das nützt niemandem was und das gibts auch sonst nirgendwo. Der einzige dem das was nützt ist vielleicht v1ctor, der muss seinem Compiler dann nicht beibringen, selbst rauszufinden, welche Funktionen oder Subs überladen werden.. Wobei ich denke, dass er das ruhig machen könnte _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
|
d.j.peters Gast
|
Verfasst am: 25.07.2005, 16:34 Titel: |
|
|
So kann man das auch sehen!
Immer auf die kleinen Compilerbauer
Joshy |
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 25.07.2005, 18:39 Titel: |
|
|
ja aber ist doch so, oder?
also mal zB sowas: Code: | declare function toString overload(v as vektor) as string
declare function toString(bez as string, v as vektor) as string
declare function toString(d as drehung) as string
declare function toString(bez as string, d as drehung) as string |
das overload is doch wohl total fürn arsch, oder nützt das irgendjemandem was? _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
|
d.j.peters Gast
|
Verfasst am: 25.07.2005, 20:55 Titel: |
|
|
MisterD hat Folgendes geschrieben: | ja aber ist doch so, oder?
also mal zB sowas: Code: | declare function toString overload(v as vektor) as string
declare function toString(bez as string, v as vektor) as string
declare function toString(d as drehung) as string
declare function toString(bez as string, d as drehung) as string |
das overload is doch wohl total fürn arsch, oder nützt das irgendjemandem was? |
Das würde aber nur Sinn machen wenn es Option NoQBMode gäbe oder einen vergleichbaren compile switch -NoQBMode.
Der Parser kann doch nicht wissen ob einer in QB schreibt oder in FreeBASIC. Allein von Annahme aus zu gehen, dass wenn ein Funktionsnahme öfter auftaucht von mir aus auch mit verschiedenen Parametern das FreeBASIC gemeint ist wäre nicht wirklich gut. Was in einem Modus Overloading wäre müste im QB Modus eindeutig ein Fehler sein. Problematischer wird es noch weil FreeBASIC auf Modulebene konzipiert ist und der Linker nichts von QB oder FB wissen will da geht es nur um aufzulösende Referenzen und Overload sagt eigentlich ja nur das "mangling" benutzt wird.
Es ist auch keine Bedingung das declarierte öffentliche functionen auch wirklich als code existieren müssen und anderes zuvor compiliertes Modul hat auch keinen schimmer davon
mit was für Referenzen es mal gelinkt wird.
Aber das kennst du ja Bestimmt wenn Compilerbau Deine Programmierdisziplien ist. Jetzt da der Debuger support so gut wie fertig ist kommt in der nächsten Release OOP und dann wird es auch eine OPTION OOP oder OPTION NOQB geben.
Lassen wir uns überaschen und bis dahin zitiere ich Dich gerne.
Das ist was fürn Arsch
Bis dahin eine schöne Zeit.
Joshy |
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 25.07.2005, 22:15 Titel: |
|
|
Also nur mal so: Bei FreeBASIC gibts nen Parser, der parst FB und bei QBasic gibts nen Parser der parst QB. Es ist völliger schwachsinn, dem Freebasicparser zu sagen, er soll QB parsen. Ich hab inzwischen mal mit marzec geredet, v1ctor sei ein "fauler hund" und hatte nur keine lust, seinen parser das rausfinden zu lassen, also muss mans eingeben.
FreeBASIC ist FreeBASIC und QBasic ist QBasic. FreeBASIC leitet sich lediglich von der Syntax und den meisten befehlen her von QB ab, sonst gibts da keine Parallelen. Folglich hat der FB-Parser mit QB nix am Hut. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
|
|