Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_log/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm Set by Zoffix on 27 July 2018. |
|||||||||||||||||||||||||||||||||||||||
jnthn | Sleep time o/ | 00:02 | |||||||||||||||||||||||||||||||||||||
vrurg | jnthn: o/ | 00:04 | |||||||||||||||||||||||||||||||||||||
02:24
squashable6 left
|
|||||||||||||||||||||||||||||||||||||||
Geth | rakudo: jstuder-gh++ created pull request #3042: Issue 3041: Propagate laziness in KeyValue/Pair Iterators |
02:26 | |||||||||||||||||||||||||||||||||||||
02:29
squashable6 joined
07:08
patrickb joined
07:12
robertle joined
|
|||||||||||||||||||||||||||||||||||||||
Geth | rakudo: abbd1285db | (Jeremy Studer)++ | src/core/Rakudo/Iterator.pm6 Propagate laziness in KeyValue/Pair Iterators Propagate the laziness value from the base iterator used. Otherwise using .kv, .pairs, or .antipairs on a lazy list would cause it to be eagerly evaluated. |
07:13 | |||||||||||||||||||||||||||||||||||||
rakudo: 20e74837a9 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | src/core/Rakudo/Iterator.pm6 Merge pull request #3042 from jstuder-gh/lazy_kv_pair_iters Issue 3041: Propagate laziness in KeyValue/Pair Iterators |
|||||||||||||||||||||||||||||||||||||||
07:15
giaccard joined
07:44
giaccard left
|
|||||||||||||||||||||||||||||||||||||||
Geth | nqp: Kaiepi++ created pull request #564: Implement NativeCall wide string support |
08:55 | |||||||||||||||||||||||||||||||||||||
rakudo: Kaiepi++ created pull request #3044: Implement NativeCall wide string support |
09:01 | ||||||||||||||||||||||||||||||||||||||
10:38
HarmtH left
|
|||||||||||||||||||||||||||||||||||||||
[Tux] | Higer values because I'm actually working on this box now | 11:38 | |||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||
12:54
squashable6 left
12:56
squashable6 joined
12:57
lucasb joined
13:10
HarmtH joined
13:27
dogbert17 joined
13:50
Necro^Byte joined
13:57
pamplemousse joined
|
|||||||||||||||||||||||||||||||||||||||
AlexDaniel | vrurg: so how come changes to the VERSION location and stuff is not in MoarVM? | 15:00 | |||||||||||||||||||||||||||||||||||||
vrurg: is it planned? | |||||||||||||||||||||||||||||||||||||||
15:05
robertle left
|
|||||||||||||||||||||||||||||||||||||||
AlexDaniel | vrurg: ohā¦ now that I look at it, the VERSION file is at the same place in NQP | 15:07 | |||||||||||||||||||||||||||||||||||||
but not in rakudo. So what's the plan? | |||||||||||||||||||||||||||||||||||||||
15:10
pamplemousse left,
pamplemousse joined
15:17
pamplemousse left
15:34
patrickb left,
pamplemousse joined
15:46
MasterDuke joined
16:05
Necro^Byte left
16:06
pamplemousse left
16:10
pamplemousse joined
|
|||||||||||||||||||||||||||||||||||||||
vrurg | AlexDaniel: I don't have plans for MoarVM because it has almost nothing in common with nqp and rakudo. | 16:11 | |||||||||||||||||||||||||||||||||||||
And I don't know moar well enough to mangle with anything in it. | |||||||||||||||||||||||||||||||||||||||
With regard to nqp, you're right, I missed it. | 16:13 | ||||||||||||||||||||||||||||||||||||||
16:13
pamplemousse2 joined
|
|||||||||||||||||||||||||||||||||||||||
AlexDaniel | so I'm here suffering from the change to the location of the VERSION file and you're saying that there are no plans to make it consistent across all repos??? | 16:13 | |||||||||||||||||||||||||||||||||||||
vrurg | rakudo/nqp share a lot in common ā hence, the common nqp-configure for both and similar structure. | 16:14 | |||||||||||||||||||||||||||||||||||||
moar is much apart from them that I don't see how could it benefit from using nqp-cofnigure for build. | |||||||||||||||||||||||||||||||||||||||
AlexDaniel | ok but file locations should be consistified, no? | 16:15 | |||||||||||||||||||||||||||||||||||||
jnthn | What was the motivation for moving it in Rakudo? | 16:16 | |||||||||||||||||||||||||||||||||||||
vrurg | AlexDaniel: if we consider all three as parts of a single project ā yes. | 16:17 | |||||||||||||||||||||||||||||||||||||
AlexDaniel | ā¦ here we go again | ||||||||||||||||||||||||||||||||||||||
ugexe | tbh it was weird having VERSION in the root of the repo | ||||||||||||||||||||||||||||||||||||||
16:18
pamplemousse left
|
|||||||||||||||||||||||||||||||||||||||
AlexDaniel | they're not a single project, but put the goddamn file in the same place, please | 16:18 | |||||||||||||||||||||||||||||||||||||
vrurg | jnthn: to unify loading of files used as sources for other files. I.e. it was considered to be a template. | ||||||||||||||||||||||||||||||||||||||
AlexDaniel: that's not a problem to move it in MoarVM, but having a single file in tools/templates/ would be weird. | 16:19 | ||||||||||||||||||||||||||||||||||||||
jnthn | Well, yes. | ||||||||||||||||||||||||||||||||||||||
vrurg | Will do it for NQP though. | 16:20 | |||||||||||||||||||||||||||||||||||||
jnthn | Does it being there help something practically | ||||||||||||||||||||||||||||||||||||||
? | |||||||||||||||||||||||||||||||||||||||
AlexDaniel | OR, alternatively, put it back in rakudo | ||||||||||||||||||||||||||||||||||||||
though then there are also *_REVISION files | 16:21 | ||||||||||||||||||||||||||||||||||||||
AlexDaniel shrugs | |||||||||||||||||||||||||||||||||||||||
vrurg | jnthn: Nothing else but having a single place for all sources. | ||||||||||||||||||||||||||||||||||||||
ugexe | so the help is lowered barrier of entry for build system development | 16:22 | |||||||||||||||||||||||||||||||||||||
vrurg | AlexDaniel: there is nothing preventing it to be in the root of the build tree. Considering moar, that would then make more sense from your point of view. | 16:23 | |||||||||||||||||||||||||||||||||||||
My point is that: one place where to look for data files. If I search for anything ā I do it in tools/templates. Less clogging of the root too. | |||||||||||||||||||||||||||||||||||||||
jnthn: BTW, is it mandatory for EVAL to have own CORE loaded? Can't it use it's context CORE? | 16:26 | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | vrurg: that's a good point, I also want to search for anything in the same directory, regardless of which repo I'm in :) | 16:27 | |||||||||||||||||||||||||||||||||||||
same location I mean | |||||||||||||||||||||||||||||||||||||||
vrurg: also, how do I run a 6.c stresstest? | 16:29 | ||||||||||||||||||||||||||||||||||||||
vrurg | AlexDaniel: I would ask for some of your patience for MoarVM then. It would be better to use templating for it too. The downside is that NQP::Macros is tied to NQP::Config. Breaking this link require time which I don't have much for now. | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | vrurg: sure I can wait, that's why I'm asking if there's a plan for it to be changed | 16:30 | |||||||||||||||||||||||||||||||||||||
vrurg | make stresstest doesn't work? | 16:31 | |||||||||||||||||||||||||||||||||||||
AlexDaniel | vrurg: so I `git checkout 6.c-errata` in t/spec, then I run `make stresstest` and it says `make: *** No rule to make target 't/spec/spectest.data', needed by 'm-stresstest5'. Stop.` | ||||||||||||||||||||||||||||||||||||||
vrurg | Argh... -errata branch needs the file. | 16:32 | |||||||||||||||||||||||||||||||||||||
AlexDaniel | vrurg: I added you to the list of people who can push to *-errata branches | 16:33 | |||||||||||||||||||||||||||||||||||||
though you're probably already in the team core | 16:34 | ||||||||||||||||||||||||||||||||||||||
ah, actually you're not | |||||||||||||||||||||||||||||||||||||||
vrurg | I can commit to roast. That's enough, I guess? | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | vrurg: no, *-errata branches are protected so that people don't push there accidentally | 16:35 | |||||||||||||||||||||||||||||||||||||
like, ideally we shouldn't be pushing new commits there at all, except for some minor stuff | |||||||||||||||||||||||||||||||||||||||
ok the permission thingy is fixed now for sure :) | 16:36 | ||||||||||||||||||||||||||||||||||||||
oh, and roast also has a VERSION file, interesting | 16:37 | ||||||||||||||||||||||||||||||||||||||
vrurg | Then 6.d-errata would need the spectest.data too. Must not forget it. | 16:39 | |||||||||||||||||||||||||||||||||||||
Anyway, anyone with advise on EVAL and CORE? | |||||||||||||||||||||||||||||||||||||||
16:43
robertle joined
|
|||||||||||||||||||||||||||||||||||||||
TreyHarris | Is there a rakudo equivalent to 'perldoc -l' for locating the source file of a library that is use-able? | 16:53 | |||||||||||||||||||||||||||||||||||||
(Or a Perl 6 equivalent in general?) | |||||||||||||||||||||||||||||||||||||||
16:58
pamplemousse2 left
|
|||||||||||||||||||||||||||||||||||||||
ugexe | what if its not in a file? | 17:00 | |||||||||||||||||||||||||||||||||||||
you query for things through the appropriate CUR | |||||||||||||||||||||||||||||||||||||||
TreyHarris | ugexe: I get that. But a best-effort should be possible, no? "When I do `use Foo`, what are you loading up and can you tell me so I can (try to) look at it to be sure it's what I think it is?" | 17:02 | |||||||||||||||||||||||||||||||||||||
ugexe | $*REPO.resolve(CompUnit::DependencySpecification.new(:short-name<Foo>)) | ||||||||||||||||||||||||||||||||||||||
TreyHarris | Yep, that's what I had. I'd hoped it was in CLI form already. | 17:03 | |||||||||||||||||||||||||||||||||||||
Since #| and #= aren't implemented fully so we get docs.perl6.org-style signatures, unless the maintainers have thought to put signatures in their POD, going to the source is often the only way to figure out what's going on with something you're using because the SYNOPSIS just isn't thorough enough | 17:04 | ||||||||||||||||||||||||||||||||||||||
ugexe | zef locate Foo | ||||||||||||||||||||||||||||||||||||||
TreyHarris | (I guess #| and #= implementation is separate from introspective doc extraction, but they're related?) | 17:05 | |||||||||||||||||||||||||||||||||||||
ugexe | zef locate lib/Test.pm6 | ||||||||||||||||||||||||||||||||||||||
etc | |||||||||||||||||||||||||||||||||||||||
TreyHarris | thanks | ||||||||||||||||||||||||||||||||||||||
Geth | roast/6.c-errata: 2d096a6c27 | (Vadim Belman)++ | spectest.data Add spectest.data to conform with the latest changes in Rakudo build. |
17:10 | |||||||||||||||||||||||||||||||||||||
vrurg | AlexDaniel: now working with my master. | 17:12 | |||||||||||||||||||||||||||||||||||||
AlexDaniel | Missing test file: t/spec/S11-repository/cur-candidates.t | 17:13 | |||||||||||||||||||||||||||||||||||||
Missing test file: t/spec/S11-repository/cur-current-distribution.t | |||||||||||||||||||||||||||||||||||||||
should it be this way? | |||||||||||||||||||||||||||||||||||||||
I guess these two should not be listed then? | 17:14 | ||||||||||||||||||||||||||||||||||||||
ugexe | probably not. they came immediately after 6.d. they could be considered 6.c except they expose some new API via new .candidates method | 17:16 | |||||||||||||||||||||||||||||||||||||
kawaii | AlexDaniel: I noticed an unused `perl6::codename=` parameter from `perl6 -V`, is this for release 'codenames' | 17:17 | |||||||||||||||||||||||||||||||||||||
vrurg | ugexe: they're not in -errata. My fault, I overlooked these two. | ||||||||||||||||||||||||||||||||||||||
ugexe | s/probably not/probably/ | ||||||||||||||||||||||||||||||||||||||
vrurg | Took spectest.data.6.c from 2019.03 | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | kawaii: there were codenames at some point, and luckily they were dropped :) | 17:18 | |||||||||||||||||||||||||||||||||||||
kawaii: so that's what that field is for, I guess | 17:19 | ||||||||||||||||||||||||||||||||||||||
c: Bicycle say 42 | |||||||||||||||||||||||||||||||||||||||
committable6 | AlexDaniel, Ā¦Bicycle: Ā«No build for this commitĀ» | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | oh well to bad | 17:20 | |||||||||||||||||||||||||||||||||||||
c: ZĆ¼rich say 42 | |||||||||||||||||||||||||||||||||||||||
committable6 | AlexDaniel, Ā¦ZĆ¼rich: Ā«42ā¤Ā» | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | too* # what's up with my typing :) | 17:21 | |||||||||||||||||||||||||||||||||||||
vrurg: btw github.com/rakudo/rakudo/blob/mast...t-messages | 17:22 | ||||||||||||||||||||||||||||||||||||||
vrurg | AlexDaniel: I know... Look at most of my commits. :) | 17:23 | |||||||||||||||||||||||||||||||||||||
Sorry for this one. | 17:24 | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | vrurg: a lot of them have a dot in the title | 17:25 | |||||||||||||||||||||||||||||||||||||
not a big deal, but still :) | 17:26 | ||||||||||||||||||||||||||||||||||||||
vrurg | Dot? I don't see it mentioned in the paper. | 17:27 | |||||||||||||||||||||||||||||||||||||
I usually more worried about the explanatory part. | |||||||||||||||||||||||||||||||||||||||
AlexDaniel | āDon't end commit subjects with periods for ease of viewing a commit log by title. If there are multiple sentences in the subject, you can have a period, but do not have one at the end of the commitā | ||||||||||||||||||||||||||||||||||||||
vrurg | Right... Thanks. | 17:28 | |||||||||||||||||||||||||||||||||||||
BTW, RT #12345 needs to be changed for conforming github standards. | 17:30 | ||||||||||||||||||||||||||||||||||||||
Geth | roast/6.c-errata: ddcbd2b6ab | (Vadim Belman)++ | spectest.data Removed two missing tests from spectest.data They were added with version 6.d. |
17:31 | |||||||||||||||||||||||||||||||||||||
vrurg | Ok, 6.d will need some manual work. It's spectest.data wasn't frozen. | 17:32 | |||||||||||||||||||||||||||||||||||||
afk for a while. | 17:34 | ||||||||||||||||||||||||||||||||||||||
TreyHarris | AlexDaniel: That is confusing... it means the first-line subject shouldn't end with a dot, right? If you have a long explanation in a subsequent paragraph (separated by \n\n), that explanation can (and should) still end with a period, yes? | 18:02 | |||||||||||||||||||||||||||||||||||||
ugexe | just put a bullet in front of it, then its ok | 18:11 | |||||||||||||||||||||||||||||||||||||
AlexDaniel | TreyHarris: yeah | 18:22 | |||||||||||||||||||||||||||||||||||||
vrurg: I think the VERSION file should go back to its previous location, just for now | 18:23 | ||||||||||||||||||||||||||||||||||||||
external things may very well depend on it (e.g. releasable sakefile does, even though it's not really external anymore), so we better not move it around on a whim | 18:25 | ||||||||||||||||||||||||||||||||||||||
and having a VERSION file in the root seems like an unwritten convention in perl6 projects | |||||||||||||||||||||||||||||||||||||||
at least in moar, nqp, roast and not anymore rakudo :) | |||||||||||||||||||||||||||||||||||||||
greppable: VERSION | 18:26 | ||||||||||||||||||||||||||||||||||||||
greppable6 | AlexDaniel, 1183 lines, 167 modules: gist.github.com/52a49d78ae2e1dc725...7015b22f38 | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | fwiw I'm all for changing it, just in a more documented and consistent fashion | 18:28 | |||||||||||||||||||||||||||||||||||||
ugexe | depending on implementation details? tsk tsk | ||||||||||||||||||||||||||||||||||||||
i say this as the biggest depending on-er of implementation details :P | |||||||||||||||||||||||||||||||||||||||
why not just create a symlink to the new location for now | 18:29 | ||||||||||||||||||||||||||||||||||||||
vrurg | AlexDaniel: I now tend to agree from another point of view too: when I get some sources I usually look for any version-related information in the root. So, maybe for VERSION it makes more sense to keep it there. | 18:31 | |||||||||||||||||||||||||||||||||||||
AlexDaniel | ugexe: maybe. I don't see symlinks in git repos very often, so I don't know if there are any pitfalls | ||||||||||||||||||||||||||||||||||||||
vrurg | ugexe: a symlink solves nothing, but might have impact on Windows builds. | ||||||||||||||||||||||||||||||||||||||
ugexe | sake doesnt run on windows | ||||||||||||||||||||||||||||||||||||||
or releasable or whatever | 18:32 | ||||||||||||||||||||||||||||||||||||||
it means items depending on the implementation detail have more time to adapt | |||||||||||||||||||||||||||||||||||||||
AlexDaniel | sure, but anyone cloning the repo will see a symlink in the root, so hmmā¦ | 18:33 | |||||||||||||||||||||||||||||||||||||
ugexe | if any of those items are actually being run on windows, then i'm wrong | ||||||||||||||||||||||||||||||||||||||
what difference does it make if they see a file or a symlink | |||||||||||||||||||||||||||||||||||||||
AlexDaniel | āIn windows (msysgit), the symlink is converted to a text file with a path to the file it points toā | ||||||||||||||||||||||||||||||||||||||
not claiming it's a big problem, I'm just scared :D | 18:34 | ||||||||||||||||||||||||||||||||||||||
ugexe | so are we trying to solve an issue with windows apps consuming VERSION or what? | ||||||||||||||||||||||||||||||||||||||
because i dont think thats a real issue | |||||||||||||||||||||||||||||||||||||||
vrurg | I'm avoiding symlinks in sources in general. Neither I see why VERSION location should be a problem at all. If moving it into tools/templates causes more techincal problems than it solves (and it solves nothing) ā I see no reason not to keep it in the root. | 18:36 | |||||||||||||||||||||||||||||||||||||
ugexe | goland nor node have VERSION files in their roots | 18:37 | |||||||||||||||||||||||||||||||||||||
vrurg | AlexDaniel: do you have an idea which version of spectest.data would serve best for 6.d-errata? | 18:38 | |||||||||||||||||||||||||||||||||||||
AlexDaniel | 6c: say $*PERL | 18:39 | |||||||||||||||||||||||||||||||||||||
committable6 | AlexDaniel, gist.github.com/d475b782d8fcf095be...4bf2200661 | 18:40 | |||||||||||||||||||||||||||||||||||||
AlexDaniel | vrurg: the one in 2018.11 release maybe? | ||||||||||||||||||||||||||||||||||||||
that's the first rakudo that defaults to v6.d | |||||||||||||||||||||||||||||||||||||||
ugexe: where do they have it? And do they have it at all? | 18:41 | ||||||||||||||||||||||||||||||||||||||
ugexe | dunno, its not in their root which is all im concerned with tbh | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | github.com/golang/go/commit/7f416b...1e6052b2d6 | 18:42 | |||||||||||||||||||||||||||||||||||||
ugexe | generating it only in the release is also acceptable | 18:43 | |||||||||||||||||||||||||||||||||||||
ideal even | |||||||||||||||||||||||||||||||||||||||
AlexDaniel | it's not exactly generated, as far as I can see: github.com/golang/go/commits/7f416...d6/VERSION | 18:44 | |||||||||||||||||||||||||||||||||||||
ugexe | looks like its in the release branch? | 18:45 | |||||||||||||||||||||||||||||||||||||
AlexDaniel | yeah they do it a bit differently, it seems like they have a release branch for every release | ||||||||||||||||||||||||||||||||||||||
whereas we merge back to master after releasing | 18:46 | ||||||||||||||||||||||||||||||||||||||
ugexe | fwiw either way it seems wrong to have a VERSION file with some stale version between releases | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | yeah it's kinda weird | 18:48 | |||||||||||||||||||||||||||||||||||||
I guess it should be generated for the released tar, yeah. But for now we should probably leave it be in the root | 18:52 | ||||||||||||||||||||||||||||||||||||||
vrurg | It's weird when it's referring to a released version. But it's ok if it gets bumped, I think. So, it would mention the version being developed now. | ||||||||||||||||||||||||||||||||||||||
6.d-errata fails a lot on master... | 18:53 | ||||||||||||||||||||||||||||||||||||||
Geth | roast/6.d-errata: d90444a2ec | (Vadim Belman)++ | spectest.data Add spectest.data The file is now considered roast property and the latest Rakudo builds depend on it. |
18:59 | |||||||||||||||||||||||||||||||||||||
AlexDaniel | vrurg: yeah I see that, will figure it out soon | 19:47 | |||||||||||||||||||||||||||||||||||||
19:56
Kaiepi left
20:26
squashable6 left
20:29
squashable6 joined,
ChanServ sets mode: +v squashable6
21:15
MasterDuke left
21:18
Kaiepi joined
21:24
MasterDuke joined
21:55
Kaiepi left
22:16
Kaiepi joined
|
|||||||||||||||||||||||||||||||||||||||
[Coke] waves from the Dulles airport, delayed flight for 3.5 hours. AMA. | 22:32 | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | [Coke]: how's the chair? | 22:36 | |||||||||||||||||||||||||||||||||||||
lizmat: github.com/ajs/perl6-Math-Sequences/pull/151 | |||||||||||||||||||||||||||||||||||||||
jnthn | Heh, I read it as ANA and thought that was the airline to blame for the delay :P | 22:39 | |||||||||||||||||||||||||||||||||||||
MasterDuke | m: BEGIN my int $a = 4; # i don't undertand this | 22:44 | |||||||||||||||||||||||||||||||||||||
camelia | 5===SORRY!5=== Error while compiling <tmp> An exception occurred while evaluating a BEGIN at <tmp>:1 Exception details: 5===SORRY!5=== Error while compiling Lexical with name '$a' has wrong type. real type 8 wanted type -1 aā¦ |
||||||||||||||||||||||||||||||||||||||
[Coke] | alex; suprisingly comfy | 22:49 | |||||||||||||||||||||||||||||||||||||
I'm not near an outlet, though, taking my chances. | |||||||||||||||||||||||||||||||||||||||
22:58
Kaiepi left
|
|||||||||||||||||||||||||||||||||||||||
vrurg | jnthn: ping | 23:21 | |||||||||||||||||||||||||||||||||||||
23:24
Kaiepi joined
23:26
lucasb left
|
|||||||||||||||||||||||||||||||||||||||
jnthn | vrurg: pong | 23:39 | |||||||||||||||||||||||||||||||||||||
vrurg | I wonder if a setting loaded with --setting ought to have !CORE_MARKER set. I guess it's not. | 23:40 | |||||||||||||||||||||||||||||||||||||
The problem is that chained SETTING pseudo include symbols from outer lexical and I don't see how to filter them out correctly yet. | 23:41 | ||||||||||||||||||||||||||||||||||||||
jnthn | !CORE_MARKER should only really go into CORE.setting | ||||||||||||||||||||||||||||||||||||||
The intention of it was to mark out "this is CORE.setting" | |||||||||||||||||||||||||||||||||||||||
We could, in theory, figure that out in a totally different way | |||||||||||||||||||||||||||||||||||||||
Though a symbol like that was cheap to look for, and easy to implement | 23:42 | ||||||||||||||||||||||||||||||||||||||
Any --setting=Foo where Foo is not CORE should not get !CORE_MARKER; the whole point of it was so we could find CORE! | 23:43 | ||||||||||||||||||||||||||||||||||||||
vrurg | It's not a problem and easy to grasp. I just wonder how to get it working correctly for EVAL and have only EVAL-related setting symbols reliably. | ||||||||||||||||||||||||||||||||||||||
jnthn | EVAL's "setting" is the scope in which EVAL was called, really | 23:44 | |||||||||||||||||||||||||||||||||||||
vrurg | It's perhaps the only problem left to solve before my PR is ready for merge. Just one damn spec test failing. ;) | ||||||||||||||||||||||||||||||||||||||
jnthn | But I've never really thought of it as a setting in the SETTING:: sense | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | fwiw there's a new blocker-like thingy here: github.com/rakudo/rakudo/issues/3045 | ||||||||||||||||||||||||||||||||||||||
it'd be nice if somebody takes a look while I'm doing other stuff | |||||||||||||||||||||||||||||||||||||||
jnthn | AlexDaniel: Will see if I can take a look tomorrow | 23:45 | |||||||||||||||||||||||||||||||||||||
vrurg | EVAL code is wrapped into own CORE loaded by load-lang-ver method. | ||||||||||||||||||||||||||||||||||||||
jnthn | That might be more accident than intentional... | ||||||||||||||||||||||||||||||||||||||
vrurg | This actually allows for: use v6.e; EVAL q|use v6.c;| | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | yeah I'm going to need some sleep today anyway, and I still want the VERSION file movedā¦ so tomorrow is about perfect :) | 23:46 | |||||||||||||||||||||||||||||||||||||
jnthn | I'm a tiny bit surprised that works... | ||||||||||||||||||||||||||||||||||||||
vrurg | AlexDaniel: If I get time for it. I need to get it done with pseudo-pacages, eventually. | ||||||||||||||||||||||||||||||||||||||
jnthn | Is it covered in roast? | ||||||||||||||||||||||||||||||||||||||
vrurg | jnthn: I was thinking about preventing this ā it's really simple and things work afterwards. But what for? | 23:47 | |||||||||||||||||||||||||||||||||||||
No, it's not covered. | |||||||||||||||||||||||||||||||||||||||
jnthn | Actually I'm very surprised it works, in that EVAL is also meant to see language tweaks | ||||||||||||||||||||||||||||||||||||||
(Those in effect at the point it is called) | |||||||||||||||||||||||||||||||||||||||
And I'm not sure how those can really both apply. | 23:48 | ||||||||||||||||||||||||||||||||||||||
vrurg | But it is used in rakudo t/02/rakudo/99-mist.t | ||||||||||||||||||||||||||||||||||||||
jnthn | What does `use v6.c` in an EVAL really imply? | ||||||||||||||||||||||||||||||||||||||
What outer does it get? | |||||||||||||||||||||||||||||||||||||||
vrurg | It gets CORE.setting, as it should. | ||||||||||||||||||||||||||||||||||||||
And then that is wrapped into EVAL's outer context. | 23:49 | ||||||||||||||||||||||||||||||||||||||
jnthn | Wait...what? | ||||||||||||||||||||||||||||||||||||||
Wrapped as in forceouterctx? | |||||||||||||||||||||||||||||||||||||||
Or does it copy the symbols out of CORE.setting into an intermediate frame? | 23:50 | ||||||||||||||||||||||||||||||||||||||
vrurg | Yep. | ||||||||||||||||||||||||||||||||||||||
No, it doesn't copy. | |||||||||||||||||||||||||||||||||||||||
jnthn | Ufff...that's a great way to make EVAL really slow :) | ||||||||||||||||||||||||||||||||||||||
vrurg | Its forceouterctx | ||||||||||||||||||||||||||||||||||||||
jnthn | Oh, that's even scarier, isn't it? | ||||||||||||||||||||||||||||||||||||||
vrurg | ForeignCode.pm6 | ||||||||||||||||||||||||||||||||||||||
jnthn | If I'm understanding you right, this must be a complete threading disaster | 23:51 | |||||||||||||||||||||||||||||||||||||
vrurg | To my limited knowledge, it doesn't look so. But I'm underinformed yet. ;) | ||||||||||||||||||||||||||||||||||||||
I guess it is. Just a moment, there was an issue on this. | |||||||||||||||||||||||||||||||||||||||
R#1391 | |||||||||||||||||||||||||||||||||||||||
synopsebot | R#1391 [open]: github.com/rakudo/rakudo/issues/1391 EVAL is not thread safe | ||||||||||||||||||||||||||||||||||||||
jnthn | 'cus there's only one CORE.setting UNIT frame, and if we're then doing `forceouterctx` on it and we do two concurrent EVAL's... | ||||||||||||||||||||||||||||||||||||||
vrurg | Ok, I could try evade loading CORE, it's as simple as return from load_setting if $*INSIDE-EVAL. If you think this should work I could try Zoffix samples from the ticket. | 23:53 | |||||||||||||||||||||||||||||||||||||
I would still have own UNIT though. Not sure if this affects anything. | 23:54 | ||||||||||||||||||||||||||||||||||||||
*It would | |||||||||||||||||||||||||||||||||||||||
BTW, it also shares the compiler. That could be even bigger problem, as I see it. | 23:56 | ||||||||||||||||||||||||||||||||||||||
jnthn | There's certainly some other thread-safety issues | 23:57 | |||||||||||||||||||||||||||||||||||||
I note loading_and_symbol_setup certainly looks if we have an outer_ctx | 23:58 | ||||||||||||||||||||||||||||||||||||||
vrurg | EVAL provides outer_ctx | ||||||||||||||||||||||||||||||||||||||
But grammar is calling load-lang-ver implicitly and that loads CORE | 23:59 | ||||||||||||||||||||||||||||||||||||||
jnthn | Yeah, so I see...trying to figure out what happens *then* | ||||||||||||||||||||||||||||||||||||||
m: my $x = 42; EVAL 'say $x' | |||||||||||||||||||||||||||||||||||||||
camelia | 42 | ||||||||||||||||||||||||||||||||||||||
jnthn | m: my $x = 42; EVAL 'use v6.c; say $x' | ||||||||||||||||||||||||||||||||||||||
camelia | 42 |