New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AG codes and decoders #27957
Comments
Author: Kwankyu Lee |
Branch: u/klee/27957 |
Commit: |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Dependencies: #27873 |
Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:
|
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
|
comment:10
Tickets still needing working or clarification should be moved to the next release milestone at the soonest (please feel free to revert if you think the ticket is close to being resolved). |
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
|
This comment has been minimized.
This comment has been minimized.
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
|
comment:64
Replying to @tscrim:
As far as I understand, an object is constructed from the pickled data and uses the current code. I think it is possible in principle that a change in a different part of Sage may affect the constructor of the object and hence a newly constructed object may behave differently from an unpickled object. However, in our case, the decoder's data is all of basic types such as finite field elements, polynomials, matrices , vectors, etc. Hence it is unlikely that the data of a newly constructed object is different from an unpickled data. Moreover even if it happens, it would be detected everywhere in Sage. Do you still want to discuss this matter in sage-devel? |
comment:65
I think we should because what if the pickles get replaced that has something evil included (say, some extra method that is monkey-patched into |
comment:66
Replying to @tscrim:
Okay.
The pickles would be part of the Sage lib. Why pickles are more vulnerable than other code? Do you imagine that some evil author and reviewer cooperate to slip in the evil code passing the release manager's eyes?
Is this possible with a pickle? As far as I know, a pickle does not contain code.
I agree. I also wondered if there should be a central place to hold the pickles for this doctesting purpose. Note that I added |
comment:67
Replying to @kwankyu:
You end up reading a file on the system and (blindly) executing it in the doctest.
A pickle can (and IIRC usually) contain an objects
I saw that and thought that was good. The only place that was natural to me is in the |
comment:68
too many colons here:
|
comment:69
I guess Apery should be "Apéry" |
comment:70
Can these pickles be replaced by text data? I really struggle to imagine a smallish Sage object that cannot be quickly built from text data or json. |
comment:71
in any event, code to build these .sobj or otherwise pickled objects should be easy to run (I don't know how to run tests which are tagged |
comment:72
Replying to @dimpase:
Obviously you run the code in the example just above the test tagged with Do I misunderstand you? |
comment:73
Replying to @dimpase:
It takes no time, relatively, to load and save the pickles. To construct an object(in our case, decoder) to save takes time. Do you mean that dumping an object to a string and saving the string somewhere is better than a pickle in binary format? Would you explain how and in what respect it is better? |
comment:74
Replying to @fchapoton:
Right. I didn't try to input an accented character on my keyboard. I will. |
comment:75
json is recommended. I have no experience with serializing objects in json. Is it practically doable with any Sage object? |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:78
As a few people expressed concerns using pickles for doctesting and there is no alternative practical way to store sage objects, I decided to abandon saved objects for speed up doctesting. Now most doctests are tagged |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:80
I feel it is better to mark any long test as long rather than separate out the class-level tests. This also led to a test that took 8s to run on my machine not marked as long. I also removed the long marked things that weren't needed for me as per Something that we could consider doing is having a hidden |
comment:81
Replying to @tscrim:
Okay.
This sounds not much different from what I did originally. Moreover I don't want to clutter the code only for testing things. I think we did enough for this ticket regarding doctesting. |
comment:82
Replying to @kwankyu:
The difference would be that it is created as part of the Sage session that is easily modified. However, I agree that the current state is sufficient (despite lacking a good solution). So we can set this to a positive review once the patchbot comes back green. |
comment:83
Replying to @tscrim:
I now see your point. It is a clever idea.
I do too.
Okay. Thank you. |
comment:84
Replying to @kwankyu:
Green bot. I am guessing you don't want to switch, correct? |
comment:85
Replying to @tscrim:
Correct. No. |
Changed branch from public/coding/ag-codes-27957 to |
We add AG codes and unique decoders for AG codes.
In Attachments below, there are Jupyter notebooks demonstrating the new features provided by this ticket. These were presented in 2019 SIAM Conference on Algebraic Geometry.
The author was supported by NRF of Korea 2018, 2019, 2020
Component: coding theory
Author: Kwankyu Lee
Branch/Commit:
7097dc7
Reviewer: Travis Scrimshaw
Issue created by migration from https://trac.sagemath.org/ticket/27957
The text was updated successfully, but these errors were encountered: