[colm-users] Hardcoded word_t
Adrian Thurston
thurston at colm.net
Sat May 12 16:49:16 UTC 2018
Great, thanks, just merged it.
On 2018-05-12 05:55, Konstantin Podsvirov wrote:
> Hello again!
>
> 11.05.2018, 20:11, "Adrian Thurston" <thurston at colm.net>:
>> We'll get this cleaned up eventually. There is nothing about the
>> language design that demands certain sizes for things. It's just a
>> matter of me doing most of my research on a certain platform. It's
>> important to note that colm is still a research project. Ragel 7
>> depends
>> on it now, but that is still also a development release.
>>
>> Note I've got some changes to colm to push that fix certain issues
>> that
>> arise on platforms other than the one I work on mostly (amd64 ubuntu
>> 16.04). Coming soon.
>
> I have solution :-)
>
> Today after latest changes in `master` branch I can compile `coml`
> with MinGW-w64 64bit toolchains.
>
> Your can try changes from `word` branch on my server:
>
> http://git.podsvirov.pro/?p=dad/fix/colm.git;a=shortlog;h=refs/heads/word
>
> All changes in one last commit:
>
> The type word_t declaration
>
> If sizeof(unsigned long) == sizeof(void *) then word_t is unsigned
> long.
> Else if sizeof(unsigned long long) == sizeof(void *) then word_t is
> unsigned long long.
>
> Compilation checked with MSYS2 toolchains via Autotools project and
> with MinGW-w64 toolchains via CMake project.
>
> http://git.podsvirov.pro/?p=dad/fix/colm.git;a=commitdiff;h=63224902a50c68b3ce4e38827199bae4d50746f3
>
> Also available via git:
>
> git clone -b word git://podsvirov.pro/dad/fix/colm.git
>
> Adrian, please review my changes and apply if posible.
>
>> On 2018-05-11 05:05, Konstantin Podsvirov wrote:
>>> 03.05.2018, 21:13, "Konstantin Podsvirov"
>>> <konstantin at podsvirov.pro>:
>>>>>> 20:12, 3 May 2018 г., Adrian Thurston <thurston at colm.net>:
>>>>>>> Hi Konstantin,
>>>>>>>
>>>>>>> code_t is the type used to encode virtual machine instructions.
>>>>>>> Just
>>>>>>> need 1 byte for this now.
>>>>>>>
>>>>>>> half_t is used mostly for virtual machine instruction arguments.
>>>>>>> It
>>>>>>> started out as 2 bytes, but has grown. It might have been made
>>>>>>> larger
>>>>>>> than needed at the moment -- haven't looked at that in long
>>>>>>> time.
>>>>>>>
>>>>>>> word_t is the primary type for virtual machine values pushed to
>>>>>>> the
>>>>>>> stack and operated on by the VM. The values are either pointers
>>>>>>> to
>>>>>>> things or integers. The VM assumes the same size here, so
>>>>>>> whatever
>>>>>>> type
>>>>>>> is used it needs to be the same size as a pointer or there will
>>>>>>> be
>>>>>>> some
>>>>>>> trouble.
>>>>>>>
>>>>>>> Admittedly, portability needs to be improved.
>>>>>> Hi Adrian,
>>>>>> thank you for the clarification. I think this is enough for
>>>>>> experiments.
>>>
>>> After studying the code, several attempts and experiments, I want to
>>> say that adding support for 64-bit platforms is not a trivial task.
>>>
>>> Unfortunately I do not have the time and energy to solve this issue.
>>>
>>>>>>> On 2018-04-30 11:34, Konstantin Podsvirov wrote:
>>>>>>>> 30.04.2018, 18:06, "Adrian Thurston" <thurston at colm.net>:
>>>>>>>>> Hi, yes would like to have this fixed at some point. Sorry no
>>>>>>>>> ETA at
>>>>>>>>> the moment.
>>>>>>>>
>>>>>>>> But can you briefly describe what does each type code_t,
>>>>>>>> word_t,
>>>>>>>> half_t and what are the requirements in size and made to them.
>>>>>>>>
>>>>>>>>> On 2018-04-29 12:53, Konstantin Podsvirov wrote:
>>>>>>>>>> Hello colm developers... :-)
>>>>>>>>>>
>>>>>>>>>> Currently the word_t is hardcoded in src/tree.h file as
>>>>>>>>>> unsigned long
>>>>>>>>>> type, bun used to store pointers too.
>>>>>>>>>>
>>>>>>>>>> On some platform (for example mingw64) size of the long (4
>>>>>>>>>> byte) less
>>>>>>>>>> then size of the void* (8 byte).
>>>>>>>>>>
>>>>>>>>>> Previously i add check for this problem in CMake project
>>>>>>>>>> file,
>>>>>>>>>> but
>>>>>>>>>> not provide any solution.
>>>>>>>>>>
>>>>>>>>>> What you think about this?
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Regards,
>>>>>>>>>> Konstantin Podsvirov
>>>>>>>>>>
>>>>>>>>>> _______________________________________________ colm-users
>>>>>>>>>> mailing
>>>>>>>>>> list colm-users at colm.net
>>>>>>>>>> http://www.colm.net/cgi-bin/mailman/listinfo/colm-users
>>>>>>>>> ,
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> colm-users mailing list
>>>>>>>>> colm-users at colm.net
>>>>>>>>> http://www.colm.net/cgi-bin/mailman/listinfo/colm-users
>>>>>>>>
>>>>>>>> --
>>>>>>>> Regards,
>>>>>>>> Konstantin Podsvirov
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> colm-users mailing list
>>>>>>>> colm-users at colm.net
>>>>>>>> http://www.colm.net/cgi-bin/mailman/listinfo/colm-users
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> colm-users mailing list
>>>>>>> colm-users at colm.net
>>>>>>> http://www.colm.net/cgi-bin/mailman/listinfo/colm-users
>>>>>>
>>>>>> _______________________________________________
>>>>>>
>>>>>> colm-users mailing list
>>>>>> colm-users at colm.net
>>>>>> http://www.colm.net/cgi-bin/mailman/listinfo/colm-users
>>>>>
>>>>> Regards,
>>>>> Konstantin Podsvirov
>>>
>>> _______________________________________________
>>> colm-users mailing list
>>> colm-users at colm.net
>>> http://www.colm.net/cgi-bin/mailman/listinfo/colm-users
>>
>> _______________________________________________
>> colm-users mailing list
>> colm-users at colm.net
>> http://www.colm.net/cgi-bin/mailman/listinfo/colm-users
>
> Regards,
> Konstantin Podsvirov
>
>
> _______________________________________________
> colm-users mailing list
> colm-users at colm.net
> http://www.colm.net/cgi-bin/mailman/listinfo/colm-users
More information about the colm-users
mailing list