From rodney_bates at lcwb.coop Thu Feb 19 20:01:09 2015 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Thu, 19 Feb 2015 13:01:09 -0600 Subject: [M3devel] Binary compatibility and back ends. Message-ID: <54E632F5.5090109@lcwb.coop> Any knowledge of what we have or ideas about what we want in the way of binary compatibility between the code generated by different back ends? How much of it do we have? How much do we want? I know of at least a few things that require a match between generated code and the runtime. Open array heap objects, text literals are examples. Probably the layout of the allocator/GC word at the head of heap objects too. I recall from a number of years ago, having a failure involving passing a one-byte value as a parameter, but don't remember the details. That would have been PM3, and maybe linking with a different language. I have also recently had a problem involving passing a record/struct between code from the M3 gcc-4.7 back end and C code compiled by a more recent stock gcc. -- Rodney Bates rodney.m.bates at acm.org From rodney_bates at lcwb.coop Fri Feb 27 19:55:26 2015 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Fri, 27 Feb 2015 12:55:26 -0600 Subject: [M3devel] Some M3 maintenance questions Message-ID: <54F0BD9E.2070901@lcwb.coop> I have quite a list of little (and some not so little) maintenance things to do to the Modula-3 distribution. I am learning to use git and github, but some involve other things than just the repository. 1) Olaf, are you intending to continue hosting the web pages? 2) How can I update these? There appear to be copies of some/many of them in the cm3 repository, but these are not served from there as web pages, AFAIK, 3) I have never understood the automated build system on various platforms. What is its status? Can run these builds manually, or will they run automatically if I put source updates in the right place? What targets do we have? (I have LINUXLIBC6 and AMD64_LINUX myself.) 4) I have also never understood how to run all the many test cases that are in the repository. Has it been done at all recently? Are there scripts to do it? Can I add cases to them? Are there various targets I can get them to run on? -- Rodney Bates rodney.m.bates at acm.org From wagner at elegosoft.com Fri Feb 27 22:46:09 2015 From: wagner at elegosoft.com (Olaf Wagner) Date: Fri, 27 Feb 2015 22:46:09 +0100 Subject: [M3devel] Some M3 maintenance questions In-Reply-To: <54F0BD9E.2070901@lcwb.coop> References: <54F0BD9E.2070901@lcwb.coop> Message-ID: <20150227224609.294ba8eb28f437704eddca44@elegosoft.com> On Fri, 27 Feb 2015 12:55:26 -0600 "Rodney M. Bates" wrote: > I have quite a list of little (and some not so little) maintenance things to > do to the Modula-3 distribution. I am learning to use git and github, but > some involve other things than just the repository. I'm just in the last stages of migrating one of our customer projects from Bazaar to Git, including a full-featured automated testing and deployment system. We've already invested more than 400 hours for that. Automation of building, testing and deploying software needs a lot of maintenance and work, which nobody has done yet for the M3 Github transition. I put a plan of things that would need to be done into the old Trac Wiki, but I doubt that more than 10% of them have been achieved. > 1) Olaf, are you intending to continue hosting the web pages? Elego can do still do that if no one else volunteers. I cannot guarantee more that a couple of minutes administration time per week though. We're rather short of ressources currently. > 2) How can I update these? There appear to be copies of some/many of them > in the cm3 repository, but these are not served from there as web pages, > AFAIK, There used to be packages names www and doc, and some ship scripts, which were used to transfer the contents to our web server. I assume they're still in the Github repo in the same form, so you could use them. You only need ssh access for birch.elegosoft.com, if Mike hasn't moved that to another VM. I just tried and can login there. There is an account rodney:x:6011:6011:Rodney M. Bates:/home/rodney:/bin/bash You have quite a few keys installed there: % sudo ls /home/rodney/.ssh/ allegheny.id_dsa.pub authorized_keys.1 authorized_keys.3 corliss.id_dsa.pub known_hosts selkirk.id_dsa.pub authorized_keys authorized_keys2 authorized_keys.3~ garratt.id_dsa.pub rbates.id_dsa.pub yellowstone.id_dsa.pub authorized_keys.0 authorized_keys.2 authorized_keys.4 id_dsa.pub runnymede.id_dsa.pub If you still have one of them, you have ssh access. If not, Mike (manderson at elegosoft.com) will store another for you. The shipping scripts can (could?) be found in the packages: ./work/cm3-ws/birch.elegosoft.com-2012-04-11-01-34-27/cm3/www/ship-cm3-www ./work/cm3-ws/birch.elegosoft.com-2012-04-11-01-34-27/cm3/doc/ship-cm3-www-doc The machine still is in use: elegos-MacBook-Pro:tools.git wagner$ host www.opencm3.net www.opencm3.net is an alias for birch.elego.de. birch.elego.de has address 46.4.219.187 (elego.de and elegosoft.com are mostly equivalent) > 3) I have never understood the automated build system on various platforms. > What is its status? Can run these builds manually, or will they run > automatically if I put source updates in the right place? What targets > do we have? (I have LINUXLIBC6 and AMD64_LINUX myself.) I'm afraid that the Hudson installation on our server is out of order for quiet a long time. I don't know of any adaptation even for the source checkout from Github. I think some other public server should be used now for builds and tests. The old scripts could be adapted, but most people prefer to do these things in their own way. I used shell in 2010, but many scripts have been rewritten in python after that. > 4) I have also never understood how to run all the many test cases that are > in the repository. Has it been done at all recently? Are there scripts > to do it? Can I add cases to them? Are there various targets I can get > them to run on? I haven't done that recently, and I don't really know if anybody else has. I would really like to do it and set up a working CI system for M3 again -- I still think this is the best programming language for large systems I have encountered so far -- but nobody has ever paid Elego one Euro for any M3 work, so it's just not business- compatible ;-) I've got to care for my company, especially since we've had some hard times during the last two years. I think the shell and python scripts could be adapted to set up a working automated build and test system with some weeks of effort. It's nothing that can be done by changing a few lines I'm afraid. I just tried to access the Hudson CI system, and it's still working, though nothing has been running there for some time. You'll find it at http://hudson.modula3.com:8080. Some build servers seem to be still online: master (Linux), luthien (FreeBSD 8), and the Solaris buildfarm (opencsw). The last successful builds seem to be 1 year and 4 months ago, for example http://hudson.modula3.com:8080/job/cm3-current-test-all-pkgs-AMD64_LINUX/ You could transfer these jobs to another Hudson or Jenkins system (the config.xml files should suffice for that), adapt the source checkout to the Github repository and try to get some builds running. If you really plan to do that, I offer to help with all the advice and knowledge I have by answering your questions. I hope this hasn't been too discouraging, Olaf -- Olaf Wagner -- elego Software Solutions GmbH -- http://www.elegosoft.com Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194 From danielal.benavides at bancoagrario.gov.co Sat Feb 28 00:19:01 2015 From: danielal.benavides at bancoagrario.gov.co (Daniel Alejandro Benavides Diaz) Date: Fri, 27 Feb 2015 23:19:01 +0000 Subject: [M3devel] Binary compatibility and back ends. In-Reply-To: <54E632F5.5090109@lcwb.coop> References: <54E632F5.5090109@lcwb.coop> Message-ID: <07BBCC4CA9881B44A4F63543096A47984BA3814B@DRG008W8SMBX014.bancoagrario.gov.co> Hi all: Good to know somebody is keeping alive the system (well besides himself), The main thing to keep in mind, are instrumentation tools and profilers, but not just for dedicated optimizers, but for unsafe array overflow checking (using Gcc AST), probably as my initial project was once I thought at the time, integer arithmetic (which I believe Gcc already does in for div by 0). I read about one such tool for Win32 API checking of parameters, I suppose DEC has something to do with that, but I can't give any guarantees (if it has anything to do with Modula-3 CG), besides a tool I already know and has published an article online for MIPS and SPARC optimizing profilers. This could be worth to keep ASTs in common, at Interpreter Runtime level, remember, ASTs in Olivetti object notation (basically records with a method suite) very powerful by their-selves, so one can encode every AST as a deep objects, I heard my longtime M3- friend, Richard Stallman approached (as is publicly known) Olivetti about releasing their backend as GPL, but they answered no. Somehow, DEC capitalized I believe for making Gnu Compiler suite built for that purpose, although Richard didn't like much that approach as far as I read. The interesting part of Olivetti notation, is that one effectively build a type inference machine for it (if the leave nodes are untyped, when passing CodeGen phase to C or Assembly), besides that Martin Abadi was working before DEC ended operations in an object type system method addition, one could see that as a form of dynamically extending objects in Modula-3 itself, which is the orientation of having interpretation in languages, and by that the program itself at runtime, quite sophisticated if one thinks in an OS or RT itself, this is very lo e level capabilities I have studied, interestingly, is very hard to type infer on efficient P time. DEC has a report on dynamic typing in statically typed languages. Martin formalized M3 language based on its calculus and someone else interpreted it in terms of ideals of set theory, if someone wants to elucidate deeper properties of the language. If one could think in terms of GCC ASTs, or whatever IL, that would make the trick to allow recompilation and postmortem automated debugging, main issue being the unsafety of its analysis, based on runtime data, Thanks in advance, -----Mensaje original----- De: Rodney M. Bates [mailto:rodney_bates at lcwb.coop] Enviado el: Jueves, 19 de Febrero de 2015 02:01 p.m. Para: m3devel Asunto: [M3devel] Binary compatibility and back ends. Any knowledge of what we have or ideas about what we want in the way of binary compatibility between the code generated by different back ends? How much of it do we have? How much do we want? I know of at least a few things that require a match between generated code and the runtime. Open array heap objects, text literals are examples. Probably the layout of the allocator/GC word at the head of heap objects too. I recall from a number of years ago, having a failure involving passing a one-byte value as a parameter, but don't remember the details. That would have been PM3, and maybe linking with a different language. I have also recently had a problem involving passing a record/struct between code from the M3 gcc-4.7 back end and C code compiled by a more recent stock gcc. -- Rodney Bates rodney.m.bates at acm.org From rodney_bates at lcwb.coop Thu Feb 19 20:01:09 2015 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Thu, 19 Feb 2015 13:01:09 -0600 Subject: [M3devel] Binary compatibility and back ends. Message-ID: <54E632F5.5090109@lcwb.coop> Any knowledge of what we have or ideas about what we want in the way of binary compatibility between the code generated by different back ends? How much of it do we have? How much do we want? I know of at least a few things that require a match between generated code and the runtime. Open array heap objects, text literals are examples. Probably the layout of the allocator/GC word at the head of heap objects too. I recall from a number of years ago, having a failure involving passing a one-byte value as a parameter, but don't remember the details. That would have been PM3, and maybe linking with a different language. I have also recently had a problem involving passing a record/struct between code from the M3 gcc-4.7 back end and C code compiled by a more recent stock gcc. -- Rodney Bates rodney.m.bates at acm.org From rodney_bates at lcwb.coop Fri Feb 27 19:55:26 2015 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Fri, 27 Feb 2015 12:55:26 -0600 Subject: [M3devel] Some M3 maintenance questions Message-ID: <54F0BD9E.2070901@lcwb.coop> I have quite a list of little (and some not so little) maintenance things to do to the Modula-3 distribution. I am learning to use git and github, but some involve other things than just the repository. 1) Olaf, are you intending to continue hosting the web pages? 2) How can I update these? There appear to be copies of some/many of them in the cm3 repository, but these are not served from there as web pages, AFAIK, 3) I have never understood the automated build system on various platforms. What is its status? Can run these builds manually, or will they run automatically if I put source updates in the right place? What targets do we have? (I have LINUXLIBC6 and AMD64_LINUX myself.) 4) I have also never understood how to run all the many test cases that are in the repository. Has it been done at all recently? Are there scripts to do it? Can I add cases to them? Are there various targets I can get them to run on? -- Rodney Bates rodney.m.bates at acm.org From wagner at elegosoft.com Fri Feb 27 22:46:09 2015 From: wagner at elegosoft.com (Olaf Wagner) Date: Fri, 27 Feb 2015 22:46:09 +0100 Subject: [M3devel] Some M3 maintenance questions In-Reply-To: <54F0BD9E.2070901@lcwb.coop> References: <54F0BD9E.2070901@lcwb.coop> Message-ID: <20150227224609.294ba8eb28f437704eddca44@elegosoft.com> On Fri, 27 Feb 2015 12:55:26 -0600 "Rodney M. Bates" wrote: > I have quite a list of little (and some not so little) maintenance things to > do to the Modula-3 distribution. I am learning to use git and github, but > some involve other things than just the repository. I'm just in the last stages of migrating one of our customer projects from Bazaar to Git, including a full-featured automated testing and deployment system. We've already invested more than 400 hours for that. Automation of building, testing and deploying software needs a lot of maintenance and work, which nobody has done yet for the M3 Github transition. I put a plan of things that would need to be done into the old Trac Wiki, but I doubt that more than 10% of them have been achieved. > 1) Olaf, are you intending to continue hosting the web pages? Elego can do still do that if no one else volunteers. I cannot guarantee more that a couple of minutes administration time per week though. We're rather short of ressources currently. > 2) How can I update these? There appear to be copies of some/many of them > in the cm3 repository, but these are not served from there as web pages, > AFAIK, There used to be packages names www and doc, and some ship scripts, which were used to transfer the contents to our web server. I assume they're still in the Github repo in the same form, so you could use them. You only need ssh access for birch.elegosoft.com, if Mike hasn't moved that to another VM. I just tried and can login there. There is an account rodney:x:6011:6011:Rodney M. Bates:/home/rodney:/bin/bash You have quite a few keys installed there: % sudo ls /home/rodney/.ssh/ allegheny.id_dsa.pub authorized_keys.1 authorized_keys.3 corliss.id_dsa.pub known_hosts selkirk.id_dsa.pub authorized_keys authorized_keys2 authorized_keys.3~ garratt.id_dsa.pub rbates.id_dsa.pub yellowstone.id_dsa.pub authorized_keys.0 authorized_keys.2 authorized_keys.4 id_dsa.pub runnymede.id_dsa.pub If you still have one of them, you have ssh access. If not, Mike (manderson at elegosoft.com) will store another for you. The shipping scripts can (could?) be found in the packages: ./work/cm3-ws/birch.elegosoft.com-2012-04-11-01-34-27/cm3/www/ship-cm3-www ./work/cm3-ws/birch.elegosoft.com-2012-04-11-01-34-27/cm3/doc/ship-cm3-www-doc The machine still is in use: elegos-MacBook-Pro:tools.git wagner$ host www.opencm3.net www.opencm3.net is an alias for birch.elego.de. birch.elego.de has address 46.4.219.187 (elego.de and elegosoft.com are mostly equivalent) > 3) I have never understood the automated build system on various platforms. > What is its status? Can run these builds manually, or will they run > automatically if I put source updates in the right place? What targets > do we have? (I have LINUXLIBC6 and AMD64_LINUX myself.) I'm afraid that the Hudson installation on our server is out of order for quiet a long time. I don't know of any adaptation even for the source checkout from Github. I think some other public server should be used now for builds and tests. The old scripts could be adapted, but most people prefer to do these things in their own way. I used shell in 2010, but many scripts have been rewritten in python after that. > 4) I have also never understood how to run all the many test cases that are > in the repository. Has it been done at all recently? Are there scripts > to do it? Can I add cases to them? Are there various targets I can get > them to run on? I haven't done that recently, and I don't really know if anybody else has. I would really like to do it and set up a working CI system for M3 again -- I still think this is the best programming language for large systems I have encountered so far -- but nobody has ever paid Elego one Euro for any M3 work, so it's just not business- compatible ;-) I've got to care for my company, especially since we've had some hard times during the last two years. I think the shell and python scripts could be adapted to set up a working automated build and test system with some weeks of effort. It's nothing that can be done by changing a few lines I'm afraid. I just tried to access the Hudson CI system, and it's still working, though nothing has been running there for some time. You'll find it at http://hudson.modula3.com:8080. Some build servers seem to be still online: master (Linux), luthien (FreeBSD 8), and the Solaris buildfarm (opencsw). The last successful builds seem to be 1 year and 4 months ago, for example http://hudson.modula3.com:8080/job/cm3-current-test-all-pkgs-AMD64_LINUX/ You could transfer these jobs to another Hudson or Jenkins system (the config.xml files should suffice for that), adapt the source checkout to the Github repository and try to get some builds running. If you really plan to do that, I offer to help with all the advice and knowledge I have by answering your questions. I hope this hasn't been too discouraging, Olaf -- Olaf Wagner -- elego Software Solutions GmbH -- http://www.elegosoft.com Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194 From danielal.benavides at bancoagrario.gov.co Sat Feb 28 00:19:01 2015 From: danielal.benavides at bancoagrario.gov.co (Daniel Alejandro Benavides Diaz) Date: Fri, 27 Feb 2015 23:19:01 +0000 Subject: [M3devel] Binary compatibility and back ends. In-Reply-To: <54E632F5.5090109@lcwb.coop> References: <54E632F5.5090109@lcwb.coop> Message-ID: <07BBCC4CA9881B44A4F63543096A47984BA3814B@DRG008W8SMBX014.bancoagrario.gov.co> Hi all: Good to know somebody is keeping alive the system (well besides himself), The main thing to keep in mind, are instrumentation tools and profilers, but not just for dedicated optimizers, but for unsafe array overflow checking (using Gcc AST), probably as my initial project was once I thought at the time, integer arithmetic (which I believe Gcc already does in for div by 0). I read about one such tool for Win32 API checking of parameters, I suppose DEC has something to do with that, but I can't give any guarantees (if it has anything to do with Modula-3 CG), besides a tool I already know and has published an article online for MIPS and SPARC optimizing profilers. This could be worth to keep ASTs in common, at Interpreter Runtime level, remember, ASTs in Olivetti object notation (basically records with a method suite) very powerful by their-selves, so one can encode every AST as a deep objects, I heard my longtime M3- friend, Richard Stallman approached (as is publicly known) Olivetti about releasing their backend as GPL, but they answered no. Somehow, DEC capitalized I believe for making Gnu Compiler suite built for that purpose, although Richard didn't like much that approach as far as I read. The interesting part of Olivetti notation, is that one effectively build a type inference machine for it (if the leave nodes are untyped, when passing CodeGen phase to C or Assembly), besides that Martin Abadi was working before DEC ended operations in an object type system method addition, one could see that as a form of dynamically extending objects in Modula-3 itself, which is the orientation of having interpretation in languages, and by that the program itself at runtime, quite sophisticated if one thinks in an OS or RT itself, this is very lo e level capabilities I have studied, interestingly, is very hard to type infer on efficient P time. DEC has a report on dynamic typing in statically typed languages. Martin formalized M3 language based on its calculus and someone else interpreted it in terms of ideals of set theory, if someone wants to elucidate deeper properties of the language. If one could think in terms of GCC ASTs, or whatever IL, that would make the trick to allow recompilation and postmortem automated debugging, main issue being the unsafety of its analysis, based on runtime data, Thanks in advance, -----Mensaje original----- De: Rodney M. Bates [mailto:rodney_bates at lcwb.coop] Enviado el: Jueves, 19 de Febrero de 2015 02:01 p.m. Para: m3devel Asunto: [M3devel] Binary compatibility and back ends. Any knowledge of what we have or ideas about what we want in the way of binary compatibility between the code generated by different back ends? How much of it do we have? How much do we want? I know of at least a few things that require a match between generated code and the runtime. Open array heap objects, text literals are examples. Probably the layout of the allocator/GC word at the head of heap objects too. I recall from a number of years ago, having a failure involving passing a one-byte value as a parameter, but don't remember the details. That would have been PM3, and maybe linking with a different language. I have also recently had a problem involving passing a record/struct between code from the M3 gcc-4.7 back end and C code compiled by a more recent stock gcc. -- Rodney Bates rodney.m.bates at acm.org From rodney_bates at lcwb.coop Thu Feb 19 20:01:09 2015 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Thu, 19 Feb 2015 13:01:09 -0600 Subject: [M3devel] Binary compatibility and back ends. Message-ID: <54E632F5.5090109@lcwb.coop> Any knowledge of what we have or ideas about what we want in the way of binary compatibility between the code generated by different back ends? How much of it do we have? How much do we want? I know of at least a few things that require a match between generated code and the runtime. Open array heap objects, text literals are examples. Probably the layout of the allocator/GC word at the head of heap objects too. I recall from a number of years ago, having a failure involving passing a one-byte value as a parameter, but don't remember the details. That would have been PM3, and maybe linking with a different language. I have also recently had a problem involving passing a record/struct between code from the M3 gcc-4.7 back end and C code compiled by a more recent stock gcc. -- Rodney Bates rodney.m.bates at acm.org From rodney_bates at lcwb.coop Fri Feb 27 19:55:26 2015 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Fri, 27 Feb 2015 12:55:26 -0600 Subject: [M3devel] Some M3 maintenance questions Message-ID: <54F0BD9E.2070901@lcwb.coop> I have quite a list of little (and some not so little) maintenance things to do to the Modula-3 distribution. I am learning to use git and github, but some involve other things than just the repository. 1) Olaf, are you intending to continue hosting the web pages? 2) How can I update these? There appear to be copies of some/many of them in the cm3 repository, but these are not served from there as web pages, AFAIK, 3) I have never understood the automated build system on various platforms. What is its status? Can run these builds manually, or will they run automatically if I put source updates in the right place? What targets do we have? (I have LINUXLIBC6 and AMD64_LINUX myself.) 4) I have also never understood how to run all the many test cases that are in the repository. Has it been done at all recently? Are there scripts to do it? Can I add cases to them? Are there various targets I can get them to run on? -- Rodney Bates rodney.m.bates at acm.org From wagner at elegosoft.com Fri Feb 27 22:46:09 2015 From: wagner at elegosoft.com (Olaf Wagner) Date: Fri, 27 Feb 2015 22:46:09 +0100 Subject: [M3devel] Some M3 maintenance questions In-Reply-To: <54F0BD9E.2070901@lcwb.coop> References: <54F0BD9E.2070901@lcwb.coop> Message-ID: <20150227224609.294ba8eb28f437704eddca44@elegosoft.com> On Fri, 27 Feb 2015 12:55:26 -0600 "Rodney M. Bates" wrote: > I have quite a list of little (and some not so little) maintenance things to > do to the Modula-3 distribution. I am learning to use git and github, but > some involve other things than just the repository. I'm just in the last stages of migrating one of our customer projects from Bazaar to Git, including a full-featured automated testing and deployment system. We've already invested more than 400 hours for that. Automation of building, testing and deploying software needs a lot of maintenance and work, which nobody has done yet for the M3 Github transition. I put a plan of things that would need to be done into the old Trac Wiki, but I doubt that more than 10% of them have been achieved. > 1) Olaf, are you intending to continue hosting the web pages? Elego can do still do that if no one else volunteers. I cannot guarantee more that a couple of minutes administration time per week though. We're rather short of ressources currently. > 2) How can I update these? There appear to be copies of some/many of them > in the cm3 repository, but these are not served from there as web pages, > AFAIK, There used to be packages names www and doc, and some ship scripts, which were used to transfer the contents to our web server. I assume they're still in the Github repo in the same form, so you could use them. You only need ssh access for birch.elegosoft.com, if Mike hasn't moved that to another VM. I just tried and can login there. There is an account rodney:x:6011:6011:Rodney M. Bates:/home/rodney:/bin/bash You have quite a few keys installed there: % sudo ls /home/rodney/.ssh/ allegheny.id_dsa.pub authorized_keys.1 authorized_keys.3 corliss.id_dsa.pub known_hosts selkirk.id_dsa.pub authorized_keys authorized_keys2 authorized_keys.3~ garratt.id_dsa.pub rbates.id_dsa.pub yellowstone.id_dsa.pub authorized_keys.0 authorized_keys.2 authorized_keys.4 id_dsa.pub runnymede.id_dsa.pub If you still have one of them, you have ssh access. If not, Mike (manderson at elegosoft.com) will store another for you. The shipping scripts can (could?) be found in the packages: ./work/cm3-ws/birch.elegosoft.com-2012-04-11-01-34-27/cm3/www/ship-cm3-www ./work/cm3-ws/birch.elegosoft.com-2012-04-11-01-34-27/cm3/doc/ship-cm3-www-doc The machine still is in use: elegos-MacBook-Pro:tools.git wagner$ host www.opencm3.net www.opencm3.net is an alias for birch.elego.de. birch.elego.de has address 46.4.219.187 (elego.de and elegosoft.com are mostly equivalent) > 3) I have never understood the automated build system on various platforms. > What is its status? Can run these builds manually, or will they run > automatically if I put source updates in the right place? What targets > do we have? (I have LINUXLIBC6 and AMD64_LINUX myself.) I'm afraid that the Hudson installation on our server is out of order for quiet a long time. I don't know of any adaptation even for the source checkout from Github. I think some other public server should be used now for builds and tests. The old scripts could be adapted, but most people prefer to do these things in their own way. I used shell in 2010, but many scripts have been rewritten in python after that. > 4) I have also never understood how to run all the many test cases that are > in the repository. Has it been done at all recently? Are there scripts > to do it? Can I add cases to them? Are there various targets I can get > them to run on? I haven't done that recently, and I don't really know if anybody else has. I would really like to do it and set up a working CI system for M3 again -- I still think this is the best programming language for large systems I have encountered so far -- but nobody has ever paid Elego one Euro for any M3 work, so it's just not business- compatible ;-) I've got to care for my company, especially since we've had some hard times during the last two years. I think the shell and python scripts could be adapted to set up a working automated build and test system with some weeks of effort. It's nothing that can be done by changing a few lines I'm afraid. I just tried to access the Hudson CI system, and it's still working, though nothing has been running there for some time. You'll find it at http://hudson.modula3.com:8080. Some build servers seem to be still online: master (Linux), luthien (FreeBSD 8), and the Solaris buildfarm (opencsw). The last successful builds seem to be 1 year and 4 months ago, for example http://hudson.modula3.com:8080/job/cm3-current-test-all-pkgs-AMD64_LINUX/ You could transfer these jobs to another Hudson or Jenkins system (the config.xml files should suffice for that), adapt the source checkout to the Github repository and try to get some builds running. If you really plan to do that, I offer to help with all the advice and knowledge I have by answering your questions. I hope this hasn't been too discouraging, Olaf -- Olaf Wagner -- elego Software Solutions GmbH -- http://www.elegosoft.com Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194 From danielal.benavides at bancoagrario.gov.co Sat Feb 28 00:19:01 2015 From: danielal.benavides at bancoagrario.gov.co (Daniel Alejandro Benavides Diaz) Date: Fri, 27 Feb 2015 23:19:01 +0000 Subject: [M3devel] Binary compatibility and back ends. In-Reply-To: <54E632F5.5090109@lcwb.coop> References: <54E632F5.5090109@lcwb.coop> Message-ID: <07BBCC4CA9881B44A4F63543096A47984BA3814B@DRG008W8SMBX014.bancoagrario.gov.co> Hi all: Good to know somebody is keeping alive the system (well besides himself), The main thing to keep in mind, are instrumentation tools and profilers, but not just for dedicated optimizers, but for unsafe array overflow checking (using Gcc AST), probably as my initial project was once I thought at the time, integer arithmetic (which I believe Gcc already does in for div by 0). I read about one such tool for Win32 API checking of parameters, I suppose DEC has something to do with that, but I can't give any guarantees (if it has anything to do with Modula-3 CG), besides a tool I already know and has published an article online for MIPS and SPARC optimizing profilers. This could be worth to keep ASTs in common, at Interpreter Runtime level, remember, ASTs in Olivetti object notation (basically records with a method suite) very powerful by their-selves, so one can encode every AST as a deep objects, I heard my longtime M3- friend, Richard Stallman approached (as is publicly known) Olivetti about releasing their backend as GPL, but they answered no. Somehow, DEC capitalized I believe for making Gnu Compiler suite built for that purpose, although Richard didn't like much that approach as far as I read. The interesting part of Olivetti notation, is that one effectively build a type inference machine for it (if the leave nodes are untyped, when passing CodeGen phase to C or Assembly), besides that Martin Abadi was working before DEC ended operations in an object type system method addition, one could see that as a form of dynamically extending objects in Modula-3 itself, which is the orientation of having interpretation in languages, and by that the program itself at runtime, quite sophisticated if one thinks in an OS or RT itself, this is very lo e level capabilities I have studied, interestingly, is very hard to type infer on efficient P time. DEC has a report on dynamic typing in statically typed languages. Martin formalized M3 language based on its calculus and someone else interpreted it in terms of ideals of set theory, if someone wants to elucidate deeper properties of the language. If one could think in terms of GCC ASTs, or whatever IL, that would make the trick to allow recompilation and postmortem automated debugging, main issue being the unsafety of its analysis, based on runtime data, Thanks in advance, -----Mensaje original----- De: Rodney M. Bates [mailto:rodney_bates at lcwb.coop] Enviado el: Jueves, 19 de Febrero de 2015 02:01 p.m. Para: m3devel Asunto: [M3devel] Binary compatibility and back ends. Any knowledge of what we have or ideas about what we want in the way of binary compatibility between the code generated by different back ends? How much of it do we have? How much do we want? I know of at least a few things that require a match between generated code and the runtime. Open array heap objects, text literals are examples. Probably the layout of the allocator/GC word at the head of heap objects too. I recall from a number of years ago, having a failure involving passing a one-byte value as a parameter, but don't remember the details. That would have been PM3, and maybe linking with a different language. I have also recently had a problem involving passing a record/struct between code from the M3 gcc-4.7 back end and C code compiled by a more recent stock gcc. -- Rodney Bates rodney.m.bates at acm.org