Camelia, the Perl 6 bug

IRC log for #parrot, 2012-04-05

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:32 nbrown joined #parrot
00:52 whiteknight joined #parrot
01:54 dalek Rosella: f68937d | Whiteknight++ | s (4 files):
01:54 dalek Rosella: [Xml] Break parsing out into a new file. Fix a bug where not having whitespace at the end was causing errors
01:54 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/f68937d433
01:54 dalek Rosella: 1092e15 | Whiteknight++ | / (2 files):
01:54 dalek Rosella: [Xml] Add in a rudimentary test file to prove that we can parse certain strings without parse errors. Doesn't test content, only shows that we don't error out
01:54 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/1092e151c1
01:54 dalek Rosella: d6c1342 | Whiteknight++ | / (4 files):
01:54 dalek Rosella: [Xml] use separate EndTag objects to mark the end of a tag. Use DocumentRoot to keep track of document elements and simplify searching for the root tag. More error detection and tests
01:54 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/d6c13426a5
02:31 benabik joined #parrot
04:13 jsut joined #parrot
04:55 contingencyplan joined #parrot
06:20 brrt joined #parrot
06:42 nine Good morning, #parrot
07:04 jsut_ joined #parrot
07:05 brrt joined #parrot
07:54 tadzik high nine!
07:54 moritz \9/
08:18 lucian joined #parrot
09:21 dalek parrot: e68d18a | alvis++ | tools/release/parrot_github_release.pl:
09:21 dalek parrot: Fixed incorrect taret -- i.e., push to gh-pages not master in 'parrot-docsx' repo.
09:21 dalek parrot: review: https://github.com/parrot/parrot/commit/e68d18a789
09:21 dalek parrot: 8762210 | alvis++ | / (5 files):
09:21 dalek parrot: Merge branch 'ayardley/parrot_github_release'
09:21 dalek parrot: review: https://github.com/parrot/parrot/commit/876221012b
09:25 dalek parrot: da3ed58 | alvis++ | docs/project/release_manager_guide.pod:
09:25 dalek parrot: Added Whiteknight as the Release Manager for May 15, 2012.
09:25 dalek parrot: review: https://github.com/parrot/parrot/commit/da3ed582ce
09:47 aloha (parrot/parrot.github.com) Issues closed : 6 (Automate publication of documents to 'parrot.github.com' and archiving of previous documentation release in the relevant repo) by ayardley : https://github.com/parrot/​parrot.github.com/issues/6
09:58 PacoAir joined #parrot
11:20 arnsholt I get compilation error when trying to build Parrot (for Rakudo): "/opt/local/include/unicode/uset.h:250: error: function declaration isn’t a prototype"
11:20 arnsholt When compiling src/string/encoding/shared.c
11:21 arnsholt Sounds like something's up with ICU, but not entirely sure what
11:21 arnsholt Anyone know what's going on with this? (This is on OS X with ICU from MacPorts)
11:35 ingy joined #parrot
11:36 lucian joined #parrot
11:36 not_gerd joined #parrot
11:37 not_gerd arnsholt: see https://github.com/parrot/parrot/issues/747
11:37 not_gerd should be fixed in master (ie --gen-parrot=master)
11:37 not_gerd if that doesn't work, you could also fix the ICU header
11:38 arnsholt Awesome. Cheers!
11:38 arnsholt I'll definitely try --gen-parrot=master first
11:41 moritz arnsholt: if that works, we should bump PARROT_REVISION
11:41 benabik joined #parrot
11:42 arnsholt moritz: Quite. I'll keep you posted
11:42 arnsholt My laptop is currently busy whirring it fans, and possibly some other stuff as well
11:43 arnsholt Into the NQP build now
11:44 benabik o/ #parrot
11:46 arnsholt moritz: NQP and Parrot built successfully
11:46 moritz \o/
11:47 dalek nqp: 55fe6c6 | moritz++ | tools/build/PARROT_REVISION:
11:47 dalek nqp: bump parrot revision to get MacOS build fixes
11:47 dalek nqp: review: https://github.com/perl6/nqp/commit/55fe6c66d6
11:48 benabik Mac OS build fixes?
11:48 dalek rakudo/nom: 2bf52d5 | moritz++ | tools/build/NQP_REVISION:
11:48 dalek rakudo/nom: bump NQP revision
11:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2bf52d52e6
11:48 moritz benabik: see backlog (ICU header stuff)
11:48 benabik Oh yes.  Forgot about that.  :-/
11:49 benabik My first thought was "it builds fine for me", but I keep master around, not releases.
12:00 dalek rakudo/nom: e047fb4 | moritz++ | tools/build/Makefile.in:
12:00 dalek rakudo/nom: t/02-embed is gone
12:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e047fb4ed9
12:11 not_gerd left #parrot
12:14 dalek rakudo/nom: be058f9 | (Carl Mäsak)++ | src/core/Range.pm:
12:14 dalek rakudo/nom: [src/core/Range.pm] removed stale comment
12:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/be058f9ae3
12:15 whiteknight joined #parrot
12:19 whiteknight good morning, #parrot
12:20 benabik o/ whiteknight!
12:20 whiteknight benabik!!
12:21 dalek parrot/m0: 9dbe056 | jimmy++ | src/m0/c/include/m0_interp_structures.h:
12:21 dalek parrot/m0: added TODO to m0_interp_structure.h
12:21 dalek parrot/m0: review: https://github.com/parrot/parrot/commit/9dbe05634f
12:22 Khisanth joined #parrot
12:30 hercynium joined #parrot
12:33 whiteknight here's an interesting link about JITs: http://tirania.org/blog/archive/2012/Apr-04.html
12:37 whiteknight And here's a fun link: http://0x10c.com/doc/dcpu-16.txt
12:38 benabik I was very surprised to find that 0x10c was real.
12:38 benabik The backstory is amusing.
12:39 whiteknight yes it is
12:39 whiteknight I would love to put together a little assembler for something like this
12:40 dalek parrot/m0: d89a519 | jimmy++ | src/m0/c/include/m0_interp_structures.h:
12:40 dalek parrot/m0: updated TODO
12:40 dalek parrot/m0: review: https://github.com/parrot/parrot/commit/d89a51929b
12:43 benabik whiteknight: GSoC applications are due tomorrow, aren't they?  Have we gotten any more?
12:44 whiteknight We got one draft sent to parrot-dev last night, another student who said he would send me a draft this morning, and we saw a student last night who seems interested and motivated enough
12:44 whiteknight so I think we're going to get at least 2 more before tomorrow
12:44 benabik Coolness
12:44 moritz somebody please reply to Justin
12:44 moritz I mean, with more details than the current reply/replies
12:45 whiteknight moritz: I've looked at it, I don't think it's too far off
12:47 whiteknight He doesn't have a lot of prior coding experience, so the proposal really shouldn't get much more ambitious
13:05 mtk joined #parrot
13:06 particle joined #parrot
13:19 whiteknight brrt: ping
13:31 jashwanth joined #parrot
13:31 jashwanth whiteknight:hello
13:32 whiteknight hello jashwanth
13:32 whiteknight jashwanth: are exams over?
13:33 _mayank joined #parrot
13:34 jashwanth whiteknight:no the next one is day after tomorrow so came to check the status
13:35 whiteknight jashwanth: no new status. Your proposal hasn't gotten any new feedback or concerns
13:35 nine whiteknight: especially the discussion in the comments of your linked JIT article is very interesting indeed
13:38 whiteknight yes
13:40 whiteknight good morning _mayank
13:41 whiteknight or, I guess it's afternoon over there
13:43 _mayank good morning whiteknight
13:43 _mayank well yes it's almost evening here
13:43 whiteknight I'm still learning the time difference :)
13:43 jashwanth _mayank:hello
13:44 _mayank I am still working on the proposal, it turned out to be more engaging than expected
13:44 _mayank jashwanth: hi!
13:44 whiteknight _mayank: if you have any questions or concerns, let me know
13:45 jashwanth _mayank:which college in hyd?
13:46 _mayank whiteknight: I am finding it difficult to write the timeline. I mean I have very broad division of tasks, I somehow need to go finer into it.
13:47 whiteknight _mayank: send me what you have, I'll help refine it
13:47 _mayank just give me a couple of minutes, let me clean up a bit.
13:51 _mayank whiteknight: Should a google doc be ok? or should I send to your email?
13:53 whiteknight _mayank: either is fine. Email is probably faster
13:55 brrt whiteknight: i'm here
13:55 _mayank sent
14:00 benabik "A simple Python-based DCPU assembly compiler":http://pypi.python.org/pypi/0x10c-asm/0.0.2
14:00 whiteknight brrt: Are you still interested in a ModParrot project?
14:01 brrt yes, i am
14:02 brrt i was going to fill in applications today, but haven't had the time for it yet
14:06 whiteknight brrt: Okay, no rush! I just wanted to make sure I didn't miss anything while I was sleeping
14:06 whiteknight brrt: A working ModPerl6 would be a great thing to add at the end of the summer, if you still want to do something Rakudo-related
14:06 whiteknight (Just giving ideas)
14:07 PerlJam brrt: I agree with whiteknight about modperl6  :-)
14:08 whiteknight If ModParrot is flexible enough, loading in any HLL libraries can be done with an apache config file somewhere
14:08 whiteknight Setting up tests for that would be a bear
14:21 nine Isn't mod_anything a rather outdated approach?
14:22 hercynium joined #parrot
14:22 * benabik prefers fcgi.
14:23 * atrodo prefers reverse proxy
14:24 benabik I'd suggest some sort of Parrot CGI based on PWSGI/PSGI/Rack, with cgi, fcgi, server interfaces.  :-)
14:24 atrodo I like that idea best
14:24 benabik I think I actually did suggest that on a wiki somewhere.
14:25 benabik https://github.com/parrot/parrot/wiki/Projects (under Web Services)
14:25 brrt modrakudo would be awesome
14:26 benabik The mod_ approach is definitely reasonable.  Especially for things that want deeper tinkering with Apache than just CGI.
14:26 whiteknight *ideally* it should be as easy as a load_language("perl6") call, although I don't know if that will work
14:26 benabik I find the WSGI/Plack/Rack approach to be more flexible.
14:26 whiteknight benabik: I'm not too familiar with any of those things. They're CGI?
14:27 atrodo whiteknight> Yes-ish
14:27 benabik whiteknight: Create a function that returns an array of [status, data].  It becomes a web page.
14:27 atrodo much more flexible and efficient tho
14:28 atrodo whiteknight> http://search.cpan.org/~miyagawa​/PSGI-1.10/PSGI.pod#Application but WSGI/Rack are very similar for python/ruby
14:29 moritz WSGI is an interface for dynamic web stuff, much like CGI, but the data is passed around in ordinary data structure, not in env vars/STDIN as CGI does
14:29 moritz Plack is an implementation thereof
14:29 moritz mod_{perl,parrot} is basically the same, but with a different API
14:29 atrodo and apache specific
14:30 moritz WSGI can be used by CGI, mod_perl and lots of other mechanisms
14:30 brrt any mod_ would be apache specific
14:30 benabik Using WSGI and FastCGI allows the interpreter to crash and not bring down a web server.  :-D
14:30 brrt on the other hand, dead-simple to set up, and 90% of web servers use it or so
14:31 brrt plus, any management tools applying to apache will apply to mod_* backed websites as well
14:31 atrodo brrt> are you saying 90% of webservers use apache?
14:31 nine Also mod_anything has more possibilities. I use mod_perl for some fancy URL rewriting in static websites using information out of the apache configuration
14:31 brrt benabik: i work with php, i have not seen apache crashes recently; although i have seen infinte loops and such
14:32 brrt atrodo: wild exxagaration
14:32 brrt it is more like 60% or so
14:32 whiteknight 90% of most of them do
14:32 lateau joined #parrot
14:32 whiteknight depending how you select your sample
14:32 atrodo brrt> Okay, that's fine.  I wasn't sure if you were saying apache or for the wsgi/psgi/etc side
14:32 benabik I've seen reverse proxies or FastCGI recommended for new web apps far more than mod_*.  I've even seen people recommending it for PHP.
14:33 atrodo I like to use reverse proxies a lot more so i'm not tied to apache (or perlbal or nginx or lighttpd, or...)
14:34 whiteknight A FastCGI interface would be fun too
14:35 atrodo Arg! I don't have enough time for all these projects!
14:36 whiteknight Parrot really needs sandboxing and GCable packfiles before we can talk about FastCGI though. We need to be able to load in handlers, then and be able to jettison old handlers
14:36 whiteknight And we need to fix the packfile loader to not automatically dump things into the global namespaces
14:36 benabik Well, ideally FastCGI is running a single application.
14:36 whiteknight We could have all these things by the end of the summer, though
14:39 jashwanth whiteknight:bye
14:39 whiteknight bye
14:39 whiteknight benabik: yeah, maybe. I wonder how hard it would be to set up some FastCGI helpers in Rosella...
14:40 whiteknight probably much easier with threads
14:42 dmalcolm joined #parrot
14:43 brrt haha thats funny
14:43 brrt i wrote a copying garbage collector once
14:43 brrt single-threaded though
14:43 benabik FastCGI doesn't require threading.
14:44 nine whiteknight: the nice thing about the current threads implementation is that you get the whole worker thread management for free. No need to setup worker threads and distribute requests. Just schedule a task handling the request.
14:44 benabik loop { req = get_request(); res = app(req); print(res) }  // More or less
14:45 whiteknight benabik: yeah, I'm sure it's not a requirement. We just limit our bandwidth without it
14:45 benabik FCGI is designed so that the application is dead simple.  Workers and such are handled at process level.
14:52 alester joined #parrot
14:57 dalek parrot: d054e19 | petdance++ | src/gc/gc_ (2 files):
14:57 dalek parrot: removed unnecessary casts
14:57 dalek parrot: review: https://github.com/parrot/parrot/commit/d054e19f44
15:01 dalek rakudo/nom: 8dada65 | masak++ | src/core/Range.pm:
15:01 dalek rakudo/nom: [src/core/Range.pm] remove method
15:01 dalek rakudo/nom:
15:01 dalek rakudo/nom: It had no spectest coverage, and I don't much agree with its
15:01 dalek rakudo/nom: semantics.
15:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8dada65dfb
15:01 dalek rakudo/nom: 34ac9bf | masak++ | src/core/Routine.pm:
15:01 dalek rakudo/nom: [src/core/Routine.pm] add a clarifying comment
15:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/34ac9bf5d4
15:08 dalek nqp: aabbd0a | jnthn++ | src/6model/reprs/NativeCall.c:
15:08 dalek nqp: Fix pre-compilation of modules that use NativeCall.
15:08 dalek nqp: review: https://github.com/perl6/nqp/commit/aabbd0afbe
15:08 dalek rakudo/nom: c62b90d | moritz++ | src/core/Exception.pm:
15:08 dalek rakudo/nom: throw typed exception for syntax extensions to illegal categories (RT #82984)
15:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c62b90dac2
15:10 dalek nqp: f3ec4c5 | jnthn++ | docs/serialization_format.markdown:
15:10 dalek nqp: Add some serialization format docs.
15:10 dalek nqp: review: https://github.com/perl6/nqp/commit/f3ec4c59bb
15:10 nine I removed Green Threads from the Projects wiki page. I think they are already done :)
15:12 brrt whiteknight: i'm sorry i am so distracted
15:12 whiteknight it's okay
15:13 brrt yeah, but not very nice
15:13 whiteknight brrt: Whereabouts do you live?
15:13 alester brrt: Squirrel!
15:13 benabik ADHOLAS?
15:13 brrt not getting reference
15:13 brrt groningen, the netherlands
15:14 benabik Attention Deficit Hyperactivity- Oh, Look A Shiny
15:14 brrt :-)
15:14 brrt no, just very busy atm
15:15 brrt anyway, many approaches
15:15 atrodo benabik> OSD: Ooooh, Shiny! Disorder
15:15 brrt i think - personally - mod_parrot is a viable strategy
15:15 brrt especially if you keep it simple
15:15 benabik mod_parrot is viable.  Possibly even easier because, at one point, it worked.
15:16 brrt fastcgi, i know nothing
15:16 benabik That's a big point against it.  :-)
15:17 moritz as a user I don't like FastCGI much, because it's hard to debug
15:17 whiteknight brrt: Yes, mod_parrot is the way we want to go for this project, I think
15:17 whiteknight CGI and FastCGI helpers can be done separately, and aren't at the C level
15:17 benabik moritz: FCGI does rely more on the application to log things properly.
15:17 moritz i had some problems with a FastCGI app hanging for 15s at a time. I didn't ever manage to find out why, or what to do against it
15:19 nine moritz: hanging before, during or at the end of the request?
15:20 moritz yes
15:20 brrt old mod_parrot has a github?
15:20 moritz before I saw any response in the browser
15:20 brrt seems tricky to find the 'right language', unless you specify it with some options
15:20 brrt in httpd.conf
15:21 brrt otherwise you should try to find the right interpreter / compiler based on extension
15:23 whiteknight Parrot has a "load_language" opcode
15:23 whiteknight you just call load_language("perl6"), ideally
15:25 brrt ok... parrot is really rather high-level, isn't it?
15:25 whiteknight in Winxed, it would look like: load_language("perl6"); var c = get_compiler("perl6"); var pbc = c.compile(program); var m = pbc.main_function(); m();
15:25 whiteknight it can be, yes
15:26 brrt sensible to ship a compiled parrot file alongside the module
15:26 whiteknight probably, yes
15:26 whiteknight But we can talk about release and install later in the project
15:27 brrt sure
15:27 whiteknight the modparrot package for debian can contain all sorts of stuff :)
15:27 brrt right now it is all rather abstract
15:27 brrt but... if it'd work
15:27 whiteknight yes
15:30 brrt main advantage for me, i'd get to know parrot better :-)
15:31 whiteknight yes, and a fun way to do exactly that
15:38 dalek parrot: bb282e3 | petdance++ | / (5 files):
15:38 dalek parrot: get the regex for cuddled elses a little broader, and then fix the cuddled elses it found
15:38 dalek parrot: review: https://github.com/parrot/parrot/commit/bb282e3e9b
15:40 dalek parrot: 5de6147 | petdance++ | src/pmc/managedstruct.pmc:
15:40 dalek parrot: mark an unused INTERP
15:40 dalek parrot: review: https://github.com/parrot/parrot/commit/5de61472f1
15:44 whiteknight I'm not sure I like that cuddled else change
15:45 whiteknight Somewhere in the PDD I thought we had a prohibition against using brackets unnecessarily
15:58 moritz is parrot specced/expected to be locale dependent?
15:58 moritz $ LC_ALL=C ./perl6 -e 'say "møp"'
15:58 moritz møp
15:58 moritz since I haven't seen anything in Rakudo that touches locales, I guess it's a parrot thing
16:06 brrt left #parrot
16:07 whiteknight Parrot is supposed to default to a local encoding
16:07 whiteknight I'm not too familiar with the process, but there is a notion of a "platform encoding" floating around. I don't know how it determines that
16:17 Justin joined #parrot
16:18 Justin good afternoon
16:21 whiteknight hello Justin
16:23 lucian_ joined #parrot
16:44 particle1 joined #parrot
17:20 Timbus joined #parrot
17:33 marcel_r joined #parrot
17:37 whiteknight Justin: It doesn't look like there are many criticisms of your proposal. You can add it to google-melange.com
17:37 whiteknight oh, he's already gone
18:14 nine whiteknight: any news about my GC problem?
18:24 whiteknight nine: I didn't have a chance to look at it last night
18:25 nine whiteknight: ok, just curious :)
18:25 whiteknight nine: I did clearly see that the items were ending up in the wrong lists, but haven't figured out why
18:26 whiteknight I wish there was a way to make it happen faster
18:27 whiteknight moritz: ping
18:27 moritz whiteknight: pong
18:27 whiteknight moritz: We just got a weird-looking GSOC proposal from somebody wanting to do something with mojolicious. Can you take a look at it and see if it's worth anything?
18:28 moritz whiteknight: I have. It's got nothing to do with parrot
18:28 whiteknight still, is it worth anything at all in the perl world?
18:31 moritz whiteknight: hard to tell. The goals seem worthwhile, but the proposal is not detailed enough to have any chance of being accepted
18:32 whiteknight okay, I just wanted to make sure
18:32 whiteknight If we end up with a surplus of slots, I'm not against giving them to adequate perl-related projects
18:32 whiteknight this one did seem pretty skimpy though
18:36 whiteknight We get these kinds of last-minute proposals every year, so it's no surprise
18:44 preflex_ joined #parrot
18:59 brrt joined #parrot
19:00 jsut joined #parrot
19:19 brrt joke: how many computer languages does it take to write one perl6
19:20 whiteknight zero, you write perl6 in itself until it exists
19:20 cotto brrt: only one:  Perl 6
19:20 whiteknight then you go have a beer
19:20 cotto ...
19:20 brrt :-)
19:20 whiteknight or maybe, you have fewer beers. It depends how you got that far
20:01 contingencyplan joined #parrot
20:07 Coke I'm going to comment on the mojopropo.
20:07 whiteknight please do
20:08 Coke Did Андрей Хозов ever talk to anyone on IRC/mailing list?
20:08 whiteknight Unless you see some serious gold worth mining in there, we probably won't accept it
20:08 whiteknight Coke: no
20:08 whiteknight not a peep
20:10 Coke Added a public comment and rating.
20:10 Coke ironically making it the highest rated proposal.
20:12 benabik :-(
20:12 whiteknight 15 minutes of fame starts.......NOQ
20:12 whiteknight NOW
20:13 * Coke realizes he should be careful phrasing things in #parrot.
20:16 jsut_ joined #parrot
20:17 whiteknight benabik: don't worry, you're in it for the long-haul
20:21 nine whiteknight: I got a new hint
20:21 cotto benabik: what whiteknight said.  You'd have to a 5-word proposal, three of which were "blah" to not get accepted.  You've done good work in the past and have stuck with parrot, so we know you're solid.
20:21 nine whiteknight: I succeeded in creating a test program which does _not_ have to create new tasks but just 8 long running ones.
20:22 benabik I'm too arrogant to be seriously worried.  :-D
20:23 brrt so... this load_language thing
20:23 nine whiteknight: the tasks basically just create objects in an ever growing number. The new hint is: it's running stable as long as the main thread is calm. If I run the same code on the main thread it's blowing within seconds
20:23 brrt how does that work?
20:26 Coke I wouldn't overpromise to students, even if they are benabik.
20:26 Coke The best proposals will get the most votes.
20:26 dalek rakudo/nom: fd7f971 | moritz++ | tools/build/NQP_REVISION:
20:26 dalek rakudo/nom: bump NQP revision to get NativeCall serialization fix
20:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fd7f971028
20:26 dalek rakudo/nom: 2c35bdb | moritz++ | src/core/ (2 files):
20:26 dalek rakudo/nom: typed exception for failed sequence deduction
20:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2c35bdb56e
20:29 whiteknight nine: very interesting
20:29 whiteknight I'll narrow-down my search tonight. Can you commit this long-running example code for me to see?
20:32 nine whiteknight: it's examples/threads/alloc_test.pir in git@github.com:niner/parrot.git threads_playground
20:32 whiteknight okay, awesome
20:32 whiteknight I'm packing up and going home nowish, I'll look tonight
20:33 nine bacek_at_work: got a vastly simpler and quicker test program showing my GC problem: it's examples/threads/alloc_test.pir in git@github.com:niner/parrot.git threads_playground
20:34 dalek nqp/toqast: ba5e1c1 | jonathan++ | src/QAST/Regex.nqp:
20:34 dalek nqp/toqast: Switch QAST::Regex attributes to use native types.
20:34 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/ba5e1c1180
20:34 dalek nqp/toqast: d4db55a | jonathan++ | / (2 files):
20:34 dalek nqp/toqast: Stub in QAST::Op.
20:34 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/d4db55a51c
20:37 lucian_ joined #parrot
20:51 dalek nqp/toqast: ff18cac | jonathan++ | src/QAST/Node.nqp:
20:51 dalek nqp/toqast: Another nativization.
20:51 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/ff18caca55
21:07 hercynium left #parrot
21:22 moritz q
21:22 moritz sorry
21:36 dalek nqp/toqast: 3e9ecfc | jonathan++ | src/QAST/Node.nqp:
21:36 dalek nqp/toqast: Add a way to mark types on QAST nodes if known.
21:36 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/3e9ecfc7be
21:36 dalek nqp/toqast: de37dc4 | jonathan++ | / (3 files):
21:36 dalek nqp/toqast: Start sketching out compile-time known value handling and how we'll reference values in World (so common it deserves explicit support).
21:36 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/de37dc4a57
22:01 contingencyplan joined #parrot
22:08 contingencyplan joined #parrot
22:15 contingencyplan joined #parrot
22:16 schmooster joined #parrot
22:19 alvis joined #parrot
22:26 dalek rakudo/nom: cb61d59 | masak++ | / (2 files):
22:26 dalek rakudo/nom: [src/core/Range.pm] Range ~~ Range semantics
22:26 dalek rakudo/nom:
22:26 dalek rakudo/nom: Now by spec. \o/
22:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cb61d593c7
22:48 araq_bnc joined #parrot
22:49 araq_bnc hi nine, I come from #perl6
22:49 araq_bnc they told me you have the answers I seek
22:50 benabik o/ araq_bnc
22:53 araq_bnc hi benabik; when is nine around usually?
22:54 benabik Not sure.  He's somewhere in Europe, I think.
22:57 whiteknight joined #parrot
23:00 whiteknight good afternoon, #parrot
23:00 araq_bnc good night, whiteknight
23:01 whiteknight hello araq_bnc, how are you doing?
23:01 araq_bnc could be worse ;-)
23:01 araq_bnc so do you happen to know about parrot's threading and GC?
23:05 whiteknight araq_bnc: yes, I know very much
23:05 whiteknight nine also knows about it. He wrote most of it
23:06 araq_bnc if there is no shared heap how would a parallelized 'map' work?
23:06 nbrown joined #parrot
23:06 araq_bnc copy parts of the array/list into a message for the other thread to process?
23:07 whiteknight At the moment sharing happens through message-passing and proxies
23:07 whiteknight In the future we could have some kind of shared-access memory
23:07 araq_bnc ok
23:07 araq_bnc how is the message passing implemented?
23:08 araq_bnc (and where in parrot's source code)
23:08 whiteknight Threading is being worked on in a separate branch, and is not in master yet
23:08 whiteknight Let me look it up
23:08 whiteknight https://github.com/parrot/parrot/tree/threads
23:10 whiteknight https://github.com/parrot/par​rot/blob/threads/src/thread.c
23:11 whiteknight araq_bnc: what are you working on?
23:13 araq_bnc sorry, nothing perl related: http://nimrod-code.org/
23:14 araq_bnc but I wonder if I overlooked something or if 2-way copying the only way to implement thread-safe message passing
23:14 araq_bnc if you have thread local GCs
23:14 whiteknight it's not the only way. Our threading system is very new, and hasn't even been merged to master yet
23:14 whiteknight this is a first draft. We can try new things too
23:16 benabik My advisor had an interesting concurrent language: http://manticore.cs.uchicago​.edu/papers/cefp09-notes.pdf
23:16 benabik Very isolated threads, but possible to do non-copying message passing.
23:17 benabik Although it's mostly made possible by using immutable data.
23:17 whiteknight benabik: In that JIT link I posted this morning, he talked about creating new memory pools and allocating certain objects from certain pools
23:17 whiteknight then it would be as easy as allocating a new pool dedicated to sharing between two threads
23:18 benabik As soon as you have a pool that two threads are allocating from, you have to be very careful with your GC.
23:19 whiteknight well, if it's a limited size, limited life pool, you almost don't need GC
23:20 whiteknight allocate the pool, create items in it, then deallocate the pool
23:21 benabik GTG, TTYL
23:21 araq_bnc_ joined #parrot
23:22 araq_bnc_ if you have a GC/heap for thread A and a different GC/heap for thread B
23:23 araq_bnc_ you need a common heap for both for communication
23:23 whiteknight araq_bnc_: yes, that's as good a system as any
23:23 whiteknight you want to help design such a thing?
23:24 araq_bnc_ and if you pass simply a handle/pointer as the message
23:24 araq_bnc_ then you need to ensure that thread A does not deallocate it
23:25 araq_bnc_ er, scenario is that thread A sends a message to thread B that contains a pointer
23:25 araq_bnc_ and then the data is dead wrt A
23:28 araq_bnc so you need to mark the data as used
23:28 araq_bnc so A's GC does not reclaim it
23:30 araq_bnc and I can only see copying as a proper way out
23:30 whiteknight yeah, that's the problem. GC is unforgiving
23:30 whiteknight the way to get around that is to make the memory pool manually-allocated so the GC doesn't manage it
23:31 araq_bnc good point
23:33 araq_bnc erlang does it this way too, afaik; proper copy across GC boundaries
23:35 whiteknight We don't actually do copy. We use a proxy. The proxy allows read access to the object
23:35 whiteknight writing is done through messages, which may also use proxies
23:36 araq_bnc hm, how does that work?
23:37 araq_bnc how does the proxy keep the memory alive for GC A?
23:41 whiteknight I don't remember how that works. We have to ask nine
23:56 whiteknight araq_bnc: ah, the Task object keeps a list of shared objects
23:57 araq_bnc so when is an object added to the list?
23:57 araq_bnc and when is it *removed* (the interesting part)?
23:58 whiteknight also good questions

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced