profile
viewpoint
Chris Seaton chrisseaton Shopify Cheshire, The United Kingdom https://chrisseaton.com/ Researcher at Shopify // PhD in Ruby // Founder of TruffleRuby // Squadron Leader of the Cheshire Yeomanry 🦊

chrisseaton/rhizome 762

A JIT for Ruby, implemented in pure Ruby

chrisseaton/katahdin 143

A programming language where the syntax and semantics are mutable at runtime

chrisseaton/ruby-stm-lee-demo 12

A demonstration of STM in Ruby using the Lee benchmark

chrisseaton/build-graalvm-complete 6

Build a complete GraalVM

chrisseaton/low-overhead-polling-ruby 3

Low Overhead Polling For Ruby

chrisseaton/chrisseaton.github.io 2

Chris Seaton's website

chrisseaton/checklinks 1

Checklinks finds broken or redirected links in a static webpage

chrisseaton/dfscala 1

Dataflow parallelism for Scala

push eventShopify/truffleruby

Chris Seaton

commit sha 16b786625954dc44ce4b917422ea923d34c5d0df

Tidy up the keyword descriptors

view details

Chris Seaton

commit sha 8b320fccd78cd6f7f6bcde03f3bbd5b333be1f23

Tidy up the keyword descriptors

view details

Chris Seaton

commit sha 647a059f06db2c979e8ef58f377bf11b1438828c

Move keyword descriptors into a package

view details

Chris Seaton

commit sha ff886e2f541d71666d8d874129041639fe389bb0

Tidy up ReadKeywordDescriptorNode

view details

Chris Seaton

commit sha cc80b617c086ae942f5ac6967959258957464c8a

Make ReadDescriptorArgumentNode into ReadArgumentsNode

view details

push time in 2 hours

push eventShopify/truffleruby

ccocchi

commit sha a68668a24f746acbcd6c352efb07e7a8d61d4821

Ruby part

view details

ccocchi

commit sha f5327848eb81277c6099c8f3861b393414cbb818

Ruby is weird sometimes

view details

ccocchi

commit sha 339f6fdca5f1bb6f21c07ceee332a93964bf785b

The small differences make the biggest changes

view details

ccocchi

commit sha 38bfb9b0953f25f1c771162136a5d569bdcbde00

Specialize slice node

view details

ccocchi

commit sha dd89846f3f0a72b0590e2828dd1ddd26639e1876

Use isANode

view details

ccocchi

commit sha 73ac5e38ce25e1d46d3c4443276f4fa736e93f8b

Manual fallback

view details

ccocchi

commit sha 235bc42679f7fed79d7425c214490a9ee6798252

Try to make it more readable

view details

Benoit Daloze

commit sha fc962c905d1c2b753c16699c7fce0ec1751c7332

Add ChangeLog entry

view details

ol-automation_ww

commit sha 2b63575dcc50716e534d2e2348fbf533bfafb3ce

Update graal import.

view details

Benoit Daloze

commit sha 294bf9c77d256c33cd9c7755fe0dc6b0f77add9e

Fail early and clearly when trying to build with a too old JDK

view details

Benoit Daloze

commit sha 23b2ae3047d7a1468c4c0344b70406098151a28b

[GR-26395] Periodic update of the graal import. PullRequest: truffleruby/3066

view details

Benoit Daloze

commit sha 2ad13ce6584463eeed9254b9a4c8fbe7a2a118a4

[GR-17457] Fail early and clearly when trying to build with a too old JDK PullRequest: truffleruby/3065

view details

Benoit Daloze

commit sha 424fda855ec2948c60544c632d4725ca9a447fa3

[GR-34365] Implement Array#slice with ArithmeticSequence (#2526) PullRequest: truffleruby/3061

view details

Benoit Daloze

commit sha a7b6bc7d7128e02a9761902717d96b1c6b32fad4

Separate the logic to post-process the parser and tables from tool/patch_parser.rb * Import tool/patch_parser.rb from jruby 9.1.17.0

view details

Benoit Daloze

commit sha c00ced4bdc7c3085530d7436f0aee36177bd2993

Import tool/patch_parser.rb from JRuby 9.2.19.0

view details

Benoit Daloze

commit sha ac6a2ae783be8bb37d926c969d6b72937b5efeef

[GR-34365] Separate the logic to post-process the parser and tables from tool/patch_parser.rb PullRequest: truffleruby/3068

view details

Brandon Fish

commit sha b93b637db027e0c9d3dfcf18aac8db20b5d61a6d

Update Hash#each to consistently yield a 2-element array

