|
weekly meeting at 18:30 UTC, Tuesday Set by moderator on 3 September 2008. |
|||
|
01:25
particle1 joined
03:13
particle joined
13:43
rdice joined
13:58
clinton joined,
clinton left
14:09
DietCoke_ joined
|
|||
| DietCoke_ | KJS's report: | 14:09 | |
| * many cleanups and code refactoring for pirc/new | |||
| * linking to libparrot is now possible (after figuring out link flags); see README for details for windows (no access to linux; and parrot on cygwin doesn't build). This is a huge step forward. | |||
| * this means that all Parrot functions are now accessible, allowing for checking whether an identifier is an op | |||
| * also implemented .loadlib, which can be used to load a dynamic oplib: this works as well. | |||
|
14:13
davidfetter joined
15:16
pmichaud joined
15:25
rdice joined
15:56
rurban joined
16:35
NotFound joined
17:04
paco joined
17:14
rurban_ joined
18:20
dmknopp joined
18:22
jhorwitz joined
|
|||
| Tene | * More work on Cardinal | 18:26 | |
|
18:26
chromatic joined
|
|||
| Tene | * I want to get a commit bit for dmknopp. He has a CLA ready to send in. What does everyone else think? | 18:26 | |
| cotto_work | I think you're a little early ;) | 18:27 | |
| Tene | * A few experiments on HLL compatibility for P6object and HLLcompiler, but nothing good enough to commit | ||
| NotFound | Say hello at least ;) | ||
| Tene | * EOR, now I run away to drive in to work | 18:28 | |
| Tene is a bit late getting in to the office. | |||
| pmichaud notes that Tene also added 'hll_map' to the interpreter object, which is *hugely* important. | |||
| (and was committed) | |||
| moritz | DietCoke pre-posted KJS' report earlier | 18:30 | |
| jhorwitz materializes | |||
| chromatic | aloha | ||
| rurban | hello | 18:31 | |
| NotFound | H | ||
| cotto_work | i | ||
|
18:32
allison joined
|
|||
| chromatic | Alphabetical order? | 18:32 | |
| moritz | that would be allison first | ||
| *hilight* | 18:33 | ||
| allison | - Mostly working on the multiple dispatch branch, for code consistency and fixing failing tests. | ||
| - Migrated the 'infix' virtual opcodes over to real opcodes. | |||
| - Deprecated 'cmodulus' vtable functions. | |||
| - The old 'n_*' versions of the opcodes are gone, and the regular versions now create a new PMC for the result by default. | 18:34 | ||
| - Made it possible for new pcc_invoke function to invoke PIR subs as well as NCI subs. | |||
| EOR | 18:35 | ||
| chromatic | I fixed a bunch of bugs, some in the MMD branch but most in trunk. | ||
|
18:35
rdice joined
|
|||
| chromatic | cotto_work? | 18:35 | |
| cotto_work | *not much specific, mostly just tickets necromancy | ||
| *found several to close, some to raise for discussion and a couple I can work on | 18:36 | ||
| eor | |||
| chromatic | japhb? | ||
|
18:37
barney joined
|
|||
| chromatic | jhorwitz? | 18:37 | |
| jhorwitz | submitted mod_perl6 talk for pittsburgh next month. | ||
| due to a design flaw in mod_parrot, i increasingly found myself writing code to provide functionality that Apache already has. sparing the details, i'm now refactoring all HLL layers into their own Apache modules. this eases the burden on mod_parrot by forcing HLLs to manage their own configuration data and Apache hook registration. but it's difficult work and is taking some time. | |||
| (that was a mouthful) | 18:38 | ||
| EOR | |||
| chromatic | barney? | ||
| barney | nothing to report. | ||
| .eor | 18:39 | ||
| chromatic | moritz? | ||
| moritz | * usual testing/patching work | ||
| * hacked the PGE tests into Perl 6 tests, with help from Larry got us a few hundred more tests, another 250 depend on infix:<where> and parsing q/.../ | |||
| * hacked a bit on nqp and rakudo NCI examples (NotFound++ for them) | |||
| KTHXBY | |||
| chromatic | NotFound? | 18:40 | |
| NotFound | * Some work in debugger | ||
| * Created Xlib and Mysql modules and test programs in examples/nci/ | |||
| * Fix some nci and UnManagedStruct problems in the process | |||
| * Applied patch from mhelix that solves several parameter passing problems | |||
| * Some others patches applied | |||
| * Renamed PMC attributes structs, RT#48014, pdd17 | |||
| Three questions | |||
| EOR | |||
| chromatic | particle? | ||
| pmichaud? | 18:41 | ||
| pmichaud | PCT: | 18:42 | |
| * Fixed 'loadinit' attribute for PAST::Block in PCT | |||
| * Discussions on dynamic HLL type mapping | |||
| Rakudo: | |||
| * Removed ':immediate' blocks from Rakudo code generation | |||
| * ./parrot perl6.pbc --target=pir now generates standalone executable PIR | |||
| * Updated Failure type to generate warnings when used as a value | |||
| * Added '!FAIL' and 'fail' builtin functions | |||
| * Fixed bug in Code.REJECTS | |||
| * Figured out a way to do inline PIR in Perl 6 source, so we can write builtins in Perl 6. | |||
| Misc: | |||
| * Working on my Mozilla Foundation grant final report | |||
| * Answered lots of questions here, there, and on the mailing list | |||
| * Reminder that Parrot release is next Tuesday | |||
| * Please update NEWS, CREDITS, PLATFORMS, etc. | |||
| eor | |||
| chromatic | rurban? | ||
| rurban | * particle gave me a commit bit, thanks. Need a mentor. For jvm I need jonathan. dotnet will get something back hopefully. | ||
| * Worked with allison on pdd30_install. | |||
| * Updated cygwin070patches with more make install tuning and cleanup: make installable creates now runtime/parrot/library/$HLLNAME.pbc for HLL interop. | |||
| * "make languages" works now also with already installed shared libparrot, just win32 not yet. | |||
| * A few langs need a runtime/parrot/library/$HLLNAME subdir: WMLScript and forth | |||
| * Change: "make all" is for all, "make build" is for the default target only. | |||
| * cygwin070patches should be ready to merge. | |||
| * Added a new language to my branch: jvm (20%) and a new perl5 lib lib/SRM, moved over from dotnet. SRM is for stack-bytecode => register mapping. It is now generalized and can be used for dotnet + jvm; later probably WMLScript also. | |||
| two questions | |||
| EOR | |||
| moritz | Tene posted his report earlier | 18:44 | |
| pmichaud | tewk? | 18:45 | |
| chromatic | Did we miss anyone? | 18:46 | |
| Alright, rurban. Question time. | |||
| rurban | * runtime/parrot/library/$HLLNAME.pbc and subdir ? For me this sounds most natural and needs no additional libpath entry. See forth and WMLScript in the cygwin070patches branch. | 18:47 | |
| 2nd: * Should I try to be jvm cleanroom compatible or with Sun's recent GPL step should I not care? I need some simple external classreader sources in C, like KAFFE or Hotspot. | |||
| KAFFE is good enough IMHO, but I want to compare it to the original. Google's new v8 is in C++, so I guess Hotspot is also in C++. They have a Sun License, which looks good to me. | |||
| chromatic | As long as you don't include code directly, any OSI-approved license should be fine as source material for ideas. | 18:48 | |
| pmichaud | runtime/parrot/library/$HLLNAME.pbc works good for me. It might be good to explore how we decide the values of HLLNAME (perhaps on list is better) | ||
| allison | runtime/parrot/library/$HLLNAME.pbc and runtime/parrot/library/$HLLNAME/... is a fine place to start | ||
| rurban | ok, that's in my branch now. | ||
| pmichaud | for example, is it "Perl6", "perl6", or "rakudo"? | ||
| allison | and, as chromatic said, linking is fine, copying is not | 18:49 | |
| rurban | perl6 is different :) the existing p6 pbc's just | ||
| pmichaud | "Ruby", "ruby", "cardinal", ...? | ||
| rurban | cardinal.pbc | ||
| the HLLNAMEis the name of the languages dir | |||
| moritz | whatever the current directory name under languages/ is? | ||
| rurban | exactly | ||
| pmichaud | I ask because it might also impact the names we use for 'compreg' and 'load_bytecode' | 18:50 | |
| rurban | that will also be the name which is registered with compreg and the pbc name | ||
| and load_bytecode of course, thanks | |||
| allison | eventually we will need to allow languages to register and be used under multiple names | ||
| pmichaud | so, it would be load_bytecode 'cardinal.pbc' and $P0 = compreg 'cardinal' ? | ||
| rurban | yes. different from that are the various frontend executables, like net2pbc | ||
| allison | but, that can be later | ||
| pmichaud | well, languages can already register under multiple names for compreg | 18:51 | |
| rurban | ok, like an alias | ||
| pmichaud | it's the load_bytecode one that is tricky :-) | ||
| allison | rurban: yes language aliasing | ||
| pmichaud | although if compreg could also automatically load the corresponding bytecode, that would be cool too | ||
| rurban | please not too much magic | ||
| I'm only worried about HLLNAME changes as with pipp lately | 18:52 | ||
| pmichaud | we know there needs to be some magic if "parrot --prog=cardinal" is to work | ||
| allison | I don't see much need to monkey with the name of the bytecode file, at least not now (maybe Parrot 2.0) | ||
| rurban | this coudl work via symlink and $0 resolution | 18:53 | |
| allison | on platforms that support symlinks, yes | ||
| pmichaud | would it be fair to say then that "parrot --prog=foo" automatically grabs foo.pbc from runtime/parrot/library ? | ||
| chromatic | Not all platforms or filesystems support symlinks. | ||
| jhorwitz | and we need to consider embedded apps | ||
| allison | pmichaud: yes, but --language=foo instead of --prog | ||
| rurban | --language++ | 18:54 | |
| pmichaud | we'll treat all symlinked applications as languages, then? | ||
| parrot -language=apache ... ? | |||
| jhorwitz | that doesn't seem right... | ||
| pmichaud | or, more likely | ||
| parrot --language=httpd ... ? | |||
| allison | you mean a case of making parrot pretend to be apache or httpd? | 18:55 | |
| pmichaud | yes | ||
| i.e., something other than a language translator | |||
| rurban | but note that the pbc is mainly a HLL lib, not a language | ||
| allison | if it's ever used for something other than languages, we can introduce another flag | ||
| pmichaud | i.e., we have $0 set to run a program from parrot | ||
| allison | How about "parrot --language=foo" automatically grabs foo.pbc from runtime/parrot/library/language | 18:56 | |
| (note the added subdirectory) | |||
| rurban | also not bad. | ||
| pmichaud | with runtime/parrot/library/language/$HLLNAME ? | ||
| chromatic | Why not runtime/parrot/language ? | ||
| NotFound | One can even imagine a minmalistic linux distribution whith parrot where most commands are parrot symlinks. | ||
| pmichaud | yes, I think I like runtime/parrot/language | ||
| rurban | that woudl need a library.c and libpatch change | ||
| jhorwitz | +1 | 18:57 | |
| rurban | libpath | ||
| allison | and then, if at some point we need to add some other semantics besides languages, then we have a sensible hook for a different location | ||
| yes runtime/parrot/language is sensible | |||
| pmichaud | but I agree with NotFound -- if we think along the lines of busybox type stuff (very reasonable with Parrot), then --language may be a bit too narrow in scope | ||
| I like having runtime/parrot/language... except then we'd want load_bytecode to be able to easily get to stuff from there as well | |||
| Tene | queue one question from me | 18:58 | |
| pmichaud | although perhaps load_bytecode "language/perl6.pbc" might work | ||
| (with current implementation) | |||
| allison | too much magic, better is load_language "perl6" | ||
| which could do the compreg bit too | |||
| pmichaud | well, that already happens. :-) | ||
| load_bytecode 'perl6.pbc' causes the :load subs to execute (which register the compiler) | 18:59 | ||
| rurban | I like the load_language "perl6" idea | ||
| pmichaud | I do have some qualms about introducing a separate opcode, though | ||
| it's nicer if we think of languages as being libraries (which, in a sense, they really are) | |||
| rurban | then we need no addiitonal libpath entry, which would slow the other load_bytecode calls down | ||
| pmichaud | otherwise when I say "use Python;" there has to be something that knows whether to call "load_bytecode" or "load_language" | 19:00 | |
| allison | languages are more than libraries, and down the road they're likely to diverge further | ||
| NotFound | load_bytecode time is mainly disk access, a little cpu time will never be noticed. | ||
| pmichaud | and, going back to our discussion at YAPC::EU, we're also looking at "run_bytecode" and "load_bytecode" ops | ||
| which means we'd want "run_language" and "load_language"? | 19:01 | ||
| allison | pmichaud: saying "use Python;" to load a language library is a pretty uniquely Perl6-ish thing | ||
| pmichaud | allison: fair enough. | 19:02 | |
| rurban | well for now the languages occupy the general lib namespace in library. let's see how crowded it will get there I would suggest. | ||
| allison | and, you're already doing magic, because Python.pbc /Python.pir doesn't actually exist in the Perl 6 namespace | ||
| pmichaud | I still think it's better if we treat languages as libraries, but I'll not push it. | ||
| allison | didn't we decide we didn't need 'run_bytecode'? | ||
| well, they'll still be libraries | |||
| pmichaud | I said I could work around it. | ||
| NotFound | We can have a minimal lib that loads the language in his init, if some language need that. | 19:03 | |
| allison | and, you can still load them with load_bytecode "path/to/wherever/foo.pbc" | ||
| rurban | note the analogue to compilers. nqp was formerly a language, now it's library, and now even one without installed pbc | 19:04 | |
| pmichaud | (run_bytecode) it's still the case that we'd like to be able to specify functions that run after everything else is loaded | ||
| currently the only way to do that is to put the function at the end with a :load flag | |||
| allison | pmichaud: okay, we should probably start a ticket for 'run_ bytecode', then | ||
| chromatic | Tene had a question (and rurban still has one queued) | ||
| pmichaud | which gets complicated if it has any nested lexical blocks (which would have to be after that) | ||
| NotFound | Don't forget my questions! | 19:05 | |
| Tene | I want to get a commit bit for dmknopp to help him work on cardinal. | ||
| NotFound | They are short, I promise X-) | ||
| chromatic | Tene, can you mentor him? | ||
| allison | pmichaud: (a separate :flag that marks subs to be run after everything else has been loaded might also be a possibility) | ||
| Tene | Yes. | ||
| chromatic | Any objections? | 19:06 | |
| pmichaud | allison: yes -- this is effectively what :main does now for running from command line | ||
| no objection | |||
| (and yes, if we had such a flag we don't need run_bytecode) | 19:07 | ||
| (assuming we always wanted it run with load_bytecode) | |||
| allison | re: dmknopp: no objections | 19:08 | |
| pmichaud: yes, I like having one load function, and leaving the decision of what routines to run when to the module author | |||
| pmichaud | allison: meaning the caller never gets to decide, except by some agreed-upon out-of-band convention | 19:09 | |
| (which is okay, just pointing it out. Sometimes we want to load-but-not-run) | |||
| Tene | dmknopp: You have the address to mail the CLA? | 19:11 | |
| dmknopp | 7456 SW Baseline Road #220 | ||
| Hillsboro, OR 97123 | |||
| USA | |||
| is listed on the form | |||
| allison | dmknopp: that's correct | ||
| dmknopp | ill send it off then. :-) | 19:12 | |
| pmichaud | allison: I'll send a description of the current workaround that Rakudo is having to use to the mailing list so you can think about it there. | ||
| allison | pmichaud: sounds good | ||
| rurban | My 2nd question was answered I guess, if I may look at the Hotspot source. | 19:13 | |
| (Because to paste the structs from the pdf specs is awful) | |||
| NotFound | My first question: some languages have docs/ and some have doc/. Shall we open a TODO to standarize on docs/? | 19:14 | |
| allison | rurban: yes you can look at the source, but you can't copy from it | ||
| Tene | NotFound: why standardize on docs instead of on doc? | ||
| rurban | May I copy from KAFFE? This is GPL. | ||
| NotFound | Tene: because the root tree has docs/ | 19:15 | |
| allison | rurban: no, Parrot is Artistic, not GPL | ||
| moritz | unix as doc/ | ||
| rurban | ok. | ||
| moritz | *has | ||
| rurban | I'm for doc | ||
| moritz | rurban: maybe you can ask the KAFEE folks if they can release the headers also under Artistic | ||
| NotFound | If not docs, add rename the base docs to whatever. | 19:16 | |
| allison | rurban: It's unlikely we'll be able to use anyone else's source directly anyway, they're all stack-based | ||
| rurban | ok, I'll do. What I really want is to copy the classfile reader source (because of the stupid zip uncompression) | ||
| moritz | allison: for parsing jvm bytecode, I think | ||
| rurban | yes. | ||
| allison | rurban: we can link to an external library | 19:17 | |
| we just can't copy it into the source tree | |||
| rurban | ok. | ||
| moritz | any comments on NotFound's question? | 19:19 | |
| pmichaud | is consistency of doc/ vs. docs/ terribly important? | ||
| I'd hate to rename the source tree and break a number of (external) links | |||
| NotFound | pmichaud: that is the question, precisely. | ||
| allison | standardizing on one (doc/docs) for languages in the parrot repository seems sensible | ||
| not critical | |||
| rurban | I would only rename the languages docs to doc | 19:20 | |
| allison | and for languages outside the parrot repository we won't impose any standard | ||
| rurban | make it easier to podlink L<> to other langs (as I do from jvm to dotnet e.g.) | ||
| pmichaud | rakudo went with "docs/" because that's what parrot trunk was using. | ||
| allison | rurban: you can't assume any one standard across all languages | 19:21 | |
| pmichaud | and there are links in various articles and blog posts directly into the svn repository | ||
| rurban | it's just a nice to have if done early enough | ||
| NotFound | We can put a recommendation for new languages, no ticket for anow. | ||
| rurban | good point | ||
| pmichaud | so renaming docs/ to doc/ would break all of those links | ||
| moritz | does tools/dev/mk_language_shell.pl generate doc/ or docs/ | 19:22 | |
| ? | |||
| pmichaud | (and yes, they'll break *anyway* when rakudo moves out of the parrot repo, but that's a different sort of breakage.) | ||
| particle | moritz: neither iirc | ||
| moritz | pmichaud: is that planned? | ||
| allison | docs/ is the parrot standard, I can't think of any particular other standard we're trying to meet | ||
| moritz | then it might be a good idea to generate a stub directory with the "right" name | ||
| pmichaud | moritz: is what planned? | 19:23 | |
| rurban | I want a docs/running.pod for every language which has no good man page. | ||
| allison | mortiz: yes, all the languages will be moving out of trunk at some point | ||
| moritz: or, at least all HLLs | |||
| NotFound | Second questions: integer overflows: we have some guide about what to do, throw an exception or something? Both for int registers and for pmc. | ||
| particle | "all" except examples like abc | ||
| rurban | which point? in 2008? | ||
| pmichaud | not likely in 2008. | ||
| moritz | allison: before 1.0? | ||
| particle | yes, before 1.0 | 19:24 | |
| allison | moritz: at some point soon after we get a language install process that works | ||
| particle heard rurban is working on that ;) | |||
| pmichaud | ...and (hopefully) when Parrot is a bit more stable? | ||
| the primary reason for having languages in the trunk is to keep close coordination between Parrot changes and languages | 19:25 | ||
| allison | pmichaud: that too, which will also be quite soon | ||
| rurban | I did no install lib for all the langs. I copied the same for all langs. | ||
| Tene | rurban: is there a doc in parrot that specifies what pod files a language should have? | ||
| allison | rurban: come again? | ||
| Tene | rurban: all I have is you mentioning some pod file names on IRC a few times. Can you write up what you want, what each pod file needs, etc and add it as a doc somewhere? | 19:26 | |
| rurban | I thought about a make install framework to make it easier an consistent. For now the same steps are just copied to all makefiles. | ||
| barney | MAINTAINER should be there for all HLLs as well | ||
| rurban | this pod is pdd30_install.pod | ||
| in pdds/draft | |||
| pmichaud | since languages are eventually moving out of trunk, I would expect individual languages to maintain their own 'make install' target. | 19:27 | |
| particle | yep, languages must be self-contained | ||
| rurban | But to make future installations easier for external libs and langs we need a lib as perl5 MM | ||
| particle | their own configure (if needed), build, test, and install | ||
| rurban | Or Module::Build (shudder) | ||
| allison | rurban: a manual copy between makefiles is fine for now (the makefiles are all generated anyway), but yes, they will all need their own ability to install | 19:28 | |
| rurban: we may need to go that far eventually, but to start with all we need is to define what steps the language will need to take to install | 19:29 | ||
| rurban | That's defined in my draft. Almost | ||
| allison | rurban: and include that in the default makefile template generated for new languages | ||
| rurban | the wanted pods and the name of the docs dir are not defined yet | ||
| ok, will do. | |||
| particle | we've just hit the 1h mark. anything else that can't be disussed in #parrot or via email? | 19:30 | |
| pmichaud | did we decide on parrot/runtime/languages ? | ||
| allison | pmichaud: yes | ||
| pmichaud | okay. | ||
| NotFound | Repeat second question: integer overflows: we have some guide about what to do, throw an exception or something? Both for int registers and for pmc. | ||
| particle | wait. is that runtime/parrot/languages? | 19:31 | |
| pmichaud | particle: yes, I had it backwards. | ||
| allison | for PMCs, integer overflows go to BigInts | ||
| particle | r/p/l++ | ||
| allison | well, it should be parrot/runtime/languages :) | ||
| pmichaud | and --language=foo automatically runs parrot/runtime/languages/foo.pbc ? | ||
| allison | runtime/parrot was designed with the intention of runtime/perl runtime/python | 19:32 | |
| particle | it can be runtime/languages/. we don't need parrot/ in the source tree | ||
| rurban | parrot/runtime/languages makes no sense. runtime will be dropped when installed | ||
| runtime/parrot => lib/parrot | |||
| allison | so, maybe, instead of whatever/runtime/languages, it should just be runtime/mylanguage/mylanguage.pbc | ||
| pmichaud | keep in mind that I expect nqp.pbc and perl6grammar.pbc to follow suit | 19:33 | |
| particle | allison: that's how runtime/ was originally designed | ||
| rurban | uh. pollution | ||
| NotFound | Last question: must I move Xlib and Mysql from examples to runtime library? | ||
| particle | parrot is just another hll name | ||
| allison | let's move the path conversation to further discussion on the list and in pdd30 | ||
| rurban | parrot should be the base of all. perl6 is just a HLL imho | ||
| pmichaud | (on list)++ | 19:34 | |
| rurban | :) | ||
| allison | NotFound: why would you need to? | ||
| particle | notfound: if you intend to make full libraries out of them, it makes sense | ||
| NotFound | allison: easier to test | ||
| rurban | I would like to see a mysql and Xlib library as OpenGL and Pg | ||
| particle | if they're intended not to grow beyond their current state, they're fine as examples | ||
| pmichaud | (because load_bytecode doesn't look in examples/) | ||
| allison | seems more like a problem with load_bytecode than anything else | 19:35 | |
| NotFound | To test for other people interested, not by me, of course. | ||
| allison | we don't currently have a way of adding to the parrot equivalent of @INC, but need one | ||
| rurban | @INC hook++ | ||
| allison | (it will not be called @INC :) | 19:36 | |
| rurban | pushlib <dir> | ||
| NotFound | The intention is to grow both, but they are big things, don't know how fast will be the process, or how many people will help. | ||
| allison | NotFound: move them out if they grow big enough to be part of the "standard" library, but don't move them out just to make testing easier | 19:37 | |
| particle | push_library_path/unshift_library_path | ||
| NotFound | allison: ok | ||
| pmichaud | NotFound: Note that Rakudo *does* have @*INC, and you can use that. | 19:38 | |
| allison | mostly, I'll like the core install to grow smaller, not larger, and work out the installation process for other modules | ||
| NotFound | particle: as methods for the interpreter pmc? | 19:39 | |
| allison | steer clear of "push" and "pop", use more general words like "add_library_path" | ||
| NotFound: as opcodes | |||
| pmichaud | speaking as a HLL implementer, opcodes are evil. | 19:40 | |
| methods are much easier to work with. | |||
| allison | they may modify the interpreter, or they may bodify a sandbox | ||
| except that methods on the interpreter mean you're modifying the interpreter directly, which is also evil | 19:41 | ||
| pmichaud | fair enough. | ||
| allison | and if opcodes are evil, we have a serious problem | ||
| pmichaud | opcodes aren't modifying the interpreter, then? | ||
| chromatic | The search paths *are* attributes of the interpreter. | ||
| allison | the opcode is an interface, it can do anything behind the scenes | 19:42 | |
| rurban | sidenote - I'll make 2nd branch with the 2nd path suggestion, language libs parallel to parrot. runtime/HLLNAME/library/HLLNAME.pbc runtime/HLLNAME/dynext/HLLNAME_group.dll and such. This will need library.c changes and a new opcode/method | ||
| pmichaud | that sounds to me like a method :-) | ||
| chromatic | That's fine, but these opcodes are going to modify interpreter attributes behind the scenes. | ||
| allison | it may modify the interpreter, but it may also run it through security filters, or capture it in a sandbox | ||
| pmichaud | "a method is an interface, it can do anything behind the scenes" | ||
| allison | yes, but a method is an interface where you've already selected what object to modify | 19:43 | |
| pmichaud | anyway, the only "evil" part is that HLLs end up having to wrap opcodes with subroutines or method calls anyway | ||
| allison | an opcode gets to select the object too | ||
| NotFound | The pmc method can just call the same function than the opcode, as a helper to hll | ||
| chromatic | That object is going to be the interpreter. | ||
| allison | not necessarily, it may be a sandboxed COW interpreter | ||
| particle moos | 19:44 | ||
| chromatic | It's not going to be an interpreter, it may be an interpreter! | ||
| allison | or, it may be a thread | ||
| NotFound | allison: in that case, getinterpreter will return the same, it isn't? | ||
| pmichaud | even if it's a sandboxed COW interp, I would expect getinter..... right | ||
| particle | anyway, we need a way of adding paths (or code objects) to the list of library search paths both at beginning and end | 19:45 | |
| allison | yes, but getinterpreter is just an opcode | ||
| particle | *getinterp | ||
| allison | so, you'd rather call an opcode and a method than just an opcode? | ||
| chromatic | Yes. | ||
| pmichaud | from a HLL perspective, it ends up being a Parrot sub that calls an opcode. | ||
| chromatic | I might not want to change the library paths on the current interpreter. | ||
| pmichaud | it's never "just an opcode". | ||
| (except for opcodes that tend to map directly to hll operations) | 19:46 | ||
| NotFound | The question for integer overflow on registers is pending. | 19:47 | |
| pmichaud | so, my choice is either (1) fetch an interpreter object and call a method on it, or (2) call a wrapper sub that invokes the opcode. | ||
| allison | we're getting too tied up in the small details, especially considering we don't even know what the proposed method/opcode will do yet | ||
| pmichaud | yes, but I'm speaking somewhat in generalized terms. From an HLL perspective, having lots of specialized opcodes isn't as useful as having methods. | 19:48 | |
| Use that for whatever it's worth. :-) | |||
| rurban | load_language | ||
| allison | pmichaud: okay, that's useful information | ||
| chromatic | It modifies the array stored in IGLOBALS_LIB_PATHS. | ||
| NotFound | We can start by adding a function, and a command line option to set it. | ||
| A C function, I mean. | |||
| pmichaud | a good example of the principal is in the compiler objects we're creating (and registering with compreg).... calling methods on those objects is much more useful than specialized opcodes for it | 19:49 | |
| allison | NotFound: good potential starting point | ||
| pmichaud | another example is ParrotIO -- methods on an object are much more useful than specialized opcodes | ||
| allison | ParrotIO is moving in that direction | ||
| pmichaud | yes | ||
| rurban | but other HLLs need to load this language at first somehow. | 19:50 | |
| allison | NotFound: on overflowing integers, if they can't be converted to BigInt PMCs (the context doesn't allow for that kind of change), then it's an exception | ||
| particle | of course, it's probably an exception of type Inf or NaN, which isn't really specced | 19:52 | |
| pmichaud | I would think it's a range exception | ||
| particle | pmichaud: does your expectation change if we substitute num for int? | 19:53 | |
| NotFound | Is useful to not mix integer overflow with float or bigint ones, I think. | ||
| Some languages may need to catch it to do whay their standard mandates. | |||
| particle | ok, so int overflow is a range exception, and the maxint value is dependent on configuration parameters | 19:54 | |
| pmichaud | particle: if the question is "are we generating values that can't be stored in the available types", that sounds like a range exception to me | ||
| allison | how about an integer overflow exception | ||
| NotFound | ++ | 19:55 | |
| pmichaud | the canonical examples are probably: add $I2, $I0, $I1 and add $N2, $N0, $N1 | ||
| particle | yes, but with NREG, Inf and NaN representations are built in to the data type | 19:56 | |
| we may differentiate between NaN and NaNQ | |||
| where the former throws an exception as well as sets the value in the NREG | 19:57 | ||
| pmichaud | Inf doesn't sound right to me -- I think of that as being fundamentally different than simply "out of range" | ||
| particle | the latter just sets the value | ||
| pmichaud | but we're at the edge of my expertise on the issue, so I'll shut up now. :-) | ||
| particle | well, it doesn't need to be settled today anyway | 19:58 | |
| allison | I think we've generally run to the end of what can be done in IRC discussion on these topics, any further questions before we wrap up? | ||
| moritz counts that as a "no" | 19:59 | ||
| allison | Sounds like a no. Thanks for joining us, tty next week! | ||
| rurban | bye | 20:00 | |
| moritz | bye | ||
| NotFound | B | ||
|
20:00
chromatic left
20:01
NotFound left,
rurban left
20:04
dmknopp left
20:58
jhorwitz left
21:34
paco left
22:00
particle joined
23:05
davidfetter joined
23:52
wknight8111 joined
|
|||