Page 2 of 2 FirstFirst 1 2
Results 16 to 25 of 25

Thread: Debug/Release geeft ander gedrag

  1. #16
    Quote Originally Posted by Benno View Post
    Weet je dat zeker? Volgens mij kun je als een component is geinstalleerd volstaan met de BPL en DCU's, maar goed is ook al lang geleden dat ik zo'n schuifbeurt gedaan heb.
    Als je compileert met runtime packages (dus je programma gebruikt de bpl), dan is dat voldoende. Zo niet, dan heb je naast de DCU's ook de DCR's nodig (Delphi Compiled Resource). Ik heb zelf een post-build event toegevoegd dat de DCR's kopiëert.

    Selecteer/activeer je package project en ga naar Project -> Options -> Build events. Bij mij staan er wat custom variabelen in, maar in basis zou dit voldoende moeten zijn. Telkens wanneer je het package buildt, zullen de .res- en .dfm-bestanden naar de map met dcu's gekopieerd worden. Als dat pad in het library pad van je project staat, kan je applicatie compileren, zonder dat je ook hoeft te verwijzen naar de source van je package.

    copy /Y "$(PROJECTDIR)\*.res" "$(OUTPUTDIR)\*.*"
    &copy /Y "$(PROJECTDIR)\*.dfm" "$(OUTPUTDIR)\*.*"
    1+1=b

  2. #17
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Quote Originally Posted by GolezTrol View Post
    Die lijst moet leeg zijn. Als je code commit met warnings erin, dan mag je een rondje stroopwafels trakteren.
    Lopen er vast een hoop dikke mensen rond. Wij werken ze hooguit eens per half jaar weg, tenzij er directe aanleiding is.

    En een warning/hint fout wegwerken, daar staat trakteren op uit eten in een restaurant op. Je wil niet dat mensen warnings hersenloos gaan wegmoffelen. (en mensen zijn best creatief om dat te bewijzen, als er een etentje voor het team op het spel staat....)

  3. #18
    Senior Member Wok's Avatar
    Join Date
    Dec 2002
    Location
    Alkmaar
    Posts
    2,085
    Voor de fanatiekelingen, het is geen warning maar toch:

    Ik krijg een hint waar ik weinig mee kan.
    Op 2 verschillende plaatsen word de routine Dologinuser aangeroepen

    X:\Prog\Exe\uLogin.pas(81): If DoLoginUser(IniOptions.Gebruiker.Code, False) Then
    X:\Prog\Exe\uLogin.pas(339): If DoLoginUser(Code, True) Then

    Die staat in een andere unit:

    Function TDataHoofd.DoLoginUser(Const Code: String; Inlog: Boolean): Boolean;
    Begin
    //
    End:

    Maar ik krijg toch deze melding:

    [DCC Hint] uDataHoofd.pas(121): H2077 Value assigned to 'TDataHoofd.DoLoginUser' never used

    Negeren of verhelpen ?
    10.4.2, Delphi2010, of Lazarus 2.2.0

  4. #19
    Quote Originally Posted by Wok View Post
    Maar ik krijg toch deze melding:

    [DCC Hint] uDataHoofd.pas(121): H2077 Value assigned to 'TDataHoofd.DoLoginUser' never used

    Negeren of verhelpen ?
    Ik neem niet aan dat dat de echte hele functie is. Of je de hint moet verhelpen hangt af van die code. Als het een bug is moet je hem verhelpen. Als het geen bug is kun je hem vrij simpel verhelpen of negeren. (het negeren hangt af van jezelf of je de hint hinderlijk vindt).

  5. #20
    Quote Originally Posted by marcov View Post
    Lopen er vast een hoop dikke mensen rond. Wij werken ze hooguit eens per half jaar weg, tenzij er directe aanleiding is.
    Er is vrijwel altijd direct aanleiding voor, en het enkele geval waar dat niet zo is, is er nog steeds een goeie reden, namelijk dat je geen belangrijke warning over het hoofd ziet doordat er een aantal (mogelijk) minder belangrijke warnings voor staan.
    1+1=b

  6. #21
    Fornicatorus Formicidae VideoRipper's Avatar
    Join Date
    Mar 2005
    Location
    Vicus Saltus Orientalem
    Posts
    5,708
    Je kunt zeggen: "Ach, hints mag je negeren", maar je kunt uit een hele waslijst echt niet meer zien wat er wel en niet "Mag".

    Met hints en warnings wegwerken bedoel ik niet "Wegmoffelen" want daar staat de doodstraf op.
    Gewoon echt oplossen: variabelen/methods die niet gebruikt worden verwijderen, welke wel nodig zijn initialiseren voordat je er op controleert.

    Ik heb nog nooit een situatie gehad waarin ik het hebben van een hint of warning in mijn code kan verdedigen: de compiler heeft altijd gelijk.
    Ze staan er ook niet voor niets: ze laten doorschemeren ("Hint") dat iets niet hoeft of ze waarschuwen ("Warning") voor gevaar.
    TMemoryLeak.Create(Nil);

  7. #22
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Hoe doen jullie dat dan in Lazarus?
    Delphi is great. Lazarus is more powerfull

  8. #23
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Quote Originally Posted by VideoRipper View Post
    Third party "Rommel-code" is bij mij het enige excuus om {$WARN XXX OFF} te mogen gebruiken
    in die units, zodat ze niet mijn compiler-resultaten vervuilen.

    Eerlijk gezegd vind ik het ook heel erg bedenkelijk dat sommige grote softwarehuizen geen
    "Roze koek" (bij ons waren het roze koeken) policy hebben...
    Het met meerdere compiler versies warning vrij maken (vooral met Pre D2009 en erna) is een hoop lastiger. Ook zwaar geifdefde code is vaak lastiger warning vrij te maken.

    Ik ben inmiddels daar wel uit (pre D2009 compatibility weggegooid, en wat ansistring routines geupdate/geisoleerd), en de ifdef hoeveelheden zijn wat afgenomen. Maar dat soort cleanups moeten vanuit project management uit komen, niet vanwege roze koeken policies.
    Last edited by marcov; 26-Jul-17 at 12:23.

  9. #24
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Quote Originally Posted by GolezTrol View Post
    Er is vrijwel altijd direct aanleiding voor, en het enkele geval waar dat niet zo is, is er nog steeds een goeie reden, namelijk dat je geen belangrijke warning over het hoofd ziet doordat er een aantal (mogelijk) minder belangrijke warnings voor staan.
    Als je alleen maar hamers kent, dan is het enige gereedschap dat je nodig hebt een hamer :-)

    Dan heb je een flut CI systeem. Een ietwat fatsoenlijk CI systeem kan minder belangrijke warnings eruit filteren of maskeren met verschillende levels.

    Btw in Lazarus kan je maskeren met {%H-} pseudo directives. Op de commandline zie je ze nog steeds allemaal, wat een aardige tussenstap is. Een CI systeem zou dat kunnen scannen en meerdere rapporten genereren. (en dat is hoe we het bij een vorige werkgever deden, sommige type warnings negeerden we geheel (b.v. Kylix gerelateerde "platform" warnings), sommige maskeerden we alleen in "known" places.
    Last edited by marcov; 26-Jul-17 at 12:24.

  10. #25
    Je vergelijking slaat als een hamer op een drumstel.

    Als het een minder belangrijke warning is, zet die dan uit in je project. Bijvoorbeeld de platform warning is niet zo boeiend als je maar voor één platform bouwt, dus dat is er één waarop we niet willen rapporteren, en waarvoor je dus ook geen stroopwafels hoeft te trakteren. En je kan als je wil dat inderdaad per build configuratie instellen. Ik heb het natuurlijk over de warnings waarvan we hebben afgesproken dat ze wél relevant zijn, en ik zie graag dat developers die zelf zien en oplossen voordat er überhaupt een CI systeem aan de slag gaat.
    Dat systeem is natuurlijk een (extra) vangnet, maar geen vervanging voor ordentelijk programmeren.

    En met wegwerken bedoel ik niet dat er een warn off directive omheen gezet moet worden, maar dat je (bijvoorbeeld) ongebruikte variabelen weghaalt en gebruikte variabelen goed initialiseert.
    Ik heb één keer een directive gebruikt, en dat was omdat de compiler vol bleef houden dat Result ongedefinieerd kon zijn, terwijl het een stringfunctie was en er op regel 1 zelf duidelijk Result := ''; stond. Ik moffel dan inderdaad (na overleg) graag die warning weg, om te voorkomen dat iedereen binnen de kortste keren allerlei warnings aan het goedpraten is. Als jij dat een hamer vindt, dan is dat maar een hamer. Ik vind het meer een toepassing van de Broken Windows theory.
    Last edited by GolezTrol; 26-Jul-17 at 14:21.
    1+1=b

Page 2 of 2 FirstFirst 1 2

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •