> On Tue, 31 May 2016 00:09:01 +0200 (CEST)
> "Maarten Brock" <sourceforge.br...@dse.nl> wrote:
>
>> Hello SDCC followers,
>>
>> Today the first Release Candidate (RC1) for SDCC 3.6.0 has been created.
>> As always it has been put online in our SourceForge File section.
>> https://sourceforge.net/projects/sdcc/files/
>>
>> If you have the time, please verify it and report back with the positive
>> or negative results.
>
> The positive:
>
> l9x now builds without weird type errors that were present on 950x

I'm not quite sure what you mean here. What is l9x? And I guess 950x is a
subversion revision of sdcc.

> Code generation for compactness at least is again way better on Z80. The
> Bourne shell was 25762 bytes last time I looked and is now down to 24354
> (assuming of course it still works when I get round to testing!)
>
> Almost everything still builds for the Fuzix C libraries and application
> set, which is becoming a fairly large chunk of code.
>
> The negative:
>
> calendar.c:233: warning 84: 'auto' variable 'retval' may be used before
> initialization Caught signal 11: SIGSEGV
>
> m4.c:485: error 9: FATAL Compiler Internal Error in file 'gen.c' line
> number '4224' : code generator internal error Contact Author with source
> code m4.c:485: error 9: FATAL Compiler Internal Error in file 'gen.c'
> line number '4224' : code generator internal error Contact Author with
> source code
>
> In one case code that used to build now errors (correctly due to the
> tightening up on type specifiers) but shows weird behaviour - some of the
> warnings are not displaying the correct line number and show "-" as the
> filename:
>
> exec.c:88: error 226: no type specifier for 'i'
> -:0: warning 85: in function setcmd unreferenced local variable : 'len'
> -:0: warning 85: in function setcmd unreferenced local variable : 'i'
> exec.c:524: warning 85: in function backup unreferenced local variable :
> 'p'
> -:0: warning 85: in function nextfile unreferenced local variable : 'what'
>
>
> None of these have obvious small reproducers - is there a preferred way
> to send you something to debug ?
>
>
> Minor
>
>
> An implicit declaration is now followed by a confusing report about auto
> variables
>
> man.c:590: warning 112: function 'build_headers' implicit
> declaration
> man.c:590: warning 84: 'auto' variable 'build_headers' may be
> used before initialization
>
>
> Warnings for the common expression
>
>         for (tp = tbuf; tp < &tbuf[TSIZE]; tp++)
>
> where TSZIZE is the size of the struct.
>
> Although having quickly checked those don't appear to be that new
>
>
>
> I've not done any real runtime testing but I will try and do that and
> also pull out some of the workarounds I have for older sdcc and see how
> many of those still break.
>
> So far this all looks pretty good to me for a first release candidate.
>
>
> I still hit the following limits (unsurprisingly)
>
> - the speed of optimized compilation for Z80 (ok it is a bitch of a CPU to
>   generate code for)
> - code generation (way better than any other Z80 compiler but still
>   some real facepalm grade code generation in there and often for trivial
>   easily optimised cases like 16bit equality compares with 0-255) (*)
> - inability to assign structs (even ones that fit an int or pointer
>   size), which stops me from using sdcc with yacc when %union is used
>
>
> Also a question: I have some nice clean compiler patches for code banking
> but not yet good linker ones. I don't know if you are interested in them
> once 3.6 is out but basically they add a Z80 compiler option which
>
> - changes the calling sequence to expect arguments two bytes further up
>   the stack
> - puts text constants in const not code (IMHO this is a bug fix)
> - generates
>
>       push af
>       call func
>       pop af
>
>   sequences for function calls. The smart linker then replaces
>   inter-segment calls with
>
>       call _helperfunc_a_b    ; helperfunc is the right helper, a b
>                               ; are the banks
>       defw func
>
>   and the helpers use the extra two stack bytes to save/restore the banks
>   when switching. Indirect calls via pointers are revectored via stubs
>   generated by the linker.
>
> I've been using it for the Fuzix kernel on ZX Spectrum for a while and it
> seems to be fairly solid at this point.

Bugs and patches can be sent to our Sourceforge trackers:
https://sourceforge.net/p/sdcc/bugs/
https://sourceforge.net/p/sdcc/patches/

> Thanks for all the work on the compiler
>
> Alan

Are any of the problems you experience regressions from sdcc 3.5.0?

Thanks for checking,
Maarten

>
> (*) In that case it's
>
>       ld a,b
>       dec a
>       jr nz, false_path
>       ld a,c
>       or a
>       ..
>
> where of course the second part should just or c knowing a is 0


------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to