{"action":"created","issue":{"url":"https://api.github.com/repos/bmx-ng/bmx-ng/issues/45","repository_url":"https://api.github.com/repos/bmx-ng/bmx-ng","labels_url":"https://api.github.com/repos/bmx-ng/bmx-ng/issues/45/labels{/name}","comments_url":"https://api.github.com/repos/bmx-ng/bmx-ng/issues/45/comments","events_url":"https://api.github.com/repos/bmx-ng/bmx-ng/issues/45/events","html_url":"https://github.com/bmx-ng/bmx-ng/issues/45","id":393185778,"node_id":"MDU6SXNzdWUzOTMxODU3Nzg=","number":45,"title":"Suggestion for new \"standard\" modules","user":{"login":"GWRon","id":2625226,"node_id":"MDQ6VXNlcjI2MjUyMjY=","avatar_url":"https://avatars1.githubusercontent.com/u/2625226?v=4","gravatar_id":"","url":"https://api.github.com/users/GWRon","html_url":"https://github.com/GWRon","followers_url":"https://api.github.com/users/GWRon/followers","following_url":"https://api.github.com/users/GWRon/following{/other_user}","gists_url":"https://api.github.com/users/GWRon/gists{/gist_id}","starred_url":"https://api.github.com/users/GWRon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GWRon/subscriptions","organizations_url":"https://api.github.com/users/GWRon/orgs","repos_url":"https://api.github.com/users/GWRon/repos","events_url":"https://api.github.com/users/GWRon/events{/privacy}","received_events_url":"https://api.github.com/users/GWRon/received_events","type":"User","site_admin":false},"labels":[{"id":178659857,"node_id":"MDU6TGFiZWwxNzg2NTk4NTc=","url":"https://api.github.com/repos/bmx-ng/bmx-ng/labels/enhancement","name":"enhancement","color":"84b6eb","default":true},{"id":178659860,"node_id":"MDU6TGFiZWwxNzg2NTk4NjA=","url":"https://api.github.com/repos/bmx-ng/bmx-ng/labels/question","name":"question","color":"cc317c","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":6,"created_at":"2018-12-20T19:42:18Z","updated_at":"2019-01-03T15:07:40Z","closed_at":null,"author_association":"NONE","body":"After a short hint of Brucey I will start this issue here.\r\n\r\n## New standard modules\r\nBrucey wrote a big bunch of modules which fill a gap almost any Blitzmax developer will reach once in a (bigger) projects lifetime.\r\nDefault brl-modules (brl.mod and the 3rd party modules pub.mod) for example lack convenience functions to retrieve user directories - which was not required on ancient Windows OS but nowerdays is needed for proper functionality (write access to certain directories is limited now).\r\n\r\nFor now Brucey already adds \"sdl.mod\" as new default module collection - and I am pretty sure there are some other \"small\" modules which could get added to the list of default modules (maybe also call it  \"must have\").\r\n\r\nPay attention to something: a default module __should__ be not as big as eg. \"libxml.mod\" as it should get auto-imported if you do not use the `framework` command. They should provide some barebone functionality. So back to the \"xml\" example I would prefer some lightweight XML-lib (tinyxml or so) which does a good but not perfect job with adding 4-5KB to the executable, instead of 1MB.\r\n\r\n\r\n## Naming scheme\r\nwhile \"brl.mod\" initially stood for Blitz Research Labs it was suggested to interpret them as \"Blitz Runtime Libraries\" - which could allow to use brl.mod as \"namespace\" of the new default modules too.\r\nI would not be against a \"default.mod\" or \"base.mod\" ... namespace. Something which each blitzmax-user can recognize as something which is a \"provided by default\" thingy.\r\n\r\n\r\n## Structure\r\npub.mod is there to house the \"wrappers\" for 3rd party libraries. Maybe this one can get reused too? Brl.mod then contains types helping to use the pub.mod-modules (so in essence they provide containers and helper functions to work with the 3rd party libraries).\r\nTalking again about the XML stuff this means \"libxml.mod\" would belong to \"pub.mod\" as it wraps the libxml code. Within brl.mod (or something similar) you would then package serialization stuff utilizing the libXML module. Most \"game\" blitzmax-developers _should_ prefer writing `SerializeObject(obj, filename)`. Similar to calling `LoadImage()` instead to directly communicating with FreeImage-code.\r\n\r\n\r\nIf you are interested to help - feel free to add your suggestions here (I might edit them to this message). Also discussion about structure, naming scheme etc are nice to have. "},"comment":{"url":"https://api.github.com/repos/bmx-ng/bmx-ng/issues/comments/451170279","html_url":"https://github.com/bmx-ng/bmx-ng/issues/45#issuecomment-451170279","issue_url":"https://api.github.com/repos/bmx-ng/bmx-ng/issues/45","id":451170279,"node_id":"MDEyOklzc3VlQ29tbWVudDQ1MTE3MDI3OQ==","user":{"login":"woollybah","id":95883,"node_id":"MDQ6VXNlcjk1ODgz","avatar_url":"https://avatars3.githubusercontent.com/u/95883?v=4","gravatar_id":"","url":"https://api.github.com/users/woollybah","html_url":"https://github.com/woollybah","followers_url":"https://api.github.com/users/woollybah/followers","following_url":"https://api.github.com/users/woollybah/following{/other_user}","gists_url":"https://api.github.com/users/woollybah/gists{/gist_id}","starred_url":"https://api.github.com/users/woollybah/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/woollybah/subscriptions","organizations_url":"https://api.github.com/users/woollybah/orgs","repos_url":"https://api.github.com/users/woollybah/repos","events_url":"https://api.github.com/users/woollybah/events{/privacy}","received_events_url":"https://api.github.com/users/woollybah/received_events","type":"User","site_admin":false},"created_at":"2019-01-03T15:07:40Z","updated_at":"2019-01-03T15:07:40Z","author_association":"MEMBER","body":"I've been working on a bunch of vector/matrix additions to brl.math.\r\nThey are all Structs and utilise method overloading where useful. So far I have SVec2, SVec3, SMat2, SMat3, SMat4 and SQuat."}}
{"actor":{"display_login":"woollybah"}}