Geth | nqp: 83ed559f53 | (Zoffix Znet)++ (committed using GitHub Web editor) | tools/build/install-jvm-runner.pl.in Bump Xmx for nqp-j by another 300MB It still crashes with out of mem on occasion and 1.2GB is about what it takes to compile MoarVM version rakudo |
00:11 | |||||||||||||||||||||||||||||||||||||
MasterDuke | Zoffix: ugh, that's what i get for hand-editing the wrong version. added the ` = $*CWD` back in and now it builds and passes a spectest | 00:18 | |||||||||||||||||||||||||||||||||||||
Zoffix | But does it blend? :) | 00:19 | |||||||||||||||||||||||||||||||||||||
Is it slower than before? | |||||||||||||||||||||||||||||||||||||||
MasterDuke | haven't tested IO::Path.new yet. tested some similar made up examples, i can show here | 00:20 | |||||||||||||||||||||||||||||||||||||
m: sub f(Str:D $a) { "a = $a" }; my $s; for ^1_000_000 { $s = f($_.Str) }; say $s; say now - INIT now | 00:21 | ||||||||||||||||||||||||||||||||||||||
camelia | a = 999999 0.65999187 |
||||||||||||||||||||||||||||||||||||||
MasterDuke | m: sub f(Cool $a) { "a = $a.Str()" }; my $s; for ^1_000_000 { $s = f($_) }; say $s; say now - INIT now | ||||||||||||||||||||||||||||||||||||||
camelia | a = 999999 1.289085959 |
||||||||||||||||||||||||||||||||||||||
MasterDuke | m: sub f(Str(Cool) $a) { "a = $a" }; my $s; for ^1_000_000 { $s = f($_) }; say $s; say now - INIT now | ||||||||||||||||||||||||||||||||||||||
camelia | a = 999999 1.009371 |
||||||||||||||||||||||||||||||||||||||
Zoffix | Looking at QAST, the coercer gotta be slower, because it first checks for Any type and then does a second check for Str | ||||||||||||||||||||||||||||||||||||||
Would've thought doing Str check first and coercing only if it ain't a Str would've made more sense, 'cause right now you can only coerce from ancestor types, not just from arbitrary types (and you do an extra checks for things that don't need coercing) | 00:22 | ||||||||||||||||||||||||||||||||||||||
m: sub f(Str $a) { "a = $a" }; my $s; for ^1_000_000 { $s = f($_.Str); Nil }; say $s; say now - INIT now | 00:23 | ||||||||||||||||||||||||||||||||||||||
camelia | a = 999999 0.7226964 |
||||||||||||||||||||||||||||||||||||||
Zoffix | m: sub f(Str:D $a) { "a = $a" }; my $s; for ^1_000_000 { $s = f($_.Str); Nil }; say $s; say now - INIT now | ||||||||||||||||||||||||||||||||||||||
camelia | a = 999999 0.84479403 |
||||||||||||||||||||||||||||||||||||||
MasterDuke | huh, where does coercing actually happen? think that's an optimization that'll work everywhere? | 00:25 | |||||||||||||||||||||||||||||||||||||
Zoffix | Well, I'm looking at the fast-past binder, in which case the QAST is right in the param setting code there's also the slow-path binder in BOOTSTRAP.nqp somewhere (method bind or bind-one or something) | 00:32 | |||||||||||||||||||||||||||||||||||||
Well, it'll work everywhere, but it changes semantics of how coercers work... so... | |||||||||||||||||||||||||||||||||||||||
(and the fast-past bindder is genned in Actions | 00:42 | ||||||||||||||||||||||||||||||||||||||
) | |||||||||||||||||||||||||||||||||||||||
ffs... keep getting "Unhandled exception: java.lang.OutOfMemoryError: Java heap space" :| | 00:47 | ||||||||||||||||||||||||||||||||||||||
Oh, and to make the code go through fast or slow binder just tack on a bunch of nested multies | 00:58 | ||||||||||||||||||||||||||||||||||||||
-> $ {} # fast-path binder; -> $, :foo(:bar(:ber(:$mer))) {} # slow-path binder | |||||||||||||||||||||||||||||||||||||||
Alright. I reached the point where I'm giving up. | 01:11 | ||||||||||||||||||||||||||||||||||||||
You ++ed me too early :) | |||||||||||||||||||||||||||||||||||||||
AlexDaniel | Zoffix-- | 01:33 | |||||||||||||||||||||||||||||||||||||
alright alright, I'm kidding of course :) | |||||||||||||||||||||||||||||||||||||||
Zoffix | :) | ||||||||||||||||||||||||||||||||||||||
Geth | rakudo: MasterDuke17++ created pull request #1766: Condense three IO::Path.new multis down to one... |
04:02 | |||||||||||||||||||||||||||||||||||||
nine | .tell lizmat github.com/ugexe/zef/issues/241#is...-383823558 | 06:54 | |||||||||||||||||||||||||||||||||||||
yoleaux | nine: I'll pass your message to lizmat. | ||||||||||||||||||||||||||||||||||||||
lizmat | Files=1239, Tests=76308, 319 wallclock secs (15.73 usr 5.36 sys + 2197.99 cusr 219.21 csys = 2438.29 CPU) | 07:38 | |||||||||||||||||||||||||||||||||||||
[Tux] |
|
08:14 | |||||||||||||||||||||||||||||||||||||
pmurias | .tell Zoffix are you still working on the jvm backend fix or should I look into it? | 08:56 | |||||||||||||||||||||||||||||||||||||
yoleaux | 01:18Z <Zoffix> pmurias: did some initial debugging for JVM issue, but giving up. Maybe it'll help you fix the problem: github.com/rakudo/rakudo/issues/17...-383771805 | ||||||||||||||||||||||||||||||||||||||
pmurias: I'll pass your message to Zoffix. | |||||||||||||||||||||||||||||||||||||||
pmurias | .tell Zoffix gcx.Associative isn't set ever | 08:57 | |||||||||||||||||||||||||||||||||||||
yoleaux | pmurias: I'll pass your message to Zoffix. | ||||||||||||||||||||||||||||||||||||||
pmurias | is there a way to passed named arguments to traits? | 09:36 | |||||||||||||||||||||||||||||||||||||
lizmat | pmurias: you can pass a hash to a trait | 09:41 | |||||||||||||||||||||||||||||||||||||
m: sub trait_mod:<is>(Variable:D $, :$foo!) { dd $foo }; my $a is foo( a => 42, b => 666) # or a list of paur | 09:44 | ||||||||||||||||||||||||||||||||||||||
camelia | List $foo = $(:a(42), :b(666)) | ||||||||||||||||||||||||||||||||||||||
lizmat | *pairs | ||||||||||||||||||||||||||||||||||||||
pmurias | lizmat: thanks | 09:47 | |||||||||||||||||||||||||||||||||||||
and any ways of passing named arguments to infix or prefix ops? | 09:51 | ||||||||||||||||||||||||||||||||||||||
jnthn | Yes, adverb syntax | 09:53 | |||||||||||||||||||||||||||||||||||||
m: multi infix:<+>($a, $b, :$double!) { 2 * ($a + $b) }; say 1 + 1 :double | 09:54 | ||||||||||||||||||||||||||||||||||||||
camelia | Unexpected named argument 'double' passed in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||||||
jnthn | m: multi infix:<+>($a, $b, :$double!) { 2 * ($a + $b) }; say (1 + 1 :double) | ||||||||||||||||||||||||||||||||||||||
camelia | Unexpected named argument 'double' passed in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||||||
jnthn | oh | ||||||||||||||||||||||||||||||||||||||
m: multi infix:<+>(Int $a, Int $b, :$double!) { 2 * ($a + $b) }; say (1 + 1 :double) | |||||||||||||||||||||||||||||||||||||||
camelia | 4 | ||||||||||||||||||||||||||||||||||||||
jnthn | There we go | ||||||||||||||||||||||||||||||||||||||
That's for infix ops, to be clear | 09:55 | ||||||||||||||||||||||||||||||||||||||
For prefix, no, don't think there's any way | |||||||||||||||||||||||||||||||||||||||
Nor postfix | |||||||||||||||||||||||||||||||||||||||
Oh...uh...or is there | |||||||||||||||||||||||||||||||||||||||
pmurias | jnthn: it seems *% in signatures for stuff that is called before Hash is turned into Associative is blowing up on the JVM backend | ||||||||||||||||||||||||||||||||||||||
jnthn | Ah yeah, I'm getting confused. Adverbs are parsed as fake infixes, but they can apply to any operator | 09:56 | |||||||||||||||||||||||||||||||||||||
pmurias | jnthn: does declaring Associative during the bootstrap seem like a sane solution? | 09:58 | |||||||||||||||||||||||||||||||||||||
jnthn | I don't think we create any roles during BOOTSTRAP, I think it's not very sane. But we could I guess just do a `my class Hash does Associative { ... }` a bit earlier? | 10:01 | |||||||||||||||||||||||||||||||||||||
Kaiepi | pufferbot now supports Inline::Perl5 for make stresstest! | 11:08 | |||||||||||||||||||||||||||||||||||||
might help if i remember to put it in a screen though | 11:09 | ||||||||||||||||||||||||||||||||||||||
Geth | rakudo: 1ae4d2d426 | pmurias++ | 4 files [jvm] Skip the type check for Associative for slurpy names when compiling the setting This makes the setting compile |
12:28 | |||||||||||||||||||||||||||||||||||||
pmurias | the JVM backend should now compile the setting | ||||||||||||||||||||||||||||||||||||||
jnthn | pmurias++ | 12:30 | |||||||||||||||||||||||||||||||||||||
Geth | rakudo: f0522df011 | (Zoffix Znet)++ (committed using GitHub Web editor) | README.md List setting JAVA_OPTS as an alternative to avoid out-of-mem error `export JAVA_OPTS="-Xmx51200000000"` does the trick for me to get rid of that error that's present even with the runner updated to 1.2GB |
12:56 | |||||||||||||||||||||||||||||||||||||
Zoffix | pmurias++ # confirming the fix fixed it on my box | 12:59 | |||||||||||||||||||||||||||||||||||||
AlexDaniel: ^ all blockers have been fixed now | |||||||||||||||||||||||||||||||||||||||
AlexDaniel | this is awesome | 13:00 | |||||||||||||||||||||||||||||||||||||
pmurias++ Zoffix++ | |||||||||||||||||||||||||||||||||||||||
stmuk | yay | 13:01 | |||||||||||||||||||||||||||||||||||||
Zoffix spectests bumps | 13:02 | ||||||||||||||||||||||||||||||||||||||
stresstests | 13:03 | ||||||||||||||||||||||||||||||||||||||
ZofBot: burnouttests | |||||||||||||||||||||||||||||||||||||||
Geth | nqp: ccf98076eb | (Zoffix Znet)++ | tools/build/MOAR_REVISION [MoarVM Bump] Brings 2 commits MoarVM bump brought: github.com/MoarVM/MoarVM/compare/2...8-g0ad859a 0ad859a Use an array instead of a big switch for ShiftJIS decoding f2b9b7f [JIT] Measure and report time spent on JIT compilation |
13:09 | |||||||||||||||||||||||||||||||||||||
¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...8-g0ad859a | |||||||||||||||||||||||||||||||||||||||
rakudo: 79ed89ba40 | (Zoffix Znet)++ | tools/build/NQP_REVISION [NQP Bump] Brings 4 commits NQP bump brought: github.com/perl6/nqp/compare/2018....9-gccf9807 ccf9807 [MoarVM Bump] Brings 2 commits 83ed559 Bump Xmx for nqp-j by another 300MB 05c18bc [JVM] Increase Xmx for nqp-j to 1 GB 6c982a8 This test is now passing on OS X. MoarVM bump brought: github.com/MoarVM/MoarVM/compare/2...8-g0ad859a 0ad859a Use an array instead of a big switch for ShiftJIS decoding f2b9b7f [JIT] Measure and report time spent on JIT compilation |
|||||||||||||||||||||||||||||||||||||||
¦ rakudo: version bump brought these changes: github.com/perl6/nqp/compare/2018....9-gccf9807 | |||||||||||||||||||||||||||||||||||||||
Zoffix | ZOFVM: Files=1294, Tests=153321, 150 wallclock secs (20.77 usr 3.03 sys + 3196.38 cusr 160.30 csys = 3380.48 CPU) | ||||||||||||||||||||||||||||||||||||||
~1 test per millisecond. Pretty damn good :P | 13:10 | ||||||||||||||||||||||||||||||||||||||
Zoffix & | 13:12 | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | samcv: ↑ I think we are very ready :) | 13:43 | |||||||||||||||||||||||||||||||||||||
I will be afk for a few hours though | 14:09 | ||||||||||||||||||||||||||||||||||||||
lizmat | so: I have a class A and I mix in a role B: is there some magic that I can use to dispatch to original method in class A from the mixed in object ? | 14:12 | |||||||||||||||||||||||||||||||||||||
jnthn | callsame and friends would do it | ||||||||||||||||||||||||||||||||||||||
lizmat | jnthn++ :-) | 14:14 | |||||||||||||||||||||||||||||||||||||
Zoffix | can also use "fully-qualified" method name or whatever it's called: | 14:36 | |||||||||||||||||||||||||||||||||||||
m: class A { method z { say "orig" } }; role B { method z { say "role"; self.A::z } }; (A.new does B).z | |||||||||||||||||||||||||||||||||||||||
camelia | role orig |
||||||||||||||||||||||||||||||||||||||
Zoffix | m: class A { method z { say "orig" } }; role B { method z { say "role"; self.+z } }; (A.new does B).z | ||||||||||||||||||||||||||||||||||||||
that looks broken... | |||||||||||||||||||||||||||||||||||||||
camelia | (timeout)role role role role role role role role role role role role role role role role role role role role role role role role role role role role role role role role role role role… |
14:37 | |||||||||||||||||||||||||||||||||||||
jnthn | It's an infinite recursion, ain't it? | 14:38 | |||||||||||||||||||||||||||||||||||||
Zoffix | Is it meant to tho? | ||||||||||||||||||||||||||||||||||||||
jnthn | .+z is a fresh dispatch | ||||||||||||||||||||||||||||||||||||||
Not a continuation of the current one | |||||||||||||||||||||||||||||||||||||||
Zoffix | Ah. doh | ||||||||||||||||||||||||||||||||||||||
m: class A { method z { say "orig" } }; role B { method z { say "role"; self.z } }; (A.new does B).z | 14:39 | ||||||||||||||||||||||||||||||||||||||
Look this one is broken too! :D | |||||||||||||||||||||||||||||||||||||||
camelia | (timeout)role role role role role role role role role role role role role role role role role role role role role role role role role role role role role role role role role role role… |
||||||||||||||||||||||||||||||||||||||
Zoffix | m: class A { method z { say "orig" } }; role B { method z { say "role"; self."$(self.^mro.skip.head.^name)::&?ROUTINE.name()"() } }; (A.new does B).z | 14:43 | |||||||||||||||||||||||||||||||||||||
camelia | role No such method 'A::z' for invocant of type 'A+{B}' in method z at <tmp> line 1 in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||||||
Zoffix | m: class A { method z { say "orig" } }; role B { method z { say "role"; self.A::z() } }; (A.new does B).z | 14:44 | |||||||||||||||||||||||||||||||||||||
camelia | role orig |
||||||||||||||||||||||||||||||||||||||
Zoffix | m: class A { method z { say "orig" } }; role B { method z { say "role"; self."A::z"() } }; (A.new does B).z | ||||||||||||||||||||||||||||||||||||||
camelia | role No such method 'A::z' for invocant of type 'A+{B}' in method z at <tmp> line 1 in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||||||
Zoffix | jnthn: do you think the second one should work? ^ | ||||||||||||||||||||||||||||||||||||||
jnthn | No | ||||||||||||||||||||||||||||||||||||||
Zoffix | fully-qualified name in a string | ||||||||||||||||||||||||||||||||||||||
Ah, ok | |||||||||||||||||||||||||||||||||||||||
jnthn | If we want that we'd want some syntax like self.::('A::z')() or some such | 14:45 | |||||||||||||||||||||||||||||||||||||
Zoffix | m: class A { method z { say "orig" } }; role B { method z { say "role"; self.&(::("A").^lookup: "z") } }; (A.new does B).z | 14:46 | |||||||||||||||||||||||||||||||||||||
camelia | role orig |
||||||||||||||||||||||||||||||||||||||
Zoffix | m: class A { method z { say "orig" } }; role B { method z { say "role"; self.^mro.skip.head.^lookup(&?ROUTINE.name)(self) } }; (A.new does B).z | 14:47 | |||||||||||||||||||||||||||||||||||||
camelia | role orig |
||||||||||||||||||||||||||||||||||||||
Zoffix | \o/ | ||||||||||||||||||||||||||||||||||||||
m: class Z { method z { say "pre-orig" } }; class A is Z { method z { say "orig" } }; role B { method z { say "role"; for self.^mro.skip { $_.^lookup(&?ROUTINE.name) andthen .(self) } } }; (A.new does B).z | 14:51 | ||||||||||||||||||||||||||||||||||||||
camelia | role orig pre-orig |
||||||||||||||||||||||||||||||||||||||
Zoffix | hm | ||||||||||||||||||||||||||||||||||||||
m: .^lookup("so") andthen .($_).say for ^10 | |||||||||||||||||||||||||||||||||||||||
camelia | True True True True True True True True True True |
||||||||||||||||||||||||||||||||||||||
Zoffix | this works, but this: | ||||||||||||||||||||||||||||||||||||||
m: class A { method z { say "orig" } }; role B { method z { say "role"; $_.^lookup(&?ROUTINE.name) andthen .(self) for self.^mro.skip } }; (A.new does B).z | 14:52 | ||||||||||||||||||||||||||||||||||||||
camelia | role | ||||||||||||||||||||||||||||||||||||||
Zoffix | doesn't | ||||||||||||||||||||||||||||||||||||||
m: sub z { dd &?ROUTINE.name for ^10 }; z | 14:54 | ||||||||||||||||||||||||||||||||||||||
camelia | "" "" "" "" "" "" "" "" "" "" |
||||||||||||||||||||||||||||||||||||||
Zoffix | m: sub z { for ^10 { dd &?ROUTINE.name } }; z | ||||||||||||||||||||||||||||||||||||||
camelia | "z" "z" "z" "z" "z" "z" "z" "z" "z" "z" |
||||||||||||||||||||||||||||||||||||||
Zoffix | R#1768 | 14:56 | |||||||||||||||||||||||||||||||||||||
synopsebot | R#1768 [open]: github.com/rakudo/rakudo/issues/1768 Postfix `for`, and possibly others, cause &?ROUTINE to be set to empty string | ||||||||||||||||||||||||||||||||||||||
tony-o | nine: i have an extracted version of the zef build ordering i made if you're interested in it - i fixed it up so it's faster than i described | 15:22 | |||||||||||||||||||||||||||||||||||||
though i'm not sure it'd help for precomp unless you're able to determine what exactly depends on what else | 15:23 | ||||||||||||||||||||||||||||||||||||||
nine: github.com/tony-o/p6-Uxmal | 15:33 | ||||||||||||||||||||||||||||||||||||||
timotimo | cool, i've been hoping for something like this for a while! | 15:49 | |||||||||||||||||||||||||||||||||||||
oh, it doesn't make graphical graphs | 15:50 | ||||||||||||||||||||||||||||||||||||||
tony-o | timotimo: that's up next | 16:03 | |||||||||||||||||||||||||||||||||||||
timotimo | you know how to work graphviz? | ||||||||||||||||||||||||||||||||||||||
tony-o | was looking for a uml module | 16:04 | |||||||||||||||||||||||||||||||||||||
i don't work with charts like that much, i don't know about graphviz | |||||||||||||||||||||||||||||||||||||||
timotimo | oh, OK | 16:11 | |||||||||||||||||||||||||||||||||||||
graphviz is a super simple description language that dot and friends will turn into graphics of different types | 16:12 | ||||||||||||||||||||||||||||||||||||||
digraph G { A -> B; B -> C; A -> D; D -> E } is a simple example | |||||||||||||||||||||||||||||||||||||||
do dot -Tpng bloop.dot > foo.png and it'll be rendered | |||||||||||||||||||||||||||||||||||||||
tony-o | actually dot format looks simple enough i can play with it on the plane | ||||||||||||||||||||||||||||||||||||||
and i have 11 hours of flying tomorrow | |||||||||||||||||||||||||||||||||||||||
ah, you beat me to it | |||||||||||||||||||||||||||||||||||||||
timotimo | wow, 11 hours | 16:13 | |||||||||||||||||||||||||||||||||||||
yeah, you'll get loads and loads done in that time | |||||||||||||||||||||||||||||||||||||||
if you want, that is | |||||||||||||||||||||||||||||||||||||||
gotta go AFK | |||||||||||||||||||||||||||||||||||||||
but do have a look at moarvm's tools folder where i have one or two scripts that generate dot files with more advanced features | |||||||||||||||||||||||||||||||||||||||
tony-o | usually i sleep on planes but this is relatively interesting | 16:14 | |||||||||||||||||||||||||||||||||||||
i'll take a look | |||||||||||||||||||||||||||||||||||||||
timotimo | and p6profiler-tools or something on my github which has progress bar like things using gradients | ||||||||||||||||||||||||||||||||||||||
have a safe trip, if we don't talk until you're off :) | |||||||||||||||||||||||||||||||||||||||
tony-o | thanks timotimo :-) | 19:19 | |||||||||||||||||||||||||||||||||||||
samcv | .ask Zoffix so is div_in 14x slower than last release? i see one that says it slows it down by 14x but the denormal fix commit says it increases certain div_In ops? | 19:45 | |||||||||||||||||||||||||||||||||||||
yoleaux | samcv: I'll pass your message to Zoffix. | ||||||||||||||||||||||||||||||||||||||
Zoffix | . | 19:49 | |||||||||||||||||||||||||||||||||||||
yoleaux | 19:45Z <samcv> Zoffix: so is div_in 14x slower than last release? i see one that says it slows it down by 14x but the denormal fix commit says it increases certain div_In ops? | ||||||||||||||||||||||||||||||||||||||
Zoffix | samcv: first commit made stringification of Nums 2x faster for most cases; the div_In fix fixed precision drift in Num -> Str -> Num -> Str roundtrippage, but the price for that was making it 14x slower. | 19:50 | |||||||||||||||||||||||||||||||||||||
I'll try to regain some of it during CaR grant. I think we can divide only parts of bignums to get a precise enough number. | 19:51 | ||||||||||||||||||||||||||||||||||||||
samcv: actually it's not just drift, but because in rakudo we use that op for parsing nums, we used to create nums that aren't the closest representable num to what was written in the string. | 19:52 | ||||||||||||||||||||||||||||||||||||||
(and that was also the reason for the drift) | 19:53 | ||||||||||||||||||||||||||||||||||||||
samcv | Zoffix: thanks :) | ||||||||||||||||||||||||||||||||||||||
Zoffix | in div_In we used to convert both numbers to doubles and THEN divide them, now we first divide them and then convert the result to double. If that makes logging it easier | ||||||||||||||||||||||||||||||||||||||
Kaiepi | should CArray have an alloc method or should Buf/Blob be used instead when you need to do that? | 20:41 | |||||||||||||||||||||||||||||||||||||
tony-o | timotimo: now with dot generation | 21:03 | |||||||||||||||||||||||||||||||||||||
timotimo | \o/ | 21:04 | |||||||||||||||||||||||||||||||||||||
AlexDaniel | \o/ | ||||||||||||||||||||||||||||||||||||||
tony-o | i.imgur.com/VAWq35B.png | 21:05 | |||||||||||||||||||||||||||||||||||||
this is the graph it builds on the second test in build-order.t | |||||||||||||||||||||||||||||||||||||||
timotimo | cute | 21:07 | |||||||||||||||||||||||||||||||||||||
AlexDaniel | I love graphviz, especially how well it works with large graphs | 21:15 | |||||||||||||||||||||||||||||||||||||
well, as long as you don't have a bunch of nodes on the same level, ha-ha | |||||||||||||||||||||||||||||||||||||||
timotimo | in that case you haven't made graphs as big as mine :P | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | I guess so, yeah | 21:16 | |||||||||||||||||||||||||||||||||||||
well, the largest graphs I've generated were probably from Yosys, but you rarely look at the whole flattened design… | 21:17 | ||||||||||||||||||||||||||||||||||||||
I should probably try that just to see what happens | |||||||||||||||||||||||||||||||||||||||
by the way, yosys does this nice little trick of using random colors for edges, which AFAIK is not a graphviz option | 21:18 | ||||||||||||||||||||||||||||||||||||||
but it makes such a big difference really | |||||||||||||||||||||||||||||||||||||||
timotimo | pbs.twimg.com/media/DC1zZ1uXkAADNb8.jpg:large | 21:19 | |||||||||||||||||||||||||||||||||||||
AlexDaniel | pffffffft :D | 21:20 | |||||||||||||||||||||||||||||||||||||
D#246 strikes again | |||||||||||||||||||||||||||||||||||||||
synopsebot | D#246 [closed]: github.com/perl6/doc/issues/246 [build] Unreadable type graphs | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | same issue with a bunch of nodes on the same level | 21:21 | |||||||||||||||||||||||||||||||||||||
timotimo | mhm | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | we “fixed” it by using neato instead, but arguably that's not any better: docs.perl6.org/type/Metamodel::Met...Type_Graph | 21:22 |