view details

Benoit Daloze

commit sha a9ef5378320b1b42121c4d4a8b2b7a255fa9dc5b

[GR-34365] Update Hash#each to consistently yield a 2-element array PullRequest: truffleruby/3067

view details

Benoit Daloze

commit sha bcf1a87c39eda902c14dcf84818e5507d515c8a3

Update to ruby/spec@7f22a0b

view details

Benoit Daloze

commit sha 4623459245c541ef4fdf327db83099d210b1dcd7

[GR-14806] Update specs PullRequest: truffleruby/3069

view details

push time in 5 hours

push eventShopify/truffleruby

ccocchi

commit sha a68668a24f746acbcd6c352efb07e7a8d61d4821

Ruby part

view details

ccocchi

commit sha f5327848eb81277c6099c8f3861b393414cbb818

Ruby is weird sometimes

view details

ccocchi

commit sha 339f6fdca5f1bb6f21c07ceee332a93964bf785b

The small differences make the biggest changes

view details

ccocchi

commit sha 38bfb9b0953f25f1c771162136a5d569bdcbde00

Specialize slice node

view details

ccocchi

commit sha dd89846f3f0a72b0590e2828dd1ddd26639e1876

Use isANode

view details

ccocchi

commit sha 73ac5e38ce25e1d46d3c4443276f4fa736e93f8b

Manual fallback

view details

ccocchi

commit sha 235bc42679f7fed79d7425c214490a9ee6798252

Try to make it more readable

view details

Benoit Daloze

commit sha fc962c905d1c2b753c16699c7fce0ec1751c7332

Add ChangeLog entry

view details

ol-automation_ww

commit sha 2b63575dcc50716e534d2e2348fbf533bfafb3ce

Update graal import.

view details

Benoit Daloze

commit sha 294bf9c77d256c33cd9c7755fe0dc6b0f77add9e

Fail early and clearly when trying to build with a too old JDK

view details

Benoit Daloze

commit sha 23b2ae3047d7a1468c4c0344b70406098151a28b

[GR-26395] Periodic update of the graal import. PullRequest: truffleruby/3066

view details

Benoit Daloze

commit sha 2ad13ce6584463eeed9254b9a4c8fbe7a2a118a4

[GR-17457] Fail early and clearly when trying to build with a too old JDK PullRequest: truffleruby/3065

view details

Benoit Daloze

commit sha 424fda855ec2948c60544c632d4725ca9a447fa3

[GR-34365] Implement Array#slice with ArithmeticSequence (#2526) PullRequest: truffleruby/3061

view details

Benoit Daloze

commit sha a7b6bc7d7128e02a9761902717d96b1c6b32fad4

Separate the logic to post-process the parser and tables from tool/patch_parser.rb * Import tool/patch_parser.rb from jruby 9.1.17.0

view details

Benoit Daloze

commit sha c00ced4bdc7c3085530d7436f0aee36177bd2993

Import tool/patch_parser.rb from JRuby 9.2.19.0

view details

Benoit Daloze

commit sha ac6a2ae783be8bb37d926c969d6b72937b5efeef

[GR-34365] Separate the logic to post-process the parser and tables from tool/patch_parser.rb PullRequest: truffleruby/3068

view details

Brandon Fish

commit sha b93b637db027e0c9d3dfcf18aac8db20b5d61a6d

Update Hash#each to consistently yield a 2-element array

view details

Benoit Daloze

commit sha a9ef5378320b1b42121c4d4a8b2b7a255fa9dc5b

[GR-34365] Update Hash#each to consistently yield a 2-element array PullRequest: truffleruby/3067

view details

Benoit Daloze

commit sha bcf1a87c39eda902c14dcf84818e5507d515c8a3

Update to ruby/spec@7f22a0b

view details

Benoit Daloze

commit sha 4623459245c541ef4fdf327db83099d210b1dcd7

[GR-14806] Update specs PullRequest: truffleruby/3069

view details

push time in 6 hours

push eventShopify/graal

Aleksandar Pejović

commit sha 16559906402f563acbc519afe4d15252902315be

Add support for memory mapping to reserved address range on Windows

view details

Aleksandar Pejović

commit sha f4aabc4720c38b3945fc88897dba828cda17f6ae

Ensure image heap size is a multiple of page size

view details

Aleksandar Pejović

commit sha 974d38cb6d560db9587c795269c084b8e6957282

Refactor AbstractCopyingImageHeapProvider

view details

Aleksandar Pejović

commit sha dde224520a79cae2aa6169d7e551e924fbadcbd8

Add copy-on-write image heap provider for Windows

view details

Aleksandar Pejović

commit sha 0ac5470e26069d5fe8f92a2439d1db4a639d52f9

Ensure image heap offset in file is page size aligned

view details

Aleksandar Pejović

commit sha fb89576d96a9c573dd86241d0f8b1d6a672d82f7

Fix superclass of WindowsImageHeapProvider

view details

Loic Ottet

commit sha 6954151bb2ee958e1aff91d23f1d3814160188b3

Support floating-point compare-and-swap in the LLVM backend

view details

David Kozak

commit sha b9373e3b825850eff8bfa0c219a7b64a6a93f0a6

update the process of setting the default locale

view details

ivan-ristovic

commit sha 19cfcd62afb66c56165a9a271ff257d77fb7dec6

Add builders; Refactor Collectors

view details

ivan-ristovic

commit sha 47ca4414d00dbacf5e8b4226e6669c76d157b18d

Refactor processors

view details

ivan-ristovic

commit sha 75055c650627c9a1dcafb898cbb62da39f6b7b72

Refactor structs

view details

ivan-ristovic

commit sha b7f4f3f4939e98c980871a505c3b9cedbb109366

Refactor structs collector

view details

ivan-ristovic

commit sha 026a00275f8c874512ed87a5f06e17efdb7045cc

Add IndentingStringBuilder

view details

ivan-ristovic

commit sha f016db00f25a4973961b906348506b6a147363bb

Apply PR comments

view details

Danilo Ansaloni

commit sha c99d8bb50ae4ef362c7ebcc143fd9f0a8ab54c08

Refactoring.

view details

Danilo Ansaloni

commit sha 72e2560d1ec83066d248d3cbdf9477c932ebd8d3

Process dependencies of jimage distributions (GR-35049).

view details

ivan-ristovic

commit sha 29a07210466bcc235ece2219ad5be44784ebc7f1

Reset Module.ReflectionData maps; Remove ad-hoc fix for ResourceBundles

view details

ivan-ristovic

commit sha a4b806b5f35d8e9e1f70897c0c113915de3d77c0

Transfer hosted module graph modifications to runtime boot module layer

view details

ivan-ristovic

commit sha 6a307af7b23b10ebb033b3cbbdad06807834f7aa

Patch dynamic hubs to point to synthesized Module instances

view details

ivan-ristovic

commit sha 1a26eb6b3f04a37ca1c6d800049926dc30d5863d

Include librarysupport module in boot layer

view details

push time in 6 hours

push eventrubybib/rubybib.org

Chris Seaton

commit sha f0f92423d62b4ac7d73fbe8f9dad66873935364c

Fix links

view details

push time in a day

push eventrubybib/rubybib.org

Chris Seaton

commit sha b3378770e656df5ace08b2ed7176b68f29ec3637

Update icon link

view details

push time in a day

push eventchrisseaton/chrisseaton.github.io

Chris Seaton

commit sha d7adcd1e78e271bcd3749415b6b95ce55d671d69

Ruby Compiler Survey

view details

push time in a day

push eventruby-compiler-survey/ruby-compiler-survey

Chris Seaton

commit sha 34c959acbb83c6592cf63d262990dce167c3ee40

Icon

view details

push time in a day

pull request commentruby-compiler-survey/ruby-compiler-survey

Fix typos on JRuby page

I have to fix some bugs in Seafoam before I can render these graphs as I want to.

eregon

comment created time in a day

push eventruby-compiler-survey/ruby-compiler-survey

Chris Seaton

commit sha d703f0a12b5ac40d40ab51d4e9dc057165b562e5

Compress JRuby BGV

view details

push time in a day

pull request commentruby-compiler-survey/ruby-compiler-survey

Remove double scrolling bars

I don't get why it shows scroll bars when it's not overflowing though?

eregon

comment created time in a day

CommitCommentEvent

push eventruby-compiler-survey/ruby-compiler-survey

Chris Seaton

commit sha e78192ea0eacbd36eb14edd05500dd4deee12491

Rubinius compilation threshold

view details

push time in a day

push eventrubybib/rubybib.org

Chris Seaton

commit sha 6c1c24d77020e322a7c71660919e08f158991faa

Separate check and build

view details

push time in a day

push eventrubybib/rubybib.org

Chris Seaton

commit sha efdbac5ff1283fbc4cefa5dd53fd7af2ee12f2b1

Open access link

view details

push time in a day

push eventrubybib/rubybib.org

Alan Wu

