Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
d3a2d2d
branch initial commit
tilo May 9, 2025
a36a7d4
implemented low-level buffered IO in C
tilo May 10, 2025
af831d3
fixing build
tilo May 10, 2025
ce1148c
adding CSVReader class
tilo May 11, 2025
aa4a32f
updated CSVReader
tilo May 11, 2025
b1ee648
rolled-out FSM with 4 errors
tilo May 12, 2025
54713db
simplified FSM
tilo May 12, 2025
3186883
update
tilo May 13, 2025
c0da627
update
tilo May 14, 2025
2e58a59
removing debug output
tilo May 14, 2025
7120d31
removing comments
tilo May 14, 2025
2feb84d
renaming files
tilo May 14, 2025
71deaf2
adding skeleton for C-level parser
tilo May 14, 2025
b3ddc63
fully implemented ParserC
tilo May 15, 2025
ff656fd
updated C-code and added read_row and skip_rows
tilo May 16, 2025
2519a4c
perf improvement in peek_chars
tilo May 16, 2025
bb0b0a4
performance optimizations
tilo May 16, 2025
4cadc1c
remove debug output
tilo May 16, 2025
7033873
optimized next_char, peek_chars
tilo May 16, 2025
0352381
updated parser and buffered_io
tilo May 19, 2025
0dd4e5b
mostly working, incl. comments and UTF-8 encoding
tilo May 21, 2025
13f1f79
fix encoding warning; fix tests
tilo May 21, 2025
6f31980
fix
tilo May 21, 2025
08bd37b
count header as csv_line_number
tilo May 21, 2025
dc3265a
fixes
tilo May 21, 2025
21707d3
added csv_line_count and comment handling
tilo May 22, 2025
eb46cfb
BufferedIO only returning bytes
tilo May 24, 2025
4c97b67
unfinished changes
tilo Feb 3, 2026
0ff6b1c
adding doc
tilo Feb 3, 2026
fc72ed7
adding to buffered_io.md
tilo Feb 3, 2026
2b3becd
update
tilo Feb 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
AllCops:
TargetRubyVersion: 2.5 # purposely an old Ruby version

Layout/FirstArrayElementIndentation:
Enabled: false

Layout/SpaceBeforeBlockBraces:
Enabled: false

Expand Down
14 changes: 13 additions & 1 deletion Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,22 @@ if RUBY_ENGINE == 'jruby'
else
task build: :compile

Rake::ExtensionTask.new("buffered_io") do |ext|
ext.lib_dir = "lib/buffered_io"
ext.ext_dir = "ext/buffered_io"
ext.source_pattern = "buffered_io.{c,h}"
end

Rake::ExtensionTask.new("parserc") do |ext|
ext.lib_dir = "lib/parser"
ext.ext_dir = "ext/parser"
ext.source_pattern = "parser.{c,h}"
end

Rake::ExtensionTask.new("smarter_csv") do |ext|
ext.lib_dir = "lib/smarter_csv"
ext.ext_dir = "ext/smarter_csv"
ext.source_pattern = "*.{c,h}"
ext.source_pattern = "smarter_csv.{c,h}"
end

# task default: %i[clobber compile spec rubocop]
Expand Down
Loading