[Vm-dev] VM Maker: VMMaker.oscog-eem.2907.mcz

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Wed Dec 23 07:36:03 UTC 2020


Hi Eliot,
IMO no C code should assume that char is signed nor unsigned...
If socket plugin assumes unsigned, shouldn't it better use unsigned char*
explicitelitely?

Le mer. 23 déc. 2020 à 01:33, <commits at source.squeak.org> a écrit :

>
> Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
> http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2907.mcz
>
> ==================== Summary ====================
>
> Name: VMMaker.oscog-eem.2907
> Author: eem
> Time: 22 December 2020, 4:32:46.670664 pm
> UUID: 5bf10ff3-9f29-4f07-b93a-91354783cb32
> Ancestors: VMMaker.oscog-tpr.2906
>
> Simulation:
> Fix regression in SocketPluginSimulator due to changes to
> CArray>>coerceTo:sim: in VMMaker.oscog-eem.2905; 'char *' is assumed to be
> unsigned.
> Add a missing Socket primitive simulation (hit when running the
> SocketTests under simulation).
> Add a useful error message to CLiteralArray>>at:put:
>
> =============== Diff against VMMaker.oscog-tpr.2906 ===============
>
> Item was changed:
>   ----- Method: CArray>>coerceTo:sim: (in category 'converting') -----
>   coerceTo: cTypeString sim: interpreterSimulator
>
>         ^cTypeString caseOf: {
>                 ['int']                         -> [self ptrAddress].
>                 ['float *']                     -> [self
> asSingleFloatAccessor].
>                 ['double *']                    -> [self
> asDoubleFloatAccessor].
>                 ['sqInt *']                     -> [self shallowCopy
> unitSize: interpreter bytesPerOop; beSigned].
>                 ['unsigned int *']      -> [self shallowCopy unitSize: 4;
> beUnsigned].
>                 ['int *']                               -> [self
> shallowCopy unitSize: 4; beSigned].
>                 ['unsigned short *']    -> [self shallowCopy unitSize: 2;
> beUnsigned].
>                 ['short *']                     -> [self shallowCopy
> unitSize: 2; beSigned].
>                 ['unsigned char *']     -> [self shallowCopy unitSize: 1;
> beUnsigned].
> +               ['char *']                      -> [self shallowCopy
> unitSize: 1; beUnsigned]. "C is ambivalent on the issue; sigh...
> SocketPlugin assumes unsigned"
> -               ['char *']                      -> [self shallowCopy
> unitSize: 1; beSigned]. "C is ambivalent on the issue; sigh..."
>                 ['unsigned']            -> [self ptrAddress].
>                 ['sqInt']                               -> [self
> ptrAddress].
>                 ['usqInt']                      -> [self ptrAddress].
>                 ['sqIntptr_t']          -> [self shallowCopy unitSize:
> interpreter bytesPerOop; yourself] }!
>
> Item was changed:
>   ----- Method: CLiteralArray>>at:put: (in category 'accessing') -----
>   at: offset put: val
> +       self error: 'Literals are immutable; proceed to attempt to assign
> anyway...'.
>         ^object at: offset + 1 put: val!
>
> Item was added:
> + ----- Method: SocketPluginSimulator>>sqSocket:ListenOnPort:BacklogSize:
> (in category 'simulation') -----
> + sqSocket: socketHandle ListenOnPort: portNumber BacklogSize: backlog
> +       ^[Socket basicNew
> +                       primSocket: ((self
> hostSocketHandleFromSimSocketHandle: socketHandle) ifNil: [^self])
> +                       listenOn: portNumber
> +                       backlogSize: backlog]
> +               on: SocketPrimitiveFailed
> +               do: [:ex|
> +                       interpreterProxy primitiveFail.
> +                       0]!
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20201223/06113571/attachment.html>


More information about the Vm-dev mailing list