commit sha 58455194bb77dba283793d59ac3953a78d250c3b

Add YJIT paper

view details

Alan Wu

commit sha 07e674ba7e1bca8770ad8fb854898c930f7d8814

Directly link to YJIT paper PDF

view details

push time in a day

PR merged rubybib/rubybib.org

Add YJIT paper

I heard reputation is important in the academic world. Glad to be part of an el al.

cc @maximecb

+6 -0

3 comments

1 changed file

XrXr

pr closed time in a day

pull request commentruby-compiler-survey/ruby-compiler-survey

Fix typos on JRuby page

In the text:

We can see the integer value being read from the box and then the < operation appearing inline. Graal has canonicalised <= 2 to < 3. Two branches then load the boxed true or false value.

But there is no IGV graph, only the IR is shown above. Maybe the image is missing?

I will look into this.

eregon

comment created time in 2 days

Pull request review commentruby-compiler-survey/ruby-compiler-survey

Fix typos on JRuby page

 JRuby is likely the only Ruby JIT that has ever had significant use in productio  The JRuby source code is available at [our archive](https://github.com/ruby-compiler-survey/jruby) or the [original repository](https://github.com/jruby/jruby). -We're discussing JRuby 9.2.9.0, `458ad3ed9cdb`, 30 October 2019, which is the latest release as at 3 February 2020. JRuby by default will compile the entire entry-point script on load. This makes it hard to understand the compilation of individual methods, the effect of profiling, and things like compilation threshold. This feature cannot be disabled with an option, so we turn it off by patching the source code.+We're discussing JRuby 9.2.9.0, `458ad3ed9cdb`, 30 October 2019, which is the latest release as of 3 February 2020. JRuby by default will compile the entire entry-point script on load. This makes it hard to understand the compilation of individual methods, the effect of profiling, and things like compilation threshold. This feature cannot be disabled with an option, so we turn it off by patching the source code.

'as at' and 'as of' are both idiomatic British English.

https://english.stackexchange.com/questions/112770/understanding-as-of-as-at-and-as-from

eregon

comment created time in 2 days

PullRequestReviewEvent

pull request commentruby-compiler-survey/ruby-compiler-survey

Remove double scrolling bars

What browser are you seeing this on?

eregon

comment created time in 2 days

push eventruby-compiler-survey/ruby-compiler-survey

Benoit Daloze

commit sha 9fe42f33df83f79a635524859a317e517a227e5b

Fix typos on Rubinius page

view details

Chris Seaton

commit sha 20cbb191a517ddb8fc454676a9afd7ff87ae5ea1

Merge pull request #4 from eregon/patch-3 Fix typos on Rubinius page

view details

push time in 2 days

pull request commentrubybib/rubybib.org

Add YJIT paper

I'm trying to link directly to PDFs to keep things simple - can you link directly to https://dl.acm.org/doi/pdf/10.1145/3486606.3486781. I think that's stable.

XrXr

comment created time in 2 days

issue commentoracle/graal

The Truffle PE deoptimises on an instanceof interface where it doesn't know the class, but doesn't report a performance warning

Do you think we should also report unconditional depots as a performance warning? And not install them?

chrisseaton

comment created time in 5 days

issue commentoracle/graal

The Truffle PE deoptimises on an instanceof interface where it doesn't know the class, but doesn't report a performance warning

Yes run with --engine.CompileOnly=foo. As I say TruffleRuby is broken on this commit - the point is about how it handles that broken code.

chrisseaton

comment created time in 5 days

issue commentoracle/graal

The Truffle PE deoptimises on an instanceof interface where it doesn't know the class, but doesn't report a performance warning

I can only reproduce with this

(To reproduce, build TruffleRuby 449289e076a28fa26319f0a421bb4f903e1efa36 then 3a78df6a996305a84fd8c4af83895931aeb34779, then run this program. TruffleRuby is broken on this commit, but I think that doesn't matter to what Truffle decides to do with the code it gets.)

I'll try to give a better reproducer.

chrisseaton

comment created time in 6 days

push eventShopify/truffleruby

Benoit Daloze

commit sha 590bca53298573c9407e12043f1805690b5510dd

Simplify compatibleEncodingForRopes() and remove redundant conditions

view details

Benoit Daloze

commit sha 9fe67808e0e72e4382f6addf23cecc28c2f84e89

[GR-17457] Simplify compatibleEncodingForRopes() and remove redundant conditions PullRequest: truffleruby/3064

view details

Brandon Fish

commit sha 7e3da58da1e7cf0ce0e05219215da9701f8b8e21

Implement GC.{measure_total_time, total_time} and update GC.stat to update provided hash

view details

Brandon Fish

commit sha 91546e7a81599a9d7d1c50248f10cbbb10e8290e

[GR-18163] Implement GC.{measure_total_time, total_time} and update GC.stat to update provided hash PullRequest: truffleruby/3063

view details

push time in 7 days

push eventShopify/graal

Alfonso² Peterssen

commit sha b54610a8528bf4666fecac446e74fe444ac67caf

Use original bytecodes to read field CPI when un-quickening field accessors.

view details

Alfonso² Peterssen

commit sha 758f62d16fe1210410400d9825207351ea818ad5

Remove un-quickening call from field accessors fast-path.

view details

David Kozak

commit sha f4f1a5fa79fa0cae2ef8f10f09fe19d7da53b089

extract handling unknown fields from NativeImagePointsToAnalysis into a dedicated class

view details

David Kozak

commit sha be1e4cff918bcbcf782c9b256277a0da1e119856

extract points to specific bits out of UnknownFieldHandler

view details

David Kozak

commit sha 16f94f7c87638d28bf2d1b16cb3479632cb8889f

extract the call checking from NativeImagePointsToAnalysis into a dedicated class

view details

David Kozak

commit sha dbdad28e514b1df2686ad0b957c277c08b2cbf32

extract the user checks from NativeImagePointsToAnalysis into a dedicated class

view details

Foivos Zakkak

commit sha c797f509e402bbaaa78c14badbcd82ca8867738b

Remove "csv_" prefix from csv files

view details

Foivos Zakkak

commit sha a134ee498b4ae6b57e2166e0720d9f0a532dc5b8

Introduce PrintAnalysisCallTreeType option This option enables users to choose the structure of the call tree report. Currently supported formats are txt and csv. The use of this flag implicitly enables PrintAnalysisCallTree option. Closes: #3843

view details

Paul Wögerer

commit sha 186c745fc2f5dd42f15a6c3e5d9ed865c9514cda

Ensure linux static libs can be used by custom platforms

view details

Paul Wögerer

commit sha c624c2414f1a918b159b5511bc6e2e6f3a2f6d6e

Ensure LibCFeature is used by custom platform that identifies as linux

view details

Paul Wögerer

commit sha df8210e0c77498b2400af8239a292234a8c7c33f

Refactor to use common check for LibC platform equivalence

view details

Paul Wögerer

commit sha 2b5cb1c17f3eb40dbde6ff1b30c079cb5e47e33b

Fix checkstyle issue

view details

Foivos Zakkak

commit sha e264e7e2558092499ff8c1ae582c5eefa8d59fbb

Improve documentation for PrintAnalysisCallTreeType

view details

Jacob Kreindl

commit sha 7ce8eedce4dd75226636e8bdef9953f35963e1f7

Fix Broken Links to LLVM User Documentation

view details

Danilo Ansaloni

commit sha 5cd6fa58d5e1d20eafe73c379a921173a12a96df

Remove JDK8 deploy builders.

view details

Danilo Ansaloni

commit sha d7809ff11dd888eaaab488e32ca0db9834ea1e47

Complete images include FastR.

view details

Jirka Marsik

commit sha 882a783130dd5aed2fec35d3d8851f67899bb052

Respect SpecialCasing.txt when executing non-Unicode IgnoreCase RegExps

view details

Jirka Marsik

commit sha f6a94f844ef059e51affc41f2c7e4ed8c910e054

Cleanup in Clojure script for generating case-fold tables

view details

Jirka Marsik

commit sha b12949a468a000be87bf1be0e5e116b08d58961c

Restrict the Canonicalize function to single code units instead of code points The spec purposefully refers to code units, because those are the elements of strings when not using the Unicode flag.

view details

Jakub Chaloupka

commit sha beca6314b062acfc812eb97887db8855e60693e2

Configure Truffle tests to be runnable in weak and strong encapsulation.

view details

push time in 7 days

issue commentoracle/graal

The Truffle PE deoptimises on an instanceof interface where it doesn't know the class, but doesn't report a performance warning

Using instanceof with interfaces is generally discouraged for Truffle.

This was possibly a red herring. I couldn't reproduce with a simple instanceof when I tried - hence the convoluted reproduction instructions.

The deopt is attributed to the Truffle-compiled code, which doesn't make sense to me of how you could PE with unloaded classes.

Maybe I'll sit on this until I can reproduce more reasonably and then show you.

chrisseaton

comment created time in 7 days

more