|
00:26
sjn left
00:32
sjn joined
01:22
guifa_ joined
02:30
guifa_ left
02:36
guifa_ joined
|
|||
| Geth | rakudo: ugexe++ created pull request #6312: RakuAST: Don't iterate worries when promoting under fatal |
03:08 | |
| rakudo: ugexe++ created pull request #6313: RakuAST: Skip coercion types in the duplicate-multi check |
|||
| rakudo: ugexe++ created pull request #6314: RakuAST: Resolve an indirect `is ::Name` parent as a type |
03:09 | ||
| rakudo: ugexe++ created pull request #6315: RakuAST: Allow a pseudo-package nested in a declared name |
03:35 | ||
| rakudo: ugexe++ created pull request #6316: RakuAST: Report a leading pseudo-package cleanly instead of crashing |
03:45 | ||
|
03:51
guifa_ left
04:57
Geth joined,
lizmat left
|
|||
| Geth | rakudo/main: 236ce7cf8d | (Nick Logan)++ (committed using GitHub Web editor) | 3 files RakuAST: build the CORE:: PseudoStash at runtime, not compile time Referencing a CORE:: symbol at compile time in a module (for example `&CORE::prompt` in a role method) died "Missing serialize REPR function for REPR MVMContext (BOOTContext)". Dynamically compiled code built the CORE PseudoStash from the setting context and inserted it into the QAST as a literal value. That is fine when the frame is thrown away, but a ... (10 more lines) |
04:58 | |
|
04:59
lizmat joined
|
|||
| Geth | rakudo: patrickbkr++ created pull request #6317: Allow resizing the pty of a non-started Proc::Async |
06:18 | |
| patrickb | Non-RakuAST merges to main are currently blocked, right? | 06:25 | |
|
06:32
finanalyst joined
|
|||
| releasable6 | Next release in ≈2 days and ≈11 hours. 1 blocker. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft | 07:00 | |
|
07:32
librasteve_ joined
08:03
vrurg_ joined
08:04
vrurg left
|
|||
| Geth | rakudo/main: 1964cf3835 | (Patrick Böker)++ (committed using GitHub Web editor) | src/core.c/Proc/Async.rakumod Stop crash when resizing the pty of a non-started Proc::Async With this PR, calling $proc.resize-pty(...) on a Proc::Async object that has not been started yet, succeeds (and does the right thing) instead of dying with "Argument 0 to MoarVM syscall 'pty-resize' has repr P6opaque, but should be MVMOSHandle". It errors because $!process-handle is Any until the proc is started. |
10:31 | |
| lizmat | @[Coke]: I signed off on that ^^ | 10:32 | |
|
10:50
guifa_ joined
11:34
guifa_ left
12:34
finanalyst left
12:35
finanalyst joined
12:57
finanalyst left
12:58
finanalyst joined
13:02
finanalyst left
|
|||
| [Coke] | ok | 13:06 | |
|
13:10
finanalyst joined
13:15
finanalyst left,
finanalyst joined
13:16
finanalyst left
13:26
finanalyst joined
13:31
finanalyst left
14:01
finanalyst joined
14:03
finanalyst_ joined
14:05
finanalyst left
|
|||
| ugexe | patrickb: would `X::Proc::Async::MustBeStarted.new(...).throw unless $!started` not be the correct thing to do? | 14:44 | |
| i say this based on just a quick visual pattern matching of how $!started is used in that file | 14:45 | ||
| Geth | rakudo/main: 2a42263f3c | (Nick Logan)++ | 4 files RakuAST: let a real routine override an imported stub `use subs <foo>; sub foo { ... }` (the `subs` pragma predeclares stub routines that real definitions later fill in) died "Redeclaration of symbol '&foo'". An imported symbol is a generated lexical declaration, so a real declaration of the same name collided with it in the scope's redeclaration check. ... (9 more lines) |
15:10 | |
| rakudo/main: 63dfcb576d | (Nick Logan)++ | 2 files RakuAST: don't warn redefining a forward-declared stub routine `sub foo { ... }; sub foo { 42 }` warned "Redeclaration of routine 'foo'" even though defining a forward-declared stub is the supported pattern and works. The scope's redeclaration check warned for any two same-named routine declarations, not accounting for the first being a stub. Skip the warning when the existing declaration is a stub routine, the way the routine installer already allows the definition to replace it. Redefining a non-stub routine is still a redeclaration. |
|||
| rakudo/main: 6b88ef5e92 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | 5 files Merge pull request #6307 from ugexe/ugexe/rakuast-routine-overrides-import RakuAST: let a real routine override an imported stub |
|||
| rakudo/main: df7ca4ae40 | (Nick Logan)++ (committed using GitHub Web editor) | 4 files RakuAST: parse the `my :(...)` signature literal declaration Previously `my :($a, $b) := (1, 2)` failed to parse under RakuAST with "Malformed my". The declarator grammar accepted the list form `my ($a, $b)` but not the signature literal form with a leading colon. Accept an optional colon before the parenthesized signature in the ... (5 more lines) |
15:12 | ||
| patrickb | ugexe: No. The reason is, that we pass in the size on process start. So when calling a pty-resize before starting the process, we are not sending a size change to the running process, but we do save the new sizes. Once the process is started, it will be started with the new sizes. | 15:13 | |
| Geth | rakudo/main: ed28bde563 | (Nick Logan)++ (committed using GitHub Web editor) | 2 files RakuAST: attach a top level variable's `will` phaser to the mainline A `will leave`/`will enter` (etc.) phaser trait on a top level variable died "No such method 'add_phaser' for invocant of type 'Mu'". The trait attaches the phaser to the variable's enclosing block, found via find-attach-target('block'). At the top level there is no block on the attach-target stack, so the lookup returned Nil and the code object ... (8 more lines) |
15:14 | |
| rakudo/main: 9c87e104ab | (Nick Logan)++ (committed using GitHub Web editor) | 3 files RakuAST: skip arity check for feed-stage calls Previously a call used as a stage of a `==>` or `<==` feed wrongly reported "Calling foo() will never work with declared signature" when the called sub had a mandatory positional. The fed value is appended as an extra argument at QAST time, so the argument count visible at the AST level is short by one. The check-time trial-bind in RakuAST::Call::Name ... (10 more lines) |
15:19 | ||
| rakudo/main: 347366d64a | (Nick Logan)++ (committed using GitHub Web editor) | 2 files RakuAST: Declare a block's type captures as block-local A type capture on a pointy or loop block's signature parameter was not declared as a lexical inside that block. The capture bound an outer same-named lexical instead, so `for ... -> ::T { }` inside a routine that already had a `::T` parameter overwrote the routine's capture. RakuAST::Routine already declares its parameters' type captures in PRODUCE-IMPLICIT-DECLARATIONS. Do the same in RakuAST::Block so blocks with their own signature (pointy blocks, loop blocks) declare theirs too. |
15:20 | ||
| rakudo/main: b1e0906c27 | (Nick Logan)++ (committed using GitHub Web editor) | 2 files RakuAST: Don't iterate worries when promoting under fatal A node with a sorry-level check-time problem but no worry under `use fatal` crashed with "Cannot iterate over a Mu type object". The worry list stays a type object until the first worry is added, and promote-worries-to-sorries iterated it unconditionally. Guard the promotion on a worry having been recorded. |
15:21 | ||
| rakudo/main: a72df512e7 | (Nick Logan)++ (committed using GitHub Web editor) | 2 files RakuAST: Skip coercion types in the duplicate-multi check The duplicate-multi-signature check smartmatches two candidate signatures, which erases a coercion type to its target type. Two coercions that share a target but accept different types (such as `Int(Cool)` and `Int(Str)`) then compare as equivalent and produce a spurious "equivalent signatures would lead to ambiguous dispatch" report, which `use fatal` turns into a compile ... (5 more lines) |
15:22 | ||
| rakudo/main: 39d70c1ee7 | (Nick Logan)++ (committed using GitHub Web editor) | 2 files RakuAST: Resolve an indirect `is ::Name` parent as a type `is ::Name` names an existing type to inherit from through an indirect lookup. The `is` trait rejects type captures, so `::Name` falls through to the longname branch and was applied as a property name. Its name was then resolved late, after the declaring package's own name was in scope, so a role like `role Exception is ::Exception` resolved its parent to the wrong ... (6 more lines) |
15:27 | ||
| rakudo/main: 7b9f50a55b | (Nick Logan)++ (committed using GitHub Web editor) | 3 files RakuAST: Report a leading pseudo-package cleanly instead of crashing A pseudo-package leading a declared name is rejected with a sorry, but for CORE and GLOBAL the name resolver crashed before that sorry was reported. `class CORE::Foo` died with "Can't shift from an empty array" because the CORE branch shifted an already-empty part list, and `class GLOBAL` died with "Empty name lookup not possible as a constant" because a bare GLOBAL reduces to an empty name in IMPL-FULL-NAME. Return Nil for a bare CORE and skip resolving an empty full name, so both report the normal error like the other pseudo-packages do. |
15:28 | ||
| rakudo/main: e1f9e3ebc2 | (Nick Logan)++ (committed using GitHub Web editor) | 7 files RakuAST: Don't compose a class whose body fails to begin A begin-time error while declaring a package body member can be deferred as a sorry rather than aborting the parse: a trait that dies, or a begin-time evaluation on a check-time node. The package was then composed and installed as a complete type anyway. Re-declaring that name (as `throws-like { EVAL ... }` does when a test exercises a bad declaration twice) raised a spurious ... (7 more lines) |
15:30 | ||
| rakudo/main: 2e27eab619 | (Nick Logan)++ (committed using GitHub Web editor) | 2 files RakuAST: Fix enum declaration with a non-string key An enum value's name is a string, but a key written as a numeric literal (`12844 => 25`) reaches enum building as an Int. Two paths then failed under RakuAST where legacy did not. `add_enum_value` unboxes the key to a native string at BEGIN time. Coerce ... (8 more lines) |
15:32 | ||
| rakudo/main: d4c5749463 | (Nick Logan)++ (committed using GitHub Web editor) | 2 files RakuAST: Initialize attribute defaults that are type objects at construction An attribute whose default is a type object (`has T $.x = T`) compiled to a build value that is not concrete. The metamodel only initializes the attribute at construction when the build is concrete, so it was never initialized there. The slot was left to MoarVM, which vivifies it lazily on the first read, and that vivification is not synchronized. Under concurrency a node published with ... (8 more lines) |
15:51 | ||
| [Coke] | I assume all these new commits are 1) rakuast, and 2) going in knowing the release is in 2 days? | 17:23 | |
| patrickb | All have a "RakuAST" prefix, except for that one commit of mine, which apparently got a special permit. :-P (It is a very localized and small fix though.) I am well aware the release is in two days. | 17:40 | |
| Geth | rakudo/main: 0a62540648 | (Nick Logan)++ | 2 files RakuAST: Resolve a package lookup through a runtime lexical `t::{$key}` where `t` is a lexical bound to a type (my \t := SomeEnum) failed to compile with "Symbol 't' does not have a compile-time value". Resolving the qualified name ran the leading part through the constant name resolver, which threw for a lexical that is not itself a constant, before the runtime .WHO fallback could take over. This broke installing ... (8 more lines) |
17:54 | |
| rakudo/main: 3b1e53c06a | (Nick Logan)++ | 2 files RakuAST: Resolve a package-qualified call through a runtime lexical `t::foo()` where `t` is a lexical bound to a type (my \t := SomeType) could not find the routine. Resolve the leading part as a plain lexical so a runtime package base binds as the call's package even when it lacks a compile-time value. Codegen already takes .WHO on its value to find the routine, the same as for a compile-time package. |
|||
| rakudo/main: 20c3028c44 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | 3 files Merge pull request #6293 from ugexe/ugexe/rakuast-indirect-package-lookup RakuAST: Resolve a package lookup or call through a runtime lexical |
|||
| lizmat | [Coke]: yes, all RakuAST except patrick's one | ||
| Geth | rakudo: lizmat++ created pull request #6318: RakuAST: small refactor of ::Resolver.resolve-lexical-constant |
18:11 | |
| lizmat | heh... interesting... looks like the commit felt in a black hole | 18:12 | |
| Geth | rakudo/main: 0a62540648 | (Nick Logan)++ | 2 files RakuAST: Resolve a package lookup through a runtime lexical `t::{$key}` where `t` is a lexical bound to a type (my \t := SomeEnum) failed to compile with "Symbol 't' does not have a compile-time value". Resolving the qualified name ran the leading part through the constant name resolver, which threw for a lexical that is not itself a constant, before the runtime .WHO fallback could take over. This broke installing ... (8 more lines) |
18:13 | |
| rakudo/main: 3b1e53c06a | (Nick Logan)++ | 2 files RakuAST: Resolve a package-qualified call through a runtime lexical `t::foo()` where `t` is a lexical bound to a type (my \t := SomeType) could not find the routine. Resolve the leading part as a plain lexical so a runtime package base binds as the call's package even when it lacks a compile-time value. Codegen already takes .WHO on its value to find the routine, the same as for a compile-time package. |
|||
| rakudo/main: 20c3028c44 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | 3 files Merge pull request #6293 from ugexe/ugexe/rakuast-indirect-package-lookup RakuAST: Resolve a package lookup or call through a runtime lexical |
|||
| rakudo/lizmat-24: 0974e1ab89 | (Elizabeth Mattijsen)++ | src/Raku/ast/resolver.rakumod RakuAST: small refactor of ::Resolver.resolve-lexical-constant Since it felt like pretty hot code during compilation: - no return statement unless needed - no unneccesary intermediat variables |
|||
| lizmat | it appears that Github is having some webhooks issues | ||
| I'll stop merging PRs now | 18:29 | ||