🦋 Welcome to the IRC channel of the core developers of the Raku Programming Language (raku.org #rakulang). This channel is logged for the purpose of history keeping about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | Logs available at irclogs.raku.org/raku-dev/live.html | For MoarVM see #moarvm
Set by lizmat on 8 June 2022.
timo m: my @foo; @foo[2 ** 45 - 2 ** 16] = 1; 00:12
camelia MoarVM panic: Memory allocation failed; could not allocate 281474976186376 bytes
timo m: my @foo; @foo[2 ** 45 - 2 ** 19] = 1; 00:13
camelia MoarVM panic: Memory allocation failed; could not allocate 281474972516360 bytes
timo it looks like there's some (very large) sizes that you can ask for that will cause an abort inside mimalloc (can't reproduce it here on camelia though) 00:16
0xfffffffe0000 is the largest that mimalloc will allow in a check that's earlier than the abort i've seen 00:18
m: say (2 ** 45 - 2 ** 19).base(16); say (2 ** 45 - 2 ** 16).base(16)
camelia 1FFFFFF80000
1FFFFFFF0000
timo m: say 281474972516360.base(16) 00:19
camelia FFFFFFC00008
timo there's also a check in set_size_internal that says we can only allocate up to 1ULL << (CHAR_BIT * sizeof(size_t) - elem_addr_size) elements, but there's a tighter limit than the 8 or 4 bytes of pointers, since even on a 64bit architecture, we can only use ... i think 48 bits? at the moment 00:22
04:15 guifa left 04:50 guifa joined 07:41 finanalyst joined 08:01 sena_kun joined
finanalyst .tell suna_kun I would appreciate some help. Please see new-raku.finanalyst.org/language/REPL and try edit button. Looking to make a PR in github 08:23
tellable6 finanalyst, I haven't seen suna_kun around, did you mean sena_kun?
sena_kun finanalyst, hi! How exactly can I help? 08:37
I see that the styles on the website were broken, but to fix that one needs to revert the changes 08:38
Geth roast: 69970ea7d7 | (Elizabeth Mattijsen)++ | S26-documentation/block-leading-user-format.t
Fudge test passing in RakuAST
08:39
lizmat spectest clean again 08:40
finanalyst sena_kun: I have been asking around how to integrate with github. It was suggested I contact you. 08:41
sena_kun the TOC styles got a lot worse: 1)nobody uses a separate button like "Contents" to operate the sidebar. Well, except the docs website now; 2)opening the sidebar moves the main column content, that's a bug/mistake; 3)no separation of the sidebar (a mistake), but instead the separate now have the common background, creating a confusing button-like feeling
somebody also removed the logic of sidebar widening 08:42
finanalyst Styling is all my fault and I am happy to discuss. 08:43
BUt it is not styling that is currently a breaker
It is integration with github
sena_kun what's the issue? 08:44
finanalyst Styling is now VERY easily sorted, via templates and choosing the CSS framework
Have you tried the edit button? top right of page
sena_kun I think github has a preview mode for markdown too 08:45
Yes, I am looking at the form right now
finanalyst The editor is Ace, a user can make changes. The changes are in browser. How to reaise a PR with those changes
Ideally, the user should be authenticated with github, for giving credit to changes to the documents 08:46
I have been reading all the documentation, but I have not yet sorted out how to do this
sena_kun doing this would be a lot more complex than just providing an edit url to github file
finanalyst indeed 08:47
But, an edit url does not allow for seeing the rendered HTML in real time of changes
Or to see when a change breaks the RakuDoc source 08:48
It is because of the complexity that I am asking for help. If it were easy, it would take considerably more time
sena_kun as I understand it, you first need to get the user's github auth token, via providing a login form for the docs website, to obtain the user and its auth token. Then you use a gh api directly or via octokit to create a branch and the commit nn their behalf (this will also require asking the user to give the docs website write access to their repositories, which is super scary), you construct the URL of a new PR and redirect the 08:50
user there in a new tab
this is quite complex and involves doing some super scary and weird things (like the docs website asking you to log into github and give it write rights...). Personally, I do not believe a live preview is a feature that justifies the efforts 08:51
finanalyst that seems to be the pattern I have read. Bit it seems to involve setting up a third - user invisible - server to match code and token
sena_kun the docs website itself could've done that if it had a dynamic routing too 08:52
but that's not the matter
are you very keen on implementing this?
finanalyst from what I can see is that much finer grain write access is possible, so only writing to the repo to create a PR can be granted to the app
sena_kun yes, that's true 08:53
the problem is, you still grant write access from your account to somebody
to a documentation website (!)
I never saw that
finanalyst I am keen on doing this because it will encourage a wider community help in correcting eg typos
Also after speaking to [Coke] and lizmat , the ease of minor changes seems something to persue 08:54
sena_kun Are you sure this is a significant thing that prevents people from contributing?
But even so, a requirement to log into the docs github with your account would scare off everyone a lot more than absence of live preview 08:55
lizmat seeing this conversation, and sleeping a bit over it
I wonder whether it wouldn't make more sense to just ask people if / how they would like to be mentioned in the suggested change 08:56
keep that in a cookie
finanalyst I have spoken to Bruce (util) who does not have commit access to Raku/doc. It is a big hassle to clone the who Raku/doc repo, make a minor change, raise a PR, just to add one letter
lizmat and have each suggestion just be put into a queue for someone else to process and commit to the repo
sena_kun maybe a bot can be provided then?
lizmat that someone else having write access to the doc repo 08:57
sena_kun yes, that's a better way
finanalyst Since the online editor generates a patch, maybe we could just store the patches, then have someone get the patches 08:58
lizmat finanalyst: yeah, that's what I was saying :)
finanalyst That would be safer, and much easier to implement
lizmat and less alarming to people wanting to contribute
and also would remove the need of the contributor to have a github account
finanalyst indeed 08:59
very useful discussion. Thanks. 09:00
sena_kun: I'm happy to discuss the other styling issues you have 09:01
did you try the Raku REPL baar?
sena_kun finanalyst, I don't have that much time right now, alas, but I think most of what I see on the live website now would be resolved by a revert
finanalyst not a revert at all. this is a complete refactoring of the software 09:02
let me know when you have time
sena_kun why? There was a replacement of a flag-based sidebar control with a "Contents" button
Just revert that change?
finanalyst its not a revert 09:03
sena_kun I don't see what has it to do with software
finanalyst its built from scratch
sena_kun if the software cannot render the sidebar how it was, it has to be changed
finanalyst or do you mean the Icon? That can be changed
sena_kun yup
plus the styles of the sidebar, can we get them back?
the styles of the search bar widening are not working as they were 09:04
finanalyst Ino they do not work as before, because it was broken
sena_kun just make it as it was and it'll be OK 👍
in what way? 09:05
finanalyst the problem comes when resizing the screen.
sena_kun you mean the sidebar covering the main column content?
finanalyst Looking at the sidebar with Mac/Safari or using a tablet, and the TOC and main content overlap.
You can see this on the current docs.raku.org site 09:06
sena_kun that's how it is everywhere. that's why usually the sidebar is hidden
finanalyst the new-raku site is built differently
sena_kun it's the default UI solution in the industry
finanalyst did you try the REPL bar?
I would like for the TOC to have collapsible hierarchy, which open / close when clicking 09:08
Also, you should look at the new-raku site in a mobile - its way better
sena_kun oh, I am scared to look there 09:09
finanalyst The current site uses Bulma v0.9, the new-raku site uses Bulma v1, and the new site uses RakuDoc v2, not v1 09:10
thank you for the consultation over github integration. I'm going to implement the new strategy 09:11
sena_kun anyway, my 5c is that UI guidelines of how a website should look in 20s is different compared to 10s, 00s and 90s. not following the current modern UI standards, IMO, does a lot more harm to getting more people who see outdated stuff, than minor features like a convenient preview. It may not look like what you are used to, but this doesn't make modern UI "broken" or "less convenient" (well, for you it may be, for new generations 09:13
of users it's the opposite). I believe Raku wants new generations of users to keep living, even as a niche language, so I think adapting everything for them is worth the effort
hope I could help even a little bit, good luck!
finanalyst sena_kun: adapting for a wider diverse set of users is my ambition. Did you see how the UI is multilingual? 09:24
currently it has: English, Japanese, Ukrainian, Welsh, French and Dutch 09:27
lizmat m: say Q|my role R[::T] { }; my class C does R[Int] { }|.AST # nine: feels that should be fixable? 11:08
camelia ===SORRY!=== Error while compiling EVAL_0
Could not instantiate role 'R'; exception details:

Unknown compilation input 'qast'
in any IMPL-COMPILE-DYNAMICALLY at src/Raku/ast/code.rakumod line 410
in any at src/Raku/ast/code…
lizmat golfed from t/spec/S02-types/generics.t 11:09
heh... appears to work with RAKUDO_RAKUAST=1 raku -e 11:12
nine That Unknown compilation input 'qast' hits me every time I try to use .AST in camelia 11:14
lizmat aha, ok
lizmat makes mental note 11:15
m: role R[::T] { has @.a is T }; dd R[Int].new(:42a).a # something wrong in legacy grammar as well :-) 11:19
camelia Cannot modify an immutable Int (0)
in block <unit> at <tmp> line 1
lizmat aka, we've created an "a" attribute that is an Int, yet it has the @ sigil 11:20
actually, this goes deeper:
m: my @a is Int = 1,2,3
camelia Cannot modify an immutable Int (0)
in block <unit> at <tmp> line 1
lizmat either we need to make "my @a is Int" the same as "my Int @a", or we need to throw at compile time with a typecheck failure that Int isn't Positional 11:21
nine: do you agree ? 11:22
nine Sounds like we should prohibit. AFAIK the other way to write `my Int @a` is my @a of Int 11:25
This is definitely an area that needs way less magic and options instead of more 11:26
lizmat yeah, forgot the "of" option... so throwing feels appropriate 11:27
Geth rakudo/bootstrap-rakuast: cdd9bba7cc | (Stefan Seifert)++ | 5 files
WIP
11:31
rakudo/main: 4fad4276ef | (Elizabeth Mattijsen)++ | src/core.c/Any.rakumod
RakuAST: add bare dd CHECK functionality

As a core developer, I'm interested in the exact RakuAST tree that is being built for a given piece of code. Until now, I usually resorted to:
   raku -e 'say Q|the code|.AST'
... (20 more lines)
12:16
lizmat code > commit message :-)
actually: commit message > code :) 12:17
Geth nqp/main: 4d4ac9fce3 | (Daniel Green)++ | 2 files
Use correct typed accessors where able

This prevents them from getting HLLized unnecessarily.
rakudo/main: de421f7969 | (Daniel Green)++ | src/Perl6/bootstrap.c/BOOTSTRAP.nqp
Use correct typed accessors where able

This prevents them from getting HLLized unnecessarily.
12:19
lizmat ooohhh!
going afk now, will bump NQP if not bumped already by then
12:38 finanalyst left
Geth rakudo/main: 5bd76f547c | (Daniel Green)++ | tools/templates/NQP_REVISION
Bump NQP for micro-optimizations
12:57
rakudo/bootstrap-rakuast: 5 commits pushed by (Stefan Seifert)++ 13:15
rakudo/bootstrap-rakuast: 21 commits pushed by (Stefan Seifert)++
review: github.com/rakudo/rakudo/compare/2...41b159dcd7
13:20
nine Bootstrap is now also up to date and working 13:21
14:02 finanalyst joined 16:39 sena_kun left 18:05 finanalyst left
[Coke] next 18:57
releasable6: next
releasable6 [Coke], Next release in ≈13 days and ≈0 hours. 1 blocker. 188 out of 189 commits logged
[Coke], Details: gist.github.com/1edfea280253ed483b...d5e4bb7b22
20:31 finanalyst joined 21:51 sena_kun joined 21:57 finanalyst left 22:22 sena_kun left