-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[meta] HXLm.lisp
and/or related strategies for portable 'Turing complete' HDP custom functions
#18
Comments
…ript is much beautiful (and not as complicated to convert from python)
… page-signer.js (needs '%%%SIGNED_PAGES_PGP_SIGNATURE%%%' on the source page); also changed order of prepare-hxlm-relsease.sh commands
…starts_ to undestand HDP; part of the code inspired on https://tags.etica.ai
…e way (but no node_modules/, not now, let's use native things)
I believe that, at least at this moment for the JavaScript part of HDP, we use prefix HDPb instead of HDP Maybe this never get implemented, but Lisp dialects have the tradition to be the easiest ones to allow Self-hosting (compilers). I'm not saying that the entire HDP implementaton in python should be written in an lisp dialect that is not even formalized, but at least the javascript part could have this b as a hint for Bootstrapping (compilers) |
…ill need to convert to recursion or something)
Ok. While JavaScript since the beginning support UTF-16, often we will deal with more than 2 bytes per char. So it's a bit different the loops. |
…o-left? (like Imperial Aramaic, not Lingua Latina) will need some serious work on abstract syntax tree
In the moment, we already drafted a very primitive HDPLisp with JavaScript on hxlm-js/bootstrapper/lisp. It's does not have automated translation like [meta] HDP Declarative Programming (working draft) #16 but is better than the drafted python version. But then, there is a new underlining host language Prototype of HDPLisp using RacketI believe we could take at least two weeks just to get some early feedback on the language syntax. (see https://racket-lang.org/) So, why do another host language (beyond Python and JavaScript, the ones intended to be used in production for typical end users)? For two reasons:
About keep updated the Racket versionEven if we literally use the HDPLisp on Racket to do advanced tests on the JavaScript (and the on the Python versions) I'm not sure if I myself will keep the Racket version updated and definely some parts (like care about isolation of unsafe code) may not implemented even on Lisp version. The idea of HDPLisp also I'd about be translatable in several natural languages and provide advanced help for who uses IDEs (like code assistance on some browser editing or my preferred VSCode). So somewhat both versions in JavaScript and Python would use ontologies to understand how each code translates to another. This approach may actually not be necessary on Racket because if people really care about having code aid, it could be simpler to just add a single file manually crafted for each language. Also, even if later someone using Racket want to import HDPLisp files, the person very likely would want to use HDPLisp with other Lisps, so trying to give time to "isolate code" makes less sense. Note that both JavaScript and Python versions tend to be used as part of bigger applications and with users that will trust the software to check integrity of files. They're more likely to be a script import or an extra command like your jupyter Notebook importing pandas or numpy (but in general HDP, the initial target use for HDPLisp, requires some way to validate authenticity as core functionality). Also, another strong reason to potentially not suggest usage of DrRacket (the IDE, not the language) is (on my tests) the lack of support for Right-to-Left scrips. So, even if the platform is very friendly for usage, since both HDP and HDPLisp are very strong on the path of internationalization/localization, recommend the usage of an interface that do not even allow change the text direction of a file would be against this. |
…sed on racket literal.rkt documentation example
…of terms that could be enforced as fallback on any localization
…ess that the final code will be concise
…should have some basic racket function to abstract a bit already very well HXLated datasets
…ML representation. Maybe like the JSON-objects? This actually could have more information to aid parsing
Related topics:
urnresolver
: Uniform Resource Names - URN Resolver #13 could aid the part of how to point to the resources themselveshxl-yml-spec-to-hxl-json-spec
: HXL Data processing specs exporter #14hxl-yml-spec-to-hxl-json-spec
: HXL Data processing specs exporter #14 (comment) an early version, not integrated on HXLm.HDP, but accessible via hdpcli, already transpile YAML structure to HXL Data processing specs, supported by libhxl cli tools and the HXL-proxy. The notable exception is the inline to use as input (so instead of giving an external URL, the processing spec would already have the input data) and the inline output (that could be used to test if the filter was validated).i18n
,l10n
) and internal working vocabulary #15hxlm/ontologia
Related concepts:
About this topic
This topic is a draft. It will be referenced on specific commits and other discussions.
But to say upfront that as much as possible, the idea here is keep as much as possible documents that could be used by decision makers to authorize usage and/or for people who document that datasets do exist (even if they do not say on the document how to find them) and, for what is not feasible already have via the underlining python implementation, allow customization.
Note that these customization, while not explicitly sandboxes (but could be) do not need to be allowed to have direct disk or network access. This approach is not just more safe, also open room for they be more reusable and (this is very important!) simplify documentation on how to use, even by individuals who would not speak the same language.
The text was updated successfully, but these errors were encountered: